.logo{display:block;object-fit:contain}.logo--full{height:224px;width:auto;max-width:100%;margin:0 auto 12px}.logo--icon{height:auto;width:auto;max-height:280px;max-width:100%}.logo-fallback{font-weight:700;color:var(--color-primary)}.logo-fallback--full{font-size:2.5rem;text-align:center;display:block;margin-bottom:12px}.logo-fallback--icon{font-size:1.25rem}.theme-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:.78rem;font-weight:500;transition:var(--transition)}.theme-toggle:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border)}.theme-toggle-icon{font-size:.95rem;line-height:1}.theme-toggle-label{font-weight:600}.theme-toggle--icon-only{padding:.5rem;width:40px;height:40px;justify-content:center}.theme-toggle--icon-only .theme-toggle-label{display:none}.portal-fab--theme.theme-toggle:hover{background:var(--color-primary-muted)}.lang-toggle{display:inline-flex;padding:3px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);gap:2px}.lang-toggle-btn{min-width:36px;padding:.35rem .55rem;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;transition:var(--transition)}.lang-toggle-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.lang-toggle-btn.active{background:var(--color-primary-muted);color:var(--color-primary);box-shadow:var(--shadow-sm)}.lang-toggle--compact .lang-toggle-btn{min-width:32px;padding:.3rem .45rem}.login-lang-toggle{position:absolute;top:1.25rem;left:1.25rem;z-index:10}.sidebar-lang-toggle{width:100%;justify-content:center;margin-bottom:.65rem}.portal-header-lang{flex-shrink:0}.portal-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ui-spinner{display:inline-block;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.login-page{height:100dvh;max-height:100dvh;overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr;position:relative;background:var(--color-bg) url(/backgrounds/bckg.jpg) center / cover no-repeat fixed}.login-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0c0e14b8,#0c0e148c,#0c0e14c7);pointer-events:none;z-index:0}[data-theme=light] .login-page:before{background:linear-gradient(135deg,#eef1f8d1,#eef1f8a6,#eef1f8e0)}.login-brand-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem 1.25rem;background:transparent;border-right:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden;z-index:1;min-height:0}[data-theme=light] .login-brand-panel{border-right-color:#0f121914}.login-brand-glow{display:none}.login-brand-content{position:relative;text-align:center;width:100%;max-width:min(92vw,520px);max-height:100%;animation:fade-up .5s ease;padding:.85rem 1rem .75rem;border-radius:var(--radius-lg);background:#181c2873;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;gap:.15rem}[data-theme=light] .login-brand-content{background:#ffffff8c;border-color:#0f121914}.login-hero-logo.logo--full,.login-brand-content .login-hero-logo.logo--full{height:auto;max-height:min(24dvh,220px);width:auto;max-width:100%;margin:0;flex-shrink:1;object-fit:contain;filter:drop-shadow(0 4px 16px rgba(0,0,0,.2))}.login-hero-logo.logo-fallback--full,.login-brand-content .login-hero-logo.logo-fallback--full{font-size:2rem;margin:0;line-height:1.1}.login-brand-tagline{font-size:1rem;font-weight:700;color:var(--color-text);letter-spacing:-.03em;margin:0;line-height:1.25}.login-brand-desc{font-size:.8rem;color:var(--color-text-muted);line-height:1.35;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login-internal-badge{display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);background:var(--color-primary-muted);border:1px solid rgba(91,140,255,.25);padding:.2rem .6rem;border-radius:var(--radius-full);margin-top:.15rem}.login-form-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem 1rem;background:transparent;position:relative;z-index:1;min-height:0;overflow:hidden}.login-form-panel:before{display:none}.login-theme-toggle{position:absolute;top:.65rem;right:.65rem;z-index:10}.login-lang-toggle{position:absolute;top:.65rem;left:.65rem;z-index:10}.login-card{width:100%;max-width:400px;position:relative;z-index:1;animation:fade-up .5s ease .1s both;padding:1.1rem 1.15rem .85rem;border-radius:var(--radius-lg);background:#181c288c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg);flex-shrink:1;min-height:0;overflow:hidden}[data-theme=light] .login-card{background:#ffffffb8;border-color:#0f12191a}.login-card-title{font-size:1.35rem;font-weight:700;letter-spacing:-.04em;color:var(--color-text);margin:0 0 .2rem}.login-card-subtitle{color:var(--color-text-muted);font-size:.82rem;line-height:1.35;margin:0 0 .85rem}.login-form{display:flex;flex-direction:column}.login-field{margin-bottom:.6rem}.login-form label{display:block;font-size:.72rem;font-weight:600;color:var(--color-text-muted);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:.75rem;color:var(--color-text-faint);display:flex;pointer-events:none;transition:color var(--transition)}.login-input-wrap:focus-within .login-input-icon{color:var(--color-primary)}.login-form input{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.65rem .85rem .65rem 2.4rem;color:var(--color-text);font-size:.9rem;transition:var(--transition);box-shadow:var(--shadow-sm)}.login-form input::placeholder{color:var(--color-text-faint)}.login-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted)}.login-error{display:flex;align-items:center;gap:.5rem;background:#ef44441a;border:1px solid var(--color-danger);color:var(--color-danger-text);padding:.5rem .75rem;border-radius:var(--radius);font-size:.8rem;margin-bottom:.6rem}.login-btn{width:100%;margin-top:.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;border:none;border-radius:var(--radius);padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:var(--transition);box-shadow:0 4px 20px var(--color-glow)}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px var(--color-glow)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.75;cursor:not-allowed;transform:none}.login-footer-note{margin:.4rem 0 0;font-size:.68rem;color:var(--color-text-faint);text-align:center;line-height:1.3}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.login-card-logo{display:none;justify-content:center;margin:0;line-height:0;flex-shrink:1}.login-card-logo .login-hero-logo.logo--full,.login-card-logo .login-hero-logo.logo-fallback--full{height:auto;max-height:min(14dvh,96px);width:auto;max-width:100%;margin:0;object-fit:contain}.login-card-logo .login-hero-logo.logo-fallback--full{font-size:1.75rem;margin:0}.login-card-logo+.login-card-title{margin-top:.15rem}@media(max-width:900px){.login-page{grid-template-columns:1fr;background-attachment:scroll}.login-brand-panel{display:none}.login-form-panel{height:100%;padding:2.5rem .75rem .5rem;justify-content:center}.login-card{max-width:min(96vw,400px)}.login-card-logo{display:flex}.login-footer-note{margin-top:.35rem}}@media(max-width:480px){.login-form-panel{padding:2.25rem .65rem .4rem}.login-card{padding:.95rem 1rem .75rem}.login-card-title{font-size:1.2rem}.login-card-logo .login-hero-logo.logo--full{max-height:min(12dvh,80px)}}@media(max-height:700px){.login-hero-logo.logo--full,.login-brand-content .login-hero-logo.logo--full{max-height:min(18dvh,140px)}.login-brand-content{padding:.6rem .85rem;gap:.1rem}.login-brand-tagline{font-size:.9rem}.login-brand-desc{font-size:.75rem;-webkit-line-clamp:1}.login-card-logo .login-hero-logo.logo--full{max-height:min(11dvh,72px)}.login-card{padding:.85rem 1rem .65rem}.login-field{margin-bottom:.45rem}.login-form input{padding-top:.55rem;padding-bottom:.55rem}}.user-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-full);font-size:.8rem;font-weight:700;background:var(--color-primary-muted);color:var(--color-primary);border:1px solid var(--color-border)}.user-avatar--assistant{background:var(--color-surface-hover);color:var(--color-text-muted)}.user-avatar--sidebar,.user-avatar--user{width:36px;height:36px;font-size:.9rem}.user-avatar--clickable{cursor:pointer;padding:0;border:1px solid var(--color-border);background:var(--color-primary-muted);transition:transform .15s ease,box-shadow .15s ease}.user-avatar--clickable:hover{transform:scale(1.04);box-shadow:var(--shadow-sm)}.user-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.sidebar-conv-row{position:relative;display:flex;align-items:center;gap:.1rem}.sidebar-conv-row .sidebar-conv-item{flex:1;min-width:0;margin-bottom:0}.sidebar-conv-row.active .sidebar-conv-item,.sidebar-conv-item.active{background:var(--color-primary-muted);border-color:#7c6cf059}.sidebar-conv-pin{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-accent-teal, #2dd4bf)}.sidebar-conv-menu-wrap{position:relative;flex-shrink:0;display:flex;align-items:center}.sidebar-conv-menu-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);opacity:0;cursor:pointer;transition:opacity .15s ease}.sidebar-conv-row:hover .sidebar-conv-menu-btn,.sidebar-conv-row:focus-within .sidebar-conv-menu-btn,.sidebar-conv-menu-btn[aria-expanded=true]{opacity:1}.sidebar-conv-menu-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar-conv-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:160px;padding:.35rem;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg, 0 12px 28px rgba(0, 0, 0, .35))}.sidebar-conv-menu button{display:block;width:100%;text-align:left;padding:.5rem .65rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:.82rem;font-weight:500;cursor:pointer}.sidebar-conv-menu button:hover{background:var(--color-primary-muted);color:var(--color-primary)}.sidebar-conv-item--editing{padding:.35rem .5rem;margin-bottom:.2rem}.sidebar-conv-rename-input{width:100%;padding:.45rem .6rem;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:.84rem;font-weight:500;outline:none;box-shadow:0 0 0 2px var(--color-primary-muted)}@media(max-width:900px){.sidebar-conv-menu-btn{opacity:1}}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;opacity:0;transition:opacity .25s ease}.sidebar-backdrop.visible{opacity:1}.sidebar{width:var(--color-sidebar-width);min-width:var(--color-sidebar-width);background:var(--color-bg-elevated);border-right:1px solid var(--color-border-subtle);display:flex;flex-direction:column;height:100vh;z-index:50}.sidebar-group{margin-bottom:.5rem}.sidebar-section-label{padding:.65rem 1rem .35rem;font-size:.65rem;font-weight:700;letter-spacing:.1em;color:var(--color-text-faint)}.sidebar-conversations{flex:1;overflow-y:auto;padding:.75rem .5rem .5rem;scrollbar-width:thin}.sidebar-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;color:var(--color-text-muted)}.sidebar-empty-icon{font-size:1.75rem;opacity:.45;margin-bottom:.5rem}.sidebar-empty p{font-size:.88rem;font-weight:500;color:var(--color-text)}.sidebar-empty-hint{font-size:.78rem;color:var(--color-text-faint);margin-top:.2rem}.sidebar-conv-error-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin:0 .5rem .65rem;padding:.5rem .65rem;border-radius:var(--radius-sm);background:#ef44441f;color:var(--color-danger, #ef4444);font-size:.72rem;line-height:1.35}.sidebar-conv-error-banner button{flex-shrink:0;border:none;background:transparent;color:inherit;font-size:1rem;line-height:1;cursor:pointer;padding:0}.sidebar-conv-row{margin-bottom:.15rem}.sidebar-conv-item{width:100%;display:flex;align-items:center;gap:.55rem;padding:.6rem .75rem;border:none;border-radius:var(--radius);background:transparent;color:var(--color-text-muted);text-align:left;transition:background .15s ease,color .15s ease;margin-bottom:.15rem;animation-delay:calc(var(--i, 0) * .05s)}.sidebar-conv-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar-conv-item.active{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-subtle)}.sidebar-conv-icon{font-size:.8rem;opacity:.55;flex-shrink:0}.sidebar-conv-title{font-size:.84rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.sidebar-conv-item.active .sidebar-conv-title{font-weight:600}.sidebar-footer{padding:.75rem;border-top:1px solid var(--color-border-subtle);flex-shrink:0}.sidebar-user-card{display:flex;align-items:center;gap:.6rem;padding:.5rem .35rem .5rem .5rem;border-radius:var(--radius)}.sidebar-user-info{display:flex;flex-direction:column;min-width:0;flex:1}.sidebar-user-name{font-size:.84rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-dept{font-size:.72rem;color:var(--color-text-muted)}.sidebar-footer-actions{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.65rem}.sidebar-footer-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .85rem;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.85rem;font-weight:600;cursor:pointer}.sidebar-footer-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-muted);color:var(--color-primary)}.sidebar-footer-btn-icon{font-size:1.1rem}.sidebar-admin-link{text-decoration:none;color:inherit}.sidebar-logout-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted)}.sidebar-logout-icon:hover{color:var(--color-danger);background:#ef444414}.user-avatar--sidebar{background:linear-gradient(145deg,#7c6cf0,#5b8cff);color:#fff;border:none}@media(max-width:900px){.sidebar-backdrop{display:block;pointer-events:none}.sidebar-backdrop.visible{pointer-events:auto}.sidebar{position:fixed;left:0;top:0;transform:translate(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg)}.sidebar--open{transform:translate(0)}}.message-bubble{display:flex;align-items:flex-end;gap:.6rem;margin-bottom:1.1rem}.message-bubble.user{justify-content:flex-end}.message-bubble.assistant{justify-content:flex-start}.message-bubble-body{display:flex;flex-direction:column;gap:.35rem;max-width:min(78%,680px)}.message-bubble.user .message-bubble-body{align-items:flex-end}.message-download-link{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.75rem;padding:.55rem .9rem;font-size:.85rem;font-weight:600;color:var(--color-primary);background:var(--color-primary-muted);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);text-decoration:none;cursor:pointer;font-family:inherit}.message-download-link:hover:not(:disabled){filter:brightness(1.05)}.message-download-link:disabled{opacity:.7;cursor:wait}.message-download-error{display:block;font-size:.8rem;color:var(--color-danger, #c53030);margin-bottom:.5rem}.message-export-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.15rem}.message-export-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted, #64748b);margin-right:.15rem}.message-export-btn{padding:.28rem .65rem;font-size:.72rem;font-weight:700;letter-spacing:.02em;color:var(--color-primary);background:var(--color-primary-muted);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm, 6px);cursor:pointer;font-family:inherit;transition:filter .15s ease}.message-export-btn:hover:not(:disabled){filter:brightness(1.06)}.message-export-btn:disabled{opacity:.65;cursor:wait}.message-export-error{flex-basis:100%;font-size:.78rem;color:var(--color-danger, #c53030)}.message-generated-image{display:block;max-width:100%;width:min(420px,100%);border-radius:var(--radius-md);margin-bottom:.65rem;border:1px solid var(--color-border-subtle)}.message-bubble-content{padding:.85rem 1.1rem;border-radius:var(--radius-lg);font-size:.9rem;line-height:1.6;word-break:break-word;box-shadow:var(--shadow-sm)}.message-markdown{font-size:inherit;line-height:inherit}.message-markdown>:first-child{margin-top:0}.message-markdown>:last-child{margin-bottom:0}.message-markdown p{margin:.55em 0}.message-markdown h1,.message-markdown h2,.message-markdown h3,.message-markdown h4{font-weight:700;line-height:1.35;margin:1em 0 .45em}.message-markdown h1{font-size:1.15rem}.message-markdown h2{font-size:1.05rem}.message-markdown h3,.message-markdown h4{font-size:.98rem}.message-markdown strong{font-weight:700}.message-markdown em{font-style:italic}.message-markdown u{text-decoration:underline;text-underline-offset:2px}.message-markdown del{opacity:.75}.message-markdown hr{border:none;border-top:1px solid var(--color-border-subtle);margin:.85em 0}.message-markdown ul,.message-markdown ol{margin:.5em 0;padding-left:1.35em}.message-markdown li{margin:.2em 0}.message-markdown blockquote{margin:.6em 0;padding-left:.85em;border-left:3px solid var(--color-primary);opacity:.92}.message-markdown code{font-family:ui-monospace,Consolas,monospace;font-size:.88em;padding:.12em .35em;border-radius:4px;background:#00000014}.message-bubble.user .message-markdown code{background:#ffffff26}.message-markdown pre{margin:.65em 0;padding:.65em .85em;border-radius:var(--radius-sm);overflow-x:auto;background:#0000000f;border:1px solid var(--color-border-subtle)}.message-bubble.user .message-markdown pre{background:#0003;border-color:#ffffff26}.message-markdown pre code{padding:0;background:none}.message-markdown a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.message-bubble.user .message-markdown a{color:#e8e0ff}.message-markdown table{width:100%;border-collapse:collapse;margin:.65em 0;font-size:.88em}.message-markdown th,.message-markdown td{border:1px solid var(--color-border-subtle);padding:.35em .55em;text-align:left}.message-markdown th{font-weight:600;background:var(--color-primary-muted)}.message-bubble.user .message-bubble-content{background:linear-gradient(135deg,var(--color-user-bubble) 0%,var(--color-user-bubble-end) 100%);color:#f3f0ff;border-bottom-right-radius:6px}.message-bubble.assistant .message-bubble-content{background:var(--color-assistant-bubble);border:1px solid var(--color-border-subtle);border-bottom-left-radius:6px;color:var(--color-text)}.message-bubble-footer{display:flex;align-items:center;gap:.35rem;width:100%}.footer-user{flex-direction:row-reverse;justify-content:flex-end}.footer-assistant{justify-content:flex-start}.message-bubble-meta{display:flex;align-items:center;gap:.45rem;font-size:.68rem;color:var(--color-text-faint);padding:0 .15rem}.meta-user{flex-direction:row-reverse}.message-meta-check{color:var(--color-primary);font-size:.72rem;letter-spacing:-.15em}.message-meta-agent{font-size:.68rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.03em}.message-meta-agent+.message-meta-tokens:before,.message-meta-tokens+.message-meta-time:before{content:"·";margin-right:.45rem;opacity:.6}.user-avatar--user{background:linear-gradient(145deg,#7c6cf0,#5b8cff);color:#fff;border:none}.logo-status-wrap{position:relative;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center}.logo-status-wrap--sm .logo-status-img{height:70px;width:auto;max-width:245px}.logo-status-wrap--md .logo-status-img{height:88px;width:auto;max-width:298px}.logo-status-wrap--lg .logo-status-img{height:98px;width:auto;max-width:333px}.logo-status-wrap .logo--full.logo-status-img{height:auto;max-height:98px}.message-bubble .logo-status-wrap{align-self:flex-end}.message-bubble .logo-status-wrap--sm .logo-status-img{max-height:77px}.message-actions{display:flex;align-items:center;gap:.15rem;opacity:0;transition:opacity .15s ease;flex-shrink:0}.message-bubble:hover .message-actions,.message-bubble:focus-within .message-actions,.message-actions:focus-within{opacity:1}.message-actions--user{flex-direction:row-reverse}.message-action-btn{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer}.message-action-btn:hover:not(:disabled){color:var(--color-primary);background:var(--color-primary-muted)}.message-action-btn:disabled{opacity:.35;cursor:not-allowed}.message-action-feedback{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);white-space:nowrap;font-size:.65rem;font-weight:600;color:var(--color-text);background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);padding:.2rem .45rem;border-radius:var(--radius-sm);pointer-events:none;z-index:2}@media(max-width:900px){.message-actions{opacity:1}}.chat-bg-logo{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:0;overflow:hidden}.chat-bg-logo img{width:min(58vw,440px);max-height:70%;height:auto;object-fit:contain;opacity:.08;-webkit-user-select:none;user-select:none;filter:saturate(.85)}[data-theme=dark] .chat-bg-logo img{opacity:.1}.gprs-choice-bar{margin:0 0 .75rem;padding:.75rem 1rem;border-radius:12px;background:#6366f11f;border:1px solid rgba(99,102,241,.25)}.gprs-choice-title{margin:0 0 .25rem;font-size:.875rem;font-weight:600}.gprs-choice-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.gprs-choice-dismiss{flex-shrink:0;width:1.75rem;height:1.75rem;border:none;border-radius:50%;background:#ffffff14;color:inherit;font-size:1.125rem;line-height:1;cursor:pointer}.gprs-choice-dismiss:hover:not(:disabled){background:#ffffff26}.gprs-choice-hint{margin:0 0 .625rem;font-size:.75rem;opacity:.75}.gprs-choice-options{display:flex;flex-wrap:wrap;gap:.5rem}.gprs-choice-btn{display:flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border-radius:999px;border:1px solid rgba(99,102,241,.35);background:#ffffff0f;color:inherit;font-size:.8125rem;cursor:pointer}.gprs-choice-btn:hover:not(:disabled){background:#6366f133}.gprs-choice-btn:disabled{opacity:.5;cursor:not-allowed}.gprs-choice-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;border-radius:50%;background:#6366f159;font-size:.6875rem;font-weight:700}.gprs-choice-id{opacity:.65;font-size:.6875rem}.chat-window{position:relative;flex:1;display:flex;flex-direction:column;min-height:0;background:var(--color-bg);overflow:hidden}.chat-messages{position:relative;z-index:1;flex:1;overflow-y:auto;padding:1.25rem 1.5rem .5rem;min-height:0}.chat-messages-list{max-width:900px;margin:0 auto;width:100%}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:45vh;text-align:center;color:var(--color-text-muted);padding:2rem 1rem;max-width:520px;margin:0 auto}.chat-empty-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius-full);background:var(--color-primary-muted);color:var(--color-primary);margin-bottom:1rem}.chat-greeting{font-size:1.35rem;font-weight:600;line-height:1.45;color:var(--color-text);margin:0;max-width:28rem}.chat-typing{display:flex;align-items:flex-end;gap:.6rem;padding:.25rem 0 .75rem}.chat-typing-bubble{display:flex;align-items:center;gap:.35rem;padding:.9rem 1.15rem;border-radius:var(--radius-lg);background:var(--color-assistant-bubble);border:1px solid var(--color-border-subtle);margin-left:2.4rem}.typing-dot{width:7px;height:7px;background:var(--color-text-muted);border-radius:50%;animation:typingPulse 1.2s infinite ease-in-out both}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}.chat-demo-banner{max-width:900px;margin:0 auto .65rem;padding:.6rem 1rem;border-radius:var(--radius);background:var(--color-warning-banner);border:1px solid var(--color-warning-border);color:var(--color-warning-text);font-size:.78rem;line-height:1.4;text-align:center}.chat-composer-wrap{position:relative;z-index:1;flex-shrink:0;padding:.5rem 1.25rem 1rem;background:linear-gradient(to top,var(--color-bg) 85%,transparent)}.chat-error{max-width:900px;margin:0 auto .5rem;padding:.6rem .9rem;background:#ef44441f;border:1px solid var(--color-danger);color:var(--color-danger-text);border-radius:var(--radius);font-size:.82rem}.chat-composer-wrap .chat-suggestions{max-width:900px;margin:0 auto .65rem}.chat-file-input{display:none}.chat-attachments{display:flex;flex-wrap:wrap;gap:.5rem;max-width:900px;margin:0 auto .5rem}.chat-attachment-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;padding:.35rem .65rem;border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);max-width:220px}.chat-attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attachment-chip button{border:none;background:transparent;color:var(--color-text-muted);font-size:1.1rem;line-height:1;padding:0}.chat-recording-banner{display:flex;align-items:center;gap:.5rem;max-width:900px;margin:0 auto .5rem;padding:.45rem .85rem;font-size:.78rem;font-weight:500;color:var(--color-danger);background:#ef44441a;border-radius:var(--radius)}.chat-recording-pulse{width:8px;height:8px;border-radius:50%;background:var(--color-danger);animation:typingPulse 1s ease infinite}.chat-composer{max-width:900px;margin:0 auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:.5rem .65rem .4rem;box-shadow:var(--shadow-composer);transition:border-color var(--transition),box-shadow var(--transition)}.chat-composer:focus-within{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));box-shadow:var(--shadow-composer),0 0 0 3px var(--color-primary-muted)}.chat-composer-inner{display:flex;align-items:flex-end;gap:.35rem}.chat-input{flex:1;background:transparent;border:none;padding:.55rem .5rem;color:var(--color-text);font-size:.92rem;resize:none;max-height:160px;line-height:1.5;min-height:24px;overflow-y:auto}.chat-input:focus{outline:none}.chat-input::placeholder{color:var(--color-text-faint)}.chat-input:disabled{opacity:.6}.chat-input-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.chat-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);border:none;background:transparent;color:var(--color-text-muted)}.chat-icon-btn--attach{align-self:flex-end}.chat-icon-btn:hover:not(:disabled){color:var(--color-primary);background:var(--color-primary-muted)}.chat-icon-btn:disabled{opacity:.4;cursor:not-allowed}.chat-icon-btn--active{color:var(--color-danger)!important;background:#ef44441f!important}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;border:none;border-radius:var(--radius);box-shadow:0 2px 10px var(--color-glow)}.chat-send-btn:hover:not(:disabled){box-shadow:0 4px 16px var(--color-glow)}.chat-send-btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important}.chat-composer-hint{font-size:.65rem;color:var(--color-text-faint);text-align:center;margin-top:.35rem;padding:0 .25rem}@media(max-width:900px){.chat-messages{padding:4.25rem 1rem .5rem 3.75rem}}@media(max-width:640px){.chat-composer-hint{display:none}.chat-messages{padding:4rem .75rem .25rem 3.5rem}.chat-composer-wrap{padding:.5rem .75rem .75rem}}.group-chat-window{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.group-chat-header{position:relative;z-index:1;padding:.75rem 1rem .5rem;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 92%,transparent)}.group-chat-title{margin:0;font-size:1.05rem}.group-chat-depts{margin:.2rem 0 .5rem;font-size:.78rem;color:var(--color-text-muted)}.group-chat-members{display:flex;flex-wrap:wrap;gap:.35rem}.group-chat-member-chip{font-size:.72rem;padding:.15rem .5rem;border-radius:var(--radius-full);background:var(--color-primary-muted);color:var(--color-primary);border:1px solid var(--color-border)}.group-chat-error{margin:.5rem 1rem 0;padding:.5rem .75rem;border-radius:var(--radius-md);background:var(--color-danger-bg, #fee);color:var(--color-danger, #c00);font-size:.85rem}.group-chat-panel{position:relative;z-index:1;display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 88%,transparent)}.group-chat-panel--ai{flex:1.2}.group-chat-panel--team{flex:1}.group-chat-panel h2{margin:0;padding:.5rem 1rem 0;font-size:.85rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.group-chat-panel-hint{margin:0;padding:0 1rem .35rem;font-size:.75rem;color:var(--color-text-muted)}.group-chat-messages{flex:1;overflow-y:auto;padding:.5rem 1rem;min-height:120px}.group-chat-messages--team{min-height:100px}.group-chat-empty{margin:.5rem 0;font-size:.85rem;color:var(--color-text-muted);text-align:center}.group-chat-typing{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;color:var(--color-text-muted);font-size:.85rem}.group-chat-input-row{display:flex;gap:.5rem;padding:.5rem 1rem .75rem;border-top:1px solid var(--color-border)}.group-chat-input-row textarea{flex:1;resize:none;min-height:40px;max-height:100px;padding:.55rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-family:inherit}.group-chat-send{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer}.group-chat-send--team{background:var(--color-surface-hover);color:var(--color-text);border:1px solid var(--color-border)}.group-chat-send:disabled{opacity:.55;cursor:not-allowed}.message-bubble.group-team .message-bubble-body{background:var(--color-surface-hover)}.message-bubble.group-team .message-author-label{display:block;font-size:.72rem;font-weight:700;color:var(--color-primary);margin-bottom:.2rem}@media(max-width:768px){.group-chat-panel--ai{flex:1}}.create-group-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.create-group-modal{width:min(100%,520px);max-height:min(90vh,640px);overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-lg)}.create-group-modal h2{margin:0 0 .35rem;font-size:1.2rem}.create-group-subtitle{margin:0 0 1rem;color:var(--color-text-muted);font-size:.88rem}.create-group-modal label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.create-group-modal input[type=text]{width:100%;margin-bottom:1rem;padding:.55rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}.create-group-members-label{margin:0 0 .5rem;font-size:.85rem;font-weight:600}.create-group-user-list{max-height:280px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.5rem;margin-bottom:1rem}.create-group-dept-block h3{margin:.5rem 0 .35rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.create-group-dept-block:first-child h3{margin-top:0}.create-group-user-row{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;padding:.35rem .25rem;cursor:pointer;font-size:.88rem}.create-group-user-email{font-size:.72rem;color:var(--color-text-muted)}.create-group-loading{display:flex;align-items:center;gap:.5rem;padding:1rem;color:var(--color-text-muted)}.create-group-error{background:var(--color-danger-bg, #fee);color:var(--color-danger, #c00);padding:.5rem .75rem;border-radius:var(--radius-md);margin-bottom:.75rem;font-size:.875rem}.create-group-actions{display:flex;justify-content:flex-end;gap:.75rem}.create-group-cancel,.create-group-submit{border-radius:var(--radius-md);padding:.55rem 1rem;font-weight:600;cursor:pointer}.create-group-cancel{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.create-group-submit{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-primary);color:#fff;border:none}.create-group-submit:disabled{opacity:.7;cursor:not-allowed}.library-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.library-modal{width:min(720px,100%);max-height:min(85vh,720px);display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 24px 48px rgba(0, 0, 0, .35));overflow:hidden}.library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.25rem .75rem;border-bottom:1px solid var(--color-border-subtle)}.library-header h2{font-size:1.15rem;font-weight:700;margin:0}.library-subtitle{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-muted)}.library-close{width:36px;height:36px;border:none;border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:1.4rem;line-height:1;cursor:pointer}.library-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border-subtle)}.library-filters{display:flex;flex-wrap:wrap;gap:.35rem;flex:1}.library-filter-btn{padding:.35rem .75rem;border-radius:var(--radius-full);border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:.8rem;cursor:pointer}.library-filter-btn.active{background:var(--color-primary-muted);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.library-upload-btn{padding:.45rem 1rem;border-radius:var(--radius-md);border:none;background:var(--color-primary);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer}.library-upload-btn:disabled{opacity:.6;cursor:not-allowed}.library-file-input{display:none}.library-error{margin:0 1.25rem;padding:.5rem .75rem;border-radius:var(--radius-md);background:#ef44441f;color:var(--color-danger, #ef4444);font-size:.85rem}.library-body{flex:1;overflow-y:auto;padding:.75rem 1.25rem 1.25rem;min-height:200px}.library-status{text-align:center;color:var(--color-text-muted);padding:2rem}.library-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1rem;color:var(--color-text-muted)}.library-empty-icon{font-size:2.5rem;margin-bottom:.75rem}.library-empty-hint{font-size:.8rem;margin-top:.35rem}.library-grid{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.library-item{display:grid;grid-template-columns:52px 1fr auto;gap:.75rem;align-items:center;padding:.65rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-surface)}.library-item-preview{width:52px;height:52px;border-radius:var(--radius-sm);background:var(--color-bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.library-thumb{width:100%;height:100%;object-fit:cover}.library-item-icon{font-size:1.5rem}.library-item-info{min-width:0;display:flex;flex-direction:column;gap:.15rem}.library-item-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-item-meta,.library-item-date{font-size:.75rem;color:var(--color-text-muted)}.library-item-actions{display:flex;gap:.25rem}.library-item-actions button{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:1rem}.library-delete-btn:hover{background:#ef444426;color:var(--color-danger, #ef4444)}.portal-floating-controls{position:fixed;z-index:35;pointer-events:none;top:0;right:0;bottom:0;left:0}.portal-floating-controls>*{pointer-events:auto}.portal-fab-stack{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.portal-fab{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-subtle);border-radius:var(--radius-full);background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .25));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:var(--transition)}.portal-fab:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-lg, 0 12px 28px rgba(0, 0, 0, .3))}.portal-fab--menu{display:none;position:fixed;top:1rem;left:1rem;width:44px;height:44px;padding:0}.portal-fab--theme{width:44px;height:44px;padding:0;border-radius:var(--radius-full)}.portal-fab--theme.theme-toggle{border-radius:var(--radius-full)}.portal-fab--lang{padding:.2rem;border-radius:var(--radius-full)}.portal-fab--lang .lang-toggle{border:none;background:transparent;box-shadow:none}.portal-fab--lang .lang-toggle-btn{min-width:34px;padding:.35rem .5rem}@media(max-width:900px){.portal-fab--menu{display:flex}.portal-fab-stack{top:1rem;right:1rem}}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#000000a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.onboarding-modal{width:min(520px,100%);max-height:min(90vh,640px);overflow-y:auto;padding:1.5rem 1.35rem 1.35rem;background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 24px 48px rgba(0, 0, 0, .35))}.onboarding-header h2{margin:0;font-size:1.3rem;font-weight:700;text-align:center}.onboarding-subtitle{margin:.45rem 0 1rem;font-size:.85rem;color:var(--color-text-muted);text-align:center;line-height:1.45}.onboarding-progress{height:4px;border-radius:999px;background:var(--color-border-subtle);overflow:hidden;margin-bottom:.65rem}.onboarding-progress-bar{height:100%;background:var(--color-accent);transition:width .25s ease}.onboarding-meta{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.75rem;color:var(--color-text-muted)}.onboarding-section{font-weight:700;color:var(--color-primary)}.onboarding-form{display:flex;flex-direction:column;gap:.65rem}.onboarding-label{font-size:.92rem;font-weight:600;line-height:1.4}.onboarding-optional{font-weight:500;color:var(--color-text-muted)}.onboarding-form input,.onboarding-textarea{width:100%;padding:.75rem 1rem;font-size:.95rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:inherit;resize:vertical}.onboarding-form input:focus,.onboarding-textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px}.onboarding-error{padding:.6rem .75rem;font-size:.8rem;color:var(--color-danger, #f87171);background:#f871711a;border:1px solid rgba(248,113,113,.35);border-radius:var(--radius-md)}.onboarding-actions{display:flex;gap:.6rem;margin-top:.35rem}.onboarding-back,.onboarding-next{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.92rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;border:none}.onboarding-back{flex:0 0 auto;color:var(--color-text);background:transparent;border:1px solid var(--color-border)}.onboarding-next{flex:1;color:#fff;background:var(--color-accent)}.onboarding-next:disabled,.onboarding-back:disabled{opacity:.7;cursor:wait}.onboarding-next:not(:disabled):hover,.onboarding-back:not(:disabled):hover{filter:brightness(1.06)}.profile-crop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1rem}.profile-crop-modal{width:min(100%,440px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-lg)}.profile-crop-modal h3{margin:0 0 .35rem;font-size:1.1rem}.profile-crop-hint{margin:0 0 1rem;color:var(--color-text-muted);font-size:.85rem}.profile-crop-area{position:relative;height:280px;border-radius:var(--radius-md);overflow:hidden;background:#111;margin-bottom:1rem}.profile-crop-zoom-label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem;color:var(--color-text-muted)}.profile-crop-zoom{width:100%;margin-bottom:1rem;accent-color:var(--color-primary)}.profile-crop-error{background:var(--color-danger-bg, #fee);color:var(--color-danger, #c00);padding:.5rem .75rem;border-radius:var(--radius-md);margin-bottom:.75rem;font-size:.875rem}.profile-crop-actions{display:flex;justify-content:flex-end;gap:.75rem}.profile-crop-cancel,.profile-crop-apply{border-radius:var(--radius-md);padding:.55rem 1rem;font-weight:600;cursor:pointer}.profile-crop-cancel{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.profile-crop-apply{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-primary);color:#fff;border:none}.profile-crop-apply:disabled,.profile-crop-cancel:disabled{opacity:.7;cursor:not-allowed}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.profile-modal{width:min(100%,420px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-lg)}.profile-modal h2{margin:0 0 .35rem;font-size:1.25rem}.profile-subtitle{margin:0 0 1.25rem;color:var(--color-text-muted);font-size:.9rem}.profile-avatar-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.profile-avatar-actions{display:flex;flex-direction:column;gap:.35rem}.profile-link-btn{background:none;border:none;padding:0;color:var(--color-primary);font-size:.875rem;cursor:pointer;text-align:left}.profile-link-btn--muted{color:var(--color-text-muted)}.profile-form label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.35rem}.profile-form input[type=text]{width:100%;padding:.65rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}.profile-hint{margin:.35rem 0 1rem;font-size:.8rem;color:var(--color-text-muted)}.profile-error{background:var(--color-danger-bg, #fee);color:var(--color-danger, #c00);padding:.5rem .75rem;border-radius:var(--radius-md);margin-bottom:.75rem;font-size:.875rem}.profile-actions{display:flex;justify-content:flex-end;gap:.75rem}.profile-cancel,.profile-save{border-radius:var(--radius-md);padding:.55rem 1rem;font-weight:600;cursor:pointer}.profile-cancel{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.profile-save{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-primary);color:#fff;border:none}.profile-save:disabled{opacity:.7;cursor:not-allowed}.portal-layout{display:flex;height:100vh;max-height:100dvh;overflow:hidden;background:var(--color-bg)}.portal-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--color-bg)}.portal-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-muted);background:var(--color-bg)}.portal-loading-spinner{width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-page{min-height:100vh;background:var(--color-bg);color:var(--color-text);padding:1.5rem clamp(1rem,4vw,2.5rem)}.admin-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.admin-header h1{margin:0;font-size:1.5rem}.admin-subtitle{margin:.35rem 0 0;color:var(--color-text-muted);font-size:.95rem}.admin-back-link{color:var(--color-primary);text-decoration:none;font-weight:600;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.admin-loading,.admin-error{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:40vh}.admin-error{color:var(--color-danger, #c00);flex-direction:column}.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}.admin-card--highlight{border-color:var(--color-primary)}.admin-card-label{font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.admin-card strong{font-size:1.5rem}.admin-card-note{font-size:.75rem;color:var(--color-text-muted)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.admin-table th{background:var(--color-surface-hover);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.admin-table tbody tr:hover{background:var(--color-surface-hover)}.admin-user-cell{display:flex;flex-direction:column;gap:.15rem}.admin-user-email{font-size:.75rem;color:var(--color-text-muted)}.admin-role{display:inline-block;padding:.15rem .45rem;border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;background:var(--color-surface-hover)}.admin-role--admin{background:var(--color-primary-muted);color:var(--color-primary)}.admin-services{margin-bottom:1.5rem}.admin-services h2{margin:0 0 .75rem;font-size:1rem;font-weight:600}.admin-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.admin-service-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.25rem}.admin-service-name{font-size:.8rem;color:var(--color-text-muted)}.admin-service-card strong{font-size:1.15rem}.admin-service-meta{font-size:.72rem;color:var(--color-text-muted)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{color-scheme:dark;--color-bg: #0c0e14;--color-bg-elevated: #12151e;--color-surface: #181c28;--color-surface-hover: #222838;--color-border: #2a3144;--color-border-subtle: #1f2433;--color-primary: #5b8cff;--color-primary-hover: #4678f0;--color-primary-muted: rgba(91, 140, 255, .12);--color-text: #eef0f6;--color-text-muted: #9199b0;--color-text-faint: #6b7289;--color-user-bubble: #5c4d9a;--color-user-bubble-end: #4a3d82;--color-assistant-bubble: #1e2230;--color-accent-teal: #2dd4bf;--color-warning-banner: rgba(180, 140, 70, .18);--color-warning-border: rgba(210, 170, 90, .45);--color-warning-text: #e8c97a;--color-sidebar-width: 280px;--color-danger: #f87171;--color-danger-text: #fca5a5;--color-success: #4ade80;--color-login-gradient-start: #0c0e14;--color-login-gradient-end: #151a30;--color-glow: rgba(91, 140, 255, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 48px rgba(0, 0, 0, .45);--shadow-composer: 0 -4px 32px rgba(0, 0, 0, .2);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--font: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;--transition: .2s cubic-bezier(.4, 0, .2, 1);--mesh-dot: rgba(255, 255, 255, .03)}[data-theme=light]{color-scheme:light;--mesh-dot: rgba(15, 18, 25, .04);--color-bg: #eef1f8;--color-bg-elevated: #e4e9f4;--color-surface: #ffffff;--color-surface-hover: #f3f5fb;--color-border: #d5dbea;--color-border-subtle: #e8ecf5;--color-primary: #3d6aef;--color-primary-hover: #2f58d4;--color-primary-muted: rgba(61, 106, 239, .1);--color-text: #0f1219;--color-text-muted: #5c6478;--color-text-faint: #8b93a7;--color-user-bubble: #6d5cae;--color-user-bubble-end: #5a4a96;--color-assistant-bubble: #ffffff;--color-accent-teal: #0d9488;--color-warning-banner: rgba(180, 130, 50, .12);--color-warning-border: rgba(180, 130, 50, .35);--color-warning-text: #92680a;--color-sidebar-width: 280px;--color-danger: #dc2626;--color-danger-text: #b91c1c;--color-success: #16a34a;--color-login-gradient-start: #e8ecf8;--color-login-gradient-end: #f5f7fc;--color-glow: rgba(61, 106, 239, .08);--shadow-sm: 0 1px 3px rgba(15, 18, 25, .06);--shadow-md: 0 4px 24px rgba(15, 18, 25, .08);--shadow-lg: 0 12px 48px rgba(15, 18, 25, .12);--shadow-composer: 0 -4px 32px rgba(15, 18, 25, .06)}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.55;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}#root{min-height:100vh}button{cursor:pointer;font-family:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,textarea{font-family:inherit}a{color:var(--color-primary)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}*::-webkit-scrollbar-track{background:transparent}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes pop{0%{opacity:0;transform:scale(0)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes typingPulse{0%,80%,to{opacity:.35;transform:scale(.75)}40%{opacity:1;transform:scale(1)}}.anim-fade-up{animation:fadeUp .4s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--delay, calc(var(--i, 0) * .04s))}.anim-slide-in{animation:slideIn .35s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i, 0) * .05s)}.anim-pop{animation:pop .45s cubic-bezier(.34,1.56,.64,1) both}.anim-cascade{animation:fadeUp .4s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i, 0) * .07s)}.btn-interactive{transition:transform .15s cubic-bezier(.34,1.2,.64,1),background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}.btn-interactive:hover:not(:disabled){transform:translateY(-1px) scale(1.03)}.btn-interactive:active:not(:disabled){transform:translateY(0) scale(.96)}
