:root{--bg:#f4f3ef;--ink:#1f1f1b;--muted:#6b6a63;--line:#e3e1da;--field:#c9c6bd;--green:#00704a;--green-dark:#004f34;--card:#fff}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--green)}a:hover{color:var(--green-dark)}
h1{font-size:24px;margin:0 0 16px}h2{font-size:17px;margin:0 0 4px}
code{background:#eceae3;padding:1px 5px;border-radius:4px}
.muted{color:var(--muted)}.small{font-size:13px}.hint{font-size:13px;color:var(--muted);margin:0 0 16px}
.topbar{background:#1f1f1b;color:#fff;display:flex;align-items:center;gap:24px;padding:0 32px;height:56px;flex-wrap:wrap}
.brand{font-weight:700;letter-spacing:.02em}.who{color:#b9b7ad;font-size:14px}.who .muted{color:#7d7b72}
.logout{margin-left:auto}
.tabs{background:#fff;border-bottom:1px solid var(--line);display:flex;padding:0 32px}
.tab{padding:14px 18px;border-bottom:3px solid transparent;color:#5a5950;text-decoration:none;font-weight:500}
.tab-on{color:var(--ink);border-bottom-color:var(--green)}
.page{padding:24px 32px 48px;max-width:1100px}
.flash{padding:10px 14px;border-radius:8px;margin:0 0 16px;background:#e8f3ee;color:#00573a;border:1px solid #bfe0d0}
.flash-error{background:#fdecec;color:#8a1c1c;border-color:#f2bcbc}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:22px 26px;margin:0 0 20px}
.card.narrow{max-width:560px}
input[type=text],input[type=email],input[type=password],select,textarea{font:inherit;height:36px;padding:0 10px;border:1px solid var(--field);border-radius:6px;background:#fff;color:var(--ink);width:100%}
textarea{height:auto;padding:8px 10px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);margin:0 0 12px}
label input,label select,label textarea{font-size:15px;color:var(--ink)}
label.chk,label.inline{flex-direction:row;align-items:center;gap:8px;font-size:15px;color:var(--ink);margin:0}
label.inline input,label.inline select{width:auto}
fieldset{border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:0 0 12px}legend{font-size:13px;color:var(--muted);padding:0 6px}
.btn{font:inherit;font-weight:500;height:36px;padding:0 14px;border-radius:6px;border:1px solid var(--field);background:#fff;color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark);color:#fff}
.btn-quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn-light{color:#ddd}
.row{display:flex;align-items:center;gap:12px;margin-top:8px}.row.wrap{flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.spacer{flex:1}
.pill{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:#e8f3ee;color:#00573a;font-weight:600}
.pill-warn{background:#fff1cc;color:#7a5200}.pill-submitted{background:#fff1cc;color:#7a5200}.pill-done{background:#e8f3ee}.pill-draft{background:#eee;color:#555}
table.list,table.form-table{border-collapse:collapse;width:100%}
table.list th,table.form-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;font-weight:600;padding:0 10px 8px 0}
table.list td{padding:10px 10px 10px 0;border-top:1px solid var(--line);vertical-align:top}
table.form-table td{padding:4px 10px 4px 0;vertical-align:middle}table.form-table td.center{text-align:center}
/* panels */
.panel-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.chip{padding:7px 14px;border-radius:999px;border:1px solid var(--field);background:#fff;text-decoration:none;color:var(--ink);font-weight:500}
.chip-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.panel{background:var(--panel-bg,#c50026);color:var(--panel-fg,#fff);border-radius:12px;padding:36px 40px;max-width:820px;font-family:"New Century Schoolbook",Baskerville,Georgia,serif}
.panel-group{margin:0 0 36px}
.panel-group-name{font-size:30px;font-weight:700;text-align:center;letter-spacing:.01em;margin:0 0 6px}
.panel-group-desc{text-align:center;font-family:Inter,system-ui,sans-serif;font-weight:600;margin:0 0 10px}
.panel-table{width:100%;border-collapse:collapse}
.panel-table th{font-family:Inter,system-ui,sans-serif;font-weight:500;font-size:13px;text-align:right;padding:4px 8px;opacity:.9}
.panel-table td{padding:5px 8px;vertical-align:top}
.panel-table td.product-name{text-align:right;width:55%}
.panel-table .name{font-size:21px;font-weight:700}.panel-table .desc{font-family:Inter,system-ui,sans-serif;font-size:14px;opacity:.95}
.panel-table td.num{text-align:right;font-family:Inter,system-ui,sans-serif;font-size:17px;white-space:nowrap}
.panel input.price-input{width:5.5em;height:30px;padding:0 6px;text-align:right;font:inherit;font-size:16px;border:1px dashed rgba(255,255,255,.45);border-radius:5px;background:transparent;color:var(--panel-fg)}
.panel input.price-input::placeholder{color:var(--panel-fg);opacity:.75}
.panel input.price-input.own{background:rgba(255,255,255,.95);color:#1f1f1b;border-color:#fff}
.panel input.price-input:focus{outline:2px solid #fff;outline-offset:1px}
.price-off{opacity:.3}
.panel-footer{font-family:Inter,system-ui,sans-serif;font-size:12px;text-align:center;opacity:.9;margin-top:24px}
/* login */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0}
.login-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:32px 36px;width:min(380px,92vw)}
.login-box h1{font-size:22px;margin:0 0 4px}
@media (max-width:720px){.topbar,.tabs,.page{padding-left:16px;padding-right:16px}.panel{padding:20px 16px}.grid2{grid-template-columns:1fr}}
.panel input.price-input.saving{opacity:.6}.panel input.price-input.error{border-color:#ff8a8a;background:#fdecec;color:#8a1c1c}
/* editor */
.editor-layout{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
#editor{flex:999 1 560px;min-width:0}.editor-side{flex:1 1 280px;max-width:340px}
.group-card{background:#fff;border:1px solid var(--line);border-radius:10px;margin:0 0 14px;overflow:hidden}
.group-card.dragging,.product.dragging{opacity:.4}
.group-card.drop-before{box-shadow:0 -3px 0 var(--green)}.group-card.drop-after{box-shadow:0 3px 0 var(--green)}
.product.drop-before{box-shadow:inset 0 3px 0 var(--green)}.product.drop-after{box-shadow:inset 0 -3px 0 var(--green)}
.group-head{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#f7f6f2;border-bottom:1px solid var(--line)}
.group-title{flex:1;min-width:0;display:flex;flex-direction:column}.group-title strong{font-size:16px}
.handle{cursor:grab;color:#9b9a92;user-select:none;font-size:14px;letter-spacing:-2px}
.flags{display:flex;gap:4px}
.flag{width:28px;height:28px;border-radius:6px;border:1px solid var(--field);background:#fff;color:#b5b3aa;font:600 13px Inter,system-ui,sans-serif;cursor:pointer}
.flag.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.flag.busy{opacity:.5}
ol.products{list-style:none;margin:0;padding:4px 0}
.product{display:flex;align-items:center;gap:12px;padding:6px 14px 6px 14px;border-top:1px solid #f0efe9}
.product .pname{flex:1;min-width:0}.product .prices{width:150px;text-align:right;white-space:nowrap}
.hidden-product .pname,.hidden-product .prices{opacity:.45}
.btn.small{height:28px;padding:0 10px;font-size:13px}
.btn-add{background:#e8f3ee;border-color:#bfe0d0;color:#00573a}
.add-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0}
.add-group select{width:auto;min-width:240px}
.swatches{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 8px}
.swatch input{position:absolute;opacity:0;width:0;height:0}
.swatch span{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;border:2px solid transparent;font-weight:600;cursor:pointer}
.swatch input:checked + span{border-color:var(--ink);box-shadow:0 0 0 2px #fff inset}
.swatch input:focus-visible + span{outline:2px solid var(--green);outline-offset:2px}
/* panel: sans-serif */
.panel{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.panel-group-name{font-size:26px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.panel-table .name{font-size:19px;font-weight:600}
/* products */
.group-details summary{cursor:pointer;display:flex;gap:14px;align-items:baseline;list-style:none}
.group-details summary::-webkit-details-marker{display:none}
.group-details summary::before{content:"▸";color:var(--muted);margin-right:-4px}.group-details[open] summary::before{content:"▾"}
.group-fields{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0 8px}
.group-fields .ovr{flex:1 1 220px}.group-fields .labels{display:flex;gap:6px;align-items:flex-end;flex:2 1 320px}.group-fields .labels label{margin:0 6px 8px 0}
.ovr input{background:#f7f6f2;border-color:#e3e1da}.ovr input.own{background:#fff;border-color:var(--field)}
.ovr input.saving{opacity:.6}.ovr input.error{border-color:#ff8a8a;background:#fdecec}
.products-table td{padding:5px 8px 5px 0}.products-table td.num{width:72px}.products-table input{height:32px}
.products-table .hidden-product input{opacity:.55}
.history-list{margin:6px 0 0;padding-left:16px;color:var(--muted)}
.hidden-list summary{cursor:pointer;padding:8px 14px;font-size:13px;color:var(--muted);border-top:1px solid #f0efe9;list-style:none}
.hidden-list summary::before{content:"▸ ";}.hidden-list[open] summary::before{content:"▾ ";}
.inactive-product .pname,.inactive-product .prices{opacity:.4}.inactive-product .handle{visibility:hidden}
/* admin */
.licensee-row{margin:8px 0 0 28px;padding-top:8px;border-top:1px dashed var(--line)}
details.account summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;flex-wrap:wrap}
details.account summary::-webkit-details-marker{display:none}
details.account.inactive summary strong{opacity:.5}
.account-body{padding:12px 0 4px 36px;display:flex;flex-direction:column;gap:10px}
.pill-market{background:#dfe9f3;color:#1f3d5c}.pill-licensee{background:#e8f3ee;color:#00573a}
.inline-form{display:inline}
details.menu{position:relative;display:inline-block}details.menu summary{list-style:none;cursor:pointer}details.menu summary::-webkit-details-marker{display:none}
.menu-body{position:absolute;right:0;top:32px;z-index:5;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;box-shadow:0 6px 20px rgba(0,0,0,.08);display:flex;flex-direction:column;gap:6px;min-width:220px;align-items:flex-start}
.menu-body select.small{height:30px;width:auto;max-width:170px}
tr.archived input{opacity:.45}
#catalog .group-details summary .handle{margin-right:2px}
#catalog .group-details.dragging{opacity:.4}
#catalog .group-details.drop-before{box-shadow:0 -3px 0 var(--green)}#catalog .group-details.drop-after{box-shadow:0 3px 0 var(--green)}
#catalog tr.drop-before td{box-shadow:inset 0 3px 0 var(--green)}#catalog tr.drop-after td{box-shadow:inset 0 -3px 0 var(--green)}
#catalog tr.dragging{opacity:.4}
details.menu > summary{list-style:none}details.menu > summary::marker,details.menu > summary::-webkit-details-marker{content:"";display:none}
