
/* =====================================================
   TOKENS & THEMES
===================================================== */
:root{
  --accent:#FF6B2B;--accent2:#FF8C54;
  --accent-s:#FF6B2B18;--accent-m:#FF6B2B44;--accent-g:#FF6B2B30;
  --green:#22C77A;--green-s:#22C77A18;--green-m:#22C77A44;
  --red:#FF3B3B;--red-s:#FF3B3B18;--red-m:#FF3B3B44;
  --yellow:#F59E0B;--yellow-s:#F59E0B18;--yellow-m:#F59E0B44;
  --blue:#3B9EFF;--blue-s:#3B9EFF18;
  --ff:'Instrument Serif',Georgia,serif;
  --fb:'DM Sans',system-ui,sans-serif;
  --r4:4px;--r8:8px;--r12:12px;--r16:16px;--r20:20px;--rpill:100px;
  --tr:180ms cubic-bezier(.4,0,.2,1);
}
[data-theme="dark"]{
  --bg:#080809;--bg1:#0F0F12;--bg2:#161619;--bg3:#1C1C21;
  --border:#ffffff0D;--border2:#ffffff18;--border3:#ffffff28;
  --t1:#F2F1EC;--t2:#9A99A8;--t3:#55546A;--t4:#2E2D40;
  --nav:#080809CC;--shadow:0 8px 32px #00000060;
}
[data-theme="light"]{
  --bg:#F5F4F0;--bg1:#FFFFFF;--bg2:#EEECEA;--bg3:#E4E2DE;
  --border:#00000010;--border2:#00000018;--border3:#00000028;
  --t1:#111114;--t2:#6B6978;--t3:#ADADBE;--t4:#D8D7E4;
  --nav:#F5F4F0EE;--shadow:0 8px 32px #00000018;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--bg);color:var(--t1);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;transition:background .25s,color .25s}
button{font-family:var(--fb);cursor:pointer}
input,textarea,select{font-family:var(--fb)}
a{text-decoration:none;color:inherit}
svg{flex-shrink:0}

/* =====================================================
   DEMO SHELL — top screen switcher
===================================================== */
.shell-bar{
  position:fixed;top:0;left:0;right:0;z-index:9999;
  background:#000;
  border-bottom:1px solid #ffffff12;
  display:flex;align-items:center;gap:0;
  height:42px;overflow-x:auto;scrollbar-width:none;
}
.shell-bar::-webkit-scrollbar{display:none}
.shell-logo{
  padding:0 14px;font-family:var(--ff);font-size:15px;white-space:nowrap;
  color:#fff;border-right:1px solid #ffffff15;height:100%;display:flex;align-items:center;gap:8px;flex-shrink:0;
}
.shell-logo .dot{width:8px;height:8px;background:var(--accent);border-radius:50%;flex-shrink:0}
.shell-tabs{display:flex;align-items:stretch;height:100%;overflow-x:auto;scrollbar-width:none;flex:1}
.shell-tabs::-webkit-scrollbar{display:none}
.stab{
  border:none;background:none;color:#ffffff55;font-size:11px;font-weight:500;
  padding:0 13px;white-space:nowrap;border-right:1px solid #ffffff08;
  transition:all var(--tr);position:relative;letter-spacing:.01em;
}
.stab:hover{color:#ffffff99;background:#ffffff06}
.stab.on{color:#fff;background:#ffffff0A}
.stab.on::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}
.stab .stab-badge{
  display:inline-block;background:var(--red);color:#fff;font-size:9px;font-weight:700;
  padding:1px 5px;border-radius:10px;margin-left:5px;vertical-align:middle;
}
.stab .stab-badge.warn{background:var(--yellow)}
/* Theme controls */
.shell-controls{
  display:flex;align-items:center;gap:8px;padding:0 12px;border-left:1px solid #ffffff15;flex-shrink:0;
}
.sc-btn{
  border:1px solid #ffffff20;background:none;color:#ffffff70;font-size:11px;font-weight:500;
  padding:3px 10px;border-radius:var(--rpill);transition:all var(--tr);white-space:nowrap;
}
.sc-btn:hover,.sc-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* =====================================================
   SCREEN SYSTEM
===================================================== */
.screen{display:none;min-height:100vh;padding-top:42px}
.screen.on{display:block}
/* admin has its own layout */
#s-admin{display:none;padding-top:42px}
#s-admin.on{display:flex;min-height:100vh}

/* =====================================================
   DESIGN TOKENS — reusable classes
===================================================== */
/* Typography */
.serif{font-family:var(--ff)}
.t1{color:var(--t1)}.t2{color:var(--t2)}.t3{color:var(--t3)}
.accent{color:var(--accent)}
.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}
.fs10{font-size:10px}.fs11{font-size:11px}.fs12{font-size:12px}.fs13{font-size:13px}
.fs14{font-size:14px}.fs15{font-size:15px}.fs18{font-size:18px}.fs22{font-size:22px}
.fs26{font-size:26px}.fs32{font-size:32px}
.lh13{line-height:1.3}.lh15{line-height:1.5}.lh17{line-height:1.7}
.ls04{letter-spacing:.04em}.ls08{letter-spacing:.08em}.ls1{letter-spacing:.1em}
.upper{text-transform:uppercase}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* Layout */
.flex{display:flex}.flex-col{flex-direction:column}.items-c{align-items:center}.items-s{align-items:flex-start}
.justify-b{justify-content:space-between}.justify-c{justify-content:center}
.gap4{gap:4px}.gap6{gap:6px}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap16{gap:16px}.gap20{gap:20px}
.wrap{flex-wrap:wrap}
.flex1{flex:1;min-width:0}
.spacer{flex:1}
.w100{width:100%}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
/* Spacing */
.p12{padding:12px}.p16{padding:16px}.p20{padding:20px}
.px12{padding-left:12px;padding-right:12px}.px16{padding-left:16px;padding-right:16px}
.py8{padding-top:8px;padding-bottom:8px}.py10{padding-top:10px;padding-bottom:10px}.py12{padding-top:12px;padding-bottom:12px}
.mt4{margin-top:4px}.mt6{margin-top:6px}.mt8{margin-top:8px}.mt10{margin-top:10px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt24{margin-top:24px}
.mb6{margin-bottom:6px}.mb8{margin-bottom:8px}.mb10{margin-bottom:10px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}
/* Borders & backgrounds */
.card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16)}
.card-sm{background:var(--bg1);border:1px solid var(--border);border-radius:var(--r12)}
.pill{background:var(--bg3);border-radius:var(--rpill)}
.bdiv{height:1px;background:var(--border2);margin:12px 0}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 9px;border-radius:var(--rpill);white-space:nowrap}
.badge-break{background:var(--red);color:#fff;animation:flash 1.5s ease-in-out infinite}
.badge-ai{background:var(--accent-s);color:var(--accent);border:1px solid var(--accent-m)}
.badge-cat{background:var(--bg3);color:var(--t2);border:1px solid var(--border2)}
.badge-ok{background:var(--green-s);color:var(--green);border:1px solid var(--green-m)}
.badge-warn{background:var(--yellow-s);color:var(--yellow);border:1px solid var(--yellow-m)}
.badge-err{background:var(--red-s);color:var(--red);border:1px solid var(--red-m)}
@keyframes flash{0%,100%{opacity:1}50%{opacity:.65}}

/* Source icons */
.src{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-size:9px;font-weight:800;color:#fff;flex-shrink:0}
.src-x{background:#000}.src-rss{background:#F26522}.src-ig{background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}
.src-sm{width:14px;height:14px;border-radius:3px;font-size:7px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--r8);font-size:13px;font-weight:600;padding:9px 16px;transition:all var(--tr);cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{opacity:.88;transform:translateY(-1px)}
.btn-ghost{background:var(--bg3);color:var(--t1);border:1px solid var(--border2)}
.btn-ghost:hover{border-color:var(--accent-m);color:var(--accent)}
.btn-danger{background:var(--red-s);color:var(--red);border:1px solid var(--red-m)}
.btn-danger:hover{background:var(--red);color:#fff}
.btn-sm{padding:5px 12px;font-size:11px;border-radius:var(--r8)}
.btn-xs{padding:3px 8px;font-size:10px;border-radius:6px}
.btn-pill{border-radius:var(--rpill)}
.btn-icon{padding:7px;border-radius:var(--r8)}

/* Form elements */
.form-field{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r8);padding:10px 13px;color:var(--t1);font-size:13px;outline:none;transition:border-color var(--tr)}
.form-field:focus{border-color:var(--accent)}
.form-field::placeholder{color:var(--t3)}
.form-label{font-size:11px;font-weight:600;color:var(--t3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px;display:block}
select.form-field option{background:var(--bg1)}

/* Toggle */
.toggle{width:38px;height:22px;background:var(--border3);border-radius:11px;position:relative;cursor:pointer;transition:background var(--tr);flex-shrink:0;border:none}
.toggle.on{background:var(--accent)}
.toggle-k{position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform var(--tr);box-shadow:0 1px 4px #00000030}
.toggle.on .toggle-k{transform:translateX(16px)}

/* Status dot */
.sdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.sdot-ok{background:var(--green);box-shadow:0 0 6px var(--green-m)}
.sdot-warn{background:var(--yellow);box-shadow:0 0 6px var(--yellow-m)}
.sdot-err{background:var(--red);box-shadow:0 0 6px var(--red-m);animation:blink 1s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* Logo */
.logo{display:flex;align-items:center;gap:7px;cursor:pointer}
.logo-mark{width:28px;height:28px;background:var(--accent);border-radius:7px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0}
.logo-mark::before{content:'';position:absolute;top:6px;left:6px;width:8px;height:8px;background:#fff;border-radius:50%}
.logo-mark::after{content:'';position:absolute;top:6px;left:6px;width:8px;height:8px;background:var(--accent);border-radius:50%;animation:lpulse 2s ease-in-out infinite}
@keyframes lpulse{0%,100%{box-shadow:0 0 0 0 var(--accent-g)}70%{box-shadow:0 0 0 8px transparent}}
.logo-text{font-family:var(--ff);font-size:19px;color:var(--t1);letter-spacing:-.02em}
.logo-text em{font-style:normal;color:var(--accent)}

/* =====================================================
   NAV COMPONENTS (shared)
===================================================== */
.topnav{
  position:fixed;top:42px;left:0;right:0;z-index:100;
  background:var(--nav);backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid var(--border2);
}
.topnav-inner{max-width:720px;margin:0 auto;padding:0 16px;height:52px;display:flex;align-items:center;gap:12px}
.search-box{
  flex:1;display:flex;align-items:center;gap:8px;
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--rpill);
  padding:8px 14px;transition:border-color var(--tr);
}
.search-box:focus-within{border-color:var(--accent-m)}
.search-box input{background:none;border:none;outline:none;color:var(--t1);font-size:13px;width:100%;font-family:var(--fb)}
.search-box input::placeholder{color:var(--t3)}
.nav-avatar{
  width:32px;height:32px;border-radius:50%;background:var(--accent-s);border:2px solid var(--accent-m);
  display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0;transition:border-color var(--tr)
}
.nav-avatar:hover{border-color:var(--accent)}

.catstrip-wrap{
  position:sticky;top:94px;z-index:99;background:var(--nav);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);
}
.catstrip{max-width:720px;margin:0 auto;padding:9px 16px;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.catstrip::-webkit-scrollbar{display:none}
.cpill{
  display:inline-flex;align-items:center;gap:4px;background:var(--bg2);border:1px solid var(--border2);
  color:var(--t2);font-size:12px;font-weight:500;padding:5px 13px;border-radius:var(--rpill);
  cursor:pointer;transition:all var(--tr);white-space:nowrap;user-select:none;border:none;font-family:var(--fb)
}
.cpill:hover,.cpill.on{background:var(--accent-s);border:1px solid var(--accent-m);color:var(--accent)}

.bnav{
  position:fixed;bottom:0;left:0;right:0;z-index:100;
  background:var(--nav);backdrop-filter:blur(20px);border-top:1px solid var(--border2);
  display:flex;padding:6px 0 max(6px,env(safe-area-inset-bottom));
}
.bni{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:4px 0;cursor:pointer;color:var(--t3);font-size:10px;font-weight:500;
  border:none;background:none;font-family:var(--fb);transition:color var(--tr);
  position:relative;
}
.bni.on{color:var(--accent)}
.bni svg{width:20px;height:20px}
.bni-dot{position:absolute;top:2px;right:calc(50% - 16px);width:7px;height:7px;background:var(--red);border-radius:50%;border:2px solid var(--bg)}

/* Feed container */
.feed-wrap{max-width:720px;margin:0 auto;padding:0 16px 90px}

/* =====================================================
   HOME SCREEN COMPONENTS
===================================================== */
/* Hero */
.hero{
  max-width:720px;margin:0 auto;padding:12px 16px 0;
  margin-top:110px;
}
.hero-card{
  border-radius:var(--r20);overflow:hidden;background:var(--bg1);
  border:1px solid var(--border2);cursor:pointer;transition:transform var(--tr),box-shadow var(--tr)
}
.hero-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.hero-thumb{
  width:100%;height:210px;background:linear-gradient(135deg,var(--accent-s) 0%,var(--bg2) 100%);
  display:flex;align-items:center;justify-content:center;font-size:52px;position:relative;overflow:hidden;
}
.hero-thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,var(--bg1) 100%)}
.hero-body{padding:14px 16px 14px}
.hero-meta{display:flex;align-items:center;gap:7px;margin-bottom:9px;flex-wrap:wrap}
.hero-title{font-family:var(--ff);font-size:21px;line-height:1.25;color:var(--t1);margin-bottom:8px;letter-spacing:-.025em}
.hero-sum{font-size:13px;line-height:1.6;color:var(--t2);margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Action row */
.acts{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.act{background:none;border:none;color:var(--t3);font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:var(--r8);cursor:pointer;transition:all var(--tr);white-space:nowrap;font-family:var(--fb)}
.act:hover{background:var(--bg3);color:var(--t1)}
.act.liked{color:var(--red)}
.act svg{width:14px;height:14px}
.act-share{margin-left:auto;background:var(--accent-s);color:var(--accent);border:1px solid var(--accent-m);border-radius:var(--rpill);padding:5px 13px}
.act-share:hover{background:var(--accent);color:#fff}

/* Sentiment mini */
.sent-mini{display:flex;align-items:center;gap:5px}
.sent-bar{width:40px;height:3px;background:var(--border3);border-radius:2px;overflow:hidden}
.sent-fill{height:100%;border-radius:2px}
.sf-pos{background:var(--green)}.sf-neg{background:var(--red)}.sf-neu{background:var(--t3)}

/* Section label */
.sec-lbl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);padding:16px 0 10px;display:flex;align-items:center;gap:8px}
.sec-lbl::after{content:'';flex:1;height:1px;background:var(--border2)}

/* News card */
.nc{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:all var(--tr);margin:0;border-radius:0}
.nc:hover{background:var(--bg2);margin:0 -16px;padding:13px 16px;border-radius:var(--r12);border-bottom-color:transparent}
.nc-thumb{width:74px;height:74px;border-radius:var(--r12);background:var(--bg2);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:26px;border:1px solid var(--border);flex-shrink:0}
.nc-body{flex:1;min-width:0}
.nc-meta{display:flex;align-items:center;gap:5px;margin-bottom:5px;flex-wrap:wrap}
.nc-title{font-family:var(--ff);font-size:16px;line-height:1.3;color:var(--t1);margin-bottom:5px;letter-spacing:-.015em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nc-sum{font-size:12px;line-height:1.55;color:var(--t2);margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nc-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nc-time{font-size:11px;color:var(--t3)}
/* wide card (no image) */
.nc-wide .nc-title{font-size:15px;-webkit-line-clamp:3}
/* trend chip */
.trend-c{display:inline-flex;align-items:center;gap:3px;background:var(--accent-s);border:1px solid var(--accent-m);border-radius:var(--rpill);padding:2px 9px;font-size:10px;font-weight:700;color:var(--accent)}
/* read time */
.rtime{font-size:11px;color:var(--t3);display:flex;align-items:center;gap:3px}
/* ad slot */
.adslot{background:var(--bg1);border:1px dashed var(--border3);border-radius:var(--r12);padding:13px;margin:14px 0;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--t3);font-size:12px}
/* source tag */
.stag{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--t3);font-weight:500}

/* =====================================================
   DETAIL SCREEN
===================================================== */
.det-wrap{max-width:720px;margin:104px auto 0;padding:0 16px 130px}
.det-back{display:flex;align-items:center;gap:5px;color:var(--t3);font-size:13px;font-weight:500;cursor:pointer;padding:10px 0 14px;transition:color var(--tr)}
.det-back:hover{color:var(--t1)}
.det-back svg{width:16px;height:16px}
.det-hero{border-radius:var(--r20);overflow:hidden;margin-bottom:18px;border:1px solid var(--border2)}
.det-hero-img{width:100%;height:230px;background:linear-gradient(135deg,var(--accent-s),var(--bg2));display:flex;align-items:center;justify-content:center;font-size:60px}
.det-hero-cap{padding:9px 14px;background:var(--bg1);font-size:11px;color:var(--t3);border-top:1px solid var(--border)}
.det-title{font-family:var(--ff);font-size:28px;line-height:1.2;color:var(--t1);letter-spacing:-.03em;margin-bottom:14px}
.ai-box{background:var(--bg1);border:1px solid var(--accent-m);border-radius:var(--r16);padding:14px 16px;margin-bottom:18px;position:relative;overflow:hidden}
.ai-box::before{content:'';position:absolute;inset:0;background:var(--accent-s);pointer-events:none}
.ai-label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.ai-ico{width:16px;height:16px;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;flex-shrink:0}
.ai-text{font-size:14px;line-height:1.65;color:var(--t1);position:relative;z-index:1}
.det-body{font-size:15px;line-height:1.8;color:var(--t2);margin-bottom:22px}
.det-body p{margin-bottom:14px}
.det-body strong{color:var(--t1)}
.det-body a{color:var(--accent)}
/* Sentiment card */
.sent-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:14px 16px;margin-bottom:16px}
.sent-row{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.sent-lbl{font-size:12px;color:var(--t2);width:62px;flex-shrink:0}
.sent-track{flex:1;height:6px;background:var(--border3);border-radius:3px;overflow:hidden}
.sent-pct{font-size:11px;color:var(--t3);width:30px;text-align:right;flex-shrink:0}
/* Tags */
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.tag-pill{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--rpill);padding:5px 12px;font-size:12px;color:var(--t2);cursor:pointer;transition:all var(--tr)}
.tag-pill:hover{background:var(--accent-s);border-color:var(--accent-m);color:var(--accent)}
/* Related */
.rel-mini{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:opacity var(--tr)}
.rel-mini:hover{opacity:.7}
.rel-thumb{width:54px;height:54px;border-radius:var(--r8);background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:20px;border:1px solid var(--border);flex-shrink:0}
.rel-title{font-family:var(--ff);font-size:14px;line-height:1.3;color:var(--t1);margin-bottom:3px}
/* Tools bar */
.toolsbar{
  position:fixed;bottom:60px;left:0;right:0;z-index:99;
  background:var(--nav);backdrop-filter:blur(16px);border-top:1px solid var(--border2);padding:8px 16px;
}
.toolsbar-inner{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.toolsbar-inner::-webkit-scrollbar{display:none}
.tool-chip{
  display:flex;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--rpill);padding:6px 13px;font-size:12px;font-weight:500;color:var(--t2);
  cursor:pointer;white-space:nowrap;transition:all var(--tr);border:none;font-family:var(--fb)
}
.tool-chip:hover{background:var(--accent-s);color:var(--accent)}
.tool-chip svg{width:13px;height:13px}
/* Read progress */
.rbar{position:fixed;top:42px;left:0;height:2px;background:var(--accent);z-index:200;border-radius:0 2px 2px 0;box-shadow:0 0 10px var(--accent-g);transition:width .1s linear}
/* AI FAB */
.ai-fab{
  position:fixed;bottom:120px;right:16px;z-index:200;
  background:var(--accent);color:#fff;border:none;border-radius:var(--rpill);
  padding:10px 16px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;
  box-shadow:0 4px 20px var(--accent-g);font-family:var(--fb);cursor:pointer;
  transition:transform var(--tr),box-shadow var(--tr)
}
.ai-fab:hover{transform:translateY(-2px);box-shadow:0 8px 30px var(--accent-g)}
.ai-fab svg{width:14px;height:14px}
/* AI chat modal */
.ai-modal{
  position:fixed;bottom:130px;right:16px;width:min(340px,calc(100vw - 32px));z-index:201;
  background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r20);overflow:hidden;
  box-shadow:var(--shadow);display:none;flex-direction:column
}
.ai-modal.open{display:flex}
.ai-modal-head{padding:13px 16px;border-bottom:1px solid var(--border2);display:flex;align-items:center;gap:8px}
.ai-modal-title{font-size:13px;font-weight:600;color:var(--t1);flex:1}
.ai-modal-msgs{padding:12px;flex:1;max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.ai-msg-user{align-self:flex-end;background:var(--accent);color:#fff;border-radius:12px 12px 2px 12px;padding:8px 12px;font-size:13px;max-width:80%}
.ai-msg-bot{align-self:flex-start;background:var(--bg2);color:var(--t1);border-radius:12px 12px 12px 2px;padding:8px 12px;font-size:13px;max-width:80%;border:1px solid var(--border2)}
.ai-modal-input{padding:10px 12px;border-top:1px solid var(--border2);display:flex;gap:8px}
.ai-modal-input input{flex:1;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--rpill);padding:8px 13px;color:var(--t1);font-size:13px;outline:none;font-family:var(--fb)}
.ai-modal-input input:focus{border-color:var(--accent-m)}

/* =====================================================
   PROFILE / AUTH
===================================================== */
.auth-wrap{max-width:480px;margin:0 auto;padding:104px 16px 90px}
.auth-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r20);padding:26px;margin-bottom:12px}
.auth-title{font-family:var(--ff);font-size:23px;color:var(--t1);letter-spacing:-.025em;margin-bottom:5px}
.auth-sub{font-size:13px;color:var(--t2);margin-bottom:22px;line-height:1.55}
.fgroup{margin-bottom:13px}
.divider{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:11px;color:var(--t3)}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--border2)}
.int-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}
.int-chip{display:flex;flex-direction:column;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r12);padding:12px 6px;cursor:pointer;transition:all var(--tr);font-size:12px;font-weight:500;color:var(--t2);text-align:center}
.int-chip:hover,.int-chip.on{background:var(--accent-s);border-color:var(--accent-m);color:var(--accent)}
.int-chip .ie{font-size:22px}
.prof-head{display:flex;flex-direction:column;align-items:center;padding:22px 0;gap:9px}
.prof-av{width:74px;height:74px;border-radius:50%;background:var(--accent-s);border:3px solid var(--accent-m);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--accent);font-weight:700;font-family:var(--ff)}
.prof-stats{display:flex;background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);overflow:hidden;margin-bottom:18px}
.pstat{flex:1;text-align:center;padding:13px 6px;border-right:1px solid var(--border2)}
.pstat:last-child{border-right:none}
.pstat-n{font-family:var(--ff);font-size:22px;color:var(--t1);letter-spacing:-.02em;line-height:1;margin-bottom:3px}
.pstat-l{font-size:10px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.sg{margin-bottom:18px}
.sg-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:5px;padding:0 2px}
.srow{display:flex;align-items:center;gap:12px;background:var(--bg1);border:1px solid var(--border2);padding:12px 13px;cursor:pointer;transition:background var(--tr)}
.srow:not(:first-of-type){border-top:none}
.srow:first-of-type{border-radius:var(--r12) var(--r12) 0 0}
.srow:last-of-type{border-radius:0 0 var(--r12) var(--r12)}
.srow:only-of-type{border-radius:var(--r12)}
.srow:hover{background:var(--bg2)}
.sico{width:32px;height:32px;background:var(--bg2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.stxt{flex:1}.stxt-m{font-size:14px;color:var(--t1);font-weight:500}.stxt-s{font-size:11px;color:var(--t3);margin-top:1px}
/* Mood filter */
.mood-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}
.mood-chip{display:flex;align-items:center;gap:10px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r12);padding:12px;cursor:pointer;transition:all var(--tr)}
.mood-chip.on{background:var(--accent-s);border-color:var(--accent-m)}
.mood-e{font-size:24px}
.mood-t{font-size:13px;font-weight:600;color:var(--t1)}
.mood-s{font-size:11px;color:var(--t3)}

