/* ===================================================================
   🔔 盤中通知 — 重設計 (prototype，全部 scope 在 .nx 之下避免污染全站)
   =================================================================== */
.nx{
  --bg:#0A0D13; --bg2:#0E121A;
  --surface:#141A24; --surface2:#1A2230; --surface3:#222C3D;
  --line:#283246; --line2:#34415A;
  --txt:#EAEEF5; --txt2:#98A2B4; --txt3:#5E6A7E;
  --up:#FF4D4F; --upbg:rgba(255,77,79,.13);
  --down:#1FCB83; --downbg:rgba(31,203,131,.13);
  --gold:#FFB020; --goldbg:rgba(255,176,32,.12);
  --blue:#4D9FFF; --bluebg:rgba(77,159,255,.13);
  --violet:#A78BFA; --violetbg:rgba(167,139,250,.13);
  --line-green:#06C755;
  --r:16px; --rs:11px;
  --shadow:0 12px 40px rgba(0,0,0,.45);
  --t:.22s cubic-bezier(.4,0,.2,1);
  max-width:480px;margin:0 auto;
  color:var(--txt);font-family:"Noto Sans TC",system-ui,sans-serif;line-height:1.55;
  background:radial-gradient(900px 500px at 50% -10%,rgba(255,176,32,.05),transparent 60%),var(--bg);
  border-radius:16px;padding:16px 14px 36px;-webkit-font-smoothing:antialiased}
.nx *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
.nx .mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-feature-settings:"tnum"}
.nx .hidden{display:none!important}

/* segmented */
.nx .seg{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);
  border-radius:13px;padding:4px;margin-bottom:18px}
.nx .seg button{flex:1;border:0;background:transparent;color:var(--txt2);
  font-family:inherit;font-size:13.5px;font-weight:700;padding:9px 8px;border-radius:9px;
  cursor:pointer;transition:var(--t);letter-spacing:.3px}
.nx .seg button.on{background:var(--surface3);color:var(--txt);box-shadow:0 1px 0 rgba(255,255,255,.04) inset}

/* card */
.nx .card{background:linear-gradient(180deg,var(--surface),var(--bg2));
  border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:14px}
.nx #nxSettingsWrap.dim{opacity:.42;pointer-events:none;filter:saturate(.4)}
.nx .ttl{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:900;letter-spacing:.4px}
.nx .ttl .idx{font-family:"JetBrains Mono";font-weight:700;color:var(--gold);font-size:13px}
.nx .sub{color:var(--txt2);font-size:12.5px;margin-top:3px}
.nx .grp-label{display:flex;align-items:center;gap:7px;color:var(--txt3);font-size:11px;
  font-weight:700;letter-spacing:1.5px;margin:16px 2px 9px;text-transform:uppercase}
.nx .grp-label::after{content:"";flex:1;height:1px;background:var(--line)}

/* status bar */
.nx .status{background:radial-gradient(420px 120px at 100% 0%,rgba(255,176,32,.07),transparent 70%),
  linear-gradient(180deg,var(--surface2),var(--surface));border:1px solid var(--line2)}
