/* Dead Simple Threat Intelligence v6.0 - Final CISO Dashboard */
:root {
    --dsc-bg: #0a0a0f;
    --dsc-bg-card: #12121a;
    --dsc-bg-hover: rgba(255,255,255,0.03);
    --dsc-border: rgba(255,255,255,0.1);
    --dsc-border-light: rgba(255,255,255,0.05);
    --dsc-text: #f0f0f5;
    --dsc-text-muted: #a0a0b0;
    --dsc-text-dim: #606070;
    --dsc-cyan: #22d3ee;
    --dsc-violet: #a78bfa;
    --dsc-red: #f43f5e;
    --dsc-amber: #fbbf24;
    --dsc-green: #22c55e;
    --dsc-red-dim: rgba(244,63,94,0.15);
    --dsc-font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --dsc-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --dsc-radius: 10px;
    --dsc-radius-sm: 6px;
}
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

.dsc-dashboard{font-family:var(--dsc-font);background:var(--dsc-bg);color:var(--dsc-text);line-height:1.5;-webkit-font-smoothing:antialiased;padding:1.5rem;border-radius:var(--dsc-radius)}
.dsc-dashboard *{box-sizing:border-box;margin:0;padding:0}

/* Header */
.dsc-dash-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--dsc-border)}
.dsc-dash-left{display:flex;align-items:center;gap:1rem}
.dsc-dash-title h2{font-size:1.4rem;font-weight:700;margin:0;color:var(--dsc-text)}
.dsc-dash-title h2 span{color:var(--dsc-cyan)}
.dsc-dash-controls{display:flex;align-items:center;gap:0.75rem}
.dsc-live-indicator{display:flex;align-items:center;gap:0.4rem;font-size:0.7rem;font-weight:600;color:var(--dsc-green);text-transform:uppercase;letter-spacing:0.05em}
.dsc-live-dot{width:8px;height:8px;background:var(--dsc-green);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,0.6)}50%{box-shadow:0 0 0 6px rgba(34,197,94,0)}}
.dsc-clock{font-family:var(--dsc-mono);font-size:0.85rem;color:var(--dsc-text-muted);background:rgba(0,0,0,0.3);padding:0.3rem 0.6rem;border-radius:4px}
.dsc-select{padding:0.35rem 1.5rem 0.35rem 0.6rem;font-size:0.75rem;background:rgba(0,0,0,0.4) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%2398989a'%3E%3Cpath d='M5 7L0 2h10z'/%3E%3C/svg%3E") no-repeat right 0.5rem center;border:1px solid var(--dsc-border);border-radius:4px;color:var(--dsc-text);cursor:pointer;appearance:none}
.dsc-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.5rem 1rem;font-family:var(--dsc-font);font-size:0.75rem;font-weight:600;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all 0.2s;white-space:nowrap;text-decoration:none}
.dsc-btn-primary{background:var(--dsc-cyan);color:#000;border-color:var(--dsc-cyan)}
.dsc-btn-primary:hover{background:#06b6d4;box-shadow:0 4px 15px rgba(34,211,238,0.25);transform:translateY(-1px)}
.dsc-btn-tv{background:rgba(255,255,255,0.05);color:var(--dsc-text);border-color:var(--dsc-border)}
.dsc-btn-tv:hover{background:rgba(255,255,255,0.1);border-color:var(--dsc-text-muted)}
.dsc-btn-ghost{background:transparent;color:var(--dsc-text-muted);border-color:var(--dsc-border)}
.dsc-btn-ghost:hover{background:rgba(255,255,255,0.05);color:var(--dsc-text);border-color:var(--dsc-text-muted)}

/* News Ticker - JS-based scrolling */
.dsc-ticker{background:rgba(244,63,94,0.08);border:1px solid rgba(244,63,94,0.15);border-radius:var(--dsc-radius);margin-bottom:1.25rem;overflow:hidden}
.dsc-ticker-header{display:flex;align-items:center;background:rgba(244,63,94,0.1);padding:0.35rem 0.75rem;border-bottom:1px solid rgba(244,63,94,0.15)}
.dsc-ticker-badge{font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--dsc-red);display:flex;align-items:center;gap:0.4rem}
.dsc-ticker-dot{width:6px;height:6px;background:var(--dsc-red);border-radius:50%;animation:tickerPulse 1s infinite}
@keyframes tickerPulse{0%,100%{opacity:1}50%{opacity:0.3}}
.dsc-ticker-content{overflow:hidden;padding:0.4rem 0}
.dsc-ticker-track{display:inline-flex;white-space:nowrap;will-change:transform}
.dsc-ticker-set{display:inline-flex;flex-shrink:0}
.dsc-ticker-item{display:inline-flex;align-items:center;padding:0 1.5rem;font-size:0.7rem;color:var(--dsc-text);flex-shrink:0}
.dsc-ticker-item::before{content:'';width:4px;height:4px;background:var(--dsc-cyan);border-radius:50%;margin-right:0.6rem;flex-shrink:0}
.dsc-ticker-source{color:var(--dsc-text-dim);font-size:0.6rem;margin-left:0.4rem}

/* Intro Section */
.dsc-intro{background:linear-gradient(135deg,rgba(34,211,238,0.08),rgba(167,139,250,0.04));border:1px solid rgba(34,211,238,0.15);border-radius:var(--dsc-radius);padding:1.25rem;margin-bottom:1.25rem}
.dsc-intro-title{font-size:1.1rem;font-weight:700;margin-bottom:0.5rem;color:var(--dsc-text)}
.dsc-intro-text{font-size:0.8rem;color:var(--dsc-text-muted);line-height:1.6}
.dsc-intro-features{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:0.75rem}
.dsc-intro-feature{display:flex;align-items:center;gap:0.35rem;font-size:0.7rem;color:var(--dsc-cyan);background:rgba(34,211,238,0.1);padding:0.25rem 0.6rem;border-radius:100px}

/* AI Summary - Morning Briefing */
.dsc-ai-summary{background:var(--dsc-bg-card);border:1px solid var(--dsc-border);border-radius:var(--dsc-radius);padding:1rem;margin-bottom:1.25rem;position:relative;overflow:hidden}
.dsc-ai-summary::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--dsc-violet),var(--dsc-cyan),var(--dsc-violet));background-size:200% 100%;animation:shimmer 3s linear infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.dsc-ai-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.75rem}
.dsc-ai-header-left{display:flex;align-items:center;gap:0.5rem}
.dsc-ai-badge{font-size:0.55rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;padding:0.2rem 0.5rem;border-radius:4px;background:linear-gradient(135deg,var(--dsc-violet),var(--dsc-cyan));color:#000}
.dsc-ai-title{font-size:0.9rem;font-weight:600;color:var(--dsc-text)}
.dsc-ai-refresh{display:inline-flex;align-items:center;gap:0.4rem;padding:0.4rem 0.75rem;font-size:0.65rem;font-weight:600;background:linear-gradient(135deg,rgba(167,139,250,0.15),rgba(34,211,238,0.15));border:1px solid rgba(167,139,250,0.3);border-radius:6px;color:var(--dsc-text-muted);cursor:pointer;transition:all 0.2s}
.dsc-ai-refresh:hover{background:linear-gradient(135deg,rgba(167,139,250,0.25),rgba(34,211,238,0.25));color:var(--dsc-text);border-color:var(--dsc-cyan);transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,211,238,0.2)}
.dsc-ai-refresh.loading{pointer-events:none;opacity:0.7}
.dsc-ai-refresh-icon{font-size:0.75rem;transition:transform 0.3s}
.dsc-ai-refresh.loading .dsc-ai-refresh-icon{animation:spin 1s linear infinite}
.dsc-ai-content{font-size:0.85rem;color:var(--dsc-text);line-height:1.7}
.dsc-ai-content strong{color:var(--dsc-cyan)}
.dsc-ai-content ul{margin:0.5rem 0;padding-left:1.25rem}
.dsc-ai-content li{margin:0.25rem 0;color:var(--dsc-text-muted)}
.dsc-ai-footer{display:flex;align-items:center;justify-content:space-between;margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--dsc-border-light)}
.dsc-ai-time{font-size:0.6rem;color:var(--dsc-text-dim)}

