:root{
  --bg:#07111f;--panel:#0d1b2d;--panel2:#12243a;--line:#27405d;--text:#edf5ff;--muted:#9eb2c8;
  --accent:#2f80ed;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444;--info:#38bdf8;
  --shadow:0 12px 32px rgba(0,0,0,.28);--radius:18px;--zoom:1;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:calc(16px * var(--zoom));}
body{margin:0;background:linear-gradient(180deg,#07111f 0%,#0b1728 42%,#091322 100%);min-height:100vh;color:var(--text)}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
a{color:#9bd0ff}
.app{max-width:1180px;margin:0 auto;padding:10px 12px 92px}
.topbar{position:sticky;top:0;z-index:30;background:rgba(7,17,31,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);margin:0 -12px 12px;padding:10px 12px}
.brand-row{display:flex;gap:10px;align-items:center;justify-content:space-between}.brand h1{font-size:1.05rem;margin:0}.brand p{margin:2px 0 0;color:var(--muted);font-size:.77rem}.badge{padding:4px 8px;border:1px solid var(--line);border-radius:999px;font-size:.72rem;color:#cfe7ff;background:#0c2238}
.status-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.status-pill{font-size:.72rem;padding:5px 8px;border-radius:999px;border:1px solid var(--line);background:#0a1a2b;color:var(--muted)}.status-pill.ok{color:#bff3cf;border-color:#23623a}.status-pill.warn{color:#ffe3a5;border-color:#79551b}.status-pill.bad{color:#ffc2c2;border-color:#7a2929}
.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin:10px 0}.search{width:100%;background:#0b1d30;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.zoom-select{background:#0b1d30;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.btn{border:1px solid #355577;background:#123459;color:#fff;padding:9px 11px;border-radius:11px;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(1.08)}.btn.primary{background:#1e64b7;border-color:#3b8bf0}.btn.good{background:#17633b;border-color:#2e9d60}.btn.warn{background:#714b0f;border-color:#ad751a}.btn.danger{background:#762b2b;border-color:#a84848}.btn.ghost{background:transparent}.btn.small{padding:6px 8px;font-size:.74rem;font-weight:650}.btn.full{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}
.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:linear-gradient(180deg,var(--panel),#0b1828);border:1px solid var(--line);border-radius:var(--radius);padding:13px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 10px}.card h2{font-size:1rem}.card h3{font-size:.9rem}.sub{color:var(--muted);font-size:.78rem;line-height:1.45}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 10px}.section-title h2{margin:0;font-size:1rem}
.kpi{display:flex;flex-direction:column;gap:2px}.kpi strong{font-size:1.6rem}.kpi span{color:var(--muted);font-size:.72rem}
.level-critical{border-left:5px solid #dc2626}.level-important{border-left:5px solid #f59e0b}.level-watch{border-left:5px solid #eab308}.level-info{border-left:5px solid #3b82f6}
.signal-card,.source-card,.rule-card,.transfer-card,.doc-card{border:1px solid var(--line);border-radius:14px;padding:11px;background:#0a1b2d;margin-bottom:8px}.signal-head,.row-between{display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.signal-title{font-weight:800}.mini{font-size:.72rem;color:var(--muted);line-height:1.4}.chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.chip{font-size:.67rem;padding:3px 6px;border-radius:999px;border:1px solid var(--line);background:#102a43;color:#d7e9fa}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:middle}.empty{padding:16px;border:1px dashed #38536d;border-radius:13px;color:var(--muted);text-align:center}
.radar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.radar-col{border:1px solid var(--line);border-radius:15px;padding:10px;background:#091827}.radar-col h3{font-size:.83rem;margin:0 0 7px}.radar-item{padding:8px;border-radius:10px;background:#10243a;margin-top:6px;display:flex;justify-content:space-between;gap:8px}.radar-item b{font-size:.76rem}.radar-item span{font-size:.67rem;color:var(--muted)}
.timeline{position:relative;padding-left:18px}.timeline:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:2px;background:#294967}.timeline-item{position:relative;padding:0 0 13px 10px}.timeline-item:before{content:"";position:absolute;left:-17px;top:4px;width:9px;height:9px;border-radius:50%;background:#4da3ff;border:2px solid #07111f}.timeline-item b{font-size:.78rem}.timeline-item div{font-size:.7rem;color:var(--muted)}
.view{display:none}.view.active{display:block}.nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background:rgba(4,12,22,.98);border-top:1px solid var(--line);display:flex;overflow-x:auto;padding:7px max(7px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));gap:5px}.nav button{min-width:74px;background:#0c1f32;border:1px solid #263f57;color:#c7d8e8;border-radius:10px;padding:7px 6px;font-size:.64rem}.nav button.active{background:#1b4f82;color:#fff;border-color:#4f91cf}
label{display:block;color:#bdd0e2;font-size:.72rem;margin:0 0 4px}.field{margin-bottom:9px}.field input,.field select,.field textarea{width:100%;border:1px solid #34516d;border-radius:11px;background:#081827;color:#f5f9ff;padding:9px 10px}.field textarea{min-height:90px;resize:vertical}.field textarea.tall{min-height:150px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.form-actions{display:flex;gap:7px;flex-wrap:wrap}.required:after{content:" *";color:#ff9d9d}.help{font-size:.68rem;color:var(--muted);line-height:1.45}.notice{padding:10px;border-radius:12px;border:1px solid #34516d;background:#0b2135;font-size:.74rem;line-height:1.45}.notice.ok{border-color:#2c6c45;background:#0d2a20}.notice.warn{border-color:#7b5b20;background:#2c240d}.notice.bad{border-color:#803333;background:#301414}
.colors{display:flex;flex-wrap:wrap;gap:7px}.color-btn{width:31px;height:31px;border-radius:9px;border:3px solid transparent;padding:0}.color-btn.selected{border-color:#fff;box-shadow:0 0 0 2px #315674}.swatch-red{background:#ef4444}.swatch-orange{background:#f97316}.swatch-yellow{background:#eab308}.swatch-green{background:#22c55e}.swatch-turquoise{background:#14b8a6}.swatch-blue{background:#3b82f6}.swatch-indigo{background:#6366f1}.swatch-violet{background:#a855f7}.swatch-pink{background:#ec4899}.swatch-gray{background:#94a3b8}
.level-badge{padding:4px 7px;border-radius:8px;font-size:.68rem;font-weight:800}.level-badge.critical{background:#491313;color:#ffb4b4}.level-badge.important{background:#4a3007;color:#ffd58c}.level-badge.watch{background:#484008;color:#fff2a2}.level-badge.info{background:#12345f;color:#bcdcff}
.tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:10px}.tabs button{white-space:nowrap}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.pre{white-space:pre-wrap;word-break:break-word;background:#06111e;border:1px solid #28455f;border-radius:12px;padding:11px;min-height:80px;font-size:.74rem;line-height:1.48}.ai-box{border:1px solid #566083;background:#101730;border-radius:14px;padding:11px}.ai-box .tag{font-weight:800;color:#d8d7ff;font-size:.72rem;margin-bottom:7px}.locked{border:1px solid #2e6c52;background:#0d271f;border-radius:13px;padding:10px}.locked b{color:#baf2d5}.cloud-state{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:.75rem}.cloud-state b{color:#dcedff}.cloud-state span{color:var(--muted)}
.table-wrap{overflow-x:auto}.simple-table{width:100%;border-collapse:collapse;font-size:.72rem}.simple-table th,.simple-table td{padding:8px;border-bottom:1px solid #253d54;text-align:left;vertical-align:top}.simple-table th{color:#a9c8e3;font-weight:700}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:100;display:none;align-items:flex-start;justify-content:center;padding:20px 10px;overflow:auto}.modal.open{display:flex}.modal-card{width:min(820px,100%);background:#0c1a2b;border:1px solid #395a78;border-radius:18px;padding:14px;box-shadow:0 24px 70px rgba(0,0,0,.5)}.diag-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:7px 0;border-bottom:1px solid #233a4f;font-size:.72rem}.diag-ok{color:#66e69a;font-weight:800}.diag-bad{color:#ff8d8d;font-weight:800}.diag-warn{color:#ffd166;font-weight:800}
.capture-fab{position:fixed;right:14px;bottom:78px;z-index:50;width:54px;height:54px;border-radius:50%;font-size:1.35rem;background:#1f6fd0;color:#fff;border:2px solid #76b5ff;box-shadow:0 10px 24px rgba(0,0,0,.4)}
@media(max-width:760px){.grid.two,.grid.three,.grid.four,.split,.form-grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr auto}.toolbar .btn.capture-top{grid-column:1/-1}.radar-grid{grid-template-columns:1fr}.app{padding-left:9px;padding-right:9px}.topbar{margin-left:-9px;margin-right:-9px}.card{padding:11px}.brand-row{align-items:flex-start}.brand p{max-width:78vw}.signal-head{flex-direction:column}.nav button{min-width:68px}}
@media(min-width:761px){.capture-fab{display:none}}
