:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#edf2ff;background:#080d20;font-synthesis:none;--muted:#a2aecb;--line:#273252;--lime:#43d9f3}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0%,#38207c55,transparent 42%);min-height:100vh}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--lime);outline-offset:5px}button:disabled{cursor:wait;opacity:.5}.shell{max-width:1440px;margin:auto;padding:0 54px}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:23px;font-weight:700;display:flex;align-items:center;gap:10px;letter-spacing:-1px}.brand-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--lime);color:#0b1434;border-radius:10px;font-size:29px;margin-right:4px}.brand-mark span{font-size:24px}.brand-divider{color:#637398;font-weight:300}.brand-sub{font-weight:400;color:#acb7d5}.top-caption,.edition,.eyebrow,.timezone,.weather-heading>span,.source-tag,.list-labels{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;letter-spacing:1.6px}.top-caption{color:#94a2c5}.edition{color:#a5b4db;letter-spacing:1px}.edition span{border:1px solid #41467a;padding:5px 7px;margin-left:8px;border-radius:5px;color:var(--lime)}.welcome{display:flex;justify-content:space-between;align-items:center;padding:45px 0 37px;gap:20px}.eyebrow{color:var(--muted);font-size:12px;letter-spacing:1.5px}.small-star{color:var(--lime);font-size:20px;margin-right:7px;vertical-align:middle}h1{font-size:clamp(36px,4.5vw,62px);font-weight:600;letter-spacing:-2.7px;line-height:1.15;margin:13px 0 10px}h1>span{color:var(--lime)}.welcome p{margin:0;color:var(--muted);font-size:16px}.clock-block{text-align:right}.clock-block time{font-size:clamp(48px,5.5vw,76px);font-weight:300;letter-spacing:-3px;line-height:1.1;font-variant-numeric:tabular-nums}.clock-block time span{color:var(--lime);font-weight:200}.clock-block #date{font-size:14px;margin-top:8px;color:#bbc8e4}.timezone{display:block;color:#7f90b4;font-size:12px;margin-top:8px;letter-spacing:1px}.quicklinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:35px}.shortcut{position:relative;display:flex;align-items:center;gap:20px;border:1px solid var(--line);border-radius:15px;padding:26px 24px;background:#141c35;transition:transform .2s,border-color .2s,background .2s;overflow:hidden}.shortcut:hover{transform:translateY(-4px);border-color:#7b5bdb;background:#1c2648}.link-icon{width:53px;height:53px;flex-shrink:0;display:grid;place-items:center;border-radius:13px;background:#28204f;color:var(--lime);font-weight:700;font-size:34px;letter-spacing:0;line-height:1}.tools .link-icon{background:#102f4b;color:#53def5;font-size:23px;letter-spacing:0}.arcade .link-icon{background:#322054;color:#c2a6ff;font-size:36px}.shortcut h2{font-size:21px;font-weight:600;letter-spacing:-.5px;margin:7px 0}.domain{font-size:13px;color:#99a9ca}.play-tag{position:absolute;right:-20px;bottom:12px;transform:rotate(-35deg);background:#bb9af7;color:#170c32;font:bold 10px ui-monospace,monospace;letter-spacing:2px;padding:4px 29px}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:25px;align-items:start}.panel{border:1px solid var(--line);border-radius:18px;background:#11192f;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:26px 27px 0;gap:16px}.section-title{display:flex;align-items:center;gap:13px}.radar-icon{font-size:38px;color:var(--lime);font-family:Arial,sans-serif}.section-title h2{font-size:25px;font-weight:600;letter-spacing:-.7px;margin:7px 0 0}.section-title .eyebrow{font-size:11px;letter-spacing:1.7px}.cve-intro{padding:0 27px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px}.cve-intro p{font-size:14px;color:var(--muted);margin:0;line-height:1.6}.source-tag{font-size:10px;letter-spacing:1px;color:#a9bfe5;border:1px solid #374d76;border-radius:5px;padding:6px 8px;white-space:nowrap}.radar-summary{margin:23px 27px 0;padding:16px 19px;background:linear-gradient(105deg,#1b2450,#152341);border:1px solid #3b4272;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.radar-summary>div{display:flex;align-items:center;gap:13px}.summary-number{font-size:31px;font-weight:600;color:var(--lime);letter-spacing:-1px}.radar-summary>div>span:last-child{font-size:13px;color:#b6c8e9;max-width:150px;line-height:1.5}.summary-note{font-size:11px;color:#a5afd2;text-align:right;line-height:1.7}.list-labels{display:flex;justify-content:space-between;padding:24px 28px 11px;color:#91a4cb;font-size:10px;letter-spacing:1.3px;border-bottom:1px solid var(--line)}.cve-list{height:408px;overflow:auto;scrollbar-width:thin;scrollbar-color:#505b9a transparent;overscroll-behavior:contain}.cve-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:19px 27px;border-bottom:1px solid #273453;transition:background .15s}.cve-row:hover{background:#1c2947}.cve-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cve-id{font:600 14px ui-monospace,Consolas,monospace;color:#e0e9ff}.cve-date{font-size:11px;color:#96a8cc}.cve-description{font-size:13px;line-height:1.65;color:#adbbd9;margin:8px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.score{align-self:start;min-width:66px;text-align:center;padding:6px 8px;border:1px solid #435274;background:#22304d;border-radius:7px;color:#bfcee9;font:600 14px ui-monospace,monospace}.score small{display:block;font:9px ui-monospace,monospace;letter-spacing:.5px;margin-top:4px}.score.critical{color:#ff96a2;background:#3e252b;border-color:#62333e}.score.high{color:#f8bd83;background:#3d3026;border-color:#59422e}.score.medium{color:#e1d685;background:#383726;border-color:#4e4d30}.score.low{color:#9edda7;background:#24372b;border-color:#34543d}.score.unknown{font-size:12px;color:#adbbd9}.panel-footer{border-top:1px solid var(--line);padding:15px 27px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:11px;line-height:1.5;color:#99afd1}.panel-footer a{white-space:nowrap;color:var(--lime);font-size:12px}.empty-state{text-align:center;min-height:340px;padding:70px 25px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state h3{font-size:19px;font-weight:500;margin:16px 0 0}.empty-state p{font-size:14px;line-height:1.6;color:var(--muted);max-width:330px}.loading-orbit{font-size:45px;color:var(--lime);animation:breathe 2s ease-in-out infinite}.weather-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 16px}.weather-heading h2{font-size:16px;font-weight:500;margin:0}.weather-heading>span{font-size:10px;color:#a2b0d4;letter-spacing:.6px}.weather-card{position:relative;padding:23px 24px 14px;border-radius:17px;border:1px solid #304774;background:radial-gradient(ellipse at 95% 35%,#264b7799,transparent 68%),#13263d;margin-bottom:17px}.weather-card.capannori{background:radial-gradient(ellipse at 95% 35%,#41347499,transparent 68%),#1d2041;border-color:#453c73}.weather-top{display:flex;justify-content:space-between}.weather-top .eyebrow{font-size:10px;letter-spacing:1.3px;color:#a9badd}.weather-top h3{font-size:25px;font-weight:500;letter-spacing:-.6px;margin:7px 0 0}.location{color:#a6bce1;font-size:26px}.weather-main{display:flex;align-items:center;justify-content:space-between;margin:14px 0 18px;gap:8px}.temperature{font-size:64px;font-weight:300;line-height:1.1;letter-spacing:-3px}.temperature small{font-size:45px;vertical-align:top}.condition{font-size:13px;color:#bfd1ec;margin:6px 0 0}.weather-icon{font-size:66px;line-height:1;color:#62dff3;filter:drop-shadow(0 0 20px #35cfff25)}.capannori .weather-icon{color:#bfa5fa}.weather-details{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#a6b9d6}.weather-details b{font-weight:500;color:#e0ebff;display:block;font-size:14px;margin-top:5px}.weather-details>span:last-child{text-align:right}.weather-bottom{border-top:1px solid #ffffff18;margin-top:17px;padding-top:12px;display:flex;justify-content:space-between;font-size:11px;color:#b7c9e8;gap:8px}.weather-status{color:#a0b6d3;font-size:10px;margin:12px 0 0;line-height:1.5}.capannori .weather-status{color:#acaad4}.weather-credit{font-size:11px;text-align:center;color:#91a6cc;margin:12px 0}.weather-credit a{text-decoration:underline;text-underline-offset:3px}.footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:28px 0 30px;font-size:11px;color:#91a2c7}.footer b{font-weight:600;color:#b2c3e1}.footer-star{font-size:22px;vertical-align:middle;color:var(--lime);margin-left:10px}.error-text{color:#f0bc88!important}.noscript{padding:20px;text-align:center;color:#f0bc88}@keyframes breathe{50%{opacity:.3;transform:scale(.9)}}@media(min-width:1500px){.welcome{padding-top:52px;padding-bottom:44px}.quicklinks{margin-bottom:38px}}@media(max-width:1100px){.shell{padding:0 30px}.dashboard{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.shortcut{padding:24px 18px;gap:13px}.shortcut h2{font-size:19px}.link-icon{width:43px;height:45px}.domain{font-size:11px}.cve-intro{align-items:start}.summary-note{display:none}.top-caption{display:none}}@media(max-width:800px){.shell{padding:0 22px}.dashboard{grid-template-columns:1fr}.weather-column{display:grid;grid-template-columns:1fr 1fr;gap:15px}.weather-heading,.weather-credit{grid-column:1/-1}.weather-heading{margin:12px 0 0}.weather-card{margin:0}.weather-credit{margin:0 0 5px}.quicklinks{gap:12px}.shortcut{align-items:start;flex-direction:column;padding:20px}.shortcut h2{font-size:18px}.domain{font-size:10px}.cve-list{height:410px}.weather-card{padding:22px}.topbar{height:78px}}@media(max-width:520px){.shell{padding:0 17px}.edition{font-size:9px}.edition span{display:none}.brand{font-size:20px}.welcome{padding:29px 0;align-items:start}.welcome .eyebrow{font-size:9px;letter-spacing:.7px;max-width:180px}.small-star{font-size:16px;margin-right:2px}h1{font-size:34px;letter-spacing:-1.8px;margin-top:12px}.welcome p{font-size:12px;max-width:165px;line-height:1.6}.clock-block{padding-top:25px;flex-shrink:0}.clock-block time{font-size:42px;letter-spacing:-2px}.clock-block #date{font-size:10px;max-width:145px;line-height:1.5}.timezone{font-size:8px;letter-spacing:.8px}.quicklinks{grid-template-columns:1fr;margin-bottom:25px;gap:10px}.shortcut{flex-direction:row;align-items:center;padding:17px 19px;gap:18px}.shortcut h2{margin:4px 0;font-size:19px}.domain{font-size:12px}.link-icon{height:45px;width:45px}.panel-heading{padding:20px 19px 0}.section-title h2{font-size:21px}.section-title .eyebrow{font-size:9px}.radar-icon{font-size:32px}.cve-intro{padding:0 19px;flex-wrap:wrap;gap:10px}.radar-summary{margin:18px 19px 0;padding:12px 15px}.list-labels{padding-left:19px;padding-right:19px;font-size:9px}.cve-row{padding:17px 19px;gap:10px}.cve-id{font-size:12px}.cve-date{font-size:10px}.cve-description{font-size:12px}.score{min-width:56px;font-size:13px}.panel-footer{padding:14px 19px;align-items:start;font-size:10px}.weather-column{grid-template-columns:1fr}.weather-heading,.weather-credit{grid-column:auto}.weather-card{padding:22px 25px 16px}.weather-main{margin:16px 0}.weather-icon{font-size:74px}.footer{font-size:10px;flex-wrap:wrap;padding:24px 0}.weather-heading h2{font-size:17px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:520px){.welcome>div:first-child{min-width:0}.welcome{gap:12px}h1{overflow-wrap:normal}.welcome h1{font-size:clamp(25px,7.5vw,34px)}.clock-block{max-width:42%}.clock-block #date{overflow-wrap:break-word}}

