/* =============================================================================
   RediGo — revamp.css · nuovi componenti "crisp" (Dashboard, mappa, radar)
   Caricato DOPO style.css → vince sulle regole base. Usa i token già definiti.
   Scope: .rd (dashboard) + .italy-wrap (mappa, riusabile) + restyle radar.
   ============================================================================= */

/* ===================== MAPPA ITALIA (riusabile) ===================== */
.italy-wrap{position:relative;width:100%;height:100%;overflow:hidden;border-radius:var(--radius-m)}
svg.italy{width:100%;height:100%;display:block;overflow:hidden;cursor:grab;touch-action:none;
  filter:drop-shadow(0 16px 32px color-mix(in srgb,var(--accent) 16%,transparent));
  animation:rd-map-in .5s var(--ease) both}
.italy-wrap.grabbing svg.italy{cursor:grabbing}
@keyframes rd-map-in{from{opacity:0}to{opacity:1}}
svg.italy .reg{fill:color-mix(in srgb,var(--ink-0) 9%,var(--surface));stroke:var(--border-2);stroke-width:.9;transition:fill .16s var(--ease)}
svg.italy .reg:hover{fill:color-mix(in srgb,var(--accent) 32%,var(--surface))}
svg.italy .reg.l1{fill:color-mix(in srgb,var(--accent) 30%,var(--surface))}
svg.italy .reg.l2{fill:color-mix(in srgb,var(--accent) 48%,var(--surface))}
svg.italy .reg.l3{fill:color-mix(in srgb,var(--accent) 66%,var(--surface))}
svg.italy .bub-g{cursor:pointer}
svg.italy .bub-c{stroke:var(--surface);stroke-width:1.6;transition:r .12s var(--ease)}
svg.italy .bub-g:hover .bub-c{stroke-width:2.4}
svg.italy .bub text{fill:#fff;font-family:var(--mono);font-weight:700;font-size:9px;text-anchor:middle;dominant-baseline:central;pointer-events:none}
svg.italy .pin-g{cursor:pointer}
svg.italy .pin-c{stroke:var(--surface);stroke-width:1.1;transition:r .1s var(--ease)}
svg.italy .pin-g:hover .pin-c{r:3.6}
.italy-back{position:absolute;left:12px;top:12px;z-index:7;display:inline-flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--border-2);border-radius:999px;padding:6px 13px 6px 9px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--ink-1);cursor:pointer;box-shadow:var(--shadow-soft);animation:ip-in .16s var(--ease) both}
.italy-back:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.italy-pop .ip-gara{padding:11px}
.italy-pop .ip-sa{font-size:12px;color:var(--ink-2);margin-bottom:8px;line-height:1.4}
.italy-pop .ip-row2{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.italy-pop .ip-m2{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink-1)}
.italy-pop .ip-imp{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--ink-2)}
.italy-pop .ip-open{display:block;text-align:center;background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:700;font-size:12.5px;padding:8px;border-radius:9px}
.italy-pop .ip-open:hover{filter:brightness(1.05)}
.italy-tip{position:absolute;transform:translate(-50%,calc(-100% - 10px));background:var(--ink-0);color:var(--bg-1);
  font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:8px;pointer-events:none;white-space:nowrap;z-index:6;box-shadow:var(--shadow-soft)}
.italy-tip b{font-weight:800}
/* controlli zoom stile mappa (bottom-right) */
.italy-ctrl{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:1px;z-index:7;background:var(--surface);border:1px solid var(--border);border-radius:11px;overflow:hidden;box-shadow:var(--shadow-soft)}
.italy-ctrl button{width:34px;height:34px;border:0;background:var(--surface);color:var(--ink-1);display:grid;place-items:center;cursor:pointer;transition:background .12s}
.italy-ctrl button+button{border-top:1px solid var(--border)}
.italy-ctrl button:hover{background:var(--surface-3);color:var(--accent)}
/* popover dettaglio gare per regione (con link) */
.italy-pop{position:absolute;z-index:8;width:232px;max-width:calc(100% - 16px);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg,0 18px 40px rgba(0,0,0,.18));overflow:hidden;animation:ip-in .14s var(--ease) both}
@keyframes ip-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.italy-pop .ip-h{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--border);background:var(--surface-2,var(--surface))}
.italy-pop .ip-h b{font-size:13px;font-weight:800;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.italy-pop .ip-n{font-family:var(--mono);font-size:11px;color:var(--ink-3);font-weight:700}
.italy-pop .ip-x{border:0;background:transparent;color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}
.italy-pop .ip-x:hover{color:var(--ink-0)}
.italy-pop .ip-list{max-height:210px;overflow-y:auto;padding:5px}
.italy-pop .ip-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;text-decoration:none;color:var(--ink-0)}
.italy-pop .ip-row:hover{background:var(--surface-3)}
.italy-pop .ip-lamp{width:8px;height:8px;border-radius:50%;flex:none}
.italy-pop .ip-lamp.go{background:var(--success)}.italy-pop .ip-lamp.warn{background:var(--warning)}.italy-pop .ip-lamp.stop{background:var(--danger)}
.italy-pop .ip-t{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.italy-pop .ip-m{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink-3)}
.italy-pop .ip-all{width:100%;border:0;border-top:1px solid var(--border);background:transparent;color:var(--accent);font-weight:700;font-size:12px;padding:9px;cursor:pointer;font-family:var(--font)}
.italy-pop .ip-all:hover{background:var(--accent-soft)}