/* =====================================================
   NEWSLETTER
===================================================== */
.nl-wrap{max-width:480px;margin:0 auto;padding:104px 16px 90px}
.nl-hero{text-align:center;margin-bottom:26px}
.nl-e{font-size:52px;margin-bottom:12px}
.nl-title{font-family:var(--ff);font-size:27px;color:var(--t1);letter-spacing:-.03em;margin-bottom:8px}
.nl-opts{display:flex;flex-direction:column;gap:9px;margin-bottom:20px}
.nl-opt{display:flex;align-items:center;gap:12px;background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:13px;cursor:pointer;transition:all var(--tr)}
.nl-opt.on{background:var(--accent-s);border-color:var(--accent-m)}
.nl-opt-ico{font-size:22px}
.nl-opt-t{flex:1}
.nl-opt-name{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:2px}
.nl-opt-d{font-size:11px;color:var(--t3)}
.nl-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border3);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--accent);flex-shrink:0;transition:all var(--tr)}
.nl-opt.on .nl-check{background:var(--accent);border-color:var(--accent);color:#fff}

/* =====================================================
   SEARCH
===================================================== */
.srch-wrap{max-width:720px;margin:104px auto 0;padding:0 16px 90px}
.srch-hero{padding:16px 0 12px}
.srch-hero-box{display:flex;align-items:center;gap:10px;background:var(--bg1);border:1px solid var(--border2);border-radius:var(--rpill);padding:11px 18px;margin-bottom:14px;transition:border-color var(--tr)}
.srch-hero-box:focus-within{border-color:var(--accent)}
.srch-hero-box input{flex:1;background:none;border:none;outline:none;color:var(--t1);font-size:15px;font-family:var(--fb)}
.srch-hero-box input::placeholder{color:var(--t3)}
.trending-box{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:14px 16px;margin-bottom:14px}
.trend-list{display:flex;flex-direction:column;gap:0}
.trend-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:opacity var(--tr)}
.trend-item:last-child{border-bottom:none;padding-bottom:0}
.trend-item:hover{opacity:.7}
.trend-rank{font-family:var(--ff);font-size:20px;color:var(--t4);width:28px;flex-shrink:0;text-align:center}
.trend-info{flex:1}
.trend-kw{font-size:14px;font-weight:600;color:var(--t1)}
.trend-cnt{font-size:11px;color:var(--t3)}
.trend-arrow{font-size:12px;font-weight:700;color:var(--accent)}
.filter-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.filter-row::-webkit-scrollbar{display:none}
.srch-result-grid{display:flex;flex-direction:column;gap:0}

