/* Western Front - extracted stylesheet (Tronsoft Games Package Spec v1.1 section 19) */
:root{--chrome:#2e3226;--panel:#3b4030;--panel-edge:#565d43;--paper:#e8e1c9;--paper-dim:#cfc7ab;--ink:#1d1a12;--accent:#b3442e;--gold:#d9b45a;}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--chrome);color:var(--paper);font-family:Georgia,serif;height:100vh;display:flex;flex-direction:column;overflow:hidden;}
header{padding:7px 16px;border-bottom:3px double var(--panel-edge);display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;flex:0 0 auto;}
header h1{font-family:'Arial Narrow',Arial,sans-serif;letter-spacing:.14em;font-size:1.25rem;color:var(--gold);text-transform:uppercase;}
header .sub{font-style:italic;color:var(--paper-dim);font-size:.82rem;}
#layout{display:flex;gap:10px;padding:10px;flex:1 1 auto;min-height:0;}
#mapscroll{flex:1;overflow:auto;background:#4a4636;border:1px solid var(--panel-edge);position:relative;}
canvas{display:block;background:#d8cfae;cursor:pointer;}
#side{width:322px;flex:0 0 322px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;}
.card{background:var(--panel);border:1px solid var(--panel-edge);padding:8px 10px;flex:0 0 auto;}
.card h2{font-family:'Arial Narrow',Arial,sans-serif;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:5px;border-bottom:1px solid var(--panel-edge);padding-bottom:3px;}
#status{font-size:.86rem;line-height:1.45;} #status b{color:var(--gold);}
#unitinfo{font-size:.84rem;line-height:1.4;min-height:58px;} #unitinfo .uname{font-weight:bold;}
#crtcard{background:var(--paper);color:var(--ink);border:2px solid var(--ink);}
#crtcard h2{color:var(--accent);border-color:var(--ink);}
#crt{width:100%;border-collapse:collapse;font-family:'Arial Narrow',Arial,sans-serif;font-size:.74rem;text-align:center;}
#crt th,#crt td{border:1px solid var(--ink);padding:1px 2px;} #crt th{background:var(--ink);color:var(--paper);}
#crt td.hl{background:var(--accent);color:#fff;font-weight:bold;} #crt td.dim{color:#999;}
#dieline{margin-top:5px;font-family:'Arial Narrow',Arial,sans-serif;display:flex;align-items:center;gap:8px;min-height:30px;}
#die{width:26px;height:26px;border:2px solid var(--ink);background:#fff;display:flex;align-items:center;justify-content:center;font-weight:bold;visibility:hidden;}
#dieresult{font-size:.79rem;}
#log{height:120px;overflow-y:auto;font-family:'Arial Narrow',Arial,sans-serif;font-size:.77rem;line-height:1.4;background:rgba(0,0,0,.25);padding:5px 7px;}
#log .ge{color:#b9c8d8;} #log .al{color:#c2d09a;} #log .sys{color:var(--gold);} #log .bad{color:#e08a76;}
.btnrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px;}
button{font-family:'Arial Narrow',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:var(--paper);color:var(--ink);border:1px solid var(--ink);padding:6px 10px;cursor:pointer;font-size:.74rem;}
button:hover{background:var(--gold);} button:disabled{opacity:.4;cursor:default;} button.primary{background:var(--gold);font-weight:bold;}
label.chk{font-size:.75rem;font-family:'Arial Narrow',Arial,sans-serif;display:flex;gap:5px;align-items:center;color:var(--paper-dim);margin-top:4px;}
#overlay{position:fixed;inset:0;background:rgba(20,20,14,.85);display:none;align-items:center;justify-content:center;z-index:100;padding:16px;}
#overlay .sheet{background:var(--paper);color:var(--ink);max-width:780px;max-height:88vh;overflow-y:auto;padding:20px 26px;border:2px solid var(--ink);}
#overlay h3{font-family:'Arial Narrow',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
#overlay h4{font-family:'Arial Narrow',Arial,sans-serif;margin:12px 0 4px;color:#333;}
#overlay p,#overlay li{font-size:.85rem;line-height:1.5;margin-bottom:6px;}
#overlay ul{padding-left:18px;}
.scnrow{display:flex;gap:8px;align-items:baseline;padding:7px 6px;border-bottom:1px solid #cbbf9d;cursor:pointer;}
.scnrow:hover{background:#efe8d2;}
.scnrow .num{font-family:'Arial Narrow',Arial,sans-serif;font-weight:bold;color:var(--accent);width:26px;flex:0 0 26px;}
.scnrow .tt{font-weight:bold;} .scnrow .dt{font-size:.75rem;color:#666;font-family:'Arial Narrow',Arial,sans-serif;}
.scnrow .meta{font-size:.72rem;color:#555;font-family:'Arial Narrow',Arial,sans-serif;margin-left:auto;text-align:right;flex:0 0 auto;}
.closebar{text-align:right;margin-top:12px;}

/* v1.1 interface additions */
.scnrow{flex-wrap:wrap}.scnactions{margin-left:auto;display:flex;gap:5px}.scnactions button{padding:4px 7px;font-size:.66rem}.status-pill{display:inline-block;padding:1px 5px;border:1px solid currentColor;border-radius:10px;font:700 .65rem 'Arial Narrow',Arial,sans-serif;letter-spacing:.06em;margin-left:4px}.docchoice{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}#mapscroll.dragging{cursor:grabbing;user-select:none}#mapscroll.dragging canvas{cursor:grabbing}

/* v1.2 gameplay information layer */
#dashboard{font: .78rem/1.42 'Arial Narrow',Arial,sans-serif}#dashboard .dashgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:5px}#dashboard .dashbox{border:1px solid var(--panel-edge);padding:4px;text-align:center;background:rgba(0,0,0,.15)}#dashboard .dashbox b{display:block;color:var(--gold);font-size:.9rem}#combatpreview{font:.78rem/1.4 'Arial Narrow',Arial,sans-serif;min-height:54px}#combatpreview .odds{font-size:1rem;font-weight:bold;color:var(--gold)}#combatpreview .mods{color:var(--paper-dim)}.aargrid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:8px;margin:12px 0}.aarbox{border:1px solid #9c9275;padding:8px;background:#f1ead4}.aarbox b{display:block;font:700 .76rem 'Arial Narrow',Arial,sans-serif;text-transform:uppercase;color:#7b2b1e;margin-bottom:3px}.historyrow{border-top:1px solid #cbbf9d;padding:5px 0;font-size:.78rem}#mapscroll{touch-action:none}

/* v1.3 tactical command layer */
#forecast{font:.78rem/1.42 'Arial Narrow',Arial,sans-serif;min-height:42px}#forecast .result{font-weight:bold;color:var(--gold);font-size:.9rem}select{font: .74rem 'Arial Narrow',Arial,sans-serif;background:var(--paper);color:var(--ink);border:1px solid var(--ink);padding:3px 5px}.supply-ok{color:#c2d09a}.supply-low{color:#e3c66d}.supply-out{color:#e08a76}.replaybox{max-height:300px;overflow:auto;border:1px solid #9c9275;background:#f5eedb;padding:7px;font:.76rem/1.4 'Arial Narrow',Arial,sans-serif}.replayrow{border-bottom:1px dotted #cbbf9d;padding:2px 0}

.env{margin-top:.45rem;padding:.4rem .55rem;border:1px solid rgba(80,70,50,.25);border-radius:4px;font-size:.82rem;font-weight:600}.smoke-note{opacity:.8}

.campaign-table{width:100%;border-collapse:collapse;font-size:.8rem}.campaign-table th,.campaign-table td{padding:.35rem;border-bottom:1px solid rgba(80,70,50,.2);text-align:left}
