:root{
  --glass:rgba(88,100,168,.42); --glass-2:rgba(255,255,255,.10); --line:rgba(255,255,255,.22);
  --ink:#fff; --muted:rgba(255,255,255,.74); --teal:#36b39b; --green:#4cc46a; --lime:#c6f03c;
  --orange:#ff6a1f; --red:#ff6b6b; --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{background:#2b3d7a}
body{font-family:var(--font);color:var(--ink);min-height:100svh;line-height:1.45;-webkit-font-smoothing:antialiased}
.bg{position:fixed;inset:-24px;z-index:-2;background:url("/img/bg.webp") center/cover;filter:blur(7px) saturate(1.1)}
.bg::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(40,60,140,.45),rgba(20,50,60,.35))}
:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
[hidden]{display:none!important}
.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--line);box-shadow:0 20px 50px rgba(8,14,40,.35),inset 0 1px 0 rgba(255,255,255,.18)}

/* logo */
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:#fff;font-weight:800;font-size:22px;letter-spacing:.2px}
.mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#ff8a3d,#ff4801);box-shadow:0 8px 18px rgba(255,72,1,.4),inset 0 1px 0 rgba(255,255,255,.5)}
.mark svg{width:26px;height:26px}

/* buttons + inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 22px;border:0;border-radius:16px;cursor:pointer;font:700 16px var(--font);color:#fff;text-decoration:none;
  background:var(--glass-2);box-shadow:inset 0 0 0 1px var(--line);transition:transform .1s,filter .15s,background .15s}
.btn:hover{filter:brightness(1.12)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn.primary{background:linear-gradient(135deg,var(--teal),var(--green));box-shadow:0 10px 24px rgba(54,179,155,.4),inset 0 1px 0 rgba(255,255,255,.35);color:#06261b}
.btn.danger{background:rgba(255,107,107,.18);box-shadow:inset 0 0 0 1px rgba(255,107,107,.5);color:#ffd9d9}
.btn.sm{height:38px;padding:0 14px;font-size:14px;border-radius:12px}
.btn[disabled]{opacity:.6;cursor:wait}
label{display:grid;gap:7px;font-weight:600;font-size:14px;color:var(--muted)}
label small{font-weight:500;opacity:.8}
input{height:52px;width:100%;padding:0 16px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.12);color:#fff;font:500 16px var(--font);transition:border-color .15s,background .15s}
input::placeholder{color:rgba(255,255,255,.45)}
input:focus{outline:none;border-color:var(--lime);background:rgba(255,255,255,.18)}
.pw{position:relative}.pw input{padding-right:78px}
.eye{position:absolute;right:8px;top:8px;height:36px;padding:0 12px;border:0;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font:700 13px var(--font);cursor:pointer}
.msg{padding:12px 14px;border-radius:14px;font-size:14px;font-weight:600;background:rgba(255,107,107,.2);border:1px solid rgba(255,107,107,.5);color:#ffe0e0}
.msg.ok{background:rgba(76,196,106,.2);border-color:rgba(76,196,106,.55);color:#dcffe5}

/* auth page */
.auth-wrap{min-height:100svh;display:grid;place-items:center;padding:24px}
.auth-card{width:min(440px,100%);padding:34px 30px 26px;border-radius:30px;display:grid;gap:18px}
.auth-card h1{font-size:32px;line-height:1.1;margin-top:6px}
.sub{color:var(--muted);margin-top:-8px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:16px;background:rgba(10,18,50,.35)}
.seg button{height:42px;border:0;border-radius:12px;background:transparent;color:var(--muted);font:700 15px var(--font);cursor:pointer;transition:background .2s,color .2s}
.seg button.on{background:linear-gradient(135deg,var(--teal),var(--green));color:#06261b}
form{display:grid;gap:14px}
.back{text-align:center;color:var(--muted);text-decoration:none;font-weight:600;font-size:14px}
.back:hover{color:#fff}

/* app shell */
.shell{display:grid;grid-template-columns:270px 1fr;min-height:100svh}
.side{position:sticky;top:0;height:100svh;padding:22px 16px;display:flex;flex-direction:column;gap:6px;border-radius:0 28px 28px 0;border-left:0}
.side .logo{padding:2px 8px 18px;margin-bottom:10px;border-bottom:1px solid rgba(0,0,0,.35)}
.nav-i{display:flex;align-items:center;gap:16px;padding:15px 18px;border-radius:18px;color:rgba(255,255,255,.85);text-decoration:none;font-weight:600;font-size:18px;border:0;background:none;cursor:pointer;width:100%;text-align:left;font-family:var(--font);transition:background .15s}
.nav-i svg{width:26px;height:26px;flex:none}
.nav-i:hover{background:rgba(255,255,255,.12)}
.nav-i.on{background:linear-gradient(135deg,rgba(54,179,155,.95),rgba(63,163,140,.85));color:#fff;box-shadow:inset 5px 0 0 var(--green)}
.side .grow{flex:1}
.main{padding:34px clamp(18px,4vw,48px) 48px;max-width:1100px;width:100%}
.main h1{font-size:clamp(28px,4vw,40px);line-height:1.1}
.main .sub{margin:6px 0 26px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.card{padding:22px;border-radius:24px;position:relative;overflow:hidden}
.card .k{color:var(--muted);font-weight:600;font-size:15px}
.card .v{font-size:26px;font-weight:700;margin-top:4px;word-break:break-word}
.card .v small{font-size:15px;font-weight:600;color:var(--muted)}
.card .ic{position:absolute;right:-8px;bottom:-10px;width:96px;height:96px;opacity:.14}
.card h2{font-size:22px;margin-bottom:6px}
.card p{color:var(--muted)}
.wide{margin-top:18px}
.row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:12px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14)}
.pill.ok{background:rgba(76,196,106,.28);color:#dcffe5}
.pill.warn{background:rgba(255,179,71,.28);color:#fff0d2}
.steps{list-style:none;padding:0;display:grid;gap:12px;margin-top:14px;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center}
.steps li::before{content:counter(s);width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,var(--teal),var(--green));color:#06261b;font-weight:800}
.steps code,.mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;background:rgba(10,18,50,.4);padding:2px 8px;border-radius:8px}
.code{margin-top:16px;padding:18px;border-radius:20px;background:rgba(10,18,50,.4);border:1px solid var(--line);text-align:center}
.code b{display:block;font:800 clamp(34px,8vw,52px)/1.1 ui-monospace,"SF Mono",Menlo,Consolas,monospace;letter-spacing:.12em;color:var(--lime)}
.code span{color:var(--muted);font-weight:600}
.form{display:grid;gap:14px;max-width:420px;margin-top:14px}
.toast{position:fixed;left:50%;bottom:26px;translate:-50% 30px;opacity:0;z-index:50;padding:12px 20px;border-radius:14px;background:linear-gradient(135deg,var(--teal),var(--green));color:#06261b;font-weight:800;transition:.25s;pointer-events:none}
.toast.show{opacity:1;translate:-50% 0}
.toast.err{background:linear-gradient(135deg,#ff8a8a,#ff5d5d);color:#3a0707}

@media(max-width:820px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;inset:auto 10px 10px 10px;height:auto;z-index:20;flex-direction:row;padding:8px;border-radius:24px;gap:4px;border:1px solid var(--line)}
  .side .logo,.side .grow,.side .user{display:none}
  .nav-i{flex-direction:column;gap:4px;padding:9px 4px;font-size:12px;text-align:center;border-radius:16px;flex:1;justify-content:center}
  .nav-i svg{width:24px;height:24px}
  .nav-i.on{box-shadow:none}
  .main{padding-bottom:110px}
  .top{display:flex!important}
}
.top{display:none;align-items:center;justify-content:space-between;margin-bottom:22px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
