:root{--panel-rgb:11, 31, 26;--accent:#00843d;--fg:#f2f6f4;--fg-dim:#f2f6f49e;--font:system-ui, -apple-system, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--toolbar-h:52px;--gap:12px}html,body{height:100%;font-family:var(--font);color:var(--fg);background:#000;margin:0;overflow:hidden}#app{position:fixed;inset:0}#app canvas{touch-action:none;display:block}#site-title{left:var(--gap);letter-spacing:.02em;text-shadow:0 1px 3px #000000b3;pointer-events:none;font-size:15px;font-weight:600;position:fixed;top:10px}#clockbox{right:var(--gap);background:rgba(var(--panel-rgb), .72);pointer-events:none;text-align:right;border-radius:8px;padding:4px 10px;position:fixed;top:8px}#clock{font-variant-numeric:tabular-nums;letter-spacing:.04em;font:600 18px/1.2 ui-monospace,SF Mono,Menlo,monospace}#clock-meta{font:500 11px/1.35 var(--font);color:var(--fg-dim);font-variant-numeric:tabular-nums;white-space:nowrap}#panel{right:var(--gap);width:280px;max-height:calc(100% - 64px - var(--toolbar-h) - 2 * var(--gap));flex-direction:column;gap:8px;display:flex;position:fixed;top:64px}#panel-toggle{cursor:pointer;background:rgba(var(--panel-rgb), .72);color:var(--fg);font:600 13px/1 var(--font);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff24;border-radius:8px;align-self:flex-end;align-items:center;gap:6px;padding:5px 10px;display:flex}#panel-toggle .chev:before{content:"▸";transition:transform .2s;display:inline-block}#panel.open #panel-toggle .chev:before{transform:rotate(90deg)}#panel-cards{flex-direction:column;gap:8px;display:flex;overflow-y:auto}#panel:not(.open) #panel-cards{display:none}.card{background:rgba(var(--panel-rgb), .72);border:1px solid #ffffff1a;border-left:3px solid var(--accent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;padding:10px 12px 12px}.card h2{color:var(--fg);letter-spacing:.06em;align-items:center;gap:8px;margin:0 0 6px;font-size:14px;font-weight:700;display:flex}.card-head{cursor:pointer;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:0;display:flex}.card-head:after{content:"▾";color:var(--fg-dim);font-size:11px;transition:transform .2s}.card.collapsed .card-head:after{transform:rotate(-90deg)}.card-head:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.card.collapsed .card-body{display:none}.card.collapsed h2{margin-bottom:0}.dot{background:#ffffff38;border-radius:50%;flex:none;width:7px;height:7px}.card.busy .dot{background:var(--accent);animation:.9s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45;transform:scale(1.7)}}.card-body{min-height:44px;color:var(--fg-dim);font-size:13px}.card-body:empty:before{content:"—"}.wx-main{color:var(--fg);font-size:16px;font-weight:600}.wx-detail,.wx-updated,.wx-range{margin-top:2px}.wx-badges{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.wx-spark,.st-spark{color:var(--fg-dim);margin-top:6px}.spark{width:100%;height:30px;display:block}.st-name{font-size:12px}.st-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.st-price{color:var(--fg);font-variant-numeric:tabular-nums;font:700 22px/1.2 ui-monospace,SF Mono,Menlo,monospace}.st-change{font:600 13px/1.2 var(--font);font-variant-numeric:tabular-nums}.tone-up{color:var(--up,#e60012)}.tone-down{color:var(--down,#00843d)}.tone-flat{color:var(--fg-dim)}.st-detail{font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.news-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.news-item{color:var(--fg-dim);border-left:2px solid #0000;border-radius:6px;padding:4px 6px;text-decoration:none;transition:background .25s;display:block}.news-item.hl{color:var(--fg);border-left-color:var(--accent);background:#ffffff17}.news-item:hover,.news-item:focus-visible{color:var(--fg);background:#ffffff21;outline:none}.news-title{font-size:12.5px;line-height:1.35;display:block}.news-meta{opacity:.75;margin-top:1px;font-size:11px;display:block}.badge{color:#ffe7a3;background:#ffc40038;border-radius:4px;padding:1px 6px;font-size:11px}#toolbar{left:50%;bottom:var(--gap);height:var(--toolbar-h);box-sizing:border-box;background:rgba(var(--panel-rgb), .72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:4px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}#toolbar button{cursor:pointer;white-space:nowrap;height:38px;color:var(--fg);font:600 14px/1 var(--font);background:0 0;border:0;border-radius:8px;padding:0 12px}#toolbar button:hover{background:#ffffff14}#toolbar button.active{background:var(--accent)}#toolbar button:focus-visible,#panel-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#toolbar kbd{color:var(--fg-dim);background:#ffffff24;border-radius:4px;margin-right:6px;padding:1px 5px;font:600 11px/1.3 ui-monospace,Menlo,monospace;display:inline-block}#toolbar .sep{background:#ffffff2e;width:1px;height:24px;margin:0 4px}#idle-toggle:before{content:"";background:var(--fg-dim);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}#idle-toggle[aria-pressed=true]:before{background:var(--accent);box-shadow:0 0 0 2px #ffffff40}#debug{left:var(--gap);color:#b7f5c8;pointer-events:none;background:#0009;border-radius:6px;margin:0;padding:6px 8px;font:12px/1.35 ui-monospace,Menlo,monospace;position:fixed;top:34px}@media (width<=600px){:root{--gap:8px;--toolbar-h:48px}#site-title{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 250px);font-size:13px;overflow:hidden}#clock{font-size:15px}#clock-meta{font-size:10px}#toolbar{left:var(--gap);right:var(--gap);justify-content:space-between;gap:2px;padding:4px;transform:none}#toolbar button{flex:auto;height:38px;padding:0 6px;font-size:13px}#toolbar kbd,#toolbar .sep{display:none}#idle-toggle{font-size:12px}#panel{left:var(--gap);right:var(--gap);width:auto;top:auto;bottom:calc(var(--toolbar-h) + 2 * var(--gap));gap:6px;max-height:40vh}#panel-toggle{justify-content:center;align-self:stretch;padding:7px 10px}#panel-cards{gap:6px}.card{padding:8px 10px}.card-body{min-height:28px}}