/* Stats */
.dsc-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:0.75rem;margin-bottom:1.25rem}
@media(max-width:1100px){.dsc-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.dsc-stats{grid-template-columns:repeat(2,1fr)}}
.dsc-stat{background:var(--dsc-bg-card);border:1px solid var(--dsc-border);border-radius:var(--dsc-radius);padding:1rem;text-align:center;position:relative;overflow:hidden}
.dsc-stat::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--dsc-cyan),transparent);animation:scanLine 3s ease-in-out infinite}
@keyframes scanLine{0%{left:-100%}50%{left:100%}100%{left:100%}}
.dsc-stat:nth-child(2)::before{animation-delay:0.5s}
.dsc-stat:nth-child(3)::before{animation-delay:1s}
.dsc-stat:nth-child(4)::before{animation-delay:1.5s}
.dsc-stat:nth-child(5)::before{animation-delay:2s}
.dsc-stat:nth-child(6)::before{animation-delay:2.5s}
.dsc-stat-value{font-size:1.75rem;font-weight:700;font-family:var(--dsc-mono);color:var(--dsc-cyan);line-height:1}
.dsc-stat-value.counting{animation:countPulse 0.3s ease}
@keyframes countPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}
.dsc-stat-label{font-size:0.65rem;color:var(--dsc-text-muted);text-transform:uppercase;letter-spacing:0.04em;margin-top:0.3rem}