/* ===================== DASHBOARD (scope .rd) ===================== */
.rd{max-width:1320px}
.rd .page-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin:2px 0 20px}
.rd .eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px;margin-bottom:7px}
.rd .eyebrow .dt{color:var(--ink-3)}
.rd h1{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.05}
.rd .page-head .sub{color:var(--ink-2);margin-top:6px;font-size:13.5px}
.rd .head-actions{margin-left:auto;display:flex;gap:10px}

/* KPI */
.rd .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}
.rd .kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);padding:16px 17px;box-shadow:var(--shadow-xs);transition:.16s var(--ease)}
.rd .kpi:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}
.rd .kpi .k-top{display:flex;align-items:center;gap:9px;color:var(--ink-2);font-weight:600;font-size:12.5px}
.rd .kpi .k-ico{width:28px;height:28px;border-radius:9px;flex:none;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.rd .kpi .k-ico svg{width:16px;height:16px}
.rd .kpi .k-ico.ok{background:var(--success-soft);color:var(--success)}
.rd .kpi .k-ico.warn{background:var(--warning-soft);color:var(--warning)}
.rd .kpi .k-ico.vio{background:color-mix(in srgb,var(--accent-2) 15%,var(--surface));color:var(--accent-2)}
.rd .kpi .val{font-family:var(--mono);font-weight:700;font-size:29px;letter-spacing:-.04em;margin:12px 0 3px;color:var(--ink-0)}
.rd .kpi .k-bot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px}
.rd .delta{display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:12px;padding:2px 7px;border-radius:20px}
.rd .delta.up{color:var(--success);background:var(--success-soft)}
.rd .delta.down{color:var(--danger);background:var(--danger-soft)}
.rd .delta.flat{color:var(--warning);background:var(--warning-soft)}

/* card */
.rd .rcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-xs);overflow:hidden}
.rd .rcard-h{display:flex;align-items:center;gap:10px;padding:14px 17px;border-bottom:1px solid var(--border)}
.rd .rcard-h h2{margin:0;font-size:14.5px;font-weight:700;letter-spacing:-.02em}
.rd .rcard-h .cnt{font-family:var(--mono);font-size:12px;color:var(--ink-3);background:var(--surface-3);border-radius:20px;padding:1px 8px;font-weight:600}
.rd .rcard-h .more{margin-left:auto;color:var(--ink-3);font-weight:600;font-size:12.5px;cursor:pointer;display:flex;align-items:center;gap:4px;user-select:none}
.rd .rcard-h .more:hover{color:var(--accent)}

/* grid */
.rd .grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}
.rd .col{display:flex;flex-direction:column;gap:16px;min-width:0}
@media(max-width:1080px){.rd .kpis{grid-template-columns:repeat(2,1fr)}.rd .grid{grid-template-columns:1fr}}

/* ---- mappa in evidenza ---- */
.rd .rd-map .map-body{display:grid;grid-template-columns:1fr 320px}
.rd .rd-map .map-canvas{position:relative;min-height:440px;padding:20px;
  background:radial-gradient(130% 100% at 50% -8%, var(--surface-2) 0, var(--surface) 60%);
  border-right:1px solid var(--border)}
.rd .rd-map .map-canvas .topo{position:absolute;inset:0;opacity:.4;pointer-events:none;
  background-image:radial-gradient(var(--border-2) .8px,transparent .8px);background-size:16px 16px}
