/* RustWeAreOk — Bold Editorial design system
   Magazine-grade landing + control panel. Huge expressive display type,
   asymmetric grids, oversized index numbers, hairline rules, strong contrast.
   Palette kept: azure (#8da8ff) on deep navy. One accent, locked page-wide.
   Type: Unbounded (display) / Onest (body) / JetBrains Mono (data & numbers).
   Class names are preserved 1:1 from the previous build so the panel SPA keeps
   rendering; everything below is a visual re-skin + new editorial primitives. */

/* ============================ TOKENS ============================ */
:root{
  --bg-base:#06090f; --bg-elevated:#0a1020; --bg-deep:#04060c; --bg-rule:#0e1626;
  --card-bg:rgba(255,255,255,.022); --card-bg-2:rgba(255,255,255,.04);
  --card-border:rgba(141,168,255,.14); --card-border-hover:rgba(141,168,255,.40);
  --accent:#8da8ff; --accent-bright:#c2d0ff; --accent-deep:#5f79d6;
  --accent-soft:rgba(141,168,255,.10); --accent-line:rgba(141,168,255,.30);
  --accent-ink:#070b16;
  --text:#f2f4fb; --text-muted:#b3bcd6; --text-dim:#6d7793;
  --green:#5fd39a; --amber:#e8c85b; --red:#ff7a7a;
  /* editorial = crisp corners; pill reserved for controls */
  --radius-sm:6px; --radius:9px; --radius-lg:13px; --radius-pill:999px;
  --shadow-card:0 30px 70px -34px rgba(0,0,0,.9);
  --shadow-accent:0 16px 40px -16px rgba(141,168,255,.6);
  --font-display:'Unbounded','Onest',system-ui,sans-serif;
  --font-sans:'Onest','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --sidebar-w:256px;
  --maxw:1240px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-sans);background:var(--bg-base);color:var(--text);
  line-height:1.55;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,.brand{font-family:var(--font-display);letter-spacing:-.03em;font-weight:700;line-height:1.02;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
.hidden{display:none !important;}

/* Inline SVG icons (icons.js). */
.icon{width:1em;height:1em;flex:none;display:inline-block;vertical-align:-.14em;stroke-width:2;overflow:visible;}
.btn .icon,.seg .icon,.nav-item .icon{vertical-align:-.12em;}
.card-head h2 .icon,.section-title .icon{color:var(--accent-bright);stroke-width:1.9;}

/* Background: deep navy + fine engineered grid, faded. No big purple blobs. */
.bg-glow{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.glow{position:absolute;border-radius:50%;filter:blur(150px);opacity:.32;}
.glow--a{width:46vw;height:46vw;top:-16vw;left:-6vw;background:radial-gradient(circle,rgba(141,168,255,.5),transparent 64%);}
.glow--b{width:40vw;height:40vw;bottom:-18vw;right:-10vw;background:radial-gradient(circle,rgba(95,121,214,.42),transparent 64%);}
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(141,168,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(141,168,255,.045) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 30%,transparent 80%);
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 30%,transparent 80%);}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(95,211,154,.5);}50%{box-shadow:0 0 0 6px rgba(95,211,154,0);}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes slideIn{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}

::selection{background:var(--accent);color:var(--accent-ink);}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:rgba(141,168,255,.18);border-radius:0;}
::-webkit-scrollbar-thumb:hover{background:rgba(141,168,255,.34);}

.mono{font-family:var(--font-mono);font-size:.82em;color:var(--text-muted);}

/* ============================ BUTTONS ============================ */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-mono);font-weight:600;font-size:.82rem;letter-spacing:.02em;
  padding:.78rem 1.4rem;border-radius:var(--radius-pill);border:1px solid var(--accent-line);
  cursor:pointer;user-select:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;color:var(--text);
  background:transparent;transition:transform .18s var(--ease),box-shadow .18s,background .18s,border-color .18s,color .18s;}
