/* Layout: sidebar navy fissa (come l'header delle slide), topbar bianca, contenuto a card su fondo ghiaccio. */
:root{
  --navy:#11305F; --navy-2:#142B52; --navy-deep:#081A33; --ice:#CADCFC; --accent:#1F4E96; --label:#5B7299;
  --bg:#F2F5FA; --card:#FFFFFF; --line:#D4DEEC; --fg:#142B52; --muted:#55667E; --soft:#EAF1FB; --soft-2:#F6F8FC;
  --good:#2E7D4F; --good-bg:#DCEFE3; --bad:#C62035; --bad-bg:#FBE4E7; --warn:#A6560A; --warn-bg:#FDEBD8;
  --xl-in:#FFF2CC; --xl-in-fg:#1F3FBF; --xl-grid:#E3E8F0; --xl-head:#F1F3F6;
  --font:'Raleway','Segoe UI',Arial,sans-serif; --mono:ui-monospace,'Cascadia Mono',Consolas,monospace;
  --radius:12px; --shadow:0 1px 2px rgba(17,48,95,.05),0 8px 24px rgba(17,48,95,.10);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0B1426; --card:#13213A; --line:#24385C; --fg:#E7EDF7; --muted:#A3B4CE; --soft:#1A2B4A; --soft-2:#162540; --accent:#8FB2EE; --label:#9FB6DC;
  --good:#6FCF97; --good-bg:#17382A; --bad:#F08A96; --bad-bg:#44212A; --warn:#F2B06B; --warn-bg:#44301A;
  --xl-in:#4A3F14; --xl-in-fg:#C9D8FF; --xl-grid:#24385C; --xl-head:#182A48; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4); color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#0B1426; --card:#13213A; --line:#24385C; --fg:#E7EDF7; --muted:#A3B4CE; --soft:#1A2B4A; --soft-2:#162540; --accent:#8FB2EE; --label:#9FB6DC;
  --good:#6FCF97; --good-bg:#17382A; --bad:#F08A96; --bad-bg:#44212A; --warn:#F2B06B; --warn-bg:#44301A;
  --xl-in:#4A3F14; --xl-in-fg:#C9D8FF; --xl-grid:#24385C; --xl-head:#182A48; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4); color-scheme:dark }

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-weight:600;text-wrap:balance}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .small{font-size:12px} .right{text-align:right}

/* shell */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:236px;background:var(--navy);color:#fff;display:flex;flex-direction:column;padding:18px 14px calc(14px + env(safe-area-inset-bottom,0px));z-index:40;transition:transform .2s ease;overflow-y:auto}
.sidebar .logo{display:block;width:168px;margin:6px 8px 20px}
.sidebar .app-name{color:var(--ice);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin:-12px 8px 18px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:0;color:#D9E4F7;padding:10px 12px;border-radius:9px;cursor:pointer;font-weight:500;font-size:14px}
.nav button svg{width:18px;height:18px;flex:none}
.nav button:hover{background:rgba(255,255,255,.08)}
.nav button.active{background:#fff;color:#11305F;font-weight:600}
.nav .count{margin-left:auto;background:rgba(255,255,255,.16);color:#fff;font-size:11px;padding:1px 7px;border-radius:999px}
.nav button.active .count{background:#CADCFC;color:#11305F}
.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding-top:12px;font-size:12px;color:#D9E4F7}
.side-foot .user{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.avatar{width:34px;height:34px;border-radius:50%;background:#CADCFC;color:#11305F;display:grid;place-items:center;font-weight:700}
.side-foot select{width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:8px;padding:6px 8px}
.side-foot select option{color:#111}
.ts{display:flex;align-items:center;gap:6px;margin-top:8px;color:#AFC3E6}
.dot{width:8px;height:8px;border-radius:50%;background:#6FCF97;display:inline-block}
.main{margin-left:236px;min-height:100%;display:flex;flex-direction:column}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:10px 24px;min-height:58px}
.topbar h1{font-size:18px}
.topbar .crumb{color:var(--muted);font-size:12px}
.spacer{flex:1}
.burger{display:none;background:transparent;border:1px solid var(--line);border-radius:8px;width:36px;height:36px;cursor:pointer}
.content{padding:22px 24px 60px;display:flex;flex-direction:column;gap:18px;max-width:1500px;width:100%}
.page{display:none;flex-direction:column;gap:18px}
.page.active{display:flex}

/* buttons, chips, badges */
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--navy);color:#fff;border:1px solid var(--navy);border-radius:9px;padding:8px 14px;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{filter:brightness(1.12)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.ghost:hover{background:var(--soft)}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:7px}
.btn.claude{background:linear-gradient(0deg,var(--navy),var(--navy));border-color:var(--accent)}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.btn:focus-visible,.nav button:focus-visible,input:focus-visible,select:focus-visible,.tab:focus-visible,.kpi.click:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--soft-2);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--muted);white-space:nowrap}
.chip b{color:var(--fg)}
button.chip{cursor:pointer} button.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;border:1px solid transparent}
.badge.go{background:var(--good-bg);color:var(--good)} .badge.nogo{background:var(--bad-bg);color:var(--bad)} .badge.wait{background:var(--warn-bg);color:var(--warn)}
.badge.neutral{background:var(--soft);color:var(--muted);border-color:var(--line)} .badge.navy{background:var(--navy);color:#fff}
.badge.src{background:transparent;border-color:var(--line);color:var(--muted);font-weight:600}
.badge.src i{width:8px;height:8px;border-radius:2px;display:inline-block}
.stage{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;background:var(--soft);color:var(--fg)}
.be{font-size:11px;font-weight:700;white-space:nowrap}
.be.down{color:var(--warn)} .be.up{color:var(--good)}

/* cards & grids */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;min-width:0}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--label);font-weight:700}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))} .g5{grid-template-columns:repeat(5,minmax(0,1fr))} .g6{grid-template-columns:repeat(6,minmax(0,1fr))}
.g32{grid-template-columns:3fr 2fr} .g23{grid-template-columns:2fr 3fr} .g12{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
@media (max-width:1150px){.g4,.g5,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}.g32,.g23,.g12{grid-template-columns:1fr}}
@media (max-width:700px){.g2,.g3,.g4,.g5,.g6{grid-template-columns:1fr}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;min-width:0;text-align:left}
.kpi .lbl{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--label);font-weight:700}
.kpi .val{font-size:26px;font-weight:700;margin-top:4px;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi .sub{font-size:12px;color:var(--muted);margin-top:4px}
.kpi.navy{background:var(--navy);border-color:var(--navy);color:#fff}
.kpi.navy .lbl{color:#CADCFC} .kpi.navy .sub{color:#E3ECFC}
.kpi.click{cursor:pointer;font:inherit;color:inherit;transition:box-shadow .15s, border-color .15s}
.kpi.click:hover{border-color:var(--accent)}
.kpi.click.sel{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy) inset}
.kpi.click .hint{font-size:11px;color:var(--accent);margin-top:6px;font-weight:600}
.kpi.good{background:var(--good-bg);border-color:transparent} .kpi.good .val{color:var(--good)}
.kpi.bad{background:var(--bad-bg);border-color:transparent} .kpi.bad .val{color:var(--bad)}
.mgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:900px){.mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.metric{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--soft-2)}
.metric .l{font-size:11px;color:var(--label);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.metric .v{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.metric .v small{font-size:12px;color:var(--muted);font-weight:600}
.metric.key{background:var(--navy);border-color:var(--navy);color:#fff} .metric.key .l{color:#CADCFC} .metric.key .v small{color:#CADCFC}

/* tables */
.tbl-wrap{overflow-x:auto;min-width:0}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th{background:var(--navy);color:#fff;text-align:left;padding:8px 10px;font-weight:600;font-size:12px;white-space:nowrap}
table.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.tbl th.r, table.tbl td.r{text-align:right}
table.tbl tr:nth-child(even) td{background:var(--soft-2)}
table.tbl tr.click{cursor:pointer} table.tbl tr.click:hover td{background:var(--soft)}
table.tbl tr.tot td{font-weight:700;background:var(--soft)}
table.tbl tr.hh td{font-weight:700;color:var(--label);background:transparent;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
table.tbl td .sub{display:block;font-size:11px;color:var(--muted)}
table.mini th{padding:6px 8px;font-size:11px} table.mini td{padding:6px 8px;font-size:12px}
.sens td{text-align:right;font-variant-numeric:tabular-nums}
.sens td.g{background:var(--good-bg)!important;color:var(--good)} .sens td.r{background:var(--bad-bg)!important;color:var(--bad)}
.sens td.base{background:var(--navy)!important;color:#fff;font-weight:700}
.sens td.rh{font-weight:700;background:var(--soft)!important;text-align:left}
td input.cell{width:100%;min-width:70px;border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--xl-in);color:var(--xl-in-fg);text-align:right;font-variant-numeric:tabular-nums}
td select.cell{border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--xl-in);color:var(--xl-in-fg)}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{background:transparent;border:0;border-bottom:3px solid transparent;padding:10px 14px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.tab.active{color:var(--fg);border-bottom-color:var(--navy)}
.tabpane{display:none;flex-direction:column;gap:14px}
.tabpane.active{display:flex}

/* forms */
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--label);font-weight:700}
.field input,.field select,.field textarea{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 10px;width:100%;min-width:0}
.field input.y,.field select.y{background:var(--xl-in);color:var(--xl-in-fg)}
.field input[type=number]{text-align:right;font-variant-numeric:tabular-nums}
.field .unit{font-size:11px;color:var(--muted)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.filterbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.filterbar .field{min-width:140px}
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}
.switch i{width:34px;height:20px;border-radius:999px;background:var(--line);position:relative;display:inline-block;transition:.15s;flex:none}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.15s}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch input:checked+i{background:var(--good)}
.switch input:checked+i::after{left:17px}
.checks{display:flex;flex-wrap:wrap;gap:6px}
.checks label{display:inline-flex;gap:6px;align-items:center;padding:5px 9px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:12px}
.range{display:flex;align-items:center;gap:12px}
.range input[type=range]{flex:1;accent-color:var(--navy)}
.sim-track{flex:1;min-width:0;display:flex;flex-direction:column}
.sim-track input[type=range]{flex:none;width:100%;margin:0}
.sim-zero{align-self:flex-start;margin-left:calc(50% - 1em);position:relative;padding-top:5px;font-size:12px;line-height:1;color:var(--muted)}
.sim-zero::before{content:'';position:absolute;top:0;left:50%;width:1px;height:4px;background:var(--muted)}
.note{background:var(--soft);border-left:3px solid var(--accent);padding:10px 12px;border-radius:0 8px 8px 0;font-size:13px}
.note.warn{border-left-color:var(--warn);background:var(--warn-bg)}
.note.good{border-left-color:var(--good);background:var(--good-bg)}

/* stepper pipeline */
.stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:900px){.stepper{grid-template-columns:1fr}}
.step{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card);display:flex;flex-direction:column;gap:8px;position:relative}
.step .sh{display:flex;align-items:center;gap:10px}
.step .sn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--soft);color:var(--fg);flex:none}
.step.pass{border-color:var(--good)} .step.pass .sn{background:var(--good);color:#fff}
.step.fail{border-color:var(--bad)} .step.fail .sn{background:var(--bad);color:#fff}
.step.ready{border-color:var(--accent)} .step.ready .sn{background:var(--accent);color:#fff}
.step.locked{opacity:.6} .step.locked .sn{background:var(--line)}
.step .st{font-weight:700}
.step .verify{font-size:12px;display:flex;gap:6px;align-items:center;color:var(--muted)}

/* kanban */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px}
.kcol{background:var(--soft-2);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:280px;display:flex;flex-direction:column;gap:8px}
.kcol h4{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--label);display:flex;justify-content:space-between;padding:4px 4px 6px}
.kcol.over{outline:2px dashed var(--accent)} .kcol.deny{outline:2px dashed var(--bad)}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:10px;cursor:grab;font-size:12px}
.kcard b{display:block;font-size:13px;margin-bottom:2px}
.kcard .row{display:flex;justify-content:space-between;align-items:center;margin-top:6px;gap:6px}