.nx .status-top{display:flex;align-items:center;justify-content:space-between}
.nx .brand{display:flex;align-items:center;gap:10px}
.nx .bell{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--goldbg);font-size:19px}
.nx .brand h1{font-size:17px;font-weight:900;letter-spacing:.5px}
.nx .brand p{font-size:11.5px;color:var(--txt2);margin-top:1px}
.nx .line-row{display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
.nx .line-stat{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}
.nx .dot-live{width:8px;height:8px;border-radius:50%;background:var(--line-green);
  box-shadow:0 0 0 3px rgba(6,199,85,.18);flex:none}
.nx .dot-live.off{background:var(--txt3);box-shadow:0 0 0 3px rgba(94,106,126,.15)}
.nx .line-name{color:var(--txt2)}
.nx .btn{font-family:inherit;font-weight:700;border:0;cursor:pointer;transition:var(--t);
  border-radius:10px;font-size:13px;display:inline-flex;align-items:center;gap:6px;
  justify-content:center;min-height:38px}
.nx .btn-gold{background:var(--gold);color:#0A0D13;padding:0 14px;box-shadow:0 4px 14px rgba(255,176,32,.28)}
.nx .btn-gold:active{transform:translateY(1px)}
.nx .btn-ghost{background:var(--surface3);color:var(--txt);padding:0 13px;border:1px solid var(--line2)}
.nx .btn-line{background:var(--surface3);color:var(--txt);border:1px solid var(--line2)}
.nx .master{display:flex;align-items:center;gap:9px}
.nx .master span{font-size:12px;color:var(--txt2);font-weight:700}
.nx .snooze-bar{margin-top:12px;padding:9px 12px;border-radius:9px;font-size:12.5px;
  background:var(--goldbg);border:1px solid rgba(255,176,32,.35);color:var(--txt)}

/* toggle switch */
.nx .sw{position:relative;width:46px;height:27px;flex:none;cursor:pointer;display:inline-block}
.nx .sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.nx .sw .track{position:absolute;inset:0;border-radius:27px;background:var(--surface3);
  border:1px solid var(--line2);transition:var(--t);pointer-events:none}
.nx .sw .knob{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;
  background:#cfd6e2;transition:var(--t);box-shadow:0 2px 5px rgba(0,0,0,.35);pointer-events:none}
.nx .sw input{z-index:2}
.nx .sw input:checked ~ .track{background:var(--gold);border-color:var(--gold)}
.nx .sw input:checked ~ .knob{left:22px;background:#1a1408}

/* preset chips */
.nx .presets{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}
.nx .preset{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;
  background:var(--surface);border:1.5px solid var(--line);border-radius:var(--rs);
  padding:11px 12px;cursor:pointer;transition:var(--t);font-family:inherit;color:var(--txt)}
.nx .preset:hover{border-color:var(--line2)}
.nx .preset.on{border-color:var(--gold);background:var(--goldbg);box-shadow:0 0 0 3px rgba(255,176,32,.08)}
.nx .preset .pe{font-size:18px}
.nx .preset .pn{font-size:14px;font-weight:900;margin-top:3px}
.nx .preset .pd{font-size:10.5px;color:var(--txt2);line-height:1.4}

/* event row */
.nx .ev{display:flex;align-items:center;gap:12px;padding:11px 0}
.nx .ev + .ev{border-top:1px solid rgba(40,50,70,.5)}
.nx .ev .ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:16px;flex:none}
.nx .ico.blue{background:var(--bluebg)} .nx .ico.gold{background:var(--goldbg)}
.nx .ico.violet{background:var(--violetbg)} .nx .ico.up{background:var(--upbg)} .nx .ico.down{background:var(--downbg)}
.nx .ev .meta{flex:1;min-width:0}
.nx .ev .en{font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px}
.nx .ev .ee{font-size:11.5px;color:var(--txt2);margin-top:2px}
.nx .tag{font-family:"JetBrains Mono";font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:5px;letter-spacing:.3px}
.nx .tag.up{background:var(--upbg);color:var(--up)} .nx .tag.down{background:var(--downbg);color:var(--down)}

/* add-row / counts */
.nx .add-row{display:flex;justify-content:space-between;align-items:center;margin-top:4px;gap:10px}
.nx .badge-count{font-family:"JetBrains Mono";font-size:12px;color:var(--txt2)}
.nx .empty{text-align:center;color:var(--txt3);font-size:12.5px;padding:18px 0 6px}

/* watchlist */
.nx .stock{display:flex;align-items:center;gap:12px;padding:11px 0;cursor:pointer}
.nx .stock + .stock{border-top:1px solid rgba(40,50,70,.5)}
.nx .stock .si{flex:1;min-width:0}
.nx .stock .sn{font-size:14px;font-weight:700;display:flex;align-items:baseline;gap:7px}
.nx .stock .scode{font-family:"JetBrains Mono";font-size:12px;color:var(--txt2);font-weight:500}
.nx .stock .sp{display:flex;align-items:baseline;gap:8px;margin-top:2px}
.nx .stock .price{font-family:"JetBrains Mono";font-size:12.5px;color:var(--txt2)}
.nx .chg{font-family:"JetBrains Mono";font-size:11.5px;font-weight:700}
.nx .chg.up{color:var(--up)} .nx .chg.down{color:var(--down)}
.nx .stk-cfg{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:20px;flex:none;
  display:flex;align-items:center;gap:5px}
.nx .cfg-follow{background:var(--surface3);color:var(--txt2)}
.nx .cfg-custom{background:var(--goldbg);color:var(--gold)}

/* price alerts */
.nx .alert{display:flex;align-items:center;gap:12px;padding:12px 0}
.nx .alert + .alert{border-top:1px solid rgba(40,50,70,.5)}
.nx .alert .ai{flex:1;min-width:0}
.nx .alert .acond{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.nx .arrow{font-family:"JetBrains Mono";font-weight:700;font-size:12px;padding:2px 7px;border-radius:6px}
.nx .arrow.up{background:var(--upbg);color:var(--up)} .nx .arrow.down{background:var(--downbg);color:var(--down)}
.nx .alert .adist{font-size:11px;color:var(--txt2);margin-top:3px;font-family:"JetBrains Mono"}
.nx .alert.off{opacity:.45}
.nx .icon-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);
  color:var(--txt2);cursor:pointer;display:grid;place-items:center;font-size:14px;transition:var(--t);flex:none}
.nx .icon-btn:hover{color:var(--txt);border-color:var(--line2)}

/* collapsible / prefs */
.nx .coll-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.nx .chev{transition:var(--t);color:var(--txt2);font-size:13px}
.nx .coll.open .chev{transform:rotate(90deg)}
.nx .coll-body{display:none;margin-top:4px}
.nx .coll.open .coll-body{display:block}
.nx .pref{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0}
.nx .pref + .pref{border-top:1px solid rgba(40,50,70,.5)}
.nx .pref .pl{font-size:13.5px;font-weight:600}
.nx .pref .pdesc{font-size:11px;color:var(--txt2);margin-top:2px}
.nx .pill-select{font-family:"JetBrains Mono";font-size:12px;font-weight:700;color:var(--gold);
  background:var(--goldbg);border:1px solid rgba(255,176,32,.25);border-radius:8px;padding:6px 11px;cursor:pointer;white-space:nowrap}
.nx .snooze-btns{display:flex;gap:5px}
.nx .snooze-btns button{font-family:inherit;font-size:11.5px;font-weight:700;color:var(--txt2);
  background:var(--surface);border:1px solid var(--line2);border-radius:7px;padding:6px 9px;cursor:pointer;transition:var(--t)}
.nx .snooze-btns button:hover{color:var(--gold);border-color:var(--gold)}

/* history */
.nx .hist{display:flex;align-items:center;gap:11px;padding:9px 0;font-size:13px}
.nx .hist + .hist{border-top:1px solid rgba(40,50,70,.5)}
.nx .hist .ht{font-family:"JetBrains Mono";font-size:11px;color:var(--txt3);width:42px;flex:none}
.nx .hist .hd{flex:1}.nx .hist .hd b{font-weight:700}
.nx .hist .hcode{font-family:"JetBrains Mono";color:var(--txt2);font-size:11px}

.nx .disclaimer{text-align:center;color:var(--txt3);font-size:10.5px;margin-top:6px;line-height:1.5}

/* bottom sheet */
.nx .sheet-bg{position:fixed;inset:0;background:rgba(5,7,11,.66);backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:var(--t);z-index:1400}
.nx .sheet-bg.show{opacity:1;pointer-events:auto}
.nx .sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,110%);width:100%;max-width:452px;
  background:var(--surface);border:1px solid var(--line2);border-bottom:0;
  border-radius:22px 22px 0 0;padding:8px 18px calc(22px + env(safe-area-inset-bottom));
  transition:transform .3s cubic-bezier(.32,.72,0,1);z-index:1500;box-shadow:var(--shadow);
  color:var(--txt);font-family:"Noto Sans TC",system-ui,sans-serif}