.btn:hover{border-color:var(--accent-bright);background:var(--accent-soft);transform:translateY(-2px);}
.btn:active{transform:translateY(0) scale(.985);}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;box-shadow:var(--shadow-accent);}
.btn.primary:hover{background:var(--accent-bright);transform:translateY(-2px);box-shadow:0 22px 48px -16px rgba(141,168,255,.75);}
.btn.danger{background:transparent;border-color:rgba(255,122,122,.5);color:#ffb3b3;}
.btn.danger:hover{background:rgba(255,122,122,.16);border-color:var(--red);color:#fff;}
.btn.ghost{border-color:var(--card-border);}
.btn.ghost:hover{border-color:var(--card-border-hover);background:var(--card-bg-2);}
.btn.sm{padding:.55rem 1rem;font-size:.74rem;}
.btn.full{width:100%;}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;}
.btn-row{display:flex;gap:.6rem;flex-wrap:wrap;}
.nav-item,.seg button,.modal-close,[data-route],[role="button"]{cursor:pointer;}
.nav-item:focus-visible,.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ============================ LOGIN ============================ */
.login-screen{position:relative;z-index:1;min-height:100dvh;display:grid;place-items:center;padding:1.5rem;}
.login-card{width:100%;max-width:410px;background:linear-gradient(180deg,var(--card-bg-2),var(--card-bg));border:1px solid var(--card-border);
  border-radius:var(--radius-lg);padding:2.6rem 2.3rem;backdrop-filter:blur(14px);box-shadow:var(--shadow-card);animation:modalIn .5s var(--ease);}
.login-logo{display:flex;align-items:center;gap:.7rem;font-family:var(--font-display);font-weight:800;font-size:1.3rem;margin-bottom:.4rem;}
.login-logo .mark,.brand .mark,.login-logo svg,.brand svg{width:34px;height:34px;flex:none;}
.login-sub{color:var(--text-dim);font-family:var(--font-mono);font-size:.78rem;margin-bottom:1.8rem;}
.login-back{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.76rem;color:var(--text-dim);margin-bottom:1.3rem;transition:color .2s;}
.login-back:hover{color:var(--accent-bright);}

/* ============================ PANEL LAYOUT ============================ */
.app{position:relative;z-index:1;display:flex;min-height:100dvh;}
.sidebar{width:var(--sidebar-w);flex-shrink:0;background:rgba(4,6,12,.78);border-right:1px solid var(--card-border);
  padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.2rem;position:sticky;top:0;height:100dvh;backdrop-filter:blur(16px) saturate(140%);z-index:40;}
.brand{display:flex;align-items:center;gap:.6rem;padding:.2rem .6rem 1.1rem;margin-bottom:.5rem;font-weight:800;font-size:1.05rem;border-bottom:1px solid var(--card-border);}
.brand b{color:var(--accent);}
.nav-section{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.22em;color:var(--text-dim);padding:1.1rem .8rem .4rem;display:flex;align-items:center;gap:.55rem;}
.nav-section::after{content:'';flex:1;height:1px;background:var(--card-border);}
.nav-item{position:relative;display:flex;align-items:center;gap:.7rem;padding:.58rem .8rem;margin:1px 0;border-radius:var(--radius-sm);color:var(--text-muted);
  font-size:.9rem;font-weight:500;transition:color .2s,background .2s;}
.nav-item .ico{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:var(--radius-sm);font-size:1rem;
  background:rgba(141,168,255,.05);border:1px solid transparent;color:var(--text-muted);transition:all .2s var(--ease);}
.nav-item:hover{color:var(--text);background:var(--card-bg-2);}
.nav-item:hover .ico{color:var(--accent-bright);border-color:var(--card-border);}
.nav-item.active{color:#fff;background:linear-gradient(90deg,var(--accent-soft),transparent 80%);}
.nav-item.active::before{content:'';position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--accent);}
.nav-item.active .ico{background:var(--accent);border-color:transparent;color:var(--accent-ink);}
.sidebar-foot{margin-top:auto;padding:.8rem .8rem 0;border-top:1px solid var(--card-border);font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.8rem;border-bottom:1px solid var(--card-border);
  background:rgba(4,6,12,.72);backdrop-filter:blur(16px) saturate(140%);position:sticky;top:0;z-index:30;}
.topbar h1{font-size:1.1rem;font-weight:700;}
.topbar .spacer{flex:1;}
.hamburger{display:none;background:var(--card-bg);border:1px solid var(--card-border);color:var(--text);width:40px;height:40px;border-radius:var(--radius-sm);font-size:1.1rem;}

.status-pills{display:flex;gap:.5rem;flex-wrap:wrap;}
.pill{display:inline-flex;align-items:center;gap:.45rem;padding:.36rem .75rem;border-radius:var(--radius-pill);
  font-family:var(--font-mono);font-size:.72rem;font-weight:600;background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-muted);}
.dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);display:inline-block;}
.dot.on{background:var(--green);animation:pulse 2.4s infinite;}
.dot.off{background:var(--red);}
.dot.warn{background:var(--amber);}

.content{padding:2rem 2.2rem;flex:1;width:100%;max-width:none;}
@media (min-width:1700px){.content{padding:2.4rem 3rem;}}

/* ============================ CARDS / PANEL DATA ============================ */
.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);transition:border-color .3s,box-shadow .3s,transform .3s var(--ease);}
.card.pad{padding:1.5rem;}
.card-head{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;}
.card-head h2{font-size:1.02rem;font-weight:700;letter-spacing:-.02em;}
.card-head .sub{color:var(--text-dim);font-family:var(--font-mono);font-size:.76rem;}

.grid{display:grid;gap:1.3rem;}
.grid.cols-4{grid-template-columns:repeat(4,1fr);}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}

.stat-card{position:relative;overflow:hidden;padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:1rem;}
.stat-card::before{content:'';position:absolute;left:0;top:0;width:34px;height:2px;background:var(--accent);}
.stat-card::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s var(--ease);
  background:radial-gradient(340px circle at var(--mx,75%) var(--my,0%),rgba(141,168,255,.14),transparent 60%);}
.stat-card:hover::after{opacity:1;}
.stat-card:hover{transform:translateY(-4px);border-color:var(--card-border-hover);}
.stat-head{display:flex;align-items:center;gap:.9rem;}
.stat-icon{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:var(--radius);font-size:1.3rem;
  background:var(--accent-soft);border:1px solid var(--card-border);color:var(--accent-bright);}
.stat-card .label{color:var(--text-dim);font-family:var(--font-mono);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;}
.stat-card .value{font-family:var(--font-display);font-size:1.85rem;font-weight:800;letter-spacing:-.04em;line-height:1;margin-top:.25rem;}
.stat-card .value small{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);font-weight:500;}
.stat-card .trend{font-family:var(--font-mono);font-size:.74rem;color:var(--text-muted);display:flex;align-items:center;gap:.45rem;padding-top:.9rem;margin-top:auto;border-top:1px solid var(--card-border);}

.section-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin:1.9rem 0 1rem;display:flex;align-items:center;gap:.6rem;}
.section-title .sub{font-family:var(--font-mono);font-weight:500;color:var(--text-dim);font-size:.78rem;}

/* dashboard action bar + bento */
.action-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1.4rem;padding:1rem 1.3rem;border-radius:var(--radius-lg);
  background:var(--card-bg);border:1px solid var(--card-border);border-left:3px solid var(--accent);}
.action-bar .ab-title{font-family:var(--font-display);font-weight:700;font-size:1.02rem;margin-right:auto;display:flex;align-items:center;gap:.6rem;}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:1.2rem;}
.bento .span-2{grid-column:span 2;}
.bento .row-2{grid-row:span 2;}
.hero-stat{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:1.2rem;padding:1.8rem;}
.hero-stat::before{content:'';position:absolute;left:0;top:0;width:48px;height:3px;background:var(--accent);}
.hero-stat .hs-top{display:flex;align-items:center;gap:1.1rem;}
.hero-stat .hs-icon{width:56px;height:56px;flex:none;display:grid;place-items:center;border-radius:var(--radius);font-size:1.6rem;background:var(--accent-soft);border:1px solid var(--card-border);color:var(--accent-bright);}
.hero-stat .hs-big{font-family:var(--font-display);font-size:2.7rem;font-weight:800;line-height:1;letter-spacing:-.04em;}
.hero-stat .hs-rows{display:grid;gap:.5rem;margin-top:auto;}
.hero-stat .hs-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .9rem;border-radius:var(--radius-sm);background:var(--card-bg);border:1px solid var(--card-border);font-size:.85rem;color:var(--text-muted);}
.hero-stat .hs-row b{color:var(--text);font-weight:600;font-family:var(--font-mono);font-size:.8rem;}
.hero-stat .hs-row span{display:flex;align-items:center;gap:.5rem;}
@media (max-width:1080px){.bento{grid-template-columns:repeat(2,1fr);}.bento .row-2{grid-row:span 1;}}
@media (max-width:680px){.bento{grid-template-columns:1fr;}.bento .span-2,.bento .row-2{grid-column:auto;grid-row:auto;}}