/* Grids */
.dsc-grid{display:grid;gap:1.25rem;margin-bottom:1.25rem}
.dsc-grid-2{grid-template-columns:repeat(2,1fr)}
.dsc-grid-3{grid-template-columns:repeat(3,1fr)}
.dsc-grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.dsc-grid-2,.dsc-grid-3,.dsc-grid-4{grid-template-columns:1fr}}

/* Cards with scanning animation */
.dsc-card{background:var(--dsc-bg-card);border:1px solid var(--dsc-border);border-radius:var(--dsc-radius);overflow:hidden;position:relative}
.dsc-card::after{content:'';position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(34,211,238,0.03),transparent);animation:cardScan 4s ease-in-out infinite;pointer-events:none}
@keyframes cardScan{0%{left:-50%}100%{left:150%}}
.dsc-card-header{padding:0.75rem 1rem;border-bottom:1px solid var(--dsc-border-light);display:flex;justify-content:space-between;align-items:center}
.dsc-card-title{font-size:0.8rem;font-weight:600;margin:0;display:flex;align-items:center;gap:0.4rem}
.dsc-card-badge{font-size:0.55rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;padding:0.15rem 0.4rem;border-radius:3px;background:rgba(34,211,238,0.15);color:var(--dsc-cyan)}
.dsc-card-badge-uk{background:rgba(244,63,94,0.15);color:var(--dsc-red)}
.dsc-card-badge-live{background:rgba(34,197,94,0.15);color:var(--dsc-green);animation:liveBadge 2s infinite}
@keyframes liveBadge{0%,100%{opacity:1}50%{opacity:0.6}}
.dsc-card-body{padding:1rem}