.nx .sheet.show{transform:translate(-50%,0)}
.nx .grab{width:40px;height:4px;border-radius:4px;background:var(--line2);margin:6px auto 14px}
.nx .sheet h3{font-size:16px;font-weight:900;margin-bottom:3px}
.nx .sheet .shint{font-size:12px;color:var(--txt2);margin-bottom:16px}
.nx .field{margin-bottom:15px}
.nx .field>label{display:block;font-size:12px;font-weight:700;color:var(--txt2);margin-bottom:7px;letter-spacing:.3px}
.nx .inp{width:100%;background:var(--bg2);border:1.5px solid var(--line2);border-radius:11px;
  color:var(--txt);font-family:inherit;font-size:15px;padding:12px 13px;transition:var(--t)}
.nx .inp:focus{outline:0;border-color:var(--gold)}
.nx .inp.mono{font-family:"JetBrains Mono"}
.nx .now-hint{font-family:"JetBrains Mono";font-size:12px;color:var(--txt2);margin-top:7px}
.nx .segc{display:flex;gap:8px}
.nx .segc button{flex:1;font-family:inherit;font-weight:700;font-size:14px;padding:12px;border-radius:11px;
  cursor:pointer;border:1.5px solid var(--line2);background:var(--bg2);color:var(--txt2);transition:var(--t)}
