@font-face{font-family:'Futura Std';font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/FuturaStd-Book.woff) format('woff')}
@font-face{font-family:'Futura Std';font-weight:700;font-style:normal;font-display:swap;src:url(/assets/fonts/FuturaStd-Bold.woff2) format('woff2'),url(/assets/fonts/FuturaStd-Bold.woff) format('woff')}

:root{--ink:#111318;--muted:#5B616B;--line:#E3E5E9;--bg:#F5F6F8;--accent:#1E4D3F;--danger:#B3261E;--display:'Futura Std','Century Gothic',Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:Helvetica,'Helvetica Neue',Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.4;font-size:16px}
a{color:inherit}
h1,h2,.wm{font-family:var(--display);font-weight:400;margin:0}
h1{font-size:40px;letter-spacing:-.01em}
h2.small{font-size:20px;margin-bottom:12px}
.sr{position:absolute;left:-9999px}
.muted,.hint,.lead{color:var(--muted)}
.hint{font-size:14px;margin:8px 0 0}
.lead{margin:4px 0 0}

.shell{display:flex;flex-wrap:wrap;min-height:100vh}
.nav{flex:1 0 248px;max-width:280px;background:var(--ink);color:#fff;padding:28px 20px;display:flex;flex-direction:column;gap:26px}
.brandbox img{display:block;height:32px;width:auto;max-width:200px;filter:none}
.brandbox .wm{font-weight:700;font-size:20px;letter-spacing:.16em}
.brandbox small{display:block;margin-top:8px;font-size:14px;color:#B5BAC4}
.brandsw{display:flex;background:#20242C;border-radius:6px;padding:4px;gap:4px}
.brandsw button{flex:1;min-height:44px;border:0;border-radius:4px;background:transparent;color:#fff;font:inherit;font-size:15px;cursor:pointer}
.brandsw button.on{background:var(--accent);font-weight:700}
.links{display:flex;flex-direction:column;gap:4px}
.links a,.who a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:4px;text-decoration:none}
.links a:hover,.who a:hover{background:rgba(255,255,255,.08)}
.links a.on,.who a.on{background:rgba(255,255,255,.14);font-weight:700}
.who{margin-top:auto;display:flex;flex-direction:column;gap:2px;font-size:15px;color:#B5BAC4}
.who .linkbtn{color:#B5BAC4;padding:0 14px;min-height:44px;text-align:left;width:100%}
.content{flex:999 1 640px;min-width:0;padding:36px 40px 56px}

.flash{margin:0 0 18px;padding:12px 16px;border-radius:6px;font-size:15px}
.flash.ok{background:#E4EFE9;color:#17382E}
.flash.err{background:#FBE9E7;color:#8A2A1F}

.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.pagehead.tight{margin-bottom:12px;align-items:center}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:24px}
.panel.grow{flex:999 1 480px;min-width:0}
.narrowpanel{max-width:620px}
.split{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.tree{flex:0 0 240px;padding:16px 12px}
.tree h2{padding:0 8px}
.tree hr{border:0;border-top:1px solid var(--line);margin:10px 0}
.tree .row{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 10px;border-radius:4px;text-decoration:none;font-size:16px}
.tree .row.b{font-weight:700}
.tree .row.sub{padding-left:26px;font-size:15px}
.tree .row.on{background:#EEF0F3}
.tree .row:hover{background:#F3F4F6}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border:1px solid var(--ink);border-radius:4px;background:#fff;color:var(--ink);font:inherit;font-size:16px;cursor:pointer;text-decoration:none}
.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}
.btn.primary:hover:not([disabled]){background:#2B2F37;border-color:#2B2F37}
.btn.danger{border-color:var(--danger);color:var(--danger)}
.btn.wide{width:100%}
.btn[disabled]{opacity:.45;cursor:default}
.linkbtn{background:none;border:0;padding:0 8px;min-height:44px;font:inherit;font-size:15px;color:inherit;text-decoration:underline;cursor:pointer}
.linkbtn.red{color:var(--danger)}
form.inline{display:inline}

input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],select{height:46px;width:100%;padding:0 14px;font:inherit;font-size:16px;border:1px solid #C5C9D0;border-radius:4px;background:#fff;color:var(--ink)}
input[type=file]{font:inherit;font-size:15px}
input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--accent)}
.colorpick{width:90px!important;padding:4px!important}
label{display:block;font-size:15px;font-weight:700;margin:16px 0 6px}
.stack label:first-child{margin-top:0}
.stack .actions{margin-top:22px}
label.check{display:flex;align-items:center;gap:10px;font-weight:400;min-height:44px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row-form{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}
.row-form>div{flex:1 1 220px}
.row-form>div.narrow{flex:0 0 130px}
.row-form label{margin-top:0}
.inline-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.inline-row input[type=text]{flex:1 1 220px;width:auto}
.inline-row .num{flex:0 0 90px;width:90px}
.inline-row .cnt{font-size:14px;color:var(--muted);min-width:70px}
.logoprev{margin:6px 0 10px;padding:14px;background:#F5F6F8;border-radius:6px;display:inline-block}
.logoprev img{display:block;height:34px;width:auto}

.inline input[type=search]{width:300px;max-width:100%}
form.inline{display:inline-flex;gap:8px}
.bulkbar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:8px}
.bulkbar .grp{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bulkbar select,.bulkbar input[type=text]{width:190px}
.selinfo{font-weight:700;min-width:100px}

.tablewrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th{text-align:left;font-size:14px;font-weight:400;color:var(--muted);padding:10px 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:8px;border-bottom:1px solid #EEF0F3;vertical-align:middle}
.tbl .c{width:40px;text-align:center}
.tbl .r{text-align:right;white-space:nowrap}
.tbl .fn{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl.compact td{border-bottom:0;padding:4px 0}
.thumbcell{width:64px}
.thumbcell img{display:block;width:52px;height:52px;object-fit:cover;border-radius:4px;background:#E9EBEF}
.thumbcell .x{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:4px;background:#E9EBEF;font-size:12px;font-weight:700;color:var(--muted)}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px}
.pill.warn{background:#FBE9E7;color:#8A2A1F}
.pill.ok{background:#E4EFE9;color:#1E4D3F}
.empty{padding:28px 4px;color:var(--muted)}
.pager{display:flex;gap:16px;align-items:center;justify-content:center;margin-top:20px;color:var(--muted)}

.steps{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.step label:first-of-type{margin-top:0}
.drop{border:2px dashed #A9AFBA;border-radius:8px;background:#FAFBFC;padding:34px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.drop.over{border-color:var(--accent);background:#F1F5F3}
.drop .big{font-family:var(--display);font-size:24px}
.drop .btns{margin-top:10px;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.progress{height:8px;border-radius:4px;background:var(--line);overflow:hidden;margin:6px 0 12px}
.progress div{height:100%;width:0;background:var(--accent);transition:width .2s}
.st-ok{color:#1E4D3F}.st-warn{color:#8A2A1F}.st-dup{color:var(--muted)}

.preview img,.preview video{display:block;max-width:100%;max-height:520px;margin:0 auto 12px;border-radius:4px;background:#E9EBEF}
.preview .x.big{display:flex;align-items:center;justify-content:center;height:220px;background:#E9EBEF;border-radius:4px;font-family:var(--display);font-size:36px;color:var(--muted);margin-bottom:12px}
.preview{flex:0 0 380px;max-width:100%}

.loginpage{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.logincard{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:32px}
.logincard h1{font-size:30px;margin:18px 0 10px}
.logincard .btn{margin-top:22px}
.lbrand img{display:block;height:34px;width:auto}
.wm.dark{font-weight:700;font-size:20px;letter-spacing:.16em}

@media (max-width:760px){
  .content{padding:24px 16px 40px}
  .steps,.two{grid-template-columns:1fr}
  h1{font-size:32px}
}

.brandbox img.onblack{mix-blend-mode:lighten}
.lbrand img.onblack{filter:invert(1);mix-blend-mode:multiply}

.coverrow{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;margin:16px 0 8px;padding:14px;background:#F7F8FA;border-radius:8px}
.coverprev{width:176px;aspect-ratio:275/200;border-radius:6px;overflow:hidden;background:#D9DCE1;flex:none}
.coverprev img{width:100%;height:100%;object-fit:cover;display:block}
.coverrow .hint{margin:2px 0 10px}
.ctabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.ctabs a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid #C5C9D0;border-radius:999px;text-decoration:none;font-size:15px;background:#fff}
.ctabs a.on{background:var(--ink);border-color:var(--ink);color:#fff}
.ctabs a span{margin-left:6px;opacity:.65;font-size:13px}
.posbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px}
.posbar .seg{display:flex;border:1px solid #C5C9D0;border-radius:4px;overflow:hidden;background:#fff}
.posbar .seg button{min-height:40px;padding:0 16px;border:0;background:none;font:inherit;font-size:15px;cursor:pointer}
.posbar .seg button.on{background:var(--ink);color:#fff}
.covergrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.covergrid form{margin:0}
.covergrid button{display:block;width:100%;padding:0;border:2px solid transparent;border-radius:8px;background:#fff;cursor:pointer;text-align:left;font:inherit;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.covergrid button:hover{box-shadow:0 0 0 1px var(--ink)}
.covergrid button.cur{border-color:var(--accent);box-shadow:none}
.covergrid .ci{display:block;aspect-ratio:275/200;background:#D9DCE1;overflow:hidden}
.covergrid img{width:100%;height:100%;object-fit:cover;display:block}
.covergrid .cl{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;font-size:13px;color:var(--muted)}
.covergrid .cl b{color:var(--accent)}
.pdfbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.pdfbar .btn{min-height:38px;padding:0 16px;font-size:15px}
@media (min-width:761px){
  .shell{flex-wrap:nowrap;align-items:flex-start}
  .nav{position:sticky;top:0;height:100vh;overflow-y:auto}
}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px}
.stat b{display:block;font-family:var(--display);font-weight:400;font-size:30px;line-height:1.1}
.stat span{font-size:14px;color:var(--muted)}
.check-inline{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:15px}
.check-inline input{width:18px;height:18px}
.inline-row input[type=text]{flex:1 1 320px}
.vis{flex:0 0 120px}
.vis-toggle{display:flex;align-items:center;gap:10px;min-height:46px;margin:0;font-weight:400;cursor:pointer}
.vis-toggle span{font-size:15px}
.pill.hidden-pill{background:#ECE6F5;color:#4A2E7A}
.dangerzone{border-color:#F0C7C2}
.dangerzone h2{color:var(--danger)}
.sorthead{font-size:14px;font-weight:400;color:var(--muted);margin:18px 0 6px}
.sortlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sortlist li{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;min-height:46px}
.sortlist .nm{flex:1 1 auto;font-size:16px}
.sortlist .cnt{font-size:14px;color:var(--muted)}
.sortlist li.dragging,.tbl tr.dragging{opacity:.45}
.grip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:36px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:grab;padding:0}
.grip:hover{background:#EEF0F3;color:#111}
.grip:focus-visible{outline:2px solid #111;outline-offset:1px}
.grip:active{cursor:grabbing}
.inline-row .grip{margin-right:-4px}
.sort-status{min-height:20px;margin:6px 0 0;font-size:14px;color:#2F6F4F}
.sort-status.bad{color:var(--danger)}
.cardgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.ccard{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:grab;user-select:none;transition:box-shadow .15s,border-color .15s}
.ccard:hover{box-shadow:0 6px 18px rgba(17,19,24,.12);border-color:#C9CDD4}
.ccard:active{cursor:grabbing}
.ccard.dragging{opacity:.45;border-style:dashed;box-shadow:none}
.ccard .cv{display:block;aspect-ratio:4/3;background:#E9EBEF;overflow:hidden}
.ccard .cv img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.ccard .noimg{display:flex;height:100%;align-items:center;justify-content:center;font-size:13px;color:var(--muted)}
.ccard .pos{position:absolute;left:10px;top:10px;min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:rgba(17,19,24,.78);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;pointer-events:none}
.ccard .grip{position:absolute;right:8px;top:8px;width:32px;height:32px;background:rgba(255,255,255,.92);color:#111;box-shadow:0 1px 4px rgba(17,19,24,.25);cursor:grab}
.ccard .cb{display:block;padding:10px 12px 12px}
.ccard .cb b{display:block;font-weight:500;font-size:15px;line-height:1.3}
.ccard .cnt{display:block;margin-top:2px;font-size:13px;color:var(--muted)}
.ccard.is-hidden .cv img{opacity:.55}
.ccard .vform{padding:0 12px 12px;margin:0}
.ccard .vbtn{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 10px;font:inherit;font-size:13px;cursor:pointer}
.ccard .vbtn:hover{border-color:#111}
.ccard.is-hidden .vbtn{background:#111;color:#fff;border-color:#111}
.delsamples{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.delsamples img{width:84px;height:84px;object-fit:cover;border-radius:6px;background:#E9EBEF}