/* Map - Dark cyber theme */
.dsc-map-wrap{margin-bottom:1.25rem;border-radius:var(--dsc-radius);overflow:hidden;border:1px solid var(--dsc-border);position:relative}
.dsc-map-container{height:400px;background:#1a1a1a;position:relative}
.dsc-map-container .leaflet-container{background:#1a1a1a !important}
.dsc-map-container .leaflet-tile-pane{opacity:0.7}
.dsc-map-container .leaflet-control-zoom,.dsc-map-container .leaflet-control-attribution{display:none !important}
.dsc-map-container .leaflet-marker-icon,.dsc-map-container .leaflet-div-icon{background:transparent !important;border:none !important}
.dsc-map-container .leaflet-popup-content-wrapper{background:var(--dsc-bg-card);color:var(--dsc-text);border-radius:6px;border:1px solid var(--dsc-border);box-shadow:0 8px 32px rgba(0,0,0,0.5)}
.dsc-map-container .leaflet-popup-content{margin:0.5rem 0.75rem;font-size:0.75rem}
.dsc-map-container .leaflet-popup-tip{background:var(--dsc-bg-card)}
/* Attack lines */
.dsc-attack-line{stroke:var(--dsc-red);stroke-width:1;stroke-dasharray:6,4;fill:none;opacity:0.6}
.dsc-attack-line.animated{animation:dashFlow 1s linear infinite}
@keyframes dashFlow{to{stroke-dashoffset:-10}}
/* Map legend and stats */
.dsc-map-legend{display:flex;justify-content:center;gap:2rem;padding:0.6rem;background:rgba(0,0,0,0.8);border-top:1px solid var(--dsc-border-light)}
.dsc-legend-item{display:flex;align-items:center;gap:0.4rem;font-size:0.7rem;color:var(--dsc-text-muted)}
.dsc-legend-dot{width:10px;height:10px;border-radius:50%}
.dsc-legend-red{background:var(--dsc-red);box-shadow:0 0 8px var(--dsc-red)}
.dsc-legend-green{background:var(--dsc-green);box-shadow:0 0 8px var(--dsc-green)}
.dsc-map-stats{position:absolute;top:0.75rem;left:0.75rem;z-index:1000;display:flex;gap:0.5rem}
.dsc-map-stat{background:rgba(0,0,0,0.9);border:1px solid var(--dsc-border);border-radius:4px;padding:0.35rem 0.6rem;font-size:0.65rem;backdrop-filter:blur(4px)}
.dsc-map-stat-val{font-family:var(--dsc-mono);color:var(--dsc-cyan);font-weight:600}
/* Animated attack marker */
@keyframes attackPulse{0%{transform:scale(1);opacity:0.8}50%{transform:scale(1.8);opacity:0.3}100%{transform:scale(2.5);opacity:0}}
@keyframes sensorPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,0.7)}100%{box-shadow:0 0 0 25px rgba(34,197,94,0)}}
@keyframes targetRotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* Lists */
.dsc-list{max-height:280px;overflow-y:auto}
.dsc-list-item{display:flex;justify-content:space-between;align-items:center;padding:0.5rem 0.875rem;border-bottom:1px solid var(--dsc-border-light);transition:background 0.15s}
.dsc-list-item:hover{background:var(--dsc-bg-hover)}
.dsc-list-item:last-child{border-bottom:none}
.dsc-list-name{font-size:0.75rem;color:var(--dsc-text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsc-list-name code{font-family:var(--dsc-mono);font-size:0.7rem;background:rgba(0,0,0,0.3);padding:0.1rem 0.3rem;border-radius:3px}
.dsc-list-count{font-family:var(--dsc-mono);font-size:0.75rem;font-weight:600;color:var(--dsc-cyan)}

/* News */
.dsc-news{max-height:300px;overflow-y:auto}
.dsc-news-item{display:block;padding:0.65rem 0.875rem;border-bottom:1px solid var(--dsc-border-light);text-decoration:none;transition:background 0.15s;border-left:3px solid transparent}
.dsc-news-item:hover{background:var(--dsc-bg-hover)}
.dsc-news-critical{border-left-color:var(--dsc-red)}
.dsc-news-warning{border-left-color:var(--dsc-amber)}
.dsc-news-uk{border-left-color:var(--dsc-cyan)}
.dsc-news-source{font-size:0.55rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--dsc-cyan);margin-bottom:0.1rem}
.dsc-news-source-uk{color:var(--dsc-red)}
.dsc-news-source-ms{color:#00a4ef}
.dsc-news-title{font-size:0.75rem;color:var(--dsc-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dsc-news-date{font-size:0.6rem;color:var(--dsc-text-dim);margin-top:0.1rem}

/* Live Feed */
.dsc-feed{max-height:300px;overflow-y:auto}
.dsc-feed-item{display:flex;gap:0.6rem;padding:0.55rem 0.875rem;border-bottom:1px solid var(--dsc-border-light);animation:feedSlide 0.3s ease}
.dsc-feed-item.new{background:rgba(244,63,94,0.05)}
@keyframes feedSlide{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.dsc-feed-time{font-family:var(--dsc-mono);font-size:0.65rem;color:var(--dsc-text-dim);white-space:nowrap}
.dsc-feed-body{flex:1;min-width:0}
.dsc-feed-text{font-size:0.75rem;color:var(--dsc-text)}
.dsc-feed-text strong{color:var(--dsc-red)}
.dsc-feed-meta{font-size:0.65rem;color:var(--dsc-text-dim);margin-top:0.1rem}

/* Breach List */
.dsc-breach-item{padding:0.55rem 0.875rem;border-bottom:1px solid var(--dsc-border-light)}
.dsc-breach-item:hover{background:var(--dsc-bg-hover)}
.dsc-breach-name{font-size:0.8rem;font-weight:600;color:var(--dsc-text);margin-bottom:0.15rem}
.dsc-breach-meta{display:flex;gap:0.75rem;font-size:0.65rem;color:var(--dsc-text-dim)}
.dsc-breach-count{color:var(--dsc-amber);font-weight:600}

/* Word Clouds */
.dsc-cloud-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.dsc-cloud-grid{grid-template-columns:1fr}}
.dsc-cloud-box{background:rgba(0,0,0,0.2);border-radius:var(--dsc-radius-sm);padding:0.75rem}
.dsc-cloud-label{font-size:0.6rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--dsc-text-dim);margin-bottom:0.4rem;text-align:center}
.dsc-cloud-canvas{width:100%!important;height:120px!important;display:block;image-rendering:crisp-edges}
.dsc-cred-tags{display:flex;flex-wrap:wrap;gap:0.25rem;margin-top:0.4rem;max-height:60px;overflow-y:auto}
.dsc-cred-tag{display:inline-flex;align-items:center;gap:0.15rem;padding:0.15rem 0.35rem;background:rgba(0,0,0,0.4);border-radius:100px;font-size:0.6rem;border:1px solid rgba(255,255,255,0.06)}
.dsc-cred-val{font-family:var(--dsc-mono);color:var(--dsc-text)}
.dsc-cred-num{color:var(--dsc-text-dim)}

/* Recommendations */
.dsc-recs{padding:0.75rem}
.dsc-rec{background:rgba(0,0,0,0.2);border-radius:var(--dsc-radius-sm);padding:0.75rem;margin-bottom:0.5rem;border-left:3px solid var(--dsc-cyan)}
.dsc-rec:last-child{margin-bottom:0}
.dsc-rec-critical{border-left-color:var(--dsc-red)}
.dsc-rec-high{border-left-color:var(--dsc-amber)}
.dsc-rec-head{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.2rem}
.dsc-rec-badge{padding:0.1rem 0.35rem;border-radius:3px;font-size:0.5rem;font-weight:700;text-transform:uppercase}
.dsc-rec-badge-critical{background:var(--dsc-red-dim);color:var(--dsc-red)}
.dsc-rec-badge-high{background:rgba(251,191,36,0.15);color:var(--dsc-amber)}
.dsc-rec-badge-medium{background:rgba(34,211,238,0.15);color:var(--dsc-cyan)}
.dsc-rec-title{font-weight:600;font-size:0.8rem;color:var(--dsc-text)}
.dsc-rec-desc{font-size:0.7rem;color:var(--dsc-text-muted)}

/* Resources */
.dsc-resources{padding:0.5rem}
.dsc-resource{display:flex;align-items:center;gap:0.6rem;padding:0.5rem;background:rgba(0,0,0,0.2);border-radius:var(--dsc-radius-sm);margin-bottom:0.4rem;text-decoration:none;transition:background 0.15s}
.dsc-resource:hover{background:rgba(0,0,0,0.35)}
.dsc-resource:last-child{margin-bottom:0}
.dsc-resource-icon{width:28px;height:28px;background:rgba(34,211,238,0.1);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:0.7rem;font-weight:700;color:var(--dsc-cyan);flex-shrink:0}
.dsc-resource-text{flex:1}
.dsc-resource-title{font-size:0.7rem;font-weight:600;color:var(--dsc-text)}
.dsc-resource-desc{font-size:0.6rem;color:var(--dsc-text-muted)}

/* Lead CTAs - Premium styling */
.dsc-cta{background:linear-gradient(135deg,rgba(34,211,238,0.05) 0%,rgba(167,139,250,0.03) 100%);border:1px solid rgba(34,211,238,0.15)}
.dsc-cta-body{padding:1.5rem}
.dsc-cta-icon{width:48px;height:48px;background:linear-gradient(135deg,rgba(34,211,238,0.15),rgba(167,139,250,0.1));border:1px solid rgba(34,211,238,0.2);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;font-size:0.85rem;font-weight:700;color:var(--dsc-cyan);font-family:var(--dsc-mono)}
.dsc-cta-title{font-size:1.15rem;font-weight:700;margin:0 0 0.5rem;color:var(--dsc-text)}
.dsc-cta-text{font-size:0.8rem;color:var(--dsc-text-muted);margin-bottom:1.25rem;line-height:1.6}
.dsc-form{display:flex;flex-direction:column;gap:0.75rem}
.dsc-form-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem}
@media(max-width:500px){.dsc-form-row{grid-template-columns:1fr}}
.dsc-input{padding:0.75rem 1rem;font-family:var(--dsc-font);font-size:0.85rem;background:rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.08);border-radius:8px;color:var(--dsc-text);transition:all 0.2s}
.dsc-input:hover{border-color:rgba(255,255,255,0.15);background:rgba(0,0,0,0.5)}
.dsc-input:focus{outline:none;border-color:var(--dsc-cyan);background:rgba(0,0,0,0.6);box-shadow:0 0 0 3px rgba(34,211,238,0.1)}
.dsc-input::placeholder{color:var(--dsc-text-dim)}
.dsc-form .dsc-btn{margin-top:0.5rem;padding:0.875rem 1.5rem;font-size:0.9rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all 0.25s}
.dsc-form .dsc-btn-primary{background:var(--dsc-cyan);color:#000;box-shadow:0 4px 20px rgba(34,211,238,0.25)}
.dsc-form .dsc-btn-primary:hover{background:#06b6d4;box-shadow:0 6px 25px rgba(34,211,238,0.35);transform:translateY(-2px)}
.dsc-form .dsc-btn-primary:active{transform:translateY(0);box-shadow:0 2px 10px rgba(34,211,238,0.2)}
.dsc-form-msg{margin-top:0.5rem;padding:0.6rem 0.875rem;border-radius:6px;font-size:0.8rem;display:none}
.dsc-form-msg.ok{display:block;background:rgba(34,197,94,0.12);color:var(--dsc-green);border:1px solid rgba(34,197,94,0.25)}
.dsc-form-msg.err{display:block;background:var(--dsc-red-dim);color:var(--dsc-red);border:1px solid rgba(244,63,94,0.25)}

/* IP Check */


/* Blocklist */
.dsc-blocklist-url{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.75rem;background:rgba(0,0,0,0.4);border-radius:4px}
.dsc-blocklist-url code{flex:1;font-family:var(--dsc-mono);font-size:0.6rem;color:var(--dsc-cyan);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Service Status Grid */
.dsc-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.75rem;padding:1rem}
@media(max-width:900px){.dsc-status-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.dsc-status-grid{grid-template-columns:1fr}}
.dsc-status-item{display:flex;align-items:center;gap:0.6rem;padding:0.6rem 0.75rem;background:rgba(0,0,0,0.3);border-radius:6px;border:1px solid var(--dsc-border-light);transition:all 0.2s}
.dsc-status-item:hover{border-color:var(--dsc-border);background:rgba(0,0,0,0.4)}
.dsc-status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.dsc-status-checking{background:#666;animation:pulse 1.5s ease-in-out infinite}
.dsc-status-ok{background:var(--dsc-green);box-shadow:0 0 8px rgba(34,197,94,0.5)}
.dsc-status-degraded{background:var(--dsc-yellow);box-shadow:0 0 8px rgba(250,204,21,0.5)}
.dsc-status-outage{background:var(--dsc-red);box-shadow:0 0 8px rgba(244,63,94,0.5)}
.dsc-status-unknown{background:#666}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.dsc-status-name{font-size:0.75rem;font-weight:600;color:var(--dsc-text);flex:1}
.dsc-status-state{font-size:0.65rem;color:var(--dsc-text-muted)}
.dsc-status-footer{display:flex;align-items:center;gap:1.5rem;padding:0.6rem 1rem;border-top:1px solid var(--dsc-border-light);background:rgba(0,0,0,0.2)}
.dsc-status-legend{display:flex;align-items:center;gap:0.35rem;font-size:0.6rem;color:var(--dsc-text-dim)}
.dsc-status-dot{width:8px;height:8px;border-radius:50%}
.dsc-status-refresh{margin-left:auto;font-size:0.65rem;color:var(--dsc-cyan);text-decoration:none}
.dsc-status-refresh:hover{text-decoration:underline}
.dsc-list-scroll{max-height:200px;overflow-y:auto}

/* Patch Tuesday & OS EOL */
.dsc-countdown{display:flex;gap:1rem;padding:1rem}
.dsc-countdown-item{flex:1;text-align:center;background:rgba(0,0,0,0.3);border-radius:6px;padding:0.75rem}
.dsc-countdown-value{font-size:1.5rem;font-weight:700;font-family:var(--dsc-mono);color:var(--dsc-cyan)}
.dsc-countdown-label{font-size:0.6rem;color:var(--dsc-text-dim);text-transform:uppercase;margin-top:0.2rem}
.dsc-countdown-date{font-size:0.7rem;color:var(--dsc-text-muted);padding:0.5rem 1rem;border-top:1px solid var(--dsc-border-light);text-align:center}
.dsc-eol-list{padding:0.75rem}
.dsc-eol-item{display:flex;align-items:center;justify-content:space-between;padding:0.5rem 0.75rem;background:rgba(0,0,0,0.2);border-radius:4px;margin-bottom:0.5rem}
.dsc-eol-item:last-child{margin-bottom:0}
.dsc-eol-name{font-size:0.75rem;font-weight:500;color:var(--dsc-text)}
.dsc-eol-date{font-size:0.65rem;color:var(--dsc-text-muted)}
.dsc-eol-badge{font-size:0.55rem;font-weight:600;padding:0.15rem 0.4rem;border-radius:3px;text-transform:uppercase}
.dsc-eol-critical{background:rgba(244,63,94,0.15);color:var(--dsc-red)}
.dsc-eol-warning{background:rgba(250,204,21,0.15);color:var(--dsc-yellow)}
.dsc-eol-info{background:rgba(34,211,238,0.15);color:var(--dsc-cyan)}

/* Timeline Chart */
.dsc-chart-wrap{height:140px}

/* Loading */
.dsc-loading{padding:1rem;text-align:center;color:var(--dsc-text-dim);font-size:0.75rem}
.dsc-loading::after{content:'';display:inline-block;width:12px;height:12px;margin-left:0.4rem;border:2px solid var(--dsc-text-dim);border-top-color:transparent;border-radius:50%;animation:spin 0.8s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* Source */
.dsc-source{font-size:0.6rem;color:var(--dsc-text-dim);text-align:center;padding:0.75rem;border-top:1px solid var(--dsc-border-light);margin-top:1rem}

/* Scrollbar */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:2px}

/* ============================================= */
/* TV MODE - Full redesign with boxes around map */
/* ============================================= */
.dsc-tv-wrap{font-family:var(--dsc-font);background:var(--dsc-bg);color:var(--dsc-text);width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column}
.dsc-tv-header{display:flex;justify-content:space-between;align-items:center;padding:0.35rem 1rem;background:rgba(0,0,0,0.6);border-bottom:1px solid var(--dsc-border);flex-shrink:0}
.dsc-tv-logo{height:32px}
.dsc-tv-brand{display:flex;align-items:center;gap:0.75rem}
.dsc-tv-title{font-size:1rem;font-weight:700}
.dsc-tv-title span{color:var(--dsc-cyan)}
.dsc-tv-meta{display:flex;align-items:center;gap:0.75rem}


.dsc-tv-body{flex:1;display:grid;grid-template-columns:220px 1fr 220px;grid-template-rows:auto minmax(150px,1fr) minmax(180px,200px);gap:0.35rem;padding:0.35rem;overflow:hidden}

/* Stats row spans full width */
.dsc-tv-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:0.4rem}
.dsc-tv-stat{background:var(--dsc-bg-card);border:1px solid var(--dsc-border);border-radius:4px;padding:0.3rem;text-align:center;position:relative;overflow:hidden}
.dsc-tv-stat::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--dsc-cyan),transparent);animation:scanLine 3s ease-in-out infinite}
.dsc-tv-stat-value{font-size:1.1rem;font-weight:700;font-family:var(--dsc-mono);color:var(--dsc-cyan);line-height:1}
.dsc-tv-stat-label{font-size:0.45rem;color:var(--dsc-text-muted);text-transform:uppercase;margin-top:0.1rem}

/* Left sidebar */
.dsc-tv-left{display:flex;flex-direction:column;gap:0.4rem;overflow:hidden}

/* Map in center */
.dsc-tv-map{border-radius:4px;overflow:hidden;border:1px solid var(--dsc-border);position:relative;background:#1a1a1a}
.dsc-tv-map .dsc-map-container{height:100%;background:#1a1a1a}
.dsc-tv-map .leaflet-tile-pane{opacity:0.7}

/* Right sidebar */
.dsc-tv-right{display:flex;flex-direction:column;gap:0.4rem;overflow:hidden}

/* Bottom row spans full width */
.dsc-tv-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr 2fr;gap:0.35rem;overflow:hidden}

/* TV Cards */
.dsc-tv-card{background:var(--dsc-bg-card);border:1px solid var(--dsc-border);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;min-height:0;flex:1;position:relative;max-height:100%}
.dsc-tv-card::after{content:'';position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(34,211,238,0.03),transparent);animation:cardScan 4s ease-in-out infinite;pointer-events:none}
.dsc-tv-card .dsc-card-header{padding:0.3rem 0.5rem}
.dsc-tv-card .dsc-card-title{font-size:0.6rem}
.dsc-tv-card .dsc-card-badge{font-size:0.45rem;padding:0.1rem 0.25rem}
.dsc-tv-card .dsc-news,.dsc-tv-card .dsc-feed,.dsc-tv-card .dsc-list{flex:1;max-height:none;overflow-y:auto}
.dsc-tv-card .dsc-news-item,.dsc-tv-card .dsc-feed-item,.dsc-tv-card .dsc-list-item{padding:0.35rem 0.5rem}
.dsc-tv-card .dsc-news-source{font-size:0.45rem}
.dsc-tv-card .dsc-news-title,.dsc-tv-card .dsc-feed-text,.dsc-tv-card .dsc-list-name{font-size:0.6rem;-webkit-line-clamp:1}
.dsc-tv-card .dsc-news-date,.dsc-tv-card .dsc-feed-meta,.dsc-tv-card .dsc-feed-time{font-size:0.5rem}
.dsc-tv-card .dsc-list-count{font-size:0.6rem}

/* TV AI Summary */
.dsc-tv-ai{padding:0.4rem 0.5rem;font-size:0.55rem;line-height:1.4;color:var(--dsc-text-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical}

/* TV Cloud Status - Inline */
.dsc-tv-cloud-inline{display:flex;align-items:center;gap:0.5rem;padding:0.4rem 0.6rem;background:rgba(0,0,0,0.3);border-radius:4px;font-size:0.55rem;color:var(--dsc-text-dim);flex-shrink:0}
.dsc-tv-cloud-label{color:var(--dsc-text-muted);margin-right:0.25rem}
.dsc-tv-cloud-item{display:flex;align-items:center;gap:0.25rem}
.dsc-tv-cloud-item .dsc-status-indicator{width:6px;height:6px}

/* TV Ticker - JS-based scrolling (no drift) */
.dsc-tv-ticker{display:flex;align-items:center;background:rgba(244,63,94,0.08);border-bottom:1px solid rgba(244,63,94,0.2);height:28px;flex-shrink:0;overflow:hidden;position:relative}
.dsc-tv-ticker .dsc-ticker-badge{display:flex;align-items:center;gap:0.3rem;padding:0 0.75rem;font-size:0.5rem;font-weight:600;color:var(--dsc-red);text-transform:uppercase;white-space:nowrap;flex-shrink:0;background:rgba(10,10,15,0.95);height:100%;border-right:1px solid rgba(244,63,94,0.3);z-index:10;position:relative}
.dsc-tv-ticker .dsc-ticker-dot{width:5px;height:5px;background:var(--dsc-red);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}
.dsc-tv-ticker .dsc-ticker-content{flex:1;overflow:hidden;position:relative;height:100%;display:flex;align-items:center}
.dsc-tv-ticker .dsc-ticker-track{display:inline-flex;white-space:nowrap;will-change:transform}
.dsc-tv-ticker .dsc-ticker-set{display:inline-flex;flex-shrink:0}
.dsc-tv-ticker .dsc-ticker-track:hover{cursor:default}
.dsc-tv-ticker .dsc-ticker-item{display:inline-flex;align-items:center;padding:0 1.5rem;font-size:0.55rem;color:var(--dsc-text-muted);flex-shrink:0}
.dsc-tv-ticker .dsc-ticker-item::before{content:'•';color:var(--dsc-cyan);margin-right:0.5rem}
