:root{
  /* ---- Brand Elixia ---- */
  --brand:#C8102E;         /* rosso Elixia */
  --brand-2:#A50D25;       /* rosso scuro (hover/pressed) */
  --graphite:#0F172A;      /* slate scuro */
  --beige:#EEF2F7;         /* neutro chiaro (ex beige) */

  /* ---- Ruoli UI (palette professional: canvas grigio-freddo + rosso accento) ---- */
  --bg:#F4F6FA;            /* fondo grigio-freddo chiaro */
  --panel:#ffffff;
  --ink:#111827;           /* testo primario (slate-900) */
  --ink-2:#475569;         /* testo secondario (slate-600) */
  --muted:#94A3B8;         /* muted (slate-400) */
  --line:#E5E9F0;          /* bordi/linee fredde */
  --primary:#C8102E;
  --primary-2:#A50D25;
  --accent:#0E9F6E;        /* emerald: stati positivi */
  --danger:#B91C1C;        /* rosso distruttivo */
  --warn:#D97706;          /* ambra */
  --shadow: 0 6px 24px rgba(17,24,39,.07);
  --radius: 14px;
  --radius-sm: 10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,sans-serif;font-size:14px}
.hidden{display:none !important}
button{cursor:pointer;font:inherit}
input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);font:inherit;outline:none;transition:border-color .15s}
input:focus,select:focus,textarea:focus{border-color:var(--primary)}
label{display:block;font-size:12px;color:var(--ink-2);margin:8px 0 4px;font-weight:500}
h1,h2,h3{margin:0 0 12px;font-family:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
h2{font-size:22px;font-weight:700;letter-spacing:-.3px}
h3{font-size:16px;font-weight:700}
.muted{color:var(--muted);font-size:13px}
.mt{margin-top:16px}

/* WORDMARK Elixia */
.wordmark{font-family:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:800;text-transform:lowercase;letter-spacing:-1px;color:var(--ink)}

/* LOGIN */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#F7F9FC,#EEF2F7 55%,#FCE9EC)}
.login-card{background:#fff;padding:32px;border-radius:18px;box-shadow:var(--shadow);width:380px;max-width:92vw}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:24px}
.brand-tag{margin:0;color:var(--muted);font-size:12px;line-height:1.4}

/* LOGO Elixia (wordmark SVG inline) */
.logo-svg{height:46px;width:auto;display:block}
.hint{color:var(--muted);font-size:12px;text-align:center;margin:12px 0 6px}

/* ICONS (line-style, monocromatiche) */
.ic{width:1.05em;height:1.05em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em}

/* BUTTONS */
.btn{border:none;border-radius:10px;padding:9px 14px;font-weight:500;transition:all .15s;background:#EEF1F6;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:7px}
.btn:hover{background:#E3E8F0}
.btn.primary{background:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-2)}
.btn.ghost{background:transparent;color:var(--ink-2);border:1px solid var(--line)}
.btn.ghost:hover{background:#EEF1F6}
.btn.danger{background:var(--danger);color:#fff}
.btn.danger:hover{background:#5f0b18}
.btn.small{padding:5px 10px;font-size:12px}
.btn.small .ic{width:1em;height:1em;vertical-align:-.12em}
.btn.block{display:flex;width:100%;margin-top:8px}
.file-btn{cursor:pointer;display:inline-flex;align-items:center;gap:7px}

/* TOP BAR */
.topbar{display:flex;align-items:center;gap:24px;padding:14px 28px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.logo-mini{display:flex;align-items:center}
.logo-mini .logo-svg{height:28px}
.tabs{display:flex;gap:4px;flex:1}
.tab{background:transparent;border:none;padding:8px 14px;border-radius:8px;color:var(--ink-2);font-weight:500}
.tab:hover{background:#EEF1F6}
.tab.active{background:#FCE9EC;color:var(--primary)}
.user-box{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink-2)}

main{padding:24px 28px;max-width:1400px;margin:0 auto}
.view{display:none}
.view.active{display:block}

/* DASHBOARD HEADER */
.dash-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:16px}
.dash-header h2{font-size:26px;margin-bottom:4px;background:linear-gradient(135deg,var(--ink),var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.dash-subtitle{color:var(--muted);font-size:14px;margin:0}
.dash-quick-actions{display:flex;gap:8px}

/* KPI CARDS */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.kpi-card{background:#fff;border-radius:16px;padding:20px;box-shadow:var(--shadow);display:flex;gap:14px;align-items:flex-start;position:relative;overflow:hidden;transition:transform .15s}
.kpi-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(15,14,12,.13)}
.kpi-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}
.kpi-card.kpi-clienti::before{background:linear-gradient(180deg,#C8102E,#e0435c)}
.kpi-card.kpi-bandi::before{background:linear-gradient(180deg,#0E9F6E,#34D399)}
.kpi-card.kpi-match::before{background:linear-gradient(180deg,#D97706,#e6b154)}
.kpi-card.kpi-email::before{background:linear-gradient(180deg,#334155,#475569)}
.kpi-icon{width:44px;height:44px;border-radius:12px;background:#EEF1F6;display:grid;place-items:center;flex-shrink:0}
.kpi-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.kpi-card.kpi-clienti .kpi-icon{background:#FCE9EC;color:#C8102E}
.kpi-card.kpi-bandi .kpi-icon{background:#E7F6EF;color:#0E9F6E}
.kpi-card.kpi-match .kpi-icon{background:#FEF3C7;color:#B45309}
.kpi-card.kpi-email .kpi-icon{background:#EEF1F6;color:#475569}
.kpi-content{flex:1;min-width:0}
.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.kpi-value{font-size:30px;font-weight:700;color:var(--ink);margin-top:4px;line-height:1;font-family:'Manrope',sans-serif}
.kpi-trend{font-size:11px;color:var(--muted);margin-top:6px}
.kpi-trend.up{color:#0E9F6E}
.kpi-trend.down{color:#991B1B}

/* PRIORITY / URGENT */
.priority-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.priority-grid>.card{min-width:0}
.priority-item{min-width:0}
.card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:16px}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.card-header h3{margin:0;display:inline-flex;align-items:center;gap:8px}
.card-header h3 .ic{width:18px;height:18px}
.badge-count{background:var(--primary);color:#fff;font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;min-width:24px;text-align:center}
.badge-count.urgent{background:var(--warn)}
.priority-list{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}
.priority-item{background:#F7F9FC;border-radius:10px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-left:3px solid var(--primary);transition:transform .1s,background .1s}
.priority-item:hover{transform:translateX(2px);background:#EEF1F6}
.priority-item.hot{border-left-color:var(--warn)}
.priority-item.top{border-left-color:var(--accent)}
.priority-info{flex:1;min-width:0}
.priority-info .p-title{font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.priority-info .p-sub{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.priority-score{font-size:12px;font-weight:700;padding:5px 10px;border-radius:20px;color:#fff;flex-shrink:0}
.priority-score.excellent{background:linear-gradient(135deg,#0E9F6E,#0B7D57)}
.priority-score.good{background:linear-gradient(135deg,#C8102E,#A50D25)}
.priority-score.fair{background:linear-gradient(135deg,#D97706,#B45309)}
.priority-actions{display:flex;gap:4px;flex-shrink:0}
.priority-actions .btn.small{padding:4px 8px;font-size:11px}
.empty-state{padding:24px;text-align:center;color:var(--muted);font-size:13px}

/* CHARTS */
.charts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
.chart-card{display:flex;flex-direction:column}
.chart-card h3{margin-bottom:12px}
.chart-wrap{position:relative;height:220px;flex:1}
.chart-card.compact .chart-wrap{height:150px;max-width:180px;margin:0 auto;flex:none}
.chart-card.compact .chart-legend{margin-top:16px}
.hero-card .priority-list{max-height:400px}
.hero-card .card-header h3{font-size:18px}
.chart-legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px;font-size:11px;color:var(--muted)}
.legend-item{display:flex;align-items:center;gap:5px}
.legend-dot{width:10px;height:10px;border-radius:50%}

/* TIMELINE */
.timeline{display:flex;flex-direction:column;gap:6px}
.tl-row{display:grid;grid-template-columns:80px 1fr auto;gap:14px;align-items:center;padding:10px 12px;border-radius:10px;background:#F7F9FC;transition:background .1s;cursor:pointer}
.tl-row:hover{background:#EEF1F6}
.tl-date{font-size:11px;color:var(--muted);font-weight:600;text-align:center;background:#fff;padding:6px 4px;border-radius:8px;line-height:1.1}
.tl-date .tl-d{display:block;font-size:18px;font-weight:700;color:var(--ink)}
.tl-info{min-width:0}
.tl-info .tl-title{font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-info .tl-sub{font-size:11px;color:var(--muted);margin-top:2px}
.tl-badge{font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px}
.tl-badge.close{background:#FDE7E9;color:#991B1B}
.tl-badge.warn{background:#FEF3C7;color:#92400E}
.tl-badge.ok{background:#E7F6EF;color:#0E9F6E}

.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ROWS */
.row-between{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.row-end{display:flex;justify-content:flex-end;gap:8px}
.actions{display:flex;gap:8px}
.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.filters input{flex:1;min-width:200px}
.filters select{max-width:200px}

/* GRIDS */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.item-card{background:#fff;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);border-left:4px solid var(--primary);cursor:pointer;transition:transform .12s;position:relative}
.item-card:hover{transform:translateY(-2px)}
.item-card.bando{border-left-color:var(--accent)}
.item-card.scaduto{border-left-color:var(--muted);opacity:.75}
.item-card.scadenza{border-left-color:var(--warn)}
.item-card h4{margin:0 0 6px;font-size:15px}
.item-card .sub{font-size:12px;color:var(--muted);margin-bottom:8px}
.item-card .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.tag{background:#EEF1F6;padding:2px 8px;border-radius:20px;font-size:11px;color:var(--ink-2)}
.tag.ok{background:#E7F6EF;color:#0E9F6E}
.tag.warn{background:#FEF3C7;color:#92400E}
.tag.danger{background:#FDE7E9;color:#991B1B}
.tag.pri{background:#FCE9EC;color:var(--primary-2)}

.list{display:flex;flex-direction:column;gap:8px}
.list.wide .list-row{padding:14px 16px}
.list-row{background:#fff;border-radius:var(--radius-sm);padding:10px 14px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px rgba(15,14,12,.05);gap:12px}
.list-row .info{flex:1}
.list-row .info b{display:block;color:var(--ink);font-size:14px}
.list-row .info small{color:var(--muted);font-size:12px}
.list-row .score{background:linear-gradient(135deg,#C8102E,#991B1B);color:#fff;font-weight:600;border-radius:20px;padding:4px 12px;font-size:12px}

/* GRID FORMS */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* MODAL */
.modal{position:fixed;inset:0;background:rgba(15,14,12,.55);display:grid;place-items:center;z-index:100;padding:20px}
.modal-body{background:#fff;border-radius:var(--radius);padding:24px;width:100%;max-width:620px;max-height:88vh;overflow:auto;box-shadow:var(--shadow)}
.modal-body.wide{max-width:900px}
.tabs-inline{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:12px 0 16px}
.tab-inline{background:transparent;border:none;padding:8px 14px;color:var(--ink-2);font-weight:500;border-bottom:2px solid transparent}
.tab-inline.active{color:var(--primary);border-bottom-color:var(--primary)}
.subview{display:none}
.subview.active{display:block}

/* TOAST */
.toast{position:fixed;bottom:20px;right:20px;background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow);z-index:200;font-size:13px}

/* MATCH DETAIL */
.match-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:linear-gradient(135deg,#FCE9EC,#EEF2F7);border-radius:14px;margin-bottom:20px;gap:16px}
.match-header .match-cliente{font-weight:600;font-size:15px;color:var(--ink)}
.match-header .match-arrow{color:var(--muted);margin:4px 0;font-size:14px}
.match-header .match-bando{font-weight:600;font-size:15px;color:var(--primary-2)}
.match-header .match-ente{font-size:12px;color:var(--muted);margin-top:2px}
.match-total{text-align:center;min-width:110px}
.match-total .score-big{font-size:44px;font-weight:800;line-height:1;font-family:'Manrope',sans-serif;background:linear-gradient(135deg,#C8102E,#991B1B);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.match-total .score-big.excellent{background:linear-gradient(135deg,#0E9F6E,#0B7D57);-webkit-background-clip:text;background-clip:text}
.match-total .score-big.good{background:linear-gradient(135deg,#C8102E,#A50D25);-webkit-background-clip:text;background-clip:text}
.match-total .score-big.fair{background:linear-gradient(135deg,#D97706,#B45309);-webkit-background-clip:text;background-clip:text}
.match-total .score-max{font-size:12px;color:var(--muted);margin-top:2px}
.match-total .score-hint{font-size:11px;color:var(--muted);margin-top:6px}

.breakdown-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.breakdown-row{display:flex;gap:12px;padding:12px 14px;background:#F7F9FC;border-radius:10px;border-left:3px solid var(--line)}
.breakdown-row.ok{border-left-color:#0E9F6E}
.breakdown-row.partial{border-left-color:#D97706}
.breakdown-row.missing{border-left-color:#475569}
.breakdown-row.ko{border-left-color:#7a0f1f}
.breakdown-row.na{border-left-color:var(--muted);opacity:.75}
.bd-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:14px;flex-shrink:0}
.bd-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.breakdown-row.ok .bd-icon{background:#E7F6EF;color:#0E9F6E}
.breakdown-row.partial .bd-icon{background:#FEF3C7;color:#92400E}
.breakdown-row.missing .bd-icon{background:#EEF1F6;color:#475569}
.breakdown-row.ko .bd-icon{background:#FDE7E9;color:#991B1B}
.breakdown-row.na .bd-icon{background:#EEF1F6;color:var(--muted)}
.bd-content{flex:1;min-width:0}
.bd-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:600;font-size:13px}
.bd-title .bd-criterio{color:var(--ink)}
.bd-title .bd-score{color:var(--ink-2);font-size:12px;font-weight:700;background:#fff;padding:2px 8px;border-radius:20px}
.bd-detail{font-size:12px;color:var(--ink-2);margin-top:4px;line-height:1.4}
.bd-progress{background:#e8e1d5;border-radius:3px;height:5px;margin-top:8px;overflow:hidden}
.bd-fill{height:100%;background:linear-gradient(90deg,#C8102E,#e0435c);border-radius:3px;transition:width .3s}
.breakdown-row.ko .bd-fill{background:#7a0f1f}
.breakdown-row.partial .bd-fill{background:#D97706}
.breakdown-row.missing .bd-fill{background:#475569}
.breakdown-row.ok .bd-fill{background:#0E9F6E}

.missing-section{background:#FEF7E6;border:1px solid #eccf88;border-radius:12px;padding:16px;margin-top:14px}
.missing-section h4{margin:0 0 10px;color:#92400E;font-size:14px;display:flex;align-items:center;gap:7px}
.missing-list{display:flex;flex-direction:column;gap:8px}
.missing-row{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:10px 12px;border-radius:8px;gap:10px}
.missing-row .missing-field{font-weight:600;font-size:13px;color:var(--ink)}
.missing-row .missing-hint{font-size:11px;color:var(--muted);margin-top:2px}

/* CLIENT ACTION BAR */
.cliente-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.cliente-actions .btn.warn{background:#FEF3C7;color:#92400E}
.cliente-actions .btn.warn:hover{background:#F3D98A}
.cliente-status-banner{background:#FEF3C7;border-left:3px solid var(--warn);color:#92400E;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}
.cliente-status-banner span{display:inline-flex;align-items:center;gap:7px}
.item-card.archived{opacity:.65;border-left-color:var(--muted)}
.item-card.archived::after{content:'ARCHIVIATO';position:absolute;top:8px;right:8px;background:#EEF1F6;color:var(--muted);font-size:9px;font-weight:700;padding:3px 8px;border-radius:20px;letter-spacing:.5px}

/* DOC LIST */
.doc-row{display:flex;justify-content:space-between;align-items:center;background:#F7F9FC;padding:8px 12px;border-radius:8px;margin-bottom:6px}
.doc-row .doc-name{font-size:13px}
.doc-row .doc-meta{font-size:11px;color:var(--muted)}

/* SHARE LINK */
.share-box{background:#FCE9EC;padding:12px;border-radius:10px;font-family:monospace;font-size:12px;word-break:break-all;color:var(--primary-2)}

@media(max-width:900px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .priority-grid{grid-template-columns:1fr}
  .charts-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .tabs{overflow-x:auto}
  .dash-header{flex-direction:column;align-items:flex-start}
}
@media(max-width:1200px) and (min-width:901px){
  .charts-grid{grid-template-columns:repeat(2,1fr)}
}

/* ============ PAGINA CLIENTE ============ */
.cp-head{display:flex;align-items:center;gap:18px;margin-bottom:18px;flex-wrap:wrap}
.cp-id{display:flex;align-items:center;gap:14px;min-width:0}
.cp-logo{width:64px;height:64px;border-radius:16px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;overflow:hidden;flex-shrink:0;padding:0}
.cp-logo img{width:100%;height:100%;object-fit:contain}
.cp-logo span{font-family:'Manrope';font-weight:800;font-size:22px;color:var(--brand)}
.cp-logo:hover{border-color:var(--brand)}
.cp-logo[disabled]{cursor:default;opacity:.7}
.cp-id h2{margin:0}
.cp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}
.cp-tab{background:transparent;border:none;padding:10px 16px;color:var(--ink-2);font-weight:600;border-bottom:2px solid transparent;font-size:15px;cursor:pointer}
.cp-tab:hover{color:var(--ink)}
.cp-tab.active{color:var(--brand);border-bottom-color:var(--brand)}
.cp-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.cp-grid>.card{min-width:0}
.cp-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cp-fact{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.cp-fact span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.cp-fact b{font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
@media(max-width:900px){.cp-grid{grid-template-columns:1fr}}

/* donut progetti */
.donut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.donut-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 4px 18px rgba(15,14,12,.06)}
.donut-card h4{margin:0 0 12px;font-size:15px}
.donut-wrap{position:relative;height:170px;margin-bottom:14px}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.donut-center b{font-size:26px;font-weight:800;font-family:'Manrope';color:var(--accent)}
.donut-center span{font-size:11px;color:var(--muted)}
.donut-legend>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.donut-legend>div:first-child{border-top:none}
.donut-legend b{font-weight:700}
.green{color:var(--accent)!important}

/* progetti: tab + toolbar + tabella */
.cp-proj-tabs{display:flex;gap:6px;flex-wrap:wrap}
.cp-proj-tab{background:#EEF1F6;border:none;border-radius:10px 10px 0 0;padding:9px 16px;font-weight:600;color:var(--ink-2);cursor:pointer}
.cp-proj-tab.active{background:#fff;color:var(--brand);box-shadow:0 -2px 0 var(--brand) inset}
.proj-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;flex-wrap:wrap}
.proj-name{font-family:'Manrope';font-weight:800;font-size:18px}
.proj-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.proj-table{border-collapse:collapse;width:100%;min-width:1240px;font-size:13px}
.proj-table th{background:#F7F9FC;text-align:left;padding:10px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-2);border-bottom:1px solid var(--line);white-space:nowrap}
.proj-table th.num{text-align:right}
.proj-table td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.proj-table td.num{text-align:right;white-space:nowrap}
.proj-table td.calc{font-weight:700}
.proj-row:hover{background:#F7F9FC}
.proj-row.dragging{opacity:.5;background:#FCE9EC}
.col-drag{cursor:grab;color:var(--muted);text-align:center;width:26px;user-select:none;font-size:16px}
.proj-table input.ci,.proj-table select.ci{border:1px solid transparent;background:transparent;padding:6px;border-radius:8px;min-width:120px;font:inherit;color:var(--ink)}
.proj-table input.ci:focus,.proj-table select.ci:focus{border-color:var(--line);background:#fff;outline:none}
.proj-table input.num{text-align:right;min-width:90px}
.proj-table input.narrow{min-width:58px}
.proj-total td{background:#EEF1F6;font-weight:800;border-top:2px solid var(--brand);border-bottom:none}
.proj-total td.num{font-family:'Manrope'}

/* file cell */
.filecell{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:130px}
.filechip{display:inline-flex;align-items:center;gap:2px;background:#E7F6EF;color:#0E9F6E;border-radius:20px;padding:2px 4px 2px 8px;font-size:11px;max-width:120px}
.filechip a{color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filechip button{border:none;background:transparent;color:#0E9F6E;cursor:pointer;font-size:14px;line-height:1;padding:0 2px}
.filecell-add{border:1px dashed var(--line);background:transparent;color:var(--ink-2);border-radius:8px;padding:3px 8px;font-size:11px;cursor:pointer;white-space:nowrap}
.filecell-add:hover{border-color:var(--brand);color:var(--brand)}

/* documenti a cartelle */
.doc-folder{border:1px solid var(--line);border-radius:14px;margin-bottom:14px;overflow:hidden;background:#fff}
.doc-folder-head{display:flex;align-items:center;gap:8px;padding:14px 16px;font-weight:700;background:#F7F9FC;border-bottom:1px solid var(--line)}
.doc-folder-head .ic{color:var(--warn)}
.doc-sub{padding:10px 16px;border-bottom:1px solid var(--line)}
.doc-sub:last-child{border-bottom:none}
.doc-sub-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:13px;color:var(--ink-2);margin-bottom:8px}
.doc-sub-list{display:flex;flex-direction:column;gap:6px}
.cp-flags{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2);cursor:pointer;font-weight:500}
.chk input{width:auto;margin:0}
@media(max-width:600px){.cp-flags{grid-template-columns:1fr}}
.optout-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:13px 16px;background:#FDE7E9;border:1px solid #F5C2C7;border-radius:12px;font-size:13.5px;color:#7a0f1f}
.optout-banner b{color:#7a0f1f}
.optout-banner .muted{color:#a05561}
.optout-banner .btn{flex:0 0 auto;white-space:nowrap;background:#fff}
@media(max-width:600px){.optout-banner{flex-direction:column;align-items:stretch}}

/* scheda Match raggruppata */
.match-group-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 8px;padding:10px 16px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:10px;cursor:pointer}
.match-group-head:first-child{margin-top:0}
.match-group-head:hover{background:#F7F9FC}
.mgh-name{font-family:'Manrope';font-weight:800;font-size:16px}
.mgh-count{font-size:12px;color:var(--muted);font-weight:600}
.match-row{margin-left:12px}

/* Match — accordion per impresa */
.match-acc{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px;overflow:hidden}
.match-acc.open{border-color:#D6DCE6;box-shadow:0 4px 16px rgba(15,14,12,.06)}
.match-acc-head{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:none;border-left:3px solid transparent;text-align:left;cursor:pointer;transition:background .15s}
.match-acc-head:hover{background:#F7F9FC}
.match-acc.open .match-acc-head{border-left-color:var(--brand);background:var(--panel)}
.acc-caret{display:flex;color:var(--muted);transition:transform .18s ease;flex:0 0 auto}
.match-acc.open .acc-caret{transform:rotate(90deg);color:var(--brand)}
.acc-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.acc-name{font-family:'Manrope';font-weight:800;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-sub{font-size:12px;color:var(--muted)}
.acc-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/* la pill del punteggio è definita solo dentro .list-row: qui va ridichiarata */
.acc-meta .score{background:linear-gradient(135deg,#C8102E,#991B1B);color:#fff;font-weight:600;border-radius:20px;padding:4px 12px;font-size:12px;line-height:1.4}
.acc-count{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}
.match-acc-body{padding:4px 12px 12px;display:flex;flex-direction:column;gap:6px;background:#FBFCFE}
.match-acc-body .match-row{margin-left:0}
.match-acc-foot{display:flex;justify-content:flex-end;padding-top:4px}
.filters-actions{display:flex;gap:6px;margin-left:auto}
.filters-meta{display:flex;align-items:center;gap:14px;margin:-6px 0 14px;flex-wrap:wrap}
.result-count{font-size:13px;color:var(--muted);font-weight:600}
.chk.inline{display:inline-flex;font-size:13px}
.chk-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:4px}
.card-range{font-family:inherit;font-size:11px;font-weight:600;color:var(--muted);background:#EEF1F6;padding:2px 8px;border-radius:20px;margin-left:8px;vertical-align:middle}

/* Scheda bando */
.bs-head{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.bs-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0 0 6px}
.bs-row{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--line);min-width:0}
.bs-row dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.bs-row dd{margin:0;font-size:14px;color:var(--ink);word-break:break-word}
.bs-block{margin-top:16px}
.bs-block h5{margin:0 0 5px;font-family:'Manrope';font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}
.bs-block p{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}
.bs-link{margin-top:18px;font-weight:600}
.muted.small{font-size:12px;margin-top:10px}
@media(max-width:640px){.bs-grid{grid-template-columns:1fr}}

/* Fonti monitorate */
.grid-fonte{display:grid;grid-template-columns:1fr 1.4fr auto auto;gap:10px;align-items:end}
@media(max-width:820px){.grid-fonte{grid-template-columns:1fr}}
.col-2{grid-column:1/-1}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.tag.mut{background:#EEF1F6;color:var(--muted)}
.tag.base{background:#FCE9EC;color:var(--brand);font-weight:700}
.score.excellent{background:linear-gradient(135deg,#0E9F6E,#0B7D57)}
.score.good{background:linear-gradient(135deg,#2563EB,#1D4ED8)}
.score.fair{background:linear-gradient(135deg,#D97706,#B45309)}

/* ============ SUPER-ADMIN ============ */
.tab-admin{display:none}
.tab-admin{color:var(--brand)!important}
body.admin-mode .tabs .tab:not(.tab-admin){display:none}
body.admin-mode .tab-admin{display:inline-flex}
.admin-loading{padding:40px;text-align:center;color:var(--muted)}
.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.admin-head h2{margin:0 0 4px}
.admin-kpis{display:flex;gap:10px}
.adm-kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 18px;text-align:center;min-width:78px}
.adm-kpi-v{font-size:26px;font-weight:800;color:var(--ink);line-height:1}
.adm-kpi-l{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
.adm-table{width:100%;border-collapse:collapse;font-size:13px}
.adm-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;padding:8px 12px;border-bottom:1px solid var(--line)}
.adm-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.adm-table tr:last-child td{border-bottom:none}
.adm-table tr.row-suspended{opacity:.62}
.adm-studio{font-weight:700;color:var(--ink)}
.adm-sub{font-size:12px;color:var(--muted);margin-top:2px}
.adm-num{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-2)}
.adm-plan{width:auto;min-width:132px;padding:6px 9px}
.adm-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.adm-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700}
.adm-badge.b-ok{background:#DCFCE7;color:#166534}
.adm-badge.b-warn{background:#FEF3C7;color:#92400E}
.adm-empty,.adm-loading{text-align:center;color:var(--muted);padding:24px}
.card-title{margin:0 0 4px;font-size:15px}
.adm-hint,.adm-note{font-size:12px;color:var(--muted)}
.adm-hint{margin:2px 0 14px}
.adm-form{display:grid;grid-template-columns:1.4fr 1.4fr .8fr 1.2fr auto;gap:12px;align-items:end}
.adm-field label{margin-top:0}
.adm-field-btn .btn{width:100%}
.adm-pwd-row{display:flex;gap:6px}
.adm-pwd-row input{flex:1}
.adm-pwd-row .btn{white-space:nowrap}
.adm-result{margin-top:16px;padding:16px;border:1px solid var(--accent);background:#F0FDF4;border-radius:12px}
.adm-ok{font-weight:700;color:#166534;margin-bottom:10px}
.adm-creds{display:flex;flex-wrap:wrap;gap:18px}
.adm-creds>div{display:flex;flex-direction:column}
.adm-creds span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.adm-creds b{font-size:15px;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.adm-note{margin-top:12px}
.table-wrap{overflow-x:auto}
@media(max-width:820px){.adm-form{grid-template-columns:1fr 1fr}}
.adm-storage{min-width:120px}
.adm-stovalue{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-2);white-space:nowrap}
.adm-stolim{color:var(--muted);font-weight:400}
.adm-stobar{height:5px;border-radius:3px;background:#EEF1F6;margin-top:5px;overflow:hidden}
.adm-stobar>i{display:block;height:100%;background:var(--accent);border-radius:3px}
.adm-del{color:var(--brand)}

/* ============ MANUALE D'USO ============ */
.man-head{margin-bottom:22px}
.man-head h2{margin:0 0 4px}
.man-layout{display:grid;grid-template-columns:212px 1fr;gap:32px;align-items:start}
.man-toc{position:sticky;top:84px;display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px}
.man-toc-link{padding:8px 12px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--ink-2);transition:all .12s;text-decoration:none;cursor:pointer}
.man-toc-link:hover{background:#EEF1F6;color:var(--ink)}
.man-content{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:30px 34px;box-shadow:var(--shadow);max-width:820px}
.man-content .man-h{font-size:19px;font-weight:800;letter-spacing:-.3px;color:var(--ink);margin:30px 0 12px;padding-top:8px;scroll-margin-top:80px;border-top:1px solid var(--line)}
.man-content .man-h:first-child{margin-top:0;border-top:none;padding-top:0}
.man-content p{color:var(--ink-2);font-size:15px;line-height:1.65;margin:0 0 12px}
.man-list{margin:0 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.man-list li{color:var(--ink-2);font-size:15px;line-height:1.6}
.man-list li b,.man-content p b{color:var(--ink);font-weight:700}
.man-content code{background:#EEF1F6;color:var(--brand);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;padding:2px 6px;border-radius:6px}
.man-tip{background:#F0FDF4;border:1px solid var(--accent);border-radius:12px;padding:12px 16px;color:var(--ink-2)!important;font-size:14.5px}
@media(max-width:820px){
  .man-layout{grid-template-columns:1fr}
  .man-toc{position:static;flex-direction:row;flex-wrap:wrap;top:auto}
  .man-content{padding:22px}
}
.adm-dl-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.adm-dl{text-decoration:none}
.adm-dl-row .adm-note{margin:0;max-width:420px}
.man-fig{margin:18px 0 20px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.man-fig svg{display:block;width:100%;height:auto;background:#fff}
.man-fig figcaption{padding:10px 16px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);background:#FBFCFE;line-height:1.5}
.doc-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}
.doc-folder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-folder-del{color:var(--brand);font-weight:600}

/* ---- Aiuti di Stato / de minimis ---- */
.rna-note{padding:14px 16px}
.rna-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.rna-kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.rna-kpi-res{border-color:var(--accent)}
.rna-kpi-l{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:600}
.rna-kpi-v{font-size:22px;font-weight:800;color:var(--ink);margin-top:6px;font-variant-numeric:tabular-nums}
.rna-bar-top{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2);font-weight:600;margin-bottom:8px}
.rna-bar{height:12px;border-radius:7px;background:#EEF1F6;overflow:hidden}
.rna-bar>i{display:block;height:100%;border-radius:7px;transition:width .3s}
.rna-table{width:100%;border-collapse:collapse;font-size:13.5px}
.rna-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:600;padding:8px 8px;border-bottom:1px solid var(--line)}
.rna-table td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.rna-table input,.rna-table select{padding:7px 9px;font-size:13.5px}
.rna-table .rna-imp{text-align:right;font-variant-numeric:tabular-nums}
.rna-del{text-align:center}
.rna-del .btn{color:var(--brand);padding:6px 9px}
@media(max-width:820px){.rna-kpis{grid-template-columns:repeat(2,1fr)}}
.rna-actions{display:flex;gap:8px}
.rna-ente{display:flex;align-items:center;gap:6px}
.rna-ente input{flex:1}
.rna-src{flex-shrink:0;font-size:9px;font-weight:800;letter-spacing:.4px;color:#fff;background:var(--accent);padding:2px 6px;border-radius:5px}
.adm-sub-badge{margin-left:6px}
.adm-badge.b-info{background:#DBEAFE;color:#1E40AF}
.adm-badge.b-mut{background:#EEF1F6;color:#64748B}
