:root {
  --ink:#0b2b30; --ink-2:#163f43; --muted:#65777a; --paper:#eef0e8; --card:#fffef9;
  --line:#d9ded6; --mint:#83d5b4; --mint-deep:#167454; --mint-soft:#e1f5ec;
  --red:#a9423a; --red-soft:#f8e5e1; --amber:#99670d; --amber-soft:#fff0c9; --blue:#1c6e83;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink); background:var(--paper); font-synthesis:none;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:linear-gradient(145deg,#f8f5ea 0%,#e9eee8 46%,#dde9e4 100%)}
button{font:inherit}button:disabled{opacity:.58;cursor:wait}
.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 8%,rgba(131,213,180,.22),transparent 26%),radial-gradient(circle at 88% 22%,rgba(40,130,151,.13),transparent 25%)}
.shell{position:relative;width:min(820px,100%);margin:0 auto;padding:28px 20px 58px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--ink);color:var(--mint);font-family:Georgia,serif;font-size:1.35rem;box-shadow:0 8px 24px rgba(11,43,48,.18)}
.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:850;color:var(--blue)}
h1,h2,h3,p{margin-top:0}.topbar h1{font-family:Georgia,serif;font-size:1.45rem;margin:0;letter-spacing:-.025em}
.mode{display:inline-flex;align-items:center;gap:8px;border:1px solid #92cbb9;border-radius:999px;padding:8px 11px;font-size:.68rem;font-weight:900;background:#e2f5ed;color:#146346;white-space:nowrap}.mode i{width:7px;height:7px;border-radius:50%;background:#21a16e;box-shadow:0 0 0 4px rgba(33,161,110,.12)}
.session-gate{max-width:660px;margin:9vh auto 0;text-align:center;background:rgba(255,254,249,.92);border:1px solid rgba(11,43,48,.1);border-radius:30px;padding:38px;box-shadow:0 24px 70px rgba(11,43,48,.13);backdrop-filter:blur(14px)}
.gate-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;border-radius:18px;background:var(--ink);color:var(--mint);font-size:2rem}.session-gate h2{font-family:Georgia,serif;font-size:2rem;letter-spacing:-.035em;margin-bottom:12px}.session-gate>p:not(.eyebrow){max-width:560px;margin:0 auto;color:var(--muted);line-height:1.6;font-size:.94rem}
.assurances{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:0;margin:25px 0;list-style:none}.assurances li{padding:13px 8px;border-radius:14px;background:#f0f4ef;color:var(--muted);font-size:.72rem;font-weight:700}.assurances span{display:block;color:var(--ink);font-size:1.05rem;margin-bottom:3px}
.auth-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;text-align:left}.auth-fields label{font-size:.7rem;font-weight:800;color:var(--ink)}.auth-fields input{display:block;width:100%;margin-top:6px;min-height:48px;border:1px solid #bfc9c2;border-radius:11px;background:white;color:var(--ink);font:inherit;padding:10px 12px}.auth-fields input:focus{outline:3px solid #5abbd1;outline-offset:1px;border-color:transparent}
.session-strip{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:11px;margin-bottom:14px;padding:11px 14px;background:rgba(255,254,249,.76);border:1px solid rgba(11,43,48,.1);border-radius:15px;font-size:.77rem}.assurance-dot{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--mint-soft);color:var(--mint-deep);font-weight:950}.session-strip strong,.session-strip span{display:block}.session-strip span{color:var(--muted);font-size:.68rem;margin-top:2px}.session-time{text-align:right}.session-time strong{font-variant-numeric:tabular-nums;font-size:.87rem}.text-button{border:0;background:transparent;color:var(--red);font-weight:800;cursor:pointer;min-height:40px;padding:6px 8px}
.briefing{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;background:linear-gradient(135deg,var(--ink),var(--ink-2));color:white;border-radius:25px;padding:25px;box-shadow:0 17px 42px rgba(11,43,48,.17)}
.briefing .eyebrow{color:var(--mint)}.briefing h2{font-family:Georgia,serif;font-size:1.62rem;letter-spacing:-.025em;margin-bottom:8px}.briefing p:last-child{color:#c7d5d2;margin:0;line-height:1.5;font-size:.86rem;max-width:560px}.time-box{min-width:94px;text-align:right}.time-box strong,.time-box span{display:block}.time-box strong{font-size:1.13rem}.time-box span{font-size:.68rem;color:#9fb5b2;margin-top:3px}
.tabs{display:flex;gap:7px;padding:22px 0 14px;overflow:auto}.tab{border:0;background:transparent;padding:10px 12px;color:var(--muted);font-size:.82rem;font-weight:780;border-radius:12px;cursor:pointer;min-height:44px;white-space:nowrap}.tab.active{background:var(--card);color:var(--ink);box-shadow:0 3px 13px rgba(11,43,48,.08)}.tab b{background:var(--ink);color:white;border-radius:999px;padding:2px 7px;margin-left:4px;font-size:.65rem}
.cards{display:grid;gap:14px}.card{background:var(--card);border:1px solid rgba(11,43,48,.1);border-radius:21px;padding:21px;box-shadow:0 9px 28px rgba(11,43,48,.07)}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.kind{font-size:.65rem;text-transform:uppercase;letter-spacing:.115em;font-weight:900;color:var(--blue)}.ttl{font-size:.7rem;font-weight:780;color:var(--amber);background:var(--amber-soft);padding:6px 8px;border-radius:9px;white-space:nowrap}.card h3{font-family:Georgia,serif;font-size:1.36rem;line-height:1.22;margin:9px 0}.card .description{color:var(--muted);line-height:1.5;font-size:.87rem}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.fact{background:#f1f4ef;border-radius:12px;padding:10px}.fact span,.fact strong{display:block}.fact span{font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.fact strong{font-size:.84rem}
.evidence{display:flex;gap:10px;border-top:1px solid var(--line);padding-top:13px;color:var(--muted)}.evidence>span{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:8px;background:var(--mint-soft);color:var(--mint-deep);font-size:.76rem;font-weight:900}.evidence p{font-size:.79rem;line-height:1.45;margin:0}.evidence strong{display:block;color:var(--ink);margin-bottom:2px}.step-up-flag{margin-top:12px;border-radius:11px;background:var(--amber-soft);color:#74500d;padding:9px 11px;font-size:.73rem;font-weight:750}
.payload{margin:14px 0;border:1px solid var(--line);border-radius:12px;background:#f7f8f4;padding:10px 12px}.payload summary{cursor:pointer;font-size:.76rem;font-weight:850;color:var(--ink)}.payload pre{max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#102f33;color:#e8f6ef;border-radius:9px;padding:12px;font-size:.72rem;line-height:1.45}.payload p{margin:7px 0 0;color:var(--muted);font-size:.67rem;word-break:break-all}.ledger-proof{display:flex;justify-content:space-between;gap:12px;margin:14px 0;padding:11px 12px;border-radius:11px;background:var(--mint-soft);color:var(--mint-deep);font-size:.72rem}.ledger-proof strong,.ledger-proof span{display:block}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.button{min-height:50px;border-radius:13px;border:0;color:white;font-weight:850;cursor:pointer;padding:12px}.button.primary{background:var(--mint-deep)}.button.no{background:var(--red-soft);color:var(--red)}.button.secondary{background:#edf0ec;color:var(--ink)}.button.wide{width:100%;max-width:360px}.button:focus-visible,.tab:focus-visible,.close:focus-visible,.text-button:focus-visible{outline:3px solid #5abbd1;outline-offset:2px}
.history-card{display:flex;justify-content:space-between;gap:16px;align-items:center}.history-card h3{font-family:inherit;font-size:.97rem;margin:5px 0}.history-card p{font-size:.75rem;color:var(--muted);margin:0}.status{font-size:.68rem;font-weight:900;padding:7px 10px;border-radius:999px;white-space:nowrap}.status.yes{background:var(--mint-soft);color:var(--mint-deep)}.status.no{background:var(--red-soft);color:var(--red)}.status.expired{background:#eceeea;color:#697472}
.empty{text-align:center;padding:45px 20px;background:var(--card);border:1px solid rgba(11,43,48,.08);border-radius:21px;color:var(--muted)}.empty>span{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 12px;border-radius:50%;background:var(--mint-soft);color:var(--mint-deep);font-weight:900}.empty strong{display:block;color:var(--ink);margin-bottom:6px}.empty p{margin:0;font-size:.82rem;line-height:1.45}
.proof-panel{background:var(--card);border:1px solid rgba(11,43,48,.1);border-radius:24px;padding:24px;box-shadow:0 9px 28px rgba(11,43,48,.07)}.proof-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.proof-head h2{font-family:Georgia,serif;font-size:1.5rem;margin:0}.proof-badge{background:var(--mint-soft);color:var(--mint-deep);border-radius:999px;padding:7px 10px;font-size:.68rem;font-weight:950}.proof-panel>p{color:var(--muted);font-size:.84rem;line-height:1.5}.proof-panel code{font-size:.75rem;background:#eff2ee;padding:2px 5px;border-radius:5px;color:var(--ink)}
.counter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}.counter-grid div{min-height:85px;padding:12px 8px;border-radius:13px;background:#f0f4ef;text-align:center}.counter-grid strong,.counter-grid span{display:block}.counter-grid strong{font-size:1.25rem;color:var(--mint-deep)}.counter-grid span{font-size:.62rem;line-height:1.25;color:var(--muted);margin-top:5px}.contract-list{border-top:1px solid var(--line);padding-top:12px}.contract-list p{display:flex;gap:10px;align-items:center;margin:8px 0;color:var(--muted);font-size:.78rem}.contract-list span{color:var(--blue);font-size:.63rem;font-weight:900}
.safety-note{display:flex;gap:12px;padding:22px 5px 0;color:var(--muted);font-size:.77rem;line-height:1.45}.safety-note span{color:var(--blue)}.safety-note p{margin:0}
.decision-dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:24px;padding:0;background:var(--card);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.28)}.decision-dialog.compact{width:min(460px,calc(100% - 28px))}.decision-dialog::backdrop{background:rgba(4,27,30,.67);backdrop-filter:blur(4px)}.decision-dialog form{padding:26px}.decision-dialog h2{font-family:Georgia,serif;font-size:1.55rem;padding-right:25px}.close{position:absolute;right:13px;top:11px;border:0;background:transparent;color:var(--muted);font-size:1.65rem;cursor:pointer;min-width:44px;min-height:44px}.decision-summary{padding:14px;background:#f0f3ef;border-radius:14px;font-size:.86rem;line-height:1.45}.confirm-copy{margin:16px 0;color:var(--muted);font-size:.86rem;line-height:1.5}.snapshot{margin:0 0 18px}.snapshot span,.snapshot code{display:block}.snapshot span{font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.snapshot code{overflow:hidden;text-overflow:ellipsis;background:#eef1ed;padding:9px;border-radius:9px;font-size:.72rem}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dialog-actions.single{grid-template-columns:1fr 1.4fr}
.toast{position:fixed;z-index:10;left:50%;bottom:24px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:12px 15px;border-radius:12px;background:var(--ink);color:white;font-size:.78rem;box-shadow:0 15px 40px rgba(11,43,48,.25)}.toast[data-tone="success"]{background:#126747}.toast[data-tone="error"]{background:#903b34}
noscript{display:block;padding:20px;text-align:center;color:var(--red)}
@media(max-width:650px){.shell{padding:17px 13px 40px}.topbar{align-items:flex-start}.brand-mark{display:none}.topbar h1{font-size:1.2rem}.mode{font-size:.58rem;padding:7px 8px}.session-gate{margin-top:5vh;padding:28px 19px;border-radius:24px}.session-gate h2{font-size:1.65rem}.assurances{gap:6px}.auth-fields{grid-template-columns:1fr}.session-strip{grid-template-columns:auto 1fr auto}.session-time{display:none}.briefing{align-items:flex-start;flex-direction:column;padding:21px}.time-box{text-align:left}.tabs{padding-top:17px}.facts{grid-template-columns:1fr 1fr}.facts .fact:last-child{grid-column:1/-1}.card{padding:17px}.actions{position:sticky;bottom:8px}.button{min-height:54px}.history-card{align-items:flex-start}.counter-grid{grid-template-columns:repeat(2,1fr)}.counter-grid div:last-child:nth-child(odd){grid-column:1/-1}.decision-dialog{margin-bottom:11px}.dialog-actions,.dialog-actions.single{grid-template-columns:1fr}.dialog-actions .button{width:100%}}
@media(prefers-reduced-motion:no-preference){.card,.proof-panel{animation:rise .28s ease both}@keyframes rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}}

/* Il canale delle domande. Aperto di default quando c'è una domanda senza risposta: una
   domanda in attesa che il proprietario deve ricordarsi di andare a cercare è una domanda
   che si perde. */
.domande { margin-top: .9rem; border-top: 1px solid rgba(0,0,0,.08); padding-top: .7rem; }
.domande > summary { cursor: pointer; font-weight: 600; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; opacity: .75; }
.scambio { margin: .7rem 0; padding-left: .8rem; border-left: 2px solid rgba(0,0,0,.12); }
.scambio .chiesto { margin: 0 0 .35rem; }
.scambio .risposto { margin: 0; white-space: normal; }
.scambio .in-attesa { margin: 0; opacity: .65; font-style: italic; }
form.chiedi { display: flex; gap: .5rem; margin-top: .6rem; }
form.chiedi textarea { flex: 1; resize: vertical; font: inherit; padding: .5rem .6rem; border-radius: 8px; border: 1px solid rgba(0,0,0,.18); }
.evidence code { display: inline-block; font-size: .78rem; opacity: .8; word-break: break-all; }

/* Le segnalazioni non sono decisioni: niente pulsanti, e un bordo che le distingue a colpo
   d'occhio dalle carte. Se somigliassero a una carta, il primo riflesso sarebbe cercare il SI'. */
.card.segnalazione { border-left: 3px solid #7a6; }
.card.segnalazione .niente-da-decidere { opacity: .65; font-size: .85em; margin-top: .8em; }

/* Un ruolo fermo non deve somigliare a una nota: se sembra facoltativo, resta senza risposta. */
.chiarimento { margin-top: .9em; padding: .8em; border: 1px solid #a86; border-radius: 6px; }
.chiarimento .fermo { margin: 0 0 .6em; }
.chiarimento textarea { width: 100%; }
