:root{color-scheme:dark;--paper:#0e0d0b;--white:#191611;--ink:#f0e7d7;--muted:#b4a58b;--line:#3b3122;--gold:#d8b36a;--gold-light:#f3d997;--banker:#f18b7e;--banker-light:#3c211c;--player:#83b9ec;--player-light:#1a2c3d;--tie:#89c8a7;--radius:14px;--surface:#191611;--surface-raised:#211c14}
body{min-height:100vh;background:radial-gradient(ellipse at 90% 0,#64451526,transparent 44%),radial-gradient(ellipse at 5% 42%,#4d351313,transparent 40%),var(--paper);color:var(--ink)}
::selection{background:#c39a4d66;color:#fff3d5}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline-color:var(--gold-light)}
.topbar{background:#14120ef5;border-bottom:1px solid #6b512d;box-shadow:0 5px 28px #0005;gap:24px}
.brand{color:#f6e3bc;letter-spacing:.05em}
.brand-mark{font-family:"Microsoft JhengHei",sans-serif;font-size:23px;color:#201708;background:linear-gradient(135deg,#f1d78f,#ba8c3e);border:1px solid #e4c679;box-shadow:0 0 23px #b58b3928;border-radius:10px}
.brand-en{color:var(--gold);font-size:10px;letter-spacing:.3em}
.topbar nav a{color:#bbab8d}
.topbar nav a.active{color:var(--gold-light);border-color:var(--gold)}
.topbar nav a:hover{color:var(--gold-light)}
.topbar nav a span{background:#332819;color:#e1c48b}
.storage-status{color:#b9ad96}
.button.primary{background:linear-gradient(135deg,#e8cc87,#c39a4d);color:#211809;border-color:#d9b56a;box-shadow:0 3px 14px #0003}
.button.primary:hover{background:linear-gradient(135deg,#f1dcaa,#d1aa60)}
.button.secondary{background:#211c14;color:#e5d2ac;border-color:#55442b}
.button.secondary:hover{background:#302719;border-color:#a27b3f}
.button.banker-action{border-color:#744238}
.button.player-action{border-color:#36516e}
.text-button{color:#dcc088}
.eyebrow{color:var(--gold);letter-spacing:.15em;font-size:10px}
.dashboard-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);margin:12px 0 28px;border:1px solid #7b5d32;border-radius:17px;overflow:hidden;background:linear-gradient(120deg,#282014,#15120e);box-shadow:0 12px 40px #0004;min-width:0}
.hero-copy{padding:32px 30px;min-width:0}
.hero-copy h1{font-family:"Noto Serif TC","PMingLiU",serif;font-weight:700;font-size:clamp(30px,3vw,43px);line-height:1.45;letter-spacing:.06em;color:#f3dfad;margin:0 0 13px}
.hero-copy .subtitle{color:#c1b296;font-size:12px;line-height:1.9}
.hero-copy .heading-aside{margin:23px 0 0;text-align:left;gap:7px;font-size:10px}
.hero-copy .connection-line{justify-content:flex-start;color:#d9c7a3}
.hero-art{position:relative;min-width:0;overflow:hidden;background:#0b0907}
.hero-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.hero-art:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 18px 0 25px -20px #1e170c}
.page-heading h1{color:#f1dfbc}
.segmented{background:#14120e;border-color:#47391f;box-shadow:inset 0 1px 6px #0004}
.segmented button{color:#b8a98e}
.segmented button.selected{background:linear-gradient(140deg,#594326,#3d2d19);color:#f2dca8;box-shadow:0 2px 7px #0004}
select,input,dialog input,.signal-settings input,.reference-search-label input{background:#15120e;color:#e9ddc7;border-color:#5a4729}
select:hover,input:hover{border-color:#95743d}
select option{background:#1e1912;color:#eee2cc}
.stat-card,.panel,.model-card,.manual-controls{background:linear-gradient(140deg,#1c1812,#17140f);border-color:var(--line);box-shadow:0 5px 22px #0002}
.stat-card{border-top:2px solid #72572e}
.stat-card>span{color:#c2b393}
.stat-card strong{font-variant-numeric:tabular-nums}
.banker-stat{border-top-color:#a45e50}.player-stat{border-top-color:#577c9f}.tie-stat{border-top-color:#547c64}
.stat-card:after{border-color:#d8b36a12}
.banker-stat:after{border-color:#f18b7e0c}.player-stat:after{border-color:#83b9ec0c}.tie-stat:after{border-color:#89c8a70c}
.panel-heading h2{color:#eddbb6}
.pill{background:#211c13;border-color:#5a4526;color:#d5bd8b;font-size:10px}
.empty-state h3{color:#d9c6a2}.empty-symbol{color:#8c713f}
.road-card{background:#13110e;border-color:#3c3223}
.road-card h3{color:#e5d4b1}
.road-scroll,.mapped-road-scroll{scrollbar-color:#75592d #17140f}
.bead-road,.mapped-road{background-color:#14120f}
.bead,.reference-token{color:#17110c;font-weight:700}
.latest-cell{background:#b28a3430}
.road-tie{color:#94dbad}.road-tie-count{color:#a1dbb8;background:#193323}
.forecast-panel{background:radial-gradient(circle at 100% 0,#7d5a202e,transparent 68%),linear-gradient(145deg,#302313,#17130e);border:1px solid #95703a;box-shadow:0 7px 30px #0004}
.forecast-top .eyebrow{color:#e1bc75}
.outline-pill{border-color:#9a763a60;color:#e5c993;background:#9f783513}
.forecast-panel h2{color:#f5e4c2}
.forecast-panel>p,.forecast-panel .forecast-note{color:#c7b596}
.forecast-direction.B{color:#f6a093}.forecast-direction.P{color:#99c7f2}
.score-labels{color:#d2c4aa}.score-labels b{color:#f4e8d0}
.forecast-tracking{color:#dfc58f;border-color:#79603a55}
.joint-summary{background:linear-gradient(110deg,#3b2c17,#251e13);border-color:#795b2c;color:#f1d694}
.joint-summary>span{color:#cbb68d}
.tracking-numbers>div:first-child strong{color:#96d1ac}
.chart-title{color:#b5a68c}
.result-square.hit,.tag.hit{background:#22392b;color:#a2d6b5}
.result-square.miss,.tag.miss{background:#402720;color:#f0aa9a}
.result-square.tie{background:#2a2821;color:#c4bba7}
th{background:#252014;color:#d2ba87;border-color:#4f3d24}
td{color:#d0c4ad;border-bottom-color:#332b1e}
td:first-child{color:#f0e0bd}
.table-scroll{scrollbar-color:#75592d #17140f}
.tag{background:#322b1e;color:#c8bda5}
.tag.T{background:#1f3528;color:#a0d6b3}.tag.demo{background:#4a371d;color:#ecc986}
.selected-row{background:#b9943b0e}
.cell-sub{color:#aa9b80;font-size:10px;line-height:1.7}
.storage-notice{background:#272114;border:1px solid #5a4426}
.notice-icon{color:#d5ad65}.storage-notice p{color:#b8a588}
.model-card .number{color:#ba9453;font-size:30px}
.model-card code{color:#b09a72}
.signal-summary article,.lower-road-cards article{background:linear-gradient(150deg,#2a2216,#1c1811);border-color:#5b4527}
.signal-summary strong,.lower-road-cards strong{color:#eed299}
.signal-positive{color:#9ed8b1}.signal-negative{color:#efaa97}
.signal-setting-note{background:#2b2316;border-color:#65502d;color:#d5bd8d}
.signal-patterns summary,.signal-method summary{color:#d7b978}
.reference-intro{background:#282115;border-color:#654b28;color:#cfb995}
.reference-card>p{color:#c1af90}
.reference-source,.sync-steps a,.brand-facebook{color:#e0bd79}
.reference-triples>span{background:#302719;color:#e5d4b0}
.reference-token.empty{color:#897a5f;background:#211b12}
.banner.demo{background:#2a2215;color:#d9bd84;border:1px solid #5d4727}
.banner.error{background:#3a211a;color:#f0b09f;border-color:#7b4a37}
.sync-steps{color:#c4b395}
dialog{background:#1d1912;border-color:#7b5d32;box-shadow:0 24px 90px #000b}
dialog::backdrop{background:#080604c9}
.form-error{color:#f0a18b}
.toast{background:#4a371c;color:#f6e0ac;border:1px solid #a27b3f;box-shadow:0 8px 30px #0008}
footer{color:#ac9976;border-top-color:#594226;line-height:1.9}
.footer-divider{color:#7d6338}
@media(max-width:1000px){.topbar{gap:18px}.hero-copy{padding:25px 23px}.hero-copy h1{font-size:33px}.dashboard-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
@media(max-width:800px){.dashboard-hero{grid-template-columns:minmax(0,1fr)}.hero-art{order:-1;aspect-ratio:960/365}.hero-copy{padding:23px}.hero-copy h1{font-size:30px}.hero-copy h1 br{display:none}.hero-copy .heading-aside{margin-top:17px}}
@media(max-width:600px){.topbar{border-bottom-color:#6b512d}.brand{font-size:19px}.brand-mark{font-size:22px}.brand-en{font-size:9px}.dashboard-hero{margin:4px 0 20px;border-radius:12px}.hero-copy{padding:19px}.hero-copy h1{font-size:26px;letter-spacing:.02em}.hero-copy .subtitle{font-size:11px}.hero-copy .heading-aside{font-size:9px}.signal-summary strong,.lower-road-cards strong{font-size:26px}.forecast-panel .forecast-note{font-size:10px}}

.rule-note{display:inline-block;font-size:10px;color:#bda473;margin-top:8px}.helper{font-size:12px}table{font-size:12px}th{font-size:11px}.cell-sub{font-size:10.5px}
