:root{
 --font-ui:'Pretendard Variable','Malgun Gothic',sans-serif;
 --font-data:'Pretendard Variable','Malgun Gothic',sans-serif;
 --text-ink:#27251f;
 --text-secondary:#484238;
 font-family:var(--font-ui);
 font-size:14px;
 font-weight:400;
 font-synthesis:none;
 text-rendering:optimizeLegibility;
}
body,button,input,select,textarea{font-family:var(--font-ui);font-synthesis:none;letter-spacing:0}
button{font-weight:500;text-shadow:none}
input,select,textarea{font-weight:400;line-height:1.45}
/* The original panel rectangles stay fixed. Readable type has a floor independent of HUD scale. */
#game-screen .communications #chat-log{
 font-family:var(--font-ui);
 font-size:clamp(14px,calc(12px * var(--s)),18px);
 line-height:1.6;
 font-weight:400;
 color:var(--text-ink);
 text-shadow:none;
 word-break:keep-all;
 overflow-wrap:anywhere;
 padding:1px 5px;
}
#game-screen .communications #chat-log>div{margin-bottom:4px}
#game-screen .communications #chat-log .system{color:#3b352b;font-weight:400}
#game-screen .communications #chat-log b{color:#243c32;font-weight:600}
#game-screen .communications #chat-log .time{font-family:var(--font-data);font-size:clamp(12px,calc(9.5px * var(--s)),14px);font-weight:400;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-right:8px}
#game-screen .communications #chat-input{font-size:clamp(14px,calc(11px * var(--s)),17px);font-weight:400;color:#fff8e8;background:#3d3020;line-height:1.35;padding:2px 6px}
#game-screen .communications #chat-input::placeholder{color:#d7c8ac;opacity:1}
#game-screen .communications #chat-recipient{font-size:12px;color:#fff5df;background:#4a3822}
#game-screen .communications .chat>header button,#game-screen .communications #chat-form button{font-size:clamp(12px,calc(9px * var(--s)),14px);font-weight:600;line-height:1.1;padding-top:0;padding-bottom:0;text-shadow:none}
#game-screen .communications .chat>header button{color:#261b0d}
#game-screen .communications .chat>header button.active{color:#fff5d7;background:#514023}
#game-screen .comms-heading h2{font-family:var(--font-ui);font-size:clamp(14px,calc(11px * var(--s)),17px);font-weight:700;text-shadow:none;color:var(--text-ink)}
#game-screen .comms-heading small{font-size:clamp(11px,calc(9px * var(--s)),13px);color:var(--text-secondary)}
#game-screen .original-footer button{font-size:clamp(12px,calc(9px * var(--s)),14px);font-weight:600;color:#21180e;text-shadow:none;line-height:1.1}
#game-screen .original-footer #chat-open{font-size:clamp(11px,calc(8.5px * var(--s)),13px);font-weight:500}
#game-screen .original-footer #layout-options{font-family:var(--font-ui);font-size:15px;line-height:1}
#game-screen .topbar .date-window{font-family:var(--font-ui);font-size:clamp(12px,calc(10.5px * var(--s)),16px);font-weight:500;text-shadow:none;color:#fff5da;gap:5px;line-height:1.2}
#game-screen .topbar .resource b{font-family:var(--font-data);font-size:clamp(12px,calc(10.5px * var(--s)),16px);font-weight:600;line-height:1.22;display:flex;align-items:center;padding:0 1px;color:#fff6df;text-shadow:none;font-variant-numeric:tabular-nums}
#game-screen .general-nameplate{color:#fff5d9;text-shadow:0 1px 2px #25180ccc;font-size:clamp(11px,calc(9px * var(--s)),14px);line-height:1.3}
#game-screen .general-nameplate b{font-family:var(--font-ui);font-weight:600;font-size:clamp(13px,calc(11px * var(--s)),16px)}
#game-screen .general-nameplate #player-nation{color:#ffe4a3}
#game-screen .vital .values,#game-screen .side-pane #city-stats .values{font-family:var(--font-data);font-size:clamp(13px,calc(10.5px * var(--s)),16px);font-weight:500;color:#27251f;text-shadow:none;line-height:1.25;font-variant-numeric:tabular-nums;gap:4px}
#game-screen .vital b{font-weight:500}
#game-screen .vital .values small{font-family:var(--font-data);font-size:clamp(11px,calc(9px * var(--s)),14px);font-weight:500;color:#3d2a15}
#game-screen .vital:hover .metric-title{display:none}
#game-screen .vital .metric{gap:3px}
#game-screen .side-pane .city-card h2{font-family:var(--font-ui);font-weight:600;font-size:clamp(13px,calc(11px * var(--s)),16px);text-shadow:none;color:#21180d}
#game-screen .side-pane .city-card>header{height:max(20px,calc(15px * var(--s)));line-height:1.15;margin-bottom:2px}
#game-screen .side-pane #city-stats{grid-template-rows:repeat(6,minmax(0,1fr))}
#game-screen .side-pane #city-stats .metric{grid-template-rows:calc(3px * var(--s)) minmax(0,1fr);gap:1px}
#game-screen .side-pane #city-stats progress{height:calc(3px * var(--s))}
#game-screen .side-pane #city-stats .values{line-height:1.15}
#game-screen .side-pane #city-stats .vital>canvas,#game-screen .side-pane #city-stats .vital>button{width:calc(21px * var(--s));height:calc(21px * var(--s))}
#game-screen .side-pane .city-card header small{font-family:var(--font-ui);font-size:clamp(11px,calc(8.5px * var(--s)),13px);font-weight:500;color:#433018}
#game-screen .side-pane #city-actions{height:max(22px,calc(18px * var(--s)))}
#game-screen .side-pane #city-actions button{font-family:var(--font-ui);font-size:clamp(12px,calc(9px * var(--s)),14px);font-weight:600;line-height:1.15;color:#fff2d2;text-shadow:none}
#game-screen .side-pane #skill-grid kbd{font-family:var(--font-data);font-size:clamp(10px,calc(8px * var(--s)),12px);font-weight:600;text-shadow:0 1px 1px #281c0d}
#game-screen #side-controls{font-family:var(--font-ui);font-size:clamp(13px,calc(10px * var(--s)),15px);font-weight:400;color:#281c0f;line-height:1.45;padding:calc(3px * var(--s)) 2px}
#game-screen #side-controls p{line-height:1.5;margin:4px 0}
#game-screen #side-controls .dock-row{font-size:clamp(12px,calc(9.5px * var(--s)),14px);line-height:1.3;padding:3px 0;gap:5px;color:#3b2914}
#game-screen #side-controls .dock-row b,#game-screen #side-controls .dock-value{font-weight:500;color:#27251f;font-family:var(--font-data);font-variant-numeric:tabular-nums}
#game-screen #side-controls select,#game-screen #side-controls input{font-family:var(--font-ui);font-size:clamp(13px,calc(10px * var(--s)),15px);font-weight:400;line-height:1.3;background:#ead8af;color:#281c0d;height:max(26px,calc(22px * var(--s)));padding:2px 4px}
#game-screen #side-controls select[size]{height:calc(74px * var(--s));padding:1px;line-height:1.35}
#game-screen #side-controls select[size] option{font-family:var(--font-ui);padding:0;line-height:1.35}
#game-screen #side-controls button{font-family:var(--font-ui);font-size:clamp(12px,calc(9px * var(--s)),14px);font-weight:600;line-height:1.2;min-height:max(23px,calc(20px * var(--s)));padding:2px 4px;color:#fff0cc;text-shadow:none}
#game-screen #side-controls .dock-buttons{gap:3px;margin-top:5px}
#game-screen #side-controls .dock-description{font-size:clamp(12px,calc(9px * var(--s)),14px);line-height:1.4;min-height:24px;padding:4px 0;color:#3f2d18}
#game-screen #side-controls label{font-size:clamp(12px,calc(9px * var(--s)),14px);line-height:1.2;gap:3px;margin:4px 0;color:#3b2914}
#game-screen #side-controls .dock-notice{font-size:clamp(11px,calc(8.5px * var(--s)),13px);line-height:1.4;color:#4c3920}
#game-screen .scene-caption{font-family:var(--font-ui);font-size:clamp(13px,calc(10px * var(--s)),16px);font-weight:500;line-height:1.5;color:#fff1b7;text-shadow:0 1px 2px #14200d,1px 0 1px #14200d}
#game-screen .travel-bar,#game-screen .battle-tools button{font-family:var(--font-ui);font-size:13px;line-height:1.4;font-weight:500}
#game-screen .map-tools button{font-family:var(--font-ui);font-size:12px;font-weight:500}
#entry-content,#entry-steps,.entry-footer{font-family:var(--font-ui)}
#entry-content h2,#entry-content h3,#panel h2,#panel h3{font-family:var(--font-ui);font-weight:600;letter-spacing:-.02em}
#entry-content .entry-heading p,#entry-content .scenario p,#entry-content .intro-note{font-size:14px;line-height:1.65;color:#e5d4b3}
#entry-content label,#entry-content input,#entry-content select,#entry-content button{font-family:var(--font-ui);font-size:14px}
#entry-content .slot-card>small,#entry-content .slot-card form~small{font-size:12px;color:#e4d1ac}
#entry-content .stat-strip span{font-size:12px;color:#e4d1ac}
#entry-content .stat-strip b{font:600 20px var(--font-data);font-variant-numeric:tabular-nums}
#entry-content .auth-box small{font-size:12px;color:#4c3821}
#entry-content .auth-box label{font-size:13px;font-weight:500;color:#3f2b17}
#entry-content .auth-box input{font-size:15px;color:#241a0f;background:#f0dfb6}
#entry-content .auth-box input::placeholder{color:#665238}
#entry-content .nation-choice b{font-family:var(--font-ui);font-weight:600;font-size:21px}
#entry-content .nation-choice small,#entry-content .badge{font-size:12px;color:#e3cd9f}
#entry-content .slot-card .delete,.entry-footer,.entry-footer button,#entry-steps{font-size:12px}
#panel{font-family:var(--font-ui);font-size:14px;font-weight:400;line-height:1.6}
#panel .panel-header h2{font-size:22px;color:#fff0d1;text-shadow:none}
#panel .panel-header .eyebrow{font-size:12px;font-weight:500;color:#ffedc9}
#panel-content>p,#panel .info-box p,#panel .report-list,#panel details p{font-size:14px;line-height:1.65;color:#362713}
#panel .info-box h3,#panel details summary{font-family:var(--font-ui);font-size:15px;font-weight:600;color:#35240f}
#panel .data-table,#panel .data-table td,#panel .data-table th{font-size:13px;line-height:1.5;color:#352613}
#panel .data-table td small{font-size:12px;color:#4b371e}
#panel .data-table td b{font-weight:600;color:#211709}
#panel-content button{font-size:13px;font-weight:600;text-shadow:none}
#panel-content input,#panel-content select{font-size:14px;font-weight:400;color:#2e1e0b;background:#eddaad}
#panel .stat-row{font-size:13px;color:#392710}
#panel .stat-row b{font-family:var(--font-data);font-weight:600;font-variant-numeric:tabular-nums}
#panel .muted{font-size:12px;color:#51391c}
#toast{font-family:var(--font-ui);font-size:14px;font-weight:500;line-height:1.6;color:#fff3d2;text-shadow:none}
#panel.world-overview{width:fit-content}