/* ============================ TOGGLES ============================ */
.switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.switch .slider{position:absolute;inset:0;cursor:pointer;background:rgba(141,168,255,.16);border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);transition:.25s var(--ease);}
.switch .slider::before{content:'';position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.25s var(--ease);box-shadow:0 1px 4px rgba(0,0,0,.4);}
.switch input:checked + .slider{background:var(--accent);}
.switch input:checked + .slider::before{transform:translateX(22px);}
.switch input:disabled + .slider{opacity:.4;cursor:not-allowed;}
.toggle-row{display:flex;align-items:center;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--card-border);}
.toggle-row:last-child{border-bottom:none;}
.toggle-row .tr-main{flex:1;min-width:0;}
.toggle-row .tr-title{font-weight:600;font-size:.92rem;display:flex;align-items:center;gap:.5rem;}
.toggle-row .tr-sub{color:var(--text-dim);font-size:.78rem;margin-top:.15rem;}
.toggle-row .tr-controls{display:flex;align-items:center;gap:1.1rem;}
.chan-toggle{display:flex;flex-direction:column;align-items:center;gap:.3rem;}
.chan-toggle .lbl{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);}

/* ============================ TABLES ============================ */
.table-wrap{overflow-x:auto;border-radius:var(--radius);}
table{width:100%;border-collapse:collapse;font-size:.86rem;}
thead th{text-align:left;padding:.8rem 1rem;color:var(--text-dim);font-family:var(--font-mono);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--card-border);}
tbody td{padding:.85rem 1rem;border-bottom:1px solid var(--card-border);vertical-align:middle;}
tbody tr{transition:background .15s;}
tbody tr:hover{background:var(--card-bg-2);}
tbody tr:last-child td{border-bottom:none;}
.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:.68rem;font-weight:600;background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-muted);}
.tag.green{background:rgba(95,211,154,.16);color:var(--green);border-color:transparent;}
.tag.red{background:rgba(255,122,122,.16);color:var(--red);border-color:transparent;}
.tag.rust{background:var(--accent-soft);color:var(--accent-bright);border-color:var(--accent-line);}
.tag.navy{background:rgba(95,121,214,.18);color:#b3c5ff;border-color:transparent;}

/* ============================ FORMS ============================ */
.field{margin-bottom:1rem;}
.field label{display:block;font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.45rem;}
.input,textarea.input,select.input{width:100%;padding:.72rem .9rem;border-radius:var(--radius-sm);background:var(--bg-deep);border:1px solid var(--card-border);color:var(--text);font-size:.88rem;font-family:inherit;transition:border-color .18s;}
.input:focus,textarea.input:focus{outline:none;border-color:var(--accent);}
.input::placeholder{color:var(--text-dim);}
textarea.input{resize:vertical;min-height:120px;font-family:var(--font-mono);font-size:.82rem;line-height:1.55;}
.search-input{position:relative;}
.search-input input{padding-left:2.2rem;}
.search-input .ico{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--text-dim);}
.seg{display:inline-flex;gap:.3rem;padding:.3rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-pill);flex-wrap:wrap;}
.seg button{border:none;background:transparent;color:var(--text-muted);font-family:var(--font-mono);font-weight:600;font-size:.78rem;padding:.5rem 1.1rem;border-radius:var(--radius-pill);transition:color .2s,background .2s;}
.seg button:hover{color:var(--text);}
.seg button.active{color:var(--accent-ink);background:var(--accent);}