.rd .rd-map .italy-wrap{height:420px;position:relative;z-index:1}
.rd .map-side{padding:16px 17px;display:flex;flex-direction:column;gap:5px}
.rd .map-side .h{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);margin:2px 0 8px}
.rd .geo-row{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:9px 10px;border-radius:10px;cursor:pointer;transition:background .13s}
.rd .geo-row:hover{background:var(--surface-3)}
.rd .geo-row .rn{font-weight:600;font-size:13px}
.rd .geo-row .rbar{height:7px;border-radius:20px;background:var(--surface-3);overflow:hidden;display:flex;min-width:58px}
.rd .geo-row .rbar span{height:100%}
.rd .geo-row .rc{font-family:var(--mono);font-weight:700;font-size:14px}
.rd .map-side .note{margin-top:auto;font-size:11.5px;color:var(--ink-3);display:flex;align-items:flex-start;gap:7px;padding-top:12px}
.rd .map-side .note svg{width:14px;height:14px;color:var(--accent);flex:none;margin-top:1px}
@media(max-width:900px){.rd .rd-map .map-body{grid-template-columns:1fr}
  .rd .rd-map .map-canvas{border-right:0;border-bottom:1px solid var(--border);min-height:360px}
  .rd .rd-map .italy-wrap{height:330px}}

/* ---- feed gare ---- */
.rd .feed{display:flex;flex-direction:column}
.rd .grow{display:grid;grid-template-columns:auto 1fr auto;gap:13px;padding:14px 17px;border-bottom:1px solid var(--border);
  cursor:pointer;transition:background .13s;text-decoration:none;color:inherit}
.rd .grow:last-child{border-bottom:0}
.rd .grow:hover{background:var(--surface-2)}
.rd .lamp{width:9px;height:9px;border-radius:50%;margin-top:6px;flex:none}
.rd .lamp.go{background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}
.rd .lamp.warn{background:var(--warning);box-shadow:0 0 0 4px var(--warning-soft)}
.rd .lamp.stop{background:var(--danger);box-shadow:0 0 0 4px var(--danger-soft)}
.rd .grow .t{font-weight:700;font-size:13.5px;letter-spacing:-.01em;line-height:1.3}
.rd .grow .sa{color:var(--ink-2);font-size:12.5px;margin-top:1px}
.rd .grow .ai{color:var(--ink-2);font-size:12.5px;margin-top:7px;display:flex;gap:7px;line-height:1.4}
.rd .grow .ai svg{width:14px;height:14px;color:var(--accent);flex:none;margin-top:1px}
.rd .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.rd .chip2{font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--surface-3);border-radius:7px;padding:3px 8px}
.rd .chip2.mono{font-family:var(--mono);letter-spacing:-.02em}
.rd .grow .right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}
.rd .match{display:flex;flex-direction:column;align-items:center;gap:3px}
.rd .match .num{font-family:var(--mono);font-weight:700;font-size:15px}
.rd .match .mbar{width:52px;height:5px;border-radius:20px;background:var(--surface-3);overflow:hidden}
.rd .match .mbar i{display:block;height:100%;border-radius:20px}
.rd .match .lbl{font-size:10px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.rd .vote{display:flex;gap:5px}
.rd .vote button{width:26px;height:26px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:.12s}
.rd .vote button svg{width:14px;height:14px}
.rd .vote button:hover{border-color:var(--border-2);color:var(--ink-0)}
.rd .vote button.up:hover,.rd .vote button.up.on{color:var(--success);border-color:var(--success);background:var(--success-soft)}
.rd .vote button.dn:hover,.rd .vote button.dn.on{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}
/* KPI sparkline */
.rd .spark{height:32px;width:90px;display:block}

/* ---- pipeline kanban strip ---- */
.rd .kan{display:grid;grid-template-columns:repeat(4,minmax(178px,1fr));gap:11px;padding:14px;overflow-x:auto}
.rd .rd-kanban{margin-top:16px}
.rd .kcol{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-m);padding:10px;min-height:120px}
.rd .kcol .kh{display:flex;align-items:center;gap:7px;font-weight:700;font-size:12px;margin-bottom:10px}
.rd .kcol .kh .d{width:8px;height:8px;border-radius:50%;flex:none}
.rd .kcol .kh .n{margin-left:auto;font-family:var(--mono);color:var(--ink-3);font-weight:600}
.rd .kcard{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 10px;margin-bottom:8px;
  box-shadow:var(--shadow-xs);text-decoration:none;color:inherit;display:block;transition:.13s}