/* =====================================================
   SAVED / COLLECTIONS
===================================================== */
.saved-wrap{max-width:720px;margin:104px auto 0;padding:0 16px 90px}
.coll-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
.coll-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;cursor:pointer;transition:all var(--tr);position:relative;overflow:hidden}
.coll-card:hover{border-color:var(--accent-m);transform:translateY(-1px)}
.coll-emoji{font-size:28px;margin-bottom:9px}
.coll-name{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:3px}
.coll-cnt{font-size:11px;color:var(--t3)}
.coll-add{background:var(--bg2);border:2px dashed var(--border3);border-radius:var(--r16);padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all var(--tr)}
.coll-add:hover{border-color:var(--accent-m)}
.coll-add-ico{font-size:24px;color:var(--t3)}
.coll-add-t{font-size:12px;color:var(--t3);font-weight:500}

/* =====================================================
   NOTIFICATIONS
===================================================== */
.notif-wrap{max-width:720px;margin:104px auto 0;padding:0 16px 90px}
.notif-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--tr)}
.notif-item:hover{background:var(--bg2);margin:0 -16px;padding:13px 16px;border-radius:var(--r12);border-bottom-color:transparent}
.notif-ico{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.notif-ico-break{background:var(--red-s);border:1px solid var(--red-m)}
.notif-ico-like{background:var(--accent-s);border:1px solid var(--accent-m)}
.notif-ico-ai{background:var(--blue-s);border:1px solid #3B9EFF44}
.notif-ico-nl{background:var(--green-s);border:1px solid var(--green-m)}
.notif-body{flex:1}
.notif-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:3px}
.notif-sub{font-size:12px;color:var(--t2);line-height:1.5}
.notif-time{font-size:11px;color:var(--t3);margin-top:4px}
.notif-unread{width:8px;height:8px;background:var(--accent);border-radius:50%;flex-shrink:0;margin-top:4px}

/* =====================================================
   ADMIN SHELL
===================================================== */
.adm-sidebar{
  width:224px;background:var(--bg1);border-right:1px solid var(--border2);
  position:fixed;top:42px;left:0;bottom:0;overflow-y:auto;z-index:50;
  display:flex;flex-direction:column;scrollbar-width:none;
}
.adm-sidebar::-webkit-scrollbar{display:none}
.adm-logo{padding:13px 16px 13px;border-bottom:1px solid var(--border2)}
.adm-main{margin-left:224px;flex:1;padding:24px;min-height:calc(100vh - 42px);overflow-y:auto}
.adm-sec{padding:10px 16px 3px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.adm-item{
  display:flex;align-items:center;gap:9px;padding:8px 16px;cursor:pointer;
  transition:all var(--tr);color:var(--t2);font-size:13px;font-weight:500;position:relative;
}
.adm-item:hover{background:var(--bg2);color:var(--t1)}
.adm-item.on{background:var(--accent-s);color:var(--accent)}
.adm-item.on::before{content:'';position:absolute;left:0;top:5px;bottom:5px;width:3px;background:var(--accent);border-radius:0 2px 2px 0}
.adm-item svg{width:15px;height:15px;flex-shrink:0}
.adm-badge{margin-left:auto;padding:2px 7px;border-radius:var(--rpill);font-size:9px;font-weight:700}
.adm-badge-r{background:var(--red);color:#fff}
.adm-badge-y{background:var(--yellow);color:#000}
.adm-badge-g{background:var(--green-s);color:var(--green);border:1px solid var(--green-m)}

/* Admin page sections */
.adm-phead{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px}
.adm-ptitle{font-family:var(--ff);font-size:22px;color:var(--t1);letter-spacing:-.02em}
.adm-psub{font-size:12px;color:var(--t3);margin-top:3px}

/* Pulse bar */
.pulse-bar{
  display:flex;align-items:center;gap:16px;background:var(--bg1);border:1px solid var(--accent-m);
  border-radius:var(--r16);padding:14px 18px;margin-bottom:20px;position:relative;overflow:hidden
}
.pulse-bar::before{content:'';position:absolute;inset:0;background:var(--accent-s)}
.pulse-pct{font-family:var(--ff);font-size:34px;color:var(--accent);letter-spacing:-.05em;line-height:1;position:relative;z-index:1}
.pulse-info{position:relative;z-index:1}
.pulse-info strong{display:block;font-size:14px;font-weight:600;color:var(--t1);margin-bottom:4px}
.pulse-chips{display:flex;gap:6px;flex-wrap:wrap}
.pulse-chip{font-size:10px;font-weight:600;padding:3px 9px;border-radius:var(--rpill)}
.pc-ok{background:var(--green-s);color:var(--green);border:1px solid var(--green-m)}
.pc-warn{background:var(--yellow-s);color:var(--yellow);border:1px solid var(--yellow-m)}
.pc-err{background:var(--red-s);color:var(--red);border:1px solid var(--red-m)}
.kill-btn{
  margin-left:auto;background:var(--red);color:#fff;border:none;border-radius:var(--r8);
  padding:9px 16px;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;
  gap:6px;font-family:var(--fb);letter-spacing:.04em;position:relative;z-index:1;transition:opacity var(--tr)
}
.kill-btn:hover{opacity:.85}

/* Metric grid */
.met-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.met-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;transition:border-color var(--tr)}
.met-card:hover{border-color:var(--accent-m)}
.met-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.met-ico{width:34px;height:34px;border-radius:9px;background:var(--accent-s);display:flex;align-items:center;justify-content:center;font-size:17px}
.met-delta{font-size:11px;font-weight:600}
.met-d-pos{color:var(--green)}.met-d-neg{color:var(--red)}
.met-num{font-family:var(--ff);font-size:28px;color:var(--t1);letter-spacing:-.04em;line-height:1;margin-bottom:3px}
.met-lbl{font-size:11px;color:var(--t3);font-weight:500}
.met-mini-bar{height:4px;background:var(--border2);border-radius:2px;margin-top:10px;overflow:hidden}
.met-mini-fill{height:100%;border-radius:2px;background:var(--accent)}

/* Terminal */
.terminal{background:#05050A;border:1px solid var(--border2);border-radius:var(--r16);padding:16px;margin-bottom:20px;max-height:180px;overflow:hidden;position:relative}
.term-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.term-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#22C77A}
.term-dots{display:flex;gap:5px}
.td{width:10px;height:10px;border-radius:50%}
.td:nth-child(1){background:#FF5F56}
.td:nth-child(2){background:#FFBD2E}
.td:nth-child(3){background:#27C93F}
.tline{font-family:'Courier New',monospace;font-size:11px;line-height:1.75;color:#22C77A66}
.tline.act{color:#22C77A}
.tline .dim{color:#22C77A33}
.tline .hi{color:#F2F1EC}
.tline .warn{color:#F59E0B}
.tline .err{color:#FF3B3B}
.tline .acc{color:var(--accent)}

/* Module health */
.mod-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:20px}
.mod-blk{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:10px 6px;text-align:center;cursor:pointer;transition:all var(--tr)}
.mod-blk:hover{border-color:var(--accent-m)}
.mod-s{width:8px;height:8px;border-radius:50%;margin:0 auto 5px}
.mod-n{font-size:9px;color:var(--t3);font-weight:500;line-height:1.3}

/* Admin panel card */
.apc{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);overflow:hidden}
.apc-head{padding:12px 16px;border-bottom:1px solid var(--border2);display:flex;align-items:center;justify-content:space-between}
.apc-title{font-size:13px;font-weight:600;color:var(--t1)}
.apc-action{font-size:11px;color:var(--accent);cursor:pointer}
.apc-body{padding:12px 16px}

/* Queue item */
.qi{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.qi:last-child{border-bottom:none}
.qi-step{width:28px;height:28px;border-radius:50%;background:var(--accent-s);border:1px solid var(--accent-m);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--accent);font-weight:700;flex-shrink:0}
.qi-info{flex:1}
.qi-name{font-size:12px;color:var(--t1);font-weight:500}
.qi-sub{font-size:10px;color:var(--t3)}
.qs{font-size:10px;font-weight:600;padding:3px 8px;border-radius:var(--rpill)}
.qs-run{background:var(--accent-s);color:var(--accent)}
.qs-wait{background:var(--bg2);color:var(--t3)}
.qs-done{background:var(--green-s);color:var(--green)}
.qs-err{background:var(--red-s);color:var(--red)}

/* Source row */
.src-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}
.src-row:last-child{border-bottom:none}
.src-info{flex:1}
.src-name{font-size:12px;color:var(--t1);font-weight:500}
.src-type{font-size:10px;color:var(--t3)}
.trust{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600}
.trust-t{width:48px;height:4px;background:var(--border3);border-radius:2px;overflow:hidden}
.trust-f{height:100%;border-radius:2px;background:var(--green)}

/* Karantina */
.kar-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.kar-item:last-child{border-bottom:none}
.kar-info{flex:1}
.kar-title{font-size:12px;color:var(--t1);font-weight:500;margin-bottom:2px}
.kar-sub{font-size:10px;color:var(--t3)}
.kar-acts{display:flex;gap:5px;flex-shrink:0}

/* SEO Module */
.seo-title-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border)}
.seo-title-row:last-child{border-bottom:none}
.seo-title-num{font-family:var(--ff);font-size:16px;color:var(--t4);width:20px;flex-shrink:0}
.seo-title-text{flex:1;font-size:13px;color:var(--t1)}
.seo-title-ctr{font-size:11px;font-weight:700}
.seo-title-crown{font-size:14px}

/* Chart bar (simple) */
.chart-bars{display:flex;align-items:flex-end;gap:6px;height:80px;padding:0}
.cbar{flex:1;border-radius:4px 4px 0 0;background:var(--accent-s);border:1px solid var(--accent-m);position:relative;transition:background var(--tr)}
.cbar:hover{background:var(--accent-m)}
.cbar-lbl{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font-size:9px;color:var(--t3)}
.chart-wrap{position:relative;padding-bottom:20px}

/* Prompt studio */
.prompt-studio{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r12);padding:14px}
.ps-textarea{width:100%;background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r8);padding:12px;color:var(--t1);font-size:13px;line-height:1.6;resize:vertical;min-height:100px;outline:none;font-family:var(--fb);transition:border-color var(--tr)}
.ps-textarea:focus{border-color:var(--accent-m)}
.ps-preview{background:var(--bg1);border:1px solid var(--accent-m);border-radius:var(--r8);padding:12px;margin-top:10px;font-size:13px;color:var(--t1);line-height:1.65}

/* API key management */
.api-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.api-row:last-child{border-bottom:none}
.api-info{flex:1}
.api-name{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px}
.api-key{font-size:11px;color:var(--t3);font-family:'Courier New',monospace}
.api-bar-wrap{width:80px}
.api-track{height:6px;background:var(--border3);border-radius:3px;overflow:hidden}
.api-fill{height:100%;border-radius:3px}
.api-pct{font-size:10px;color:var(--t3);margin-top:3px}

/* Revenue */
.rev-big{display:flex;gap:12px;margin-bottom:20px}
.rev-card{flex:1;background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:18px}
.rev-ico{font-size:26px;margin-bottom:10px}
.rev-num{font-family:var(--ff);font-size:30px;color:var(--t1);letter-spacing:-.04em;margin-bottom:4px}
.rev-lbl{font-size:11px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.06em}

/* Server meters */
.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.meter-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;text-align:center}
.meter-circle{width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--pct) * 1%),var(--border3) 0);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;position:relative}
.meter-circle::before{content:'';position:absolute;width:54px;height:54px;background:var(--bg1);border-radius:50%}
.meter-val{position:relative;z-index:1;font-family:var(--ff);font-size:14px;color:var(--t1)}
.meter-lbl{font-size:11px;color:var(--t3);font-weight:500}

/* Heatmap placeholder */
.heatmap{background:var(--bg2);border-radius:var(--r12);padding:12px;position:relative;overflow:hidden}
.hm-dot{position:absolute;border-radius:50%;pointer-events:none}

/* User table */
.user-table{width:100%;border-collapse:collapse}
.user-table th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);padding:8px 10px;border-bottom:1px solid var(--border2)}
.user-table td{padding:10px 10px;border-bottom:1px solid var(--border);font-size:12px;color:var(--t1)}
.user-table tr:last-child td{border-bottom:none}
.user-table tr:hover td{background:var(--bg2)}
.uav{width:28px;height:28px;border-radius:50%;background:var(--accent-s);border:1px solid var(--accent-m);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--accent)}