.shell{padding-bottom:32px}.welcome h1{margin:0}.clock-block{padding-top:0}

/* Desktop: la finestra contiene la dashboard; scorre soltanto il radar. */
@media (min-width: 801px) {
  .shell {height:100dvh;display:flex;flex-direction:column;padding:0 30px 16px}
  .topbar {height:64px;flex-shrink:0}
  .shell>main {flex:1;min-height:0;display:flex;flex-direction:column;gap:16px;padding-top:16px}
  .welcome {display:none}
  .quicklinks {flex-shrink:0;margin:0;gap:16px}
  .shortcut {padding:16px 20px;gap:16px}
  .shortcut h2 {margin:5px 0}
  .dashboard {flex:1;min-height:0;align-items:stretch;gap:20px}
  .cve-panel {min-height:0;display:flex;flex-direction:column}
  .cve-panel>* {flex-shrink:0}
  .panel-heading {padding:18px 24px 0}
  .cve-intro {padding:0 24px;margin-top:10px}
  .radar-summary {margin:14px 24px 0;padding:10px 16px}
  .list-labels {padding:15px 24px 10px}
  .cve-list {flex:1;min-height:0;height:auto;overflow-y:auto;scrollbar-gutter:stable}
  .panel-footer {padding:12px 24px}
  .empty-state {min-height:100%;padding:24px}
  .weather-column {min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) auto;gap:12px}
  .weather-heading,.weather-credit {margin:0}
  .weather-card {min-height:0;margin:0;padding:14px 20px;display:flex;flex-direction:column;justify-content:space-between}
  .weather-top .eyebrow {display:none}
  .weather-top h3 {font-size:23px;margin:0}
  .weather-main {margin:6px 0;flex:1}
  .temperature {font-size:52px}
  .temperature small {font-size:32px}
  .weather-icon {font-size:52px}
  .weather-details b {display:inline;margin-left:5px;font-size:13px}
  .weather-bottom {margin-top:8px;padding-top:8px}
  .weather-status {margin:6px 0 0}
}
@media (min-width:801px) and (max-height:740px) {
  .shell {padding-bottom:10px}
  .topbar {height:52px}
  .shell>main {gap:12px;padding-top:12px}
  .shortcut {padding:12px 18px}
  
  .link-icon {width:42px;height:42px}
  .shortcut h2 {font-size:19px;margin:0 0 4px}
  .weather-column {gap:8px}
  .weather-card {padding:10px 16px}
  .weather-top h3 {font-size:20px}
  .temperature {font-size:40px}
  .temperature small {font-size:26px}
  .weather-icon {font-size:40px}
  .condition {margin-top:2px}
  .weather-main {margin:4px 0}
  .weather-bottom {margin-top:5px;padding-top:5px}
  .weather-status {margin-top:4px}
  .panel-heading {padding-top:14px}
  .section-title h2 {font-size:22px}
  .cve-intro {margin-top:8px}
  .radar-summary {margin-top:10px;padding:8px 14px}
  .list-labels {padding-top:10px}
}

