:root{--slate:#22262A;--slate2:#2B3036;--slate3:#3A4047;--paper:#F3F2EE;--ink:#171A1D;--chalk:#ECEEED;--mute:#9AA1A7;--blue:#376CB8;--blue2:#2F5F9E;--line:#D9D7CF;--warn:#FFF6DE;--ok:#E8F4EC;--r:7px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,system-ui,sans-serif;background:var(--slate);color:var(--chalk)}
.app{display:flex;min-height:100vh}.rail{width:390px;flex:0 0 390px;border-right:1px solid var(--slate3);display:flex;flex-direction:column;max-height:100vh;position:sticky;top:0}.brand{padding:15px 18px 11px;border-bottom:1px solid var(--slate3);background:var(--slate)}.brand h1{margin:0;font-size:18px}.brand p{margin:4px 0 10px;color:var(--mute);font-size:12px;line-height:1.35}.gnav,.hnav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.gnav a,.hnav a{white-space:nowrap;text-decoration:none;color:#AEB5BB;border:1px solid var(--slate3);border-radius:5px;padding:6px 8px;font-size:11px}.gnav a[aria-current=page],.hnav a[aria-current=page]{background:var(--blue);color:#fff;border-color:var(--blue)}.hnav{margin-top:6px}
.scroll{overflow:auto;flex:1;min-height:0}details{border-bottom:1px solid var(--slate3)}summary{padding:14px 18px;font-weight:700;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.body{padding:0 18px 18px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.full{grid-column:1/-1}label{display:block;color:var(--mute);font-size:11px;margin-bottom:5px}input,select,textarea{width:100%;background:var(--slate2);border:1px solid var(--slate3);color:var(--chalk);border-radius:5px;padding:10px;font-size:13px;min-height:40px}textarea{min-height:72px;resize:vertical}.hint{font-size:11px;line-height:1.45;color:#AEB5BB;margin-top:7px}.check{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:12px;color:var(--chalk)}.check input{width:auto;min-height:0;accent-color:var(--blue)}
.actions{padding:12px 18px;border-top:1px solid var(--slate3);background:var(--slate);display:grid;gap:8px}.primary,.secondary{width:100%;border-radius:6px;padding:12px;font-weight:700;cursor:pointer}.primary{background:var(--blue);color:#fff;border:0}.secondary{background:transparent;color:var(--chalk);border:1px solid var(--slate3)}
.stage{flex:1;background:var(--paper);color:var(--ink);overflow:auto;padding:22px;min-width:0}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;max-width:1060px;margin:auto;box-shadow:0 4px 18px rgba(0,0,0,.08)}.card h2{margin:0 0 6px}.sub{color:#6E7176;font-size:12px;margin-bottom:16px}.preview{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:18px;align-items:start}.piece{background:#FCFCFA;border:1px solid #D7D4CB;padding:10px;min-height:250px;overflow:auto}.piece svg{display:block;max-width:100%;height:auto}.cutlist{min-width:0}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:7px 8px;border-bottom:1px solid #E1DFD7;text-align:left;vertical-align:top}.badge{display:inline-block;border:1px solid #CBD1D5;border-radius:999px;padding:3px 7px;font-size:10px;color:#586068;margin:0 5px 5px 0}.warn,.info,.okbox{padding:10px 12px;font-size:12px;line-height:1.5;margin-top:12px}.warn{background:var(--warn);border-left:4px solid #C6952E;color:#493817}.info{background:#EDF4FF;border-left:4px solid var(--blue);color:#24364D}.info b,.info strong{color:#14243A}.okbox{background:var(--ok);border-left:4px solid #4E8A61;color:#244633}.metric{font-size:22px;font-weight:800;margin:4px 0}.homecards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.homecard{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:15px;background:#fff}.homecard b{display:block;margin-bottom:5px}.homecard small{color:#6E7176;line-height:1.45}
@media(max-width:980px){.preview{grid-template-columns:1fr}}
@media(max-width:780px){html,body{background:var(--paper)}.app{display:block;min-height:100vh}.rail{width:100%;max-height:none;height:auto;position:static;border-right:0}.brand{position:sticky;top:0;z-index:20}.scroll{overflow:visible;min-height:auto}.stage{min-height:45vh;padding:10px}.card{padding:13px;border-radius:0}.grid{grid-template-columns:1fr}.full{grid-column:auto}.actions{position:sticky;bottom:0;z-index:15;box-shadow:0 -4px 15px rgba(0,0,0,.18)}.piece{min-height:190px}.preview{display:block}.cutlist{margin-top:14px}}