/* Log rows */
.log-row{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-family:'Courier New',monospace;font-size:11px}
.log-row:last-child{border-bottom:none}
.log-time{color:var(--t3);flex-shrink:0;width:70px}
.log-lvl{width:45px;flex-shrink:0;font-weight:700}
.log-lvl.info{color:var(--blue)}.log-lvl.warn{color:var(--yellow)}.log-lvl.err{color:var(--red)}.log-lvl.ok{color:var(--green)}
.log-msg{color:var(--t2);flex:1;line-height:1.5;font-family:var(--fb)}

/* Diff viewer */
.diff-view{background:#05050A;border-radius:var(--r12);padding:14px;font-family:'Courier New',monospace;font-size:11px;line-height:1.8;overflow-x:auto}
.diff-add{color:#22C77A;background:#22C77A0D;padding:0 4px;border-radius:2px}
.diff-del{color:#FF3B3B;background:#FF3B3B0D;padding:0 4px;border-radius:2px;text-decoration:line-through}
.diff-ctx{color:#9A99A8}

/* Schema viewer */
.schema-box{background:#05050A;border-radius:var(--r12);padding:14px;font-family:'Courier New',monospace;font-size:11px;line-height:1.8;color:#22C77A;max-height:220px;overflow-y:auto}
.sch-key{color:#3B9EFF}.sch-str{color:#F59E0B}.sch-bool{color:#FF6B2B}

/* Sitemap monitor */
.sitemap-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.sitemap-row:last-child{border-bottom:none}
.sitemap-name{flex:1;font-size:12px;color:var(--t1);font-weight:500}
.sitemap-cnt{font-size:11px;color:var(--t3)}
.sitemap-tick{font-size:12px}
.sitemap-time{font-size:10px;color:var(--t3)}

/* Stats comparison bars */
.cmp-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.cmp-lbl{font-size:12px;color:var(--t2);width:70px;flex-shrink:0}
.cmp-track{flex:1;height:8px;background:var(--border2);border-radius:4px;overflow:hidden}
.cmp-fill{height:100%;border-radius:4px}
.cmp-val{font-size:11px;color:var(--t3);width:36px;text-align:right;flex-shrink:0}

/* ROI chart */
.roi-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}
.roi-row:last-child{border-bottom:none}
.roi-ico{font-size:18px;width:30px;text-align:center}
.roi-info{flex:1}
.roi-name{font-size:12px;color:var(--t1);font-weight:500}
.roi-sub{font-size:10px;color:var(--t3)}
.roi-val{font-size:13px;font-weight:700}
.roi-pos{color:var(--green)}.roi-neg{color:var(--red)}

/* Backup */
.bk-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.bk-row:last-child{border-bottom:none}
.bk-ico{font-size:20px;width:32px;text-align:center}
.bk-info{flex:1}
.bk-name{font-size:12px;color:var(--t1);font-weight:600}
.bk-sub{font-size:10px;color:var(--t3)}

/* Gamification */
.badge-wall{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.badge-item{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:13px;text-align:center;cursor:pointer;transition:all var(--tr)}
.badge-item.earned{border-color:var(--accent-m);background:var(--accent-s)}
.badge-item:hover{border-color:var(--accent-m)}
.badge-ico{font-size:28px;margin-bottom:6px}
.badge-name{font-size:11px;font-weight:600;color:var(--t1)}
.badge-desc{font-size:10px;color:var(--t3);margin-top:2px}

/* Push console */
.push-form{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;margin-bottom:16px}
.push-preview{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:12px 14px;display:flex;align-items:center;gap:10px}
.push-prev-ico{width:40px;height:40px;border-radius:9px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.push-prev-t{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px}
.push-prev-b{font-size:11px;color:var(--t2)}

/* Timeline */
.timeline{display:flex;flex-direction:column;gap:0;position:relative}
.timeline::before{content:'';position:absolute;left:19px;top:0;bottom:0;width:1px;background:var(--border2)}
.tl-item{display:flex;gap:12px;padding-bottom:18px;position:relative}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--accent-m);flex-shrink:0;margin-top:4px;position:relative;z-index:1}
.tl-dot-wrap{width:40px;display:flex;justify-content:center;flex-shrink:0}
.tl-date{font-size:10px;color:var(--t3);margin-bottom:3px}
.tl-title{font-size:13px;font-weight:600;color:var(--t1)}
.tl-sub{font-size:11px;color:var(--t2);margin-top:2px}

/* Affiliate */
.af-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.af-row:last-child{border-bottom:none}
.af-kw{font-size:12px;font-weight:600;color:var(--t1);flex:1}
.af-link{font-size:11px;color:var(--accent);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.af-cnt{font-size:11px;color:var(--t3);width:50px;text-align:right}

/* Scroll helper */
.scrl{overflow-x:auto;scrollbar-width:none}.scrl::-webkit-scrollbar{display:none}

/* Admin two-col */
.adm2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.adm3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:20px}

/* =====================================================
   AI ONE-LINER SUMMARY (card & list)
===================================================== */
.ai-oneliner{
  display:flex;align-items:flex-start;gap:5px;
  font-size:12px;color:var(--t2);line-height:1.5;
  margin:4px 0 6px;padding:5px 8px;
  background:var(--accent-s);border-left:2px solid var(--accent);
  border-radius:0 var(--r4) var(--r4) 0;
}
.ai-oneliner-ico{font-size:10px;color:var(--accent);flex-shrink:0;margin-top:1px;font-weight:700;letter-spacing:.02em}
.ai-oneliner-txt{color:var(--t1);font-size:12px;line-height:1.5}
/* hero variant — slightly bigger */
.hero-ai-oneliner{
  display:flex;align-items:flex-start;gap:6px;
  font-size:13px;color:var(--t1);line-height:1.55;
  margin:6px 0 12px;padding:7px 10px;
  background:var(--accent-s);border-left:3px solid var(--accent);
  border-radius:0 var(--r8) var(--r8) 0;
}
.hero-ai-oneliner .ai-lbl{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:2px}

/* =====================================================
   NEW ADMIN TABS — extra styles
===================================================== */
/* SEO Health Score */
.seo-score-ring{width:90px;height:90px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.seo-score-ring svg{position:absolute;inset:0;width:100%;height:100%}
.seo-score-val{font-family:var(--ff);font-size:22px;color:var(--t1);position:relative;z-index:1}
.seo-check-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.seo-check-row:last-child{border-bottom:none}
.seo-check-ico{font-size:13px;width:20px;text-align:center}
.seo-check-lbl{flex:1;font-size:12px;color:var(--t1)}
.seo-check-val{font-size:11px;font-weight:600}
.cv-ok{color:var(--green)}.cv-warn{color:var(--yellow)}.cv-err{color:var(--red)}

/* Web Vitals meters */
.vitals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.vital-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:13px;text-align:center}
.vital-val{font-family:var(--ff);font-size:24px;letter-spacing:-.04em;margin-bottom:3px}
.vital-lbl{font-size:10px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.vital-bar{height:4px;background:var(--border2);border-radius:2px;margin-top:8px;overflow:hidden}
.vital-fill{height:100%;border-radius:2px}

/* Social Media Bot */
.sm-platform{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.sm-platform:last-child{border-bottom:none}
.sm-ico{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#fff;flex-shrink:0}
.sm-info{flex:1}
.sm-name{font-size:13px;font-weight:600;color:var(--t1)}
.sm-sub{font-size:11px;color:var(--t3)}
.sm-stats{text-align:right}
.sm-stat-n{font-size:13px;font-weight:700;color:var(--accent)}
.sm-stat-l{font-size:10px;color:var(--t3)}

/* Tweet preview */
.tweet-prev{background:#05050A;border:1px solid var(--border2);border-radius:var(--r12);padding:14px}
.tweet-prev-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.tweet-av{width:36px;height:36px;border-radius:50%;background:var(--bg2);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--t2)}
.tweet-name{font-size:13px;font-weight:600;color:var(--t1)}
.tweet-handle{font-size:11px;color:var(--t3)}
.tweet-body{font-size:13px;color:var(--t1);line-height:1.6;margin-bottom:10px}
.tweet-img-prev{background:var(--bg2);border-radius:var(--r8);height:80px;display:flex;align-items:center;justify-content:center;font-size:24px;border:1px solid var(--border2);margin-bottom:10px}
.tweet-acts{display:flex;gap:16px}
.tweet-act{font-size:11px;color:var(--t3);display:flex;align-items:center;gap:4px}

/* Post scheduler calendar */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px}
.cal-day{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r8);padding:6px;text-align:center;font-size:10px;color:var(--t3);cursor:pointer;transition:all var(--tr);min-height:44px}
.cal-day.has-post{background:var(--accent-s);border-color:var(--accent-m);color:var(--accent)}
.cal-day.today{border-color:var(--accent);font-weight:700}
.cal-day-n{font-size:13px;font-weight:600;color:var(--t1);display:block}
.cal-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin:2px auto 0}

/* Affiliate table */
.af-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.af-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:13px}
.af-card-ico{font-size:24px;margin-bottom:7px}
.af-card-n{font-family:var(--ff);font-size:22px;color:var(--t1);letter-spacing:-.03em}
.af-card-l{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em}

/* Content editor */
.editor-toolbar{display:flex;gap:3px;flex-wrap:wrap;padding:8px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r8) var(--r8) 0 0;border-bottom:none}
.editor-btn{background:none;border:1px solid transparent;color:var(--t2);font-size:11px;font-weight:600;padding:4px 7px;border-radius:5px;cursor:pointer;font-family:var(--fb);transition:all var(--tr)}
.editor-btn:hover{background:var(--bg3);border-color:var(--border2);color:var(--t1)}
.editor-area{width:100%;min-height:180px;background:var(--bg1);border:1px solid var(--border2);border-radius:0 0 var(--r8) var(--r8);padding:14px;color:var(--t1);font-size:14px;line-height:1.75;outline:none;resize:vertical;font-family:var(--fb)}
.editor-area::placeholder{color:var(--t3)}
.editor-meta-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}

/* Redirect table */
.redir-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}
.redir-row:last-child{border-bottom:none}
.redir-from{flex:1;color:var(--t2);font-family:'Courier New',monospace;font-size:11px}
.redir-arrow{color:var(--accent);font-weight:700;flex-shrink:0}
.redir-to{flex:1;color:var(--t1);font-family:'Courier New',monospace;font-size:11px}
.redir-code{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--green-s);color:var(--green);flex-shrink:0}