/* mappe */
.map{height:420px;border-radius:10px;border:1px solid var(--line);overflow:hidden;background:#E8EDF3;z-index:0}
.map.sm{height:340px}
.leaflet-container{font-family:var(--font)}
.map-ctl{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:12px;display:flex;gap:6px;align-items:center;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.leaflet-tooltip{font-family:var(--font);font-size:12px}
.mk{width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.mk.big{width:22px;height:22px}
.mk-n{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}
.leaflet-popup-content{font-family:var(--font);font-size:12px;line-height:1.4;margin:10px 12px}
.leaflet-popup-content b{font-size:13px}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}
.legend i{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:middle}

/* log, toast, misc */
.log{background:#081A33;color:#CFE0FF;font-family:var(--mono);font-size:12px;border-radius:10px;padding:12px 14px;max-height:260px;overflow:auto;line-height:1.55}
.log .ok{color:#6FCF97} .log .wr{color:#F2B06B} .log .t{color:#8A99B3}
.prog{height:8px;background:var(--line);border-radius:999px;overflow:hidden} .prog i{display:block;height:100%;background:var(--good);width:0;transition:width .4s}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%,10px);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);font-size:13px;opacity:0;transition:.2s;z-index:120;max-width:min(520px,calc(100% - 32px));pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-weight:600}
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.timeline li{display:grid;grid-template-columns:auto 1fr;gap:12px}
.timeline .ic{width:28px;height:28px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:11px;font-weight:700}
.timeline .when{font-size:11px;color:var(--muted)}
.photo{border-radius:10px;background:linear-gradient(135deg,#142B52,#1F4E96 60%,#5B7299);aspect-ratio:4/3;max-width:100%;display:grid;place-items:center;color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.doc{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:9px}
.doc .ic{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:11px;color:#fff}
.doc .ic.x{background:#1E7145} .doc .ic.p{background:#C43E1C}
.chart-box{position:relative;height:240px;min-width:0}
.schedule{list-style:none;margin:0;padding:0} .schedule li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.ex-note{font-size:12px;color:var(--muted);font-style:italic}

/* modal + viewer */
.modal{position:fixed;inset:0;background:rgba(8,26,51,.55);z-index:90;display:flex;align-items:center;justify-content:center;padding:18px}
.modal[hidden]{display:none!important}
.mbox{background:var(--card);border-radius:14px;box-shadow:var(--shadow);width:min(1400px,100%);height:min(900px,100%);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line)}
.mbox.form{width:min(760px,100%);height:auto;max-height:100%}
.mhead{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mhead h3{font-size:16px}
.mbody{flex:1;min-height:0;display:flex}
.mbody .vmain{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.mbody .vside{width:380px;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.mbody .vside[hidden]{display:none!important}
@media (max-width:900px){.mbody{flex-direction:column}.mbody .vside{width:100%;height:50%;border-left:0;border-top:1px solid var(--line)}}
.mform{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:14px}
/* excel */
.xl-host{flex:1;min-height:0;display:flex;flex-direction:column}
.xl-wrap{flex:1;overflow:auto;background:var(--card)}
table.xl{border-collapse:collapse;font-family:Calibri,Arial,sans-serif;font-size:12px;color:var(--fg)}
table.xl th{background:var(--xl-head);color:var(--muted);font-weight:400;font-size:11px;border:1px solid var(--xl-grid);padding:2px 4px;position:sticky;top:0;z-index:1}
table.xl tbody th{position:sticky;left:0;z-index:1;text-align:center;min-width:34px}
table.xl .xl-corner{left:0;z-index:2}
table.xl td{border:1px solid var(--xl-grid);padding:3px 6px;white-space:nowrap;height:21px;max-width:420px;overflow:hidden;text-overflow:ellipsis}
table.xl td.n{text-align:right;font-variant-numeric:tabular-nums}
table.xl td.title{font-size:16px;font-weight:700;color:var(--navy)} :root[data-theme="dark"] table.xl td.title{color:var(--ice)}
table.xl td.sub{color:var(--muted);font-style:italic}
table.xl td.sec{background:#11305F;color:#fff;font-weight:700;font-size:11px;letter-spacing:.04em}
table.xl td.h{background:var(--soft);font-weight:700;color:var(--fg)}
table.xl td.in{background:var(--xl-in);color:var(--xl-in-fg)}
table.xl td.ed{cursor:text;outline:none} table.xl td.ed:focus{box-shadow:inset 0 0 0 2px #1E7145}
table.xl td.tot{font-weight:700;border-top:2px solid var(--fg)}
table.xl td.pos{color:var(--good);font-weight:700} table.xl td.neg{color:var(--bad);font-weight:700}
table.xl td.base{background:#11305F;color:#fff;font-weight:700} table.xl td.g{background:var(--good-bg);color:var(--good)} table.xl td.r{background:var(--bad-bg);color:var(--bad)}
table.xl td.note{color:var(--muted);font-style:italic}
.xl-tabs{display:flex;gap:2px;padding:4px 8px;background:var(--xl-head);border-top:1px solid var(--xl-grid);overflow-x:auto}
.xl-tab{border:0;background:transparent;padding:5px 14px;font-size:12px;cursor:pointer;border-radius:0 0 6px 6px;color:var(--muted)}
.xl-tab.active{background:var(--card);color:#1E7145;font-weight:700;border-bottom:2px solid #1E7145}
.xl-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);background:var(--soft-2)}
.xl-bar .fx{font-family:var(--mono);background:var(--card);border:1px solid var(--line);border-radius:4px;padding:2px 8px;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* slides */
.pp-host{flex:1;min-height:0;display:flex;background:#5c6470}
.pp-thumbs{width:180px;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px;background:#3d434c}
.pp-thumbs button{border:2px solid transparent;padding:0;background:none;cursor:pointer;border-radius:3px;position:relative;text-align:left}
.pp-thumbs button.active{border-color:#F2B06B}
.pp-thumbs button span{position:absolute;left:-2px;top:-2px;background:#3d434c;color:#fff;font-size:10px;padding:0 4px}
.pp-stage{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}
@media (max-width:700px){.pp-thumbs{display:none}}
.sl{position:relative;background:#fff;color:#142B52;font-family:'Raleway',Arial,sans-serif;overflow:hidden;flex:none;box-shadow:0 4px 18px rgba(0,0,0,.35)}
.sl > *{position:absolute}
.sl-band{left:0;top:0;width:100%;background:#11305F}
.sl-t{color:#fff;white-space:nowrap} .sl-st{color:#CADCFC;white-space:nowrap}
.sl-foot{color:#55667E} .sl-num{background:#11305F;color:#fff;font-weight:700;display:grid;place-items:center}
.sl-ct{color:#fff;line-height:1.2} .sl-cl{color:#fff}
.sl-x{line-height:1.25}
.sl-pill{background:#11305F;color:#fff;border-radius:999px;font-weight:700;display:grid;place-items:center}
.sl-ul{margin:0;padding-left:1.3em;color:#142B52;line-height:1.35} .sl-ul li{margin-bottom:.45em}
.sl-kd{background:#11305F;border-radius:6px}
.sl-k{border-radius:6px;background:#F2F5FA;border:1px solid #D4DEEC;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box}
.sl-k div{color:#5B7299;font-weight:700;letter-spacing:.06em} .sl-k b{color:#11305F;line-height:1} .sl-k span{color:#55667E}
.sl-k.d{background:#11305F;border-color:#11305F} .sl-k.d div,.sl-k.d span{color:#CADCFC} .sl-k.d b{color:#fff} .sl-k.flat{background:transparent;border:0}
.sl-tb{border-collapse:collapse;table-layout:fixed;color:#142B52} .sl-tb th{background:#11305F;color:#fff;text-align:left;padding:.35em .5em;font-weight:700}
.sl-tb td{border:1px solid #D4DEEC;padding:.3em .5em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .sl-tb tr.tot td{background:#EAF1FB;font-weight:700}
.sl-tb td.g{background:#DCEFE3;color:#2E7D4F} .sl-tb td.r{background:#F8E1E4;color:#D6283B} .sl-tb td.base{background:#11305F;color:#fff;font-weight:700}
.sl-bl{color:#142B52;display:flex;align-items:center;justify-content:flex-end;text-align:right;padding-right:.5em} .sl-bar{background:#4F6DA6} .sl-bar.hl{background:#11305F} .sl-bv{display:flex;align-items:center;color:#55667E}
.sl-axis{height:1px;background:#8A99B3} .sl-col{background:#11305F} .sl-col.neg{background:#fff;border:1px solid #11305F;box-sizing:border-box} .sl-cv{text-align:center;color:#142B52} .sl-cl2{text-align:center;color:#55667E}
.sl-map{overflow:hidden;border-radius:6px;border:1px solid #D4DEEC;background:#EEF1F5} .sl-map > *{position:absolute} .sl-notile{background:#EEF1F5}
.sl-mk{border-radius:50%;border:2px solid #fff;box-sizing:border-box;color:#fff;font-weight:700;display:grid;place-items:center;box-shadow:0 1px 3px rgba(0,0,0,.4)}
.sl-ph{background:#F2F5FA;border:1px solid #D4DEEC;border-radius:8px;box-sizing:border-box;text-align:center;display:flex;flex-direction:column;gap:.6em}
.sl-ph .n{color:#5B7299;font-weight:700} .sl-ph .t{color:#11305F;font-weight:700} .sl-ph .x{color:#142B52;flex:1} .sl-ph .w{color:#55667E;font-style:italic}
.sl-ph.d{background:#11305F;border-color:#11305F} .sl-ph.d .n{color:#CADCFC} .sl-ph.d .t,.sl-ph.d .x{color:#fff} .sl-ph.d .w{color:#CADCFC}
.sl-card{background:#F2F5FA;border:1px solid #D4DEEC;border-radius:8px;box-sizing:border-box;display:flex;flex-direction:column;gap:.6em} .sl-card b{color:#11305F} .sl-card div{color:#55667E}
.sl-list{background:#F2F5FA;border:1px solid #D4DEEC;border-radius:8px;box-sizing:border-box;overflow:hidden} .sl-list.plain{background:transparent;border:0}
.sl-list.d{background:#11305F;border-color:#11305F} .sl-list .lt{font-weight:700;color:#11305F} .sl-list.d .lt{color:#fff}
.sl-list .li{display:flex;gap:.6em;align-items:flex-start} .sl-list .li b{color:#11305F} .sl-list .li div div{color:#55667E}
.sl-list.d .li b{color:#fff} .sl-list.d .li div div{color:#CADCFC}
.sl-list i{border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;flex:none;margin-top:.1em} .sl-list i.ok{background:#2E7D4F} .sl-list i.x{background:#D6283B}
.sl-r{box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2} .sl-r.sh,.sl-ph,.sl-card,.sl-list,.sl-k,.sl-kd{box-shadow:0 1px 4px rgba(26,43,72,.18)} .sl-k.flat{box-shadow:none}
.sl-ln{overflow:visible} .sl-ic svg{display:block;width:100%;height:100%}
.sl-ci{border-radius:50%;background:#11305F;display:grid;place-items:center} .sl-ci.d{background:#2F5F9E;border:1px solid #CADCFC;box-sizing:border-box} .sl-ci svg{display:block;width:100%;height:100%}
.sl-kdiv{width:1px;background:#3D5A88}
.sl-map.fr{border-radius:0;box-shadow:0 1px 4px rgba(26,43,72,.25)}
.sl-tb td.fb{font-weight:700} .sl-tb td.gd{color:#2E7D4F;font-weight:700} .sl-tb td.bd{color:#D6283B} .sl-tb td.hc,.sl-tb tr.hl td{background:#EAF1FB;font-weight:700}
.sl-tb th,.sl-tb td{line-height:1.15;vertical-align:middle}
.slides-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.slides-grid button{padding:0;border:1px solid var(--line);border-radius:4px;background:none;cursor:pointer;overflow:hidden}

/* chat Claude */
.chat{display:flex;flex-direction:column;min-height:0;flex:1}
.chat-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center}
.chat-head .ttl{font-weight:700}
.chat-log{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-height:0}
.msg{max-width:92%;padding:9px 12px;border-radius:12px;font-size:13px;white-space:pre-wrap;word-wrap:break-word}
.msg.u{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.msg.a{align-self:flex-start;background:var(--soft);border-bottom-left-radius:4px}
.msg.sys{align-self:center;background:transparent;color:var(--muted);font-size:12px;text-align:center}
.msg .acts{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.msg .act{font-size:11px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px 8px;color:var(--fg)}
.chat-sug{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}
.chat-sug button{font-size:11px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:4px 10px;cursor:pointer;color:var(--fg)}
.chat-in{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}
.chat-in textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--card);min-height:40px;max-height:120px}
.drawer{position:fixed;right:0;top:0;bottom:0;width:min(420px,100%);background:var(--card);border-left:1px solid var(--line);box-shadow:var(--shadow);z-index:80;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .2s ease;padding-top:env(safe-area-inset-top,0px)}
.drawer.open{transform:none}
.fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:70;border-radius:999px;padding:12px 18px;box-shadow:var(--shadow)}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
@media (max-width:900px){
  .sidebar{transform:translateX(-100%)} .sidebar.open{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.35)}
  .main{margin-left:0} .burger{display:inline-grid;place-items:center}
  .topbar{padding:10px 16px} .content{padding:16px 16px 70px}
  .topbar .crumb{display:none}
}

/* ---- v3: Possible GO, metodo, checklist, computo, mappe stile Google ---- */
:root{--yel:#7A5C00;--yel-bg:#FFF1B8;--yel-line:#F2C94C}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--yel:#F5D45B;--yel-bg:#3A3312;--yel-line:#8C7420}}
:root[data-theme="dark"]{--yel:#F5D45B;--yel-bg:#3A3312;--yel-line:#8C7420}
.badge.maybe{background:var(--yel-bg);color:var(--yel);border-color:var(--yel-line)}
.be.maybe{color:var(--yel);background:var(--yel-bg);padding:1px 6px;border-radius:6px;font-weight:600}
.be.no{color:var(--bad);font-weight:600}
.sn-b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;margin-right:8px;flex:none}
input.w-xs{width:64px} input.w-s{width:92px} input.w-m{width:170px} input.w-l{width:100%;min-width:180px} input.w-xl{width:100%;min-width:280px}
.tbl input.y,.tbl select.y{padding:3px 6px;font-size:12px}
input.edited{outline:2px solid var(--accent)}
.tbl tr.sec-row td{background:var(--soft);font-weight:700;color:var(--navy);text-transform:uppercase;font-size:11px;letter-spacing:.04em}
:root[data-theme="dark"] .tbl tr.sec-row td{color:var(--ice)}
.tbl tr.toq td{background:var(--warn-bg)}
.tbl tr.ck-ko td{background:var(--bad-bg)}
.nowrap{white-space:nowrap}
.seg-b{border:1px solid var(--line);background:var(--card);color:var(--muted);width:28px;height:26px;cursor:pointer;font-weight:700;margin-right:-1px}
.seg-b:first-child{border-radius:6px 0 0 6px} .seg-b:nth-child(3){border-radius:0 6px 6px 0}
.seg-b.ok.on{background:var(--good);color:#fff;border-color:var(--good)} .seg-b.ko.on{background:var(--bad);color:#fff;border-color:var(--bad)} .seg-b.q.on{background:var(--yel-line);color:#3A2E00;border-color:var(--yel-line)}
.ck-row{display:grid;grid-template-columns:1fr auto 110px;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}
.ck-row:hover{background:var(--soft)}
.gantt{display:flex;flex-direction:column;gap:6px}
.gt-row{display:grid;grid-template-columns:minmax(150px,280px) 1fr 70px;gap:10px;align-items:center;font-size:12px}
.gt-l .sub{display:block}
.gt-track{position:relative;height:14px;background:var(--soft);border-radius:4px}
.gt-track i{position:absolute;top:0;bottom:0;background:var(--navy);border-radius:4px}
:root[data-theme="dark"] .gt-track i{background:var(--ice)}
.kb-note{border-bottom:1px solid var(--line);padding:8px 0}
.kb-note summary{cursor:pointer;font-size:13px}
.kb-ta{width:100%;margin-top:8px;font:12px/1.5 var(--font);resize:vertical}
a.chip.src-yt{text-decoration:none;color:var(--fg);max-width:260px;overflow:hidden;text-overflow:ellipsis}
a.chip{text-decoration:none}
.map-lbl{font:600 11px/1.1 Arial,sans-serif;color:#3C4043;white-space:nowrap;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff;pointer-events:none;transform-origin:center}
.map-lbl.major{font-size:12px;color:#202124}
.map-poi{display:flex;align-items:center;gap:4px;font:600 11px Arial,sans-serif;white-space:nowrap;text-shadow:0 0 2px #fff,0 0 2px #fff}
.map-poi b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;font-size:10px;box-shadow:0 1px 2px rgba(0,0,0,.3)}
@media (max-width:700px){.gt-row{grid-template-columns:120px 1fr 56px}.ck-row{grid-template-columns:1fr 70px}.ck-row .small{display:none}}
/* pannello mappa: tipo di mappa + strati */
.map-panel{display:flex;flex-direction:column;gap:6px;padding:6px!important;min-width:150px}
.mp-seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.mp-seg button{flex:1;border:0;background:var(--card);color:var(--fg);font:600 11px var(--font);padding:5px 6px;cursor:pointer}
.mp-seg button.on{background:var(--navy);color:#fff}
.mp-tog{border:0;background:transparent;color:var(--fg);font:600 11px var(--font);text-align:left;cursor:pointer;padding:2px}
.mp-lys{display:none;flex-direction:column;gap:4px}
.map-panel.open .mp-lys{display:flex}
.mp-lys label{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}
.mp-lys i{width:14px;height:4px;border-radius:2px;display:inline-block}
.mp-note{font-size:10px;color:var(--muted)}
.map-sat .map-lbl{color:#fff!important;text-shadow:0 0 2px #000,0 0 3px #000,0 0 4px #000!important}
/* icone punti di interesse e fermate */
.poi-ic{width:24px;height:24px;display:grid;place-items:center;cursor:pointer;filter:drop-shadow(0 0 1.5px #fff) drop-shadow(0 0 1.5px #fff) drop-shadow(0 0 1px #fff)}
.poi-ic svg{width:19px;height:19px} .poi-ic.big svg{width:21px;height:21px}
.poi-ic:hover{transform:scale(1.18)}
.poi-m{min-width:22px;height:20px;padding:0 4px;border-radius:4px;color:#fff;font:800 12px/20px Arial,sans-serif;text-align:center;cursor:pointer;box-shadow:0 0 0 2px #fff,0 1px 3px rgba(0,0,0,.4);margin:2px 0 0 1px;display:inline-block}
.mp-lys .mp-h{font:700 10px var(--font);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px}
.mp-lys .mp-ic{width:16px;height:16px;display:inline-grid;place-items:center} .mp-lys .mp-ic svg{width:14px;height:14px}
.map-panel{max-height:calc(100% - 20px);overflow:auto}
/* riga del comparabile selezionato in mappa */
.tbl tr.cp-hl td{background:var(--yel-bg)!important;box-shadow:inset 0 1px 0 var(--yel-line),inset 0 -1px 0 var(--yel-line)}
.tbl tr.cp-hl td:first-child{box-shadow:inset 3px 0 0 var(--navy),inset 0 1px 0 var(--yel-line),inset 0 -1px 0 var(--yel-line)}
/* pannello strati su due colonne, scorrevole se la mappa è bassa */
.map-panel{min-width:150px;max-height:none;overflow:visible}
.map-panel.open{width:330px;max-width:calc(100vw - 80px)}
.map-panel.open .mp-lys{display:grid;grid-template-columns:1fr 1fr;column-gap:10px;row-gap:3px;max-height:300px;overflow-y:auto;padding-right:2px}
.mp-lys .mp-h,.mp-lys .mp-note{grid-column:1 / -1}
.mp-lys label{font-size:11.5px;line-height:1.25;white-space:normal}
@media (max-width:700px){.map-panel.open .mp-lys{grid-template-columns:1fr;max-height:220px}}
.map.map-tall{height:520px}
@media (max-width:700px){.map.map-tall{height:380px}}
/* intestazioni di sezione con selezione multipla, pulsanti Tutti / Nessuno */
.mp-lys label.mp-h{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--navy);font-size:10.5px;padding-top:6px;border-top:1px solid var(--line);margin-top:4px}
:root[data-theme="dark"] .mp-lys label.mp-h{color:var(--ice)}
.mp-lys label.mp-h:first-child{border-top:0;margin-top:0;padding-top:2px}
.mp-all{grid-column:1 / -1;display:flex;gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.mp-all button{flex:1;border:1px solid var(--line);background:var(--soft-2);color:var(--fg);border-radius:6px;font:600 11px var(--font);padding:5px;cursor:pointer}
.mp-all button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.map-panel.open .mp-lys{max-height:400px}
/* tendina esito con colori dei badge */
select.vsel{appearance:none;-webkit-appearance:none;border:1px solid transparent;border-radius:999px;font:700 11px var(--font);padding:3px 22px 3px 9px;cursor:pointer;max-width:170px;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 11px) 55%,calc(100% - 7px) 55%;background-size:4px 4px;background-repeat:no-repeat}
select.vsel.v-go,select.vsel.v-goman{background-color:var(--good-bg);color:var(--good)}
select.vsel.v-nogo,select.vsel.v-nogoman{background-color:var(--bad-bg);color:var(--bad)}
select.vsel.v-maybe{background-color:var(--yel-bg);color:var(--yel);border-color:var(--yel-line)}
select.vsel.v-pending{background-color:var(--warn-bg);color:var(--warn)}
select.vsel.v-goman,select.vsel.v-nogoman{border-style:dashed;border-color:currentColor}
select.vsel option{background:var(--card);color:var(--fg)}
/* valori modificabili in tabella */
.ed-v{cursor:text;border-bottom:1px dotted var(--muted);padding:0 1px;border-radius:2px}
.ed-v:hover{background:var(--xl-in,#FFF2CC);color:var(--fg);border-bottom-color:var(--fg)}
.ed-v.man{border-bottom:1.5px dashed var(--accent)}
input.ed-in{width:96px;font:600 12px var(--font);padding:2px 4px;border:1.5px solid var(--accent);border-radius:4px;background:var(--xl-in,#FFF2CC);color:var(--xl-in-fg,#111);text-align:right}
/* tipologia e scenario a tutta larghezza nella scheda Annuncio */
.fgrid.fgrid-wide{grid-template-columns:1fr 1.6fr}
.fgrid.fgrid-wide select{width:100%;min-width:0;white-space:normal;text-overflow:clip}
@media (max-width:700px){.fgrid.fgrid-wide{grid-template-columns:1fr}}
/* segnaposto immobile */
.map-pin{position:relative;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));cursor:pointer}
.map-pin svg{display:block}
.map-pin-l{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:1px;white-space:nowrap;font:700 12px/1.15 Arial,sans-serif;color:#1F3A63;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,0 0 4px #fff}
/* Street View nella scheda Mercato */
.map-wrap{position:relative;display:flex;gap:10px}
.map-wrap > .map{flex:1;min-width:0}
.sv-panel{flex:0 0 48%;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#000;height:520px;position:relative}
.sv-panel[hidden]{display:none}
.sv-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--card);border-bottom:1px solid var(--line);font-size:12px}
.sv-panel iframe{flex:1;width:100%;border:0;background:#1b1b1b}
.sv-hint{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;padding:3px 8px;border-radius:6px;pointer-events:none}
.sv-man{font-size:22px;line-height:30px;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 1px 2px rgba(0,0,0,.5))}
button.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.map-wrap.sv-on .map{cursor:crosshair}
@media (max-width:900px){.map-wrap{flex-direction:column}.sv-panel{flex-basis:auto;height:340px}}
/* testate delle tabelle nei colori dei punti in mappa */
table.tbl.th-orange th{background:#E07B1A}
table.tbl.th-green th{background:#2E7D4F}
/* valori compilati in automatico nella checklist */
.badge.auto-t{font-size:9.5px;padding:1px 6px;margin-left:4px;vertical-align:middle}
input.is-auto{font-style:italic;color:var(--muted)}
/* Analisi: campi su tre colonne (3 sopra, 2 sotto); checklist: note leggibili */
.fgrid.fgrid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.fgrid.fgrid-3{grid-template-columns:1fr}}
.tbl input[data-cn]{min-width:320px}
/* cronoprogramma con barre trascinabili */
.gt-row{grid-template-columns:minmax(150px,260px) 1fr 150px}
.gt-in{display:flex;gap:4px;justify-content:flex-end}
.gt-track{height:18px;overflow:visible}
.gt-track u{position:absolute;top:-3px;bottom:-3px;border-left:1px dashed var(--line);text-decoration:none}
.gt-ticks{background:transparent;height:14px}
.gt-ticks span{position:absolute;transform:translateX(-50%);font-size:10px;color:var(--muted)}
.gt-axis{margin-bottom:2px}
.gt-track i.gt-bar{cursor:grab;touch-action:none;min-width:6px;z-index:1}
.gt-track i.gt-bar:hover{filter:brightness(1.25)}
.gt-track i.gt-bar.moved{outline:2px dashed var(--accent);outline-offset:1px}
.gt-track i.gt-bar.dragging{cursor:grabbing;opacity:.8;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.gt-h{position:absolute;right:0;top:0;bottom:0;width:7px;cursor:ew-resize;border-radius:0 4px 4px 0;background:rgba(255,255,255,.35)}
@media (max-width:700px){.gt-row{grid-template-columns:110px 1fr 110px}}
/* stepper del processo a 5 fasi */
.stepper{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1400px){.stepper{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.stepper{grid-template-columns:1fr}}
/* offerte: anteprima della lettera nel formato Word Eight Capital (Aptos 12, interlinea 1,5) */
.of-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;margin-top:12px}
@media (max-width:1100px){.of-grid{grid-template-columns:1fr}}
.of-prev{background:#E9EDF3;border-radius:10px;padding:14px;max-height:900px;overflow:auto}
.of-page{background:#fff;color:#111;font-family:Aptos,Calibri,'Segoe UI',Arial,sans-serif;font-size:12px;line-height:1.5;padding:28px 40px 20px;box-shadow:0 2px 10px rgba(0,0,0,.18);max-width:760px;margin:0 auto}
.of-logo{width:190px;display:block;margin:0 0 18px -18px}
.of-p{margin:0;text-align:justify}
.of-addr{margin-left:52%;text-align:left} .of-ctr{text-align:center} .of-ogg{text-align:left}
.of-hr{border:0;border-top:1px solid #4472C4;margin:4px 0 6px}
.of-art{padding-left:28px;text-indent:-20px;margin-top:2px} .of-atx{padding-left:28px}
.of-it1{padding-left:56px;text-indent:-20px} .of-it2{padding-left:72px;text-indent:-14px} .of-it3{padding-left:76px;text-indent:-24px} .of-bul{padding-left:40px;text-indent:-16px} .of-let{padding-left:56px}
.of-n{display:inline-block;min-width:20px;text-indent:0}
.of-sig,.of-sigs{text-align:left;line-height:1.2;margin:4px 0} .of-sigs{font-size:11px;text-align:justify}
.of-brk{border-top:2px dashed #C8D0DC;margin:18px -40px}
.of-page mark{background:#FFF200;color:#111;padding:0 1px}
.of-foot{margin-top:24px;border-top:1px solid #D4DEEC;padding-top:6px;font-size:9.5px;color:#11305F;text-align:center;line-height:1.35}
.doc .ic.w{background:#2B579A;color:#fff}
[data-theme="dark"] .of-prev{background:#2A3240}
.ana-flags td:first-child{width:120px;white-space:nowrap}
.eyebrow.ana-h{margin:14px 0 8px}
.eyebrow.ana-h:first-child{margin-top:0}
/* sopralluogo da tablet: righe a scheda e comandi grandi per il tocco */
#cantTabs{margin-top:0;flex-wrap:wrap}
@media (max-width:1100px),(pointer:coarse){
  .ck-tb,.ck-tb tbody{display:block;width:100%} .ck-tb thead{display:none}
  .ck-tb tr{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--line)}
  .tbl.ck-tb td{display:block;border:0;padding:0;background:none}
  .tbl.ck-tb tr.ck-ko{background:var(--bad-bg)} .tbl.ck-tb tr.ck-ko td{background:none}
  .ck-tb .ck-t{font-size:15px;line-height:1.3}
  .ck-tb .ck-q,.ck-tb .ck-n{grid-column:2 / -1} .ck-tb .ck-q.none{display:none}
  .seg-b{width:52px;height:46px;font-size:20px}
  .ck-tb input{font-size:16px;min-height:44px} .ck-tb input.w-l{min-width:0}
  .ck-chips .chip{min-height:42px;font-size:14px}
  #page-opp.in-sop .stepper,#page-opp.in-sop > .card:first-child .grid,#page-opp.in-sop > .card:first-child .photo{display:none}
}
.tbl input.y,.tbl select.y{background:var(--xl-in);color:var(--xl-in-fg);border:1px solid var(--line);border-radius:6px}
button.chip.on b{color:inherit}
@media (max-width:1100px),(pointer:coarse){.tbl.ck-tb td{background:none!important}}
/* proposte dei broker */
.brk-drop{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px;margin-bottom:12px;border:1.5px dashed var(--line);border-radius:10px;background:var(--soft-2);cursor:pointer;text-align:center}
.brk-drop:hover,.brk-drop.over{border-color:var(--navy);background:var(--soft)}
.brk-form{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.vsel.v-noprice{background:var(--soft);color:var(--muted)}
/* simulazione prezzo: estremi, % ed € modificabili */
.sim-lim{display:inline-flex;align-items:center;gap:2px;font-size:12px;color:var(--muted);white-space:nowrap}
.sim-lim input{width:44px;padding:3px 4px;text-align:right;font-size:12px;border:1px solid var(--line);border-radius:6px}
.sim-val{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-weight:700}
.sim-val input{padding:5px 6px;text-align:right;font-weight:700;border:1px solid var(--line);border-radius:6px}
.sim-val #simPct{width:64px} .sim-val #simEur{width:110px}
@media (max-width:700px){.range{flex-wrap:wrap}.sim-track{flex-basis:100%;order:-1}}
.sim-lim input,.sim-val input{background:var(--xl-in);color:var(--xl-in-fg)} .sim-lim{font-size:14px;font-weight:700}
/* Immobile e prezzo: 4 colonne, così condominio, balcone e target finale stanno sulla stessa riga; etichette su due righe per allineare le celle */
.fgrid.fgrid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fgrid.fgrid-4 .field label{min-height:2.5em;display:flex;align-items:flex-end}
.fgrid.fgrid-4 .field select{width:100%;min-width:0}
@media (max-width:700px){.fgrid.fgrid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fgrid.fgrid-4 .field input,.fgrid.fgrid-4 .field select{height:42px;box-sizing:border-box}
.fgrid.fgrid-4 .field label{line-height:1.25;height:2.5em;min-height:0;overflow:hidden}
.field input.ro{background:var(--soft);color:var(--fg);border:1px dashed var(--line);border-radius:6px;cursor:default} .field input.ro:focus{outline:none}
/* specchietto vendite del CF */
.sp-gantt .gt-row{grid-template-columns:minmax(150px,220px) 1fr 10px}
.sp-track{height:22px}
.sp-track i{position:absolute;top:0;bottom:0;border-radius:4px;font-style:normal;font-size:11px;font-weight:700;display:grid;place-items:center;color:#fff}
.sp-track i.sp-works{background:var(--line);color:var(--muted)}
.sp-track i.sp-mark{background:none;color:var(--accent);width:14px;margin-left:-7px;font-size:13px}
.sp-track i.sp-dep{background:var(--ice);color:var(--navy);opacity:.9}
.sp-track i.sp-rog{background:var(--good)}
.sp-track i.gt-bar.sp-bar{min-width:18px}
.cell.bad{outline:2px solid var(--bad,#D6283B);background:#fdecee}
/* Executive Summary per investitori */
.es{display:flex;flex-direction:column;gap:14px}
.es-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:2px solid var(--navy);padding-bottom:10px}
.es-top h3{margin:2px 0 2px;font-size:20px;color:var(--fg)}
.es-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.es-kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.es-kpi span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--label);font-weight:700}
.es-kpi b{font-size:22px;color:var(--fg);font-variant-numeric:tabular-nums}
.es-kpi small{font-size:11.5px;color:var(--muted)}
.es-kpi.hl{background:var(--navy);border-color:var(--navy)}
.es-kpi.hl span,.es-kpi.hl small{color:var(--ice)} .es-kpi.hl b{color:#fff}
.es-sec{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg)}
.es-sec span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px}
.es-sec::after{content:'';flex:1;height:1px;background:var(--line)}
.es-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.es-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.es-card{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
.es-h{background:var(--navy);color:#fff;padding:9px 14px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.es-h span{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.es-h small{font-size:11px;color:var(--ice);opacity:.9}
.es-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.es-tbl th{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--label);background:var(--soft-2);padding:7px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.es-tbl th.r,.es-tbl td.r{text-align:right}
.es-tbl td{padding:6px 14px;border-bottom:1px solid var(--soft);color:var(--fg)}
.es-tbl td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.es-tbl tbody tr:nth-child(even):not(.hh):not(.tot) td{background:var(--soft-2)}
.es-tbl tr.hh td{background:var(--soft);color:var(--accent);font-weight:700;font-size:11px;letter-spacing:.07em;text-transform:uppercase;padding-top:8px}
.es-tbl tr.tot td{font-weight:700;border-top:1.5px solid var(--navy);border-bottom:1px solid var(--line);background:var(--card)}
.es-tbl tr:last-child td{border-bottom:0}
@media (max-width:1100px){.es-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.es-row{grid-template-columns:1fr}.es-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.es-top{flex-direction:column;align-items:flex-start}}
.cf-flow td.num{white-space:nowrap}
/* colonna Totale dei flussi: evidenziata e separata dai trimestri */
.cf-flow th.tc{background:var(--accent);color:#fff;border-left:2px solid var(--navy);border-right:2px solid var(--navy)}
.cf-flow td.tc{background:var(--soft);font-weight:700;color:var(--fg);border-left:2px solid var(--navy);border-right:2px solid var(--navy)}
.cf-flow tr:last-child td.tc{border-bottom:2px solid var(--navy)}
.cf-flow tr.tot td.tc{background:var(--ice);color:var(--navy-2)}
.es-tbl td:first-child{min-width:150px}
.sens td,.sens th{white-space:nowrap;padding-left:5px;padding-right:5px} .sens td{font-size:11px}
/* editor delle slide */
.pp-stage.sed-on{flex-direction:column;gap:10px;justify-content:flex-start}
.sed-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 10px;max-width:100%}
.sed-bar .small{color:var(--fg)} .sed-sep{width:1px;height:20px;background:var(--line);margin:0 4px}
.sl .sed-layer{position:absolute;inset:0;z-index:5}
.sed-hit{position:absolute;cursor:pointer;border:1px dashed transparent;border-radius:2px}
.sed-hit:hover{border-color:rgba(31,78,150,.55);background:rgba(202,220,252,.12)}
.sed-hit.sel{border:2px solid #1F4E96;background:rgba(202,220,252,.18);cursor:move}
.sed-rs{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;background:#1F4E96;border:2px solid #fff;border-radius:3px;cursor:nwse-resize}
.sed-ta{position:absolute;z-index:6;font:13px/1.3 Raleway,Segoe UI,sans-serif;color:#142B52;background:#fff;border:2px solid #1F4E96;border-radius:4px;padding:4px;resize:both;box-shadow:0 6px 20px rgba(0,0,0,.25)}
/* modifica dell'offerta come in Word */
.of-bar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin-bottom:10px;box-shadow:var(--shadow)}
.of-bar select{height:30px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);padding:0 6px}
.of-editing .of-t{display:inline-block;text-indent:0;min-width:60px;max-width:calc(100% - 24px);outline:none;border-radius:2px;cursor:text;vertical-align:top}
.of-editing .of-t:empty::before{content:'\200b'}
.of-editing .of-t:hover{background:rgba(202,220,252,.35)}
.of-editing .of-t:focus{background:rgba(202,220,252,.5);box-shadow:0 0 0 1px #1F4E96}
.of-editing .of-p.of-ed{background:rgba(224,163,59,.13);box-shadow:-4px 0 0 #E0A33B}
/* Note per sezione */
.nt{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:var(--soft-2)}
.nt-t{font-size:13px;color:var(--fg);line-height:1.4}
.nt-m{display:flex;align-items:center;gap:6px;margin-top:4px}
.nt-x{margin-left:auto;border:0;background:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:4px}
.nt-x:hover{background:var(--bad-bg);color:var(--bad)}
.k-top{overflow-x:auto;overflow-y:hidden;height:14px;margin-bottom:6px} .k-top > div{height:1px}
/* report di mercato */
.mr-tbl td{vertical-align:top} .mr-tbl a{color:var(--accent);text-decoration:none;font-weight:600} .mr-tbl a:hover{text-decoration:underline}
.mr-ul{margin:0;padding-left:16px;font-size:12.5px;line-height:1.35} .mr-ul li{margin-bottom:3px}
.mr-src{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.mr-src > div{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--soft-2)}
.warn-t{color:var(--warn)} .mr-up{border:2px solid var(--accent)}
.kx-props tr.done td{opacity:.7} .kx-t{width:100%;min-width:260px;font-size:12.5px} .kx-tg{display:flex;flex-wrap:wrap;gap:4px;min-width:240px} .kx-tg select{max-width:280px}
/* area investitori: lista opportunità */
.inv-rows{display:flex;flex-direction:column;gap:8px}
.inv-row{border:1px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden}
.inv-row.open{border-color:var(--accent);box-shadow:var(--shadow)}
.inv-h{display:flex;align-items:center;gap:16px;width:100%;padding:12px 14px;background:none;border:0;cursor:pointer;text-align:left;color:var(--fg);font:inherit}
.inv-h:hover{background:var(--soft-2)}
.inv-chev{color:var(--accent);width:14px}
.inv-t{flex:1;min-width:0;display:flex;flex-direction:column}
.inv-k{display:flex;flex-direction:column;align-items:flex-end;min-width:74px} .inv-k small{font-size:10.5px;color:var(--label);text-transform:uppercase;letter-spacing:.05em} .inv-k b{font-variant-numeric:tabular-nums}
.inv-panel{border-top:1px solid var(--line);padding:12px 14px;background:var(--bg)}
.inv-dl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.inv-tabs{margin:0 0 10px}
.inv-kv dt{color:var(--muted)}
@media (max-width:760px){.inv-h{flex-wrap:wrap}.inv-k{align-items:flex-start}}
/* firma NDA online */
.nda-modal{position:fixed;inset:0;z-index:1000;background:rgba(8,26,51,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.nda-box{background:var(--card);border-radius:12px;width:min(920px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.nda-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)} .nda-head .btn{margin-left:auto}
.nda-doc{overflow:auto;padding:12px;background:var(--bg);flex:1;min-height:200px}
.nda-form{padding:12px 16px;border-top:1px solid var(--line)}
.nda-pad{display:block;width:100%;max-width:560px;height:150px;border:1px dashed var(--accent);border-radius:8px;background:#fff;touch-action:none;cursor:crosshair}
.nda-ok{display:flex;gap:8px;align-items:flex-start;margin-top:8px;font-size:13px}
.mp-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px} .mp-top b{font-size:12px} .mp-x{border:0;background:none;cursor:pointer;font-size:14px;line-height:1;padding:3px 6px;border-radius:6px;color:var(--muted)} .mp-x:hover{background:var(--soft);color:var(--fg)}
/* tempi di percorrenza nei popup della mappa */
.tt-box{margin-top:8px;border-top:1px solid #D4DEEC;padding-top:6px;min-width:210px}
.tt-h{font-size:11px;color:#55667E;margin-bottom:4px}
.tt{border-collapse:collapse;width:100%;font-size:12.5px} .tt td{padding:2px 4px}
.tt-ic svg{width:16px;height:16px;fill:none;stroke:#11305F;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.tt-v{text-align:right;font-weight:700;color:#11305F;white-space:nowrap}
.tt-n{font-size:10px;color:#8A99B3;margin-top:4px}
.sim-step{border:1px solid var(--line);background:var(--card);color:var(--fg);width:24px;height:24px;border-radius:50%;font-size:15px;font-weight:700;line-height:1;cursor:pointer;display:inline-grid;place-items:center;padding:0;margin-right:3px} .sim-step:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.mp-togrow{display:flex;align-items:center;gap:4px} .mp-togrow .mp-x{display:none} .map-panel.open .mp-togrow .mp-x{display:inline-block}
.gng-out{margin-top:18px;border-top:1px solid var(--line);padding-top:12px} .gng-out #bpTbl{max-width:none} .gng-in .fgrid{grid-template-columns:repeat(4,minmax(0,1fr))} @media (max-width:900px){.gng-in .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Go/No-Go: unità accanto al valore, descrizioni tra parentesi nel titolo */
.gng-in .field.f-in{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;align-items:center}
.gng-in .field.f-in > label{grid-column:1 / -1}
.gng-in .field.f-in > input,.gng-in .field.f-in > select{grid-column:1}
.gng-in .field.f-in > .unit{grid-column:2;margin:0;white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--fg);min-width:14px}
.gng-in .field.f-nou > .unit{display:none}
.gng-in .field.f-nou{grid-template-columns:minmax(0,1fr)}
.lbl-x{text-transform:none;letter-spacing:0;font-weight:500;color:var(--muted)}
.bp-main tr.bp-g td{font-weight:700;color:var(--fg);background:var(--soft-2)} .bp-main tr.bp-s td{font-size:12px;color:var(--muted)} .bp-main tr.bp-s td:first-child{padding-left:22px} .bp-main tr.bp-v td{font-size:12px;color:var(--accent)}
.lbl-x{margin-left:4px}
/* unità dentro la cella gialla */
.gng-in .field.f-in{display:block}
.gng-in .field.f-in > label{display:block}
.in-wrap{position:relative;display:block}
.in-wrap > input,.in-wrap > select{width:100%}
.in-wrap > .unit{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;margin:0;font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.gng-in .field.f-nou .in-wrap > .unit{display:none}
/* + / − delle macro voci */
.bp-tg{width:18px;height:18px;margin-right:8px;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--accent);font:700 13px/1 var(--font);cursor:pointer;padding:0;vertical-align:middle}
.bp-tg:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.bp-tg0{display:inline-block;width:18px;margin-right:8px}
.bp-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start} .bp-res .tbl-wrap{margin:0} @media (max-width:1000px){.bp-res{grid-template-columns:1fr}}
/* barra di simulazione: cursore di misura fissa (16 px) per allineare la tacca 0% al suo centro */
.sim-track input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:var(--line);outline:none;padding:0;margin:5px 0}
.sim-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--navy);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.35);cursor:pointer}
.sim-track input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--navy);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.35);cursor:pointer;box-sizing:border-box}
.sim-zero{transform:translateX(-50%)}
/* Go/No-Go: titoli delle sezioni ben visibili */
.gng-in .eyebrow.ana-h{display:block;font-size:13.5px;font-weight:800;letter-spacing:.07em;color:var(--navy);border-bottom:2px solid var(--navy);padding:0 0 5px;margin:26px 0 12px}
:root[data-theme="dark"] .gng-in .eyebrow.ana-h{color:var(--ice);border-color:var(--ice)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .gng-in .eyebrow.ana-h{color:var(--ice);border-color:var(--ice)}}
.gng-in > div > .eyebrow.ana-h:first-child{margin-top:4px}

/* sottovoci della Home nella barra di sinistra */
.nav-sub{display:flex;flex-direction:column;gap:1px;margin:0 0 4px 22px;padding-left:8px;border-left:1px solid rgba(255,255,255,.18)}
.nav .nav-sub button{padding:6px 10px;font-size:13px;font-weight:500;color:#C3D2EC}
.nav .nav-sub button.active{background:rgba(255,255,255,.14);color:#fff;font-weight:600}
.nav .nav-sub button.active .count{background:rgba(255,255,255,.22);color:#fff}
/* tendina delle sezioni della Home: chiusa di default */
.nav-sub{display:none}
.nav-sub.open{display:flex}
.nav .nav-caret{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;color:inherit;opacity:.75}
.nav .nav-caret:hover{background:rgba(17,48,95,.12);opacity:1}
.nav button:not(.active) .nav-caret:hover{background:rgba(255,255,255,.14)}
.nav .nav-caret svg{width:14px;height:14px;transition:transform .15s}
.nav .nav-caret[aria-expanded="true"] svg{transform:rotate(180deg)}
/* cella informativa in blu, non modificabile (prezzo richiesto nell'annuncio) */
.field input.rb{background:#DCE8FB;color:#11305F;font-weight:600;border:1px solid #B9CDEE;border-radius:6px;cursor:default} .field input.rb:focus{outline:none}
:root[data-theme="dark"] .field input.rb{background:#1E3A66;color:#E3ECFC;border-color:#2C4C80}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .field input.rb{background:#1E3A66;color:#E3ECFC;border-color:#2C4C80}}
/* business plan rapido e risultati affiancati */
.bp-side{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start} .bp-side .tbl-wrap{margin:0}
@media (max-width:1000px){.bp-side{grid-template-columns:1fr}}
.bp-irr tr.bp-sec td{background:var(--soft);color:var(--navy);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding-top:8px}
/* schede del cantiere: vanno a capo, senza barra di scorrimento */
#cantTabs{flex-wrap:wrap;overflow:visible;row-gap:2px}
.tabs{overflow-y:hidden}

/* CF assunzioni: due colonne indipendenti, stessa altezza finale */
.cf-cols{align-items:stretch} .cf-col{display:flex;flex-direction:column;gap:14px;min-width:0} .cf-col > .card{margin:0} .cf-col > .card:last-child{flex:1}
@media (max-width:900px){.cf-cols{grid-template-columns:1fr}}

/* CF assunzioni: Purchase con etichette su una riga e celle gialle più strette; totale in fondo alle sezioni */
.cf-purch td:first-child{white-space:nowrap;width:1%} .cf-purch td:nth-child(2){width:170px}
.cf-purch select.cell,.cf-purch input.cell{width:100%;max-width:170px;min-width:0} .cf-purch td:nth-child(2) > div{max-width:170px}
.sec-tot{margin-top:10px;border-top:2px solid var(--navy)} .sec-tot td{padding-top:5px;padding-bottom:5px}
/* Go/No-Go: sezioni di input in due colonne (Immobile e prezzo | Mercato e rivendita, ecc.) */
.gng-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;row-gap:4px;align-items:start}
.gng-in .gng-sec .fgrid,.gng-in .gng-sec .fgrid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.gng-cols{grid-template-columns:1fr}}
/* font uniformi (Raleway ovunque): tabelle 12px con intestazioni 11px, titoli di sezione 13px, celle dei moduli 13px */
.es-tbl{font-size:12px} .es-tbl th{font-size:11px;font-weight:600} .es-h span{font-size:11px}
.gng-in .eyebrow.ana-h{font-size:13px;font-weight:700}
.field input,.field select,.field textarea{font-size:13px;font-family:var(--font)}
input,select,textarea,button{font-family:var(--font)}
.leaflet-control-zoom a,.leaflet-bar a{font-family:var(--font)}
svg text{font-family:var(--font)}
/* Go/No-Go: caselle allineate tra le due colonne (stessa altezza di etichetta e cella in ogni sezione) */
.gng-in .gng-sec .field > label{min-height:28px;line-height:14px;margin-bottom:3px;display:block}
.gng-in .gng-sec .field input,.gng-in .gng-sec .field select,.gng-in .gng-sec .fgrid.fgrid-4 .field input,.gng-in .gng-sec .fgrid.fgrid-4 .field select{height:36px;box-sizing:border-box}
.gng-in .gng-sec .fgrid{row-gap:10px}
/* Go/No-Go compatto: meno spazio tra sezioni e righe, celle gialle più basse (stesso font 13px) */
.gng-in .eyebrow.ana-h{margin:16px 0 8px;padding-bottom:4px}
.gng-cols{row-gap:0;column-gap:24px}
.gng-in .gng-sec .fgrid{row-gap:6px;column-gap:10px}
.gng-in .gng-sec .field > label{min-height:13px;line-height:13px;margin-bottom:2px}
.gng-in .gng-sec .field input,.gng-in .gng-sec .field select,.gng-in .gng-sec .fgrid.fgrid-4 .field input,.gng-in .gng-sec .fgrid.fgrid-4 .field select{height:30px;padding-top:4px;padding-bottom:4px}
.gng-in .gng-sec p.small{margin-top:4px !important}
/* totale accanto al titolo di sezione (Go/No-Go e CF assunzioni) */
.sec-th{text-transform:none;letter-spacing:0;font-weight:600;color:var(--muted);margin-left:6px;font-size:12px;white-space:nowrap}
/* CF assunzioni nello stile del Go/No-Go: titoli blu sottolineati con il totale, etichetta sopra e casella gialla sotto, due caselle per riga */
.cf-cols{column-gap:24px;row-gap:0}
.cf-cols .cf-col{gap:0}
.cf-cols .cf-col > .card{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
.cf-cols .cf-col > .card > .card-h{border-bottom:2px solid var(--navy);padding:0 0 4px;margin:16px 0 8px;min-height:0}
.cf-cols .cf-col > .card > .card-h .eyebrow{font-size:13px;font-weight:700;letter-spacing:.07em;color:var(--navy)}
:root[data-theme="dark"] .cf-cols .cf-col > .card > .card-h{border-color:var(--ice)} :root[data-theme="dark"] .cf-cols .cf-col > .card > .card-h .eyebrow{color:var(--ice)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .cf-cols .cf-col > .card > .card-h{border-color:var(--ice)} :root:not([data-theme="light"]) .cf-cols .cf-col > .card > .card-h .eyebrow{color:var(--ice)}}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum){display:block;width:100%;border:0}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) > tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px;row-gap:6px}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) tr{display:flex;flex-direction:column;position:relative;min-width:0;background:none}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td{padding:0;border:0;background:none !important;white-space:normal;width:auto}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:first-child{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--label);font-weight:700;line-height:13px;margin-bottom:2px;flex:1}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:first-child .small{text-transform:none;letter-spacing:0;font-weight:400;font-size:11px;line-height:13px}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(2) input.cell,.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(2) select.cell{height:30px;font-size:13px;border-radius:8px;padding:4px 10px;width:100%;max-width:none;min-width:0;box-sizing:border-box}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(2) > div{max-width:none}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(2) > div > select.cell{width:auto !important;flex:0 0 auto;max-width:120px}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(3){position:absolute;right:10px;bottom:0;height:30px;display:flex;align-items:center;pointer-events:none;font-size:12.5px;font-weight:600;color:var(--fg)}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(3):empty{display:none}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) tr:has(td:nth-child(3):not(:empty)) input.cell{padding-right:46px}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) tr:has(td[colspan]){grid-column:1 / -1}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) tr:has(td[colspan]) td{font-size:11px;color:var(--navy);border-bottom:1px solid var(--line);padding:8px 0 3px;margin:0}
.cf-cols .cf-purch td:first-child{white-space:nowrap !important;width:auto;overflow:hidden;text-overflow:ellipsis} .cf-cols .cf-purch td:first-child .small{white-space:nowrap}
.cf-cols .cf-col > .card .note{margin-top:10px}
.cf-cols .dev-sum{margin-top:12px}.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:nth-child(2) input.cell{text-align:left}

/* CF assunzioni: fondo bianco; riepilogo costi di sviluppo in celle blu (fisse, calcolate) */
.cf-ass-card{background:var(--card);padding:18px 20px}
.cf-cols .cf-col > .card > table.tbl.mini.dev-tot{margin-top:10px}
td input.cell.rb,.cf-cols td input.cell.rb{background:#DCE8FB;color:#11305F;font-weight:600;border:1px solid #B9CDEE;cursor:default} td input.cell.rb:focus{outline:none}
:root[data-theme="dark"] td input.cell.rb{background:#1E3A66;color:#E3ECFC;border-color:#2C4C80}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) td input.cell.rb{background:#1E3A66;color:#E3ECFC;border-color:#2C4C80}}
/* Investment Memorandum: stile istituzionale (filetto d'accento, piè di pagina con filetto, superfici piatte senza ombre) */
.sl-acc{position:absolute;left:0;width:100%;background:#CADCFC}
.sl-rule{position:absolute;height:1px;background:#D4DEEC}
.sl-num{background:none !important;color:#11305F !important;text-align:right;display:block !important;font-weight:700}
.sl-t{font-weight:600;letter-spacing:.01em}
.sl-r.sh,.sl-ph,.sl-card,.sl-list,.sl-k,.sl-kd{box-shadow:none !important}
.sl-k,.sl-kd{border-radius:2px}
.sl-img{position:absolute}
/* totale di sezione a destra, in blu, senza parentesi */
.gng-in .eyebrow.ana-h{display:flex !important;align-items:baseline}
.sec-th{margin-left:auto !important;color:#2F5F9E !important;font-weight:700 !important;font-size:13px !important;letter-spacing:0 !important;text-transform:none !important;font-variant-numeric:tabular-nums}
.cf-cols .card-h .sec-th{order:10}
:root[data-theme="dark"] .sec-th{color:#8FB2EE !important}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .sec-th{color:#8FB2EE !important}}
/* Structure Cost a tutta larghezza sotto le due colonne: quattro caselle per riga */
.cf-cols.cf-wide{display:block;margin-top:4px}
.cf-cols.cf-wide .cf-col > .card > table.tbl.mini:not(.dev-sum) > tbody{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.cf-cols.cf-wide .cf-col > .card > table.tbl.mini:not(.dev-sum) > tbody{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* valori a sinistra, unità subito dopo il valore */
.gng-in .in-wrap > input,.gng-in .field input[type=number]{text-align:left}

/* etichetta attaccata alla sua casella, spazio tra una riga e la successiva (Go/No-Go e CF) */
.gng-in .gng-sec .field > label,.gng-in .gng-sec .fgrid.fgrid-4 .field > label{height:auto !important;display:flex !important;flex-wrap:wrap;align-content:flex-end;align-items:flex-end;margin-bottom:1px !important;overflow:visible}
.gng-in .gng-sec .field > label .lbl-x{margin-left:4px}
.gng-in .gng-sec .fgrid{row-gap:14px !important}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) > tbody{row-gap:14px}
.cf-cols .cf-col > .card > table.tbl.mini:not(.dev-sum) td:first-child{display:flex;flex-direction:column;justify-content:flex-end;margin-bottom:1px}
/* totale di sezione: stesso colore del titolo, cifre allineate (lining) */
.sec-th{color:var(--navy) !important;font-variant-numeric:lining-nums tabular-nums !important;font-feature-settings:"lnum" 1,"tnum" 1 !important}
:root[data-theme="dark"] .sec-th{color:var(--ice) !important}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .sec-th{color:var(--ice) !important}}
/* etichetta in testo continuo (va a capo parola per parola) e appoggiata sulla casella */
.gng-in .gng-sec .field > label,.gng-in .gng-sec .fgrid.fgrid-4 .field > label{display:flex !important;flex-direction:column;justify-content:flex-end;flex-wrap:nowrap}
.gng-in .gng-sec .field > label > .lbl-in{display:block}
.gng-in .gng-sec .field > label .lbl-x{margin-left:3px}.gng-in .gng-sec .field > label{letter-spacing:.035em}

/* Costi immobiliari + Equity nella stessa cella, affiancati a Veicolo e costi di struttura */
.gng-stack{display:flex;flex-direction:column;min-width:0}
.gng-in .gng-sec .field > label,.gng-in .gng-sec .fgrid.fgrid-4 .field > label{align-items:flex-start !important;text-align:left}
