:root{--primary:#155DFC;--welcome-blue:#155DFC;--primary-dark:#1D293B;--primary-light:#8CB7FD;--primary-soft:#325FF6;--primary-sky:#4275F8;--primary-tint:#E0E8FF;--gold-premium:#F69D10;--accent-green:#30C25B;--accent-green-light:#EDFEF6;--text:#1D293B;--text-secondary:#3B454D;--muted:#6D7380;--text-tertiary:#95A3B9;--text-disabled:#AFB3BD;--bg:#F8FAFC;--surface:#FFFFFF;--surface-muted:#F4F7FB;--line:#EDF0F5;--line-strong:#AFB3BD;--danger:#F14A66;--stock-up:#F14A66;--stock-down:#30C25B;--warning:#F69D10;--success:#30C25B;--focus:#155DFC;--radius:10px;--shadow:0 1px 2px rgba(16,24,40,0.04),0 8px 24px rgba(16,24,40,0.06);--sidebar-bg:#FFFFFF;--sidebar-text:var(--text);--sidebar-text-muted:var(--muted);--sidebar-border:var(--line);--sidebar-hover:var(--surface-muted);--sidebar-active-bg:#EDF2FE;--sidebar-active-text:var(--primary)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,HarmonyOS Sans SC,Segoe UI,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a:hover{text-decoration:none!important}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);padding:0 14px;display:flex;flex-direction:column;gap:14px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;align-self:start;border-right:1px solid var(--line)}.brand{height:64px;display:flex;align-items:center;gap:10px;padding:0 8px;border-bottom:1px solid var(--line);flex-shrink:0}.brand-logo{width:32px;height:32px;flex-shrink:0;object-fit:contain}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-title{margin:0;font-size:15px;line-height:1.3;font-weight:700;letter-spacing:.02em;color:#101828}.brand-subtitle{margin:1px 0 0;color:var(--text-tertiary);font-size:10px;line-height:1.2;letter-spacing:.12em;font-weight:500}.nav-list{display:grid;grid-gap:4px;gap:4px}.nav-link{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border-radius:var(--radius);color:var(--sidebar-text-muted);font-size:14px;font-weight:500;transition:all .15s ease}.nav-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.nav-label-cn{font-size:14px;font-weight:500;line-height:1.25}.nav-label-en{font-size:9px;line-height:1.2;color:var(--text-tertiary);opacity:.75;letter-spacing:.06em;text-transform:uppercase}.nav-link:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.sidebar-footer{margin-top:auto;padding:10px 2px 12px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.sidebar-user-card{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:11px;border:1px solid transparent;background:var(--surface-muted);text-decoration:none;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.sidebar-user-card:hover{box-shadow:0 4px 14px rgba(21,93,252,.07)}.sidebar-user-card.active,.sidebar-user-card:hover{background:var(--surface);border-color:var(--primary-tint)}.sidebar-user-card.active{box-shadow:0 4px 14px rgba(21,93,252,.08)}.sidebar-user-card.active .sidebar-user-name{color:var(--primary)}.sidebar-user-avatar-wrap{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(140deg,#EAF1FF,#FDF4E3);box-shadow:inset 0 0 0 1px rgba(21,93,252,.1);transition:box-shadow .18s ease}.sidebar-user-card:hover .sidebar-user-avatar-wrap{box-shadow:inset 0 0 0 1px rgba(21,93,252,.22)}.sidebar-user-avatar{width:21px;height:18px;object-fit:contain}.sidebar-user-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.sidebar-user-name{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-points{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#B45309;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sidebar-user-chevron{flex-shrink:0;color:var(--text-disabled);opacity:0;transform:translateX(-3px);transition:opacity .18s ease,transform .18s ease}.sidebar-user-card:hover .sidebar-user-chevron{opacity:1;transform:translateX(0)}.sidebar-reward{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:8px;border:1px solid #fde9c8;background:linear-gradient(90deg,#FFFBEB,#FFF6E9);color:#92400E;font-size:12px;font-weight:500;text-decoration:none;transition:background .15s ease,border-color .15s ease}.sidebar-reward:hover{background:linear-gradient(90deg,#FFF6E0,#FFF1DC);border-color:#FCD9A0}.sidebar-reward svg{flex-shrink:0;color:var(--gold-premium)}.sidebar-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 0;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--sidebar-text-muted);font-family:inherit;font-size:12.5px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.sidebar-action-btn:hover{background:var(--sidebar-hover);border-color:#DCE4FA;color:var(--text)}.sidebar-action-danger:hover{background:#FFF5F6;border-color:#FFD9DF;color:var(--danger)}.sidebar-action-primary{border-color:#DCE4FA;color:var(--primary)}.sidebar-action-primary:hover{background:#F0F5FF;border-color:var(--primary);color:var(--primary)}.main{min-width:0;display:flex;flex-direction:column}.gateway-banner{display:flex;align-items:center;gap:8px;padding:10px 28px;background:#fff7ed;color:#c2410c;font-size:13px;text-decoration:none;cursor:pointer;border:none;width:100%;text-align:left;transition:background .15s}.gateway-banner:hover{background:#ffedd5}.gateway-banner-connecting{background:#eff6ff;border-bottom-color:#bfdbfe;color:var(--primary);cursor:default}.gateway-banner-connecting:hover{background:#eff6ff}.spinner-sm{width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}.topbar{min-height:64px;justify-content:space-between;gap:16px;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar,.topbar-back-btn{display:flex;align-items:center}.topbar-back-btn{justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;padding:0;flex-shrink:0}.topbar-title{margin:0;font-size:17px;font-weight:700;line-height:1.3;letter-spacing:.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.topbar-bell-btn{position:relative;border:none;background:transparent;color:var(--text-secondary);padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s}.topbar-bell-btn:hover{color:var(--text)}.topbar-bell-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid #fff}.topbar-points-wrap{position:relative;cursor:pointer}.topbar-points{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#B45309;padding:4px 10px;background:#FFF7ED;border:1px solid #fed7aa;border-radius:16px;white-space:nowrap}.topbar-points-dropdown{position:absolute;top:calc(100% + 8px);right:0;white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:6px;z-index:1000}.topbar-points-dropdown:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}.topbar-user-menu{position:relative}.topbar-user-trigger{display:flex;align-items:center;gap:6px;cursor:pointer}.topbar-user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:140px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:6px;z-index:1000}.topbar-user-dropdown:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}.topbar-user-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;color:var(--text);text-decoration:none;transition:background .15s}.topbar-user-dropdown-item:hover{background:var(--surface-muted)}.topbar-user-dropdown-reward{color:#92400E}.topbar-user-dropdown-reward:hover{background:#FFFBEB}.app-shell.no-sidebar{grid-template-columns:1fr}.app-shell.no-sidebar .content{max-width:880px;margin:0 auto}.content{padding:28px 32px 48px;width:100%;min-width:0;max-width:1440px}.auth-hydration-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--bg)}.auth-hydration-sidebar{background:var(--primary-dark);padding:22px;display:grid;align-content:start;grid-gap:18px;gap:18px}.auth-hydration-brand,.auth-hydration-card,.auth-hydration-line,.auth-hydration-nav,.auth-hydration-title,.auth-hydration-topbar,.detail-skeleton-card,.detail-skeleton-grid>div,.detail-skeleton-meta,.detail-skeleton-tabs,.detail-skeleton-title{position:relative;overflow:hidden;background:#EEF3FF;border-radius:8px}.auth-hydration-brand:after,.auth-hydration-card:after,.auth-hydration-line:after,.auth-hydration-nav:after,.auth-hydration-title:after,.auth-hydration-topbar:after,.detail-skeleton-card:after,.detail-skeleton-grid>div:after,.detail-skeleton-meta:after,.detail-skeleton-tabs:after,.detail-skeleton-title:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.54),transparent);animation:skeletonShimmer 1.25s ease-in-out infinite}.auth-hydration-sidebar .auth-hydration-brand,.auth-hydration-sidebar .auth-hydration-nav{background:rgba(255,255,255,.12)}.auth-hydration-brand{width:148px;height:24px;margin-bottom:10px}.auth-hydration-nav{height:40px}.auth-hydration-nav.short{width:76%}.auth-hydration-main{display:grid;grid-template-rows:64px minmax(0,1fr)}.auth-hydration-topbar{border-radius:0;border-bottom:1px solid var(--line);background:rgba(255,255,255,.88)}.auth-hydration-content{padding:28px;display:grid;align-content:start;grid-gap:16px;gap:16px}.auth-hydration-title{width:260px;height:28px}.auth-hydration-line{width:420px;max-width:70%;height:14px}.auth-hydration-card{width:min(820px,100%);height:320px;margin-top:8px}@keyframes skeletonShimmer{to{transform:translateX(100%)}}.grid{display:grid;grid-gap:16px;gap:16px}.grid.two{grid-template-columns:minmax(0,1fr) 360px}.card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:20px}.card{padding:16px}.button{border:1px solid transparent;border-radius:var(--radius);min-height:36px;padding:7px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:var(--surface);font-weight:500;cursor:pointer;transition:opacity .15s ease,background .15s ease}.button:hover:not(:disabled){opacity:.9}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--primary)}.button.danger{background:var(--danger)}.button:disabled{opacity:.54;cursor:not-allowed}.pagination{min-height:56px;display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:14px 0 0;color:var(--muted);font-size:13px;flex-wrap:wrap}.pagination-meta{margin-right:auto;color:var(--text-tertiary);white-space:nowrap}.pagination-button{min-width:76px}.pagination-button,.pagination-icon-button,.pagination-jump button,.pagination-page-button{min-height:32px;padding:5px 9px;border:1px solid #f1f5f9;border-radius:8px;background:var(--surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.pagination-icon-button{width:32px;padding:0}.pagination-page-button{min-width:32px;padding:5px 8px}.pagination-button:hover:not(:disabled),.pagination-icon-button:hover:not(:disabled),.pagination-jump button:hover:not(:disabled),.pagination-page-button:hover:not(:disabled){background:var(--surface-muted);border-color:var(--primary-light);color:var(--primary)}.pagination-page-button.active{background:var(--primary);border-color:var(--primary);color:var(--surface);font-weight:700}.pagination-button:disabled,.pagination-icon-button:disabled,.pagination-jump button:disabled,.pagination-page-button:disabled{cursor:not-allowed;color:var(--text-disabled);background:#F9FAFC}.pagination-pages{display:inline-flex;align-items:center;gap:4px}.pagination-ellipsis{min-width:22px;text-align:center;color:var(--text-tertiary)}.pagination-current{min-width:154px;display:grid;justify-items:center;grid-gap:2px;gap:2px}.pagination-page{color:var(--text-secondary);font-weight:600}.pagination-state{color:var(--text-tertiary);font-size:11px}.pagination-jump{display:inline-flex;align-items:center;gap:6px;color:var(--text-tertiary);white-space:nowrap}.pagination-jump input{width:52px;height:32px;border:1px solid #f1f5f9;border-radius:8px;background:var(--surface);color:var(--text-secondary);text-align:center;outline:none}.pagination-jump input:focus{border-color:var(--primary-light);box-shadow:0 0 0 2px rgba(21,93,252,.08)}.icon-button{width:38px;height:38px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.icon-button.send{background:var(--text);color:var(--surface);border-color:var(--text)}.icon-button:disabled{opacity:.45;cursor:not-allowed}.field{display:grid;grid-gap:6px;gap:6px}.label{color:var(--muted);font-size:13px}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);min-height:40px;padding:8px 10px}.textarea{min-height:116px;resize:vertical}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tab{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:7px 12px;color:var(--muted)}.tab.active{color:var(--primary-strong);border-color:var(--primary);background:var(--primary-tint)}.status-badge{gap:4px;padding:3px 4px;background:#ffffff;box-shadow:0 1px 3px rgba(30,41,82,.06),0 0 0 1px rgba(30,41,82,.03)}.status-badge,.status-seg{display:inline-flex;align-items:center;border-radius:999px}.status-seg{gap:6px;padding:3px 10px 3px 8px;font-size:11px;font-weight:500;line-height:1;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.status-name{opacity:.62;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.status-label{display:inline-flex;align-items:center;letter-spacing:.01em}.status-divider{width:1px;height:14px;background:linear-gradient(180deg,transparent,#e4e8f4,transparent);flex-shrink:0}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;position:relative}.status-seg.neutral{color:#6b7280}.status-seg.neutral .status-dot{background:#b0b7c3;box-shadow:0 0 0 2.5px rgba(176,183,195,.16)}.status-seg.success{color:#15803d}.status-seg.success .status-dot{background:#22c55e;animation:status-breathe-green 3.4s cubic-bezier(.45,0,.55,1) infinite}.status-seg.warning{color:#92400e}.status-seg.warning .status-dot{background:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.12)}.status-seg.warning .status-dot:after,.status-seg.warning .status-dot:before{content:"";position:absolute;inset:-2px;border-radius:50%;border:1px solid rgba(245,158,11,.3);animation:status-radar 2.8s cubic-bezier(.2,.6,.35,1) infinite}.status-seg.warning .status-dot:after{animation-delay:1.4s}.status-seg.error{color:#991b1b}.status-seg.error .status-dot{background:#ef4444;animation:status-breathe-red 2.6s cubic-bezier(.45,0,.55,1) infinite}@keyframes status-breathe-green{0%,to{box-shadow:0 0 0 2px rgba(34,197,94,.18),0 0 0 3.5px rgba(34,197,94,.06)}50%{box-shadow:0 0 0 2.5px rgba(34,197,94,.1),0 0 0 5px rgba(34,197,94,.03)}}@keyframes status-breathe-red{0%,to{box-shadow:0 0 0 2px rgba(239,68,68,.16),0 0 0 3.5px rgba(239,68,68,.05)}50%{box-shadow:0 0 0 2.5px rgba(239,68,68,.09),0 0 0 5px rgba(239,68,68,.03)}}@keyframes status-radar{0%{transform:scale(.75);opacity:.55}to{transform:scale(1.9);opacity:0}}.status-dots{width:12px;text-align:left;flex-shrink:0}.status-dots,.status-dots:after{display:inline-block;overflow:hidden}.status-dots:after{content:"...";animation:status-dots-step 1.5s steps(4) infinite;width:0}@keyframes status-dots-step{0%{width:0}25%{width:3px}50%{width:6px}75%{width:9px}to{width:12px}}.list{display:grid;grid-gap:10px;gap:10px}.list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.width-auto{width:880px;margin:0 auto}.profile-page{display:grid;grid-gap:24px;gap:24px}.profile-card{display:flex;align-items:center;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.profile-avatar{width:72px;height:72px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--primary-tint);color:var(--primary);overflow:hidden}.profile-avatar img{width:44px;height:auto}.profile-card-info{flex:1 1;min-width:0}.profile-card-info h2{margin:0;color:var(--text);font-size:22px;line-height:1.3;font-weight:700}.profile-card-info p{margin:4px 0 0;color:var(--muted);font-size:14px}.profile-edit-link{display:inline-block;margin-top:6px;font-size:13px;font-weight:500;color:var(--primary);text-decoration:none}.profile-points{display:flex;align-items:center;gap:8px;padding:8px 18px;background:#FFF7ED;border:1px solid #fed7aa;border-radius:12px;flex-shrink:0}.profile-points-icon{color:#D97706;flex-shrink:0}.profile-points-value{font-size:18px;font-weight:700;color:#92400E;line-height:1.2}.profile-points-label{font-size:12px;color:#B45309;opacity:.8}.profile-logout-btn{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:8px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;flex-shrink:0}.profile-logout-btn:hover{background:#FFF5F5;border-color:var(--danger);color:var(--danger)}.profile-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}@media (max-width:1024px){.profile-nav-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.profile-nav-grid{grid-template-columns:1fr}.profile-card{flex-wrap:wrap}}.profile-nav-card{display:flex;align-items:flex-start;gap:12px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;transition:border-color .2s,box-shadow .2s;cursor:pointer;width:100%;text-align:left;font:inherit}.profile-nav-card:hover{border-color:var(--primary-light);box-shadow:0 4px 12px rgba(21,93,252,.08)}.profile-nav-icon{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:var(--primary-tint);color:var(--primary)}.profile-nav-body{flex:1 1;min-width:0}.profile-nav-body h3{margin:0;color:var(--text);font-size:15px;font-weight:600}.profile-nav-body p{margin:4px 0 0;color:var(--muted);font-size:13px}.profile-nav-arrow{color:var(--text-disabled);flex-shrink:0;margin-top:2px;transition:transform .2s,color .2s}.profile-nav-card:hover .profile-nav-arrow{transform:translateX(2px);color:var(--primary)}.profile-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;border-top:1px solid var(--line)}.profile-deactivate{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.profile-deactivate:hover{border-color:var(--danger);color:var(--danger);background:#FFF5F5}.profile-version{color:var(--text-disabled);font-size:12px}.profile-edit-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:80px 0;color:var(--muted);font-size:14px}.profile-edit-title{margin:0 0 20px;font-size:20px;font-weight:700;color:var(--text)}.profile-edit-title-user{margin-bottom:0}.profile-edit-page{max-width:560px;margin:0 auto;display:grid;grid-gap:20px;gap:20px}.profile-edit-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:grid;grid-gap:22px;gap:22px}.profile-edit-field{display:grid;grid-gap:8px;gap:8px}.profile-edit-label{font-size:13px;font-weight:600;color:var(--text-secondary);letter-spacing:.02em}.profile-edit-required{color:var(--danger);margin-left:2px}.profile-edit-input{height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:15px;color:var(--text);outline:none;transition:border-color .15s;font-family:inherit}.profile-edit-input:focus{border-color:var(--primary)}.profile-edit-input::placeholder{color:var(--text-disabled)}.birthday-picker{position:relative}.birthday-trigger{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:15px;color:var(--text);outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s;font-family:inherit;width:100%;text-align:left}.birthday-trigger .lucide-calendar{flex-shrink:0;color:var(--text-disabled)}.birthday-trigger span{flex:1 1;min-width:0}.birthday-trigger:after{content:"";flex-shrink:0;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-disabled);transition:transform .15s}.birthday-trigger:hover{border-color:#CBD5E1}.birthday-trigger.active,.birthday-trigger:focus{border-color:var(--primary)}.birthday-trigger.active:after{transform:rotate(180deg)}.birthday-placeholder{color:var(--text-disabled)}.birthday-popover{top:calc(100% + 6px);left:0;z-index:1000;border:1px solid var(--line);border-radius:14px;box-shadow:0 0 0 1px rgba(0,0,0,.03),0 4px 6px -1px rgba(0,0,0,.06),0 12px 24px -4px rgba(0,0,0,.1);padding:8px;animation:birthdayPopoverIn .18s cubic-bezier(.16,1,.3,1)}.birthday-popover,.birthday-popover:before{position:absolute;background:var(--surface)}.birthday-popover:before{content:"";top:-6px;left:20px;width:12px;height:12px;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg);border-radius:2px 0 0 0}@keyframes birthdayPopoverIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}[data-birthday-picker] .rdp-root{--rdp-accent-color:#2563EB;--rdp-accent-background-color:rgba(37,99,235,0.08);--rdp-day-height:40px;--rdp-day-width:40px;--rdp-day_button-height:36px;--rdp-day_button-width:36px;--rdp-day_button-border-radius:50%;--rdp-day_button-border:2px solid transparent;--rdp-selected-border:2px solid var(--rdp-accent-color);--rdp-nav-height:2.25rem;--rdp-nav_button-height:2rem;--rdp-nav_button-width:2rem;--rdp-animation_duration:0.15s;--rdp-weekday-opacity:1;--rdp-outside-opacity:0.35;font-family:inherit;font-size:13px;padding:8px}[data-birthday-picker] .rdp-month_caption,[data-birthday-picker] .rdp-nav{display:none}.ym-caption{justify-content:space-between;padding:8px 4px 6px;border-bottom:1px solid var(--line);margin-bottom:4px}.ym-caption,.ym-nav-btn{display:flex;align-items:center}.ym-nav-btn{justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s,color .12s;flex-shrink:0}.ym-nav-btn:hover:not(:disabled){background:#F1F5F9;color:var(--text)}.ym-nav-btn:disabled{opacity:.3;cursor:not-allowed}.ym-caption-center{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:4px 10px;border-radius:8px;transition:background .12s}.ym-caption-center:hover{background:#F8FAFC}.ym-caption-text{font-size:15px;font-weight:600;color:var(--text);letter-spacing:.3px}.ym-caption-arrow{font-size:10px;color:var(--text-disabled);transition:transform .15s}.ym-panel{width:296px}.ym-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 4px 8px;border-bottom:1px solid var(--line)}.ym-back{background:none;border:none;color:var(--primary);font-size:13px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .12s;font-family:inherit}.ym-panel-title{font-size:14px;font-weight:600;color:var(--text)}.ym-panel-body{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;padding:8px 0}.ym-years{max-height:252px;overflow-y:auto;padding:4px 8px 4px 4px;border-right:1px solid var(--line)}.ym-years::-webkit-scrollbar{width:3px}.ym-years::-webkit-scrollbar-track{background:transparent}.ym-years::-webkit-scrollbar-thumb{background:#E2E8F0;border-radius:2px}.ym-year{display:block;width:100%;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:14px;font-weight:400;cursor:pointer;text-align:left;transition:background .1s,color .1s;font-family:inherit}.ym-year:hover{background:#F1F5F9}.ym-year.active{background:var(--primary);color:#fff;font-weight:600}.ym-months{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:4px;gap:4px;padding:4px 4px 4px 8px;align-content:start}.ym-month{padding:10px 4px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:13px;font-weight:400;cursor:pointer;text-align:center;transition:background .1s,color .1s;font-family:inherit}.ym-month:hover:not(:disabled){background:#F1F5F9}.ym-month:disabled{opacity:.3;cursor:not-allowed}.ym-month.active{background:var(--primary);color:#fff;font-weight:600}[data-birthday-picker] .rdp-months{min-width:280px}[data-birthday-picker] .rdp-weekday{font-size:12px;font-weight:500;color:#94A3B8;padding-bottom:2px}[data-birthday-picker] .rdp-day_button{font-weight:400;font-size:13px;transition:background .12s,color .12s,transform .1s}[data-birthday-picker] .rdp-day_button:hover:not(:disabled){background:#F1F5F9}[data-birthday-picker] .rdp-day_button:focus-visible{outline:2px solid var(--rdp-accent-color);outline-offset:1px}[data-birthday-picker] .rdp-day.rdp-day_selected .rdp-day_button{background:var(--rdp-accent-color);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(37,99,235,.3)}[data-birthday-picker] .rdp-day.rdp-day_selected .rdp-day_button:hover{background:#1D4ED8}[data-birthday-picker] .rdp-day.rdp-day_today:not(.rdp-day_selected) .rdp-day_button{font-weight:600;color:var(--rdp-accent-color);position:relative}[data-birthday-picker] .rdp-day.rdp-day_today:not(.rdp-day_selected) .rdp-day_button:after{content:"";position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--rdp-accent-color)}[data-birthday-picker] .rdp-day.rdp-day_outside{opacity:.35}.profile-edit-gender-group{display:flex;gap:10px}.profile-edit-gender-btn{flex:1 1;height:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s}.profile-edit-gender-btn:hover{border-color:var(--primary-light);color:var(--primary)}.profile-edit-gender-btn.active{background:var(--primary-tint);border-color:var(--primary);color:var(--primary);font-weight:600}.profile-edit-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:14px;color:var(--text);outline:none;resize:vertical;transition:border-color .15s;font-family:inherit;line-height:1.6}.profile-edit-textarea:focus{border-color:var(--primary)}.profile-edit-textarea::placeholder{color:var(--text-disabled)}.profile-edit-counter{justify-self:end;font-size:11px;color:var(--text-disabled)}.profile-edit-save-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:50px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}.profile-edit-save-btn:hover:not(:disabled){opacity:.9}.profile-edit-save-btn:disabled{background:var(--text-disabled);cursor:not-allowed;opacity:.6}.profile-edit-reward-card{background:#FFFDFB;border:1px solid #fed7aa;border-radius:var(--radius);padding:20px 24px;display:grid;grid-gap:12px;gap:12px}.profile-edit-reward-card.claimed{background:#F0FDF4;border-color:#BBF7D0}.profile-edit-reward-header{display:flex;align-items:center;gap:8px}.profile-edit-reward-title{font-size:15px;font-weight:600;color:var(--text)}.profile-edit-reward-desc{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}.profile-edit-reward-desc strong{color:#B45309;font-weight:700}.profile-edit-reward-card.claimed .profile-edit-reward-desc strong{color:#15803D}.profile-edit-reward-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.profile-edit-step{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;color:#A8A29E;background:rgba(168,162,158,.1);transition:all .2s}.profile-edit-step.done{color:#15803D;background:rgba(21,128,61,.08)}.profile-edit-step-sep{color:#D6D3D1;font-size:14px}.profile-edit-claimed-icon{color:#16A34A;flex-shrink:0}.profile-edit-claim-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:40px;border:none;border-radius:var(--radius);background:#F59E0B;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.profile-edit-claim-btn:hover:not(:disabled){background:#D97706}.profile-edit-claim-btn:disabled{background:var(--text-disabled);opacity:.6;cursor:not-allowed}.points-history-page{max-width:880px;margin:0 auto;padding:0 16px 32px}.points-history-empty{text-align:center;padding:64px 0;color:var(--muted);font-size:14px}.points-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--line);border-radius:var(--radius);overflow:hidden}.points-history-item{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--surface);gap:16px}.points-history-left{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1}.points-history-type{font-size:14px;font-weight:500}.points-history-time{font-size:12px;color:var(--muted)}.points-history-remark{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.points-history-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.points-history-amount{font-size:15px;font-weight:600}.points-history-balance{font-size:12px;color:var(--muted)}.points-history-more{display:block;width:100%;margin-top:16px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background .15s}.points-history-more:hover:not(:disabled){background:var(--surface-muted)}.points-history-more:disabled{opacity:.5;cursor:not-allowed}.about-page{max-width:880px;margin:0 auto;display:grid;grid-gap:20px;gap:20px}.about-brand{display:flex;flex-direction:column;align-items:center;padding:32px 24px 24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.about-logo-img{object-fit:contain;margin-bottom:8px}.about-version{font-size:12px;font-weight:500;color:var(--primary)}.about-section{display:grid;grid-gap:8px;gap:8px}.about-section-label{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;margin:0;font-weight:500}.about-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.about-card-body{font-size:14px;color:var(--text-secondary);line-height:22px;margin:0}.about-feature-row{display:flex;align-items:center;gap:12px;padding:10px 0}.about-feature-icon{width:32px;height:32px;border-radius:8px;background:var(--surface-alt,#F8FAFC);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.about-feature-label{font-size:14px;color:var(--text-primary)}.about-feature-divider{height:1px;background:var(--line)}.about-disclaimer{background:#FFFBEB;border-color:#FDE68A}.about-disclaimer-text{font-size:13px;color:var(--text-muted);line-height:20px;margin:0}.about-contact-row{display:flex;align-items:center;gap:12px;padding:10px 0;text-decoration:none;background:none;border:none;width:100%;cursor:pointer;font:inherit;text-align:left}.about-contact-icon{width:32px;height:32px;border-radius:8px;background:var(--surface-alt,#F8FAFC);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.about-contact-text{display:flex;flex-direction:column;gap:1px}.about-contact-label{font-size:11px;color:var(--text-muted)}.about-contact-value{font-size:14px;color:var(--primary)}.about-footer{text-align:center;padding:16px 0 32px}.about-copyright{font-size:11px;color:var(--text-disabled)}.pwd-page{max-width:880px;margin:0 auto}.pwd-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;margin-top:20px}.pwd-card-desc{margin:0 0 24px;font-size:14px;color:var(--text-tertiary)}.pwd-form{gap:20px}.pwd-field,.pwd-form{display:flex;flex-direction:column}.pwd-field{gap:6px}.pwd-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.pwd-input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:14px;color:var(--text);outline:none;transition:border-color .2s;box-sizing:border-box}.pwd-input::placeholder{color:var(--text-disabled)}.pwd-input:focus{border-color:var(--primary)}.pwd-input-row{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:border-color .2s}.pwd-input-row:focus-within{border-color:var(--primary)}.pwd-input-flex{flex:1 1;border:none;background:transparent;padding-right:0}.pwd-input-flex:focus{border:none}.pwd-code-btn{border:none;background:transparent;color:var(--primary);font-size:13px;font-weight:500;padding:8px 14px;cursor:pointer;white-space:nowrap;flex-shrink:0}.pwd-code-btn:disabled{color:var(--text-disabled);cursor:not-allowed}.pwd-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--primary-tint);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.pwd-eye-btn{border:none;background:transparent;color:var(--text-tertiary);padding:8px 14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.pwd-eye-btn:hover{color:var(--text)}.pwd-error-hint{margin:-8px 0 0;font-size:12px;color:var(--danger)}.pwd-submit-btn{width:100%;height:44px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:8px}.pwd-submit-btn:disabled{background:var(--text-disabled);cursor:not-allowed;opacity:.6}.pwd-submit-btn:not(:disabled):hover{opacity:.9}.pwd-submit-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.pwd-success-icon{display:flex;justify-content:center;margin-bottom:16px}.pwd-success-title{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--text);text-align:center}.pwd-success-desc{margin:0 0 24px;font-size:14px;color:var(--text-tertiary);text-align:center}.gateway-page{max-width:880px;margin:0 auto;display:grid;grid-gap:16px;gap:16px}.gateway-status-card{text-align:center;padding:32px 24px}.gateway-status-indicator{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.gateway-status-dot{width:10px;height:10px;border-radius:50%;background:var(--text-disabled)}.gateway-status-dot.ready{background:var(--accent-green);box-shadow:0 0 0 3px rgba(48,194,91,.2)}.gateway-status-dot.warning{background:var(--gold-premium);animation:pulse-dot 1.2s ease-in-out infinite}.gateway-status-dot.error{background:var(--danger)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.gateway-status-label{font-size:18px;font-weight:700;color:var(--text)}.gateway-status-desc{margin:0 0 20px;color:var(--muted);font-size:14px}.gateway-actions{display:flex;align-items:center;justify-content:center;gap:10px}.gateway-alert{margin:0 0 16px;padding:10px 14px;border-radius:var(--radius);font-size:13px;line-height:1.55}.gateway-alert.warning{color:var(--gold-premium);background:#FFFCEB;border:1px solid rgba(246,157,16,.16)}.gateway-alert.error{color:var(--danger);background:rgba(241,74,102,.08);border:1px solid rgba(241,74,102,.14)}.gateway-section{padding:0;overflow:hidden}.gateway-section-header{padding:14px 18px;border-bottom:1px solid var(--line)}.gateway-section-header h3{margin:0;color:var(--text);font-size:15px;font-weight:600}.gateway-code-panel{padding:16px 18px;display:flex;align-items:center;gap:10px}.gateway-code-panel code{min-width:0;flex:1 1;overflow:hidden;padding:10px 12px;border-radius:8px;background:var(--surface-muted);color:var(--text-secondary);font-size:13px;font-family:SF Mono,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.gateway-copy-button{min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--primary);display:inline-flex;align-items:center;gap:5px;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s}.gateway-copy-button:hover{background:var(--surface-muted)}.gw-page{max-width:880px;margin:0 auto;display:grid;grid-gap:16px;gap:16px}.gw-hero{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:24px}.gw-hero-glow{position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(21,93,252,.06) 0,transparent 70%);pointer-events:none}.gw-hero-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.gw-hero-title{margin:0;font-size:20px;font-weight:700;color:var(--text)}.gw-refresh-lg{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s}.gw-refresh-lg:disabled{opacity:.5;cursor:not-allowed}.gw-hero-status{display:flex;align-items:center;gap:8px}.gw-hero-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gw-hero-dot.connected{background:var(--accent-green);box-shadow:0 0 0 3px rgba(48,194,91,.18)}.gw-hero-dot.disconnected{background:var(--text-disabled)}.gw-hero-dot.offline{background:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,.18)}.gw-hero-dot.connecting{background:var(--primary);box-shadow:0 0 0 3px rgba(21,93,252,.18);animation:gw-dot-pulse 1.5s ease-in-out infinite}@keyframes gw-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.gw-hero-status-label{font-size:14px;font-weight:600;color:var(--text)}.gw-hero-status-label.offline{color:#EF4444}.gw-hero-status-label.connecting{color:var(--primary)}.gw-hero-status-sep{color:var(--text-disabled);font-size:13px}.gw-hero-status-desc{font-size:13px;color:var(--muted)}.gw-alert{margin-top:14px;padding:10px 14px;border-radius:8px;font-size:13px;color:var(--danger);background:rgba(241,74,102,.06);border:1px solid rgba(241,74,102,.12)}.gw-hero-offline{border-color:rgba(239,68,68,.12)}.gw-hero-offline .gw-hero-glow{background:radial-gradient(circle,rgba(239,68,68,.06) 0,transparent 70%)}.gw-hero-offline-body{margin-top:8px}.gw-reconnect-progress{margin-top:14px}.gw-reconnect-progress-bar{height:3px;border-radius:2px;background:rgba(21,93,252,.1);overflow:hidden}.gw-reconnect-progress-fill{height:100%;border-radius:2px;background:var(--primary);transition:width .05s linear}.gw-reconnect-progress-info{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.gw-reconnect-attempt{font-size:12px;color:var(--muted)}.gw-reconnect-countdown{font-size:12px;font-weight:600;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:24px;text-align:right}.gw-hero-offline-actions{display:flex;align-items:center;gap:10px;margin-top:14px}.gw-hero-exhausted-hint{display:flex;color:#F59E0B}.gw-hero-exhausted-hint,.gw-retry-btn{align-items:center;gap:5px;font-size:12px}.gw-retry-btn{display:inline-flex;margin-left:auto;padding:5px 14px;border-radius:6px;border:1px solid var(--primary);background:transparent;color:var(--primary);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.gw-retry-btn:hover{background:var(--primary);color:white}.gw-retry-btn-sm{padding:3px 10px;font-size:11px;margin-left:6px}.gw-metrics{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.gw-metric-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;display:flex;align-items:center;gap:12px}.gw-metric-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.gw-metric-icon.version{background:#EEF2FF;color:#6366F1}.gw-metric-icon.uptime{background:#F0FDF4;color:#22C55E}.gw-metric-icon.devices{background:#FFF7ED;color:#F97316}.gw-metric-body{min-width:0;display:flex;flex-direction:column;gap:2px}.gw-metric-label{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.02em}.gw-metric-value{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gw-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.gw-section-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.gw-section-head h3{margin:0;font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.gw-refresh{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s}.gw-refresh:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.gw-refresh:disabled{opacity:.5;cursor:not-allowed}.gw-agent-card{margin:12px 18px;padding:10px 14px;border-radius:8px;background:var(--surface-muted);display:flex;align-items:center;justify-content:space-between}.gw-agent-card-left{display:flex;align-items:center;gap:8px}.gw-agent-dot-sm{width:7px;height:7px;border-radius:50%;background:var(--agent-color);flex-shrink:0}.gw-agent-card-info{display:flex;align-items:center;gap:8px}.gw-agent-card-label{font-size:13px;font-weight:500;color:var(--text)}.gw-agent-card-type{font-size:11px;color:var(--muted)}.gw-agent-card-stats{display:flex;gap:14px}.gw-agent-stat{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.gw-agent-stat strong{color:var(--text);font-weight:500}.gw-agent-stat small{color:var(--text-disabled);font-weight:400}.gw-llm-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 16px;gap:10px 16px;width:100%}.gw-llm-item{display:flex;flex-direction:column;gap:2px}.gw-llm-label{font-size:11px;color:var(--muted)}.gw-llm-value{font-size:13px;font-weight:500;color:var(--text)}.gw-pool-bar{display:flex;gap:20px;padding:12px 18px}.gw-pool-stat{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}.gw-pool-stat strong{color:var(--text);font-weight:600}.gw-adapter-list{padding:4px 18px 16px;display:grid;grid-gap:8px;gap:8px}.gw-adapter-card{background:var(--surface-muted);border-radius:10px;padding:12px 14px}.gw-adapter-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.gw-adapter-id{font-size:13px;font-weight:600;color:var(--text);font-family:SF Mono,Menlo,monospace;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gw-adapter-badge{font-size:11px;font-weight:600;padding:2px 7px;border-radius:5px;flex-shrink:0}.gw-adapter-tags{display:flex;flex-wrap:wrap;gap:6px;margin-left:24px}.gw-tag{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:2px 8px;border-radius:4px;background:var(--surface);color:var(--muted)}.gw-tag-green{color:#10B981;background:#ECFDF5}.gw-tag-red{color:#EF4444;background:#FEF2F2}.gw-tag-muted{color:var(--text-secondary);background:var(--surface)}.gw-tag-mono{font-family:SF Mono,Menlo,monospace;font-size:10px}.gw-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px;color:var(--muted);font-size:14px}.spinning{animation:spin .8s linear infinite}@media (max-width:640px){.gw-metrics{grid-template-columns:1fr}}.muted{color:var(--muted)}.article-detail{display:grid;grid-gap:18px;gap:18px}.app-detail-page{max-width:880px;margin:0 auto;padding:24px 28px 40px;min-height:100vh}.app-detail-nav{min-height:48px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-bottom:18px;color:var(--text)}.app-detail-nav strong{justify-self:center;font-size:16px;line-height:1}.app-detail-back,.app-detail-nav-action,.app-detail-nav-spacer{width:44px;height:44px}.app-detail-back{display:inline-flex;align-items:center;justify-content:flex-start;border:0;background:transparent;color:var(--text);cursor:pointer;padding:0}.app-detail-nav-action{display:inline-flex;align-items:center;justify-content:flex-end;color:var(--primary);font-size:13px;font-weight:700}.detail-shell{max-width:880px;min-width:0;margin:0 auto;display:grid;grid-gap:16px;gap:16px}.detail-body-section,.detail-hero,.detail-section{min-width:0;max-width:100%;background:var(--surface);border:1px solid #f1f5f9;border-radius:16px;box-shadow:0 8px 20px rgba(100,116,139,.05)}.detail-hero{padding:22px 24px}.detail-kicker{width:-moz-fit-content;width:fit-content;margin-bottom:12px;padding:4px 9px;border-radius:4px;background:var(--surface-muted);color:var(--primary);font-size:12px;font-weight:700}.detail-title{margin:0;color:var(--text);font-size:28px;line-height:1.35;font-weight:750;letter-spacing:0}.detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;color:var(--text-tertiary);font-size:13px}.detail-meta span:not(:last-child):after{content:"";display:inline-block;width:1px;height:10px;margin-left:8px;background:#E2E8F0;vertical-align:-1px}.detail-tab-row{display:flex;gap:24px;min-height:46px;padding:0;align-items:center;border-bottom:1px solid transparent}.detail-tab-row button{height:44px;display:inline-flex;align-items:center;padding:0;border:0;background:transparent;color:var(--muted);font-size:14px;font-weight:650;cursor:pointer}.detail-tab-row button.active,.detail-tab-row button:hover{color:var(--primary)}.detail-tab-row button.active{box-shadow:inset 0 -2px 0 var(--primary)}.detail-section{padding:16px;min-height:178px}.detail-summary-card{background:#F8FAFC}.detail-section-heading{display:flex;align-items:center;gap:8px;margin-bottom:14px}.detail-section-mark{width:3px;height:16px;border-radius:2px;background:var(--primary)}.detail-section-heading h2{margin:0;color:var(--text);font-size:17px;line-height:1.3}.detail-copy{color:var(--text-secondary);font-size:15px;line-height:1.85}.detail-copy p{margin:0 0 12px;white-space:pre-wrap}.detail-copy p:last-child{margin-bottom:0}.detail-analysis-copy{color:var(--text)}.detail-section-heading .detail-section-mark{display:none}.detail-section-logo{width:20px;height:20px;flex-shrink:0;object-fit:contain}.detail-text-content{position:relative}.detail-watermark{position:absolute;top:50%;left:50%;width:112px;height:auto;opacity:.1;transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fit-summary-list{margin:0 0 24px}.fit-summary-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}.fit-summary-row-last{margin-bottom:0}.fit-summary-marker{flex-shrink:0;width:18px;height:18px;border-radius:9px;background:#F3F7FF;display:flex;align-items:center;justify-content:center;margin-top:3px;font-size:10px;line-height:13px;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500}.fit-summary-text{flex:1 1;font-size:14px;line-height:24px;color:#6D7380}.fit-analysis-list{margin:0 0 24px}.fit-analysis-row{display:flex;align-items:flex-start;margin-bottom:8px}.fit-analysis-row-last{margin-bottom:0}.fit-analysis-followup{margin-top:8px}.fit-analysis-rail{width:12px;margin-top:9px;margin-right:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fit-analysis-dot{width:5px;height:5px;border-radius:2.5px;background:var(--primary)}.fit-analysis-text{flex:1 1;font-size:14px;line-height:24px;color:#6D7380}.fit-analysis-followup-text,.fit-analysis-grouped{color:var(--text-secondary)}.fit-up{color:var(--stock-up)}.fit-down,.fit-up{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fit-down{color:var(--stock-down)}.fit-empty{color:var(--text-tertiary);font-size:14px;line-height:24px;margin:0}.detail-body-copy,.detail-report-html{color:var(--text-secondary);font-size:15.5px}.detail-report-html{max-width:100%;overflow-x:hidden;line-height:1.78;-webkit-user-select:text;-moz-user-select:text;user-select:text;-webkit-overflow-scrolling:touch}.detail-report-html p{margin:0 0 16px}.detail-report-html h2{margin:22px 0 12px;color:var(--text);font-size:19px;line-height:1.45;font-weight:750}.detail-report-html img{max-width:100%;height:auto}.detail-report-disclaimer,.detail-report-disclaimer h2{color:#64748B;font-size:13px;line-height:1.65}.detail-report-table-wrap{width:100%;overflow-x:auto;margin:8px 0 18px;-webkit-overflow-scrolling:touch}.detail-report-table-wrap table{min-width:100%;border-collapse:collapse;background:#FFFFFF}.detail-report-table-wrap td,.detail-report-table-wrap th{border:.5px solid rgba(0,0,0,.08);padding:10px 12px;color:var(--text-secondary);font-size:14px;line-height:1.5;text-align:left;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-report-table-wrap th{background:#F8FAFC;color:var(--text);font-weight:750}.detail-report-html table{display:block;width:100%;max-width:100%;overflow-x:auto;margin:8px 0 18px;border-collapse:collapse;border-spacing:0;background:#FFFFFF;-webkit-overflow-scrolling:touch}.detail-report-html tbody,.detail-report-html tfoot,.detail-report-html thead{display:table;width:max-content;min-width:100%}.detail-report-html td,.detail-report-html th{border:.5px solid rgba(0,0,0,.08);padding:10px 12px;color:var(--text-secondary);font-size:14px;line-height:1.5;text-align:left;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-report-html th{background:#F8FAFC;color:var(--text);font-weight:750}.detail-gauge-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px}.detail-gauge-grid-centered{justify-content:center}.detail-gauge-item{width:48.5%;min-height:92px;margin-bottom:6px;padding:8px 0 10px;border-radius:16px;background:var(--surface);display:grid;place-items:center;position:relative}.detail-gauge-svg{display:block}.detail-gauge-label-box{position:absolute;bottom:9px;display:grid;justify-items:center}.detail-gauge-score{font-size:17px;line-height:1;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-gauge-score.positive{color:#D75F6D}.detail-gauge-score.negative{color:var(--stock-down)}.detail-gauge-score.neutral{color:#64748B}.detail-gauge-label-box span{margin-top:-1px;color:#475569;font-size:11px;font-weight:700}.detail-radar-chart{width:100%;height:220px;margin:12px 0 -4px;display:grid;place-items:center}.detail-radar-frame{width:220px;height:220px;position:relative}.detail-radar-label{position:absolute;width:82px;min-height:34px;transform:translate(-50%,-50%);display:grid;place-items:center;color:var(--text-secondary);text-align:center;pointer-events:none}.detail-radar-label span{font-size:10px;font-weight:700}.detail-radar-label strong{color:var(--primary);font-size:12px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-impact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.detail-impact-card{min-height:176px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:grid;align-content:start;justify-items:center;grid-gap:8px;gap:8px;color:inherit;text-align:center}.detail-impact-card:hover{border-color:var(--primary-light);box-shadow:0 6px 16px rgba(21,93,252,.08)}.detail-impact-name{display:block;color:var(--text);font-weight:750}.detail-impact-code{display:block;margin-top:2px;color:var(--text-tertiary);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-impact-card p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.detail-impact-arc-card{width:92px;display:grid;justify-items:center;grid-gap:4px;gap:4px}.detail-impact-arc-gauge{width:70px;height:70px;position:relative}.detail-impact-arc-score{position:absolute;inset:0;display:grid;place-items:center;padding-top:8px;font-size:15px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-impact-arc-score.positive{color:var(--stock-up)}.detail-impact-arc-score.negative{color:var(--stock-down)}.detail-impact-arc-score.neutral{color:var(--text-tertiary)}.detail-impact-arc-path.positive{stroke:#F7A3B1}.detail-impact-arc-path.negative{stroke:#8FE0A9}.detail-impact-arc-path.neutral{stroke:var(--text-tertiary)}.detail-impact-arc-card>span{max-width:110px;color:var(--text-secondary);font-size:12px;font-weight:700;text-align:center}.detail-industry-arc-row,.detail-industry-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.detail-industry-pill{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:4px 10px;border-radius:999px;background:var(--surface-muted);color:var(--text-secondary);font-size:12px;font-weight:650}.detail-industry-pill b{color:var(--primary)}.detail-empty-impact{min-height:72px;display:grid;place-items:center;color:var(--text-tertiary);background:#F8FAFC;border-radius:8px;font-size:13px}.detail-body-section{padding:18px 20px}.detail-body-tab-bar{gap:18px}.detail-body-tab,.detail-body-tab-bar{display:inline-flex;align-items:center}.detail-body-tab{min-height:30px;border:0;background:transparent;padding:0;color:var(--muted);font-size:15px;font-weight:700;cursor:pointer}.detail-body-tab.active,.detail-body-tab:not(.active):hover{color:var(--primary)}.detail-original-empty{min-height:120px;display:grid;place-items:center;grid-gap:12px;gap:12px;padding:24px;color:var(--muted);background:#F8FAFC;border-radius:8px;text-align:center}.header-date{margin-top:10px;font-size:14px;color:var(--text-tertiary)}.detail-action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-action-row button{min-width:150px}.detail-confirm-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:confirmOverlayIn .2s ease-out}@keyframes confirmOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes confirmCardIn{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.detail-confirm-card{background:var(--surface);border-radius:16px;padding:28px 24px 22px;max-width:340px;width:90%;box-shadow:0 12px 40px rgba(0,0,0,.14),0 2px 8px rgba(0,0,0,.06);border:.5px solid rgba(29,41,59,.06);display:grid;grid-gap:10px;gap:10px;animation:confirmCardIn .22s cubic-bezier(.34,1.56,.64,1)}.detail-confirm-title{font-size:17px;font-weight:600;color:var(--foreground);text-align:center;margin:0;letter-spacing:-.01em}.detail-confirm-body{font-size:14px;color:var(--muted);line-height:1.65;text-align:center;margin:0;padding:0 4px}.detail-confirm-actions{display:flex;gap:10px;margin-top:8px}.detail-confirm-actions .button{flex:1 1;min-height:44px;border-radius:12px;font-size:15px;font-weight:600;transition:transform .15s ease,opacity .15s ease}.detail-confirm-actions .button:active{transform:scale(.96);opacity:.88}.detail-confirm-actions .button.secondary{background:rgba(29,41,59,.04);border-color:transparent;color:var(--muted)}.detail-confirm-actions .button:not(.secondary){background:linear-gradient(135deg,#5A8DFF,#326EFF);border-color:transparent;color:#fff;box-shadow:0 2px 8px rgba(50,110,255,.28)}.detail-confirm-actions .button:disabled{opacity:.55;cursor:not-allowed;transform:none}.detail-confirm-gateway-warn{display:flex;align-items:flex-start;gap:8px;background:#FFFCF0;border:1px solid #fde68a;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;color:#92400E}.detail-confirm-gateway-warn svg{flex-shrink:0;margin-top:1px;color:#D97706}.detail-confirm-actions .spin{animation:spin .9s linear infinite}.detail-error{display:grid;grid-gap:4px;gap:4px;padding:14px;border-radius:8px;background:#FFF1F4;color:var(--danger)}.detail-error span{color:var(--muted);font-size:13px}.detail-skeleton-shell{padding-top:12px}.detail-skeleton-title{width:min(680px,90%);height:38px}.detail-skeleton-meta{width:360px;height:16px}.detail-skeleton-tabs{width:420px;height:44px}.detail-skeleton-card{width:100%;height:210px}.detail-skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.detail-skeleton-grid>div{height:96px}.action-row,.article-meta,.tag-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.article-section{display:grid;grid-gap:8px;gap:8px}.article-section h2{margin:0;font-size:16px;line-height:1.35}.article-section p{margin:0;color:var(--text-secondary);line-height:1.8;white-space:pre-wrap}.tag{border:1px solid var(--line);border-radius:999px;padding:5px 10px;color:var(--primary);background:var(--primary-tint);font-size:12px}.chat-page{display:flex;flex-direction:column;height:calc(100vh - 64px);margin:-24px -28px -40px;background:#fafafa;overflow:hidden}.chat-top-actions{display:flex;gap:6px;padding:12px 16px 4px;flex-shrink:0}.chat-float-btn{width:36px;height:36px;border:1px solid rgba(0,0,0,.08);background:#ffffff;color:#444;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s,transform .15s,border-color .2s;box-shadow:0 2px 6px rgba(0,0,0,.08)}.chat-float-btn:hover{background:#ffffff;color:var(--primary);border-color:var(--primary);transform:scale(1.05)}.chat-main{flex:1 1;display:flex;flex-direction:column;min-height:0}.chat-scroll{flex:1 1;overflow-y:auto;overflow-x:hidden;min-height:0;position:relative;scroll-behavior:smooth}.chat-scroll::-webkit-scrollbar{width:6px}.chat-scroll::-webkit-scrollbar-track{background:transparent}.chat-scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}.chat-scroll::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.18)}.chat-messages{max-width:740px;margin:0 auto;padding:20px 24px 16px;display:flex;flex-direction:column;gap:4px}.chat-empty{flex:1 1;flex-direction:column;justify-content:center;text-align:center;padding:48px 24px;min-height:55vh}.chat-empty,.chat-empty-title-row{display:flex;align-items:center;gap:8px}.chat-empty-title-row{flex-direction:row;margin-bottom:4px}.chat-empty-logo{height:28px;object-fit:contain}.chat-empty-title{margin:0;font-size:28px;font-weight:700;color:#155DFC;line-height:36px}.chat-empty-sub{margin:0;font-size:14px;color:#6D7380;line-height:22px}.chat-msg{display:flex;gap:14px;align-items:flex-start;padding:16px 0}.chat-msg+.chat-msg{border-top:none}.chat-msg.user{flex-direction:row-reverse}.chat-msg-body{flex:1 1;min-width:0;max-width:100%}.chat-msg.user .chat-msg-body{display:flex;flex-direction:column;align-items:flex-end}.chat-msg-label{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:#1a1a1a;margin-bottom:10px;letter-spacing:-.01em}.chat-msg-label-icon{width:23px;height:auto;object-fit:contain;flex-shrink:0;display:block}.chat-msg-verified{color:var(--primary)}.chat-msg-content{font-size:15px;line-height:1.75;color:#374151;word-break:break-word;-webkit-font-smoothing:antialiased}.chat-msg.user .chat-msg-content{background:#ffffff;border:1px solid rgba(0,0,0,.06);border-radius:18px 18px 4px 18px;padding:10px 16px;display:inline-block;white-space:pre-wrap;max-width:100%;color:#1a1a1a;box-shadow:0 1px 2px rgba(0,0,0,.04)}.chat-msg.ai .chat-msg-content{padding:0}.chat-msg-time{display:block;font-size:11px;color:#c0c0c0;margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em}.chat-msg.user .chat-msg-time{text-align:right}.chat-msg.failed .chat-msg-content{opacity:.6}.chat-msg-footer{display:flex;align-items:center;gap:8px;margin-top:6px}.chat-msg.user .chat-msg-footer{justify-content:flex-end}.chat-msg-retry{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:none;background:#fef2f2;color:#dc2626;font-size:12px;border-radius:4px;cursor:pointer;transition:background .15s}.chat-msg-retry:hover{background:#fee2e2}.chat-msg-retry svg{flex-shrink:0}.chat-answer{color:#374151;font-size:15px;line-height:1.78}.chat-markdown{display:grid;grid-gap:10px;gap:10px}.chat-chart-card+.chat-markdown,.chat-markdown+.chat-markdown,.chat-markdown+.chat-table-wrap,.chat-table-wrap+.chat-markdown{margin-top:16px}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3{margin:16px 0 4px;color:#1a1a1a;line-height:1.35;letter-spacing:-.01em}.chat-markdown h1{font-size:22px}.chat-markdown h2{font-size:18px}.chat-markdown h3{font-size:16px}.chat-markdown blockquote,.chat-markdown ol,.chat-markdown p,.chat-markdown pre,.chat-markdown ul{margin:0}.chat-markdown ol,.chat-markdown ul{padding-left:22px}.chat-markdown li+li{margin-top:4px}.chat-markdown strong{color:var(--text);font-weight:700}.chat-markdown a{color:var(--primary);cursor:pointer;text-decoration:none;border-radius:3px;transition:background .15s,opacity .15s}.chat-markdown a:hover{text-decoration:underline}.chat-markdown a:active{opacity:.7}.chat-markdown .data-ref-tag{display:inline;background:none;padding:0;color:var(--muted,#667085);font-size:13px;line-height:inherit;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-markdown li .data-ref-tag{margin:3px 0}.chat-markdown code,.chat-table code,.financial-table code{border-radius:5px;padding:2px 5px;background:rgba(21,93,252,.08);color:#B45309;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.9em}.chat-markdown pre{overflow-x:auto;border-radius:var(--radius);padding:14px;background:#111827;color:#E5E7EB}.chat-markdown pre code{padding:0;background:transparent;color:inherit;font-size:13px}.chat-markdown blockquote{border-left:3px solid rgba(21,93,252,.3);border-radius:6px;padding:9px 12px;background:#F6F8FC;color:var(--text-secondary)}.chat-markdown hr{width:100%;height:1px;border:0;background:var(--line)}.chat-process{margin-bottom:12px;border:1px solid #e5e7eb;border-radius:var(--radius);background:#F8FAFC;overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-error-bubble{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:var(--radius);background:#FEF2F2;border:1px solid #fecaca}.chat-error-icon{flex-shrink:0;color:#EF4444;margin-top:2px}.chat-error-text{font-size:13px;line-height:1.5;color:#991B1B;word-break:break-word}.chat-process-header{width:100%;min-height:42px;border:0;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;color:#64748B;cursor:pointer;text-align:left}.chat-process-header:disabled{cursor:default}.chat-process-actions,.chat-process-heading{display:inline-flex;align-items:center}.chat-process-heading{min-width:0;gap:8px}.chat-process-actions{flex:0 0 auto;color:#94A3B8}.chat-process-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#64748B}.chat-process-icon .lucide-loader-2{animation:spin .9s linear infinite}.chat-process-copy{display:grid;grid-gap:2px;gap:2px;min-width:0}.chat-process-copy strong{color:#475569;font-size:13px;font-weight:600}.chat-process-copy small{max-width:560px;overflow:hidden;color:#94A3B8;font-size:12px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.chat-process-list{border-top:1px solid #e5e7eb;color:#64748B;font-size:13px;line-height:1.65;padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;background:#fafbfc}.chat-reasoning-text{margin:0;padding:0 4px;font-size:12.5px;line-height:19px;color:#475569;white-space:pre-wrap;word-break:break-word}.chat-process-row{display:flex;flex-direction:row;align-items:stretch}.chat-timeline-left{display:flex;flex-direction:column;align-items:center;width:12px;margin-right:10px;flex-shrink:0;position:relative}.chat-process-dot{width:6px;height:6px;border-radius:3px;flex:0 0 auto;background:#94a3b8;z-index:2;margin-top:6px}.chat-timeline-line{position:absolute;top:12px;bottom:-12px;width:1px;background:#cbd5e1;z-index:1}.chat-process-row-text{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding-bottom:12px}.chat-process-row-action{font-size:12.5px;font-weight:600;color:#334155;line-height:18px;white-space:pre-wrap}.chat-process-row-target{display:block;background:#f1f5f9;border-radius:4px;padding:4px 8px;margin-top:2px;border:.5px solid #e2e8f0;font-size:11.5px;font-family:Courier New,monospace;color:#475569;line-height:16px;white-space:pre-wrap;word-break:break-word}.chat-thinking-dots{display:inline-flex;align-items:center;gap:6px;padding:4px 0}.chat-thinking-dot-pulse{width:6px;height:6px;border-radius:50%;background:#3164b6;animation:thinkingPulse 1.2s ease-in-out infinite}.chat-thinking-label{font-size:13px;color:#64748b}.chat-process-delta{padding:8px 0;font-size:13px;line-height:1.6;color:#475569;overflow-wrap:anywhere;word-break:break-word}.chat-process-delta p{margin:0 0 4px}.chat-process-delta pre{margin:0 0 4px;padding:6px 8px;background:#F1F5F9;border-radius:4px;font-size:12px;overflow-x:auto}.chat-process-code-block{margin:4px 0;padding:12px;background:#1e293b;border-radius:8px;overflow-x:auto;max-height:300px}.chat-process-code-block code{color:#e2e8f0;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.6;white-space:pre}.chat-tool-delta{padding:8px 0;font-size:13px;line-height:1.6;color:#475569;overflow-wrap:anywhere;word-break:break-word}.chat-tool-delta p{margin:0 0 4px}.chat-metadata-card{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px;padding:16px;background:linear-gradient(135deg,rgba(248,250,252,.7),rgba(241,245,249,.7));border:1px solid rgba(226,232,240,.8);border-radius:12px;margin:16px 0;box-shadow:0 4px 12px rgba(15,23,42,.02)}.chat-metadata-item{display:flex;flex-direction:column;gap:4px;background:var(--surface,#ffffff);border:1px solid rgba(226,232,240,.6);border-radius:8px;padding:8px 12px;transition:all .2s ease;min-height:auto;align-items:flex-start}.chat-metadata-item:hover{transform:translateY(-2px);box-shadow:0 6px 12px rgba(15,23,42,.05);border-color:var(--primary-tint,rgba(49,100,182,.3))}.chat-metadata-label{color:var(--text-tertiary,#94a3b8);font-size:11px;font-weight:500;letter-spacing:.02em}.chat-metadata-value{color:var(--text-secondary,#334155);font-size:13px;font-weight:600;line-height:1.4;word-break:keep-all;overflow-wrap:break-word}.chat-table-wrap,.financial-table-wrap{margin:12px 0;max-width:100%;overflow-x:auto;border:1px solid #e2e8f0;border-radius:var(--radius);background:var(--surface)}.chat-table,.financial-table{width:100%;min-width:620px;border-collapse:separate;border-spacing:0;color:var(--text-secondary);font-size:13px}.chat-table td,.chat-table th,.financial-table td,.financial-table th{padding:10px 12px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}.chat-table th,.financial-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:#F8FAFC;color:var(--text);font-weight:700;white-space:nowrap}.chat-table tbody tr:last-child td,.financial-table tbody tr:last-child td{border-bottom:0}.chat-table tbody tr:hover td,.financial-table tbody tr:hover td{background:#FAFBFF}.financial-table-value{color:var(--text-secondary)}.financial-table-value.meta,.financial-table-value.number{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}.financial-table-value.positive{color:var(--stock-up);font-weight:700}.financial-table-value.negative{color:var(--stock-down);font-weight:700}.chat-chart-card{position:relative;height:300px;margin:12px 0 16px;border:1px solid #e2e8f0;border-radius:var(--radius);background:var(--surface);overflow:hidden}.chat-chart-canvas{width:100%;height:100%}.chat-copy-action{margin-top:10px;min-height:30px;border:1px solid var(--line);border-radius:var(--radius);padding:4px 9px;display:inline-flex;align-items:center;gap:5px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:12px}.chat-copy-action:hover{border-color:var(--primary-light);color:var(--primary)}.chat-cursor{display:inline-block;width:6px;height:1em;margin-left:2px;vertical-align:-.1em;border-radius:1px;background:var(--primary);animation:chatCursor .8s ease-in-out infinite}.chat-footer{flex-shrink:0;padding:12px 24px 24px;max-width:740px;margin:0 auto;width:100%}.chat-input-wrap{display:flex;align-items:flex-end;gap:8px;border:1.5px solid rgba(0,0,0,.1);border-radius:26px;padding:6px 6px 6px 18px;background:#ffffff;box-shadow:0 2px 12px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.03);transition:border-color .2s,box-shadow .2s}.chat-input-wrap:focus-within{border-color:var(--primary);box-shadow:0 2px 16px rgba(21,93,252,.1),0 1px 3px rgba(0,0,0,.03)}.chat-input{flex:1 1;min-height:24px;max-height:160px;border:0;padding:8px 0;font-size:15px;line-height:24px;resize:none;background:transparent;outline:none;color:#1a1a1a}.chat-input::placeholder{color:#b0b0b0}.chat-send-btn{width:36px;height:36px;min-width:36px;border:0;border-radius:50%;background:var(--primary);color:#ffffff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s,opacity .2s;flex-shrink:0}.chat-send-btn:disabled{background:#e8e8e8;color:#c0c0c0;cursor:not-allowed;transform:none}.chat-send-btn:hover:not(:disabled){background:#0f4ddb;transform:scale(1.05)}.chat-send-btn:active:not(:disabled){transform:scale(.95)}.chat-side-empty{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#b0b0b0;text-align:center;font-size:13px;padding:24px}.chat-inline-delivery-list{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.chat-delivery-card{display:grid;grid-template-columns:34px minmax(0,1fr) 38px;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:10px;background:var(--surface)}.chat-delivery-card.inline{max-width:560px;background:#FFFFFF}.chat-delivery-icon{width:34px;height:34px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:var(--primary-tint)}.chat-delivery-main{display:grid;grid-gap:4px;gap:4px;min-width:0}.chat-delivery-main span,.chat-delivery-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-delivery-main strong{font-size:13px}.chat-delivery-main span{color:var(--muted);font-size:12px}@keyframes chatCursor{0%,to{opacity:1}50%{opacity:.3}}@keyframes thinkingPulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.quote-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:12px}.quote-strip>div{border:1px solid var(--line);border-radius:var(--radius);padding:10px;background:var(--surface-muted)}.quote-strip strong{display:block;margin-top:4px;font-size:18px}.stock-up{color:var(--stock-up)}.stock-down{color:var(--stock-down)}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);pointer-events:none}.loading-state{display:flex;justify-content:center;padding:32px 0}.spinner{width:28px;height:28px;border:2.5px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}.empty-state{text-align:center;padding:32px 16px}.empty-state .empty-subtitle{margin:0}.empty-state .empty-subtitle,.empty-subtitle-material{color:var(--muted);font-size:13px}@keyframes spin{to{transform:rotate(1turn)}}.toast-container{position:fixed;top:max(20px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;pointer-events:none;width:min(380px,calc(100vw - 40px))}.toast-item{--toast-accent:var(--primary);--toast-accent-soft:rgba(21,93,252,0.08);position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 24px;align-items:center;grid-gap:10px;gap:10px;width:100%;min-height:44px;padding:10px 10px 10px 13px;border:1px solid rgba(175,179,189,.36);border-left:3px solid var(--toast-accent);border-radius:var(--radius);background:rgba(255,255,255,.98);color:var(--text);box-shadow:0 10px 28px rgba(29,41,59,.12);animation:toastSlideIn .18s ease-out;pointer-events:auto;overflow:hidden}.toast-item.is-leaving{animation:toastSlideOut .14s ease-in forwards}.toast-success{--toast-accent:var(--success);--toast-accent-soft:rgba(48,194,91,0.08)}.toast-error{--toast-accent:var(--danger);--toast-accent-soft:rgba(241,74,102,0.08)}.toast-warning{--toast-accent:var(--warning);--toast-accent-soft:rgba(246,157,16,0.09)}.toast-info{--toast-accent:var(--primary);--toast-accent-soft:rgba(21,93,252,0.08)}.toast-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--toast-accent-soft);color:var(--toast-accent)}.toast-message{min-width:0;font-size:13px;font-weight:600;color:var(--text);line-height:1.45;overflow-wrap:anywhere}.toast-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:0;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.toast-close:hover{background:var(--surface-muted);color:var(--text)}.toast-close:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@keyframes toastSlideIn{0%{opacity:0;transform:translate3d(8px,-2px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes toastSlideOut{to{opacity:0;transform:translate3d(8px,-2px,0)}}@media (max-width:480px){.toast-container{top:max(16px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);align-items:stretch;width:calc(100% - 32px)}.toast-item{grid-template-columns:22px minmax(0,1fr) 24px;min-height:44px;padding:10px 10px 10px 13px}.toast-icon{width:22px;height:22px}}@media (prefers-reduced-motion:reduce){.toast-item,.toast-item.is-leaving{animation-duration:.01ms}}.chat-status-banner{display:flex;align-items:center;gap:8px;padding:8px 16px;margin:8px 24px 0;border-radius:8px;font-size:13px;font-weight:500;background:#fffbeb;color:#92400e;border:1px solid #fef3c7}.chat-status-banner.warning{background:#fffbeb;color:#92400e;border-color:#fef3c7}.chat-status-banner.error{background:#fef2f2;color:#991b1b;border-color:#fee2e2}.chat-status-banner .spin{animation:spin .9s linear infinite}.chat-status-retry-btn{margin-left:auto;padding:3px 10px;border-radius:6px;border:0;background:var(--primary);color:#ffffff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.chat-status-retry-btn:disabled{opacity:.6;cursor:not-allowed}.chat-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.7);z-index:10}.chat-loading-overlay .spin{animation:spin .9s linear infinite;color:var(--primary)}.chat-new-msg-btn{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:36px;height:36px;border-radius:50%;border:0;background:#ffffff;color:#888;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.04);z-index:5;transition:box-shadow .2s,transform .2s}.chat-new-msg-btn:hover{box-shadow:0 4px 16px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.06);transform:translateX(-50%) translateY(-1px)}.chat-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:50;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-drawer{position:fixed;top:0;left:0;bottom:0;width:320px;max-width:85vw;background:#ffffff;box-shadow:4px 0 24px rgba(0,0,0,.08);z-index:51;display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1)}.chat-drawer.open{transform:translateX(0)}.chat-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.chat-drawer-header h2{margin:0;font-size:16px;font-weight:600;color:var(--text)}.chat-drawer-actions{display:flex;align-items:center;gap:4px}.chat-drawer-btn{width:32px;height:32px;border:0;background:transparent;color:#888;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}.chat-drawer-btn:hover{background:#f5f5f5;color:#333}.chat-drawer-list{flex:1 1;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.chat-drawer-row{display:flex;align-items:center;gap:4px;border-radius:10px;transition:background .15s;padding-right:4px}.chat-drawer-row:hover{background:#f8f8f8}.chat-drawer-row.active{background:#f0f4ff}.chat-drawer-row-btn{flex:1 1;border:0;background:transparent;text-align:left;padding:10px 12px;cursor:pointer;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-drawer-row-title{font-size:14px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-drawer-row-time{display:flex;align-items:center;gap:4px;font-size:12px;color:#b0b0b0}.chat-inline-error{display:flex;align-items:center;gap:8px;margin:0 auto 8px;max-width:740px;padding:0 24px}.chat-inline-error,.chat-inline-error>div{border-radius:10px;padding:8px 14px;color:#b91c1c;background:#fef2f2;font-size:13px;border:1px solid #fecaca;display:flex;align-items:center;gap:8px;width:100%}.chat-footer-hint{margin:8px 0 0;text-align:center;font-size:12px;color:#c0c0c0;letter-spacing:.01em}.chat-history-actions{position:relative;display:flex;align-items:center}.chat-history-menu-btn{width:28px;height:28px;border:0;background:transparent;color:#ccc;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s}.chat-drawer-row:hover .chat-history-menu-btn{opacity:1}.chat-history-menu-btn:hover{background:#eee;color:#666}.chat-session-menu{position:absolute;right:0;top:100%;z-index:20;background:#ffffff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);min-width:120px;padding:4px 0}.chat-session-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:0;background:transparent;color:var(--text);font-size:13px;cursor:pointer;text-align:left}.chat-session-menu button:hover{background:#f5f5f5}.chat-dialog-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);padding:20px;animation:fadeIn .15s ease}.chat-dialog{background:#ffffff;border-radius:14px;padding:24px;width:100%;max-width:380px;box-shadow:0 8px 32px rgba(0,0,0,.12)}.chat-dialog h3{margin:0 0 8px;font-size:17px;color:var(--text)}.chat-dialog p{margin:0 0 16px;font-size:14px;color:#888;line-height:1.5}.chat-dialog-input{width:100%;padding:10px 14px;border:1px solid #e5e5e5;border-radius:8px;font-size:15px;color:var(--text);background:#fafafa;outline:none;margin-bottom:16px}.chat-dialog-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(21,93,252,.08)}.chat-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.chat-dialog-actions .button.danger{background:#ef4444;color:#ffffff;border-color:#ef4444}.chat-dialog-actions .button.danger:hover{background:#dc2626}@media (max-width:860px){.app-shell{grid-template-columns:1fr}.app-shell.no-sidebar .sidebar{display:none}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;overflow:visible;z-index:20;padding:4px 4px env(safe-area-inset-bottom,4px);gap:0;box-shadow:0 -2px 12px rgba(0,0,0,.06);border-right:none}.brand,.sidebar-footer{display:none}.nav-list{grid-template-columns:repeat(5,1fr);gap:2px}.nav-link{flex-direction:column;justify-content:center;align-items:center;font-size:11px;gap:3px;padding:6px 2px;min-height:0}.nav-label-en{display:none}.topbar{padding:0 16px}.content{padding:18px 16px 88px}.app-shell.no-sidebar .content{padding-bottom:24px}.grid.two{grid-template-columns:1fr}.chat-page{margin:-18px -16px -88px;height:calc(100vh - 56px)}.chat-messages{padding:16px 16px 8px}.chat-footer{padding:0 16px 16px}.chat-drawer{width:280px}.gateway-hero{align-items:flex-start;flex-direction:column}.gateway-hero-side{width:100%;justify-items:stretch}.gateway-actions{justify-content:flex-start}.gateway-capability-grid,.gateway-info-grid,.gateway-layout,.gateway-steps{grid-template-columns:1fr}}