:root{--teal: #0F766E;--teal-bright: #14B8A6;--teal-deep: #115E59;--teal-frost: #F0FDFA;--teal-mist: #CCFBF1;--teal-light: #99F6E4;--midnight: #1A1A1A;--charcoal: #2D2D2D;--stone: #6B7280;--stone-light: #9CA3AF;--warm-white: #FAFFFE;--body-dark: #111114;--coral: #F97066;--green: #22C55E;--purple: rgba(139,92,246,1);--amber: rgba(245,180,50,1);--site: #14B8A6;--site-dark: #0F766E;--site-rgb: 20,184,166;--accent: #14B8A6;--accent-dark: #0F766E;--accent-bg: rgba(20,184,166,.1);--accent-rgb: 20,184,166;--accent-gradient: linear-gradient(90deg, #14B8A6, #0F766E);--accent-label: var(--teal-light);--purple: #8B5CF6;--purple-light: #a78bfa;--purple-deep: #6d28d9;--gold: #fbbf24;--gold-deep: #d97706;--gold-dark: #3a2400;--tk-card-height: 139px;--font-display: 'Fraunces', Georgia, serif;--font-body: 'DM Sans', system-ui, sans-serif;--font-mono: 'DM Mono', monospace;--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--shadow-soft: 0 1px 3px rgba(15,118,110,.04), 0 8px 24px rgba(15,118,110,.03);--shadow-medium: 0 4px 12px rgba(15,118,110,.05), 0 16px 40px rgba(15,118,110,.04);--shadow-glow: 0 0 0 1px rgba(15,118,110,.12), 0 8px 30px rgba(15,118,110,.08);--ease: cubic-bezier(.22,1,.36,1);--ink: var(--midnight);--text: var(--stone);--text-sec: var(--stone-light);--border: rgba(0,0,0,.06);--border-light: rgba(0,0,0,.03);--bg: #fff;--page-bg: var(--warm-white);--green-bg: rgba(34,197,94,.08);--green-border: rgba(34,197,94,.15);--sb-bg: var(--body-dark);--sb-text: rgba(255,255,255,.9);--sb-text-sec: rgba(255,255,255,.4);--sb-label: rgba(255,255,255,.25);--sb-hover: rgba(255,255,255,.06);--sb-active: rgba(20,184,166,.12);--sb-border: rgba(255,255,255,.06);--sb-toggle: rgba(255,255,255,.06);--sb-toggle-color: rgba(255,255,255,.45);--sb-toggle-hover: rgba(255,255,255,.1);--sb-btn-icon: rgba(255,255,255,.04);--sb-badge-bg: rgba(20,184,166,.15);--sb-badge-color: var(--teal-bright);--sb-token-bg: rgba(255,255,255,.06);--sb-token-color: rgba(255,255,255,.4);--sb-logout-bg: rgba(255,255,255,.06);--sb-logout-color: rgba(255,255,255,.35);--ct-bg: var(--body-dark);--ct-page: #0D0D10;--ct-card: var(--midnight);--ct-ink: #e7e5e4;--ct-text: var(--stone-light);--ct-text-sec: var(--stone);--ct-border: rgba(255,255,255,.06);--ct-border-light: rgba(255,255,255,.03);--ct-chat-bg: var(--body-dark);--ct-chat-msg-bg: #0D0D10;--ct-bubble-bg: var(--midnight);--ct-bubble-border: rgba(255,255,255,.06);--ct-bubble-color: #d4d4d8;--ct-user-bubble-bg: rgba(20,184,166,.15);--ct-user-bubble-color: #e7e5e4;--ct-user-avatar-bg: rgba(20,184,166,.1);--ct-user-avatar-color: var(--teal-bright);--ct-input-bg: var(--midnight);--ct-input-border: rgba(255,255,255,.06);--ct-powered-color: var(--stone);--ct-green-bg: rgba(34,197,94,.08);--ct-green-border: rgba(34,197,94,.15);--ct-result-highlight-bg: rgba(34,197,94,.06);--ct-result-highlight-border: rgba(34,197,94,.12);--ct-quickwin-bg: linear-gradient(135deg, rgba(20,184,166,.06), rgba(20,184,166,.12));--ct-quickwin-border: rgba(20,184,166,.2);--ct-quickwin-text: var(--teal-light);--ct-tip-bg: rgba(20,184,166,.06);--ct-checklist-border: rgba(255,255,255,.04);--ct-footer-bg: #0A0A0D;--mob-toggle-bg: var(--body-dark);--mob-toggle-color: #fff;--sb-width: 300px;--sb-collapsed: 64px;--limit-val-low-color: #F59E0B;--limit-val-critical-color: #F97066;--limit-max-val-low-color: rgba(245, 158, 11, .6);--limit-max-val-critical-color: rgba(249, 112, 102, .6)}.app.light-theme{--ct-bg: #fff;--ct-page: var(--warm-white);--ct-card: #fff;--ct-ink: var(--midnight);--ct-text: var(--stone);--ct-text-sec: var(--stone-light);--ct-border: rgba(0,0,0,.06);--ct-border-light: rgba(0,0,0,.03);--ct-chat-bg: #fff;--ct-chat-msg-bg: var(--teal-frost);--ct-bubble-bg: #fff;--ct-bubble-border: rgba(0,0,0,.06);--ct-bubble-color: var(--charcoal);--ct-user-bubble-bg: var(--midnight);--ct-user-bubble-color: #e7e5e4;--ct-user-avatar-bg: var(--teal-frost);--ct-user-avatar-color: var(--teal-deep);--ct-input-bg: var(--teal-frost);--ct-input-border: rgba(0,0,0,.06);--ct-powered-color: var(--stone-light);--ct-green-bg: rgba(34,197,94,.06);--ct-green-border: rgba(34,197,94,.12);--ct-result-highlight-bg: rgba(34,197,94,.06);--ct-result-highlight-border: rgba(34,197,94,.12);--ct-quickwin-bg: linear-gradient(135deg, var(--teal-frost), var(--teal-mist));--ct-quickwin-border: var(--teal-light);--ct-quickwin-text: var(--teal-deep);--ct-tip-bg: var(--teal-frost);--ct-checklist-border: rgba(0,0,0,.04);--ct-footer-bg: var(--body-dark);--mob-toggle-bg: #fff;--mob-toggle-color: var(--midnight);--accent-bg: rgba(20,184,166,.08);--green-bg: rgba(34,197,94,.08);--green-border: rgba(34,197,94,.15)}.app.light-theme{--sb-bg: #fff;--sb-text: var(--midnight);--sb-text-sec: var(--stone);--sb-label: var(--stone-light);--sb-hover: rgba(0,0,0,.03);--sb-active: rgba(20,184,166,.08);--sb-border: rgba(0,0,0,.06);--sb-toggle: rgba(0,0,0,.03);--sb-toggle-color: var(--stone);--sb-toggle-hover: rgba(0,0,0,.06);--sb-btn-icon: rgba(0,0,0,.02);--sb-badge-bg: rgba(20,184,166,.08);--sb-badge-color: var(--teal);--sb-token-bg: rgba(0,0,0,.03);--sb-token-color: var(--stone-light);--sb-logout-bg: rgba(0,0,0,.03);--sb-logout-color: var(--stone-light)}.app.light-theme .sidebar{border-right-color:rgba(0,0,0,.06)}.app.light-theme .sidebar.collapsed .sidebar-item.active .sidebar-item-icon{box-shadow:0 0 0 2.5px var(--teal-bright)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:var(--font-body);transition:background .3s;-webkit-font-smoothing:antialiased}.app{display:flex;height:100vh;width:100%;background:var(--ct-page)}.toggle-mobile-sidebar{position:fixed;left:-1px;top:16px;width:30px;height:70px;border-radius:0 8px 8px 0;background:var(--teal-bright);opacity:.8;border:none;color:#fff;z-index:15;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:2px 0 8px rgba(var(--site-rgb), 0.2);transform:translateX(0);transition:transform .4s}.toggle-mobile-sidebar.close{transform:translateX(-100%)}.mobile-toggle{display:none;position:fixed;top:26px;left:16px;z-index:200;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--mob-toggle-bg);border:1px solid var(--ct-border);color:var(--mob-toggle-color);font-size:18px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);transition:background .3s,color .3s}.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:90}.mobile-overlay.show{display:block}.mobile-settings-btn{display:none;position:fixed;top:12px;right:12px;z-index:200;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--mob-toggle-bg);border:1px solid var(--ct-border);color:var(--mob-toggle-color);font-size:18px;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);transition:background .3s,color .3s}.confirm-overlay{position:fixed;inset:0;z-index:8900;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);backdrop-filter:blur(2px)}.confirm-dialog{background:#fff;border-radius:12px;padding:24px;min-width:320px;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.15)}.confirm-message{font-size:15px;line-height:1.5;color:#1f2937;margin-bottom:20px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;border:none;cursor:pointer;transition:background .15s}.confirm-btn--cancel{background:#f3f4f6;color:#6b7280}.confirm-btn--cancel:hover{background:#e5e7eb}.confirm-btn--ok{background:#3b82f6;color:#fff}.confirm-btn--ok:hover{background:#2563eb}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;box-shadow:0 4px 16px rgba(0,0,0,.15);max-width:360px}.toast--info{background:var(--ct-card);color:var(--ct-ink);border:1px solid var(--ct-border)}.toast--success{background:#16a34a;color:#fff}.toast--error{background:#ef4444;color:#fff}.toast-enter-active{animation:toastIn .3s ease-out}.toast-leave-active{animation:toastOut .2s ease-in forwards}@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes toastOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(40px)}}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#fafffe;padding:24px;position:relative;overflow:hidden}.login-wrap::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%, rgba(20, 184, 166, 0.08), transparent 50%),radial-gradient(circle at 80% 70%, rgba(15, 118, 110, 0.06), transparent 50%);pointer-events:none}.login-wrap::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(15, 118, 110, 0.03) 1px, transparent 1px),linear-gradient(90deg, rgba(15, 118, 110, 0.03) 1px, transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse at center, black 30%, transparent 80%);-webkit-mask-image:radial-gradient(ellipse at center, black 30%, transparent 80%);pointer-events:none}.login-card{width:100%;max-width:400px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:24px;padding:40px 32px;position:relative;z-index:1;box-shadow:0 4px 12px rgba(15,118,110,.05),0 16px 40px rgba(15,118,110,.04)}.login-logo{text-align:center;margin-bottom:32px}.login-logo-img{height:28px;width:auto;opacity:.9}.login-logo-text{font-size:24px;font-weight:900;color:#1a1a1a;letter-spacing:-0.5px}.login-logo-text span{color:#14b8a6}.login-logo-sub{font-size:13px;color:#9ca3af;font-weight:600;margin-top:6px}.login-title{font-family:"Fraunces",Georgia,serif;font-size:28px;font-weight:700;color:#1a1a1a;text-align:center;line-height:1.2;margin-bottom:8px;letter-spacing:-0.02em}.login-desc{font-size:14px;color:#6b7280;text-align:center;line-height:1.5;margin-bottom:32px}.login-field{margin-bottom:24px}.login-label{display:block;font-family:"DM Mono",monospace;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#9ca3af;margin-bottom:12px;font-weight:500;text-align:center}.login-code-inputs{display:flex;justify-content:center;gap:8px}.login-code-input{width:48px;height:56px;padding:0;background:#f0fdfa;border:1.5px solid rgba(0,0,0,.06);border-radius:12px;font-family:"DM Mono",monospace;font-size:24px;font-weight:600;color:#1a1a1a;text-align:center;outline:none;transition:all .2s;caret-color:#14b8a6}.login-code-input::placeholder{color:#d1d5db}.login-code-input:focus{border-color:#14b8a6;background:#fff;box-shadow:0 0 0 3px rgba(20,184,166,.1);transform:translateY(-2px)}.login-code-input.input-error{border-color:rgba(249,112,102,.5);background:rgba(249,112,102,.04);animation:shake .4s ease}.login-code-input.input-error:focus{border-color:#f97066;box-shadow:0 0 0 3px rgba(249,112,102,.1)}@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.login-input{width:100%;padding:14px 16px;background:#f0fdfa;border:1.5px solid rgba(0,0,0,.06);border-radius:10px;font-family:"DM Sans",sans-serif;font-size:15px;color:#1a1a1a;outline:none;transition:all .2s}.login-input::placeholder{color:#9ca3af}.login-input:focus{border-color:#14b8a6;background:#fff;box-shadow:0 0 0 3px rgba(20,184,166,.1)}.login-input.input-error{border-color:rgba(249,112,102,.5);background:rgba(249,112,102,.04)}.login-input.input-error:focus{border-color:#f97066;box-shadow:0 0 0 3px rgba(249,112,102,.1)}.login-btn{width:100%;padding:14px;background:#14b8a6;border:none;border-radius:50px;font-family:"DM Sans",sans-serif;font-size:15px;font-weight:700;color:#fff;cursor:pointer;transition:all .3s cubic-bezier(0.22, 1, 0.36, 1);box-shadow:0 3px 12px rgba(20,184,166,.25)}.login-btn:hover{background:#0f766e;transform:translateY(-2px);box-shadow:0 8px 24px rgba(20,184,166,.3)}.login-btn:active{transform:translateY(0);box-shadow:0 3px 12px rgba(20,184,166,.25)}.login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.login-btn.is-loading{opacity:.7;cursor:wait}.login-btn-back{display:block;width:100%;margin-top:10px;padding:12px 18px;border-radius:50px;font-size:13px;font-weight:600;font-family:inherit;color:var(--ct-text-sec);background:rgba(0,0,0,0);border:1.5px solid var(--ct-border);cursor:pointer;transition:all .2s}.login-btn-back:hover{color:var(--teal-bright);border-color:var(--teal-bright);background:rgba(var(--site-rgb), 0.06)}.alert{padding:12px 16px;border-radius:10px;font-size:13px;font-weight:600;margin-bottom:20px;line-height:1.4}.alert-error{background:rgba(249,112,102,.08);border:1px solid rgba(249,112,102,.15);color:#f97066}.login-timer{text-align:center;animation:alertIn .4s cubic-bezier(0.22, 1, 0.36, 1) both}.login-timer .login-title{margin-bottom:8px;color:#14b8a6}.login-timer .login-desc{color:#6b7280;margin-bottom:28px}.login-countdown{width:112px;height:112px;margin:0 auto 24px;border-radius:50%;background:#f0fdfa;border:2px solid rgba(20,184,166,.2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:"DM Mono",monospace;font-size:32px;line-height:1;font-weight:700;color:#14b8a6;position:relative;animation:countdownPulse 2s ease-in-out infinite}.login-countdown::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(0,0,0,0);border-top-color:#14b8a6;animation:countdownSpin 3s linear infinite}.login-countdown-num{font-size:32px;font-weight:700}.login-countdown-label{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;opacity:.6}@keyframes alertIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes countdownPulse{0%,100%{box-shadow:0 0 0 0 rgba(20,184,166,.1)}50%{box-shadow:0 0 0 16px rgba(20,184,166,0)}}@keyframes countdownSpin{to{transform:rotate(360deg)}}.login-timer .login-footer{margin-top:16px;color:#9ca3af}.login-footer{text-align:center;margin-top:24px;font-size:12px;color:#9ca3af}.login-footer a{color:#14b8a6;text-decoration:none;font-weight:700;transition:color .2s}.login-footer a:hover{color:#0f766e}.text-center{text-align:center}.mb-md{margin-bottom:16px}@media(max-width: 480px){.login-card{padding:32px 20px;border-radius:16px}.login-title{font-size:24px}.login-code-inputs{gap:6px}.login-code-input{width:42px;height:50px;font-size:20px;border-radius:10px}}
