:root{--accent:#FFE400;--ink:#0B0B0B;--paper:#FFFDF5;--pink:#FF4D8D;--bd:3px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Space Grotesk',system-ui,sans-serif;background:var(--paper);color:var(--ink)}
a{color:inherit}
img{max-width:100%;display:block}

/* ---- login ---- */
.loginbody{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--accent);
  background-image:radial-gradient(var(--ink) 1.6px,transparent 1.6px);background-size:26px 26px;padding:20px}
.loginbox{background:var(--paper);border:4px solid var(--ink);box-shadow:12px 12px 0 var(--ink);
  padding:38px 32px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px}
.loginbox__logo{font-family:'Archivo Black',sans-serif;font-size:34px;letter-spacing:-1.5px}
.loginbox__logo span{color:var(--pink)}
.loginbox h1{font-family:'Archivo Black',sans-serif;font-size:26px;letter-spacing:-1px}
.loginbox__sub{font-size:14px;opacity:.7;margin-top:-8px}
.loginbox__back{font-family:'JetBrains Mono',monospace;font-size:12px;text-align:center;opacity:.6;margin-top:4px}

/* ---- top bar ---- */
.abar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;
  background:var(--ink);color:var(--accent);padding:12px 20px;border-bottom:4px solid var(--ink)}
.abar__logo{font-family:'Archivo Black',sans-serif;font-size:19px;letter-spacing:-.5px;margin-right:auto}
.abar__logo span{color:var(--pink)}
.abar__view,.abar__out{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:11.5px;
  border:2px solid var(--accent);padding:8px 11px}
.abar__out{background:var(--accent);color:var(--ink)}
.abar__menu{display:none;background:var(--accent);border:2px solid var(--accent);font-size:17px;padding:5px 10px;cursor:pointer}

.shell{display:grid;grid-template-columns:246px 1fr;min-height:calc(100vh - 53px)}
.side{background:#fff;border-right:4px solid var(--ink);padding:16px 12px;display:flex;flex-direction:column;gap:5px;
  position:sticky;top:53px;height:calc(100vh - 53px);overflow:auto}
.side a{display:flex;align-items:center;gap:10px;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:12.5px;
  padding:11px 12px;border:2.5px solid transparent}
.side a span{width:16px;text-align:center}
.side a:hover{background:var(--accent);border-color:var(--ink)}
.side a.on{background:var(--ink);color:var(--accent);border-color:var(--ink)}
.main{padding:32px 30px 90px;max-width:1000px}

.ph{font-family:'Archivo Black',sans-serif;font-size:clamp(26px,4vw,40px);letter-spacing:-1.6px;margin-bottom:8px}
.psub{font-size:15px;opacity:.75;margin-bottom:24px;max-width:640px}
.sh{font-family:'Archivo Black',sans-serif;font-size:19px;letter-spacing:-.6px;margin:28px 0 14px}
.sh em{font-family:'Space Grotesk';font-size:13px;font-weight:500;opacity:.6;font-style:normal}

.box{background:#fff;border:var(--bd) solid var(--ink);box-shadow:6px 6px 0 var(--ink);
  padding:22px 20px;margin-bottom:22px;display:flex;flex-direction:column;gap:14px}
.box h2{font-family:'Archivo Black',sans-serif;font-size:17px;letter-spacing:-.5px}
.box--drop{background:var(--accent)}
.narrow{max-width:440px}
label{display:flex;flex-direction:column;gap:6px;font-family:'JetBrains Mono',monospace;
  font-weight:700;font-size:11.5px;letter-spacing:.6px}
