:root{
  --blue:#3D87CB; --blue-light:#5FA1DC; --navy:#0A1628; --navy-2:#12213A;
  --ink:#0A0C12; --muted:#5A6070; --line:#E5E8EE; --paper:#fff; --paper-2:#F5F7FB;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font:15px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper-2)}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:underline}
main{max-width:1000px;margin:0 auto;padding:34px 22px 70px}
main.narrow{max-width:430px;padding-top:64px}
h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
h2.grp{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:30px 0 12px;font-family:var(--mono)}
.muted{color:var(--muted)} .sm{font-size:13px}
.bar{background:var(--navy);color:#fff;padding:0 22px;display:flex;align-items:center;
  justify-content:space-between;height:56px;position:sticky;top:0;z-index:9}
.bar .brand{font-weight:800;letter-spacing:-.01em}
.bar .brand span{color:var(--blue-light);font-weight:500}
.bar nav{display:flex;align-items:center;gap:4px}
.bar nav a{color:rgba(255,255,255,.72);padding:7px 12px;border-radius:7px;font-size:14px}
.bar nav a:hover{background:rgba(255,255,255,.09);text-decoration:none;color:#fff}
.bar nav a.on{background:rgba(95,161,220,.2);color:#fff}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:11px;
  padding:16px 16px 14px;color:var(--ink)}
.card:hover{border-color:var(--blue);text-decoration:none;box-shadow:0 2px 10px rgba(10,22,40,.07)}
.card .ci{font-weight:700;margin-bottom:3px}
.card .cs{font-size:12.5px;color:var(--muted);font-family:var(--mono)}
.rows{background:var(--paper);border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-top:16px}
.row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row .rn{font-weight:600} .acts{display:flex;gap:8px;align-items:center}
.btn{background:var(--blue);color:#fff;border:0;border-radius:8px;padding:9px 15px;
  font:inherit;font-weight:600;font-size:14px;cursor:pointer;display:inline-block}
.btn:hover{background:#2E6FAA;text-decoration:none;color:#fff}
.ghost{background:transparent;border:1px solid var(--line);border-radius:8px;padding:8px 13px;
  font:inherit;font-size:14px;color:var(--ink);cursor:pointer;display:inline-block}
.ghost:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.bar .ghost{border-color:rgba(255,255,255,.28);color:rgba(255,255,255,.8);background:transparent}
.bar .ghost:hover{color:#fff;border-color:#fff}
.inline{display:inline}
.form{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:20px;margin-top:16px}
main.narrow .form{margin-top:20px}
label{display:block;margin-bottom:13px}
label span{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:5px}
input{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;background:#fff}
input:focus{outline:2px solid rgba(61,135,203,.35);border-color:var(--blue)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.actions{margin-top:6px}
.ok{background:#E8F5EE;border:1px solid #BFE3CE;color:#1C6B3E;padding:11px 14px;border-radius:9px;margin-top:14px;font-size:14px}
.bad{background:#FDECEC;border:1px solid #F3C2C2;color:#98211F;padding:11px 14px;border-radius:9px;margin-top:14px;font-size:14px}
.key{background:var(--paper-2);border:1px solid var(--line);border-radius:9px;padding:13px;margin-bottom:13px}
.key code{display:block;font-family:var(--mono);font-size:16px;letter-spacing:.1em;margin:7px 0;word-break:break-all}
.back{font-size:14px} .ver{margin-top:34px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.err{background:var(--navy);color:#fff;padding:13px;border-radius:9px;font-family:var(--mono);
  font-size:12.5px;white-space:pre-wrap;margin-top:12px}
@media(max-width:640px){.two{grid-template-columns:1fr}.head{flex-direction:column}}
textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;
  font-family:var(--mono);font-size:13px;line-height:1.55;background:#fff;resize:vertical}
textarea:focus{outline:2px solid rgba(61,135,203,.35);border-color:var(--blue)}
code{font-family:var(--mono);font-size:12.5px;background:var(--paper-2);
  border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.actions{display:flex;gap:10px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 16px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;
  font-size:13.5px;color:var(--ink)}
.chip:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.preview{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--navy);
  line-height:0;margin-bottom:6px}
.preview img{width:100%;height:auto;display:block}
select{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;
  font:inherit;background:#fff}
select:focus{outline:2px solid rgba(61,135,203,.35);border-color:var(--blue)}
.ghost.danger:hover{border-color:#C0392B;color:#C0392B}
.link{font-family:var(--mono);font-size:12.5px;background:#fff;border:1px solid #BFE3CE;
  border-radius:7px;padding:9px 11px;margin:9px 0;word-break:break-all;color:var(--ink)}
.swatch{height:6px;border-radius:4px;margin-bottom:9px}
.thumb{height:34px;width:auto;max-width:110px;object-fit:contain;background:var(--navy);
  border-radius:6px;padding:4px}
label .col{padding-right:38px}
label{position:relative}
.sw{position:absolute;right:9px;bottom:9px;width:20px;height:20px;border-radius:5px;
  border:1px solid var(--line);display:block}
input[type=file]{padding:7px 9px;font-size:13.5px}
.chip.sm{font-size:12.5px;padding:5px 11px}
.hint{display:block;font-weight:400;margin:-3px 0 5px}
.hint code{font-size:11.5px;padding:0 4px}
.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
.cat{font-size:13px;font-weight:700;margin:16px 0 7px}
.fmeta{display:flex;align-items:center;gap:12px;min-width:0}
.ext{display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;
  border-radius:6px;background:var(--navy);color:#fff;font-family:var(--mono);font-size:9.5px;
  text-transform:uppercase;letter-spacing:.06em;flex:none}
@media(max-width:640px){.three{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}
.check input{width:auto;margin-top:3px}
.check span{font-weight:500;color:var(--ink);font-size:14px;margin:0}
.or{display:flex;align-items:center;gap:12px;margin:20px 0 14px;color:var(--muted);font-size:13px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.mid{text-align:center}.btn.wide{display:block;text-align:center}
