@font-face{font-family:Ledger;src:url('./public/LibreBaskerville.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--paper:#f6f2e9;--panel:#fffdf7;--ink:#292925;--muted:#797469;--line:#d8d0c2;--accent:#763b3c}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.5 'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:3px;padding:8px 12px;min-height:38px}button:hover{border-color:var(--accent);background:#efe8dc}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{cursor:default;opacity:.5}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:#5d2e30;color:white}.subtle{background:transparent}.danger{color:var(--accent)}h1,h2,h3,h4{font-family:Ledger,Georgia,serif;font-weight:400;line-height:1.4}h2{font-size:20px;margin:5px 0 18px}h3{font-size:17px}h4{margin:10px 0}p{margin:8px 0}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.19em;color:var(--accent)}.muted,small{color:var(--muted)}small{font-size:11px}.masthead{height:88px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 35px;gap:20px}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;letter-spacing:.12em;font-family:Ledger,Georgia,serif;font-size:17px}.brand small{font:9px 'Segoe UI',Arial,sans-serif;display:block;letter-spacing:.17em;margin-top:5px}.brand-mark{font-size:31px;color:var(--accent);border:1px solid var(--line);padding:0 9px}.header-actions{display:flex;align-items:center;gap:12px}.file-menu{position:relative}.file-menu summary{padding:10px 14px}.file-menu>div{position:absolute;z-index:5;right:0;width:230px;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 25px #29292518;padding:6px}.file-menu button{width:100%;text-align:left;border:0}.workspace{max-width:1600px;margin:auto;display:grid;grid-template-columns:220px minmax(0,1fr) 295px;min-height:calc(100vh - 88px)}.library{padding:30px 20px;border-right:1px solid var(--line);position:relative}.library h2{font-size:16px;margin:12px 0 3px}.library>p{font-size:12px}.library nav{margin:24px 0}.army-link{display:block;width:100%;text-align:left;border:0;border-left:2px solid transparent;background:transparent;margin:6px 0;padding:10px 12px}.army-link span{display:block;overflow-wrap:anywhere}.army-link small{display:block;margin-top:3px}.army-link.active{border-left-color:var(--accent);background:#ebe4d7}.wide{width:100%;margin:4px 0}.library-foot{font-size:9px;letter-spacing:.14em;line-height:2;color:var(--muted);padding-top:60px}main{min-width:0;padding:32px}.title-label input{font:29px/1.4 Ledger,Georgia,serif;background:transparent;border:0;border-bottom:1px solid transparent;margin:9px 0 22px;padding:0;width:100%;border-radius:0;color:var(--ink)}.title-label input:hover{border-color:var(--line)}label{display:block;font-size:12px;color:#5f584f}input,select,textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);background:var(--panel);padding:9px 11px;color:var(--ink);border-radius:3px}input[type=checkbox]{width:17px;height:17px;margin:2px 0;accent-color:var(--accent);flex-shrink:0}textarea{resize:vertical;min-height:90px}.army-controls{display:grid;grid-template-columns:1fr 145px;gap:18px;max-width:520px}.faction-rule{font-size:12px;line-height:1.7;margin:17px 0 30px;color:#6c6256}.faction-rule small{white-space:nowrap}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:24px}.section-heading h2{margin-bottom:18px}.section-heading h2 span{font:12px 'Segoe UI',Arial}.roster-row{display:flex;align-items:flex-start;gap:16px;border-top:1px solid var(--line);padding:20px 0}.row-number{font-family:Georgia,serif;color:#998e7f;font-size:15px;padding-top:7px}.row-copy{flex:1;min-width:0}.unit-title{font:17px Ledger,Georgia,serif;text-align:left;border:0;background:transparent;padding:0;min-height:32px;overflow-wrap:anywhere}.unit-title span{font:13px 'Segoe UI',Arial;color:var(--muted)}.row-copy p{font-size:12px;overflow-wrap:anywhere}.row-copy small{font-size:11px}.row-end{text-align:right;min-width:100px}.row-end strong{font:21px Georgia,serif}.row-end>div{display:flex;gap:4px;margin-top:11px}.row-end button{font-size:11px;padding:4px 8px;min-height:32px}.empty{text-align:center;padding:46px 15px 54px}.empty-mark{font-size:40px;color:#b5a18a}.empty h3{margin:12px 0}.empty p{color:var(--muted);margin:12px 0 22px}.notes{border-top:1px solid var(--line);padding-top:25px;margin:10px 0 25px}.inspector{border-left:1px solid var(--line);padding:32px 24px;background:#f0eadf}.total{border-top:3px double #a39580;padding-top:14px}.total-number{font:52px Georgia,serif;margin:9px 0 0}.total-number small{font-size:19px}.total>p{font-size:12px}.measure{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0;font-size:12px}.total .muted{font-size:11px;margin:10px 0 22px}.validation{border-top:1px solid var(--line);padding-top:20px}.validation h3{margin:10px 0}.issue{font-size:12px;border-left:2px solid var(--accent);padding-left:10px;margin:15px 0}.warning{color:#75613d}.reference-panel{margin-top:24px;font-size:12px;border-top:1px solid var(--line);padding-top:14px}.reference-panel summary{font-weight:600}.reference-panel>div{border-bottom:1px solid var(--line);padding:12px 0}.reference-panel p{overflow-wrap:anywhere}.status{display:none}.status.shown{display:block;position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:650px;width:90%;padding:14px 20px;background:var(--ink);color:white;box-shadow:0 4px 15px #0002;z-index:10;border-radius:4px;font-size:12px}.error-text{color:var(--accent);font-size:12px}.invalid{border-left:2px solid var(--accent);padding-left:12px}dialog{border:1px solid var(--line);border-radius:5px;padding:0;background:var(--panel);color:var(--ink);width:min(740px,calc(100% - 32px));max-height:92vh;box-shadow:0 20px 60px #0003}dialog::backdrop{background:#25231d80}#edit-form{display:flex;flex-direction:column;max-height:90vh}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--line)}.editor-header h2{margin:7px 0 0}.editor-body{padding:24px 28px;overflow:auto}.editor-fields{display:grid;grid-template-columns:1fr 120px;gap:16px}.span-two{grid-column:1/-1}.stat-strip{display:flex;justify-content:space-between;background:#f0eadf;padding:13px 16px;margin-top:22px;font-size:11px}.stat-strip b{display:block;font-size:14px;font-weight:500}.editor-body h3{margin:24px 0 13px}.editor-body h3 small{font-family:'Segoe UI',Arial}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);padding:13px;background:#fffefa;cursor:pointer;font-size:13px}.choice small{display:block;margin-top:3px}.choice:has(input:checked){border-color:var(--accent);background:#f2e8e1}.unavailable{opacity:.6;background:transparent}.talents{display:grid;gap:8px}.editor-notes{margin-top:22px}.editor-footer{display:flex;justify-content:space-between;padding:18px 28px;border-top:1px solid var(--line);background:var(--panel)}#edit-errors{margin:15px 0 0}.preview{width:min(1080px,96vw);height:94vh;max-height:94vh}.preview-bar{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.preview-bar strong{margin-right:auto}.preview iframe{display:block;border:0;width:100%;height:calc(100% - 65px)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.loading{padding:40px}@media(min-width:1250px){.inspector .total{position:sticky;top:24px}}@media(max-width:1100px){.workspace{grid-template-columns:180px minmax(0,1fr)}.inspector{grid-column:2;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:25px}.library{grid-row:1/3}main{padding:28px}.reference-panel{margin:0}.total-number{font-size:42px}.validation{border-top:0;padding-top:0}}@media(max-width:650px){.masthead{height:78px;padding:0 16px;gap:8px}.brand{font-size:13px;gap:8px}.brand small{font-size:7px;letter-spacing:.1em}.brand-mark{font-size:23px;padding:0 6px}.header-actions{gap:1px}.header-actions .primary{font-size:12px;padding:8px}.file-menu summary{padding:8px}.workspace{display:block}.library{border-right:0;border-bottom:1px solid var(--line);padding:16px}.library .eyebrow,.library h2,.library>p,.library-foot,.library .subtle{display:none}.library nav{display:flex;overflow-x:auto;gap:7px;margin:0 0 10px}.army-link{min-width:150px;width:auto;flex-shrink:0;max-width:230px;margin:0;padding:7px 10px}.army-link small{font-size:9px}.library .wide{width:auto;font-size:12px;padding:5px 12px;min-height:32px}main{padding:25px 18px}.title-label input{font-size:24px}.army-controls{grid-template-columns:1fr 105px;gap:10px}.section-heading .primary{font-size:11px;padding:8px}.section-heading h2{font-size:18px}.roster-row{gap:9px}.row-copy p{font-size:11px}.unit-title{font-size:15px}.row-number{font-size:11px}.row-end{min-width:80px}.row-end>div{flex-wrap:wrap;justify-content:flex-end;max-width:93px}.row-end button{min-height:36px}.inspector{display:block;padding:24px 20px}.inspector>section,.reference-panel{margin-bottom:25px}.validation{border-top:1px solid var(--line);padding-top:20px}dialog{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;margin:0}#edit-form{max-height:100dvh;height:100dvh}.editor-header,.editor-footer{padding:16px 18px}.editor-body{padding:18px;flex:1}.choices{gap:7px}.choice{padding:11px 8px;gap:8px}.preview{width:100%;height:100dvh;max-height:100dvh}.preview-bar{flex-wrap:wrap;gap:6px}.preview-bar strong{width:100%;font-size:12px}.preview-bar button{font-size:11px}.preview iframe{height:calc(100% - 95px)}}

[hidden]{display:none!important}.masthead{position:sticky;top:0;z-index:8}.inspector .total{position:static}


.header-total{font:18px Georgia,serif;color:var(--accent);white-space:nowrap}@media(max-width:650px){.header-total{display:none}.library .subtle{display:inline-block}}


@media(max-width:650px){.header-total{display:inline;font-size:12px}.masthead .brand small{max-width:132px;letter-spacing:.05em}}


.status.shown{display:flex;align-items:center;gap:16px}.status span{flex:1}.status button{color:white;background:transparent;border-color:#ffffff50;min-height:28px;padding:2px 8px}


@media(max-width:360px){.brand small{display:none}.brand{font-size:11px;letter-spacing:.07em}.brand-mark{font-size:20px}.masthead{padding:0 12px}.header-actions .primary{font-size:11px;padding:8px}.file-menu summary{font-size:12px;padding:8px}}

