:root{--noir: #050608;--noir-deep: #0a0b10;--layer-1: rgba(255, 255, 255, .04);--layer-2: rgba(255, 255, 255, .07);--line-faint: rgba(255, 255, 255, .08);--line: rgba(255, 255, 255, .12);--line-strong: rgba(255, 255, 255, .16);--text-hi: #f5f5f7;--text-mid: rgba(245, 245, 247, .72);--text-low: rgba(245, 245, 247, .5);--accent: #ff6b54;--accent-strong: #ff8a77;--accent-soft: rgba(255, 107, 84, .1);--glow-warm: var(--accent);--glow-cool: #7c6cff;--glow-teal: #2dd4bf;--glow-gold: #fbbf24;--brand: #2a3242;--brand-strong: #363f52;--brand-accent: #872222;--brand-accent-strong: #6e1b1b;--brand-accent-soft: rgba(135, 34, 34, .1);--brand-soft: #334155;--ink: #1a1a2e;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;--bg: var(--noir);--surface: #0f1116;--surface-2: #15171f;--surface-3: #1b1e28;--text: var(--text-hi);--text-muted: var(--text-mid);--text-subtle: var(--text-low);--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--border-subtle: rgba(255, 255, 255, .06);--surface-hover: rgba(255, 255, 255, .05);--text-on-fill: #ffffff;--chart-bar: rgba(255, 255, 255, .18);--series-1: #cb5644;--series-2: #4c82c6;--series-3: #00aa5a;--series-4: #7667f0;--series-5: #9f7a1c;--series-6: #bc588d;--series-other: rgba(245, 245, 247, .45);--skeleton-base: #15171f;--skeleton-shine: #21242e;--accent-ink: var(--accent);--accent-wash: var(--brand-accent-soft);--focus-ring: var(--accent);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .55);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--success: #34d399;--success-soft: rgba(52, 211, 153, .12);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .12);--warning: var(--glow-gold);--warning-soft: rgba(251, 191, 36, .12);--info: var(--glow-cool);--info-soft: rgba(124, 108, 255, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color-scheme:dark;background:var(--bg)}body{margin:0;padding:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden;background:var(--bg);color:var(--text)}#root{min-height:100vh;width:100%}a{text-decoration:none;color:inherit}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}button,input,textarea,select{font-family:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.wlf-wallet{position:relative;display:inline-block}.wlf-wallet__badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--border);background:linear-gradient(90deg,var(--info-soft),var(--layer-2));color:var(--info);font-weight:600;font-size:.85rem;cursor:pointer;transition:background .15s ease,transform .1s ease}.wlf-wallet__badge:hover{background:linear-gradient(90deg,var(--info-soft),var(--line-strong))}.wlf-wallet__badge:active{transform:scale(.97)}.wlf-wallet__icon{font-size:.9rem;color:var(--info)}.wlf-wallet__amount{font-variant-numeric:tabular-nums}.wlf-wallet__label{font-size:.75rem;color:var(--info);letter-spacing:.5px}.wlf-wallet__backdrop{position:fixed;inset:0;background:#00000040;z-index:999}.wlf-wallet__drawer{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:90vw;background:var(--surface);box-shadow:-8px 0 24px #0000001f;z-index:1000;display:flex;flex-direction:column;padding:1.25rem;overflow-y:auto;animation:wlf-slide-in .18s ease-out}@keyframes wlf-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.wlf-wallet__drawer-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:.8rem;margin-bottom:.8rem}.wlf-wallet__drawer-balance{font-size:1.7rem;font-weight:700;color:var(--info)}.wlf-wallet__drawer-sub{font-size:.75rem;color:var(--text-subtle);margin-top:.15rem}.wlf-wallet__close{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--text-muted)}.wlf-wallet__redeem{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.wlf-wallet__redeem-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-subtle);font-weight:500;cursor:not-allowed}.wlf-wallet__redeem-hint{font-size:.75rem;color:var(--text-subtle)}.wlf-wallet__section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-subtle);margin-bottom:.5rem}.wlf-wallet__loading,.wlf-wallet__empty{font-size:.9rem;color:var(--text-subtle);padding:.5rem 0}.wlf-wallet__tx-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.wlf-wallet__tx{display:flex;justify-content:space-between;align-items:flex-start;padding:.5rem .6rem;border-radius:8px;background:var(--surface-2)}.wlf-wallet__tx-main{flex:1;min-width:0}.wlf-wallet__tx-reason{font-size:.85rem;color:var(--text)}.wlf-wallet__tx-date{font-size:.7rem;color:var(--text-subtle);margin-top:.15rem}.wlf-wallet__tx-amount{font-weight:700;font-variant-numeric:tabular-nums;font-size:.9rem;margin-left:.6rem}.wlf-wallet__tx-amount--pos{color:var(--success)}.wlf-wallet__tx-amount--neg{color:var(--danger)}@media(max-width:480px){.wlf-wallet__drawer{width:100%}}.biz-switcher{position:relative;display:inline-block}.biz-switcher__trigger,.biz-switcher--empty{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .7rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.88rem;font-weight:500;cursor:pointer;max-width:220px;transition:background .15s ease,border-color .15s ease}.biz-switcher__trigger:hover,.biz-switcher--empty:hover{border-color:var(--border-strong);background:var(--surface-hover)}.biz-switcher__logo{width:22px;height:22px;border-radius:5px;object-fit:cover;flex-shrink:0;background:#eceaf5;display:inline-flex;align-items:center;justify-content:center;color:var(--info);font-weight:700;font-size:.75rem}.biz-switcher__logo--placeholder{background:linear-gradient(135deg,var(--info-soft),#e8e3ff)}.biz-switcher__name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.biz-switcher__chev{font-size:.7rem;color:var(--text-subtle);margin-left:auto}.biz-switcher__plus{font-size:1rem;color:var(--info);font-weight:700}.biz-switcher__label{font-weight:600;color:var(--info)}.biz-switcher__menu{position:absolute;top:calc(100% + 6px);left:0;min-width:260px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 28px #0000001f;padding:.35rem;z-index:1005;display:flex;flex-direction:column;max-height:360px;overflow-y:auto}.biz-switcher__option{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left;width:100%;transition:background .12s ease}.biz-switcher__option:hover{background:var(--surface-hover)}.biz-switcher__option--active{background:var(--info-soft)}.biz-switcher__option--new{border-top:1px solid var(--border);margin-top:.2rem;padding-top:.6rem}.biz-switcher__option-main{display:flex;flex-direction:column;min-width:0;flex:1}.biz-switcher__option-name{font-size:.88rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.biz-switcher__option-slug{font-size:.72rem;color:var(--text-subtle)}.biz-switcher__check{color:var(--info);font-weight:700}.header{--focus-ring: var(--accent);background:color-mix(in srgb,var(--noir) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line-faint);position:sticky;top:0;z-index:1000}.header-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.header-top-right{display:flex;align-items:center;gap:1rem}.header-nav-bar{border-top:1px solid var(--line-faint)}.header-nav-bar .header-container{padding-top:0;padding-bottom:0}.logo{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--text-hi);text-decoration:none;transition:opacity .3s}.logo:hover{opacity:.8}.logo-icon{width:32px;height:32px;object-fit:contain}.logo-text{color:var(--text-hi)}.nav-desktop{display:flex;gap:2rem;align-items:center}.nav-link{color:var(--text-mid);font-weight:500;text-decoration:none;transition:color .2s,border-color .2s;padding:.5rem 0;border-bottom:2px solid transparent}.nav-link:hover{color:var(--text-hi);border-bottom-color:var(--line-strong)}.nav-link.active{color:var(--text-hi);font-weight:600;border-bottom-color:var(--accent)}.nav-link.active:hover{border-bottom-color:var(--accent-strong)}.nav-desktop--marketing .nav-link{font-size:.875rem;color:var(--text-low)}.nav-desktop--marketing .nav-link:hover,.nav-desktop--marketing .nav-link.active{color:var(--text-mid)}.auth-buttons-desktop{display:flex;gap:1rem;align-items:center}.user-greeting{color:var(--text-mid);font-weight:500}.header .btn-primary{background:linear-gradient(100deg,var(--accent) 0%,var(--glow-cool) 100%);color:var(--noir-deep)}.header .btn-primary:hover:not(:disabled){background:linear-gradient(100deg,var(--accent) 0%,var(--glow-cool) 100%);opacity:.9}.btn-outline{background:transparent;color:var(--text-hi);border:1px solid var(--line-strong)}.btn-outline:hover{background:var(--line-faint);color:var(--text-hi)}.btn-block{width:100%}.mobile-menu-button{display:none;flex-direction:column;gap:4px;background:none;border:none;padding:.5rem;cursor:pointer}.mobile-menu-button span{display:block;width:25px;height:3px;background:var(--text-hi);transition:all .3s;border-radius:3px}.mobile-menu-button.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-menu-button.active span:nth-child(2){opacity:0}.mobile-menu-button.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.mobile-menu{display:none;flex-direction:column;padding:1rem 2rem 2rem;border-top:1px solid var(--line-faint);background:color-mix(in srgb,var(--noir) 95%,transparent)}.mobile-nav{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.mobile-nav-link{color:var(--text-mid);font-weight:500;padding:.75rem 1rem;border-radius:8px;border-left:2px solid transparent;transition:background-color .2s,color .2s,border-color .2s}.mobile-nav-link:hover{background-color:var(--layer-2);color:var(--text-hi)}.mobile-nav-link.active{background-color:var(--layer-2);border-left-color:var(--accent);color:var(--text-hi);font-weight:600}.mobile-nav-divider{border:0;border-top:1px solid var(--line-faint);margin:.5rem 0}.mobile-auth-buttons{display:flex;flex-direction:column;gap:.75rem}.mobile-user-greeting{color:var(--text-mid);font-weight:500;text-align:center;padding:.5rem}@media(max-width:768px){.header-container{padding:1rem}.nav-desktop,.auth-buttons-desktop,.header-nav-bar{display:none}.mobile-menu-button,.mobile-menu{display:flex}}.footer{background:#1a1a2e;color:#e0e0e0;padding:3rem 0 1.5rem;margin-top:auto}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem}.footer-section{display:flex;flex-direction:column;gap:1rem}.footer-logo{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.footer-logo-icon{width:32px;height:32px;object-fit:contain}.footer-logo-text{color:#f5f5f7}.footer-description{color:#b0b0b0;font-size:.9rem;line-height:1.6}.footer-title{font-size:1rem;font-weight:600;color:var(--text-on-fill);margin-bottom:.5rem}.footer-links{display:flex;flex-direction:column;gap:.75rem}.footer-links li{list-style:none}.footer-links a{color:#b0b0b0;text-decoration:none;font-size:.9rem;transition:color .3s}.footer-links a:hover{color:#f5f5f7}.footer-bottom{padding-top:2rem;border-top:1px solid #2a2a3e;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.footer-copyright{color:gray;font-size:.875rem}.footer-version{justify-self:center;color:gray;font-size:.875rem;font-variant-numeric:tabular-nums;white-space:nowrap}.footer-legal{justify-self:end}.footer-legal{display:flex;gap:1rem;align-items:center}.footer-legal a{color:gray;text-decoration:none;font-size:.875rem;transition:color .3s}.footer-legal a:hover{color:#f5f5f7}.footer-divider{color:gray}@media(max-width:768px){.footer{padding:2rem 0 1rem}.footer-container{padding:0 1rem}.footer-content{grid-template-columns:1fr;gap:2rem}.footer-bottom{grid-template-columns:1fr;justify-items:center;text-align:center;gap:1rem}.footer-legal{flex-wrap:wrap;justify-content:center;justify-self:center}}.main-layout{display:flex;flex-direction:column;min-height:100vh;width:100%}.main-content{flex:1;width:100%}.business-layout{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}.business-layout-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.25rem;flex-wrap:wrap}.back-link{background:none;border:none;color:var(--brand);font-size:.875rem;cursor:pointer;padding:0;white-space:nowrap}.back-link:hover{text-decoration:underline}.business-layout-title{display:flex;align-items:center;gap:.75rem}.business-layout-logo{width:36px;height:36px;border-radius:6px;object-fit:cover}.business-layout-title h1{font-size:1.4rem;font-weight:700;margin:0;color:var(--text)}.business-layout-body{display:grid;grid-template-columns:200px minmax(0,1fr);gap:1.75rem;align-items:start}.business-sidebar{position:sticky;top:1.5rem;align-self:start}.business-nav{display:flex;flex-direction:column;gap:2px;border-right:2px solid var(--border);padding-right:.5rem}.biz-nav-link{display:block;padding:.55rem .85rem;color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;border-radius:6px;border-left:2px solid transparent;white-space:nowrap;transition:color .15s,background .15s,border-color .15s}.biz-nav-link:hover{color:var(--text);background:var(--surface-hover)}.biz-nav-link.active{color:var(--accent-ink);border-left-color:var(--accent-ink);background:var(--accent-wash);font-weight:600}.business-layout-content{min-width:0;min-height:300px}.business-mobile-notice{display:none}@media(max-width:860px){.business-layout-header,.business-layout-body{display:none}.business-mobile-notice{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:1.5rem .5rem}.business-mobile-notice-card{max-width:360px;text-align:center;background:var(--surface, var(--surface));border:1px solid var(--border);border-radius:12px;padding:2rem 1.5rem}.business-mobile-notice-card h2{margin:0 0 .75rem;font-size:1.25rem;font-weight:700;color:var(--text)}.business-mobile-notice-badge{display:inline-block;margin:0 0 1rem;padding:.25rem .7rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--brand-accent);background:#87222214;border-radius:999px}.business-mobile-notice-card p{margin:0 0 1rem;font-size:.9rem;line-height:1.5;color:var(--text-muted)}.business-mobile-notice-card .back-link{font-size:.9rem}}.app{min-height:100vh}.login-container,.register-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card,.register-card{background:var(--surface);border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;max-width:450px;width:100%}.login-header,.register-header{text-align:center;margin-bottom:30px}.login-header h1,.register-header h1{color:var(--text);margin-bottom:8px;font-size:28px}.login-header p,.register-header p{color:var(--text-muted);font-size:14px}.login-form,.register-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:var(--text);font-weight:500;font-size:14px}.form-group input,.form-select{padding:12px;border:1px solid var(--border-strong);border-radius:6px;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-select:focus{outline:none;border-color:var(--brand)}.form-group input.error{border-color:var(--danger)}.error-message{color:var(--danger);font-size:12px}.form-hint{color:var(--text-muted);font-size:12px}.error-alert{padding:12px;background:var(--danger-soft);border:1px solid var(--danger);border-radius:6px;color:var(--danger);font-size:14px}.form-options{display:flex;justify-content:flex-end}.forgot-password-link{color:var(--brand);font-size:14px;text-decoration:none}.forgot-password-link:hover{text-decoration:underline}.btn{padding:12px 24px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s}.btn-primary{background:var(--brand);color:var(--text-on-fill)}.btn-primary:hover:not(:disabled){background:#5568d3}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#6b7280;color:var(--text-on-fill)}.btn-secondary:hover{background:#4b5563}.sso-providers{display:flex;flex-direction:column;gap:12px;padding:0 24px}.auth-divider{display:flex;align-items:center;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-strong)}.auth-divider span{padding:0 12px;color:var(--text-subtle);font-size:14px}.login-footer,.register-footer{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.login-footer p,.register-footer p{color:var(--text-muted);font-size:14px}.register-link,.login-link{color:var(--brand);text-decoration:none;font-weight:500}.register-link:hover,.login-link:hover{text-decoration:underline}.dashboard-container{max-width:1200px;margin:0 auto;padding:40px 20px;min-height:calc(100vh - 200px)}.dashboard-header{background:linear-gradient(135deg,var(--brand) 0%,var(--brand-accent) 100%);padding:32px 24px;border-radius:12px;box-shadow:0 4px 12px #1e293b33;margin-bottom:30px}.dashboard-header h1{color:var(--text-on-fill);font-size:28px;margin:0;font-weight:600}.dashboard-content{display:grid;gap:30px}.user-info-card,.quick-actions{background:var(--surface);padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000001a}.user-info-card h2,.quick-actions h2{color:var(--text);margin-bottom:20px;font-size:20px}.user-details p{margin:12px 0;color:var(--text-muted)}.user-details strong{color:var(--text)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-card{background:var(--surface);padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000001a;text-align:center}.stat-card h3{color:var(--text-muted);font-size:14px;font-weight:500;margin-bottom:12px}.stat-number{font-size:36px;font-weight:700;color:var(--brand);margin:0}.stat-card small{color:var(--text-subtle);font-size:12px}.action-buttons{display:flex;gap:12px;flex-wrap:wrap}.api-key-generation{margin-top:24px;padding:20px;background:var(--surface-2);border-radius:8px;border:1px solid var(--border)}.api-key-generation h3{color:var(--text);margin-bottom:16px;font-size:18px}.api-key-generation .form-group{margin-bottom:16px}.api-key-generation .btn{width:100%}.api-key-display{margin-top:20px}.api-key-alert{background:linear-gradient(135deg,var(--warning-soft) 0%,#fde68a 100%);border:2px solid var(--warning);border-radius:12px;padding:24px;box-shadow:0 4px 12px #f59e0b33}.api-key-alert h3{color:var(--warning);margin-bottom:8px;font-size:20px}.warning-text{color:var(--warning);margin-bottom:16px;font-weight:500}.api-key-container{display:flex;gap:12px;align-items:center;background:var(--surface);padding:16px;border-radius:8px;margin-bottom:16px;border:1px solid var(--warning)}.api-key-value{flex:1;font-family:Courier New,monospace;font-size:14px;color:var(--text);word-break:break-all;background:var(--surface-2);padding:8px;border-radius:4px}.btn-copy{background:var(--brand);color:var(--text-on-fill);padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;white-space:nowrap}.btn-copy:hover{background:#5568d3}.btn-danger{background:#ef4444;color:var(--text-on-fill)}.btn-danger:hover{background:var(--danger)}.btn-small{padding:8px 16px;font-size:13px}.api-keys-section{background:var(--surface);padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000001a}.api-keys-section h2{color:var(--text);margin-bottom:20px;font-size:20px}.api-keys-list{display:grid;gap:16px}.api-key-card{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:20px;transition:box-shadow .3s}.api-key-card:hover{box-shadow:0 4px 12px #00000014}.api-key-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.api-key-header h3{color:var(--text);font-size:18px;margin:0}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active{background:var(--success-soft);color:var(--success)}.status-badge.inactive{background:var(--danger-soft);color:var(--danger)}.api-key-info{margin-bottom:16px}.api-key-info p{margin:8px 0;color:var(--text-muted);font-size:14px}.api-key-info strong{color:var(--text)}.api-key-actions{display:flex;gap:8px;flex-wrap:wrap}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;color:var(--text-on-fill)}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:var(--border);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.access-denied-container,.not-found{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;color:var(--text-on-fill);text-align:center;padding:20px}.access-denied-container h2,.not-found h1{font-size:36px;margin-bottom:16px}.access-denied-container p,.not-found p{font-size:18px;margin-bottom:24px}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:16px}.action-buttons{flex-direction:column}.action-buttons .btn{width:100%}}.ai-chat__backdrop{position:fixed;inset:0;background:#0003;z-index:1000}.ai-chat{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:94vw;background:var(--surface);box-shadow:-8px 0 24px #0000001f;z-index:1001;display:flex;flex-direction:column;animation:ai-chat-in .2s ease-out}@keyframes ai-chat-in{0%{transform:translate(100%)}to{transform:translate(0)}}.ai-chat__head{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.ai-chat__head h3{margin:0;font-size:1.05rem}.ai-chat__mode{font-size:.7rem;color:var(--text-subtle);letter-spacing:.5px;text-transform:uppercase}.ai-chat__close{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--text-muted)}.ai-chat__body{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.7rem}.ai-chat__empty{color:var(--text-subtle);font-size:.9rem;line-height:1.4}.ai-chat__turn{display:flex;flex-direction:column;gap:.4rem;max-width:100%}.ai-chat__turn--user{align-self:flex-end;align-items:flex-end}.ai-chat__turn--assistant{align-self:flex-start;align-items:flex-start}.ai-chat__bubble{padding:.55rem .8rem;border-radius:12px;font-size:.9rem;line-height:1.4;max-width:100%;word-wrap:break-word;white-space:pre-wrap}.ai-chat__turn--user .ai-chat__bubble{background:linear-gradient(90deg,var(--info),var(--info));color:var(--text-on-fill);border-bottom-right-radius:4px}.ai-chat__turn--assistant .ai-chat__bubble{background:#f3f1ff;color:var(--text);border-bottom-left-radius:4px}.ai-chat__bubble--typing{color:var(--text-subtle);font-style:italic}.ai-chat__tool-calls{display:flex;flex-direction:column;gap:.5rem;width:100%}.ai-chat__tool-call{background:#fffaef;border:1px solid #f4deb0;border-radius:10px;padding:.6rem .8rem}.ai-chat__tool-call-name{font-size:.8rem;color:var(--warning);margin-bottom:.3rem}.ai-chat__tool-call-name code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--surface);padding:.05rem .3rem;border-radius:4px}.ai-chat__tool-call-args{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;background:var(--surface);border:1px solid #f0e4c6;padding:.4rem .5rem;border-radius:6px;overflow-x:auto;white-space:pre-wrap;margin:0 0 .5rem}.ai-chat__tool-call-actions{display:flex;gap:.4rem}.ai-chat__btn{padding:.35rem .8rem;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.8rem;font-weight:600;border-radius:6px;cursor:pointer}.ai-chat__btn--primary{background:linear-gradient(90deg,var(--info),var(--info));color:var(--text-on-fill);border-color:transparent}.ai-chat__btn:disabled{opacity:.6;cursor:not-allowed}.ai-chat__tool-call-outcome{font-size:.8rem;margin-top:.3rem;padding:.4rem .5rem;border-radius:6px}.ai-chat__tool-call-outcome--ok{background:var(--success-soft);color:#1f6f45}.ai-chat__tool-call-outcome--err{background:#fce9e9;color:var(--accent-ink)}.ai-chat__tool-call-outcome pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;margin:.25rem 0 0;white-space:pre-wrap}.ai-chat__error{background:var(--danger-soft);border-top:1px solid var(--danger);color:var(--accent-ink);padding:.5rem 1.25rem;font-size:.85rem}.ai-chat__composer{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border)}.ai-chat__composer textarea{flex:1;padding:.5rem .7rem;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9rem;resize:vertical;min-height:40px}.ai-chat__composer textarea:focus{outline:none;border-color:var(--info);box-shadow:0 0 0 3px #5b3ed626}.ai-chat__send{padding:.5rem 1rem;background:linear-gradient(90deg,var(--info),var(--info));color:var(--text-on-fill);border:none;border-radius:8px;font-weight:600;cursor:pointer}.ai-chat__send:disabled{opacity:.5;cursor:not-allowed}@media(max-width:480px){.ai-chat{width:100%}}.qa-fab{position:fixed;right:1.2rem;bottom:1.2rem;display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;border-radius:999px;border:none;background:linear-gradient(90deg,var(--info),var(--info));color:var(--text-on-fill);font-weight:600;font-size:.9rem;box-shadow:0 10px 26px #5b3ed64d;cursor:pointer;z-index:900;transition:transform .1s ease,box-shadow .15s ease}.qa-fab:hover{box-shadow:0 14px 30px #5b3ed666}.qa-fab:active{transform:scale(.97)}.qa-fab__icon{font-size:1.05rem}.qa-fab__kbd{display:inline-block;padding:.1rem .45rem;border-radius:4px;background:#ffffff2e;font-size:.7rem;font-weight:700;letter-spacing:.5px}.qa-backdrop{position:fixed;inset:0;background:#00000059;z-index:998}.qa-sheet{position:fixed;z-index:999;background:var(--surface);animation:qa-sheet-in .2s ease-out;display:flex;flex-direction:column}@keyframes qa-sheet-in{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:720px){.qa-sheet{top:12vh;left:50%;transform:translate(-50%);width:540px;max-width:92vw;border-radius:14px;box-shadow:0 24px 60px #0003;padding:1rem}.qa-sheet__grip{display:none}}@media(max-width:719px){.qa-sheet{bottom:0;left:0;right:0;border-radius:20px 20px 0 0;padding:.8rem 1rem 1.1rem;box-shadow:0 -10px 28px #0000002e}.qa-sheet__grip{width:40px;height:4px;border-radius:2px;background:#d8d4f0;margin:0 auto .7rem}}.qa-sheet__input{width:100%;padding:.7rem .9rem;border:1px solid var(--border);border-radius:10px;font-size:1rem;box-sizing:border-box;outline:none;margin-bottom:.6rem}.qa-sheet__input:focus{border-color:var(--info);box-shadow:0 0 0 3px #5b3ed61f}.qa-sheet__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem;max-height:50vh;overflow-y:auto}.qa-action{width:100%;display:flex;align-items:center;gap:.8rem;padding:.65rem .8rem;border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;transition:background .12s ease}.qa-action:hover{background:var(--surface-hover)}.qa-action__icon{font-size:1.3rem;flex-shrink:0}.qa-action__body{display:flex;flex-direction:column;min-width:0}.qa-action__label{font-size:.95rem;font-weight:600;color:var(--text)}.qa-action__hint{font-size:.78rem;color:var(--text-muted)}.qa-sheet__empty{padding:1rem;color:var(--text-subtle);text-align:center}.qa-sheet__note{margin-top:.6rem;font-size:.78rem;color:var(--text-subtle);text-align:center}