.nx .segc button.up.on{border-color:var(--up);background:var(--upbg);color:var(--up)}
.nx .segc button.down.on{border-color:var(--down);background:var(--downbg);color:var(--down)}
.nx .chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.nx .chip{font-family:"JetBrains Mono";font-size:12px;font-weight:700;padding:7px 12px;border-radius:20px;
  border:1px solid var(--line2);background:var(--bg2);color:var(--txt2);cursor:pointer;transition:var(--t)}
.nx .chip:hover{color:var(--txt);border-color:var(--gold)}
.nx .sheet-actions{display:flex;gap:10px;margin-top:6px}
.nx .sheet-actions .btn{flex:1;min-height:46px;font-size:15px}
.nx .ov-opt{display:flex;align-items:center;gap:11px;padding:13px 0;cursor:pointer}
.nx .ov-opt + .ov-opt{border-top:1px solid var(--line)}
.nx .ov-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line2);flex:none;transition:var(--t);position:relative}
.nx .ov-opt.on .ov-radio{border-color:var(--gold)}
.nx .ov-opt.on .ov-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold)}
.nx .ov-opt .ovl{font-size:14px;font-weight:700}
.nx .ov-opt .ovd{font-size:11.5px;color:var(--txt2);margin-top:1px}
.nx .fav-list{max-height:230px;overflow:auto;margin-bottom:14px}
.nx .fav-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.nx .fav-row .fav-n{flex:1;font-size:14px;font-weight:600}
.nx .fav-row .scode{font-family:"JetBrains Mono";font-size:11px;color:var(--txt2);font-weight:500}
.nx .ntf-add-friend{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:11px 18px;
  background:#06C755;color:#fff;font-weight:700;font-size:15px;border-radius:10px;text-decoration:none}
.nx .ntf-code{display:inline-block;margin-top:6px;padding:8px 16px;font-size:24px;font-weight:800;
  letter-spacing:4px;background:var(--bg2);border:1px dashed var(--gold);border-radius:10px;cursor:pointer;color:var(--gold)}
.nx .ntf-qr img{width:140px;height:140px;background:#fff;padding:6px;border-radius:10px;margin-top:8px}

/* push toast (signature) */
.nx #nxToastLayer{position:fixed;top:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;
  gap:10px;padding:14px;z-index:1600;pointer-events:none}
.nx .push{width:100%;max-width:430px;background:rgba(28,34,46,.96);backdrop-filter:blur(12px);
  border:1px solid var(--line2);border-radius:18px;padding:13px 14px;box-shadow:var(--shadow);
  transform:translateY(-130%);opacity:0;transition:transform .42s cubic-bezier(.2,.9,.3,1),opacity .3s;pointer-events:auto}
.nx .push.show{transform:translateY(0);opacity:1}
.nx .push-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.nx .line-logo{width:20px;height:20px;border-radius:5px;background:var(--line-green);display:grid;place-items:center;
  font-size:11px;font-weight:900;color:#fff;font-family:"JetBrains Mono"}
.nx .push-head .pl{font-size:12px;font-weight:700;color:var(--txt2)}
.nx .push-head .pt{margin-left:auto;font-family:"JetBrains Mono";font-size:11px;color:var(--txt3)}

/* flex card */
.nx .flex-card{background:var(--bg2);border:1px solid var(--line);border-radius:13px;overflow:hidden}
.nx .fc-bar{height:5px}
.nx .fc-bar.gold{background:var(--gold)}.nx .fc-bar.blue{background:var(--blue)}
.nx .fc-bar.violet{background:var(--violet)}.nx .fc-bar.up{background:var(--up)}.nx .fc-bar.down{background:var(--down)}
.nx .fc-body{padding:12px 13px}
.nx .fc-kind{font-size:12px;font-weight:900;display:flex;align-items:center;gap:6px}
.nx .fc-kind.gold{color:var(--gold)}.nx .fc-kind.blue{color:var(--blue)}
.nx .fc-kind.violet{color:var(--violet)}.nx .fc-kind.up{color:var(--up)}.nx .fc-kind.down{color:var(--down)}
.nx .fc-stock{font-size:15px;font-weight:900;margin:3px 0 9px;display:flex;align-items:baseline;gap:7px}
.nx .fc-stock .fcode{font-family:"JetBrains Mono";font-size:12px;color:var(--txt2);font-weight:500}
.nx .fc-rows{display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.nx .fc-r{display:flex;justify-content:space-between}
.nx .fc-r .k{color:var(--txt2)}
.nx .fc-r .v{font-family:"JetBrains Mono";font-weight:700}
.nx .fc-r .v.up{color:var(--up)}.nx .fc-r .v.down{color:var(--down)}
.nx .fc-foot{display:flex;gap:7px;padding:10px 13px;border-top:1px solid var(--line)}
.nx .fc-btn{flex:1;text-align:center;font-size:11.5px;font-weight:700;padding:7px;border-radius:8px;
  background:var(--surface3);color:var(--txt2);border:1px solid var(--line)}
.nx .fc-btn.primary{background:var(--goldbg);color:var(--gold);border-color:rgba(255,176,32,.3)}

/* LINE preview */
.nx .phone{background:#070A10;border:1px solid var(--line2);border-radius:30px;padding:10px;box-shadow:var(--shadow)}
.nx .phone-scr{background:#0b0f16;border-radius:22px;overflow:hidden}
.nx .line-bar{background:var(--surface2);padding:11px 14px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line)}
.nx .line-ava{width:26px;height:26px;border-radius:8px;background:var(--line-green);display:grid;place-items:center;
  font-size:11px;font-weight:900;color:#fff}
.nx .line-bar .lt{font-size:13.5px;font-weight:700}
.nx .line-bar .ls{font-size:10px;color:var(--down)}
.nx .chat{padding:14px;display:flex;flex-direction:column;gap:11px;min-height:150px;background:linear-gradient(180deg,#0b0f16,#0d1119)}
.nx .bubble{max-width:84%;align-self:flex-start;background:var(--surface);border:1px solid var(--line);
  border-radius:4px 14px 14px 14px;padding:9px 12px;font-size:12.5px}
.nx .bubble.me{align-self:flex-end;background:#16341f;border-color:#1f4a2d;border-radius:14px 4px 14px 14px;color:#dff5e6}
.nx .bubble .bcmd{font-family:"JetBrains Mono"}
.nx .flex-wrap-line{max-width:84%;align-self:flex-start}
.nx .richmenu{background:var(--surface2);border-top:1px solid var(--line2);display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;padding:1px}
.nx .rm{background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:4px;padding:13px 6px;cursor:pointer;transition:var(--t)}
.nx .rm:hover{background:var(--surface3)}
.nx .rm .rmi{font-size:18px}
.nx .rm .rmt{font-size:11px;font-weight:700;color:var(--txt)}
.nx .rm.accent .rmi{filter:drop-shadow(0 0 6px rgba(255,176,32,.5))}
.nx .gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}
.nx .cmd-list{display:flex;flex-direction:column;gap:9px;margin-top:6px}
.nx .cmd{background:var(--bg2);border:1px solid var(--line);border-radius:11px;padding:11px 13px}
.nx .cmd-in{font-family:"JetBrains Mono";font-size:13px;font-weight:700;color:var(--gold);display:flex;align-items:center;gap:8px}
.nx .cmd-in .you{font-family:"Noto Sans TC";font-size:9.5px;font-weight:700;color:var(--txt3);background:var(--surface3);padding:1px 6px;border-radius:5px}
.nx .cmd-out{font-size:11.5px;color:var(--txt2);margin-top:6px;display:flex;align-items:flex-start;gap:6px}
.nx .cmd-out .ar{color:var(--line-green);font-family:"JetBrains Mono"}
.nx .note-box{background:var(--bluebg);border:1px solid rgba(77,159,255,.25);border-radius:12px;
  padding:12px 14px;font-size:12px;color:var(--txt);line-height:1.6;display:flex;gap:9px}
.nx .note-box .ni{font-size:15px}
.nx .note-box b{color:var(--blue)}