/* ============================ MODAL / TOAST / MISC ============================ */
.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1.2rem;background:rgba(4,6,12,.74);backdrop-filter:blur(8px);animation:fadeIn .25s var(--ease);}
.modal{position:relative;width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--bg-elevated),var(--bg-deep));border:1px solid var(--accent-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:modalIn .35s var(--ease);}
.modal.wide{max-width:820px;}
.modal-head{padding:1.3rem 1.5rem;border-bottom:1px solid var(--card-border);display:flex;align-items:center;gap:.7rem;}
.modal-head h3{font-size:1.05rem;font-weight:700;flex:1;}
.modal-body{padding:1.4rem 1.5rem;overflow-y:auto;}
.modal-foot{padding:1.1rem 1.5rem;border-top:1px solid var(--card-border);display:flex;justify-content:flex-end;gap:.6rem;}
.modal-close{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-muted);font-size:1rem;display:grid;place-items:center;transition:all .25s var(--ease);}
.modal-close:hover{color:#fff;border-color:var(--accent);background:var(--accent-soft);}
.toast-wrap{position:fixed;bottom:1.4rem;right:1.4rem;display:flex;flex-direction:column;gap:.6rem;z-index:200;}
.toast{min-width:260px;max-width:380px;padding:.85rem 1.1rem;border-radius:var(--radius);background:linear-gradient(180deg,var(--bg-elevated),var(--bg-deep));border:1px solid var(--card-border);border-left:3px solid var(--accent);box-shadow:var(--shadow-card);font-size:.85rem;display:flex;align-items:center;gap:.6rem;animation:slideIn .25s var(--ease);}
.toast.success{border-left-color:var(--green);}
.toast.error{border-left-color:var(--red);}
.toast.warn{border-left-color:var(--amber);}
.toast .t-ico{font-size:1.05rem;color:var(--accent-bright);}
.banner{display:flex;align-items:center;gap:.8rem;padding:.85rem 1.1rem;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent-line);border-left:3px solid var(--accent);color:var(--accent-bright);font-size:.85rem;font-weight:500;margin-bottom:1.2rem;}
.banner.warn{background:rgba(232,200,91,.1);border-color:rgba(232,200,91,.3);border-left-color:var(--amber);color:var(--amber);}
.empty{text-align:center;color:var(--text-dim);padding:2.5rem 1rem;font-size:.88rem;}
.empty .big{font-size:1.8rem;display:block;margin-bottom:.6rem;opacity:.6;}
.empty .big .icon{width:1.8rem;height:1.8rem;}
.log-line{display:flex;gap:.8rem;padding:.5rem .7rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.78rem;align-items:flex-start;}
.log-line:hover{background:var(--card-bg-2);}
.log-line .lvl{flex-shrink:0;font-weight:700;width:60px;text-transform:uppercase;font-size:.64rem;padding-top:.1rem;}
.log-line .lvl.info{color:var(--accent-bright);}
.log-line .lvl.error{color:var(--red);}
.log-line .lvl.warning,.log-line .lvl.warn{color:var(--amber);}
.log-line .ts{color:var(--text-dim);flex-shrink:0;width:130px;}
.log-line .msg{color:var(--text-muted);word-break:break-word;}
.spinner{width:22px;height:22px;border:2px solid var(--card-border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;}
.loading{display:grid;place-items:center;padding:3rem;}
.fade-in{animation:modalIn .35s var(--ease);}

@media (max-width:1080px){.grid.cols-4{grid-template-columns:repeat(2,1fr);}.grid.cols-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:860px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .28s var(--ease);box-shadow:0 0 60px rgba(0,0,0,.6);}
  .sidebar.open{transform:translateX(0);}
  .hamburger{display:grid;place-items:center;}
  .grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr;}
  .content{padding:1.2rem;}
  .topbar{padding:.9rem 1.1rem;}
  .status-pills .pill .pill-text{display:none;}
  .toggle-row{flex-wrap:wrap;}
}
@media (prefers-reduced-motion:reduce){.glow{animation:none;}}

/* ============================================================================
   ============================ EDITORIAL LANDING ============================
   Magazine composition: oversized index numbers, hairline section rules,
   asymmetric hero, feature directory, numbered process, console mock.
   ============================================================================ */
.lp{position:relative;z-index:1;}
.lp-container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.4rem);}
.lp-sec{position:relative;border-top:1px solid var(--card-border);padding-block:clamp(4rem,9vw,7rem);}
.lp-sec--plain{border-top:none;}

