@font-face{font-family:"Noto Serif TC Bundled";src:url("./assets/fonts/NotoSerifTC-VF.ttf") format("truetype-variations");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans TC Bundled";src:url("./assets/fonts/NotoSansTC-VF.ttf") format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono Bundled";src:url("./assets/fonts/IBMPlexMono-Regular.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --felt:#143c35;
  --felt-deep:#0a2823;
  --felt-light:#20534a;
  --paper:#f3efe3;
  --paper-deep:#e4ddcc;
  --ink:#182320;
  --ink-soft:#56635e;
  --cream:#f8f3e8;
  --line:rgba(244,239,227,.2);
  --line-dark:rgba(24,35,32,.18);
  --banker:#c83d4d;
  --player:#2f68c5;
  --tie:#23876f;
  --amber:#d4a84f;
  --danger:#b23a43;
  --shadow:0 18px 52px rgba(3,18,15,.2);
  --radius:10px;
  --font-display:"Noto Serif TC Bundled","Noto Serif TC","PMingLiU","Songti TC",serif;
  --font-ui:"Noto Sans TC Bundled","Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;
  --font-data:"IBM Plex Mono Bundled","IBM Plex Mono","Cascadia Mono",ui-monospace,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--felt-deep)}
body{
  margin:0;
  min-width:320px;
  color:var(--cream);
  font-family:var(--font-ui);
  background:
    radial-gradient(circle at 18% 10%,rgba(255,255,255,.035),transparent 25rem),
    repeating-linear-gradient(127deg,rgba(255,255,255,.012) 0 1px,transparent 1px 5px),
    var(--felt);
}
button,input,select,textarea{font:inherit}
button{min-height:44px}
button:not(:disabled){cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
:focus-visible{outline:3px solid #ffe08a;outline-offset:3px}
[hidden]{display:none!important}

.visually-hidden{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important
}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-140%);background:var(--paper);color:var(--ink);padding:10px 14px;border-radius:6px}
.skip-link:focus{transform:none}