label em{font-family:'Space Grotesk';font-size:11.5px;font-weight:500;opacity:.65;font-style:normal;letter-spacing:0}
.check{flex-direction:row;align-items:center;gap:9px;align-self:end;padding-bottom:10px}
.in{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:500;padding:11px 12px;
  border:2.5px solid var(--ink);background:#fff;width:100%;outline:none}
.in:focus{box-shadow:4px 4px 0 var(--accent)}
textarea.in{resize:vertical;line-height:1.5}
select.in{cursor:pointer}
.in--sm{font-size:13px;padding:9px 10px}
.hint{font-size:13px;opacity:.7}
.hint a,.psub a{border-bottom:1.5px solid}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

.rep{display:flex;flex-direction:column;gap:18px}
.row{background:#fff;border:var(--bd) solid var(--ink);box-shadow:5px 5px 0 var(--ink);
  padding:18px;display:flex;flex-direction:column;gap:13px}
.row__head{display:flex;justify-content:space-between;align-items:center;gap:10px;
  border-bottom:2.5px solid var(--ink);padding-bottom:11px;margin-bottom:2px}
.row__head span{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:12px;letter-spacing:1px;
  background:var(--ink);color:var(--accent);padding:5px 9px;max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.handle{cursor:grab}
.del{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:10.5px;background:#fff;
  border:2.5px solid var(--ink);padding:5px 9px;cursor:pointer}
.del:hover{background:var(--pink);color:#fff}

.picker{display:flex;gap:16px;align-items:flex-start}
.picker__col{flex:1;display:flex;flex-direction:column;gap:13px;min-width:0}
.thumb{width:150px;height:150px;object-fit:cover;border:2.5px solid var(--ink);flex:none;background:#eee}
.thumb--sm{width:118px;height:118px}

.savebar{position:sticky;bottom:0;background:var(--paper);border-top:3px solid var(--ink);
  padding:14px 0;margin-top:26px;display:flex;gap:12px;z-index:20}
.btn{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;padding:13px 20px;
  border:3px solid var(--ink);cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:.12s;text-align:center}
.btn:hover{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
.btn--black{background:var(--ink);color:var(--accent)}
.btn--ghost{background:#fff;color:var(--ink)}

.alert{border:3px solid var(--ink);padding:13px 15px;margin-bottom:20px;font-size:14px;font-weight:500;
  box-shadow:4px 4px 0 var(--ink)}
.alert--ok{background:#B9F6C4}
.alert--warn{background:var(--accent)}
.alert--err{background:var(--pink);color:#fff;border-color:var(--ink)}
.alert a{text-decoration:underline}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}
.kpi{background:var(--accent);border:var(--bd) solid var(--ink);box-shadow:5px 5px 0 var(--ink);padding:18px}
.kpi b{display:block;font-family:'Archivo Black',sans-serif;font-size:32px;letter-spacing:-1.5px}
.kpi span{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700}
.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:26px}
.qlink{display:flex;align-items:center;gap:10px;background:#fff;border:var(--bd) solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);padding:14px;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:12.5px;transition:.12s}
.qlink:hover{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink);background:var(--accent)}
.note{background:#fff;border:var(--bd) solid var(--ink);padding:16px;font-size:14px;line-height:1.6}
.note code{font-family:'JetBrains Mono',monospace;background:var(--accent);padding:2px 5px;font-size:12.5px}

.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.mitem{background:#fff;border:var(--bd) solid var(--ink);box-shadow:5px 5px 0 var(--ink);display:flex;flex-direction:column}
.mitem img{width:100%;height:150px;object-fit:cover;border-bottom:2.5px solid var(--ink)}
.mitem__name{font-family:'JetBrains Mono',monospace;font-size:10.5px;padding:9px 10px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mitem__act{display:flex;gap:6px;padding:0 10px 10px;margin-top:auto}
.mini{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:10px;border:2px solid var(--ink);
  background:#fff;padding:6px 7px;cursor:pointer;flex:1}
.mini:hover{background:var(--accent)}
.mini--del:hover{background:var(--pink);color:#fff}

@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{display:none;position:static;height:auto}
  .side.open{display:flex}
  .abar__menu{display:block}
  .g2,.g3,.cards{grid-template-columns:1fr}
  .main{padding:22px 16px 80px}
  .picker{flex-direction:column-reverse}
}