/* header / nav */
.lp-header{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s,backdrop-filter .3s;}
.lp-header.is-stuck{background:rgba(6,9,15,.78);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--card-border);}
.lp-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:70px;}
.lp-brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:800;font-size:1.05rem;letter-spacing:-.03em;}
.lp-brand svg{width:30px;height:30px;}
.lp-brand b{color:var(--accent);}
.lp-nav{display:flex;align-items:center;gap:.5rem;}
.lp-nav__links{display:flex;align-items:center;gap:.2rem;}
.lp-nav__links a{font-family:var(--font-mono);color:var(--text-muted);font-size:.78rem;font-weight:500;padding:.5rem .8rem;border-radius:var(--radius-sm);transition:color .2s,background .2s;}
.lp-nav__links a:hover{color:var(--text);background:var(--card-bg-2);}
.lp-nav__toggle{display:none;background:none;border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:.45rem;color:var(--text);}
.lp-nav__toggle svg{width:22px;height:22px;}
.lp-mobile{position:fixed;inset:70px 0 auto 0;z-index:49;background:rgba(6,9,15,.98);backdrop-filter:blur(18px);border-bottom:1px solid var(--card-border);padding:1rem clamp(1.1rem,4vw,2.4rem) 1.5rem;display:none;flex-direction:column;gap:.2rem;}
.lp-mobile.is-open{display:flex;}
.lp-mobile a{font-family:var(--font-mono);padding:.85rem .5rem;color:var(--text-muted);font-weight:500;border-bottom:1px solid var(--card-border);}
.lp-mobile a:last-of-type{border-bottom:none;}
.lp-mobile .btn{margin-top:.8rem;}

/* shared editorial section header: oversized number + headline */
.lp-head{display:grid;grid-template-columns:auto 1fr;gap:clamp(1rem,3vw,2.4rem);align-items:start;margin-bottom:clamp(2.2rem,5vw,3.4rem);}
.lp-head__num{font-family:var(--font-mono);font-weight:600;font-size:.8rem;color:var(--accent);letter-spacing:.1em;padding-top:.7rem;white-space:nowrap;}
.lp-head__main{max-width:760px;}
.lp-kicker{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:1rem;}
.lp-h2{font-size:clamp(2rem,5.2vw,3.6rem);line-height:1.0;letter-spacing:-.035em;font-weight:800;}
.lp-h2 em,.lp-h2 .lp-gradient{font-style:normal;color:var(--accent);background:none;-webkit-text-fill-color:currentColor;}
.lp-head__main > p{color:var(--text-muted);font-size:1.05rem;margin-top:1.1rem;max-width:62ch;}

/* HERO */
.lp-hero{padding-top:clamp(2.5rem,6vw,4rem);padding-bottom:clamp(3.5rem,7vw,5.5rem);border-top:none;}
.lp-hero__grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.lp-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-bright);padding:.4rem .85rem;border:1px solid var(--accent-line);border-radius:var(--radius-pill);background:var(--accent-soft);}
.lp-hero h1{font-size:clamp(2.7rem,7.5vw,5.6rem);line-height:.96;font-weight:800;letter-spacing:-.045em;margin:1.4rem 0 0;text-transform:uppercase;}
.lp-hero h1 .lp-gradient{display:block;color:var(--accent);-webkit-text-fill-color:currentColor;background:none;}
.lp-hero__sub{font-family:var(--font-display);font-size:clamp(1.05rem,2vw,1.4rem);font-weight:500;margin:1.4rem 0 0;color:var(--text);letter-spacing:-.02em;}
.lp-hero__desc{color:var(--text-muted);font-size:1.05rem;max-width:500px;margin:1.1rem 0 0;}
.lp-hero__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem;}
.lp-hero__trust{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:1.8rem;font-family:var(--font-mono);color:var(--text-dim);font-size:.78rem;}
.lp-hero__trust span{display:flex;align-items:center;gap:.45rem;}
.lp-hero__trust .icon{color:var(--accent);}