.topbar{
  min-height:82px;
  padding:12px clamp(18px,3vw,44px);
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(560px,1.6fr);
  align-items:center;
  gap:24px;
  background:rgba(8,40,34,.93);
  border-bottom:1px solid rgba(244,239,227,.22);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  backdrop-filter:blur(16px);
  position:relative;
  z-index:5;
}
.brand-block{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:baseline}
.brand-block .eyebrow{grid-column:1/-1}
h1,h2,h3,p{margin-top:0}
h1{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(25px,2.5vw,36px);letter-spacing:.06em}
.brand-note{margin:0;color:rgba(248,243,232,.7);font-size:12px;white-space:nowrap}
.eyebrow{margin:0 0 3px;text-transform:uppercase;font:600 10px/1.2 var(--font-data);letter-spacing:.17em;color:#d9c28b}

.shoe-strip{display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:0;margin:0;border-left:1px solid var(--line)}
.shoe-strip div{padding:2px 14px;border-right:1px solid var(--line);min-width:0}
.shoe-strip dt{font-size:11px;color:rgba(248,243,232,.6);margin-bottom:4px}
.shoe-strip dd{margin:0;font:650 14px/1.2 var(--font-data);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-dot::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;background:var(--amber);box-shadow:0 0 0 3px rgba(212,168,79,.15)}
.status-dot.is-valid::before{background:#69c697;box-shadow:0 0 0 3px rgba(105,198,151,.15)}
.status-dot.is-error::before{background:#ff6a73;box-shadow:0 0 0 3px rgba(255,106,115,.15)}

main{padding:18px clamp(18px,3vw,44px) 54px}
.cockpit{
  min-height:calc(100vh - 118px);
  display:grid;
  grid-template-columns:minmax(315px,4fr) minmax(560px,8fr);
  align-items:start;
  gap:18px;
  max-width:1600px;
  margin:0 auto;
}
.control-panel,.analysis-panel{min-width:0}
.control-panel{
  background:rgba(7,35,30,.74);
  border:1px solid rgba(248,243,232,.2);
  padding:clamp(16px,2vw,25px);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
}
.analysis-panel{display:flex;flex-direction:column;gap:13px}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.section-heading h2,.lab-header h2{font-family:var(--font-display);font-size:clamp(20px,2vw,28px);letter-spacing:.03em;margin:0}
.flow-state{font:650 11px/1 var(--font-data);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border:1px solid rgba(248,243,232,.25);color:#d9c28b}
.flow-state[data-state="locked"]{border-color:#edca73;color:#ffe09b}
.flow-state[data-state="entry"]{border-color:#8fb0e8;color:#bed3f8}
.flow-state[data-state="error"]{border-color:#ff8b93;color:#ffd0d3;background:rgba(200,61,77,.18)}

.flow-steps{list-style:none;padding:0;margin:20px 0 16px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;counter-reset:step}
.flow-steps li{display:flex;align-items:center;gap:7px;color:rgba(248,243,232,.47);font-size:12px;border-top:1px solid var(--line);padding-top:10px}
.flow-steps li span{font:700 10px var(--font-data);width:20px;height:20px;border:1px solid currentColor;display:grid;place-items:center;border-radius:50%}
.flow-steps li.is-complete{color:#9bd2bb}
.flow-steps li[aria-current="step"]{color:#f5d98d;border-color:#f5d98d}

.lock-panel{padding:14px 15px;border:1px solid rgba(212,168,79,.35);background:rgba(212,168,79,.06);margin-bottom:15px}
.lock-label{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:rgba(248,243,232,.55);margin-bottom:6px}
.lock-value{font:600 14px/1.35 var(--font-data);margin-bottom:11px;min-height:19px}
.button-row,.settle-row{display:flex;gap:8px;align-items:center}
.button{
  border:1px solid rgba(248,243,232,.25);
  color:var(--cream);
  background:rgba(248,243,232,.08);
  padding:10px 14px;
  border-radius:6px;
  font-weight:700;
  transition:background .18s ease,border-color .18s ease,transform .18s ease
}
.button:not(:disabled):hover{background:rgba(248,243,232,.14);border-color:rgba(248,243,232,.45)}
.button:not(:disabled):active{transform:translateY(1px)}
.button-primary{background:#d7bd78;color:#173129;border-color:#d7bd78}
.button-primary:not(:disabled):hover{background:#f0d892;border-color:#f0d892}
.button-quiet{border-color:transparent;background:transparent;color:rgba(248,243,232,.68)}
.button-settle{flex:1;background:var(--paper);border-color:var(--paper);color:var(--ink);font-size:15px}
.button-danger{border-color:#c8646a;color:#ffd7da}

.usage-guide{margin:0 0 15px;border:1px solid rgba(248,243,232,.18);background:rgba(248,243,232,.025)}
.usage-guide-summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;list-style:none;color:var(--cream);font-weight:700;font-size:12px;cursor:pointer}
.usage-guide-summary::-webkit-details-marker{display:none}
.usage-guide-summary::after{content:"＋";flex:0 0 auto;color:#d9c28b;font:700 18px/1 var(--font-data)}
.usage-guide[open] .usage-guide-summary::after{content:"−"}
.usage-guide-summary span:last-child{color:rgba(248,243,232,.58);font-size:11px;font-weight:500}
.usage-guide-content{padding:2px 13px 13px;border-top:1px solid rgba(248,243,232,.16)}
.usage-guide-content h3{margin:11px 0 9px;font-family:var(--font-display);font-size:16px}
.usage-guide-steps{margin:0;padding-left:21px;color:rgba(248,243,232,.78);font-size:12px;line-height:1.65}
.usage-guide-steps li+li{margin-top:5px}
.usage-guide-note{margin:11px 0 0;padding-top:10px;border-top:1px solid rgba(248,243,232,.14);color:rgba(248,243,232,.58);font-size:11px;line-height:1.6}

.quick-entry{border:1px solid rgba(248,243,232,.18);background:rgba(248,243,232,.035);padding:12px;margin-bottom:13px}
.quick-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.quick-entry-heading h3{font-family:var(--font-display);font-size:16px;margin:0}
.quick-target{font:700 11px var(--font-data);color:#f4d98f;text-align:right}
.quick-side-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:7px}
.quick-side,.quick-card-grid button{min-height:44px;border:1px solid rgba(248,243,232,.22);border-radius:5px;background:rgba(248,243,232,.07);color:var(--cream);font-weight:800}
.quick-side[aria-pressed="true"]{background:rgba(248,243,232,.18);box-shadow:inset 0 -3px 0 currentColor}
.quick-side.is-player[aria-pressed="true"]{color:#a9c6fb;border-color:var(--player)}
.quick-side.is-banker[aria-pressed="true"]{color:#ffadb6;border-color:var(--banker)}
.quick-card-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.quick-card-grid button{font:750 14px var(--font-data);padding:4px 2px}
.quick-card-grid button:not(:disabled):hover{background:rgba(248,243,232,.17);border-color:#d9c28b}
.quick-entry-hint{margin:8px 0 0;font-size:10px;line-height:1.4;color:rgba(248,243,232,.58)}

fieldset{border:0;padding:0;margin:0}
.hand-grid{display:grid;grid-template-columns:1fr;gap:11px}
.hand{border-left:3px solid;padding-left:11px}
.hand-player{border-color:var(--player)}
.hand-banker{border-color:var(--banker)}
.hand legend{width:100%;font-weight:700;margin-bottom:7px;font-size:13px}
.side-mark{display:inline-grid;place-items:center;width:23px;height:23px;border:2px solid;border-radius:50%;margin-right:6px;font-size:11px}
.side-player{color:#9abcf7;border-color:var(--player)}
.side-banker{color:#ffadb6;border-color:var(--banker)}
.card-selects{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.card-selects label{font-size:10px;color:rgba(248,243,232,.58)}
select,input,textarea{
  width:100%;min-height:44px;border:1px solid rgba(248,243,232,.22);border-radius:5px;
  background:#092b26;color:var(--cream);padding:9px 10px
}
.card-selects select{margin-top:4px;font:700 15px var(--font-data)}
textarea{resize:vertical;line-height:1.45}
.round-preview{display:grid;grid-template-columns:repeat(3,1fr);margin:15px 0 0;border-block:1px solid var(--line)}
.round-preview div{padding:10px 8px;border-right:1px solid var(--line)}
.round-preview div:last-child{border-right:0}
.round-preview span{display:block;font-size:10px;color:rgba(248,243,232,.55);margin-bottom:4px}
.round-preview strong{font:700 18px var(--font-data)}
.inline-message{min-height:35px;margin:10px 0 8px;font-size:12px;line-height:1.45;color:rgba(248,243,232,.72)}
.inline-message.is-error{color:#ffb6bb}

.analysis-heading{padding:2px 2px 0}
.calculation-status{margin:2px 0 0;color:rgba(248,243,232,.68);font:600 11px var(--font-data)}
.probability-band{display:grid;grid-template-columns:1fr 1fr .76fr;border:1px solid var(--line);background:rgba(8,38,33,.7)}
.probability{padding:13px 16px;border-right:1px solid var(--line)}
.probability:last-child{border-right:0}
.probability-label{display:flex;align-items:center;gap:8px;color:rgba(248,243,232,.67);font-size:11px}
.probability-label i{font-style:normal;width:23px;height:23px;display:grid;place-items:center;border:2px solid;border-radius:50%;font-size:10px}
.probability-banker .probability-label i{border-color:var(--banker);color:#ffadb6}
.probability-player .probability-label i{border-color:var(--player);color:#a9c6fb}
.probability-tie .probability-label i{border-color:var(--tie);color:#a6ddc6}
.probability strong{display:block;font:750 clamp(25px,3.5vw,43px)/1.15 var(--font-data);margin:6px 0 8px;letter-spacing:-.045em}
.probability-track{height:3px;display:block;background:rgba(248,243,232,.09);overflow:hidden}
.probability-track i{display:block;height:100%;width:0;transition:width .45s cubic-bezier(.22,.8,.32,1)}
.probability-banker .probability-track i{background:var(--banker)}
.probability-player .probability-track i{background:var(--player)}
.probability-tie .probability-track i{background:var(--tie)}
.method-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-height:27px;color:rgba(248,243,232,.6);font:500 10px var(--font-data)}
.text-button{min-height:44px;padding:10px 0;border:0;border-bottom:1px solid #d9c28b;background:transparent;color:#f4d98f;font:600 10px var(--font-data)}

.road-paper{
  color:var(--ink);
  background:
    linear-gradient(rgba(255,255,255,.35),rgba(255,255,255,.08)),
    var(--paper);
  border:1px solid #d9d0bc;
  box-shadow:0 16px 34px rgba(0,0,0,.2),inset 0 0 50px rgba(104,84,46,.035);
  min-width:0;
}
.road-paper-main{flex:1;min-height:350px;display:grid;grid-template-rows:auto 1fr auto;padding:17px 18px 12px;position:relative;overflow:hidden}
.road-paper-main::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E")}
.paper-heading,.paper-footer{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.paper-kicker{font:700 9px var(--font-data);letter-spacing:.17em;color:var(--ink-soft);margin:0 0 3px}
.paper-heading h3{font-family:var(--font-display);font-size:20px;margin:0}
.road-legend{display:flex;gap:12px;font-size:10px;color:var(--ink-soft);padding-top:3px}
.road-legend span{display:flex;align-items:center;gap:5px}
.legend-ring{display:inline-block;width:13px;height:13px;border:2px solid;border-radius:50%}
.legend-ring.banker{border-color:var(--banker)}
.legend-ring.player{border-color:var(--player)}
.legend-slash{width:13px;height:13px;position:relative;border:2px solid var(--ink-soft);border-radius:50%}
.legend-slash::after{content:"";position:absolute;width:14px;height:2px;background:var(--tie);transform:rotate(-45deg);top:5px;left:-1px}
.paper-footer{padding-top:9px;border-top:1px solid var(--line-dark);font:600 10px var(--font-data);color:var(--ink-soft)}

.road-scroll{
  position:relative;z-index:1;overflow:auto;overscroll-behavior-inline:contain;
  background-image:linear-gradient(to right,rgba(55,70,65,.16) 1px,transparent 1px),linear-gradient(to bottom,rgba(55,70,65,.16) 1px,transparent 1px);
  background-size:34px 34px;background-position:-1px -1px;margin:13px 0 10px;min-height:205px
}
.road-grid{display:grid;grid-template-rows:repeat(6,34px);grid-auto-columns:34px;grid-auto-flow:column;width:max-content;min-width:100%;min-height:204px}
.road-cell{display:grid;place-items:center;width:34px;height:34px;position:relative}
.road-mark{width:23px;height:23px;border:3px solid;border-radius:50%;display:grid;place-items:center;position:relative;font:700 8px var(--font-data);background:rgba(243,239,227,.7)}
.road-mark.banker{border-color:var(--banker);color:var(--banker)}
.road-mark.player{border-color:var(--player);color:var(--player)}
.road-mark.tie{border-color:var(--tie);color:var(--tie)}
.road-mark .tie-marker{position:absolute;left:-4px;top:8px;width:25px;height:2px;background:var(--tie);transform:rotate(-45deg);box-shadow:0 0 0 1px rgba(243,239,227,.72)}
.road-mark .tie-count{position:absolute;right:1px;bottom:0;background:var(--tie);color:white;border-radius:50%;width:13px;height:13px;display:grid;place-items:center;font-size:7px}
.road-cell.is-new .road-mark{animation:ink-drop .48s cubic-bezier(.17,.84,.44,1)}
.road-empty{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:#718078;font-family:var(--font-display);font-size:14px;text-align:center;padding:30px}

.laboratory{max-width:1600px;margin:26px auto 0;background:rgba(7,35,30,.62);border:1px solid var(--line);box-shadow:var(--shadow)}
.lab-header{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:20px 24px 16px}
.lab-header p:last-child{max-width:580px;margin:0;color:rgba(248,243,232,.62);font-size:12px}
.tabs{display:flex;border-block:1px solid var(--line);overflow:auto}
.tabs button{flex:1;min-width:140px;border:0;border-right:1px solid var(--line);background:transparent;color:rgba(248,243,232,.62);padding:13px;font-weight:700}
.tabs button[aria-selected="true"]{background:var(--paper);color:var(--ink)}
.tab-panel{padding:20px 24px 26px}
/* The bead plate, three derived roads, and ask road sit under the Big Road in both views. */
.road-set{display:grid;gap:13px;min-width:0}
.road-set .ask-road{margin-top:0}
.roads-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.roads-layout .road-paper{padding:13px}
.roads-layout h3{font-family:var(--font-display);font-size:16px;margin:0}
.roads-layout .road-scroll{min-height:136px;margin-bottom:0;background-size:23px 23px}
.road-grid-small{grid-template-rows:repeat(6,23px);grid-auto-columns:23px;min-height:138px}
.road-grid-small .road-cell{width:23px;height:23px}
.road-grid-small .road-mark{width:17px;height:17px;border-width:2px;font-size:6px}
.derived .road-mark{width:10px;height:10px;border:0;background:currentColor}
.derived .road-mark.red{color:var(--banker);border-radius:50%;clip-path:none}
.derived .road-mark.blue{color:var(--player);border-radius:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.ask-road{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:0;border:1px solid var(--line);margin-top:13px}
.ask-road>div,.ask-road>p{padding:12px 15px;margin:0;border-right:1px solid var(--line)}
.ask-road>p{border-right:0;font-size:11px;color:rgba(248,243,232,.6)}
.ask-road span{display:block;font-size:10px;color:rgba(248,243,232,.55)}
.ask-road strong{font:700 14px var(--font-data)}

.evidence-grid,.validation-grid,.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.evidence-card,.experimental-score,.calibration-card,.validation-log,.data-card{border:1px solid var(--line);background:rgba(5,31,27,.7);padding:16px;min-width:0}
.evidence-card header,.calibration-card header,.validation-log header{display:flex;justify-content:space-between;gap:15px;align-items:start}
.evidence-card h3,.experimental-score h3,.calibration-card h3,.validation-log h3,.data-card h3{font-family:var(--font-display);margin:0 0 6px;font-size:18px}
.evidence-card header>span,.evidence-card header p,.calibration-card p,.validation-log p,.data-card p{font-size:11px;color:rgba(248,243,232,.58);margin-bottom:11px}
.table-scroll{overflow:auto}
table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}
th,td{padding:9px 8px;text-align:right;border-bottom:1px solid var(--line)}
th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:#0d342e}
th{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:rgba(248,243,232,.55)}
td{font-family:var(--font-data)}
.experimental-score{margin-top:14px;display:grid;grid-template-columns:1fr 1.2fr 1.5fr;align-items:center;gap:20px}
.experimental-score p{font-size:11px;color:rgba(248,243,232,.6);margin:0}
.score-values{display:flex;gap:18px}
.score-values span{font-size:10px;color:rgba(248,243,232,.6)}
.score-values strong{display:block;color:var(--cream);font:700 19px var(--font-data)}

.metrics-row{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line);margin-bottom:14px}
.metrics-row article{padding:13px;border-right:1px solid var(--line)}
.metrics-row article:last-child{border-right:0}
.metrics-row span{display:block;font-size:10px;color:rgba(248,243,232,.54);margin-bottom:5px}
.metrics-row strong{font:700 18px var(--font-data)}
.calibration-chart{min-height:220px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;align-items:end;border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 10px 0}
.calibration-bin{display:grid;grid-template-rows:1fr auto;gap:5px;height:180px;align-items:end;text-align:center;font:600 9px var(--font-data);color:rgba(248,243,232,.6)}
.calibration-bars{height:145px;display:flex;justify-content:center;align-items:end;gap:3px}
.calibration-bars i{display:block;width:12px;min-height:1px;background:#d7bd78}
.calibration-bars i.actual{background:#74ad9a}

.data-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.data-import{grid-row:span 2}
.inline-fields{display:grid;grid-template-columns:1fr .65fr auto;gap:8px;align-items:end}
.inline-fields label,.data-card>label{font-size:10px;color:rgba(248,243,232,.58)}
.data-summary{margin:10px 0 0!important;font-family:var(--font-data)}
.quick-results{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.quick-results button{border:1px solid var(--line);background:transparent;color:var(--cream);font:600 10px var(--font-data)}
.quick-results button span{display:block;font:700 18px var(--font-display)}
.quick-results button[data-road-only="B"] span{color:#ff9da7}
.quick-results button[data-road-only="P"] span{color:#9abcf7}
.quick-results button[data-road-only="T"] span{color:#9fdec4}
.file-field{display:block;border:1px dashed rgba(248,243,232,.3);padding:10px;margin-bottom:10px}
.file-field input{border:0;padding:7px 0 0;background:transparent;min-height:auto}
.data-import textarea{display:block;margin:5px 0 9px;font-family:var(--font-data);font-size:11px}
.button-stack{display:grid;gap:8px}
.capture-preview{margin-top:11px;border:1px solid rgba(248,243,232,.18);background:#08241f;padding:8px}
.capture-preview img{display:block;width:100%;max-height:210px;object-fit:contain;background:#020f0c}
.capture-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;margin-top:6px;font:600 10px var(--font-data);color:rgba(248,243,232,.68)}
.capture-meta .text-button{margin-left:auto}
.capture-card .data-summary{font-size:10px}
.danger-zone{border-color:rgba(200,61,77,.45)}

.toast{position:fixed;left:50%;bottom:24px;z-index:30;transform:translate(-50%,120px);opacity:0;background:var(--paper);color:var(--ink);padding:11px 16px;box-shadow:var(--shadow);font-weight:700;font-size:12px;transition:.25s ease;pointer-events:none}
.toast.is-visible{transform:translate(-50%,0);opacity:1}

@keyframes ink-drop{0%{transform:scale(2.2);opacity:0;filter:blur(2px)}65%{transform:scale(.88);opacity:1}100%{transform:scale(1);filter:none}}

@media(min-width:901px) and (max-height:800px){
  .topbar{min-height:72px;padding-block:8px}
  main{padding-top:12px}
  .cockpit{min-height:calc(100vh - 96px);gap:14px}
  .control-panel{padding:10px}
  .analysis-panel{gap:8px}
  .flow-steps{margin:8px 0 7px}
  .flow-steps li{padding-top:5px}
  .lock-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label actions" "value actions";align-items:center;gap:2px 8px;padding:7px 9px;margin-bottom:7px}
  .lock-label{grid-area:label;margin:0}
  .lock-value{grid-area:value;margin:0;min-height:0}
  .lock-panel .button-row{grid-area:actions}
  .quick-entry{padding:7px;margin-bottom:7px}
  .quick-entry-heading{margin-bottom:5px}
  .quick-side-switch{margin-bottom:4px}
  .quick-card-grid{gap:4px}
  .quick-entry-hint{margin-top:4px}
  .hand-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .hand{padding-left:7px}
  .hand legend{margin-bottom:3px}
  .card-selects{gap:3px}
  .card-selects select{padding-inline:6px}
  .round-preview{margin-top:7px}
  .round-preview div{padding:5px}
  .inline-message{min-height:24px;margin:4px 0}
  .probability{padding-block:8px}
  .probability strong{margin-block:4px 6px}
  .road-paper-main{min-height:320px;padding-top:13px}
}

@media(max-width:1100px){
  .topbar{grid-template-columns:1fr 1.45fr}.brand-note{display:none}
  .cockpit{grid-template-columns:minmax(300px,4.2fr) minmax(500px,7.8fr)}
  .probability{padding:11px}.road-paper-main{min-height:330px}
  .data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){
  .topbar{position:static;grid-template-columns:1fr;padding:12px 16px;gap:10px}
  .shoe-strip{border-left:0;border-top:1px solid var(--line);padding-top:9px;grid-template-columns:repeat(5,1fr)}
  .shoe-strip div{padding-inline:8px}.shoe-strip div:last-child{border-right:0}
  main{padding:14px 14px 44px}.cockpit{display:block;min-height:0}
  .control-panel{margin-bottom:14px}.analysis-panel{min-height:660px}
  .roads-layout,.evidence-grid,.validation-grid{grid-template-columns:1fr}
  .metrics-row{grid-template-columns:repeat(3,1fr)}.metrics-row article:nth-child(3){border-right:0}.metrics-row article:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .experimental-score{grid-template-columns:1fr}.ask-road{grid-template-columns:1fr 1fr}.ask-road>p{grid-column:1/-1;border-top:1px solid var(--line)}
}

@media(max-width:620px){
  .brand-block{display:block}.brand-note{display:block;margin-top:4px;white-space:normal}
  .shoe-strip{grid-template-columns:repeat(2,1fr)}.shoe-strip div{border-bottom:1px solid var(--line);padding-block:7px}.shoe-strip div:nth-child(2n){border-right:0}
  .section-heading h2,.lab-header h2{font-size:22px}
  .quick-card-grid{grid-template-columns:repeat(5,1fr)}
  .quick-entry-heading h3{font-size:15px}
  .probability-band{grid-template-columns:1fr 1fr}.probability-tie{grid-column:1/-1;border-top:1px solid var(--line)}
  .probability strong{font-size:28px}.method-line{align-items:flex-start;flex-direction:column;gap:4px}
  .road-paper-main{padding:13px;min-height:360px}.road-legend{flex-wrap:wrap;justify-content:flex-end}
  .lab-header{display:block;padding:17px}.tabs button{min-width:112px}.tab-panel{padding:14px}
  .roads-layout,.data-grid{grid-template-columns:1fr}.data-import{grid-row:auto}
  .metrics-row{grid-template-columns:repeat(2,1fr)}.metrics-row article:nth-child(3){border-right:1px solid var(--line)}.metrics-row article:nth-child(2n){border-right:0}.metrics-row article:nth-child(-n+4){border-bottom:1px solid var(--line)}
  .inline-fields{grid-template-columns:1fr 1fr}.inline-fields .button{grid-column:1/-1}
}

/* Two views share one shoe. The switch is shaped like the marked edge of a dealing tray. */
.view-mode-switch{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;min-width:214px;padding:3px;border:1px solid rgba(248,243,232,.28);background:rgba(3,24,20,.58);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.view-mode-button{min-height:44px;border:1px solid transparent;border-radius:4px;padding:8px 10px;color:rgba(248,243,232,.68);background:transparent;font:750 11px/1.15 var(--font-ui);letter-spacing:.035em;text-align:center;transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.view-mode-button:not(:disabled):hover{color:var(--cream);background:rgba(248,243,232,.1)}
.view-mode-button[aria-pressed="true"],.view-mode-button.is-active{color:var(--ink);border-color:var(--paper);background:var(--paper);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.view-mode-label{display:block;grid-column:1/-1;margin:0;color:rgba(248,243,232,.58);font:700 9px/1.2 var(--font-data);letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}
.view-mode-buttons{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
.view-mode-buttons .view-mode-button{width:100%}
.mode-description{min-width:0;margin:0;color:rgba(248,243,232,.66);font:600 10px/1.3 var(--font-data);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.view-mode-switch .mode-description{grid-column:1/-1;padding:2px 3px 1px}
.research-drawer{position:relative}
body[data-view-mode="research"] .research-drawer{border-top-color:rgba(217,194,139,.55);animation:drawer-arrive .26s ease-out both}
body[data-view-mode="field"] .research-drawer{display:none!important}

/* Field mode is a winter card-table workbench: cool paper, spruce ink, and one warm road sheet. */
body[data-view-mode="field"]{
  --field-snow:#f7f9f8;
  --field-mist:#e7eeeb;
  --field-line:#c8d4cf;
  --field-ink:#183c34;
  --field-muted:#61716b;
  --field-fjord:#3d6e8d;
  --field-banker:#b24d58;
  --field-player:#3d6f96;
  --field-tie:#337865;
  color:var(--field-ink);
  background:
    linear-gradient(132deg,rgba(220,232,226,.72),transparent 36rem),
    repeating-linear-gradient(90deg,transparent 0 79px,rgba(24,60,52,.025) 79px 80px),
    #eef3f0;
}
body[data-view-mode="field"] :focus-visible{outline-color:var(--field-fjord)}
body[data-view-mode="field"] .topbar{color:var(--field-ink);background:rgba(247,249,248,.94);border-bottom-color:var(--field-line);box-shadow:inset 0 -1px 0 rgba(24,60,52,.035)}
body[data-view-mode="field"] .brand-block{display:block;text-align:center}
body[data-view-mode="field"] .brand-note{color:var(--field-muted)}
body[data-view-mode="field"] .eyebrow{color:#496e63}
body[data-view-mode="field"] .shoe-strip{border-left-color:var(--field-line)}
body[data-view-mode="field"] .shoe-strip div{border-right-color:var(--field-line);text-align:center}
body[data-view-mode="field"] .shoe-strip dt{color:var(--field-muted)}
body[data-view-mode="field"] .shoe-strip dd{color:var(--field-ink)}
body[data-view-mode="field"] .status-dot::before{background:#b28b4d;box-shadow:0 0 0 3px rgba(178,139,77,.13)}
body[data-view-mode="field"] .status-dot.is-valid::before{background:var(--field-tie);box-shadow:0 0 0 3px rgba(51,120,101,.13)}
body[data-view-mode="field"] .status-dot.is-error::before{background:var(--field-banker);box-shadow:0 0 0 3px rgba(178,77,88,.13)}
body[data-view-mode="field"] main{padding-bottom:24px}
body[data-view-mode="field"] .cockpit{grid-template-columns:minmax(330px,.92fr) minmax(520px,1.48fr);gap:18px;max-width:1420px}
body[data-view-mode="field"] .control-panel{position:relative;color:var(--field-ink);background:rgba(247,249,248,.92);border:1px solid var(--field-line);border-top:3px solid var(--field-ink);box-shadow:none}
body[data-view-mode="field"] .analysis-panel{gap:12px}
body[data-view-mode="field"] .section-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
body[data-view-mode="field"] .section-heading>div{grid-column:2;text-align:center}
body[data-view-mode="field"] .section-heading .flow-state,body[data-view-mode="field"] .section-heading .calculation-status{grid-column:3;justify-self:end}
body[data-view-mode="field"] .section-heading h2{letter-spacing:.04em}
body[data-view-mode="field"] .flow-state{border-color:var(--field-line);color:var(--field-muted);background:var(--field-snow)}
body[data-view-mode="field"] .flow-state[data-state="locked"]{border-color:#b28b4d;color:#7f622f}
body[data-view-mode="field"] .flow-state[data-state="entry"]{border-color:var(--field-player);color:#315e83}
body[data-view-mode="field"] .flow-state[data-state="error"]{border-color:var(--field-banker);color:#963944;background:#fbf1f2}
body[data-view-mode="field"] .flow-steps{margin:14px 0 12px;padding:7px 9px;gap:0;border-block:1px solid var(--field-line);background:transparent}
body[data-view-mode="field"] .flow-steps li{justify-content:center;padding:0 7px;border-top:0;border-right:1px solid var(--field-line);color:#91a09a;white-space:nowrap;text-align:center}
body[data-view-mode="field"] .flow-steps li:last-child{border-right:0}
body[data-view-mode="field"] .flow-steps li.is-complete{color:var(--field-tie)}
body[data-view-mode="field"] .flow-steps li[aria-current="step"]{color:var(--field-ink);border-color:var(--field-line)}
body[data-view-mode="field"] .usage-guide{margin-bottom:13px;border-color:var(--field-line);background:#f1f5f3}
body[data-view-mode="field"] .usage-guide-summary{color:var(--field-ink);justify-content:center;text-align:center}
body[data-view-mode="field"] .usage-guide-summary::after{color:var(--field-fjord)}
body[data-view-mode="field"] .usage-guide-summary span:last-child{color:var(--field-muted)}
body[data-view-mode="field"] .usage-guide-content{border-top-color:var(--field-line);text-align:center}
body[data-view-mode="field"] .usage-guide-steps{padding-left:0;list-style-position:inside;color:var(--field-ink);text-align:center}
body[data-view-mode="field"] .usage-guide-note{border-top-color:var(--field-line);color:var(--field-muted);text-align:center}
body[data-view-mode="field"] .lock-panel{padding:14px 15px;border-color:var(--field-line);border-inline:0;background:linear-gradient(90deg,rgba(61,111,150,.075),transparent 72%);text-align:center}
body[data-view-mode="field"] .lock-label{color:var(--field-muted)}
body[data-view-mode="field"] .lock-value{color:var(--field-ink)}
body[data-view-mode="field"] .button-row,body[data-view-mode="field"] .settle-row{justify-content:center}
body[data-view-mode="field"] .button{border-color:var(--field-line);border-radius:0;color:var(--field-ink);background:#fbfcfb;box-shadow:none;text-align:center}
body[data-view-mode="field"] .button:not(:disabled):hover{border-color:#7c9890;background:var(--field-mist)}
body[data-view-mode="field"] .button-primary{border-color:var(--field-ink);background:var(--field-ink);color:#f7f9f8}
body[data-view-mode="field"] .button-primary:not(:disabled):hover{border-color:#244c43;background:#244c43}
body[data-view-mode="field"] .button-quiet{border-color:transparent;background:transparent;color:var(--field-muted)}
body[data-view-mode="field"] .button-settle{border-color:var(--field-ink);background:var(--field-ink);color:#f7f9f8;box-shadow:none}
body[data-view-mode="field"] .button-settle:not(:disabled):hover{border-color:#244c43;background:#244c43}
body[data-view-mode="field"] .button-danger{border-color:var(--field-banker);color:#963944}
body[data-view-mode="field"] .quick-entry{margin-bottom:13px;border-color:var(--field-line);border-inline:0;background:transparent;text-align:center}
body[data-view-mode="field"] .quick-entry-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
body[data-view-mode="field"] .quick-entry-heading>div{grid-column:2;text-align:center}
body[data-view-mode="field"] .quick-target{grid-column:3;justify-self:end;padding:5px 7px;border-left:1px solid var(--field-line);background:transparent;color:var(--field-fjord);text-align:right}
body[data-view-mode="field"] .quick-side,body[data-view-mode="field"] .quick-card-grid button{border-color:var(--field-line);border-radius:0;background:#fbfcfb;color:var(--field-ink)}
body[data-view-mode="field"] .quick-side[aria-pressed="true"]{background:var(--field-mist);box-shadow:inset 0 -2px 0 currentColor}
body[data-view-mode="field"] .quick-side.is-player[aria-pressed="true"]{color:var(--field-player);border-color:var(--field-player)}
body[data-view-mode="field"] .quick-side.is-banker[aria-pressed="true"]{color:var(--field-banker);border-color:var(--field-banker)}
body[data-view-mode="field"] .quick-card-grid button:not(:disabled):hover{border-color:var(--field-fjord);background:#edf3f0}
body[data-view-mode="field"] .quick-entry-hint{color:var(--field-muted);text-align:center}
body[data-view-mode="field"] .hand-grid{text-align:center}
body[data-view-mode="field"] .hand{border-left:0;border-top:2px solid;padding:9px 0 0}
body[data-view-mode="field"] .hand legend{color:var(--field-ink)}
body[data-view-mode="field"] .side-player{color:var(--field-player);border-color:var(--field-player)}
body[data-view-mode="field"] .side-banker{color:var(--field-banker);border-color:var(--field-banker)}
body[data-view-mode="field"] .card-selects label{color:var(--field-muted);text-align:center}
body[data-view-mode="field"] select,body[data-view-mode="field"] input,body[data-view-mode="field"] textarea{border-color:var(--field-line);border-radius:0;background:#fff;color:var(--field-ink);text-align:center}
body[data-view-mode="field"] .round-preview{border-color:var(--field-line);background:#f1f5f3;text-align:center}
body[data-view-mode="field"] .round-preview div{border-right-color:var(--field-line)}
body[data-view-mode="field"] .round-preview span{color:var(--field-muted)}
body[data-view-mode="field"] .inline-message{color:var(--field-muted);text-align:center}
body[data-view-mode="field"] .inline-message.is-error{color:#963944}
body[data-view-mode="field"] .calculation-status{color:var(--field-muted);text-align:right}
body[data-view-mode="field"] .probability-band{border-color:var(--field-line);background:var(--field-snow);box-shadow:none}
body[data-view-mode="field"] .probability{border-right-color:var(--field-line);text-align:center}
body[data-view-mode="field"] .probability-label{justify-content:center;color:var(--field-muted)}
body[data-view-mode="field"] .probability-banker .probability-label i{border-color:var(--field-banker);color:var(--field-banker)}
body[data-view-mode="field"] .probability-player .probability-label i{border-color:var(--field-player);color:var(--field-player)}
body[data-view-mode="field"] .probability-tie .probability-label i{border-color:var(--field-tie);color:var(--field-tie)}
body[data-view-mode="field"] .probability strong{color:var(--field-ink)}
body[data-view-mode="field"] .probability-track{background:#dfe8e4}
body[data-view-mode="field"] .probability-banker .probability-track i{background:var(--field-banker)}
body[data-view-mode="field"] .probability-player .probability-track i{background:var(--field-player)}
body[data-view-mode="field"] .probability-tie .probability-track i{background:var(--field-tie)}
body[data-view-mode="field"] .method-line{min-height:21px;padding:0 2px;color:var(--field-muted);justify-content:center}
body[data-view-mode="field"] .method-line #mcButton,body[data-view-mode="field"] .method-line #mcStatus{display:none}
body[data-view-mode="field"] .road-paper-main{border-color:#d6cdb9;box-shadow:none}
body[data-view-mode="field"] .paper-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding-bottom:7px;border-bottom:1px solid rgba(24,35,32,.14)}
body[data-view-mode="field"] .paper-heading>div:first-child{grid-column:2;text-align:center}
body[data-view-mode="field"] .paper-heading .road-legend{grid-column:3;justify-self:end}
body[data-view-mode="field"] .road-paper-main .road-scroll{background-size:34px 34px}
body[data-view-mode="field"] .paper-footer{justify-content:center;gap:18px;padding-top:8px;border-top-color:rgba(24,35,32,.2);text-align:center}
body[data-view-mode="field"] .view-mode-switch{border-color:var(--field-line);background:#f0f5f2;box-shadow:none}
body[data-view-mode="field"] .view-mode-label,body[data-view-mode="field"] .mode-description{color:var(--field-muted);text-align:center}
body[data-view-mode="field"] .view-mode-button{color:var(--field-muted);border-radius:0}
body[data-view-mode="field"] .view-mode-button:not(:disabled):hover{color:var(--field-ink);background:#e3ece8}
body[data-view-mode="field"] .view-mode-button[aria-pressed="true"],body[data-view-mode="field"] .view-mode-button.is-active{color:#f7f9f8;border-color:var(--field-ink);background:var(--field-ink);box-shadow:none}
body[data-view-mode="field"] .toast{background:var(--field-snow);color:var(--field-ink);box-shadow:0 12px 26px rgba(24,60,52,.14)}

/* Field mode is a dark-violet table observatory. The road paper is deliberately
   the only warm surface, so the working controls stay calm and easy to scan. */
html:has(body[data-view-mode="field"]){background:#1b102e}
body[data-view-mode="field"]{
  --field-night:#1b102e;
  --field-layer:#2a1748;
  --field-panel:#311c52;
  --field-panel-quiet:#24143e;
  --field-snow:#311c52;
  --field-mist:#3b2262;
  --field-line:rgba(246,240,251,.18);
  --field-ink:#f6f0fb;
  --field-muted:#c8bbdf;
  --field-fjord:#b9a7e4;
  --field-banker:#db6a78;
  --field-player:#75a8dc;
  --field-tie:#63b89a;
  color:var(--field-ink);
  color-scheme:dark;
  background:
    radial-gradient(ellipse at 50% -26%,rgba(115,75,170,.34),transparent 46rem),
    linear-gradient(145deg,#24123c 0%,var(--field-night) 54%,#150923 100%);
}
body[data-view-mode="field"] :focus-visible{outline-color:#f6f0fb;outline-offset:4px}
body[data-view-mode="field"] .topbar{
  color:var(--field-ink);
  background:rgba(27,16,46,.94);
  border-bottom-color:var(--field-line);
  box-shadow:0 9px 28px rgba(10,3,22,.26);
}
body[data-view-mode="field"] .brand-note,
body[data-view-mode="field"] .shoe-strip dt,
body[data-view-mode="field"] .view-mode-label,
body[data-view-mode="field"] .mode-description{color:var(--field-muted)}
body[data-view-mode="field"] .eyebrow{color:#d8cbed}
body[data-view-mode="field"] .shoe-strip,
body[data-view-mode="field"] .shoe-strip div{border-color:var(--field-line)}
body[data-view-mode="field"] .shoe-strip dd{color:var(--field-ink)}
body[data-view-mode="field"] .status-dot::before{background:#b9a7e4;box-shadow:0 0 0 3px rgba(185,167,228,.13)}
body[data-view-mode="field"] .status-dot.is-valid::before{background:var(--field-tie);box-shadow:0 0 0 3px rgba(99,184,154,.13)}
body[data-view-mode="field"] .status-dot.is-error::before{background:var(--field-banker);box-shadow:0 0 0 3px rgba(219,106,120,.13)}
body[data-view-mode="field"] .control-panel{
  color:var(--field-ink);
  background:linear-gradient(145deg,rgba(49,28,82,.98),rgba(36,20,62,.98));
  border-color:var(--field-line);
  border-top-color:rgba(246,240,251,.3);
  border-top-width:1px;
  border-radius:12px;
  box-shadow:0 16px 38px rgba(9,3,21,.22);
}
body[data-view-mode="field"] .analysis-panel{gap:13px}
body[data-view-mode="field"] .section-heading h2{color:var(--field-ink);letter-spacing:.055em}
body[data-view-mode="field"] .section-heading .flow-state,
body[data-view-mode="field"] .section-heading .calculation-status{color:var(--field-muted)}
body[data-view-mode="field"] .flow-state{border-color:var(--field-line);background:rgba(246,240,251,.035)}
body[data-view-mode="field"] .flow-state[data-state="locked"]{border-color:#b9a7e4;color:#e7ddf7;background:rgba(185,167,228,.08)}
body[data-view-mode="field"] .flow-state[data-state="entry"]{border-color:var(--field-player);color:#cae3fb;background:rgba(117,168,220,.08)}
body[data-view-mode="field"] .flow-state[data-state="error"]{border-color:var(--field-banker);color:#ffd7dc;background:rgba(219,106,120,.1)}
body[data-view-mode="field"] .flow-steps{
  border-color:var(--field-line);
  background:rgba(246,240,251,.025);
}
body[data-view-mode="field"] .flow-steps li{color:rgba(200,187,223,.66);border-color:var(--field-line)}
body[data-view-mode="field"] .flow-steps li.is-complete{color:var(--field-tie)}
body[data-view-mode="field"] .flow-steps li[aria-current="step"]{color:var(--field-ink);border-color:var(--field-line)}
body[data-view-mode="field"] .usage-guide{
  border-color:var(--field-line);
  border-radius:9px;
  background:rgba(246,240,251,.045);
}
body[data-view-mode="field"] .usage-guide-summary{color:var(--field-ink)}
body[data-view-mode="field"] .usage-guide-summary::after{color:#d8cbed}
body[data-view-mode="field"] .usage-guide-summary span:last-child,
body[data-view-mode="field"] .usage-guide-note{color:var(--field-muted)}
body[data-view-mode="field"] .usage-guide-content,
body[data-view-mode="field"] .usage-guide-note{border-top-color:var(--field-line)}
body[data-view-mode="field"] .usage-guide-steps{color:var(--field-ink)}
body[data-view-mode="field"] .lock-panel{
  border:1px solid rgba(185,167,228,.36);
  border-radius:9px;
  background:linear-gradient(100deg,rgba(185,167,228,.13),rgba(246,240,251,.035));
  text-align:center;
}
body[data-view-mode="field"] .lock-label,
body[data-view-mode="field"] .card-selects label,
body[data-view-mode="field"] .round-preview span,
body[data-view-mode="field"] .inline-message,
body[data-view-mode="field"] .calculation-status,
body[data-view-mode="field"] .probability-label,
body[data-view-mode="field"] .method-line{color:var(--field-muted)}
body[data-view-mode="field"] .lock-value,
body[data-view-mode="field"] .probability strong{color:var(--field-ink)}
body[data-view-mode="field"] .button{
  border-color:var(--field-line);
  border-radius:7px;
  color:var(--field-ink);
  background:rgba(246,240,251,.075);
  box-shadow:none;
}
body[data-view-mode="field"] .button:not(:disabled):hover{border-color:rgba(246,240,251,.45);background:rgba(246,240,251,.13)}
body[data-view-mode="field"] .button-primary,
body[data-view-mode="field"] .button-settle{
  border-color:#f6f0fb;
  background:#f6f0fb;
  color:#1b102e;
}
body[data-view-mode="field"] .button-primary:not(:disabled):hover,
body[data-view-mode="field"] .button-settle:not(:disabled):hover{border-color:#e1d6f2;background:#e1d6f2}
body[data-view-mode="field"] .button-quiet{color:var(--field-muted);background:transparent}
body[data-view-mode="field"] .button-danger{border-color:var(--field-banker);color:#ffd7dc}
body[data-view-mode="field"] .quick-entry{
  border:1px solid var(--field-line);
  border-radius:9px;
  background:rgba(246,240,251,.035);
  text-align:center;
}
body[data-view-mode="field"] .quick-target{border-left-color:var(--field-line);color:#d8cbed}
body[data-view-mode="field"] .quick-side,
body[data-view-mode="field"] .quick-card-grid button{
  border-color:var(--field-line);
  border-radius:7px;
  background:rgba(246,240,251,.06);
  color:var(--field-ink);
}
body[data-view-mode="field"] .quick-side[aria-pressed="true"]{background:rgba(246,240,251,.14);box-shadow:inset 0 -3px 0 currentColor}
body[data-view-mode="field"] .quick-side.is-player[aria-pressed="true"]{color:#c9e4fc;border-color:var(--field-player)}
body[data-view-mode="field"] .quick-side.is-banker[aria-pressed="true"]{color:#ffd3d9;border-color:var(--field-banker)}
body[data-view-mode="field"] .quick-card-grid button:not(:disabled):hover{border-color:#d8cbed;background:rgba(246,240,251,.13)}
body[data-view-mode="field"] .quick-entry-hint{color:var(--field-muted)}
body[data-view-mode="field"] .hand{border-top-color:var(--field-line)}
body[data-view-mode="field"] .hand.hand-player{border-top-color:var(--field-player)}
body[data-view-mode="field"] .hand.hand-banker{border-top-color:var(--field-banker)}
body[data-view-mode="field"] .hand legend{color:var(--field-ink)}
body[data-view-mode="field"] .side-player{color:#bcdcff;border-color:var(--field-player)}
body[data-view-mode="field"] .side-banker{color:#ffd0d7;border-color:var(--field-banker)}
body[data-view-mode="field"] select,
body[data-view-mode="field"] input,
body[data-view-mode="field"] textarea{
  border-color:var(--field-line);
  border-radius:7px;
  background:rgba(16,8,31,.5);
  color:var(--field-ink);
}
body[data-view-mode="field"] select:focus,
body[data-view-mode="field"] input:focus,
body[data-view-mode="field"] textarea:focus{border-color:#b9a7e4}
body[data-view-mode="field"] .round-preview{border-color:var(--field-line);border-radius:8px;background:rgba(246,240,251,.045)}
body[data-view-mode="field"] .round-preview div{border-color:var(--field-line)}
body[data-view-mode="field"] .inline-message.is-error{color:#ffd1d8}
body[data-view-mode="field"] .probability-band{
  border-color:var(--field-line);
  border-radius:12px;
  background:linear-gradient(135deg,rgba(49,28,82,.96),rgba(36,20,62,.96));
  box-shadow:0 12px 28px rgba(9,3,21,.16);
}
body[data-view-mode="field"] .probability{border-color:var(--field-line)}
body[data-view-mode="field"] .probability-banker .probability-label i{border-color:var(--field-banker);color:#ffd3d9}
body[data-view-mode="field"] .probability-player .probability-label i{border-color:var(--field-player);color:#c9e4fc}
body[data-view-mode="field"] .probability-tie .probability-label i{border-color:var(--field-tie);color:#c4eadc}
body[data-view-mode="field"] .probability-track{background:rgba(246,240,251,.1)}
body[data-view-mode="field"] .probability-banker .probability-track i{background:var(--field-banker)}
body[data-view-mode="field"] .probability-player .probability-track i{background:var(--field-player)}
body[data-view-mode="field"] .probability-tie .probability-track i{background:var(--field-tie)}
body[data-view-mode="field"] .method-line{justify-content:center}
body[data-view-mode="field"] .road-paper-main{
  border-color:#d6cdb9;
  border-radius:9px;
  box-shadow:0 14px 30px rgba(9,3,21,.2),inset 0 0 50px rgba(104,84,46,.035);
}
body[data-view-mode="field"] .roads-layout .road-paper{border-color:#d6cdb9;border-radius:9px;box-shadow:0 10px 24px rgba(9,3,21,.18)}
body[data-view-mode="field"] .ask-road{border-color:var(--field-line);border-radius:9px;color:var(--field-ink)}
body[data-view-mode="field"] .ask-road span,body[data-view-mode="field"] .ask-road>p{color:var(--field-muted)}
body[data-view-mode="field"] .paper-heading{border-bottom-color:rgba(24,35,32,.16)}
body[data-view-mode="field"] .paper-footer{border-top-color:rgba(24,35,32,.2)}
body[data-view-mode="field"] .view-mode-switch{border-color:var(--field-line);border-radius:9px;background:rgba(246,240,251,.045);box-shadow:none}
body[data-view-mode="field"] .view-mode-button{border-radius:6px;color:var(--field-muted)}
body[data-view-mode="field"] .view-mode-button:not(:disabled):hover{color:var(--field-ink);background:rgba(246,240,251,.09)}
body[data-view-mode="field"] .view-mode-button[aria-pressed="true"],
body[data-view-mode="field"] .view-mode-button.is-active{color:#1b102e;border-color:#f6f0fb;background:#f6f0fb;box-shadow:none}
body[data-view-mode="field"] .toast{background:#f6f0fb;color:#1b102e;box-shadow:0 12px 26px rgba(9,3,21,.26)}

/* A table operator normally records with the keypad. The select controls stay
   available for correction, but deliberately recede behind that primary action. */
body[data-view-mode="field"] .locked-snapshot{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:baseline;
  gap:8px;
  margin:0 0 9px;
  padding:8px 10px;
  border:1px solid var(--field-line);
  border-radius:8px;
  background:rgba(246,240,251,.028);
  text-align:center;
}
body[data-view-mode="field"] .locked-snapshot-label{
  color:var(--field-muted);
  font:650 9px/1.25 var(--font-data);
  letter-spacing:.1em;
  text-transform:uppercase;
  white-space:nowrap;
}
body[data-view-mode="field"] .locked-snapshot-value{
  min-width:0;
  color:#e8def6;
  font:650 11px/1.35 var(--font-data);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-view-mode="field"] .locked-snapshot[data-state="unlocked"]{
  border-style:dashed;
  color:var(--field-muted);
  background:transparent;
}
body[data-view-mode="field"] .locked-snapshot[data-state="locked"]{
  border-color:rgba(185,167,228,.52);
  background:linear-gradient(90deg,rgba(185,167,228,.11),rgba(246,240,251,.025));
}
body[data-view-mode="field"] .quick-entry{
  border-color:rgba(216,203,237,.36);
  background:linear-gradient(135deg,rgba(246,240,251,.065),rgba(185,167,228,.026));
  box-shadow:inset 0 1px 0 rgba(246,240,251,.055),0 9px 20px rgba(9,3,21,.1);
}
body[data-view-mode="field"] .quick-card-grid{
  padding:5px;
  border:1px solid rgba(246,240,251,.105);
  border-radius:8px;
  background:rgba(16,8,31,.14);
}
body[data-view-mode="field"] .quick-card-grid button{
  border-color:rgba(246,240,251,.26);
  background:rgba(246,240,251,.078);
}
body[data-view-mode="field"] .quick-card-grid button:not(:disabled):hover{
  border-color:#e5dbf3;
  background:rgba(246,240,251,.16);
}
body[data-view-mode="field"] .quick-entry-actions{
  display:flex;
  justify-content:center;
  min-height:44px;
  margin-top:6px;
}
body[data-view-mode="field"] #undoCardButton{
  min-height:44px;
  padding:8px 12px;
  border:1px solid rgba(246,240,251,.2);
  border-radius:7px;
  background:transparent;
  color:var(--field-muted);
  font:650 10px/1.2 var(--font-data);
  letter-spacing:.04em;
}
body[data-view-mode="field"] #undoCardButton:not(:disabled):hover{
  border-color:rgba(246,240,251,.48);
  background:rgba(246,240,251,.075);
  color:var(--field-ink);
}
body[data-view-mode="field"] #undoCardButton:not(:disabled):active{transform:translateY(1px)}
body[data-view-mode="field"] .card-correction{
  margin-top:5px;
  border:1px dashed rgba(246,240,251,.25);
  border-radius:8px;
  background:rgba(16,8,31,.12);
}
body[data-view-mode="field"] .card-correction-summary{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 11px;
  list-style:none;
  color:var(--field-muted);
  cursor:pointer;
  font:650 10px/1.3 var(--font-data);
  letter-spacing:.045em;
  text-align:center;
}
body[data-view-mode="field"] .card-correction-summary::-webkit-details-marker{display:none}
body[data-view-mode="field"] .card-correction-summary::after{
  content:"＋";
  color:#d8cbed;
  font:700 17px/1 var(--font-data);
}
body[data-view-mode="field"] .card-correction[open]{border-style:solid;background:rgba(16,8,31,.2)}
body[data-view-mode="field"] .card-correction[open] .card-correction-summary{
  border-bottom:1px solid rgba(246,240,251,.16);
  color:var(--field-ink);
}
body[data-view-mode="field"] .card-correction[open] .card-correction-summary::after{content:"−"}
body[data-view-mode="field"] .hand-grid{
  margin-top:5px;
  padding:8px 10px 10px;
  border:1px dashed rgba(246,240,251,.23);
  border-radius:8px;
  background:rgba(16,8,31,.12);
}
body[data-view-mode="field"] .card-correction .hand-grid{
  margin:0;
  padding:8px 10px 10px;
  border:0;
  border-radius:0;
  background:transparent;
}
body[data-view-mode="field"] .hand{padding-top:7px}
body[data-view-mode="field"] .card-selects{gap:5px}
body[data-view-mode="field"] .card-selects label{
  color:rgba(200,187,223,.78);
  font-size:9px;
  letter-spacing:.025em;
}
body[data-view-mode="field"] .card-selects select{
  min-height:44px;
  margin-top:3px;
  border-color:rgba(246,240,251,.2);
  background:rgba(16,8,31,.34);
  color:#e9e1f5;
  font:600 13px var(--font-data);
}
body[data-view-mode="field"] .card-selects select:not(:disabled):hover{border-color:rgba(246,240,251,.36)}
body[data-view-mode="field"] .card-selects select:focus{border-color:#cbb9ed;background:rgba(16,8,31,.56)}

/* The header remains one horizontal instrument strip on landscape tablets. */
@media(min-width:1101px){
  .topbar{grid-template-columns:minmax(210px,.83fr) minmax(206px,.62fr) minmax(450px,1.5fr);gap:16px}
  .topbar>.brand-block{grid-column:1}
  .topbar>.view-mode-switch{grid-column:2}
  .topbar>.shoe-strip{grid-column:3}
}

@media(min-width:901px) and (max-width:1100px){
  .topbar{grid-template-columns:minmax(180px,.74fr) minmax(194px,.82fr) minmax(350px,1.44fr);gap:12px}
  .topbar>.brand-block{grid-column:1}
  .topbar>.view-mode-switch{grid-column:2}
  .topbar>.shoe-strip{grid-column:3}
  .topbar .brand-block .eyebrow{display:none}
  .topbar .shoe-strip div{padding-inline:7px}
  .topbar .shoe-strip dt{font-size:10px}
  .topbar .shoe-strip dd{font-size:12px}
  .view-mode-switch{min-width:194px}
  .view-mode-button{padding-inline:7px;font-size:10px}
  .view-mode-switch .mode-description{font-size:8px;letter-spacing:0}
}

/* At 1024 x 768 density comes from the frame, never from sub-44px controls. */
@media(min-width:901px) and (max-width:1100px) and (max-height:800px){
  body[data-view-mode="field"] .topbar{min-height:68px;padding-block:6px}
  body[data-view-mode="field"] main{padding-top:8px;padding-bottom:8px}
  body[data-view-mode="field"] .cockpit{min-height:calc(100vh - 96px);gap:10px}
  body[data-view-mode="field"] .control-panel{padding:6px 8px 8px}
  body[data-view-mode="field"] .analysis-panel{gap:6px}
  body[data-view-mode="field"] .section-heading h2{font-size:20px}
  body[data-view-mode="field"] .section-heading .eyebrow{display:none}
  body[data-view-mode="field"] .flow-steps{margin:5px 0;padding:4px 6px}
  body[data-view-mode="field"] .flow-steps li{gap:4px;padding-inline:5px;font-size:10px}
  body[data-view-mode="field"] .flow-steps li span{width:18px;height:18px;font-size:9px}
  body[data-view-mode="field"] .usage-guide{margin:0 0 5px}
  body[data-view-mode="field"] .usage-guide-summary{min-height:44px;padding:5px 8px;font-size:11px}
  body[data-view-mode="field"] .usage-guide-summary span:last-child{font-size:10px}
  body[data-view-mode="field"] .lock-panel{padding:6px 8px;margin-bottom:5px}
  body[data-view-mode="field"] .locked-snapshot{gap:6px;margin-bottom:3px;padding:3px 6px}
  body[data-view-mode="field"] .locked-snapshot-label{font-size:8px}
  body[data-view-mode="field"] .locked-snapshot-value{font-size:10px}
  body[data-view-mode="field"] .quick-entry{margin-bottom:5px;padding:6px 7px}
  body[data-view-mode="field"] .quick-entry-heading{margin-bottom:5px}
  body[data-view-mode="field"] .quick-entry-heading .eyebrow{display:none}
  body[data-view-mode="field"] .quick-entry-hint{margin-top:4px}
  body[data-view-mode="field"] .quick-entry-actions{margin-top:4px}
  body[data-view-mode="field"] .card-correction{margin-top:3px}
  body[data-view-mode="field"] .hand-grid{gap:5px}
  body[data-view-mode="field"] .hand{padding-top:5px}
  body[data-view-mode="field"] .round-preview{margin-top:5px}
  body[data-view-mode="field"] .round-preview div{padding-block:5px}
  body[data-view-mode="field"] .inline-message{min-height:22px;margin:4px 0}
  body[data-view-mode="field"] .probability{padding:8px 10px}
  body[data-view-mode="field"] .probability strong{font-size:25px;margin-block:3px 5px}
  body[data-view-mode="field"] .road-paper-main{min-height:0;padding:8px 10px 7px}
  body[data-view-mode="field"] .paper-heading{padding-bottom:4px}
  body[data-view-mode="field"] .paper-heading h3{font-size:18px}
  body[data-view-mode="field"] .road-legend{gap:8px;font-size:9px}
  body[data-view-mode="field"] .road-paper-main .road-scroll{min-height:174px;margin:5px 0}
  body[data-view-mode="field"] .road-paper-main .road-grid{grid-template-rows:repeat(6,29px);grid-auto-columns:29px;min-height:174px}
  body[data-view-mode="field"] .road-paper-main .road-cell{width:29px;height:29px}
  body[data-view-mode="field"] .road-paper-main .road-mark{width:21px;height:21px}
  .view-mode-label{display:none}
  .view-mode-switch{gap:2px}
  .view-mode-switch .mode-description{padding-block:1px}
}

@media(max-width:900px){
  .topbar>.brand-block,.topbar>.view-mode-switch,.topbar>.shoe-strip{grid-column:auto}
  .topbar>.view-mode-switch{width:min(100%,360px)}
  body[data-view-mode="field"] .cockpit{display:block;min-height:0}
  body[data-view-mode="field"] .control-panel{margin-bottom:14px}
  body[data-view-mode="field"] .analysis-panel{min-height:0}
}

@keyframes drawer-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