.rd .kcard:hover{border-color:var(--border-2)}
.rd .kcard .kt{font-weight:600;font-size:12px;line-height:1.3}
.rd .kcard .km{display:flex;align-items:center;gap:6px;margin-top:7px;color:var(--ink-3);font-size:11px}
.rd .kcard .km .imp{margin-left:auto;font-family:var(--mono);color:var(--ink-2);font-weight:600}
@media(max-width:700px){.rd .kan{grid-template-columns:repeat(2,1fr)}}
.rd .kcard{cursor:grab}
.rd .kcard:active{cursor:grabbing}
.rd .kcard.dragging{opacity:.4;border-color:var(--accent)}
.rd .kcol.drop-hint{outline:2px dashed var(--accent);outline-offset:-3px;background:var(--accent-soft)}
.rd .kcol-drop{min-height:46px;display:flex;flex-direction:column}

/* ---- incongruenze ---- */
.rd .inc-hero{padding:17px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border)}
.rd .inc-hero .big{font-family:var(--mono);font-weight:700;font-size:42px;letter-spacing:-.05em;line-height:.9;color:var(--danger)}
.rd .inc-hero .bd{font-size:12.5px;color:var(--ink-2)}
.rd .inc-hero .bd b{color:var(--ink-0);font-weight:700}
.rd .spec{padding:12px 17px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:11px}
.rd .srow{display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center}
.rd .srow .sn{font-weight:600;font-size:12.5px}
.rd .sbar{height:8px;border-radius:20px;background:var(--surface-3);overflow:hidden;display:flex}
.rd .sbar span{height:100%}
.rd .sbar .a{background:var(--danger)}.rd .sbar .m{background:var(--warning)}.rd .sbar .b{background:var(--ink-4)}
.rd .srow .sc{font-family:var(--mono);font-weight:700;font-size:13px}
.rd .inc-foot{padding:13px 17px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rd .legend{display:flex;gap:12px;font-size:11px;color:var(--ink-3);font-weight:600}
.rd .legend i{width:8px;height:8px;border-radius:2px;display:inline-block;margin-right:4px;vertical-align:middle}

/* ---- scadenze ---- */
.rd .dl{display:flex;flex-direction:column}
.rd .drow{display:flex;align-items:center;gap:12px;padding:12px 17px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;transition:background .13s}
.rd .drow:last-child{border-bottom:0}
.rd .drow:hover{background:var(--surface-2)}
.rd .cd{width:44px;height:44px;border-radius:11px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-3);color:var(--ink-0)}
.rd .cd .n{font-family:var(--mono);font-weight:700;font-size:16px;line-height:1}
.rd .cd .u{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700;margin-top:2px}
.rd .cd.hot{background:var(--danger-soft);color:var(--danger)}.rd .cd.hot .u{color:var(--danger)}
.rd .cd.soon{background:var(--warning-soft);color:var(--warning)}.rd .cd.soon .u{color:var(--warning)}
.rd .dinfo{min-width:0}
.rd .dinfo .t{font-weight:600;font-size:13px}
.rd .dinfo .s{color:var(--ink-3);font-size:12px;margin-top:1px}

/* ===================== RADAR — restyle "crisp" delle card esistenti ===================== */
.gara-card{border-radius:var(--radius-l);padding:17px;box-shadow:var(--shadow-xs);transition:transform .16s var(--ease),box-shadow .16s var(--ease),border-color .16s var(--ease)}
.gara-card::before{display:none!important}
.gara-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:var(--border-2)}
.gara-card h3{font-size:15px;letter-spacing:-.015em}
.score-ring::after{background:var(--surface)}
.gara-list{border-radius:var(--radius-l);box-shadow:var(--shadow-xs)}
.gl-row{transition:background .13s}
.gl-row:hover{background:var(--surface-2)}
.hero .card{border-radius:var(--radius-l)}
.hero .card .kicker{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-soft-2)}
.stat{border-radius:var(--radius-m)}