/* Icone vettoriali centrate e angolo arcade pieno fino ai bordi. */



.play-tag {right:0;bottom:0;width:66px;height:66px;padding:0;transform:none;clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none}
.play-tag>span {position:absolute;right:0;bottom:17px;width:46px;text-align:center;transform:rotate(-45deg);line-height:1}

.cve-filters{display:flex;gap:8px;flex:1;min-width:0}.cve-filters select,.cve-filters input{min-width:0;border:1px solid #435781;border-radius:7px;background:#101a33;color:#e0eaff;padding:8px 10px;font-family:inherit;font-size:13px;height:36px}.cve-filters select{max-width:50%;font-size:13px}.cve-filters input{flex:1;width:100%;font-size:13px}.cve-filters input::placeholder{color:#9dafd1}.cve-filters :focus-visible{outline:2px solid var(--lime);outline-offset:2px}.cve-intro{align-items:center}.cve-filters~.source-tag{flex-shrink:0}@media(max-width:1100px){.cve-intro>.source-tag{display:none}}@media(max-width:520px){.cve-filters{flex-wrap:wrap}.cve-filters select{max-width:none;width:100%}}

.radar-summary .cve-total{display:flex;flex-direction:column;flex-shrink:0;line-height:1.5}.cve-total strong{font-size:22px;font-weight:600;color:#e0eaff;letter-spacing:-.5px}.cve-total>span{font-size:11px}@media(max-width:520px){.radar-summary{gap:10px}.radar-summary>div{gap:8px}.radar-summary>div>span:last-child{max-width:100px;font-size:11px}.cve-total>span{max-width:95px}.cve-total strong{font-size:20px}.summary-number{font-size:26px}}

/* Palette Pratuz: blu notte, viola elettrico e ciano. */
:root{--brand-purple:#8b35f5;--brand-blue:#1668fa;--brand-cyan:#43d9f3}
body{background:radial-gradient(ellipse at 10% 0%,#6420ac24,transparent 42%),radial-gradient(ellipse at 90% 0%,#00c8ee18,transparent 45%),#080d20}
.brand-mark{background:linear-gradient(135deg,#8b35f5,#1668fa 58%,#21d5ed);color:white}
.brand-sub{color:#a9bbdf}.shortcut:hover{border-color:#8562cf;box-shadow:0 8px 28px #070a2140}
.radar-summary{background:linear-gradient(110deg,#29204d,#142d48);border-color:#424473}
.radar-icon,.summary-number{color:var(--brand-cyan)}
.play-tag{background:linear-gradient(135deg,#b88bff,#65dcf2);color:#121336}

.brand-logo{display:block;width:48px;height:48px;object-fit:contain;flex-shrink:0;background:#eef3ff;border-radius:10px;padding:3px}@media(min-width:801px) and (max-height:740px){.brand-logo{width:40px;height:40px}}

/* Logo CV e simboli centrati nei riquadri dei collegamenti. */
.cv .link-icon{background:#eef3ff;padding:3px}
.link-icon img{display:block;width:100%;height:100%;object-fit:contain}

/* Totali temporali nell’intestazione e categorie sulle singole CVE. */
.recency-badge,.category-badge{display:inline-flex;align-items:center;padding:4px 7px;border:1px solid;border-radius:5px;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap}
.period-counts .recency-badge.week{color:#d1baff;background:#30234d;border-color:#62458a}
.period-counts .recency-badge.day{color:#a5f3ff;background:#123b4b;border-color:#3697ac}

.radar-summary{flex-wrap:wrap}
.radar-summary .period-counts{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}
.radar-summary .period-counts>.recency-badge{max-width:none;font-size:11px;gap:6px;padding:7px 9px;line-height:1.2}
.period-counts strong{font-size:16px;font-variant-numeric:tabular-nums}
.category-badge.windows{color:#a5f3ff;background:#123b4b;border-color:#3697ac}
.category-badge.software{color:#d1baff;background:#30234d;border-color:#62458a}
.category-badge.system{color:#a9e8bf;background:#1c382d;border-color:#3c7154}
.category-badge.hardware{color:#f8cf9c;background:#403022;border-color:#886038}
.category-badge.other{color:#bdcbe4;background:#24304a;border-color:#495c80}

.source-state{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#adc4e5}
.source-state::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.source-state.ready{color:#9edda7}.source-state.updating{color:#73dfef}
.source-state.stale,.source-state.unavailable{color:#f0bc88}
.source-times{display:block;margin-top:3px;font-size:10px;line-height:1.5;color:#a6b9d6}
