body{background:#f5f7fb;color:#172033;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0}
.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:#101521;color:#fff;padding:20px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}
.brand-mark,.login-brand{width:42px;height:42px;display:grid;place-items:center;background:#e50914;color:#fff;font-weight:800;border-radius:8px}
.brand span{display:block;color:#9aa5ba;font-size:12px}
.sidebar .nav-link{color:#cbd5e1;border-radius:8px;margin-bottom:4px;display:flex;gap:10px;align-items:center}
.sidebar .nav-link.active,.sidebar .nav-link:hover{background:#242d3f;color:#fff}
.content{padding:24px;min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.topbar h1{font-size:26px;margin:0;font-weight:800}
.topbar p{margin:2px 0 0;color:#64748b}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stat-card,.panel{background:#fff;border:1px solid #e5e9f1;border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.stat-card{padding:18px;display:flex;align-items:center;justify-content:space-between}
.stat-card span{color:#64748b;font-size:13px}
.stat-card strong{display:block;font-size:26px;line-height:1.1}
.stat-card i{font-size:26px;color:#e50914}
.panel{padding:18px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel-head h2{font-size:17px;margin:0;font-weight:800}
.decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.decision{border-left:4px solid #64748b;background:#f8fafc;padding:14px;border-radius:8px}
.decision p{margin:4px 0 0;color:#475569}
.decision-success{border-color:#16a34a}.decision-warning{border-color:#f59e0b}.decision-info{border-color:#0ea5e9}
.thumb{width:96px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#e2e8f0}
.sync-limit{width:92px}
.login-body{min-height:100vh;display:grid;place-items:center;background:#111827}
.login-panel{width:min(420px,calc(100vw - 32px));background:#fff;padding:30px;border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.login-panel h1{font-size:24px;margin:18px 0 4px}
.login-panel p{color:#64748b;margin-bottom:22px}
.analytics-chart{height:325px}.analytics-heat-wrap{overflow:auto;max-height:720px}.analytics-heat{border-collapse:separate;border-spacing:2px;min-width:3900px}.analytics-heat th,.analytics-heat td{min-width:62px;height:34px;border-radius:3px;text-align:center;white-space:nowrap;font-size:11px}.analytics-heat th{position:sticky;top:0;z-index:2;background:#edf1f6}.analytics-heat th small{display:block;color:#64748b}.analytics-heat .channel{position:sticky;left:0;z-index:3;min-width:185px;text-align:left;padding:0 9px;background:#fff;font-weight:700}.analytics-heat thead .channel{z-index:4;background:#e7edf5}.heat-cell{cursor:pointer;font-weight:750}.heat-cell:hover{outline:2px solid #111827}#analyticsMap{height:560px;border-radius:8px}.analytics-scroll{max-height:560px}.analytics-session{display:grid;grid-template-columns:125px minmax(220px,1fr) 180px 90px;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #e5e9f1}.analytics-session small{display:block;color:#64748b}
.box-slot-grid{display:grid;grid-template-columns:repeat(8,minmax(115px,1fr));gap:8px}.box-slot{border:1px solid #e5e9f1;border-radius:8px;padding:10px;min-height:90px}.box-slot.active{border-color:#2563eb;background:#eff6ff}.box-slot span,.box-slot small{display:block;margin-top:5px}.box-slot span{font-weight:700}.box-slot small{color:#64748b}
.box-matrix-help{display:flex;gap:10px;align-items:flex-start;background:#f8fafc;border:1px solid #e8edf4;border-radius:8px;padding:11px 13px;margin-bottom:12px;color:#475569;font-size:.86rem}.box-matrix-help i{color:#2563eb;font-size:1.05rem}.box-matrix-help em{display:inline-block;background:#2563eb;color:#fff;border-radius:10px;padding:1px 7px;font-style:normal;font-size:11px}.box-matrix-wrap{overflow:auto;max-height:720px;cursor:grab;user-select:none;border:1px solid #edf0f5;border-radius:8px}.box-matrix-wrap.dragging{cursor:grabbing}.box-matrix{min-width:900px;border-collapse:separate;border-spacing:0;margin:0}.box-matrix th,.box-matrix td{border-right:1px solid #edf0f5!important;border-bottom:1px solid #edf0f5!important;border-top:0!important;border-left:0!important}.box-matrix thead th{position:sticky;top:0;z-index:3;background:#f4f7fb;white-space:nowrap}.box-matrix th:first-child{position:sticky;left:0;z-index:2;background:#fafbfd;min-width:105px}.box-matrix thead th:first-child{z-index:4;background:#f4f7fb}.box-matrix td{min-width:170px;vertical-align:top;background:#fff}.box-matrix td.has-data{background:#f5f9ff}.matrix-channel{font-weight:650;margin-bottom:4px}.matrix-channel span{display:inline-block;background:#2563eb;color:#fff;border-radius:10px;padding:1px 7px;font-size:11px}
#boxReportMap{height:365px;border-radius:8px;border:1px solid #edf0f5}
.box-chart-block h3{font-size:.95rem;font-weight:800;margin:0}.box-chart-block p{font-size:.8rem;color:#64748b;margin:2px 0 8px}.box-report-chart{height:220px}
.channel-performance-chart{height:300px;margin-bottom:14px}.channel-ranking-table{max-height:520px}.channel-rank{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#eef2ff;color:#3730a3;font-weight:800;font-size:11px}.channel-share{width:80px;height:6px;background:#e8edf4;border-radius:10px;overflow:hidden}.channel-share span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#0ea5e9);border-radius:10px}.channel-ranking-table small{color:#64748b;font-size:10px}
.box-count-page{--box-blue:#2563eb;--box-ink:#111827;--box-muted:#667085;--box-line:#e8edf5;display:grid;gap:18px}.box-count-hero{position:relative;overflow:hidden;min-height:260px;padding:38px 42px;border-radius:18px;background:radial-gradient(circle at 80% 0%,rgba(96,165,250,.32),transparent 35%),linear-gradient(125deg,#0b1220,#172554 58%,#1d4ed8);color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 22px 48px rgba(30,64,175,.2)}.box-count-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,#000,transparent)}.box-count-hero>div{position:relative;z-index:1}.box-count-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#bfdbfe;font-size:11px;font-weight:800;letter-spacing:.13em}.box-count-hero h2{font-size:clamp(2rem,3.5vw,3.45rem);line-height:1.04;letter-spacing:-.045em;font-weight:850;margin:14px 0}.box-count-hero h2 span{color:#60a5fa}.box-count-hero p{color:#cbd5e1;max-width:670px;font-size:.98rem;line-height:1.7;margin:0}.box-count-hero-art{width:220px;height:190px;display:grid;place-items:center;flex:0 0 auto}.signal-core,.signal-ring{position:absolute;border-radius:50%}.signal-core{width:76px;height:76px;display:grid;place-items:center;background:rgba(255,255,255,.95);color:#2563eb;font-size:31px;box-shadow:0 0 45px rgba(96,165,250,.65)}.signal-ring{border:1px solid rgba(147,197,253,.36)}.ring-one{width:120px;height:120px}.ring-two{width:170px;height:170px}.ring-three{width:220px;height:220px}.box-count-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.box-count-stats article{background:#fff;border:1px solid var(--box-line);border-radius:14px;padding:18px;display:flex;gap:14px;align-items:center;box-shadow:0 8px 24px rgba(15,23,42,.045);transition:.2s ease}.box-count-stats article:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,23,42,.08)}.box-stat-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:20px}.box-stat-icon.blue{color:#2563eb;background:#eff6ff}.box-stat-icon.violet{color:#7c3aed;background:#f5f3ff}.box-stat-icon.green{color:#059669;background:#ecfdf5}.box-stat-icon.orange{color:#ea580c;background:#fff7ed}.box-count-stats span,.box-count-stats small{display:block;color:var(--box-muted)}.box-count-stats span{font-size:12px;font-weight:650}.box-count-stats strong{font-size:25px;line-height:1.12;color:var(--box-ink)}.box-count-stats small{font-size:10px;margin-top:2px}.box-count-panel{background:#fff;border:1px solid var(--box-line);border-radius:16px;box-shadow:0 14px 40px rgba(15,23,42,.055);overflow:hidden}.box-count-panel-head{padding:22px 24px;display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid var(--box-line)}.box-count-kicker{color:#2563eb;font-size:10px;font-weight:800;letter-spacing:.14em}.box-count-panel-head h3{font-size:20px;font-weight:800;margin:3px 0}.box-count-panel-head p{margin:0;color:var(--box-muted);font-size:13px}.box-live-status{white-space:nowrap;border:1px solid #d1fae5;background:#ecfdf5;color:#047857;border-radius:20px;padding:7px 11px;font-size:11px;font-weight:750}.box-live-status span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12);margin-right:6px}.box-filter-bar{padding:16px 24px;background:#fafbfd;border-bottom:1px solid var(--box-line);display:grid;grid-template-columns:minmax(280px,1.7fr) minmax(190px,1fr) 130px auto;gap:10px;align-items:stretch}.box-search-control,.box-select-control{position:relative;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto 1fr;align-items:center;background:#fff;border:1px solid #dfe5ee;border-radius:10px;padding:8px 12px;transition:.2s}.box-search-control:focus-within,.box-select-control:focus-within{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.box-search-control>i,.box-select-control>i{grid-row:1/3;color:#64748b}.box-search-control>span,.box-select-control>span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:800}.box-search-control input,.box-select-control select{border:0;outline:0;background:transparent;padding:0;color:#172033;font-weight:650;font-size:13px;min-width:0}.box-clear-button{border:1px solid #dfe5ee;border-radius:10px;background:#fff;color:#475569;padding:0 16px;font-size:12px;font-weight:700}.box-clear-button:hover{background:#f1f5f9;color:#172033}.box-table-shell{position:relative;min-height:230px}.box-directory-table thead th{background:#f8fafc;color:#64748b;text-transform:uppercase;letter-spacing:.055em;font-size:9px;font-weight:800;padding:12px 18px;border-color:#edf1f6;white-space:nowrap}.box-directory-table tbody td{padding:14px 18px;border-color:#f0f3f7;font-size:12px}.box-directory-table tbody tr{transition:.18s ease}.box-directory-table tbody tr:hover{background:#f8fbff}.box-identity{display:flex;align-items:center;gap:11px;text-decoration:none;color:#172033;min-width:120px}.box-device-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(145deg,#eff6ff,#dbeafe);color:#2563eb;display:grid;place-items:center;font-size:17px}.box-identity strong,.box-identity small{display:block}.box-identity strong{font-size:14px}.box-identity small{color:#94a3b8;font-size:9px}.box-region-badge{display:inline-flex;align-items:center;gap:5px;background:#f1f5f9;color:#475569;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:700;text-transform:capitalize}.box-region-badge i{color:#ef4444}.box-coordinates strong,.box-coordinates span,.box-coverage strong,.box-coverage span{display:block}.box-coordinates strong{font-size:11px}.box-coordinates span,.box-coverage span{font-size:9px;color:#94a3b8}.box-count-pill{display:inline-block;min-width:52px;padding:6px 10px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-weight:850;text-align:center}.box-users{display:inline-flex;align-items:center;gap:5px;color:#475569;font-weight:700}.box-users i{color:#7c3aed}.box-coverage strong{font-size:10px}.box-coverage i{font-size:8px}.box-open-button{display:inline-flex;align-items:center;gap:7px;text-decoration:none;border:1px solid #dbe3ef;border-radius:8px;color:#334155;padding:7px 9px;font-weight:750;font-size:10px;transition:.18s}.box-open-button:hover{background:#172554;border-color:#172554;color:#fff}.box-loading-state{position:absolute;inset:0;z-index:3;background:rgba(255,255,255,.94);display:flex;flex-direction:column;align-items:center;justify-content:center}.box-loading-state strong{margin-top:10px;font-size:13px}.box-loading-state small{color:#94a3b8;font-size:10px}.box-loader{display:flex;gap:5px}.box-loader span{width:8px;height:8px;border-radius:50%;background:#2563eb;animation:boxPulse 1s infinite alternate}.box-loader span:nth-child(2){animation-delay:.2s}.box-loader span:nth-child(3){animation-delay:.4s}@keyframes boxPulse{to{opacity:.25;transform:translateY(-5px)}}.box-empty-state{padding:50px;display:flex;flex-direction:column;align-items:center;color:#64748b}.box-empty-state i{font-size:30px;color:#94a3b8}.box-empty-state strong{color:#334155;margin-top:8px}.box-empty-state span{font-size:11px}.box-empty-state.error i{color:#ef4444}.box-pagination{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;border-top:1px solid var(--box-line);background:#fafbfd}.box-pagination strong,.box-pagination small{display:block}.box-pagination strong{font-size:11px;color:#334155}.box-pagination small{font-size:9px;color:#94a3b8}.box-page-controls{display:flex;align-items:center;gap:8px}.box-page-controls button{width:32px;height:32px;border:1px solid #dbe3ef;border-radius:8px;background:#fff;color:#334155}.box-page-controls button:disabled{opacity:.35}.box-page-controls span{font-size:10px;font-weight:800;background:#172554;color:#fff;border-radius:8px;padding:7px 12px}
@media (max-width: 992px){
    .admin-shell{grid-template-columns:1fr}
    .sidebar{position:relative;height:auto}
    .metric-grid,.decision-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .box-slot-grid{grid-template-columns:repeat(4,minmax(110px,1fr))}
    .box-count-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.box-filter-bar{grid-template-columns:1fr 1fr}.box-count-hero-art{display:none}
}
@media (max-width: 640px){
    .content{padding:16px}
    .topbar{align-items:flex-start;flex-direction:column}
    .metric-grid,.decision-grid{grid-template-columns:1fr}
    .box-slot-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}
    .box-count-hero{padding:28px 22px;min-height:auto}.box-count-hero h2{font-size:2rem}.box-count-stats{grid-template-columns:1fr}.box-filter-bar{grid-template-columns:1fr;padding:14px}.box-count-panel-head{align-items:flex-start;flex-direction:column}.box-live-status{display:none}.box-pagination{align-items:flex-start;gap:12px;flex-direction:column}.box-open-button span{display:none}
}