/* Crawl budget viz */
.bot-visit{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.bot-visit:last-child{border-bottom:none}
.bot-time{font-size:10px;color:var(--t3);width:52px;flex-shrink:0;font-family:'Courier New',monospace}
.bot-url{flex:1;font-size:11px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Courier New',monospace}
.bot-ms{font-size:10px;font-weight:700;flex-shrink:0}

/* AdSense slot cards */
.adslot-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:14px;position:relative;overflow:hidden}
.adslot-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.adslot-card.high::before{background:var(--green)}
.adslot-card.mid::before{background:var(--yellow)}
.adslot-card.low::before{background:var(--t3)}
.adslot-name{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:4px}
.adslot-dim{font-size:10px;color:var(--t3);margin-bottom:9px}
.adslot-stats{display:flex;gap:12px}
.adslot-stat{text-align:center}
.adslot-stat-n{font-size:15px;font-weight:700;color:var(--t1)}
.adslot-stat-l{font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em}

/* Settings rows */
.settings-section{margin-bottom:20px}
.settings-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:6px;padding:0 2px}
.setting-row{display:flex;align-items:center;gap:12px;background:var(--bg1);border:1px solid var(--border2);padding:11px 14px;cursor:pointer;transition:background var(--tr)}
.setting-row:not(:first-of-type){border-top:none}
.setting-row:first-of-type{border-radius:var(--r12) var(--r12) 0 0}
.setting-row:last-of-type{border-radius:0 0 var(--r12) var(--r12)}
.setting-row:only-of-type{border-radius:var(--r12)}
.setting-row:hover{background:var(--bg2)}
.setting-ico{width:30px;height:30px;background:var(--bg2);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.setting-info{flex:1}
.setting-label{font-size:13px;font-weight:500;color:var(--t1)}
.setting-sub{font-size:11px;color:var(--t3);margin-top:1px}
.setting-val{font-size:12px;color:var(--t2)}

/* WYSIWYG media embed preview */
.embed-prev{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r8);overflow:hidden;margin:8px 0}
.embed-prev-inner{padding:10px;display:flex;align-items:center;gap:10px}
.embed-ico{width:40px;height:40px;border-radius:var(--r8);background:var(--accent-s);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.embed-title{font-size:12px;font-weight:600;color:var(--t1)}
.embed-sub{font-size:11px;color:var(--t3)}

/* Scheduler time slots */
.time-slot{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg2);border-radius:var(--r8);margin-bottom:6px;border:1px solid var(--border2)}
.time-slot.filled{background:var(--accent-s);border-color:var(--accent-m)}
.time-slot-t{font-size:12px;font-weight:600;color:var(--t3);width:44px;flex-shrink:0;font-family:'Courier New',monospace}
.time-slot.filled .time-slot-t{color:var(--accent)}
.time-slot-info{flex:1;font-size:12px;color:var(--t1)}
.time-slot-plat{font-size:10px;color:var(--t3)}


