/* Radar Opportunità v0.3 — layer visuale sopra la UI v0.2.4. */
.op-overview{padding-top:10px}.op-overview-shell{position:relative;overflow:hidden;border-radius:26px;padding:30px;background:radial-gradient(circle at 8% 12%,#278c8c33 0,transparent 32%),radial-gradient(circle at 92% 5%,#e2a44e26 0,transparent 27%),linear-gradient(132deg,#0c3049 0%,#123e57 48%,#174f5a 100%);box-shadow:0 18px 44px #0b2c4224;color:#fff}.op-overview-shell::after{content:"";position:absolute;right:-70px;bottom:-105px;width:310px;height:310px;border-radius:50%;border:1px solid #ffffff16;box-shadow:0 0 0 34px #ffffff08,0 0 0 68px #ffffff05;pointer-events:none}.op-overview-heading{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:24px}.op-overview-heading>div{display:flex;align-items:baseline;gap:14px}.op-overview-heading .section-number{color:#ffb66f}.op-overview-heading h2{margin:0;color:#fff;font-size:clamp(34px,4vw,58px);letter-spacing:-.045em;line-height:.98}.op-overview-heading p{max-width:420px;margin:0;color:#d5e4e8;font-size:13px;line-height:1.55}.op-overview-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.op-stat{--stat-accent:#77d6bf;display:flex;align-items:flex-start;gap:15px;min-height:180px;border:1px solid #ffffff25;border-radius:18px;padding:20px;background:#ffffff10;backdrop-filter:blur(5px);box-shadow:inset 0 1px 0 #ffffff0f;transition:transform .18s ease,background .18s ease,border-color .18s ease}.op-stat:hover{transform:translateY(-2px);background:#ffffff16;border-color:#ffffff38}.op-stat-open{--stat-accent:#76dbb7}.op-stat-sources{--stat-accent:#73ccef}.op-stat-towns{--stat-accent:#ffc06d}.op-stat-archive{--stat-accent:#c9b4e8}.op-stat-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:43px;height:43px;border-radius:13px;background:#ffffff12;color:var(--stat-accent);border:1px solid #ffffff22}.op-stat-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.op-stat>div{display:grid;align-content:start;gap:5px;min-width:0}.op-stat small{margin-top:2px;color:#d5e7eb;font-size:10px;text-transform:uppercase;letter-spacing:.075em;font-weight:790}.op-stat strong{color:#fff;font-size:48px;line-height:1;letter-spacing:-.06em;margin:5px 0 3px}.op-stat>div>span{color:#c6d9df;font-size:10px;line-height:1.45}.op-monitor{position:relative;z-index:1;margin-top:17px;padding:17px;border:1px solid #ffffff20;border-radius:18px;background:#071f2e52}.op-monitor-head{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-bottom:13px}.op-monitor-head strong{font-size:12px}.op-monitor-head span{color:#bed2d8;font-size:10px}.op-monitor-list{display:flex;flex-wrap:wrap;gap:9px}.op-monitor-source{display:flex;align-items:center;gap:8px;min-width:180px;padding:8px 10px;border-radius:12px;background:#ffffff0d;border:1px solid #ffffff16}.op-monitor-copy{display:grid;gap:2px;min-width:0}.op-monitor-copy strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f5fbfc;font-size:10px}.op-monitor-copy small{display:flex;align-items:center;gap:5px;color:#bfd3d8;font-size:8px}.op-monitor-copy i{width:6px;height:6px;border-radius:50%;background:#9aadb2}.op-monitor-source[data-monitor-status="active"] .op-monitor-copy i{background:#66d197}.op-monitor-source[data-monitor-status="discovery"] .op-monitor-copy i{background:#70b8e7}.op-monitor-source[data-monitor-status="degraded"] .op-monitor-copy i{background:#e2b657}.op-monitor-source[data-monitor-status="error"] .op-monitor-copy i{background:#e27a70}
.op-source-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border-radius:13px;background:#fff;border:1px solid #d4dcdd;box-shadow:0 3px 10px #0d334516;overflow:hidden}.op-source-icon.is-compact{width:30px;height:30px;border-radius:9px;box-shadow:none}.op-source-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#e9eff0;color:#34505c;font-size:9px;font-weight:850;letter-spacing:.02em}.op-source-favicon{position:relative;z-index:2;width:25px;height:25px;object-fit:contain;background:#fff}.op-source-icon.is-compact .op-source-favicon{width:19px;height:19px}.op-source-icon.is-compact .op-source-fallback{font-size:7px}.op-meta-icon{display:inline-flex;margin-right:5px;color:var(--card-accent)}.op-meta-icon svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.op-filter-panel{margin-top:28px;padding:30px;border:1px solid #cbd6d6;border-radius:22px;background:linear-gradient(145deg,#f7fbfa 0%,#fff 58%,#eef5f7 100%);box-shadow:0 9px 30px #123e4b0b}.op-filter-panel .section-heading{margin-top:0}.op-source-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 4px}.op-source-quick{appearance:none;display:inline-flex;align-items:center;gap:8px;border:1px solid #c6d3d5;border-radius:999px;padding:7px 11px 7px 7px;background:#fff;color:#0f3654;font:inherit;font-size:10px;font-weight:730;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.op-source-quick:hover{border-color:#5f8f9a;transform:translateY(-1px)}.op-source-quick.is-active{border-color:#17647a;box-shadow:0 0 0 3px #17647a18;background:#eef7f8}.op-source-quick .op-source-icon,.op-source-quick span{pointer-events:none}
@media(max-width:1050px){.op-overview-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.op-overview-shell{padding:20px;border-radius:20px}.op-overview-heading{display:grid;gap:12px}.op-overview-heading>div{align-items:flex-start}.op-overview-heading h2{font-size:38px}.op-overview-grid{grid-template-columns:1fr}.op-stat{min-height:0}.op-stat strong{font-size:40px}.op-monitor-head{display:grid;gap:4px}.op-monitor-source{min-width:0;flex:1 1 145px}.op-filter-panel{padding:21px 16px;border-radius:18px}.op-source-shortcuts{display:grid;grid-template-columns:1fr 1fr}.op-source-quick{min-width:0;overflow:hidden}.op-source-quick>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:430px){.op-source-shortcuts{grid-template-columns:1fr}.op-overview-heading>div{gap:8px}}
