:root{--ink:#1c1a17;--soft:#5c5852;--faint:#8a857c;--line:#e7e3db;--red:#991320;--redd:#7d0f19;--wash:#faf8f4}
*{box-sizing:border-box;margin:0}
body{background:#fff;color:var(--ink);font-family:'Newsreader',Georgia,serif;font-size:16px;line-height:1.5}
a{color:inherit;text-decoration:none}
.mono{font-family:'IBM Plex Mono',monospace}
.su-builder-root>header{border-bottom:1px solid var(--line);padding:16px 32px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.mk{font-family:'Gloock',serif;font-size:22px}.mk b{color:var(--red);font-weight:400}
.su-builder-root>header .n{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-left:auto}
.su-builder-root>header .sw{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--red);border-bottom:1px solid var(--red)}
.intro{padding:22px 32px 16px;max-width:860px}
.intro h1{font-family:'Gloock',serif;font-weight:400;font-size:36px;line-height:1.05;margin-bottom:8px}
.intro p{color:var(--soft);font-size:16px}
.controls{display:flex;gap:26px;align-items:center;padding:14px 32px;background:var(--wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}
.ctrl{display:flex;align-items:center;gap:10px}
.ctrl .lbl,.lab{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.step{display:flex;align-items:center;border:1.5px solid var(--ink);border-radius:100px;overflow:hidden}
.step button{background:none;border:none;width:32px;height:32px;font-size:17px;cursor:pointer;font-family:'IBM Plex Mono',monospace}
.step button:hover{background:var(--ink);color:#fff}
.step .v{width:30px;text-align:center;font-family:'Gloock',serif;font-size:17px}
.count{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}.count b{color:var(--red)}
.spacer{margin-left:auto}
.gbtn{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:11px 18px;border-radius:100px;border:1.5px solid var(--ink);background:#fff;cursor:pointer;color:var(--ink)}
.gbtn:hover{background:var(--ink);color:#fff}
.print-btn{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:12px 22px;border-radius:100px;background:var(--red);color:#fff;border:none;cursor:pointer;margin-left:10px}
.print-btn:hover{background:var(--redd)}
.stage{display:grid;grid-template-columns:320px minmax(0,1fr)}
.lib,.sheetpane{min-width:0}
.lib{border-right:1px solid var(--line);padding:20px;overflow:auto;max-height:78vh}
.lib h3{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}
.search,select.search{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-family:'Newsreader',serif;font-size:14px;margin-bottom:8px;background:#fff}
.own{width:100%;display:flex;gap:6px;margin-bottom:16px}
.own input{flex:1;padding:9px 11px;border:1px dashed var(--red);border-radius:8px;font-family:'Newsreader',serif;font-size:13px}
.own button{border:1px solid var(--red);color:var(--red);background:#fff;border-radius:8px;padding:0 12px;cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:16px}
.chip{border:1px solid var(--line);border-radius:8px;padding:9px 12px;margin-bottom:7px;font-size:14px;cursor:grab;background:#fff;display:flex;justify-content:space-between;gap:8px;align-items:center}
.chip:hover{border-color:var(--red)}.chip.used{opacity:.32;pointer-events:none}
.chip .cat{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.chip .add{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--red);white-space:nowrap}
.sheetpane{padding:24px 32px;overflow:auto;max-height:78vh;background:#fbfaf8}
.edithint{max-width:660px;margin:0 auto 12px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.02em;color:var(--soft);background:#f4efe7;border:1px solid var(--line);border-radius:8px;padding:9px 13px;display:flex;align-items:center;gap:8px}
.edithint b{color:var(--red);font-weight:500}.edithint .pen{color:var(--red)}
.doc{max-width:660px;margin:0 auto;background:#fff;border:1px solid var(--line);box-shadow:0 18px 40px -26px rgba(0,0,0,.4);padding:42px 46px;display:flex;flex-direction:column;min-height:840px}
.dtop{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:22px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.dtleft{flex:1;min-width:0}
.brandtr{flex-shrink:0;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);line-height:1.7;padding-top:2px}
.brandtr a{color:var(--red)}
.ed{cursor:text;border-bottom:1px dotted #d3cec5;transition:background .15s}
.ed:hover{background:#faf6f0}.edorg:focus,.edtitle:focus,.edby:focus{background:#fdf6f6;border-bottom-color:var(--red);outline:none}
.edorg{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);min-width:60px;display:inline-block}
.edtitle{font-family:'Gloock',serif;font-size:36px;line-height:1.05;display:block;margin-top:8px;width:100%;padding:0 0 2px;white-space:pre-wrap;overflow-wrap:anywhere}
.edtitle:empty:before{content:attr(data-ph);color:#c9c4bc}
.edby{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-top:10px;min-width:60px;display:inline-block}
.grp{margin-bottom:18px}
.ghd{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.gname{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);border:none;border-bottom:1px dashed var(--line);flex:1;padding:2px 0;background:none;outline:none}
.gs{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);background:none;border:1px solid var(--line);border-radius:100px;padding:4px 10px;cursor:pointer;white-space:nowrap}
.gs:hover{border-color:var(--red);color:var(--red)}
.slot{border:1px dashed var(--line);border-radius:6px;padding:10px 12px;margin-bottom:6px;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px}
.slot.filled{border-style:solid;border-color:#d8d3ca;background:#fff;cursor:grab}
.slot.over{border-color:var(--red);background:#fdf6f6}
.slot .txt{outline:none;flex:1}.slot .txt:focus{background:#fdf6f6}
.slot .ph{color:var(--faint);font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.03em;cursor:text;flex:1}
.slot .grip{cursor:grab;color:#cfc9bf;font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:-2px;user-select:none;margin-right:4px;line-height:1;flex-shrink:0}
.slot:hover .grip{color:var(--faint)}
.slot .mv{font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:1;width:24px;height:24px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;color:var(--soft);padding:0}
.slot .mv:hover{border-color:var(--red);color:var(--red)}
.acts{display:flex;gap:8px;align-items:center;white-space:nowrap}
.slot .x,.slot .sw{cursor:pointer;color:var(--faint);font-family:'IBM Plex Mono',monospace;font-size:12px}
.slot .x:hover{color:var(--red)}.slot .sw{color:var(--red)}.slot .sw:hover{text-decoration:underline}
.dfoot{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);display:flex;justify-content:space-between}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:8px;font-family:'IBM Plex Mono',monospace;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50}.toast.show{opacity:1}
@media screen{.printonly{display:none}}
@media print{
@page{margin:14mm 15mm}
/* #printArea is moved to be a direct child of <body> at init (core.js), so everything else —
   including a host theme's masthead, page title and footer — can be removed from layout entirely.
   (visibility:hidden would keep their space and push the sheet down / onto extra pages.) */
body>*:not(#printArea){display:none!important}
#printArea{display:block!important;position:static;width:auto}
.pwrap{width:100%;border-collapse:collapse;font-family:'Newsreader',serif}
.pbody{display:table-row-group}.pfootgrp{display:table-footer-group}.pcell{padding:0}
.pstop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;border-bottom:2px solid #000;padding-bottom:16px;margin-bottom:26px}
.pk{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#666}
.pno{font-family:'Gloock',serif;font-size:46px;line-height:1.02;margin-top:8px}
.pby{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#991320;margin-top:10px}
.pbrand{flex-shrink:0;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#8a857c;line-height:1.7;padding-top:4px}
.pgrp{margin-bottom:24px;break-inside:avoid}
.pgl{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#991320;margin-bottom:9px;border-bottom:1px solid #ddd;padding-bottom:5px}
.ppl{font-size:19px;line-height:1.5;margin-bottom:7px}
.pfoot{border-top:1px solid #000;padding-top:10px;margin-top:16px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#444;display:flex;justify-content:space-between}
}