/* =====================================================
   CRON JOB PANEL
===================================================== */
.cron-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.cron-row:last-child{border-bottom:none}
.cron-status{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.cron-info{flex:1}
.cron-name{font-size:13px;font-weight:600;color:var(--t1)}
.cron-schedule{font-size:10px;color:var(--t3);font-family:'Courier New',monospace;margin-top:2px}
.cron-last{font-size:11px;color:var(--t2);width:90px;flex-shrink:0;text-align:right}
.cron-next{font-size:10px;color:var(--t3);width:80px;flex-shrink:0;text-align:right}
.cron-acts{display:flex;gap:5px;flex-shrink:0}
.cron-btn{background:none;border:1px solid var(--border2);border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;cursor:pointer;transition:all var(--tr);font-family:var(--fb)}
.cron-btn.run{color:var(--green);border-color:var(--green-m)}
.cron-btn.run:hover{background:var(--green);color:#fff}
.cron-btn.stop{color:var(--red);border-color:var(--red-m)}
.cron-btn.stop:hover{background:var(--red);color:#fff}
.cron-btn.edit{color:var(--t3);border-color:var(--border2)}
.cron-btn.edit:hover{color:var(--t1);background:var(--bg2)}
.cron-progress{height:2px;background:var(--border2);border-radius:1px;margin-top:4px;overflow:hidden}
.cron-prog-fill{height:100%;border-radius:1px;background:var(--accent);animation:cron-run 3s linear infinite}
@keyframes cron-run{0%{width:0%}100%{width:100%}}

/* =====================================================
   LAZARUS BOT
===================================================== */
.laz-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;position:relative;overflow:hidden;margin-bottom:10px}
.laz-card.active{border-color:var(--green-m)}
.laz-card.active::before{content:'';position:absolute;inset:0;background:var(--green-s)}
.laz-card-inner{position:relative;z-index:1}
.laz-url{font-size:11px;font-family:'Courier New',monospace;color:var(--t3);margin-bottom:5px}
.laz-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:8px}
.laz-from{font-size:12px;color:var(--red);font-weight:600}
.laz-to{font-size:12px;color:var(--green);font-weight:600}
.laz-arrow{font-size:14px;color:var(--t3);margin:0 5px}
.laz-action-bar{display:flex;align-items:center;gap:8px;margin-top:10px}
.laz-status-badge{font-size:9px;font-weight:700;padding:3px 8px;border-radius:var(--rpill)}
.laz-processing{background:var(--accent-s);color:var(--accent);border:1px solid var(--accent-m)}
.laz-done{background:var(--green-s);color:var(--green);border:1px solid var(--green-m)}
.laz-wait{background:var(--bg2);color:var(--t3);border:1px solid var(--border2)}
.laz-steps{display:flex;gap:4px;margin-top:8px}
.laz-step{font-size:9px;padding:2px 7px;border-radius:3px;font-weight:600}
.laz-step-done{background:var(--green-s);color:var(--green)}
.laz-step-act{background:var(--accent-s);color:var(--accent)}
.laz-step-wait{background:var(--bg2);color:var(--t3)}

/* =====================================================
   ADS LIVE MANAGER
===================================================== */
.adman-preview{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r16);overflow:hidden;margin-bottom:16px}
.adman-device-tabs{display:flex;border-bottom:1px solid var(--border2)}
.adman-dtab{flex:1;padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--t3);cursor:pointer;transition:all var(--tr);background:none;border:none;font-family:var(--fb)}
.adman-dtab.on{color:var(--accent);background:var(--accent-s);border-bottom:2px solid var(--accent)}
.adman-phone{width:180px;margin:20px auto;background:var(--bg1);border:2px solid var(--border3);border-radius:24px;overflow:hidden;position:relative}
.adman-phone-notch{width:60px;height:8px;background:var(--bg3);border-radius:0 0 8px 8px;margin:0 auto}
.adman-phone-screen{padding:8px;min-height:340px}
.ad-slot-preview{border-radius:var(--r8);margin:6px 0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;cursor:pointer;transition:all var(--tr);position:relative}
.ad-slot-preview.active{background:var(--accent-s);border:2px dashed var(--accent);color:var(--accent)}
.ad-slot-preview.inactive{background:var(--bg2);border:2px dashed var(--border3);color:var(--t3)}
.ad-slot-preview:hover{transform:scale(1.02)}
.adman-freq-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.adman-freq-row:last-child{border-bottom:none}
.adman-freq-lbl{flex:1;font-size:13px;color:var(--t1);font-weight:500}
.adman-freq-sub{font-size:11px;color:var(--t3)}
.adman-freq-val{font-size:13px;font-weight:700;color:var(--accent);width:40px;text-align:right}

