:root {
  --bg: #070b14;
  --panel: #10182aee;
  --line: #2a3a5a;
  --gold: #e6c36a;
  --mint: #3ee0b8;
  --pink: #ff6b9a;
  --text: #eef3ff;
  --muted: #8ea0c4;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--text); font: 14px/1.45 "Noto Sans SC", "Microsoft YaHei", sans-serif; }
button, select { font: inherit; }
#setup { max-width: 1040px; margin: 0 auto; padding: 36px 24px 64px; }
.hero h1 { font-size: 52px; letter-spacing: 0.04em; margin: 8px 0 12px; color: var(--gold); }
.kicker { color: var(--mint); letter-spacing: 0.18em; text-transform: uppercase; font-size: 12px; }
.lead { color: var(--muted); max-width: 720px; }
.opts { display: flex; gap: 24px; margin: 22px 0 8px; color: var(--muted); }
#jobs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: 16px; }
.job { text-align: left; background: #121a2c; border: 1px solid var(--line); color: var(--text); border-radius: 12px; padding: 14px; cursor: pointer; display: grid; gap: 4px; }
.job:hover { border-color: var(--gold); }
.job .swatch { width: 18px; height: 18px; border-radius: 50%; }
.job b { font-size: 16px; }
.job span { color: var(--muted); font-size: 12px; }
.pos { color: #6dffb0 !important; }
.neg { color: #ff8aa0 !important; }

#play { height: 100%; display: flex; flex-direction: column; }
.topbar { display: flex; align-items: center; gap: 16px; padding: 8px 14px; background: #0b1220; border-bottom: 1px solid var(--line); }
.topbar em { color: var(--gold); font-style: normal; font-size: 12px; }
#ticker { flex: 1; overflow: hidden; white-space: nowrap; color: var(--muted); }
#ticker span { margin-right: 18px; }
#ticker .up { color: #6dffb0; }
#ticker .down { color: #ff8aa0; }
.stage { flex: 1; display: grid; grid-template-columns: 1fr 320px; min-height: 0; position: relative; }
#board { width: 100%; height: 100%; min-height: 560px; display: block; background: #071018; }
#hover { position: absolute; left: 16px; bottom: 16px; background: #0b1220cc; border: 1px solid var(--line); padding: 6px 10px; border-radius: 8px; color: var(--gold); font-size: 12px; pointer-events: none; }
aside { background: var(--panel); border-left: 1px solid var(--line); padding: 14px; overflow: auto; }
#turn { font-weight: 700; margin-bottom: 8px; }
.dice-row { color: var(--muted); margin-bottom: 8px; }
aside button { width: 100%; background: var(--gold); color: #1a1204; border: 0; border-radius: 8px; padding: 10px; cursor: pointer; font-weight: 700; }
aside button.ghost { background: transparent; color: var(--text); border: 1px solid var(--line); margin-top: 8px; }
#sheet { margin-top: 14px; }
.who { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; }
.who i, .mini i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.who small { display: block; color: var(--muted); font-weight: 400; }
dl { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; margin: 0; }
dt { color: var(--muted); font-size: 11px; }
dd { margin: 0; font-variant-numeric: tabular-nums; }
.goal { margin: 10px 0; padding: 8px; background: #18243c; border-radius: 8px; color: var(--mint); font-size: 12px; }
.assets, #log { list-style: none; padding: 0; margin: 8px 0 0; }
.assets li, #log li { font-size: 12px; color: var(--muted); padding: 3px 0; border-bottom: 1px solid #1a2438; }
.muted { opacity: 0.6; }
#others { margin-top: 10px; }
.mini { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--muted); }
.mini em { margin-left: auto; font-style: normal; }

#toast { position: fixed; left: 50%; top: 18%; transform: translateX(-50%); background: #e6c36a; color: #1a1204; padding: 10px 18px; border-radius: 999px; font-weight: 700; z-index: 5; }
#modal { position: fixed; inset: 0; background: #05080fcc; display: grid; place-items: center; z-index: 6; }
#modal[hidden], #toast[hidden], [hidden] { display: none !important; }
.box { width: min(520px, 92vw); background: #121a2c; border: 1px solid var(--gold); border-radius: 16px; padding: 22px; }
.box h3 { margin: 0 0 10px; color: var(--gold); }
.box p { white-space: pre-wrap; color: var(--muted); }
#modal-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
#modal-actions button { background: #24304a; color: var(--text); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; cursor: pointer; }
#modal-actions button.primary { background: var(--gold); color: #1a1204; border-color: var(--gold); }

@media (max-width: 700px) {
  .stage { grid-template-columns: 1fr; grid-template-rows: minmax(360px, 1fr) auto; }
  aside { max-height: 38vh; border-left: 0; border-top: 1px solid var(--line); }
  .hero h1 { font-size: 36px; }
}
/* Warm paper / jade interface complements the miniature harbour. */
:root{--bg:#e4e7d8;--panel:#fbf4e5;--line:#d5cbb4;--gold:#b17837;--mint:#3d7768;--pink:#ac5548;--text:#304d50;--muted:#75817b}
.topbar{height:52px;padding:10px 20px;background:#254c4e;color:#faf2d9;border-bottom:3px solid #bba26b;gap:20px}
.topbar strong{font-family:Georgia,serif;font-size:20px;letter-spacing:.02em}.topbar em{color:#e8d49d}
#ticker{font-size:11px;opacity:.85}#ticker .up{color:#c4dec2}#ticker .down{color:#edb39b}
.stage{grid-template-columns:minmax(0,1fr) 290px}#board{min-height:0;touch-action:none;background:#c2d4c9}
.map-title{position:absolute;top:25px;left:28px;pointer-events:none;color:#365f60;display:grid;gap:6px}.map-title span{font-size:10px;letter-spacing:.25em}.map-title b{font:600 25px Georgia,'Microsoft YaHei',serif;letter-spacing:.12em}.map-title small{font-size:9px;letter-spacing:.15em;color:#6f8780}
.camera-tools{position:absolute;left:28px;bottom:56px;display:flex;gap:6px}.camera-tools button{border:1px solid #718e7e;background:#fff7e5ed;color:#355952;padding:7px 15px;border-radius:5px;cursor:pointer;box-shadow:0 2px 3px #264b4920}.camera-tools button:hover{background:#e6d6ae}
#hover{left:28px;bottom:18px;max-width:calc(100% - 340px);background:#fff8e6e8;color:#45635d;border-color:#a9b6a1;font-size:11px}
aside{padding:20px 18px;background:linear-gradient(115deg,#fff9eb,#eee7d7);box-shadow:-4px 0 18px #2c514017;z-index:1;border-left:1px solid #b8bda8}
#turn{font-size:16px;color:#355957;border-bottom:1px solid #d5cbb4;padding-bottom:12px}.dice-row{font-size:11px;display:flex;justify-content:space-between;align-items:center}#dice{font-size:23px;color:#a76b35}
aside button{background:#376c62;color:#fff6df;border-radius:5px;box-shadow:0 3px 0 #244e48;padding:12px}aside button:disabled{opacity:.55;cursor:default}aside button.ghost{box-shadow:none;padding:8px;font-size:11px}
#sheet{border-top:1px solid #d5cbb4;padding-top:16px;margin-top:18px}.who b{font-size:17px}.who i{width:9px;height:32px;border-radius:3px}dl{gap:12px 10px}dt{font-size:10px}dd{font-size:17px;font-family:Georgia,'Microsoft YaHei',serif}.pos{color:#36826b!important}.neg{color:#b25e4e!important}.goal{background:#dfe8d3;color:#476e52;padding:12px;border:1px solid #c3d2b7;border-radius:4px}.assets li,#log li{border-color:#dfd7c5}.mini{padding:8px 0;border-bottom:1px solid #ddd5c2}#log{margin-top:18px;max-height:180px;overflow:auto}
#setup{padding-top:55px}.hero h1{color:#365f57}.kicker{color:#897445}.job{background:#fff7e7;border-color:#cec9b6;box-shadow:0 3px 10px #39594008;border-radius:6px}.job:hover{transform:translateY(-2px);border-color:#3d7768}.box{background:#fbf4e5;box-shadow:0 20px 80px #173b3d55;border-radius:9px}.box h3{color:#38685c}#modal-actions button{background:#eee6d3;color:#365853}#modal-actions button.primary{background:#376c62;color:#fff4dd}#toast{background:#e5d8ae;color:#36584f}
@media(max-width:700px){.stage{grid-template-columns:1fr;grid-template-rows:minmax(340px,58vh) auto}aside{max-height:none}.map-title{top:16px;left:16px}.map-title b{font-size:18px}.map-title small{display:none}.camera-tools{bottom:auto;top:95px;left:16px}#hover{display:none}.topbar{gap:10px;padding:8px 12px}.topbar strong{font-size:16px}#ticker{display:none}.opts{flex-wrap:wrap;gap:12px}#play{height:auto;min-height:100%}}
.map-title{background:linear-gradient(105deg,#f8f2dedc,#f8f2de00);padding:12px 24px 12px 15px;border-left:3px solid #789a84;border-radius:0 5px 5px 0}.map-title b{text-shadow:0 1px #fff9e6}
#visual-stats{position:absolute;right:310px;bottom:18px;font:9px monospace;color:#3c655e;background:#f9f3ddcf;padding:6px;border-radius:3px;pointer-events:none}
@media(max-width:700px){#visual-stats{right:8px;top:62px;bottom:auto;font-size:8px}}
.job{position:relative;min-height:130px;padding-right:78px}.job-portrait{position:absolute;right:8px;bottom:13px;width:70px;height:88px;object-fit:contain}.player-portrait{width:54px;height:67px;object-fit:contain;background:#dfe7d6;border:1px solid #b7c7b4;border-radius:7px}.who{gap:12px}
#startup-status:not([hidden]){padding:16px 20px;border:1px solid #bdcbb3;background:#fff7e7;border-radius:6px;margin:14px 0;color:#355b52}#startup-status p{margin:8px 0}#startup-status a{color:#286e59;text-decoration:underline}#startup-status button{padding:8px 18px;background:#376c62;color:#fff6df;border:0;border-radius:4px;cursor:pointer}
.geo-labels{position:absolute;left:0;top:0;right:290px;bottom:0;pointer-events:none;overflow:hidden}.geo-labels span{position:absolute;left:0;top:0;white-space:nowrap;font-size:10px;padding:3px 7px;border-radius:4px;box-shadow:0 2px 5px #193c3b33}.place-label{color:#274c40;background:#fff2d4d9;border:1px solid #cdb77a}.pawn-label{background:#fff8e7;color:#213f36;border:1px solid #fff7df;font-weight:bold}.benchmark #visual-stats{display:block}
/* Hong Kong Island iteration 3: quieter chrome, visible map, financial focus. */
:root{--line:#d7cfb4;--text:#294d45;--muted:#788377}body{background:#e9e9dc}.topbar{height:62px;background:linear-gradient(110deg,#163e38,#2e6157);padding:0 24px;border-bottom:3px solid #bd9e59;gap:22px}.topbar strong{font:700 24px Georgia,serif;letter-spacing:-.5px}.topbar em{color:#f0d69a;border:1px solid #739382;border-radius:4px;padding:5px 8px;font-size:10px;white-space:nowrap}#ticker{font-size:10px;gap:18px;flex:1;overflow:hidden;white-space:nowrap;opacity:.8}.comparison-link{color:#f1dfb2;font-size:11px;white-space:nowrap;text-decoration:none}.stage{height:calc(100dvh - 62px);grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr)}#board{height:100%;min-height:0}.geo-labels{right:300px}.map-title{top:22px;left:24px;background:linear-gradient(110deg,#fff5dff2,#f7efdcd4);border:1px solid #e7d1a1;border-left:4px solid #b79248;padding:13px 21px;box-shadow:0 5px 22px #16413613}.map-title span{font-size:9px;letter-spacing:3px;color:#7c8063}.map-title b{font-size:25px;letter-spacing:3px;color:#2d5649;margin:6px 0}.map-title small{font-size:9px;color:#7a826d;letter-spacing:2px}.camera-tools{left:24px;bottom:55px;display:flex;gap:6px;align-items:center}.camera-tools button,.camera-tools select{padding:10px 12px;font:11px 'Microsoft YaHei';color:#325e51;background:#fff7e5;border:1px solid #cdbb8e;border-radius:5px;box-shadow:0 2px 6px #193d3922;cursor:pointer}.camera-tools button:hover{background:#e9dcb6}.route-legend{position:absolute;top:145px;left:25px;display:flex;gap:14px;background:#23584ec9;color:#f5ebcb;padding:8px 11px;border-radius:4px;font-size:10px}.route-legend span{display:flex;gap:6px;align-items:center}.route-legend i{display:block;width:17px;height:3px;background:#efd18a}.route-legend span:nth-child(2) i{background:#cea9ca}.island-nav{position:absolute;right:320px;bottom:56px;width:175px;background:#f8f1ddeb;border:1px solid #d0b982;box-shadow:0 3px 16px #1e474932;border-radius:8px;padding:9px;color:#3f5f4c}.island-nav>div{font-size:10px;font-weight:bold;margin-bottom:6px;display:flex;justify-content:space-between}.island-nav span{font-size:8px;font-weight:normal;color:#88917d}#island-minimap{width:100%;height:112px;display:block;border-radius:4px;cursor:crosshair}.island-nav small{display:block;font-size:8px;margin-top:5px;color:#738778}.island-nav a{color:inherit}#hover{left:24px;bottom:17px;max-width:calc(100% - 530px);font-size:10px;padding:7px 10px;color:#e8eddb;background:#24584bd9;border:0}.place-label{background:#fff5dcde;font-size:10px!important;color:#3d5f4f;border-color:#d9c58f;padding:4px 7px!important}.pawn-label{color:#213f36!important;border:2px solid #fff6d2!important;box-shadow:0 2px 8px #123a4666!important}aside{padding:22px 20px;background:linear-gradient(140deg,#fff9e9,#eee8d3);border-left:3px solid #c4ab75;overflow-y:auto;min-height:0}#turn{font-size:15px;color:#315c4d;border-bottom:1px solid #d9cda9;padding-bottom:17px}.dice-row{margin:15px 0;font-size:10px}.dice-row b{font:700 24px Georgia;color:#ac8251}#roll{background:linear-gradient(#d6efc7,#b4d99e);box-shadow:0 3px 0 #7fa36a;color:#24462e;letter-spacing:2px;padding:13px;border:1px solid #96bc7f}#loan{margin-top:9px;font-size:10px;color:#5e7562;border-color:#d4c9a7;background:transparent}#sheet{margin-top:20px;padding-top:18px}.player-portrait{width:64px;height:80px;background:#e4e8d8;border:1px solid #b8c8ad;border-radius:8px}.who{margin-bottom:18px}.who b{font-size:19px}.who small{font-size:10px;color:#7b8774}dl{gap:13px 10px}dt{font-size:10px;color:#7a8475}dd{font:700 18px Georgia,serif;color:#315b4d}.freedom{margin:18px 0 10px}.freedom>div:first-child{display:flex;justify-content:space-between;font-size:10px;color:#6a7f66;margin-bottom:7px}.freedom-track{height:6px;border-radius:8px;background:#dedcc9;overflow:hidden}.freedom-track i{display:block;height:100%;background:#6a9c77}.goal{font-size:10px;line-height:1.8;padding:10px;background:#e0e9d5;border-color:#c4d3b5}.assets{max-height:140px;overflow:auto;padding-top:5px}.assets li{font-size:10px;padding:7px 0}#log{max-height:170px;font-size:10px}.mini{font-size:10px}.mini em{font-size:10px}#visual-stats{right:320px;bottom:18px;background:#e9edddbd;color:#315e54;font-size:8px}.setup-links{display:flex;gap:22px;margin:18px 0}.setup-links a{font-size:12px;color:#587a65;text-underline-offset:4px}#setup{max-width:1180px;padding:50px 35px}.hero{max-width:920px}.hero h1{font:700 clamp(45px,5vw,66px) Georgia,serif;letter-spacing:-2px;margin:20px 0}.hero .lead{font-size:15px;max-width:760px;line-height:1.9;color:#778470}#setup h2{font-size:22px;margin-top:35px}#jobs{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.job{padding:17px 14px 18px;min-height:235px;display:flex;flex-direction:column;align-items:flex-start;background:linear-gradient(#fbf7e8,#e7eadb);border:1px solid #ced5ba;border-radius:10px;box-shadow:0 4px 15px #415e380b;text-align:left}.job-portrait{position:static;order:-1;width:100%;height:130px;object-fit:contain;margin-bottom:12px;mix-blend-mode:multiply}.job b{font-size:15px;margin-bottom:8px}.job span{font-size:9px;line-height:1.8}.job:hover{border-color:#6b967a;box-shadow:0 5px 20px #3e654c1c;transform:translateY(-3px)}
@media(max-width:1000px){.topbar{padding:0 14px;gap:10px}.topbar strong{font-size:20px}.stage{grid-template-columns:minmax(0,1fr) 270px}.geo-labels{right:270px}.island-nav{right:282px;width:130px}.island-nav span{display:none}#island-minimap{height:83px}aside{padding:17px 13px}.camera-tools{left:15px;gap:4px}.camera-tools button,.camera-tools select{padding:9px 7px;font-size:10px}.map-title{left:15px}.route-legend{left:15px;font-size:9px;gap:7px}#hover{max-width:calc(100% - 430px);left:15px}#visual-stats{right:282px}#jobs{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.stage{height:auto;display:grid;grid-template-columns:1fr;grid-template-rows:590px auto}.geo-labels{right:0;bottom:auto;height:590px}.topbar{height:58px}.topbar strong{font-size:19px}.topbar em{font-size:8px}.comparison-link{font-size:9px;margin-left:auto}#board{height:590px}.map-title{top:14px;padding:9px 13px}.map-title b{font-size:20px}.map-title small{display:none}.route-legend{top:102px;font-size:8px}.island-nav{top:433px;bottom:auto;right:12px;width:110px;padding:6px}.island-nav>div{font-size:9px}#island-minimap{height:66px}.island-nav small{font-size:6px}.camera-tools{top:545px;bottom:auto;left:12px}.camera-tools button,.camera-tools select{padding:8px 6px;font-size:9px}aside{border-left:0;border-top:3px solid #c4ab75;padding:22px;max-height:none}.who{margin-top:10px}.assets{max-height:none}#hover,#visual-stats{display:none!important}#jobs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#setup{padding:24px 17px}.hero h1{font-size:42px}.hero .lead{font-size:13px}.kicker{font-size:9px}.job{padding:12px;min-height:225px}.opts{font-size:12px}.setup-links{gap:15px}.setup-links a{font-size:10px}}

/* Compact play framing */
.map-title{padding:14px 18px!important;max-width:225px;pointer-events:none}.map-title b{font-size:23px!important}.pawn-label{border:2px solid #fff6da!important;border-left:4px solid var(--player,#6a9c77)!important;box-shadow:0 2px 5px #143f3e55;font-weight:700;font-size:12px!important;line-height:1.4;padding:4px 8px!important}.camera-tools{max-width:calc(100% - 330px);flex-wrap:wrap}.route-legend{font-weight:700}@media(max-width:750px){.camera-tools{max-width:95%}.map-title{max-width:170px}.map-title small{display:none}}
.map-title b{font-size:20px!important;white-space:nowrap;letter-spacing:1px!important}.map-title{max-width:245px!important}.map-title small{margin-top:5px!important}
/* Clear navy / jade / terracotta palette; financial sheets are first-class play surfaces. */
.topbar{background:#253f54!important;border-color:#ad8b4f!important}.topbar>button{background:#f7edcf;color:#253f54;border:1px solid #d0b87f;border-radius:5px;padding:8px 12px;white-space:nowrap;cursor:pointer;font-weight:700}#ticker{min-width:0;flex:1;overflow:hidden}.stage>aside{background:#f6f1e3!important}.map-title{background:#fff8e8e8!important;color:#253f54}.camera-tools button,.camera-tools select{background:#fff5df!important;color:#293f50!important}.job{background:#fffaf0!important}.hero h1{color:#263e53!important}#setup{background:linear-gradient(120deg,#f2eddb,#dbe6df)!important}.gain{color:#28764e}.loss{color:#b44332}
#finance-desk[hidden]{display:none}#finance-desk{position:fixed;inset:0;z-index:150;background:#142d42a8;display:grid;place-items:center;padding:24px;backdrop-filter:blur(4px)}.desk-window{width:min(1160px,100%);max-height:94vh;overflow:auto;background:#fcf8ec;color:#263e45;border-radius:12px;box-shadow:0 20px 70px #071c4b70}.desk-window header{position:sticky;top:0;z-index:2;background:#253f54;color:#fff2d2;padding:18px 26px;display:flex;justify-content:space-between;align-items:center}.desk-window header h2{margin:4px 0;font-size:27px}.desk-window small{font-size:11px}.desk-window nav{display:flex;align-items:center;gap:10px;padding:14px 24px;background:#e9e2cc}.desk-window nav label{margin-left:auto}.desk-window button{cursor:pointer;border:1px solid #c3b48f;border-radius:5px;background:#fff8e9;color:#294859;padding:9px 16px;font-weight:700}.desk-window button[aria-pressed=true],#trade-form button{background:#28745c;color:white}.desk-window button:disabled{opacity:.45;cursor:not-allowed}.desk-window input,.desk-window select{padding:9px;border:1px solid #b9bcac;border-radius:4px;background:white;color:#273d49;max-width:100%}#desk-content{padding:22px 26px}.finance-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.finance-kpis>div{padding:14px;background:#e9eedf;border-radius:6px;font-size:12px}.finance-kpis strong{display:block;font:700 25px Georgia,serif;margin-top:5px}.statement-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.statement-card{border:1px solid #d4cfb9;background:#fffdf7;padding:16px}.statement-card h3{margin:0 0 10px;color:#315b4e}.desk-window table{border-collapse:collapse;width:100%;font-size:13px}.desk-window th{text-align:left;font-weight:500}.desk-window td{text-align:right;font-variant-numeric:tabular-nums}.desk-window th,.desk-window td{padding:8px 6px;border-bottom:1px solid #e6e0cc}.desk-window .sum{font-weight:700;background:#eee7d3}.statement-note,.source-note{font-size:12px;line-height:1.8;color:#617065}.statement-note{padding:14px;background:#ede9d9;margin-top:18px}.market-grid{display:grid;grid-template-columns:340px 1fr;gap:26px}.quotes button{border:0!important;background:none!important;text-align:left;padding:5px!important;font-size:14px}.quotes small{display:block;color:#61736c}.quotes tr.selected{background:#dfebda}.trade-detail h3{font-size:23px;margin:0}.trade-detail svg{width:100%;height:160px;background:#edf1e6;border-radius:6px;margin-top:12px}.trade-detail p{font-size:13px}#trade-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;background:#ebe6d6;padding:16px}#trade-form label{display:flex;flex-direction:column;gap:5px;font-size:12px}#trade-qty{width:110px}#trade-estimate{width:100%;margin:0}#desk-message{padding:0 26px 16px;color:#a2472f;font-weight:700}#desk-close{font-size:18px}#desk-content a{color:#306b72}@media(max-width:800px){#finance-desk{padding:6px}.market-grid,.statement-grid{grid-template-columns:1fr}.finance-kpis{grid-template-columns:1fr 1fr}.desk-window nav{flex-wrap:wrap}.desk-window nav label{margin:0}.topbar strong{font-size:17px}#ticker{display:none}.comparison-link{display:none}#desk-content{padding:15px}}

#motion-stats:empty{display:none}.market-news{background:#eee5c9;border-left:3px solid #bf913b;padding:10px;font-size:13px}.desk-window :focus-visible{outline:3px solid #c18a3c;outline-offset:2px}

.statement-grid .statement-card{margin-bottom:16px}.statement-card th,.statement-card td{padding:5px 6px;line-height:1.5}.statement-grid{align-items:start}

.accounting-review h3{font-size:23px;margin:8px 0}.accounting-review p,.accounting-journal p{font-size:13px;line-height:1.8}.accounting-eyebrow{color:#587a65;font-weight:700}.accounting-table{overflow-x:auto}.accounting-table td{white-space:nowrap}.accounting-table thead{background:#e5eddf}.accounting-table thead th:not(:first-child){text-align:right}#accounting-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px;background:#e5eddf;border-radius:6px}#accounting-form label{font-weight:700}#accounting-form button{background:#c9e6b8;color:#24462e;border-color:#96bc7f}#accounting-feedback{color:#9b452d;font-weight:700;min-height:24px}.accounting-journal{margin-top:24px;padding-top:12px;border-top:2px solid #d4cfb9}.accounting-journal details{border:1px solid #d4cfb9;border-radius:5px;padding:12px;margin:8px 0}.accounting-journal summary{cursor:pointer;font-size:13px;line-height:1.7}.accounting-journal summary b{color:#315b4e;margin-left:10px}@media(max-width:600px){#accounting-form{align-items:stretch;flex-direction:column}#accounting-form select{width:100%}.accounting-table table{font-size:11px}.accounting-review h3{font-size:19px}}
.accounting-mode nav{display:none}.accounting-mode #desk-content{padding:16px 24px}.accounting-mode header{padding:12px 24px}.accounting-mode header h2{font-size:24px}.accounting-review p{margin:8px 0;line-height:1.6}.accounting-review .finance-kpis{margin:14px 0}.accounting-review .finance-kpis>div{padding:10px}.accounting-review .finance-kpis strong{font-size:22px}.accounting-mode #desk-message:empty{display:none}
.dice-overlay[hidden]{display:none}.dice-overlay{position:absolute;inset:0 300px 0 0;z-index:45;pointer-events:none;overflow:hidden}.dice-theatre{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);width:min(560px,98%);height:320px}.dice-canvas,.dice-shadows{position:absolute;inset:0;width:100%;height:100%}.dice-shadows i{position:absolute;left:0;top:0;width:66px;height:27px;border-radius:50%;background:#183936;filter:blur(7px);transform-origin:center}.dice-caption{position:absolute;bottom:0;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fff8e7f5;border:2px solid #b4d99e;border-radius:28px;box-shadow:0 4px 18px #143f3e30;padding:10px 22px;color:#24462e;font-size:18px;font-weight:700;letter-spacing:1px}.dice-overlay[data-phase="点数确定"] .dice-caption{background:#e4f3d9}@media(max-width:1000px){.dice-overlay{right:270px}}@media(max-width:700px){.dice-overlay{right:0;bottom:auto;height:590px}.dice-theatre{top:45%;height:290px}.dice-caption{font-size:16px;padding:9px 16px}}@media(prefers-reduced-motion:reduce){.dice-overlay{transition:none}}
/* Toy-city feedback and a compact, readable player journey. */
#journey-guide{margin:14px 0;color:#285c61;font-size:12px}#journey-guide details{border:1px solid #b8d8d2;border-radius:12px;background:#f2fbf7;margin:8px 0;padding:11px}#journey-guide summary{cursor:pointer;font-weight:800}.journey-goals{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px}.journey-goals small{display:block;margin:3px 0 0 16px;line-height:1.5;color:#627c78}.journey-goals .done b{color:#15805c}.route-forecast{display:grid;gap:5px;margin:10px 0}.route-forecast button{display:flex;gap:9px;align-items:center;text-align:left;background:#fff;color:#24585c;box-shadow:none;border:1px solid #d8e9e1;padding:8px;font-size:12px}.route-forecast i{display:grid;place-items:center;background:#f9d875;border-radius:50%;font-style:normal;width:24px;height:24px;flex-shrink:0}.route-forecast small{display:block;color:#68827d;margin-top:3px}
.step-marker{position:absolute;display:grid;place-items:center;width:26px;height:26px;border:2px solid white;background:#ffcf50;color:#3b4a4d;font-weight:900;border-radius:50%;box-shadow:0 3px 0 #bc872f;transform:translate(-50%,-100%)}.landing-reward{position:absolute;white-space:nowrap;max-width:260px;padding:10px 18px;border-radius:22px;background:#fff8d8;color:#246b60;border:2px solid #eec668;font-size:17px;font-weight:800;box-shadow:0 6px 18px #163f4933;animation:reward-rise 1.5s ease-out both;z-index:4}.landing-reward[hidden],.step-marker[hidden]{display:none}@keyframes reward-rise{0%{opacity:0;transform:translate(-50%,0) scale(.7)}18%{opacity:1;transform:translate(-50%,-50px) scale(1.06)}65%{opacity:1;transform:translate(-50%,-60px) scale(1)}100%{opacity:0;transform:translate(-50%,-90px)}}
#roll{border-radius:15px;background:linear-gradient(#56c797,#279e79);box-shadow:0 5px 0 #16785e,0 8px 16px #21866b25;font-size:20px;font-weight:900;letter-spacing:2px;border:2px solid #a4e9b8}#roll:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #16785e}.box{border-radius:20px}.job{border-radius:16px}.pawn-label{border-radius:20px}#journey-guide :focus-visible{outline:3px solid #d89a27;outline-offset:2px}@media(prefers-reduced-motion:reduce){.landing-reward{animation:none;transform:translate(-50%,-70px)}}
/* Amount cards and four-quadrant financial statement. */
.drag-review{color:#294b50}.drag-review h3{margin:5px 0 8px}.drag-settlement{font-size:12px!important;color:#637b78;background:#f0f2e5;padding:10px 14px;border-left:3px solid #c1a461}.drag-workspace{display:grid;grid-template-columns:225px minmax(0,1fr);gap:20px;align-items:start}.drag-tray{position:sticky;top:0;background:#e4efdf;border:1px solid #c4d4be;border-radius:12px;padding:14px}.drag-tray h4{margin:0 0 12px;display:flex;justify-content:space-between}.drag-chips{display:grid;gap:8px}.desk-window .amount-chip{touch-action:none;user-select:none;cursor:grab;display:grid;text-align:left;gap:5px;background:#fff9db;border:2px solid #d8bd69;border-radius:9px;padding:10px 12px;color:#45503a;box-shadow:0 3px 0 #d2c38c}.amount-chip strong{font-size:22px}.amount-chip small{font-size:10px;color:#83754b}.desk-window .amount-chip.selected{outline:3px solid #298d81;outline-offset:2px}.amount-chip.dragging{opacity:.4}.drag-cash{display:grid;gap:6px;margin-top:18px;border-top:1px solid #bacdb6;padding-top:12px}.drag-cash strong{font-size:20px}.drag-statements{display:grid;grid-template-columns:1fr 1fr;gap:14px}.statement-band{grid-column:1/-1;margin:0;padding:10px 14px;background:#2f6667;color:white;border-radius:7px}.statement-band small{float:right;opacity:.7;font-size:10px;font-weight:400;letter-spacing:1px;padding-top:3px}.drag-ledger{border:1px solid #cbd7cc;border-radius:9px;background:#fffdf5;overflow:hidden}.drag-ledger h4{margin:0;padding:11px 12px;color:#315f57;border-bottom:2px solid #bad7b8;background:#e8f0df}.drag-ledger[data-section=liabilities] h4,.drag-ledger[data-section=expenses] h4{background:#f5ecdc;border-color:#d9c19d;color:#805b3d}.ledger-columns{display:flex;justify-content:space-between;padding:8px 12px;color:#6d7e73;font-size:10px}.desk-window .ledger-row{display:flex;justify-content:space-between;gap:8px;align-items:center;width:100%;min-height:47px;text-align:left;border:0;border-bottom:1px dashed #d7ded0;border-radius:0;padding:8px 12px;background:transparent;font-size:12px;font-weight:400}.ledger-row>span:first-child{overflow-wrap:anywhere}.ledger-row>span:last-child{display:grid;text-align:right;flex-shrink:0}.ledger-row s{font-size:10px;color:#87958b;text-decoration:none}.ledger-row b{font-size:14px;font-variant-numeric:tabular-nums}.desk-window .ledger-row:hover,.desk-window .ledger-row.drop-hover{background:#fff0b8;outline:2px dashed #bd9437;outline-offset:-3px}.desk-window .ledger-row.posted{background:#dcf3dd}.ledger-total{display:flex;justify-content:space-between;padding:10px 12px;background:#edf1e4;font-size:13px}.ledger-empty{padding:12px;color:#8a968b}.drag-complete{color:#257348;font-weight:700}.drag-ghost{position:fixed!important;z-index:10000;pointer-events:none!important;transform:translate(-50%,-50%) rotate(-3deg);width:205px;background:#fff4bf;color:#465139;border:2px solid #bd9437;border-radius:10px;padding:12px;display:grid;gap:6px;box-shadow:0 12px 30px #17333344}.drag-actions{margin-top:18px}.drag-actions span{font-size:12px}.drag-actions button[type=submit]:disabled{opacity:.45}.drag-review #accounting-feedback{min-height:28px;color:#526847;margin-bottom:0}.drag-review :focus-visible{outline:3px solid #298d81!important;outline-offset:-3px}
@media(max-width:760px){.drag-workspace{grid-template-columns:1fr}.drag-tray{position:static}.drag-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.drag-cash{grid-template-columns:1fr 1fr}.drag-statements{gap:8px}.statement-band small{display:none}.desk-window .ledger-row{padding:8px;font-size:11px}.ledger-row b{font-size:12px}.accounting-mode #desk-content{padding:12px}.drag-tray{padding:10px}}
.drag-sumbar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.desk-window .autosum{background:#785798;color:white;border:2px solid #a48abd;border-radius:9px;text-align:left;padding:10px 14px}.autosum b{display:block;margin-top:6px;font-size:18px}.desk-window .autosum.summed{background:#58416e}.ledger-row.removed>span:first-child{color:#a5433d;text-decoration:line-through;text-decoration-color:#cf4c43;text-decoration-thickness:2px}@media(max-width:600px){.drag-sumbar{grid-template-columns:1fr}.desk-window .autosum{display:flex;justify-content:space-between;align-items:center}.autosum b{margin:0;font-size:16px}}
.drag-ledger{align-self:start}.ledger-rest summary{font-size:11px;padding:8px 12px;cursor:pointer;color:#728275;background:#f3f4e9}.drag-review>p{margin:6px 0}.drag-review .drag-settlement{padding:7px 10px;margin-bottom:12px}.drag-review h3{font-size:21px}.drag-statements{gap:9px}.drag-ledger h4{padding:7px 12px}.ledger-columns{padding:5px 12px}.desk-window .ledger-row{min-height:38px;padding:5px 12px}.ledger-total{padding:7px 12px}.statement-band{padding:7px 12px}.drag-sumbar{margin:12px 0}.drag-actions{margin-top:10px!important;padding:10px!important}