/* ===================== TOPBAR ricca (stile artifact) ===================== */
.topbar{margin-bottom:22px}
.topbar .tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.tb-credits{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:6px 11px;font-size:12.5px;font-weight:600;color:var(--ink-1);white-space:nowrap}
.tb-credits .tb-ring{width:18px;height:18px;border-radius:50%;background:conic-gradient(var(--accent) 264deg,var(--surface-3) 0);position:relative;flex:none}
.tb-credits .tb-ring::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--surface)}
.tb-credits b{font-family:var(--mono);font-weight:600}
.tb-icon{width:38px!important;height:38px;border-radius:11px;border:1px solid var(--border);background:var(--surface);display:grid!important;place-items:center;color:var(--ink-2);cursor:pointer;padding:0!important;position:relative}
.tb-icon:hover{color:var(--ink-0);border-color:var(--border-2);background:var(--surface-2)}
.tb-icon .notif-badge{position:absolute;top:5px;right:6px}
.tb-ava{width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,var(--accent),var(--accent-2));color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;text-decoration:none;flex:none}
.topbar .user-chip{display:flex;align-items:center;gap:8px}
@media(max-width:1180px){.tb-credits{display:none}}

/* ===================== SIDEBAR raggruppata + org chip ===================== */
.nav-group{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);padding:9px 12px 3px}
.nav-group:first-child{padding-top:2px}
.nav-item{position:relative}
.nav-badge{margin-left:auto;font-size:11px;font-weight:700;background:var(--surface-3);color:var(--ink-3);padding:1px 7px;border-radius:20px;min-width:8px;text-align:center}
.nav-badge:empty{display:none}
.nav-item.active .nav-badge{background:var(--accent);color:var(--on-accent)}
.nav-dot{margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--danger);flex:none}
body.sidebar-collapsed .nav-group{text-align:center;font-size:9px;padding:10px 0 4px}
body.sidebar-collapsed .nav-badge,body.sidebar-collapsed .nav-dot{display:none}
.org-chip{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:var(--radius-m);text-decoration:none;color:inherit;transition:background .13s}
.org-chip:hover{background:var(--surface-3)}
.org-ava{width:32px;height:32px;border-radius:9px;flex:none;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;background:conic-gradient(from 210deg,#1B3ED6,#2B54F4,#7A5CF0,#16A34A,#1B3ED6)}
.org-meta{display:flex;flex-direction:column;min-width:0}
.org-name{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.org-sub{font-size:11.5px;color:var(--ink-3)}
.org-chev{margin-left:auto;color:var(--ink-4);flex:none}
body.sidebar-collapsed .org-meta,body.sidebar-collapsed .org-chev,body.sidebar-collapsed .made-by-txt{display:none}
body.sidebar-collapsed .org-chip{justify-content:center;padding:9px 0}

/* ===================== Pagine moduli (mappa/procedure/incongruenze/intelligence/archivio) ===================== */
.mkt-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.mkt-search{flex:1;min-width:220px;display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:9px 12px;color:var(--ink-3)}
.mkt-search svg{width:16px;height:16px;flex:none}
.mkt-search input{flex:1;border:0;background:transparent;outline:none;font-family:var(--font);font-size:13.5px;color:var(--ink-0);min-width:0}
.mkt-tabs{display:flex;background:var(--surface-3);border-radius:10px;padding:3px;gap:2px}
.mkt-tabs button{border:0;background:transparent;font-family:var(--font);font-weight:600;font-size:12.5px;color:var(--ink-3);padding:6px 12px;border-radius:7px;cursor:pointer}
.mkt-tabs button.on{background:var(--surface);color:var(--ink-0);box-shadow:var(--shadow-xs)}
/* mappa full page */
.map-full{display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start}
.map-full .map-stage{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);min-height:560px;display:grid;place-items:center;padding:22px;box-shadow:var(--shadow-xs);overflow:hidden}
.map-full .map-stage .topo{position:absolute;inset:0;opacity:.4;pointer-events:none;background-image:radial-gradient(var(--border-2) .8px,transparent .8px);background-size:16px 16px}
.map-full .italy-wrap{height:520px;position:relative;z-index:1}
.map-full .map-list{display:flex;flex-direction:column;gap:6px}
@media(max-width:1000px){.map-full{grid-template-columns:1fr}.map-full .italy-wrap{height:420px}}
/* incongruenze / market intelligence / archivio: card generiche già coperte da .rcard */
.mi-result{border:1px solid var(--border);border-radius:var(--radius-m);padding:16px;background:var(--surface);margin-top:14px}
.ip-warn{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.5;color:var(--ink-1);background:color-mix(in srgb,var(--warning) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 34%,var(--border));border-radius:11px;padding:11px 13px;margin:2px 0 4px}
/* cookie banner (GDPR) */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:300;transform:translateY(160%);transition:transform .3s var(--ease)}
.cookie-banner.show{transform:none}
.cookie-banner .ck-body{max-width:980px;margin:0 auto;background:var(--surface);border:1px solid var(--border-2);border-radius:14px;box-shadow:var(--shadow-lg,0 18px 44px rgba(0,0,0,.2));padding:14px 18px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.cookie-banner .ck-txt{flex:1;min-width:240px;font-size:12.5px;line-height:1.5;color:var(--ink-1)}
.cookie-banner .ck-txt a{color:var(--accent);text-decoration:none}
.cookie-banner .ck-actions{display:flex;gap:8px;flex:none}
/* pagine legali */
.legal-wrap{max-width:840px}
.legal-doc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);padding:34px 38px;box-shadow:var(--shadow-xs)}
.legal-head{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:6px}
.legal-head h1{margin:4px 0 6px;font-size:26px}
.legal-sec{margin-top:22px}
.legal-sec h2{font-size:15px;margin:0 0 8px;color:var(--ink-0)}
.legal-sec p,.legal-sec li{font-size:13.5px;line-height:1.65;color:var(--ink-1)}
.legal-sec ul{margin:6px 0 0;padding-left:20px}
.legal-sec a{color:var(--accent);text-decoration:none}
.legal-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}
.legal-table th,.legal-table td{border:1px solid var(--border);padding:8px 10px;text-align:left}
.legal-table th{background:var(--surface-3)}
.legal-foot{margin-top:26px;padding-top:14px;border-top:1px solid var(--border);font-size:11.5px}
/* abbonamento & fatturazione */
.bill-usage{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:820px){.bill-usage{grid-template-columns:1fr}}
.bill-bar{height:7px;border-radius:20px;background:var(--surface-3);overflow:hidden;margin:8px 0 2px}
.bill-bar span{display:block;height:100%;border-radius:20px;transition:width .5s var(--ease)}
.bill-plans{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:4px}
@media(max-width:820px){.bill-plans{grid-template-columns:1fr}}
.bill-plan{position:relative;border:1px solid var(--border);border-radius:var(--radius-m);padding:20px;background:var(--surface);display:flex;flex-direction:column;gap:10px}
.bill-plan.is-current{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.bill-plan-flag{position:absolute;top:-10px;right:16px;background:var(--accent);color:var(--on-accent);font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.03em}
.bill-plan-name{font-weight:800;font-size:16px}
.bill-plan-price b{font-size:26px;font-family:var(--mono)}
.bill-plan-price span{color:var(--ink-3);font-size:12.5px;margin-left:4px}
.bill-plan-tag{font-size:12.5px;color:var(--ink-2);line-height:1.5}
.bill-plan-feats{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:7px}
.bill-plan-feats li{font-size:12.5px;color:var(--ink-1);padding-left:22px;position:relative;line-height:1.4}
.bill-plan-feats li::before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;border-radius:50%;background:color-mix(in srgb,var(--success) 20%,transparent);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2316A34A' stroke-width='3'><path d='M5 12l5 5L20 6'/></svg>");background-repeat:no-repeat;background-position:center}
.bill-plan-meta{font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--border);padding-top:10px;margin-top:auto}
a.tb-credits{text-decoration:none;cursor:pointer}
/* fonti gare (impostazioni) */
.src-list{display:flex;flex-direction:column;gap:2px;margin-top:12px}
.src-row{display:flex;align-items:center;gap:11px;padding:10px 4px;border-bottom:1px solid var(--border)}
.src-row:last-child{border-bottom:0}
.src-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--ink-4,#c9cdd6)}
.src-dot.go{background:var(--success)}.src-dot.warn{background:var(--warning)}
.src-meta{flex:1;min-width:0}
.src-name{font-size:13px;font-weight:600}
.src-sub{font-size:11.5px;margin-top:1px}
.src-badge{flex:none;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;color:var(--ink-3);background:var(--surface-3);border:1px solid var(--border)}
.src-badge.go{color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--surface));border-color:color-mix(in srgb,var(--success) 30%,var(--border))}
.src-badge.warn{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,var(--surface));border-color:color-mix(in srgb,var(--warning) 32%,var(--border))}
.side-legal{display:flex;flex-wrap:wrap;gap:2px 8px;padding:8px 4px 0;font-size:10.5px}
.side-legal a{color:var(--ink-3);text-decoration:none}
.side-legal a:hover{color:var(--accent)}
@media(max-width:600px){.legal-doc{padding:22px 18px}}
.ip-warn svg{color:var(--warning);margin-top:1px}
.mi-src{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11.5px;font-weight:600;color:var(--ink-3);background:var(--surface-3);border:1px solid var(--border);border-radius:999px;padding:4px 11px}
.mi-src.is-live{color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--surface));border-color:color-mix(in srgb,var(--success) 32%,var(--border))}
.arc-table{width:100%;border-collapse:collapse;font-size:13px}
.arc-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--border)}
.arc-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.arc-table tr:hover td{background:var(--surface-2)}
.arc-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}
@media(max-width:900px){.arc-metrics{grid-template-columns:repeat(2,1fr)}}