/* console mock (real-feel terminal, not a fake app screenshot) */
.lp-mock{background:linear-gradient(180deg,var(--card-bg-2),var(--card-bg));border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;animation:float 7s var(--ease) infinite;}
.lp-mock__bar{display:flex;align-items:center;gap:.5rem;padding:.8rem 1rem;border-bottom:1px solid var(--card-border);background:rgba(141,168,255,.04);}
.lp-mock__dots{display:flex;gap:6px;}
.lp-mock__dots i{width:10px;height:10px;border-radius:50%;background:#2a3450;}
.lp-mock__dots i:nth-child(1){background:#5e79d6;}.lp-mock__dots i:nth-child(2){background:#8da8ff;}.lp-mock__dots i:nth-child(3){background:#5fd39a;}
.lp-mock__title{font-family:var(--font-mono);font-size:.74rem;color:var(--text-dim);}
.lp-mock__body{padding:1.1rem;display:grid;gap:.45rem;font-family:var(--font-mono);font-size:.82rem;}
.lp-mock__cmd{color:var(--accent-bright);font-weight:600;}
.lp-mock__cmd::before{content:'$ ';color:var(--text-dim);}
.lp-mock__line{display:flex;justify-content:space-between;color:var(--text-muted);padding:.18rem .1rem;border-bottom:1px solid rgba(141,168,255,.07);}
.lp-mock__line b{color:var(--text);font-weight:600;}
.lp-mock__alert{margin-top:.5rem;display:flex;align-items:center;gap:.55rem;padding:.6rem .7rem;border-radius:var(--radius-sm);background:rgba(255,122,122,.1);border:1px solid rgba(255,122,122,.3);border-left:3px solid var(--red);color:#ffb3b3;font-size:.78rem;}
.lp-mock__alert .icon{color:var(--red);}

/* WHAT — two editorial columns */
.lp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.5rem);}
.lp-card{position:relative;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:1.8rem;transition:border-color .3s,transform .3s var(--ease);}
.lp-card:hover{border-color:var(--card-border-hover);transform:translateY(-3px);}
.lp-card h3{font-size:1.25rem;font-weight:700;margin:0 0 .8rem;}
.lp-card p{color:var(--text-muted);font-size:.95rem;line-height:1.7;margin:0 0 .7rem;}
.lp-card ul{margin:.5rem 0 0;padding:0;list-style:none;}
.lp-card li{position:relative;padding:.45rem 0 .45rem 1.4rem;color:var(--text-muted);font-size:.92rem;border-bottom:1px solid var(--card-border);}
.lp-card li:last-child{border-bottom:none;}
.lp-card li::before{content:'';position:absolute;left:0;top:1rem;width:7px;height:7px;background:var(--accent);}
.lp-card .mono{font-family:var(--font-mono);color:var(--accent-bright);}

/* FEATURES — editorial directory: big index numbers + title + text */
.lp-features__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,5vw,4rem);}
.lp-feature{position:relative;display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;
  padding:1.6rem 0;border-top:1px solid var(--card-border);transition:padding-left .25s var(--ease);}
.lp-feature:hover{padding-left:.5rem;}
.lp-feature__num{font-family:var(--font-mono);font-size:.82rem;font-weight:600;color:var(--text-dim);padding-top:.35rem;transition:color .25s;}
.lp-feature:hover .lp-feature__num{color:var(--accent);}
.lp-feature__icon{display:none;}
.lp-feature h3{font-size:1.12rem;font-weight:700;margin:0 0 .4rem;display:flex;align-items:center;gap:.5rem;}
.lp-feature h3 .icon{color:var(--accent);font-size:1.05rem;}
.lp-feature p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.6;}

/* HOW — numbered process, big numerals down the left */
.lp-steps{display:grid;gap:0;}
.lp-step{position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(1.2rem,3vw,2.5rem);align-items:start;padding:2rem 0;border-top:1px solid var(--card-border);}
.lp-step__num{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:800;line-height:.8;color:var(--accent);letter-spacing:-.04em;opacity:.85;width:clamp(2.6rem,6vw,4.4rem);}
.lp-step h3{font-size:1.3rem;font-weight:700;margin:0 0 .5rem;}
.lp-step p{margin:0;color:var(--text-muted);font-size:.96rem;line-height:1.65;max-width:60ch;}
.lp-step p .mono,.lp-step .mono{font-family:var(--font-mono);color:var(--accent-bright);font-size:.88em;}
.lp-step__hint{display:inline-flex;align-items:center;gap:.4rem;margin-top:.7rem;font-size:.82rem;color:var(--text-dim);}
.lp-step__hint .icon{color:var(--accent);}

