    :root { --bg:#f6f5f2; --card:#fff; --ink:#22272b; --muted:#6b7177; --line:#e2e0db;
            --accent:#2f6f62; --accent-ink:#fff; --warn:#a33b2b; --warn-bg:#fbeeeb; --ok-bg:#e9f4ef;
            --todo-bg:#fff6e0; --todo-line:#ecd9a6; }
    * { box-sizing: border-box; }
    body { margin:0; background:var(--bg); color:var(--ink);
           font:16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
    header { background:var(--accent); color:var(--accent-ink); padding:12px 16px; display:flex; gap:16px; align-items:center; }
    header a { color:inherit; text-decoration:none; font-weight:600; }
    header span { opacity:.8; margin-left:auto; font-size:14px; }
    main { max-width:820px; margin:0 auto; padding:16px; }
    h1 { font-size:24px; margin:8px 0 4px; }
    h2 { font-size:17px; margin:28px 0 8px; }
    .card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; margin:12px 0; }
    label { display:block; font-size:14px; color:var(--muted); margin:10px 0 4px; }
    input, select { width:100%; font:inherit; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); }
    input[type=checkbox] { width:auto; margin:0 6px 0 0; }
    .riga { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
    .riga3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 12px; }
    @media (max-width:560px) { .riga, .riga3 { grid-template-columns:1fr; } }
    button { font:inherit; padding:10px 16px; border:0; border-radius:8px; background:var(--accent); color:var(--accent-ink); cursor:pointer; margin-top:14px; }
    button.piccolo { padding:7px 12px; margin:0; font-size:14px; }
    button.secondario { background:transparent; color:var(--warn); border:1px solid var(--line); padding:6px 10px; margin:0; font-size:14px; }
    button.neutro { background:#fff; color:var(--ink); border:1px solid var(--line); }
    button:disabled { opacity:.5; cursor:default; }
    .lista { list-style:none; padding:0; margin:8px 0; }
    .lista li a { display:flex; justify-content:space-between; gap:12px; padding:12px; border-bottom:1px solid var(--line); color:inherit; text-decoration:none; background:var(--card); }
    .lista li:first-child a { border-radius:10px 10px 0 0; }
    .lista li:last-child a { border-radius:0 0 10px 10px; border-bottom:0; }
    .lista li a:hover { background:#f0efea; }
    .lista.todo li a { background:var(--todo-bg); border-color:var(--todo-line); }
    .muted { color:var(--muted); font-size:14px; }
    .tab { overflow-x:auto; }
    table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
    th, td { text-align:left; padding:10px; border-bottom:1px solid var(--line); font-size:15px; vertical-align:top; }
    th { font-size:13px; color:var(--muted); font-weight:600; background:#faf9f7; }
    tr:last-child td { border-bottom:0; }
    td.num, th.num { text-align:right; white-space:nowrap; }
    .todo-item { background:var(--todo-bg); border:1px solid var(--todo-line); border-radius:10px; padding:12px; margin:8px 0; }
    .todo-item .titolo { font-weight:600; }
    .azioni { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:10px; }
    .azioni input:not([type=checkbox]) { width:100px; padding:7px 8px; text-align:right; }
    .azioni select { width:auto; padding:7px 8px; }
    .azioni .lab { font-size:14px; color:var(--muted); }
    .azioni label.check { display:flex; align-items:center; margin:0; font-size:14px; color:var(--ink); }
    .vuoto { padding:12px; color:var(--muted); background:var(--card); border:1px dashed var(--line); border-radius:10px; }
    .esito-no { color:var(--muted); }
    .saldo { display:inline-block; margin-top:8px; padding:4px 10px; border-radius:999px; font-size:14px; font-weight:600; }
    .saldo.debito { background:var(--warn-bg); color:var(--warn); }
    .saldo.ok { background:var(--ok-bg); color:var(--accent); }
    .riepilogo { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:8px 0; }
    .riepilogo div { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px; }
    .riepilogo b { display:block; font-size:18px; }
    #msg { position:sticky; top:0; z-index:5; }
    .avviso { padding:10px 14px; border-radius:8px; margin:8px 0; }
    .avviso.err { background:var(--warn-bg); color:var(--warn); }
    .avviso.ok { background:var(--ok-bg); color:var(--accent); }
    .avviso ul { margin:4px 0 0; padding-left:20px; }
    details summary { cursor:pointer; color:var(--accent); font-weight:600; }
    .info { font-size:14px; color:var(--muted); margin-top:4px; min-height:1em; }
    a.tel { color:var(--accent); }
    .agenda-testa { display:flex; align-items:center; gap:8px; margin:8px 0; }
    .agenda-testa h1 { margin:0; flex:1; text-align:center; font-size:20px; }
    .agenda-testa button { margin:0; }
    .lista li a .ora { font-variant-numeric:tabular-nums; font-weight:600; margin-right:8px; }
    .badge { font-size:12px; font-weight:600; padding:2px 8px; border-radius:999px; white-space:nowrap; align-self:center; }
    .badge.Prenotato { background:#e7eef7; color:#2b4f7a; }
    .badge.Svolto { background:var(--ok-bg); color:var(--accent); }
    .badge.Non { background:#eeeeee; color:var(--muted); }
    .badge.segnare { background:var(--todo-bg); color:#8a6100; border:1px solid var(--todo-line); }
    .card.modifica { border:2px solid var(--accent); }
    .info a { color:var(--accent); }
    textarea { width:100%; font:inherit; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); resize:vertical; }
    .riservato { background:#f3eefb; border:1px solid #d9cdee; color:#4b3a6b; border-radius:10px; padding:10px 14px; font-size:14px; margin:12px 0; }
    .barra { display:inline-block; height:8px; border-radius:4px; background:var(--accent); vertical-align:middle; margin-right:6px; }
    .barra.b1 { background:#a33b2b; } .barra.b2 { background:#999; }
    a.indietro { color:var(--accent); text-decoration:none; font-weight:600; display:inline-block; margin:4px 0 8px; }
    .pre { white-space:pre-wrap; }
    /* Sezioni richiudibili: si vede solo il titolo, un clic apre e chiude */
    details.sezione { background:var(--card); border:1px solid var(--line); border-radius:10px; margin:10px 0; }
    details.sezione > summary { list-style:none; cursor:pointer; padding:14px 16px; font-size:17px; font-weight:600;
      color:var(--ink); display:flex; align-items:center; gap:10px; user-select:none; }
    details.sezione > summary::-webkit-details-marker { display:none; }
    details.sezione > summary::before { content:'▸'; color:var(--accent); font-size:14px; transition:transform .15s; }
    details.sezione[open] > summary::before { transform:rotate(90deg); }
    details.sezione[open] > summary { border-bottom:1px solid var(--line); }
    details.sezione > .corpo { padding:12px 16px 16px; }
    details.sezione .card.interna { background:#faf9f7; margin:0 0 12px; }
    details.sezione .todo-item:first-child { margin-top:0; }
    .conta { font-size:13px; font-weight:600; color:var(--muted); background:#f0efea; border-radius:999px; padding:2px 9px; }
    .conta:empty { display:none; }
    .conta.attenzione { background:var(--todo-bg); color:#8a6100; border:1px solid var(--todo-line); }
    .conta.debito { background:var(--warn-bg); color:var(--warn); }
    .sez-comandi { text-align:right; font-size:14px; color:var(--muted); margin:16px 0 4px; }
    button.link { background:none; border:0; padding:0; margin:0; color:var(--accent); font:inherit; font-size:14px; cursor:pointer; text-decoration:underline; }
  

/* ---------------- Web app: intestazione e menu ---------------- */
header { flex-wrap: wrap; row-gap: 6px; }
header .marchio { font-weight: 700; font-size: 17px; margin-right: auto; }
header .marchio span { opacity: 1; margin: 0; font-size: inherit; }
header nav { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; font-size: 15px; }
header nav a { font-weight: 500; opacity: .85; padding: 4px 0; border-bottom: 2px solid transparent; }
header nav a.attivo, header nav a:hover { opacity: 1; border-bottom-color: rgba(255,255,255,.8); }
button.link-chiaro { background: none; border: 1px solid rgba(255,255,255,.5); color: #fff; margin: 0; padding: 4px 10px; font-size: 14px; border-radius: 6px; }
a.bottone { display: inline-block; padding: 8px 14px; border-radius: 8px; text-decoration: none; font-size: 14px; }
a.bottone.neutro { background: #fff; color: var(--ink); border: 1px solid var(--line); }
label.check { display: flex; align-items: center; gap: 2px; color: var(--ink); margin: 12px 0 0; font-size: 15px; }
code.pw { font-size: 18px; background: #fff; padding: 2px 8px; border-radius: 6px; border: 1px solid var(--line); user-select: all; }

/* ---------------- Agenda: giorno / settimana ---------------- */
.ag-modo { display: flex; gap: 6px; margin: 8px 0 0; }
.ag-modo button { margin: 0; }
#ag-settimana .giorno { margin: 14px 0; }
#ag-settimana .giorno h3 { font-size: 15px; margin: 0 0 6px; display: flex; gap: 8px; align-items: baseline; text-transform: capitalize; }
#ag-settimana .giorno h3 .link { margin-left: auto; text-transform: none; }
#ag-settimana .giorno.oggi h3 { color: var(--accent); }
#ag-settimana .giorno .lista { margin: 0; }
.vuoto-giorno { padding: 4px 12px; }

/* ---------------- Report ---------------- */
#vista-report h2 { margin-top: 22px; }
.riepilogo { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.avviso.ok code { color: var(--ink); }

@media (max-width: 560px) {
  header nav { width: 100%; justify-content: space-between; }
}
