*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0f14;--surface: #16161e;--surface2: #1e1e2a;--border: #2a2a3a;--accent: #7c6af7;--accent-dim:#4a3fa0;--text: #e8e8f0;--text-muted:#8888aa;--error: #f7716a;--success: #6af7a8;--radius: 8px;--radius-lg: 14px;--font: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}body{overscroll-behavior-y:none}.app{display:flex;flex-direction:column;height:100%;height:100dvh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.25rem;font-weight:600}h3{font-size:1rem;font-weight:600}p{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:.5rem 1rem;border-radius:var(--radius);border:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s;white-space:nowrap}.btn:hover{opacity:.9}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface2);color:var(--text);opacity:1}.btn-danger{background:var(--error);color:#fff}.btn-sm{padding:.3rem .75rem;font-size:.8rem}.btn-icon{padding:.4rem;border-radius:6px}.input,.textarea{width:100%;padding:.6rem .75rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:.9rem;outline:none;transition:border-color .15s}.input:focus,.textarea:focus{border-color:var(--accent)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.textarea{resize:vertical;min-height:80px;line-height:1.5}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.85rem;color:var(--text-muted);font-weight:500}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .15s ease}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}.modal-title{font-size:1.1rem;font-weight:600;margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.error-banner{background:color-mix(in srgb,var(--error) 15%,transparent);border:1px solid color-mix(in srgb,var(--error) 40%,transparent);color:var(--error);border-radius:var(--radius);padding:.6rem .875rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.chat-container{display:flex;flex-direction:column;height:100%;max-width:700px;margin:0 auto;width:100%}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.chat-message{display:flex;gap:.75rem;animation:fadeIn .2s ease}.chat-message.user{flex-direction:row-reverse}.chat-bubble{max-width:80%;padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:.9rem;line-height:1.65;white-space:pre-wrap}.chat-message.user .chat-bubble{background:var(--accent-dim);color:var(--text);border-bottom-right-radius:4px}.chat-message.assistant .chat-bubble{background:var(--surface2);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}.chat-message.user .chat-avatar{background:var(--accent)}.chat-message.assistant .chat-avatar{background:var(--surface2);border:1px solid var(--border)}.chat-input-area{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;gap:.5rem;align-items:flex-end;background:var(--bg);padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.chat-input-area .textarea{min-height:44px;max-height:140px;resize:none}.typing-indicator{display:flex;gap:4px;padding:.5rem}.typing-dot{width:6px;height:6px;background:var(--text-muted);border-radius:50%;animation:bounce 1.2s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}}.topbar{min-height:52px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 1rem;gap:.75rem;flex-shrink:0;padding-top:env(safe-area-inset-top)}.topbar-title{font-weight:600;font-size:1rem;flex:1;min-width:0}.page{flex:1;overflow-y:auto;padding:1.25rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.page-header h1{font-size:1.4rem}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.875rem}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;cursor:pointer;transition:border-color .15s,transform .1s;display:flex;flex-direction:column;gap:.25rem}.item-card:hover{border-color:var(--accent);transform:translateY(-1px)}.item-card h3{color:var(--text);margin-bottom:2px}.item-card p{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-card-actions{display:flex;gap:.5rem;margin-top:.75rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state-icon{font-size:2.5rem;margin-bottom:.5rem}.spinner{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{display:flex;align-items:center;justify-content:center;height:100%;flex-direction:column;gap:1rem;color:var(--text-muted)}.badge{display:inline-block;padding:.15rem .6rem;background:var(--surface2);border:1px solid var(--border);border-radius:999px;font-size:.75rem;color:var(--text-muted)}.input,.textarea,select.input{font-size:16px}@media (pointer: coarse){.btn{min-height:40px}.btn-sm{min-height:34px}.btn-icon{min-width:40px;min-height:40px}}@media (max-width: 640px){.page{padding:.875rem}.page-header{margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.page-header h1{font-size:1.25rem}h1{font-size:1.4rem}.grid-2{grid-template-columns:1fr;gap:.75rem}.topbar{padding:0 .5rem;gap:.35rem}.topbar-title{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.topbar .btn-sm{padding:.3rem .5rem}.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:100%;width:100%;max-height:92vh;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1.25rem 1rem calc(1rem + env(safe-area-inset-bottom));animation:sheetUp .22s ease}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.chat-bubble{max-width:100%!important;font-size:.95rem}.chat-message>div[style*=max-width]{max-width:88%!important}.chat-messages{padding:.75rem .6rem;gap:.75rem}.chat-input-area{padding:.6rem;padding-bottom:max(.6rem,env(safe-area-inset-bottom))}.chat-avatar{width:30px;height:30px}}@media (max-width: 380px){.topbar-title{font-size:.85rem}.btn-sm{font-size:.72rem}}.account-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 28px #00000073;padding:.35rem;z-index:200;animation:fadeIn .12s ease}.account-menu-header{display:flex;flex-direction:column;gap:2px;padding:.5rem .6rem;border-bottom:1px solid var(--border);margin-bottom:.35rem}.account-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .6rem;background:transparent;border:none;color:var(--text);font-size:.875rem;text-align:left;border-radius:var(--radius);cursor:pointer;transition:background .12s}.account-menu-item:hover{background:var(--surface2)}.account-menu-item-danger{color:var(--error)}
