/* Revioo — programma agenti. Stesse variabili del pannello admin. */
:root{
  --stone:#F2EEE4; --olive-deep:#333E22; --olive:#4B5A32; --ink:#2B2822; --ink-soft:#6B6558;
  --border:#E0DACB; --card:#fff; --brand-red:#ef252d; --header-dark:#273019;
  --ok-bg:#EDF5E6; --ok:#4B7A32; --ko-bg:#FBEAE8; --ko:#B23A2F; --warn-bg:#FFF7E2; --warn:#6B5420;
}
*{ box-sizing:border-box; margin:0; padding:0; }
body{ font-family:-apple-system,'Inter','Segoe UI',sans-serif; background:var(--stone); color:var(--ink); line-height:1.45; }
a{ color:var(--olive); }
.wrap{ max-width:1080px; margin:0 auto; }
main.wrap{ padding:24px 16px 60px; }

.site-header{ background:var(--header-dark); box-shadow:0 3px 14px rgba(39,48,25,.22); }
.header-inner{ max-width:1080px; min-height:72px; margin:0 auto; padding:10px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ display:flex; align-items:center; gap:16px; color:#fff; text-decoration:none; min-width:0; }
.brand img{ display:block; width:150px; height:auto; }
.brand-title{ padding-left:16px; border-left:1px solid rgba(255,255,255,.25); font-size:15px; font-weight:600; white-space:nowrap; }
.main-nav{ display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.main-nav a{ color:rgba(255,255,255,.84); text-decoration:none; font-size:13px; font-weight:500; padding:9px 12px; border-radius:6px; }
.main-nav a:hover{ background:rgba(255,255,255,.1); color:#fff; }
.main-nav a.active{ background:var(--brand-red); color:#fff; }
.main-nav a.logout{ margin-left:4px; border:1px solid rgba(255,255,255,.28); }

h1{ font-size:22px; color:var(--olive-deep); margin-bottom:4px; }
h2{ font-size:16px; color:var(--olive-deep); margin-bottom:12px; }
h3{ font-size:14px; margin:16px 0 8px; }
.intro{ color:var(--ink-soft); font-size:14px; margin-bottom:20px; max-width:760px; }
.testa-pagina{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }

.card{ background:var(--card); border:1px solid var(--border); border-radius:10px; padding:18px 20px; margin-bottom:18px; }
.griglia{ display:grid; gap:12px; }
.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)); }
.kpi{ background:var(--card); border:1px solid var(--border); border-radius:10px; padding:14px 16px; }
.kpi span{ display:block; font-size:12px; color:var(--ink-soft); margin-bottom:4px; }
.kpi strong{ font-size:22px; font-weight:650; }
.kpi small{ display:block; font-size:11px; color:var(--ink-soft); margin-top:3px; }
.kpi.evidenza{ background:var(--olive-deep); color:#fff; border-color:var(--olive-deep); }
.kpi.evidenza span, .kpi.evidenza small{ color:rgba(255,255,255,.78); }

table{ width:100%; border-collapse:collapse; background:var(--card); font-size:13px; }
.tabella{ border:1px solid var(--border); border-radius:10px; overflow:auto; margin-bottom:18px; background:var(--card); }
th, td{ text-align:left; padding:10px 12px; vertical-align:top; }
th{ background:var(--olive-deep); color:#fff; font-weight:600; font-size:12px; white-space:nowrap; }
tr:not(:last-child) td{ border-bottom:1px solid var(--border); }
td.n, th.n{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
td .sub{ display:block; color:var(--ink-soft); font-size:11px; margin-top:2px; }
tfoot td{ font-weight:650; background:#FAF8F3; }
.vuoto{ padding:22px; text-align:center; color:var(--ink-soft); font-size:13px; }

.badge, .pill{ display:inline-block; font-size:11px; padding:3px 8px; border-radius:12px; font-weight:600; white-space:nowrap; }
.badge-maturata{ background:var(--warn-bg); color:var(--warn); }
.badge-approvata{ background:#E6EEF8; color:#234E80; }
.badge-liquidata, .badge-attivo, .pill-ok{ background:var(--ok-bg); color:var(--ok); }
.badge-annullata, .badge-terminato, .pill-ko{ background:var(--ko-bg); color:var(--ko); }
.pill-warn{ background:var(--warn-bg); color:var(--warn); }

form .campo{ display:flex; flex-direction:column; gap:5px; min-width:0; }
label{ font-size:12px; color:var(--ink-soft); font-weight:600; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], select, textarea{
  width:100%; padding:9px 10px; border:1px solid var(--border); border-radius:6px; font-size:14px; font-family:inherit; background:#fff; color:var(--ink); }
input:focus, select:focus, textarea:focus{ outline:2px solid rgba(51,62,34,.18); border-color:var(--olive-deep); }
textarea{ min-height:70px; resize:vertical; }
.check{ display:flex; gap:8px; align-items:center; font-size:13px; color:var(--ink); font-weight:500; }
.aiuto{ font-size:11.5px; color:var(--ink-soft); font-weight:400; }
fieldset{ border:1px solid var(--border); border-radius:10px; padding:14px 16px 16px; margin-bottom:16px; background:var(--card); }
legend{ font-size:13px; font-weight:700; color:var(--olive-deep); padding:0 6px; }

.btn{ display:inline-flex; align-items:center; gap:6px; padding:9px 14px; border-radius:6px; border:1px solid var(--olive-deep);
  background:var(--olive-deep); color:#fff; font-size:13px; font-weight:600; text-decoration:none; cursor:pointer; font-family:inherit; white-space:nowrap; }
.btn:hover{ opacity:.92; }
.btn.sec{ background:#fff; color:var(--olive-deep); }
.btn.rosso{ background:var(--ko); border-color:var(--ko); }
.btn.piccolo{ padding:5px 9px; font-size:12px; }
.azioni{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }

.msg{ padding:11px 14px; border-radius:8px; margin-bottom:16px; font-size:13.5px; }
.msg-ok{ background:var(--ok-bg); color:var(--ok); border:1px solid #CFE3C0; }
.msg-errore{ background:var(--ko-bg); color:var(--ko); border:1px solid #F0C9C4; }
.msg-avviso{ background:var(--warn-bg); color:var(--warn); border:1px solid #E9D39C; }

.codice-grande{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:22px; letter-spacing:.06em; font-weight:700;
  background:var(--stone); padding:10px 14px; border-radius:8px; display:inline-block; user-select:all; }
code, .mono{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12.5px; }
.filtri{ display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:14px; }
.filtri .campo{ min-width:150px; }
dl.dati{ display:grid; grid-template-columns:170px 1fr; gap:6px 14px; font-size:13.5px; }
dl.dati dt{ color:var(--ink-soft); }

/* Modulo di candidatura: pagina pubblica ma a tutta larghezza, con la testata scura */
.area-candidatura main.wrap{ max-width:880px; }

/* Login */
.area-pubblica{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.area-pubblica main.wrap{ max-width:380px; width:100%; padding:0; }
.login-card{ background:#fff; border:1px solid var(--border); border-radius:12px; padding:34px 30px; }
.login-card img{ display:block; width:170px; margin:0 auto 20px; }
.login-card form .campo{ margin-bottom:14px; }
.login-card .btn{ width:100%; justify-content:center; padding:12px; }

@media (max-width:760px){
  .header-inner{ flex-direction:column; align-items:flex-start; gap:8px; padding:12px 16px; }
  /* Voci su più righe: niente barra di scorrimento e «Pannello Revioo» / «Esci» sempre visibili */
  .main-nav{ width:100%; flex-wrap:wrap; gap:4px; }
  .main-nav a{ flex:0 0 auto; padding:7px 10px; font-size:12.5px; }
  .main-nav a.logout{ margin-left:0; }
  .g2, .g3, .g4{ grid-template-columns:1fr; }
  .griglia > [style*="span 2"]{ grid-column:auto !important; }
  .g4.kpis{ grid-template-columns:1fr 1fr; }
  dl.dati{ grid-template-columns:1fr; gap:2px; }
  dl.dati dd{ margin-bottom:8px; }
  th, td{ padding:8px 8px; font-size:12px; }
}

/* Stampa (contratto ed estratto conto) */
.documento{ background:#fff; border:1px solid var(--border); border-radius:10px; padding:44px 52px; max-width:860px; margin:0 auto;
  font-family:Georgia,'Times New Roman',serif; font-size:14px; line-height:1.6; color:#111; }
.documento h1{ font-family:inherit; font-size:20px; text-align:center; color:#111; margin-bottom:4px; }
.documento .sottotitolo{ text-align:center; font-size:12.5px; color:#444; margin-bottom:26px; }
.documento h2{ font-family:inherit; font-size:14.5px; color:#111; margin:20px 0 6px; }
.documento p, .documento li{ margin-bottom:8px; text-align:justify; }
.documento ol, .documento ul{ margin:0 0 10px 22px; }
.documento table{ font-size:12.5px; margin:8px 0 14px; }
.documento table th{ background:#eee; color:#111; }
.documento table th, .documento table td{ border:1px solid #bbb; }
.documento .parti{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:14px; font-size:13px; }
.documento .parti div{ border:1px solid #ccc; padding:10px 12px; border-radius:4px; }
.documento .firme{ display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:34px; }
.documento .firme div{ border-top:1px solid #333; padding-top:6px; font-size:12px; text-align:center; min-height:60px; }
.documento .codice-doc{ font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; }
.documento .nota-legale{ font-size:11px; color:#666; border-top:1px dashed #bbb; margin-top:26px; padding-top:8px; }
.barra-stampa{ max-width:860px; margin:0 auto 14px; display:flex; gap:8px; justify-content:space-between; flex-wrap:wrap; align-items:center; }
@media (max-width:760px){
  .documento{ padding:24px 18px; }
  .documento .parti, .documento .firme{ grid-template-columns:1fr; }
  /* A schermo le tabelle larghe scorrono nel loro riquadro; in stampa restano normali */
  .documento table{ display:block; overflow-x:auto; min-width:0 !important; width:100% !important; }
}
@media print{
  @page{ size:A4; margin:16mm 16mm 18mm; }
  body{ background:#fff; }
  .site-header, .barra-stampa, .no-print{ display:none !important; }
  main.wrap{ padding:0; max-width:none; }
  .documento{ border:0; padding:0; max-width:none; border-radius:0; }
  .documento h2{ break-after:avoid; }
  .documento .firme{ break-inside:avoid; }
}
