:root{color:#111827;background:#f5f7f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,textarea{font:inherit}button{align-items:center;background:#0f766e;border:1px solid #0f766e;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;gap:.5rem;justify-content:center;min-height:2.5rem;padding:.6rem .9rem}button:hover{background:#115e59;border-color:#115e59}button:focus-visible,textarea:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.app-shell{min-height:100vh;padding:2rem}main{margin:0 auto;max-width:1400px}.topbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.topbar h1,.briefing h1{font-size:clamp(2rem,4vw,4rem);line-height:1;margin:.15rem 0 0}.eyebrow{color:#9f3a21;font-size:.78rem;font-weight:800;letter-spacing:0;margin:0;text-transform:uppercase}.composer,.share-layout{align-items:start;display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr) 410px}.composer-main,.error-panel,.share-url-box,.qr-panel,.briefing{background:#fff;border:1px solid #d7ddd8;border-radius:8px;box-shadow:0 18px 60px #0f172a14}.composer-main,.error-panel,.share-url-box,.qr-panel{padding:1.25rem}.composer-main label{display:block;font-size:.95rem;font-weight:800;margin-bottom:.55rem}textarea{background:#fbfcfb;border:1px solid #b8c3bd;border-radius:6px;color:#111827;display:block;min-height:520px;padding:1rem;resize:vertical;width:100%}.composer-footer,.actions,.qr-panel-header,.regiment-heading,.version-strip{align-items:center;display:flex;gap:.75rem}.composer-footer,.qr-panel-header,.regiment-heading{justify-content:space-between}.composer-footer{margin-top:.8rem}.secondary-button{background:#fff;border-color:#b8c3bd;color:#111827}.secondary-button:hover{background:#eef3f1;border-color:#94a3b8}.notice-grid{display:grid;gap:1rem}.notice-block{background:#111827;border:1px solid #243244;border-radius:8px;color:#e5edf5;padding:1rem}.notice-block strong{color:#fff;display:block;margin-bottom:.45rem}.notice-block p{color:#cbd5e1;font-size:.92rem;line-height:1.45;margin:.35rem 0}.warning-text{color:#b42318;font-weight:700}.muted{color:#64748b}.share-layout{grid-template-columns:minmax(0,1fr) minmax(340px,430px)}.briefing{overflow:hidden}.briefing>header{background:linear-gradient(135deg,#fff,#eef7f4);border-bottom:1px solid #d7ddd8;padding:1.5rem}.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.chips span{align-items:center;background:#f5f7f6;border:1px solid #cbd5cf;border-radius:999px;color:#334155;display:inline-flex;font-size:.9rem;font-weight:700;gap:.35rem;padding:.4rem .65rem}.chips .chip-valid{background:#ecfdf3;border-color:#86efac;color:#166534}.chips .chip-warning{background:#fffbeb;border-color:#fbbf24;color:#92400e}.facts{display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.facts div{border-bottom:1px solid #e2e8f0;min-width:0;padding:1rem 1.5rem}.facts dt{color:#64748b;font-size:.78rem;font-weight:800;margin-bottom:.25rem;text-transform:uppercase}.facts dd{color:#111827;font-weight:700;margin:0;overflow-wrap:anywhere}.section-band{padding:1.25rem 1.5rem 1.5rem}.section-band h2,.share-url-box h2,.qr-panel h2,.error-panel h2{font-size:1.2rem;line-height:1.2;margin:0 0 .9rem}.regiments{display:grid;gap:.8rem}.regiment{border:1px solid #d7ddd8;border-radius:8px;overflow:hidden}.regiment-heading{background:#f5f7f6;border-bottom:1px solid #d7ddd8;padding:.85rem 1rem}.regiment-heading h3{font-size:1rem;margin:0}.regiment-heading span{color:#0f766e;font-size:.82rem;font-weight:800}.unit-list,.notes-list,.terrain-list,.debug-panel ul{list-style:none;margin:0;padding:0}.unit-row{border-bottom:1px solid #edf2ef;padding:.85rem 1rem}.unit-row:last-child{border-bottom:0}.unit-row>div:first-child{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.unit-name{font-weight:700;overflow-wrap:anywhere}.unit-points{background:#e8f5f2;border-radius:999px;color:#0f766e;font-size:.82rem;font-weight:800;padding:.2rem .5rem}.notes-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.notes-list li{background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;color:#9a3412;font-size:.82rem;font-weight:700;padding:.2rem .5rem}.terrain-list{display:flex;flex-wrap:wrap;gap:.5rem}.terrain-list li{background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;font-weight:700;padding:.45rem .7rem}.version-strip{border-top:1px solid #e2e8f0;color:#64748b;flex-wrap:wrap;font-size:.9rem;padding:1rem 1.5rem}.debug-panel{border-top:1px solid #e2e8f0;padding:1rem 1.5rem}.debug-panel summary{cursor:pointer;font-weight:800}.debug-panel h3{font-size:.95rem;margin:1rem 0 .5rem}.debug-panel li{border-top:1px solid #edf2ef;overflow-wrap:anywhere;padding:.45rem 0}.share-url-box{margin:1rem 0}.share-url-box p{background:#f5f7f6;border:1px solid #d7ddd8;border-radius:6px;color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.5;margin:0 0 1rem;overflow-wrap:anywhere;padding:.8rem}.qr-panel{position:sticky;top:1rem}.segmented{background:#eef3f1;border:1px solid #cbd5cf;border-radius:8px;display:flex;padding:.2rem}.segmented button{background:transparent;border-color:transparent;color:#334155;min-height:2rem;padding:.25rem .65rem}.segmented button.active{background:#fff;border-color:#b8c3bd;color:#111827}.qr-canvas{background:#fff;border:1px solid #d7ddd8;border-radius:8px;display:block;height:auto;margin:1rem auto;max-width:100%;width:100%}.download-button{width:100%}.error-panel{margin-bottom:1rem}.error-panel p{color:#334155}@media(max-width:980px){.composer,.share-layout{grid-template-columns:1fr}.qr-panel{position:static}}@media(max-width:720px){.app-shell{padding:1rem}.topbar,.composer-footer,.actions,.qr-panel-header{align-items:stretch;flex-direction:column}.topbar h1,.briefing h1{font-size:2.25rem}textarea{min-height:420px}.facts{grid-template-columns:1fr}.actions button,.secondary-button{width:100%}}