/* ===================== INCONGRUENZE (tab workspace) ===================== */
.incx-intro{padding:22px}
.incx-lead{display:flex;gap:14px;align-items:flex-start}
.incx-lead-ico{width:44px;height:44px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.incx-swarm-specs{display:flex;gap:8px;flex-wrap:wrap}
.incx-swarm-spec{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--surface-3);border:1px solid var(--border);border-radius:20px;padding:5px 12px}
.incx-swarm-spec svg{color:var(--accent)}
.incx-swarm{padding:36px 22px;text-align:center}
.incx-swarm-head{display:inline-flex;align-items:center;gap:9px;font-weight:600;margin-bottom:16px}
.incx-swarm .incx-swarm-specs{justify-content:center}
.incx-summary{display:flex;align-items:center;gap:16px;padding:16px 18px;margin-bottom:12px}
.incx-big{font-family:var(--mono);font-weight:700;font-size:38px;letter-spacing:-.05em;line-height:.9;color:var(--danger)}
.incx-list{display:flex;flex-direction:column;gap:10px}
.incx-item{border:1px solid var(--border);border-radius:var(--radius-m);padding:14px 16px;background:var(--surface);box-shadow:var(--shadow-xs);transition:opacity .2s}
.incx-item.read{opacity:.55}
.incx-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.incx-spec-tag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:6px}
.incx-spec-tag.procedurale{background:var(--accent-soft);color:var(--accent-ink)}
.incx-spec-tag.economico{background:var(--warning-soft);color:var(--warning)}
.incx-spec-tag.legale{background:color-mix(in srgb,var(--accent-2) 16%,var(--surface));color:var(--accent-2)}
.incx-sev{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase}
.incx-sev.alta{background:var(--danger-soft);color:var(--danger)}
.incx-sev.media{background:var(--warning-soft);color:var(--warning)}
.incx-sev.bassa{background:var(--surface-3);color:var(--ink-3)}
.incx-title{font-weight:700;font-size:13.5px}
.incx-read-btn{margin-left:auto;width:26px;height:26px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--ink-3);cursor:pointer;display:grid;place-items:center}
.incx-read-btn:hover{color:var(--success);border-color:var(--success)}
.incx-detail{font-size:13px;color:var(--ink-2);line-height:1.55;margin-top:8px}
.incx-ref{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3);background:var(--surface-3);border-radius:6px;padding:3px 8px;margin-top:8px;font-family:var(--mono)}
.incx-foot{margin-top:10px}
.incx-chiar{margin-top:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:13px}
.incx-chiar-txt{font-size:13px;line-height:1.6;white-space:pre-wrap;color:var(--ink-1)}
.incx-chiar-act{display:flex;gap:8px;margin-top:10px}