/* =====================================================
   I18N / MULTI-LANG
===================================================== */
.lang-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.lang-row:last-child{border-bottom:none}
.lang-flag{font-size:20px;width:30px;text-align:center;flex-shrink:0}
.lang-info{flex:1}
.lang-name{font-size:13px;font-weight:600;color:var(--t1)}
.lang-code{font-size:10px;color:var(--t3);font-family:'Courier New',monospace}
.lang-pct{font-size:11px;color:var(--t2);width:45px;text-align:right}
.lang-progress{width:80px}
.trans-table{width:100%;border-collapse:collapse;font-size:12px}
.trans-table th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);padding:7px 8px;border-bottom:1px solid var(--border2)}
.trans-table td{padding:8px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.trans-table tr:last-child td{border-bottom:none}
.trans-table tr:hover td{background:var(--bg2)}
.trans-orig{color:var(--t2)}
.trans-input{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:5px;padding:4px 7px;color:var(--t1);font-size:11px;outline:none;font-family:var(--fb)}
.trans-input:focus{border-color:var(--accent-m)}
.trans-ai{font-size:9px;color:var(--accent);cursor:pointer;white-space:nowrap}

/* =====================================================
   BULK OPERATIONS
===================================================== */
.bulk-select-bar{background:var(--accent);border-radius:var(--r12);padding:10px 16px;display:flex;align-items:center;gap:12px;margin-bottom:16px}
.bulk-count{font-size:14px;font-weight:700;color:#fff}
.bulk-actions{display:flex;gap:6px;margin-left:auto}
.bulk-act{background:#ffffff20;border:1px solid #ffffff40;border-radius:6px;color:#fff;font-size:11px;font-weight:600;padding:5px 12px;cursor:pointer;font-family:var(--fb);transition:background var(--tr)}
.bulk-act:hover{background:#ffffff30}
.bulk-table{width:100%;border-collapse:collapse}
.bulk-table th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);padding:8px 10px;border-bottom:1px solid var(--border2)}
.bulk-table td{padding:9px 10px;border-bottom:1px solid var(--border);font-size:12px;vertical-align:middle}
.bulk-table tr:last-child td{border-bottom:none}
.bulk-table tr:hover td{background:var(--bg2)}
.bulk-cb{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.bulk-selected td{background:var(--accent-s)!important}

/* =====================================================
   LIVE SPORT SCREEN
===================================================== */
.sport-wrap{max-width:720px;margin:104px auto 0;padding:0 16px 90px}
.sport-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:16px}
.sport-tabs::-webkit-scrollbar{display:none}
.sport-tab{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--rpill);padding:7px 16px;font-size:12px;font-weight:600;color:var(--t2);cursor:pointer;white-space:nowrap;transition:all var(--tr);border:none;font-family:var(--fb)}
.sport-tab.on{background:var(--accent);color:#fff;box-shadow:0 4px 16px var(--accent-g)}
.match-card{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;margin-bottom:10px;cursor:pointer;transition:all var(--tr)}
.match-card:hover{border-color:var(--accent-m);transform:translateY(-1px)}
.match-card.live{border-color:var(--red-m)}
.match-card.live::before{content:'';display:block;width:100%;height:2px;background:linear-gradient(90deg,var(--red),var(--accent));border-radius:2px 2px 0 0;margin:-16px -16px 12px;width:calc(100% + 32px)}
.match-teams{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.match-team{flex:1;text-align:center}
.match-team-name{font-family:var(--ff);font-size:15px;color:var(--t1);letter-spacing:-.02em}
.match-team-flag{font-size:28px;margin-bottom:4px}
.match-score{text-align:center;min-width:70px}
.match-score-n{font-family:var(--ff);font-size:34px;color:var(--t1);letter-spacing:-.05em;line-height:1}
.match-score-min{font-size:10px;color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.match-score-min.live{animation:flash 1.5s ease-in-out infinite}
.match-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.match-event{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}
.match-event-ico{font-size:13px}
.live-badge{background:var(--red);color:#fff;font-size:9px;font-weight:800;letter-spacing:.08em;padding:3px 8px;border-radius:var(--rpill);animation:flash 1.5s ease-in-out infinite}
/* Timeline events */
.event-timeline{display:flex;flex-direction:column;gap:0}
.ev{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.ev:last-child{border-bottom:none}
.ev-min{font-size:11px;font-weight:700;color:var(--t3);width:38px;flex-shrink:0;font-family:'Courier New',monospace}
.ev-ico{font-size:16px;width:24px;text-align:center;flex-shrink:0}
.ev-text{flex:1;font-size:12px;color:var(--t1);line-height:1.4}
.ev-team{font-size:10px;color:var(--t3)}
/* F1 specific */
.f1-grid{display:flex;flex-direction:column;gap:0}
.f1-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.f1-row:last-child{border-bottom:none}
.f1-pos{font-family:var(--ff);font-size:20px;color:var(--t4);width:28px;text-align:center;flex-shrink:0}
.f1-driver{flex:1}
.f1-name{font-size:13px;font-weight:600;color:var(--t1)}
.f1-team{font-size:10px;color:var(--t3)}
.f1-gap{font-size:12px;font-weight:700;color:var(--t2);font-family:'Courier New',monospace;width:60px;text-align:right}
.f1-lap{font-size:10px;color:var(--t3);width:50px;text-align:right}
.f1-fastest{color:var(--accent)}
/* Score ticker */
.score-ticker{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:10px 14px;margin-bottom:14px;overflow:hidden;white-space:nowrap}
.ticker-inner{display:inline-flex;gap:24px;animation:ticker 20s linear infinite}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.ticker-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--t2);flex-shrink:0}
.ticker-score{color:var(--t1);font-weight:800}
.ticker-live{color:var(--red);font-size:9px;font-weight:800;letter-spacing:.06em}

/* =====================================================
   WAR MAP SCREEN
===================================================== */
.warmap-wrap{max-width:720px;margin:94px auto 0;padding:0 16px 90px}
.map-placeholder{background:linear-gradient(135deg,#0a1628,#0d2040,#0a1628);border:1px solid #1e3a5f;border-radius:var(--r16);position:relative;overflow:hidden;margin-bottom:14px}
.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(59,158,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(59,158,255,.06) 1px,transparent 1px);background-size:40px 40px}
.map-label{position:absolute;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:3px}
.map-zone-red{background:#FF3B3B22;border:1px solid #FF3B3B44;color:#FF3B3B}
.map-zone-blue{background:#3B9EFF22;border:1px solid #3B9EFF44;color:#3B9EFF}
.map-zone-gray{background:#55546A22;border:1px solid #55546A44;color:#9A99A8}
.map-pin{position:absolute;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;cursor:pointer;transition:transform var(--tr);z-index:2}
.map-pin:hover{transform:scale(1.4)}
.map-pin-exp{background:#FF3B3B;box-shadow:0 0 12px #FF3B3B80;animation:explode 1.5s ease-in-out infinite}
.map-pin-mil{background:#F59E0B;box-shadow:0 0 8px #F59E0B40}
.map-pin-aid{background:#22C77A;box-shadow:0 0 8px #22C77A40}
.map-pin-siren{background:#FF6B2B;box-shadow:0 0 10px #FF6B2B80;animation:explode 1s ease-in-out infinite}
@keyframes explode{0%,100%{box-shadow:0 0 8px currentColor}50%{box-shadow:0 0 20px currentColor}}
.front-line{position:absolute;height:3px;background:linear-gradient(90deg,#FF3B3B,#FF6B2B,#FF3B3B);border-radius:2px;opacity:.8;animation:frontpulse 2s ease-in-out infinite}
@keyframes frontpulse{0%,100%{opacity:.6}50%{opacity:1}}
/* Satellite slider */
.sat-slider-wrap{position:relative;border-radius:var(--r12);overflow:hidden;margin-bottom:14px}
.sat-before,.sat-after{width:100%;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--t2)}
.sat-divider{position:absolute;top:0;bottom:0;width:3px;background:#fff;cursor:ew-resize;box-shadow:0 0 12px #ffffff40;z-index:3}
.sat-handle{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 2px 12px #00000040;left:-12px;cursor:ew-resize}
.sat-label{position:absolute;bottom:8px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px}
.sat-label-before{left:8px;background:#00000060;color:#fff}
.sat-label-after{right:8px;background:#FF3B3B60;color:#fff}
/* Siren alert */
.siren-alert{background:var(--red);border-radius:var(--r12);padding:12px 16px;display:flex;align-items:center;gap:12px;margin-bottom:12px;animation:sirenpulse 1s ease-in-out infinite}
@keyframes sirenpulse{0%,100%{background:var(--red)}50%{background:#cc2222}}
.siren-ico{font-size:22px}
.siren-text{flex:1}
.siren-title{font-size:13px;font-weight:700;color:#fff}
.siren-sub{font-size:11px;color:#ffffff99}
.siren-time{font-size:11px;color:#ffffff70;font-family:'Courier New',monospace}
/* War dashboard */
.war-stat{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:14px;text-align:center}
.war-stat-n{font-family:var(--ff);font-size:22px;letter-spacing:-.03em;margin-bottom:3px}
.war-stat-l{font-size:10px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.war-side{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}
/* Claim comparison */
.claim-box{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);overflow:hidden;margin-bottom:10px}
.claim-head{padding:10px 14px;background:var(--bg2);border-bottom:1px solid var(--border2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--t3)}
.claim-cols{display:grid;grid-template-columns:1fr 1fr}
.claim-col{padding:12px 14px;border-right:1px solid var(--border2)}
.claim-col:last-child{border-right:none}
.claim-side{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.claim-text{font-size:12px;color:var(--t1);line-height:1.5}

/* =====================================================
   OSINT LAB SCREEN
===================================================== */
.osint-wrap{max-width:720px;margin:104px auto 0;padding:0 16px 90px}
.osint-tool{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);overflow:hidden;margin-bottom:10px;cursor:pointer;transition:all var(--tr)}
.osint-tool:hover{border-color:var(--accent-m)}
.osint-tool-head{padding:14px 16px;display:flex;align-items:center;gap:12px}
.osint-ico{width:42px;height:42px;border-radius:var(--r12);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.osint-info{flex:1}
.osint-name{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:2px}
.osint-sub{font-size:12px;color:var(--t2)}
.osint-body{padding:0 16px 14px;border-top:1px solid var(--border)}
.embed-frame{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r8);height:200px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.embed-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--bg2)}
.plane-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.ship-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.radar-ring{position:absolute;border-radius:50%;border:1px solid var(--accent-m);animation:radar-expand 3s ease-out infinite}
@keyframes radar-expand{0%{width:20px;height:20px;opacity:.8}100%{width:180px;height:180px;opacity:0}}
/* Deepfake bar */
.deepfake-bar{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r12);padding:12px 14px;margin-bottom:10px}
.deepfake-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.deepfake-img{width:54px;height:54px;border-radius:var(--r8);background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.deepfake-result{flex:1}
.deepfake-score{font-family:var(--ff);font-size:22px;letter-spacing:-.03em}
.deepfake-label{font-size:11px;color:var(--t3);margin-top:2px}
.deepfake-meter{height:8px;background:var(--border2);border-radius:4px;overflow:hidden;margin-bottom:6px}
.deepfake-fill{height:100%;border-radius:4px}
/* Source tree */
.source-tree{display:flex;flex-direction:column;gap:6px}
.src-leaf{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg2);border-radius:var(--r8);border:1px solid var(--border)}
.src-leaf-ico{font-size:14px;width:20px;text-align:center;flex-shrink:0}
.src-leaf-name{font-size:12px;color:var(--t1);flex:1}
.src-leaf-trust{font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--rpill)}
.slt-high{background:var(--green-s);color:var(--green)}
.slt-mid{background:var(--yellow-s);color:var(--yellow)}
.slt-low{background:var(--red-s);color:var(--red)}
/* Smart tooltip */
.tooltip-demo{position:relative;display:inline}
.tooltip-trigger{color:var(--accent);border-bottom:1px dashed var(--accent);cursor:pointer;font-weight:600}
.tooltip-box{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:200px;background:var(--bg1);border:1px solid var(--accent-m);border-radius:var(--r12);padding:10px 12px;z-index:100;box-shadow:var(--shadow);display:none}
.tooltip-demo:hover .tooltip-box{display:block}
.tooltip-box::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--accent-m)}

/* =====================================================
   HABER DETAY EK ÖZELLIKLER
===================================================== */
.mindmap-wrap{background:var(--bg1);border:1px solid var(--border2);border-radius:var(--r16);padding:16px;margin-bottom:16px;overflow:hidden}
.mm-center{background:var(--accent);color:#fff;border-radius:var(--rpill);padding:7px 16px;font-size:12px;font-weight:700;display:inline-block;margin:0 auto}
.mm-line{stroke:var(--border3);stroke-width:1.5;fill:none}
.mm-node{cursor:pointer}
.mm-node rect{fill:var(--bg2);stroke:var(--border2);rx:8}
.mm-node text{fill:var(--t2);font-size:10px;font-family:var(--fb)}
.mm-node:hover rect{stroke:var(--accent-m);fill:var(--accent-s)}

/* Zero-click mode indicator */
.zero-click-banner{background:linear-gradient(135deg,var(--green-s),var(--bg1));border:1px solid var(--green-m);border-radius:var(--r12);padding:12px 16px;display:flex;align-items:center;gap:12px;margin-bottom:16px}
.zcb-pulse{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 var(--green-m);animation:zcpulse 2s infinite}
@keyframes zcpulse{0%{box-shadow:0 0 0 0 var(--green-m)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.zcb-text{flex:1}
.zcb-title{font-size:12px;font-weight:700;color:var(--green)}
.zcb-sub{font-size:11px;color:var(--t3)}

/* =====================================================
   RESPONSIVE
===================================================== */
@media(max-width:900px){
  .met-grid{grid-template-columns:repeat(2,1fr)}
  .mod-grid{grid-template-columns:repeat(4,1fr)}
  .adm2{grid-template-columns:1fr}
  .adm3{grid-template-columns:1fr 1fr}
  .adm-sidebar{display:none}
  .adm-main{margin-left:0}
  #s-admin.on{display:block}
  .meters{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .grid4{grid-template-columns:repeat(2,1fr)}
  .coll-grid{grid-template-columns:repeat(2,1fr)}
  .int-grid{grid-template-columns:repeat(2,1fr)}
  .adm3{grid-template-columns:1fr}
  .met-grid{grid-template-columns:1fr 1fr}
  .badge-wall{grid-template-columns:repeat(3,1fr)}
  .rev-big{flex-direction:column}
  .meters{grid-template-columns:1fr 1fr}
}
