/* ============ RODLAB admin ============ */
:root{--blue:#2f7bff;--blue2:#57a0ff;--bg:#05070f;--panel:#0b1122;--line:rgba(120,160,255,.16);--text:#eaf0ff;--muted:#93a2c6}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
a{color:inherit;text-decoration:none}

.brand{display:flex;align-items:center;gap:12px}
.brand__g{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;font-family:'Sora';font-weight:800;
  color:#fff;background:linear-gradient(145deg,var(--blue),#1a49b8);box-shadow:0 0 20px rgba(47,123,255,.5)}
.brand b{font-family:'Sora';letter-spacing:.06em}
.brand small{display:block;color:var(--muted);font-size:.75rem;font-weight:400}

.btn{background:linear-gradient(145deg,var(--blue),#1b4fc4);color:#fff;border:0;border-radius:10px;
  padding:12px 20px;font-weight:600;font-size:.95rem;cursor:pointer;transition:.2s}
.btn:hover{filter:brightness(1.1)}
.btn:disabled{opacity:.6;cursor:default}
.btn--sm{padding:9px 15px;font-size:.86rem}
.btn--ghost{background:transparent;border:1px solid var(--line);color:var(--text)}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:20px;
  background:radial-gradient(circle at 50% 30%,#0a1024,#05070f 70%)}
.login__box{width:min(380px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;
  padding:34px;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 70px rgba(0,0,0,.5)}
.login__box .brand{margin-bottom:6px}
.login input{background:#070c18;border:1px solid var(--line);border-radius:10px;padding:13px 15px;color:var(--text);font-size:1rem}
.login input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,123,255,.2)}
.login .err{color:#ff6b6b;font-size:.88rem}
.login .back{color:var(--muted);font-size:.85rem;text-align:center;margin-top:4px}

/* top bar */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 22px;background:rgba(8,11,22,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top__actions{display:flex;gap:10px;flex-wrap:wrap}

/* layout */
.wrap{display:grid;grid-template-columns:230px 1fr;gap:0;align-items:start}
.side{position:sticky;top:64px;max-height:calc(100vh - 64px);overflow:auto;padding:18px 12px;
  border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.side a{padding:9px 12px;border-radius:9px;color:var(--muted);font-size:.88rem;transition:.15s}
.side a:hover{background:rgba(47,123,255,.1);color:var(--text)}
.main{padding:26px 30px;max-width:900px}

.grp{margin-bottom:40px;scroll-margin-top:76px}
.grp h2{font-family:'Sora';font-size:1.25rem;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.fld{display:flex;flex-direction:column;gap:6px}
.fld>span{font-size:.82rem;color:var(--muted);font-weight:500}
.fld input,.fld textarea{background:#070c18;border:1px solid var(--line);border-radius:9px;padding:11px 13px;
  color:var(--text);font-size:.92rem;font-family:inherit;width:100%;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,123,255,.18)}
.fld--img{grid-column:1/-1}
.img-row{display:flex;gap:14px;align-items:stretch}
.img-prev{width:110px;min-height:80px;border-radius:10px;background:#070c18 center/cover no-repeat;
  border:1px solid var(--line);flex:0 0 auto}
.img-ctrl{flex:1;display:flex;flex-direction:column;gap:8px;justify-content:center}

/* toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  background:#0e1630;border:1px solid var(--line);color:var(--text);padding:13px 22px;border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.5);transition:.3s;z-index:50;font-weight:500}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:820px){
  .wrap{grid-template-columns:1fr}
  .side{display:none}
  .main{padding:20px 16px}
  .grid{grid-template-columns:1fr}
}