/* COMMANDS — mono reference */
.lp-cmd-label{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-dim);margin:0 0 1rem;display:flex;align-items:center;gap:.6rem;}
.lp-cmd-label::after{content:'';flex:1;height:1px;background:var(--card-border);}
.lp-cmds{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.7rem;}
.lp-cmd{display:flex;flex-direction:column;gap:.3rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:.85rem 1rem;transition:border-color .2s,background .2s,transform .2s var(--ease);}
.lp-cmd:hover{border-color:var(--card-border-hover);background:var(--card-bg-2);transform:translateY(-2px);}
.lp-cmd code{font-family:var(--font-mono);font-size:.88rem;color:var(--accent-bright);font-weight:600;word-break:break-word;}
.lp-cmd span{font-size:.78rem;color:var(--text-dim);line-height:1.45;}

/* FAQ */
.lp-faq{display:grid;gap:.7rem;max-width:880px;}
.lp-faq__item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden;transition:border-color .25s;}
.lp-faq__item[open]{border-color:var(--card-border-hover);}
.lp-faq__q{list-style:none;cursor:pointer;padding:1.1rem 1.3rem;font-family:var(--font-display);font-weight:600;font-size:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.lp-faq__q::-webkit-details-marker{display:none;}
.lp-faq__q::after{content:'+';font-family:var(--font-mono);font-size:1.3rem;color:var(--accent);transition:transform .25s var(--ease);flex:none;}
.lp-faq__item[open] .lp-faq__q::after{transform:rotate(45deg);}
.lp-faq__a{padding:0 1.3rem 1.2rem;color:var(--text-muted);font-size:.93rem;line-height:1.7;}

/* TROUBLE */
.lp-trouble{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:0 clamp(2rem,4vw,3rem);}
.lp-trouble__item{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding:1.5rem 0;border-top:1px solid var(--card-border);}
.lp-trouble__ic{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--accent-soft);border:1px solid var(--card-border);color:var(--accent-bright);font-size:1.1rem;}
.lp-trouble__item h4{margin:0 0 .3rem;font-size:1rem;font-weight:700;}
.lp-trouble__item p{margin:0;color:var(--text-muted);font-size:.86rem;line-height:1.6;}

/* CTA */
.lp-cta__card{position:relative;overflow:hidden;border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:clamp(2.8rem,8vw,5rem) clamp(1.2rem,4vw,3rem);text-align:center;
  background:radial-gradient(700px circle at 50% -20%,rgba(141,168,255,.22),transparent 60%),var(--card-bg);}
.lp-cta__card::before{content:'';position:absolute;left:50%;top:0;transform:translateX(-50%);width:80px;height:3px;background:var(--accent);}
.lp-cta__card h2{font-size:clamp(2rem,5.5vw,3.4rem);font-weight:800;letter-spacing:-.04em;line-height:1;margin:0 auto 1.1rem;max-width:18ch;text-transform:uppercase;}
.lp-cta__card p{color:var(--text-muted);max-width:52ch;margin:0 auto 2rem;}
.lp-cta__actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;}

/* FOOTER */
.lp-footer{border-top:1px solid var(--card-border);padding-block:2.5rem;}
.lp-footer__inner{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:space-between;align-items:center;}
.lp-footer__tag{font-family:var(--font-mono);margin:.5rem 0 0;font-size:.78rem;color:var(--text-dim);}
.lp-footer__copy{width:100%;padding-top:1.4rem;margin-top:1.4rem;border-top:1px solid var(--card-border);font-family:var(--font-mono);font-size:.74rem;color:var(--text-dim);}

/* reveal-on-scroll */
.lp-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform;}
.lp-reveal.is-visible{opacity:1;transform:translateY(0);}

@media (max-width:900px){
  .lp-hero__grid{grid-template-columns:1fr;}
  .lp-hero__visual{order:-1;max-width:460px;}
  .lp-grid2{grid-template-columns:1fr;}
  .lp-features__grid{grid-template-columns:1fr;}
  .lp-head{grid-template-columns:1fr;gap:.4rem;}
  .lp-head__num{padding-top:0;}
}
@media (max-width:760px){.lp-nav__links,.lp-nav .btn{display:none;}.lp-nav__toggle{display:grid;place-items:center;}}
@media (prefers-reduced-motion:reduce){.lp-reveal{opacity:1;transform:none;transition:none;}.lp-mock{animation:none;}}
