:root{color-scheme:dark;--bg:#090e18;--panel:#101827;--panel2:#0d1522;--line:#202c3e;--text:#e7edf7;--muted:#8492a8;--cyan:#55c8e8;--green:#39c995;--purple:#a78bfa}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% -10%,#162842 0,transparent 40%),var(--bg);color:var(--text);font:14px/1.5 Inter,"Segoe UI","Microsoft YaHei",sans-serif}
.shell{max-width:1440px;margin:auto;padding:0 34px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:28px}.brand{display:flex;align-items:center;gap:11px;min-width:220px}.brand-mark{width:35px;height:35px;border:1px solid #3b8eaa;border-radius:9px;display:grid;place-items:center;color:var(--cyan);font-size:21px;font-weight:800}.brand b{display:block;letter-spacing:2px;font-size:13px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.3px}nav{display:flex;gap:28px;height:100%;align-items:center}nav a{color:var(--muted);text-decoration:none;font-size:13px;height:100%;display:flex;align-items:center;border-bottom:2px solid transparent}nav a.active{color:var(--text);border-color:var(--cyan)}.top-right{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.dot,.pulse{width:7px;height:7px;background:var(--green);border-radius:50%;display:inline-block}.clock{margin-left:12px;font-variant-numeric:tabular-nums}
.hero{display:flex;justify-content:space-between;align-items:end;padding:43px 0 25px}.eyebrow{font-size:10px;letter-spacing:1.7px;color:var(--cyan);font-weight:700}h1{font-size:30px;letter-spacing:.3px;margin:7px 0 4px}h2{font-size:18px;margin:3px 0 0}h3{font-size:15px;margin:10px 0 5px}.hero p,.muted{color:var(--muted);margin:0;font-size:12px}.market-state{display:flex;align-items:center;gap:11px;border:1px solid var(--line);background:#101a29;padding:11px 15px;border-radius:8px}.market-state b,.market-state small{display:block}.market-state b{font-size:12px}.market-state small{font-size:10px;color:var(--muted);margin-top:2px}.pulse{box-shadow:0 0 0 5px #39c99518}
.notice{padding:11px 14px;border:1px solid #735c2c;background:#2b2416;color:#d8c28f;border-radius:6px;font-size:11px}.notice b{color:#f0c76e;margin-right:10px;letter-spacing:1px}.section-head,.panel-head{display:flex;align-items:end;justify-content:space-between}.section-head{margin:34px 0 14px}.market-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.market-card,.panel{background:linear-gradient(145deg,#111c2c,#0e1725);border:1px solid var(--line);border-radius:9px}.market-card{padding:16px;min-height:128px}.card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.symbol{font-weight:700;color:var(--text);letter-spacing:.4px}.price{font-size:23px;font-weight:650;margin:13px 0 2px;font-variant-numeric:tabular-nums}.status{font-size:10px;color:#e2b969}.source{font-size:9px;color:#66758b;margin-top:5px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.panel{padding:19px}.panel-head{align-items:center;margin-bottom:16px}.tag{font-size:9px;color:#8ea0b9;border:1px solid #344258;border-radius:4px;padding:4px 7px;letter-spacing:1px}.tag.purple{color:#c3afff;border-color:#57457f}.watch-items{display:flex;flex-direction:column}.watch-row{display:flex;justify-content:space-between;padding:12px 2px;border-top:1px solid #1d293a}.watch-row:first-child{border-top:0}.watch-row b{font-size:12px}.watch-row small{display:block;color:var(--muted);font-size:10px}.watch-row em{font-style:normal;color:var(--muted);font-size:10px}.ai-placeholder{text-align:center;padding:10px 12px 5px}.ai-icon{width:43px;height:43px;margin:auto;border-radius:13px;background:#292341;color:#c1a9ff;display:grid;place-items:center;font-size:23px}.ai-placeholder p{max-width:430px;margin:0 auto;color:var(--muted);font-size:11px}.chips{display:flex;justify-content:center;gap:7px;margin-top:16px}.chips span{font-size:10px;color:#b8a6f3;border:1px solid #41365f;border-radius:20px;padding:5px 9px}.news-panel{margin-top:14px}.empty-state{padding:18px;border:1px dashed #2b394e;border-radius:6px;text-align:center;color:var(--muted);font-size:11px}footer{display:flex;justify-content:space-between;padding:25px 0 30px;margin-top:20px;border-top:1px solid var(--line);color:#627087;font-size:9px;letter-spacing:.5px}.skeleton{background:linear-gradient(90deg,#101827,#152236,#101827);background-size:200% 100%}
@media(max-width:900px){.shell{padding:0 18px}.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:14px 0}nav{order:3;width:100%;height:35px;gap:20px}.top-right{margin-left:auto}.market-grid{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}.hero{padding-top:30px}.market-state{display:none}}
@media(max-width:520px){.shell{padding:0 12px}.market-grid{grid-template-columns:1fr 1fr;gap:8px}.market-card{padding:12px;min-height:115px}.price{font-size:18px}.top-right{font-size:9px}.clock{display:none}nav{gap:15px}nav a{font-size:11px}h1{font-size:25px}footer{gap:10px;flex-direction:column}}

/* ---- Phase 2 additions ---- */
.chg{font-size:12px;font-weight:600;margin:0;font-variant-numeric:tabular-nums}
.chg.up{color:#ff5c5c}.chg.down{color:#22c07d}.chg.flat{color:var(--muted)}
.watch-add{display:flex;gap:8px;margin-bottom:12px}
.watch-add input{flex:1;background:#0c1420;border:1px solid var(--line);border-radius:6px;color:var(--text);padding:8px 10px;font-size:12px;outline:none}
.watch-add input:focus{border-color:#3b8eaa}
.btn-mini{background:#1d4a5c;border:1px solid #2f7d99;color:#a9e4f7;border-radius:6px;padding:8px 14px;font-size:12px;cursor:pointer;font-family:inherit}
.btn-mini:hover{background:#245d73}
.watch-msg{font-size:11px;color:#ff8f8f;min-height:14px;margin-bottom:6px}
.watch-right{display:flex;align-items:center;gap:8px}
.mini-del{background:none;border:1px solid #33415a;color:#7c8aa0;border-radius:4px;width:20px;height:20px;line-height:1;cursor:pointer;font-size:13px;padding:0}
.mini-del:hover{border-color:#ff6b6b;color:#ff6b6b}
.ai-form-row{display:flex;gap:8px;margin-bottom:10px}
.ai-form-row input{flex:1;background:#0c1420;border:1px solid var(--line);border-radius:6px;color:var(--text);padding:8px 10px;font-size:12px;outline:none}
.ai-form-row input:focus{border-color:#57457f}
.ai-answer{background:#0b1320;border:1px solid var(--line);border-radius:7px;padding:12px;font-size:12px;line-height:1.7;color:#dbe4f2;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto;margin:0;min-height:80px;font-family:Consolas,"Courier New",monospace}

/* ---- Phase 2.1 认证与设置 ---- */
.auth-mask{position:fixed;inset:0;background:rgba(5,9,16,.93);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:99;padding:20px}
.auth-box{width:100%;max-width:400px;background:linear-gradient(145deg,#111c2c,#0d1622);border:1px solid var(--line);border-radius:12px;padding:26px 26px 22px}
.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:20px}
.auth-brand b{display:block;letter-spacing:2px;font-size:13px}
.auth-brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.3px}
.auth-tabs{display:flex;gap:6px;margin-bottom:14px;background:#0c1420;border:1px solid var(--line);border-radius:7px;padding:4px}
.auth-tab{flex:1;background:none;border:none;color:var(--muted);font-size:12px;padding:7px 0;border-radius:5px;cursor:pointer;font-family:inherit}
.auth-tab.active{background:#1d4a5c;color:#a9e4f7}
.auth-msg{min-height:18px;font-size:11px;color:#ff8f8f;margin-bottom:6px}
.auth-field{display:block;margin-bottom:11px}
.auth-field span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.auth-field input,.set-field input,.set-field select{width:100%;background:#0c1420;border:1px solid var(--line);border-radius:6px;color:var(--text);padding:9px 11px;font-size:13px;outline:none;font-family:inherit}
.auth-field input:focus,.set-field input:focus,.set-field select:focus{border-color:#3b8eaa}
.btn-primary{width:100%;background:linear-gradient(180deg,#2a6c85,#1d5064);border:1px solid #3b8eaa;color:#e6f7fd;border-radius:7px;padding:11px 0;font-size:13px;cursor:pointer;margin-top:6px;font-family:inherit}
.btn-primary:hover{background:linear-gradient(180deg,#317d99,#22596f)}
.auth-tip{font-size:10px;color:#62708a;margin:11px 0 0;line-height:1.6}
.user-btn{background:#16233a;border:1px solid #2c3d58;color:#b9c9de;border-radius:6px;padding:5px 11px;font-size:11px;cursor:pointer;font-family:inherit;margin-left:12px}
.user-btn:hover{border-color:#3b8eaa;color:#a9e4f7}
.ai-nudge{margin-top:12px;font-size:11px;color:var(--muted);background:#0d1522;border:1px dashed #2b394e;border-radius:7px;padding:11px;text-align:center}
.ai-nudge a{color:var(--cyan);text-decoration:none}
.settings-panel{margin-top:14px}
.settings-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}
.settings-block h3{font-size:13px;margin:0 0 6px}
.settings-block .muted{font-size:11px;line-height:1.7;margin-bottom:13px}
.set-field{display:block;margin-bottom:11px}
.set-field span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.set-actions{display:flex;align-items:center;gap:9px;margin-top:13px;flex-wrap:wrap}
.btn-mini.ghost{background:none;border-color:#344258;color:#9db0c8}
.btn-mini.ghost:hover{background:#16233a;color:#d6e3f2}
.set-msg{font-size:11px;color:var(--muted)}
.set-msg.ok{color:var(--green)}
.set-msg.err{color:#ff8f8f}
.set-current{margin-top:12px;font-size:11px;color:#7f8ea6;background:#0b1320;border:1px solid var(--line);border-radius:6px;padding:9px 11px;font-family:Consolas,"Courier New",monospace}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}

/* ---- Phase 3：分市场 4 页面 ---- */
.topbar{flex-wrap:wrap;height:auto;min-height:76px;padding:12px 0 0}
.market-nav{display:flex;gap:4px;order:2;height:44px;align-items:center}
.market-nav a{padding:0 16px;height:44px;font-size:13px;color:var(--muted);text-decoration:none;display:flex;align-items:center;border-bottom:2px solid transparent;font-weight:500}
.market-nav a:hover{color:#c3d3e6}
.market-nav a.active{color:var(--cyan);border-bottom-color:var(--cyan)}
.util-nav{display:flex;gap:2px;order:3;height:44px;align-items:center;margin-left:auto}
.util-nav a{padding:0 11px;height:44px;font-size:12px;color:var(--muted);text-decoration:none;display:flex;align-items:center;border-bottom:2px solid transparent}
.util-nav a:hover{color:#c3d3e6}
.util-nav a.active{color:var(--text);border-bottom-color:var(--purple)}
.brand{order:1}
.top-right{order:1;margin-left:auto}
.page-view[hidden]{display:none}
.page-view{padding-bottom:6px}
.section-head .eyebrow{font-size:10px;letter-spacing:1.7px;color:var(--cyan);font-weight:700}
.market-card .card-top span:last-child{color:#7d8ca3}
@media(max-width:1100px){.market-nav a{padding:0 11px;font-size:12px}}
@media(max-width:900px){
  .topbar{min-height:auto;padding:14px 0 0}
  .market-nav{order:3;width:100%;height:40px;overflow-x:auto;gap:0}
  .market-nav a{height:40px;padding:0 12px;white-space:nowrap}
  .util-nav{order:2;height:40px;margin-left:auto}
  .util-nav a{height:40px;padding:0 8px;font-size:11px}
  .top-right{margin-left:auto}
}

/* ---- 顶栏用户菜单（含退出登录） ---- */
.user-menu{position:relative;margin-left:12px}
.user-btn{background:#16233a;border:1px solid #2c3d58;color:#b9c9de;border-radius:6px;padding:5px 10px;font-size:11px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:6px;margin-left:0}
.user-btn:hover{border-color:#3b8eaa;color:#a9e4f7}
.user-btn .caret{font-size:9px;opacity:.65}
.user-dropdown{position:absolute;top:calc(100% + 7px);right:0;min-width:172px;background:linear-gradient(145deg,#111c2c,#0d1622);border:1px solid var(--line);border-radius:8px;padding:5px;box-shadow:0 12px 32px rgba(0,0,0,.55);display:none;z-index:60}
.user-menu.open .user-dropdown{display:block}
.ud-head{padding:8px 10px 9px;border-bottom:1px solid #1d293a;margin-bottom:4px}
.ud-head b{display:block;font-size:12px;color:var(--text)}
.ud-head small{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.ud-item{display:block;width:100%;text-align:left;background:none;border:none;color:#c3d3e6;font-size:12px;padding:8px 10px;border-radius:5px;cursor:pointer;text-decoration:none;font-family:inherit}
.ud-item:hover{background:#1a2b41;color:#eaf3fb}
.ud-item.danger{color:#ff9d9d}
.ud-item.danger:hover{background:#3a1f26;color:#ffbdbd}

/* ---- 指数双语名称 ---- */
.market-card .names{margin:9px 0 2px}
.name-cn{font-size:14px;font-weight:600;color:var(--text);line-height:1.35;letter-spacing:.2px}
.name-en{font-size:10px;color:#7d8ca3;line-height:1.4;margin-top:2px;font-family:Inter,"Segoe UI",sans-serif;letter-spacing:.1px}
.market-card .price{margin:6px 0 2px}