/* ===================== Contesto AI (righe certificazioni) ===================== */
.aictx-cert{display:grid;grid-template-columns:1fr 130px 120px 34px;gap:8px;margin-bottom:6px;align-items:center}
.aictx-cert input{width:100%;padding:9px 11px;background:var(--bg-2);border:1px solid var(--border);color:var(--ink-0);border-radius:9px;font-family:var(--font);font-size:13px;outline:none}
.aictx-cert input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.aictx-cert .cert-rm{width:34px;height:36px;padding:0;justify-content:center}
@media(max-width:640px){.aictx-cert{grid-template-columns:1fr 1fr}.aictx-cert .cert-nome{grid-column:1/-1}}

/* ===================== ATTIVITÀ (tab workspace) ===================== */
.att-top{padding:16px 18px}
.att-grp .att-h{display:flex;align-items:center;gap:12px;padding:13px 17px;border-bottom:1px solid var(--line)}
.att-prog{margin-left:auto;display:flex;align-items:center;gap:9px}
.att-bar{width:92px;height:6px;border-radius:20px;background:var(--surface-3);overflow:hidden}
.att-bar i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--success),var(--accent));transition:width .4s var(--ease)}
.att-list{display:flex;flex-direction:column}
.att-row{display:grid;grid-template-columns:118px 1fr 152px 32px;gap:12px;align-items:center;padding:11px 17px;border-bottom:1px solid var(--line)}
.att-row:last-child{border-bottom:0}
.att-status{display:inline-flex;align-items:center;gap:7px;font-family:var(--font);font-size:12px;font-weight:600;padding:5px 11px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap;justify-content:center}
.att-status .att-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4)}
.att-status.doing{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,transparent);background:var(--warning-soft)}
.att-status.doing .att-dot{background:var(--warning)}
.att-status.done{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,transparent);background:var(--success-soft)}
.att-status.done .att-dot{background:var(--success)}
.att-t{font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:8px;min-width:0}
.att-t.is-done{text-decoration:line-through;color:var(--ink-3)}
.att-cc{font-size:11px;color:var(--ink-3);flex:none}
.att-assignee{font-family:var(--font);font-size:12.5px;padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink-0);cursor:pointer;outline:none}
.att-cmt{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink-3);cursor:pointer;display:grid;place-items:center}
.att-cmt:hover{color:var(--accent);border-color:var(--border-2)}
.att-add{display:flex;gap:8px;padding:12px 17px}
.att-add .att-new{flex:1}
@media(max-width:820px){.att-row{grid-template-columns:104px 1fr 32px}.att-assignee{grid-column:1/-1;justify-self:stretch}}

/* ===================== COMPUTO METRICO (Pareto) ===================== */
.cmt-hero{display:flex;align-items:center;gap:16px;padding:18px 20px;margin-bottom:12px}
.cmt-hero-l{flex:1}
.cmt-hero-r{text-align:right;flex:none}
.cmt-controls{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.cmt-table tr.vital td{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.cmt-table tr.vital td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.cmt-badge{font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:middle}
.cmt-bar{display:inline-block;width:76px;height:6px;border-radius:20px;background:var(--surface-3);overflow:hidden;vertical-align:middle;margin-right:8px}
.cmt-bar i{display:block;height:100%;border-radius:20px;background:var(--accent)}

/* ===================== CALENDARIO ===================== */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border-top:1px solid var(--border)}
.cal-dow{background:var(--surface-2);padding:8px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);text-align:center}
.cal-cell{background:var(--surface);min-height:104px;padding:7px 8px;display:flex;flex-direction:column;gap:4px;overflow:hidden}
.cal-cell.empty{background:var(--surface-2)}
.cal-cell.today{background:var(--accent-soft)}
.cal-d{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink-2)}
.cal-cell.today .cal-d{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--on-accent)}
.cal-ev{font-size:11px;font-weight:600;padding:3px 7px;border-radius:6px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.cal-ev.cig{border-left-color:var(--warning);background:var(--warning-soft);color:var(--warning)}
.cal-ev:hover{filter:brightness(.97)}
.cal-leg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3);font-weight:600}
.cal-leg .d{width:8px;height:8px;border-radius:2px}
@media(max-width:760px){.cal-cell{min-height:76px}.cal-ev{font-size:10px}.cal-leg{display:none}}

/* ===================== MARKET INTELLIGENCE — concorrenti ===================== */
.mi-comp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:820px){.mi-comp{grid-template-columns:1fr}}
.mi-ccard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:14px 16px;box-shadow:var(--shadow-xs)}
.mi-cc-h{display:flex;align-items:center;gap:11px}
.mi-cc-ava{width:36px;height:36px;border-radius:10px;flex:none;display:grid;place-items:center;font-weight:800;font-size:12px;color:#fff;background:conic-gradient(from 210deg,#1B3ED6,#2B54F4,#7A5CF0,#16A34A,#1B3ED6)}
.mi-cc-n{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi-cc-s{font-size:11.5px;color:var(--ink-3);margin-top:1px}
.mi-follow{margin-left:auto;flex:none}
.mi-follow.on{background:var(--success-soft);color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,transparent)}
.mi-cc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.mi-cc-stats .l{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.mi-cc-stats .v{font-family:var(--mono);font-weight:700;font-size:16px;margin-top:3px}
