:root{
  /* scala dei testi del profilo (v447): 7 misure in tutto, per tutti i temi; il 13 solo per etichette e note */
  --t-cap:13px; --t-sm:15px; --t-md:16px; --t-ti:18px; --t-lg:20px; --t-xl:28px; --t-num:48px;

  --ground:#EEF1F6; --surface:#FFFFFF; --surface-2:#F6F8FB;
  --ink:#161D2B; --ink-2:#4A5468; --ink-3:#5E687C;
  --line:#D9DEE8; --accent:#3044D0; --accent-ink:#FFFFFF; --accent-soft:#E3E7FB;
  --stub:#F4C534; --stub-ink:#2A2206;
  --ok:#1E7A4F; --ok-soft:#DDF1E6; --warn:#A5561A; --warn-soft:#FBEBDD; --bad:#B42335; --bad-soft:#F9E0E3;
  /* categorie: colore pieno / sfondo tenue */
  --cat-incontro:#3044D0; --cat-incontro-soft:#E3E7FB;
  --cat-festa:#C0302B; --cat-festa-soft:#FBE3E1;
  --cat-cibo:#B9520A; --cat-cibo-soft:#FCEADB;
  --cat-vino:#8B1E3F; --cat-vino-soft:#F6DDE4;
  --cat-giochi:#8A6200; --cat-giochi-soft:#F7EDCF;
  --cat-cosplay:#BF1296; --cat-cosplay-soft:#FBE0F3;
  --cat-fiera:#5F6B00; --cat-fiera-soft:#EEF0CF;
  --cat-visita:#0E6A7A; --cat-visita-soft:#D5EEF2;
  --cat-esperienza:#3A2E99; --cat-esperienza-soft:#E3E1F7;
  --cat-immersiva:#5B1A5E; --cat-immersiva-soft:#F1E0F2;
  --cat-sport:#0B7A66; --cat-sport-soft:#D5F0EA;
  --cat-trekking:#3C7A1E; --cat-trekking-soft:#E1F0D6; --cat-viaggio:#C2410C; --cat-viaggio-soft:#FFEDD5;
  --cat-gita:#0870A8; --cat-gita-soft:#D9EEF9;
  --cat-cultura:#7A3CC2; --cat-cultura-soft:#EEE4FA;
  --cat-museo:#8A4B2A; --cat-museo-soft:#F5E6DC;
  --cat-musica:#B8286A; --cat-musica-soft:#FBE2EE;
  --cat-cinema:#34416A; --cat-cinema-soft:#E1E5EE;
  --cat-formazione:#9A2FA8; --cat-formazione-soft:#F5E1F7;
  --cat-tablo:#476A8A; --cat-tablo-soft:#DDE7F0; --cat-zonzers:#D42A47; --cat-zonzers-soft:#FBE0E5; --cat-floovibe:#0E7C86; --cat-floovibe-soft:#DCF1F2;
  --cat-altro:#6B6660; --cat-altro-soft:#ECEAE7;
  --cat-ink:#FFFFFF;
  --display:"Bricolage Grotesque", "Arial Narrow", system-ui, sans-serif;
  --body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --ground:#0F131B; --surface:#171D29; --surface-2:#1D2432;
    --ink:#E7EBF3; --ink-2:#AEB6C7; --ink-3:#8E98AC;
    --line:#2A3345; --accent:#8D9BFF; --accent-ink:#0F131B; --accent-soft:#252E52;
    --stub:#E5B72A; --stub-ink:#1F1A05;
    --ok:#6BD39E; --ok-soft:#173528; --warn:#F0A76A; --warn-soft:#3A2717; --bad-ink:#2A0710; --cmix:100%; --bad:#FF8A97; --bad-soft:#3D1C22;
    --cat-incontro:#8D9BFF; --cat-incontro-soft:#252E52;
    --cat-festa:#FF8A80; --cat-festa-soft:#43201D;
    --cat-cibo:#FFA466; --cat-cibo-soft:#3F2715;
    --cat-vino:#F28BA8; --cat-vino-soft:#43192A;
    --cat-giochi:#F2C04D; --cat-giochi-soft:#3A2E0E;
    --cat-cosplay:#FF7AD9; --cat-cosplay-soft:#461838;
    --cat-fiera:#C9D65A; --cat-fiera-soft:#2F3310;
    --cat-visita:#56CDE0; --cat-visita-soft:#0F343B;
    --cat-esperienza:#A9A2FF; --cat-esperienza-soft:#25224A;
    --cat-immersiva:#E09BE5; --cat-immersiva-soft:#3A1840;
    --cat-sport:#4CD3B9; --cat-sport-soft:#123A33;
    --cat-trekking:#8FD66A; --cat-trekking-soft:#1F3514; --cat-viaggio:#FDBA74; --cat-viaggio-soft:#3A2414;
    --cat-gita:#5CC3F5; --cat-gita-soft:#10324A;
    --cat-cultura:#C29EFF; --cat-cultura-soft:#33254E;
    --cat-museo:#E0A27F; --cat-museo-soft:#3A251A;
    --cat-musica:#FF8CBD; --cat-musica-soft:#45192D;
    --cat-cinema:#B7C3DE; --cat-cinema-soft:#262D3D;
    --cat-formazione:#E48AF0; --cat-formazione-soft:#3D1B42;
    --cat-tablo:#9BB8D6; --cat-tablo-soft:#1E2A36; --cat-zonzers:#FF7A8E; --cat-zonzers-soft:#3F1B23; --cat-floovibe:#5CD4DD; --cat-floovibe-soft:#0F3438;
    --cat-altro:#B5AFA8; --cat-altro-soft:#2E2C29;
    --cat-ink:#0F131B;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#0F131B; --surface:#171D29; --surface-2:#1D2432;
  --ink:#E7EBF3; --ink-2:#AEB6C7; --ink-3:#8E98AC;
  --line:#2A3345; --accent:#8D9BFF; --accent-ink:#0F131B; --accent-soft:#252E52;
  --stub:#E5B72A; --stub-ink:#1F1A05;
  --ok:#6BD39E; --ok-soft:#173528; --warn:#F0A76A; --warn-soft:#3A2717; --bad-ink:#2A0710; --cmix:100%; --bad:#FF8A97; --bad-soft:#3D1C22;
  --cat-incontro:#8D9BFF; --cat-incontro-soft:#252E52;
  --cat-festa:#FF8A80; --cat-festa-soft:#43201D;
  --cat-cibo:#FFA466; --cat-cibo-soft:#3F2715;
  --cat-vino:#F28BA8; --cat-vino-soft:#43192A;
  --cat-giochi:#F2C04D; --cat-giochi-soft:#3A2E0E;
  --cat-cosplay:#FF7AD9; --cat-cosplay-soft:#461838;
  --cat-fiera:#C9D65A; --cat-fiera-soft:#2F3310;
  --cat-visita:#56CDE0; --cat-visita-soft:#0F343B;
  --cat-esperienza:#A9A2FF; --cat-esperienza-soft:#25224A;
  --cat-immersiva:#E09BE5; --cat-immersiva-soft:#3A1840;
  --cat-sport:#4CD3B9; --cat-sport-soft:#123A33;
  --cat-trekking:#8FD66A; --cat-trekking-soft:#1F3514; --cat-viaggio:#FDBA74; --cat-viaggio-soft:#3A2414;
  --cat-gita:#5CC3F5; --cat-gita-soft:#10324A;
  --cat-cultura:#C29EFF; --cat-cultura-soft:#33254E;
  --cat-museo:#E0A27F; --cat-museo-soft:#3A251A;
  --cat-musica:#FF8CBD; --cat-musica-soft:#45192D;
  --cat-cinema:#B7C3DE; --cat-cinema-soft:#262D3D;
  --cat-formazione:#E48AF0; --cat-formazione-soft:#3D1B42;
  --cat-tablo:#9BB8D6; --cat-tablo-soft:#1E2A36; --cat-zonzers:#FF7A8E; --cat-zonzers-soft:#3F1B23; --cat-floovibe:#5CD4DD; --cat-floovibe-soft:#0F3438;
  --cat-altro:#B5AFA8; --cat-altro-soft:#2E2C29;
  --cat-ink:#0F131B;
}
*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5}
.wrap{max-width:860px;margin:0 auto;padding-inline:16px;padding-block:28px 64px;display:flex;flex-direction:column;gap:20px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.brand h1{font-family:var(--display);font-weight:800;font-size:clamp(30px,6vw,44px);line-height:1;letter-spacing:-.02em;margin:0;text-wrap:balance}
.brand p{margin:6px 0 0;color:var(--ink-2);max-width:52ch}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.joined{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.btn.danger{color:var(--bad)}
.btn.danger.armed{background:var(--bad);border-color:var(--bad);color:var(--bad-ink,#fff)}
.btn:disabled{opacity:.55;cursor:not-allowed;filter:none}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2);padding-inline:8px}
.btn.ghost:hover{color:var(--ink)}

.notice{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:10px 14px;color:var(--ink-2)}
.notice.bad{background:var(--bad-soft);border-color:transparent;color:var(--bad)}

/* proposal form */
.propose{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px}
.propose h2{font-family:var(--display);font-weight:600;font-size:22px;margin:0}
.grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.field{display:flex;flex-direction:column;gap:5px;grid-column:span 6;min-width:0}
.field.s3{grid-column:span 3}
@media (max-width:560px){.field.s3{grid-column:span 6}}
.field > label,.field .lbl{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.field small{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-3)}
.field input,.field select,.field textarea{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;width:100%;min-width:0}
.field textarea{min-height:88px;resize:vertical}
.days{display:flex;flex-direction:column;gap:8px}
.day-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 36px;gap:8px;align-items:end}
.day-row .sub{display:flex;flex-direction:column;gap:3px;min-width:0}
.day-row .sub span{font-size:12px;color:var(--ink-3)}
.day-row .rm{height:40px;padding:0;border-color:transparent;background:transparent;color:var(--ink-3);font-size:18px}
.day-row .rm:hover{color:var(--bad)}
/* calendario di flatpickr (date e orari del modulo) con i colori del sito, anche nel tema scuro */
.flatpickr-calendar{background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.18);font-family:var(--body)}
.flatpickr-calendar:before,.flatpickr-calendar:after{display:none}
.flatpickr-months .flatpickr-month,.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year,
span.flatpickr-weekday,.flatpickr-day,.flatpickr-time input,.flatpickr-time .flatpickr-time-separator{color:var(--ink);fill:var(--ink)}
.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{color:var(--ink);fill:var(--ink)}
.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:var(--accent)}
.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-monthDropdown-month{background:var(--surface)}
.flatpickr-day:hover,.flatpickr-day:focus,.flatpickr-time input:hover,.flatpickr-time input:focus{background:var(--surface-2);border-color:var(--surface-2)}
.flatpickr-day.today{border-color:var(--accent)}
.flatpickr-day.selected,.flatpickr-day.selected:hover,.flatpickr-day.selected:focus{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:var(--ink-3)}
.flatpickr-day.flatpickr-disabled{opacity:.5}
.flatpickr-calendar.hasTime .flatpickr-time{border-top-color:var(--line)}
.flatpickr-time input{background:transparent}
@media (max-width:480px){
  .day-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;padding-bottom:8px;border-bottom:1px dashed var(--line)}
  .day-row .sub.date{grid-column:1 / -1}
}
.add-day{align-self:flex-start}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.form-msg{color:var(--bad);font-size:14px}

/* tabs */
.tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);padding-bottom:10px}
.tab{border:0;background:transparent;border-radius:999px;padding:6px 12px;color:var(--ink-2);font-weight:500}
.tab[aria-selected="true"]{background:var(--ink);color:var(--ground)}
.tab .n{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:12px;margin-left:4px;opacity:.7}

/* event ticket */
.list{display:flex;flex-direction:column;gap:14px}
.ticket{display:grid;grid-template-columns:92px 1fr;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}
.stub{background:var(--stub);color:var(--stub-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 6px;position:relative;text-align:center;font-family:var(--mono)}
.ticket .stub::after{content:"";position:absolute;right:-1px;top:8px;bottom:8px;border-right:2px dashed var(--surface)}
.stub .wd{font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.stub .d{font-family:var(--display);font-weight:800;font-size:38px;line-height:1;font-variant-numeric:tabular-nums}
.stub .m{font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.stub .t{font-size:12px;margin-top:6px;padding-top:6px;border-top:1px solid color-mix(in srgb,var(--stub-ink) 25%,transparent)}
.ticket.past .stub{background:var(--surface-2);color:var(--ink-3)}
.body{padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--ink-2)}
.chip{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.chip.example{background:var(--warn-soft);color:var(--warn)}
.chip.full{background:var(--bad-soft);color:var(--bad)}
.chip.mine,.chip.live{background:var(--ok-soft);color:var(--ok)}
.body h3{font-family:var(--display);font-weight:600;font-size:21px;line-height:1.2;margin:0;text-wrap:balance;overflow-wrap:anywhere}
.body h3 a{color:inherit;text-decoration:none}
.ticket:hover h3 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.when{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;color:var(--ink-2)}
.desc{margin:0;color:var(--ink-2);max-width:65ch;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.where{overflow-wrap:anywhere}
.foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid var(--line)}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.avatars{display:flex}
.avatars img{width:26px;height:26px;border-radius:50%;border:2px solid var(--surface);margin-left:-8px;background:var(--surface-2)}
.avatars img:first-child{margin-left:0}
.count{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-2)}
.bar{height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;width:90px}
.bar i{display:block;height:100%;background:var(--accent)}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.empty{padding:40px 16px;text-align:center;color:var(--ink-2);border:1px dashed var(--line);border-radius:12px}
.empty strong{display:block;font-family:var(--display);font-size:20px;color:var(--ink);margin-bottom:4px}
.empty-act{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}

/* detail page */
.detail{display:flex;flex-direction:column;gap:14px}
.back{align-self:flex-start}
.sheet{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.sheet-head{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--line)}
.sheet-head .stub{padding:20px 8px}
.sheet-head .stub .d{font-size:52px}
.sheet-title{padding:22px 24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.sheet-title h2{font-family:var(--display);font-weight:800;font-size:clamp(26px,5vw,36px);line-height:1.1;letter-spacing:-.01em;margin:0;text-wrap:balance;overflow-wrap:anywhere}
.sheet-title .range{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:15px;font-weight:500;color:var(--ink-2)}
.sheet-body{display:grid;grid-template-columns:minmax(0,1fr) 260px}
.sheet-main{padding:22px 24px;display:flex;flex-direction:column;gap:24px;min-width:0}
.sheet-side{padding:22px 20px;border-left:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:20px}
.sec h4{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.sec p{margin:0;max-width:65ch;white-space:pre-wrap;overflow-wrap:anywhere}
.sec .muted{color:var(--ink-3)}
.sched{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.sched li{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
.sched li:first-child{border-top:0}
.sched .n{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-3)}
.sched .dt{font-weight:600;text-transform:capitalize}
.sched .hr{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-2);text-align:right}
.sched li.gone{color:var(--ink-3)}
.sched li.gone .dt{font-weight:500}
.sched li.now{background:var(--ok-soft)}
.people{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.people li{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}
.people img{width:26px;height:26px;border-radius:50%;flex:none}
.people .you{font-size:12px;color:var(--ink-3)}
.seats{display:flex;flex-direction:column;gap:6px}
.seats .big{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.seats .bar{width:100%;height:6px;background:var(--surface)}
.side-actions{display:flex;flex-direction:column;gap:8px}
.side-actions .btn{width:100%}
.copyfield{width:100%;font-family:var(--mono);font-size:12px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.organizer{display:flex;align-items:center;gap:8px}
.organizer img{width:26px;height:26px;border-radius:50%}
@media (max-width:640px){
  .sheet-body{grid-template-columns:1fr}
  .sheet-side{border-left:0;border-top:1px solid var(--line)}
  .sheet-head{grid-template-columns:88px 1fr}
  .sheet-head .stub .d{font-size:38px}
  .sheet-title,.sheet-main{padding:18px 16px}
  .sheet-side{padding:18px 16px}
}
@media (max-width:480px){
  .ticket{grid-template-columns:70px 1fr}
  .stub .d{font-size:30px}
  .body{padding:14px}
}
@media (prefers-reduced-motion:no-preference){
  .ticket{transition:border-color .15s}
  .ticket:hover{border-color:var(--ink-3)}
}

/* ---- base (fuori da claude.ai non c'è il reset dell'Artifact) ---- */
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh}
img{max-width:100%}
[hidden]{display:none!important}

/* ---- intestazione con utente ---- */
.top-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.me{display:flex;align-items:center;gap:8px;padding-left:4px;min-width:0;position:relative}
.me img{width:30px;height:30px;border-radius:50%;background:var(--surface-2)}
.badge{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:var(--bad-ink,#fff);display:inline-flex;align-items:center;justify-content:center}

/* ---- schermate di accesso ---- */
.gate{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:36px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.gate h2{font-family:var(--display);font-weight:800;font-size:clamp(24px,5vw,32px);line-height:1.1;margin:0;text-wrap:balance}
.gate p{margin:0;color:var(--ink-2);max-width:46ch}
.gate .ticket-art{display:flex;gap:6px;margin-bottom:6px}
.gate .ticket-art span{width:44px;height:56px;border-radius:6px;background:var(--stub);color:var(--stub-ink);font-family:var(--display);font-weight:800;font-size:22px;display:flex;align-items:center;justify-content:center}
.gate .ticket-art span:nth-child(2){background:var(--accent);color:var(--accent-ink)}
.gate code{font-family:var(--mono);font-size:13px;background:var(--surface-2);padding:1px 6px;border-radius:4px}
.btn.google{background:var(--surface);border-color:var(--line);padding:10px 18px;font-size:15px;gap:10px}
.btn.google svg{width:18px;height:18px}

/* ---- gestione persone ---- */
.people-admin{display:flex;flex-direction:column;gap:18px}
.people-admin h2{font-family:var(--display);font-weight:800;font-size:clamp(24px,5vw,32px);margin:0}

/* ---- barra della modalità prova (js/demo.js) ---- */
.demo-bar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;
  padding:8px 16px calc(8px + env(safe-area-inset-bottom, 0px));background:var(--ink);color:var(--ground);font-size:13px}
.demo-bar strong{color:var(--stub)}
.demo-bar select{background:var(--surface);color:var(--ink);border:0;border-radius:6px;padding:4px 8px}
.demo-bar .btn.ghost{color:var(--ground);padding:4px 8px}
body:has(.demo-bar){padding-bottom:64px}

/* ---- scelta vista lista / calendario ---- */
.tabs{align-items:center}
.viewswitch{margin-left:auto;display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.viewswitch button{border:0;background:transparent;padding:6px 12px;font-weight:500;color:var(--ink-2)}
.viewswitch button + button{border-left:1px solid var(--line)}
.viewswitch button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}

/* ---- calendario ---- */
.cal-wrap{display:flex;flex-direction:column;gap:16px}
.cal{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cal-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px}
.cal-head h2{font-family:var(--display);font-weight:800;font-size:24px;margin:0}
.cal-head h2::first-letter{text-transform:uppercase}
.cal-nav{display:flex;align-items:center;gap:4px}
.cal-nav .btn.ghost{font-size:20px;line-height:1;padding:6px 12px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-wd{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:6px 8px;border-top:1px solid var(--line)}
.cal-cell{min-height:108px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer;background:var(--surface)}
.cal-cell:nth-child(7n+1){border-left:0}
.cal-cell:hover{background:var(--surface-2)}
.cal-cell.out{background:var(--surface-2);color:var(--ink-3)}
.cal-cell.gone .num{color:var(--ink-3)}
.cal-cell.sel{box-shadow:inset 0 0 0 2px var(--accent)}
.cal-cell .num{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:12px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex:none}
.cal-cell.today .num{background:var(--accent);color:var(--accent-ink)}
.cal-ev{display:block;width:100%;text-align:left;border:0;border-radius:4px;padding:2px 6px;font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.cal-ev b{font-family:var(--body);font-variant-numeric:tabular-nums;font-weight:500;font-size:11px}
.cal-ev small{opacity:.75}
.cal-ev.mine{background:var(--ok-soft);color:var(--ok)}
.cal-cell.gone .cal-ev{opacity:.6}
.cal-ev:hover{filter:brightness(.95)}
.cal-more{font-size:11px;color:var(--ink-3);padding-left:6px}
.cal-cell .dots{display:none}
.cal-legend{display:flex;flex-wrap:wrap;gap:16px;padding:10px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.cal-legend span{display:inline-flex;align-items:center;gap:6px}
.cal-legend .sw{width:12px;height:12px;border-radius:3px;background:var(--accent-soft);border:1px solid var(--accent)}
.cal-legend .sw.mine{background:var(--ok-soft);border-color:var(--ok)}

.dayagenda{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.dayagenda h3{font-family:var(--display);font-weight:600;font-size:20px;margin:0}
.dayagenda .muted{margin:0;color:var(--ink-3)}
.dayagenda ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dayagenda .btn{align-self:flex-start}
.agenda-row{width:100%;display:grid;grid-template-columns:120px minmax(0,1fr);gap:2px 14px;text-align:left;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;background:var(--surface);padding:10px 12px}
.agenda-row.mine{border-left-color:var(--ok)}
.agenda-row:hover{background:var(--surface-2)}
.agenda-row .hr{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-2);grid-row:span 2}
.agenda-row .tt{font-weight:600;overflow-wrap:anywhere}
.agenda-row .tt small{font-weight:400;color:var(--ink-3)}
.agenda-row .pl{font-size:13px;color:var(--ink-3);overflow-wrap:anywhere}

@media (max-width:640px){
  .cal-cell{min-height:54px;padding:4px;align-items:center}
  .cal-ev,.cal-more{display:none}
  .cal-cell .dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}
  .cal-cell .dots i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
  .cal-cell .dots i.mine{background:var(--ok)}
  .cal-wd{padding:6px 2px;text-align:center}
  .agenda-row{grid-template-columns:1fr}
  .agenda-row .hr{grid-row:auto}
  .viewswitch{margin-left:0}
}

/* ---- categorie ---- */
.cat-incontro{--c:var(--cat-incontro);--cs:var(--cat-incontro-soft)}
.cat-festa{--c:var(--cat-festa);--cs:var(--cat-festa-soft)}
.cat-cibo{--c:var(--cat-cibo);--cs:var(--cat-cibo-soft)}
.cat-vino{--c:var(--cat-vino);--cs:var(--cat-vino-soft)}
.cat-giochi{--c:var(--cat-giochi);--cs:var(--cat-giochi-soft)}
.cat-cosplay{--c:var(--cat-cosplay);--cs:var(--cat-cosplay-soft)}
.cat-fiera{--c:var(--cat-fiera);--cs:var(--cat-fiera-soft)}
.cat-visita{--c:var(--cat-visita);--cs:var(--cat-visita-soft)}
.cat-esperienza{--c:var(--cat-esperienza);--cs:var(--cat-esperienza-soft)}
.cat-immersiva{--c:var(--cat-immersiva);--cs:var(--cat-immersiva-soft)}
.cat-sport{--c:var(--cat-sport);--cs:var(--cat-sport-soft)}
.cat-trekking{--c:var(--cat-trekking);--cs:var(--cat-trekking-soft)}
.cat-viaggio{--c:var(--cat-viaggio);--cs:var(--cat-viaggio-soft)}
.cat-gita{--c:var(--cat-gita);--cs:var(--cat-gita-soft)}
.cat-cultura{--c:var(--cat-cultura);--cs:var(--cat-cultura-soft)}
.cat-museo{--c:var(--cat-museo);--cs:var(--cat-museo-soft)}
.cat-musica{--c:var(--cat-musica);--cs:var(--cat-musica-soft)}
.cat-cinema{--c:var(--cat-cinema);--cs:var(--cat-cinema-soft)}
.cat-formazione{--c:var(--cat-formazione);--cs:var(--cat-formazione-soft)}
.cat-tablo{--c:var(--cat-tablo);--cs:var(--cat-tablo-soft)}
.cat-zonzers{--c:var(--cat-zonzers);--cs:var(--cat-zonzers-soft)}
.cat-floovibe{--c:var(--cat-floovibe);--cs:var(--cat-floovibe-soft)}
.cat-altro{--c:var(--cat-altro);--cs:var(--cat-altro-soft)}
.chip.cat{background:var(--cs);color:var(--c)}
.cal-ev{background:var(--cs,var(--accent-soft));color:var(--c,var(--accent))}
.cal-ev.mine{background:var(--c,var(--ok));color:var(--cat-ink)}
.agenda-row{border-left-color:var(--c,var(--accent))}
.agenda-row.mine{border-left-color:var(--c,var(--ok));background:var(--cs)}
.cal-legend .sw{background:var(--cs);border-color:var(--c)}
.cal-legend .sw.mine{background:var(--c);border-color:var(--c)}
.cal-legend .lg-mine{margin-left:auto}

.filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-top:-8px}
.catfilter{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.flabel{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-right:2px}
.fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:4px 11px;font-size:13px;font-weight:500}
.fchip i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.fchip:hover{border-color:var(--ink-3)}
.fchip[aria-pressed="true"]{background:var(--cs);border-color:var(--c);color:var(--c);font-weight:600}
.fchip.all[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.sortby{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.sortby select{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 8px}

.group-h{display:flex;align-items:center;gap:8px;margin:8px 0 -4px;font-family:var(--display);font-weight:600;font-size:18px;color:var(--c)}
.group-h i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.group-h .n{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-3);font-weight:500}
.list > .group-h:first-child{margin-top:0}

@media (max-width:640px){
  .cal-cell .dots i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--c,var(--accent))}
  .cal-cell .dots i.mine{background:var(--c,var(--ok));box-shadow:none}
  .cal-legend .lg-mine{margin-left:0}
}

/* "Iscritto" neutro, per non confondersi con i colori delle categorie */
.chip.mine{background:var(--ink);color:var(--ground)}

/* ---- login con email e password (database locale) ---- */
.login-form{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;align-items:center;width:100%;max-width:360px;text-align:left}
.login-form label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.login-form input{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-width:0}
.login-form .btn{grid-column:1 / -1}
.quick-login{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.quick-login small{color:var(--ink-3);font-weight:400}

.sheet-title .edited{font-size:12px;color:var(--ink-3)}

/* ---- sezioni Eventi / Idee ---- */
.sections{display:flex;gap:4px;border-bottom:2px solid var(--line)}
.sections button{border:0;background:transparent;padding:10px 16px 12px;margin-bottom:-2px;border-bottom:3px solid transparent;
  font-family:var(--display);font-weight:600;font-size:20px;color:var(--ink-2);display:inline-flex;align-items:baseline;gap:8px}
.sections button:hover{color:var(--ink)}
.sections button[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.sections .n{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;color:var(--ink-2)}
.form-hint{margin:-8px 0 0;color:var(--ink-2);max-width:65ch}

/* ---- idee ---- */
.ideas-intro{margin:0;color:var(--ink-2);max-width:70ch}
.cin-intro{overflow-wrap:anywhere;white-space:normal}
.cin-intro strong{color:var(--ink)}
.cin-intro ul{list-style:none;margin:6px 0;padding:0}
.cin-intro li::before{content:'✔';color:var(--c,var(--ink-2));margin-right:8px}
.cin-intro p{margin:0}
.cin-intro dl{margin:8px 0 0;display:grid;gap:3px}
.cin-intro dl div{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.cin-intro dt{font-weight:700;color:var(--ink);min-width:6.5em}
.cin-intro dd{margin:0}
.idea{display:grid;grid-template-columns:96px minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.idea-votes{display:flex;align-items:flex-start;justify-content:center;padding:16px 8px;background:var(--cs);border-right:1px solid var(--line)}
.vote{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;border:1px solid var(--c);background:var(--surface);color:var(--c);border-radius:10px;padding:10px 4px}
.vote .vn{font-family:var(--display);font-weight:800;font-size:26px;line-height:1;font-variant-numeric:tabular-nums}
.vote .vl{font-size:11px;font-weight:600;line-height:1.2;text-align:center}
.vote:hover{filter:brightness(.97)}
.vote.on{background:var(--c);color:var(--cat-ink)}
.vote:disabled{opacity:.6}
.idea-body{padding:16px 18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.idea-body h3{font-family:var(--display);font-weight:600;font-size:21px;line-height:1.2;margin:0;text-wrap:balance;overflow-wrap:anywhere}
.idea-desc{margin:0;color:var(--ink-2);max-width:65ch;white-space:pre-wrap;overflow-wrap:anywhere}
.idea-desc.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.btn.more{align-self:flex-start;padding:0;font-size:13px;color:var(--accent-text,var(--accent))}
.idea-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--line)}
.idea-foot .by{font-size:13px;color:var(--ink-2)}
.film-lista.cards .film .idea-foot .by{color:rgba(255,255,255,.82)}   /* le schede dei film sono sempre scure: con il colore del tema (chiaro) il testo non si leggeva (axe, 1,06:1) */
.chip.done{background:var(--ok-soft);color:var(--ok)}
.from-idea{font-size:13px;color:var(--ink-2)}
.from-idea a{color:var(--accent-text,var(--accent))}
@media (max-width:560px){
  .idea{grid-template-columns:1fr}
  .idea-votes{border-right:0;border-bottom:1px solid var(--line);padding:10px 14px;justify-content:flex-start}
  .vote{flex-direction:row;width:auto;padding:6px 12px;gap:8px}
  .vote .vn{font-size:18px}
  .sections button{font-size:18px;padding-inline:12px}
}

/* ---- stato degli eventi rispetto a oggi ---- */
.chip.ended{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line)}
.chip.today{background:var(--stub);color:var(--stub-ink)}
.ticket.past .body h3,.ticket.past .when{color:var(--ink-3)}
.ticket.past .chip.cat{filter:saturate(.4)}
.ended-note{font-size:13px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:6px 10px;align-self:flex-start}
.sheet.past .stub{background:var(--surface-2);color:var(--ink-3)}

/* ---- dettaglio idea ---- */
.idea{cursor:pointer}
.idea:hover{border-color:var(--ink-3)}
.idea-body h3 a{color:inherit;text-decoration:none}
.idea:hover .idea-body h3 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.idea-sheet .sheet-head{grid-template-columns:120px 1fr}
.idea-sheet .idea-votes{align-items:center;border-right:1px solid var(--line)}
.vote-count{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--c)}
.vote-count .vn{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;font-variant-numeric:tabular-nums}
.vote-count .vl{font-size:12px;font-weight:600}
.idea-events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sec .small{font-size:13px;margin-top:4px}
@media (max-width:640px){
  .idea-sheet .sheet-head{grid-template-columns:88px 1fr}
  .idea-sheet .idea-votes{border-bottom:0;padding:12px 6px;justify-content:center}
  .vote-count .vn{font-size:32px}
}

/* ---- riepilogo da esportare ---- */
.export-btn{margin-left:8px}
.export{display:flex;flex-direction:column;gap:14px}
.export h2{font-family:var(--display);font-weight:800;font-size:clamp(24px,5vw,32px);margin:0}
.export .intro,.exp-hint{margin:0;color:var(--ink-2);max-width:65ch}
.exp-hint{font-size:13px;color:var(--ink-3)}
.exp-options{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.exp-options label{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2)}
.exp-options select{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.exp-options input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}
.exp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.poster-scroll{overflow-x:auto;padding-bottom:4px}

/* il riepilogo ha sempre colori chiari, qualunque sia il tema, perché si stampa e si condivide */
.poster{
  --cat-incontro:#3044D0; --cat-incontro-soft:#E3E7FB; --cat-festa:#C0302B; --cat-festa-soft:#FBE3E1;
  --cat-cibo:#B9520A; --cat-cibo-soft:#FCEADB; --cat-vino:#8B1E3F; --cat-vino-soft:#F6DDE4; --cat-giochi:#8A6200; --cat-giochi-soft:#F7EDCF;
  --cat-cosplay:#BF1296; --cat-cosplay-soft:#FBE0F3; --cat-fiera:#5F6B00; --cat-fiera-soft:#EEF0CF; --cat-visita:#0E6A7A; --cat-visita-soft:#D5EEF2; --cat-esperienza:#3A2E99; --cat-esperienza-soft:#E3E1F7; --cat-immersiva:#5B1A5E; --cat-immersiva-soft:#F1E0F2; --cat-sport:#0B7A66; --cat-sport-soft:#D5F0EA;
  --cat-trekking:#3C7A1E; --cat-trekking-soft:#E1F0D6; --cat-viaggio:#C2410C; --cat-viaggio-soft:#FFEDD5; --cat-gita:#0870A8; --cat-gita-soft:#D9EEF9;
  --cat-cultura:#7A3CC2; --cat-cultura-soft:#EEE4FA; --cat-museo:#8A4B2A; --cat-museo-soft:#F5E6DC;
  --cat-musica:#B8286A; --cat-musica-soft:#FBE2EE; --cat-cinema:#34416A; --cat-cinema-soft:#E1E5EE;
  --cat-formazione:#9A2FA8; --cat-formazione-soft:#F5E1F7; --cat-tablo:#476A8A; --cat-tablo-soft:#DDE7F0; --cat-zonzers:#D42A47; --cat-zonzers-soft:#FBE0E5; --cat-floovibe:#0E7C86; --cat-floovibe-soft:#DCF1F2; --cat-altro:#6B6660; --cat-altro-soft:#ECEAE7;
  width:800px;background:#FFFFFF;color:#161D2B;border:1px solid #D9DEE8;border-radius:12px;overflow:hidden;font-family:var(--body);
}
.p-head{display:flex;align-items:center;gap:18px;padding:26px 30px;background:#161D2B;color:#FFFFFF}
.p-logo{display:flex;gap:4px}
.p-logo span{width:34px;height:44px;border-radius:5px;background:#F4C534;color:#2A2206;font-family:var(--display);font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center}
.p-logo span:nth-child(2){background:#3044D0;color:#FFFFFF}
.p-name{font-family:var(--display);font-weight:800;font-size:36px;line-height:1;letter-spacing:-.02em}
.p-sub{margin-top:6px;font-size:15px;color:#C9D0DE}
.p-list{padding:8px 30px 18px}
.p-month{font-family:var(--display);font-weight:600;font-size:18px;margin:16px 0 6px;color:#4A5468;border-bottom:1px solid #D9DEE8;padding-bottom:6px}
.p-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:start;padding:10px 0;border-bottom:1px solid #EEF1F6;break-inside:avoid}
.p-row:last-child{border-bottom:0}
.p-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#F4C534;color:#2A2206;border-radius:8px;padding:6px 0;font-family:var(--mono)}
.p-date .wd,.p-date .m{font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.p-date .d{font-family:var(--display);font-weight:800;font-size:24px;line-height:1.05}
.p-title{font-family:var(--display);font-weight:600;font-size:18px;line-height:1.25}
.p-when{font-size:13px;color:#4A5468;margin-top:2px}
.p-desc{font-size:13px;color:#4A5468;margin-top:4px;white-space:pre-wrap}
.p-side{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right;padding-top:2px}
.p-cat{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--cs);color:var(--c)}
.p-seats{font-family:var(--body);font-variant-numeric:tabular-nums;font-size:11px;color:#7B8599;white-space:nowrap}
.p-seats.full{color:#B42335}
.p-empty{padding:30px;color:#4A5468;margin:0}
.p-foot{padding:12px 30px;background:#F6F8FB;border-top:1px solid #D9DEE8;font-size:12px;color:#7B8599}

@media print{
  @page{size:A4;margin:12mm}
  html,body{background:#FFFFFF!important}
  body{padding:0!important}
  .wrap{padding:0!important;max-width:none}
  .wrap > *:not(#list),#list > .export > *:not(.poster-scroll),.demo-bar{display:none!important}
  .poster-scroll{overflow:visible}
  #poster{width:100%;border:0;border-radius:0}
  .p-head,.p-date,.p-cat,.p-foot{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .p-list{padding-bottom:6px}
  .p-foot{break-before:avoid;padding-block:8px}
}

/* ---- link web ---- */
.ext{color:var(--accent-text,var(--accent));text-decoration:none;font-weight:500;overflow-wrap:anywhere}
.ext:hover{text-decoration:underline}
.meta .ext{font-size:13px}
.ext.long{font-weight:400}
.p-link{font-size:12px;color:#3044D0;margin-top:2px;overflow-wrap:anywhere}
.p-row.has-thumb{grid-template-columns:58px 132px minmax(0,1fr) auto}
.p-thumb{width:132px;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:#161D2B;display:block}
.p-thumb.vuota{display:flex;align-items:center;justify-content:center;font-size:26px;background:linear-gradient(135deg,#232C45,#161D2B);opacity:.9}
.p-links{font-size:12.5px;margin-top:3px;display:flex;flex-wrap:wrap;gap:2px 8px}
.p-links a{color:#3044D0;font-weight:600;text-decoration:none}
.p-links .sep{color:#B5BDCC}

/* ---- informazioni in evidenza: Dove, Link, Descrizione ---- */
.ico{display:inline-flex;align-items:center;justify-content:center;flex:none}
.ico svg{width:100%;height:100%}
.sec-h{display:flex;align-items:center;gap:8px}
.sheet-main .sec h4.sec-h{font-size:13px;color:var(--ink-2);letter-spacing:.07em;margin-bottom:10px}
.sec-h .ico{width:18px;height:18px;color:var(--c,var(--accent))}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.fact{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);min-width:0}
.fact > .ico{width:38px;height:38px;padding:8px;border-radius:9px;background:var(--cs,var(--accent-soft));color:var(--c,var(--accent))}
.fact > div{min-width:0}
.fact .lbl{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.fact .val{font-size:16px;font-weight:600;color:var(--ink);margin-top:2px;overflow-wrap:anywhere}
.fact .val.muted{font-weight:400;color:var(--ink-3)}
.fact .val .ext{font-weight:600}
.fact .sub{font-size:13px;margin-top:4px}
.fact .sub.url{color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.descbox{border-left:4px solid var(--c,var(--accent));background:var(--surface-2);border-radius:0 10px 10px 0;padding:14px 18px;
  font-size:16px;line-height:1.65;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;max-width:70ch}
.factline{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px;color:var(--ink-2)}
.factline > span{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}
.factline .ico{width:16px;height:16px;color:var(--ink-3)}
.factline .ext{font-size:14px}

/* riepilogo idee */
.p-date.nodate{background:#EEF1F6;color:#7B8599}
.p-seats.done{color:#1E7A4F}
.filters .export-btn{margin-left:0}
/* «Esporta riepilogo» nella riga delle schede (A-122, passo 2): azione secondaria, discreta, in tutti i temi (la specificità batte i temi) */
#tabs button.btn.export-btn{background:transparent;box-shadow:none;border-color:transparent;color:var(--ink-2);font-size:14px;font-weight:500;padding:6px 12px;min-height:36px;text-decoration:underline;text-underline-offset:3px}
#tabs button.btn.export-btn:hover{color:var(--ink);background:transparent;box-shadow:none}
/* «Esporta riepilogo» dei Concerti: come negli Eventi (un link discreto, non un pulsante bordato) */
.con-uni button.btn.export-btn{background:transparent;box-shadow:none;border-color:transparent;color:var(--ink-2);font-size:14px;font-weight:500;padding:6px 12px;min-height:36px;text-decoration:underline;text-underline-offset:3px}
.con-uni button.btn.export-btn:hover{color:var(--ink);background:transparent;box-shadow:none}
@media (max-width:640px){.con-uni button.btn.export-btn{min-height:44px}}
@media (max-width:640px){#tabs button.btn.export-btn{min-height:44px}}
/* home Eventi (A-119): «porte d'ingresso» tra le pillole */
.v-pills .v-porta{font-weight:700}
/* proposte da scegliere per un'idea (A-69) */
.opt-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.opt-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.opt-row.top{border-color:var(--accent,var(--ink))}
.opt-t{flex:1 1 200px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.opt-add{display:flex;gap:8px;margin-top:10px}.opt-add input{flex:1;min-width:0}
/* profilo di chi organizza (A-87) */
.org-id{display:flex;align-items:center;gap:12px}
.org-id img{width:44px;height:44px;border-radius:50%}
.organizer.org-link{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left}
.organizer.org-link:hover{text-decoration:underline}
/* Concerti (Vetrina): menu «Prezzo», «Locale» e «Ordina per» (a fianco della ricerca da 1024 px, altrimenti in fila sotto la ricerca) */
.con-tools{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:2px 0 8px}
.con-tools:empty{display:none}
/* riscontro dopo l'evento (A-74), «Anche da soli» (A-75), dettagli pratici (A-68), segnalazione (A-70) */
.fb-box .fb-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.fb-mood.on{box-shadow:inset 0 0 0 2px var(--accent,var(--ink));font-weight:700}
.chip.solo{background:color-mix(in srgb,var(--accent,#7c3aed) 14%,var(--surface));color:var(--ink)}
.ev-pratico p{margin:0;white-space:pre-line;line-height:1.5}
.tkt-segnala{margin-top:8px}
/* «Ci sei ancora?» (A-65) */
.ci-sei{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.ci-sei p{flex:1 1 100%;margin:0;font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.ci-sei p strong{color:var(--ink)}
/* lista d'attesa (A-64): invito da confermare, posizione, uscita */
.wait-note{margin:0 0 8px;font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.wait-note strong{display:block;font-size:15px;color:var(--ink)}
/* «Partecipo in modo discreto» sulla scheda evento (A-40) */
.discreta{display:flex;align-items:flex-start;gap:10px;margin-top:8px;font-size:13.5px;color:var(--ink-2);cursor:pointer}
.discreta input{margin-top:3px;flex:none;width:18px;height:18px}
.discreta small{display:block;margin-top:2px;font-size:12px;line-height:1.35;color:var(--ink-2)}
.people .discreti{list-style:none;font-size:13px}
/* riga dei criteri attivi (A-122, passo 1): conteggio, chip rimovibili, «Rimuovi tutti» */
.activefilters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:-4px}
.activefilters[hidden]{display:none}
.af-n{font-size:14px;font-weight:600;color:var(--ink-2);margin-right:2px}
.afchip .x{font-size:16px;line-height:1;margin-left:1px}
.af-clear{background:none;border:0;padding:6px 4px;font-size:13px;color:var(--ink-2);text-decoration:underline;cursor:pointer}
.af-clear:hover{color:var(--ink)}

/* ---- dove mangiare ---- */
:root{--star:#9A6400}   /* ambra scura: su fondo chiaro il vecchio #D99A00 aveva contrasto 2,4 */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){--star:#E5A912} }
:root[data-theme="dark"]{--star:#E5A912}
.place{display:grid;grid-template-columns:96px minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}
.place:hover{border-color:var(--ink-3)}
.place .idea-body h3 a{color:inherit;text-decoration:none}
.place:hover .idea-body h3 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.place-score{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:16px 6px;background:var(--surface-2);border-right:1px solid var(--line);text-align:center}
.place-score .avg{font-family:var(--display);font-weight:800;font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.place-score .st{color:var(--star);font-size:13px;letter-spacing:1px}
.place-score .cnt{font-size:11px;color:var(--ink-3)}
.place-score.big{justify-content:center;padding:18px 8px}
.place-score.big .avg{font-size:44px}
.place-score.big .st{font-size:16px}
.chip.price{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);letter-spacing:.02em}
.place-foot-left{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.pmedal{--gc:var(--accent);position:relative;overflow:hidden;flex:none;width:56px;height:56px;margin-bottom:8px;border-radius:50%;display:grid;place-items:center;font-size:28px;line-height:1;
  background:radial-gradient(70% 70% at 72% 20%,color-mix(in srgb,var(--gc) 55%,#fff),transparent 62%),linear-gradient(145deg,var(--gc),color-mix(in srgb,var(--gc) 45%,#0b0920));box-shadow:0 0 0 2px rgba(255,255,255,.25),0 6px 16px color-mix(in srgb,var(--gc) 45%,transparent)}
.pmedal::before{content:"";position:absolute;right:-18%;bottom:-30%;width:80%;aspect-ratio:1;border-radius:50%;pointer-events:none;background:repeating-radial-gradient(circle,transparent 0 5px,rgba(255,255,255,.16) 5px 6px)}
.stars-input{display:inline-flex;align-items:center;gap:1px}
.stars-input .star{border:0;background:transparent;padding:2px 3px;font-size:20px;line-height:1;color:var(--ink-3);cursor:pointer}
.stars-input .star.on{color:var(--star)}
.stars-input:hover .star{color:var(--star)}
.stars-input .star:hover ~ .star{color:var(--ink-3)}
.stars-input .star:disabled{cursor:default;opacity:.6}
.stars-input .mine-lbl{font-size:12px;color:var(--ink-3);margin-left:6px}
.rstars{margin-left:auto;color:var(--star);letter-spacing:1px}
.place-sheet .sheet-head{grid-template-columns:120px 1fr}
.place-sheet .people li{width:100%}
.price-ico{font-family:var(--display);font-weight:800;font-size:18px}
.place-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.place-tools select{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
@media (max-width:560px){
  .place{grid-template-columns:1fr}
  .place-score .pmedal{width:36px;height:36px;margin:0;font-size:18px}
  .place-score{flex-direction:row;justify-content:flex-start;gap:10px;border-right:0;border-bottom:1px solid var(--line);padding:10px 14px}
  .place-score .avg{font-size:22px}
  .place-sheet .sheet-head{grid-template-columns:88px 1fr}
  .place-sheet .place-score{flex-direction:column;border-bottom:0;border-right:1px solid var(--line);justify-content:center}
  .sections button{font-size:16px;padding-inline:8px}
}

/* calendario delle idee */
.cal-note{margin:0;font-size:13px;color:var(--ink-3)}
.btn.linkish{padding:0;font-size:13px;color:var(--accent-text,var(--accent));font-weight:500;text-decoration:underline;text-underline-offset:2px}
.filters .viewswitch{margin-left:0}

/* riepilogo dove mangiare */
.p-date.p-score{background:#FFF4D6;color:#6B4E00}
.p-date.p-score .d{font-size:21px}
.p-stars{color:#D99A00;letter-spacing:1px;font-size:14px}

/* ---- intestazione compatta, barra degli eventi, scheda ---- */
/* dopo l'accesso il sottotitolo sparisce: titolo più piccolo e pulsanti sulla stessa riga */
header.top:has(#tagline[hidden]){align-items:center}
header.top:has(#tagline[hidden]) .brand h1{font-size:clamp(26px,5vw,36px)}
/* eventi: "Ordina per" in fondo alla riga delle categorie invece che su una riga sua */
.filters.one-row{flex-wrap:nowrap;align-items:flex-start}
.filters.one-row .catfilter{flex:1 1 auto;min-width:0}
.filters.one-row .sortby{flex:none;margin-top:3px}
.tabscroll{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
/* scheda: niente "0" gigante, e "Elimina" in fondo, separato dai pulsanti principali */
.seats .none{font-weight:600}
.danger-zone{margin-top:auto;padding-top:14px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:8px}
.danger-zone .btn.danger:not(.armed){background:var(--bad-soft);border:2px solid var(--bad);color:var(--bad);font-size:17px;font-weight:800;width:100%;justify-content:center;min-height:56px;padding:12px 18px;border-radius:14px}   /* ben visibile: prima era una scritta piccola e trasparente */
.danger-zone .btn.danger:not(.armed)::before{content:'🗑';margin-right:10px;font-size:20px}
.danger-zone .btn.danger.armed{min-height:56px;font-size:17px;width:100%;justify-content:center}
.danger-zone .btn.ghost{min-height:48px;font-size:16px;width:100%;justify-content:center}
.danger-zone .btn.danger:not(.armed):hover{background:var(--bad);color:var(--bad-ink,#fff)}
@media (max-width:640px){
  .filters.one-row{flex-wrap:wrap}
  .tabscroll{flex:1 1 100%;flex-wrap:wrap}
  .tabscroll .tab{white-space:nowrap}
}
@media (max-width:480px){
  header.top .brand h1{white-space:nowrap}
}

/* ---- immagini (locandine) ---- */
.with-thumb{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}
.with-thumb .grow{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.thumb{flex:none;width:88px;height:88px;border-radius:8px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hero{display:block;border-radius:10px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line);min-height:120px}
.hero img{display:block;width:100%;max-height:460px;object-fit:contain}
.imgpick{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.imgprev{width:120px;height:120px;border-radius:8px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.imgprev img{width:100%;height:100%;object-fit:cover;display:block}
.imgbtns{display:flex;flex-wrap:wrap;gap:8px}
.imgmsg{margin:0;flex-basis:100%;font-size:13px;color:var(--ink-2)}
.imgmsg:empty{display:none}
/* scheda: calendario e condivisione */
.addcal{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.side-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.side-actions a.btn{text-align:center;text-decoration:none;color:inherit}
.side-actions a.btn.primary{color:var(--accent-ink)}   /* il «color:inherit» qui sopra rendeva scuro il testo dei link primari (es. «Prenota…») nei temi Poster e Classico */
@media (max-width:480px){
  .thumb{width:64px;height:64px}
}

/* ---- pagina di accesso: cosa c'è dentro ---- */
.feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;max-width:760px;margin-top:18px;padding-top:22px;border-top:1px solid var(--line);text-align:left}
.feat{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.feat strong{font-family:var(--display);font-size:17px}
.feat p{font-size:14px;margin:0}
.feat-ic{width:34px;height:34px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}
.feat-ic svg{width:20px;height:20px}
.f-ev .feat-ic{background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.f-idea .feat-ic{background:var(--stub);color:var(--stub-ink)}
.f-place .feat-ic{background:var(--cat-cibo-soft);color:var(--cat-cibo)}
@media (max-width:640px){ .feats{grid-template-columns:1fr} }
/* calendario: mese senza niente */
.cal-emptymonth{padding:10px 16px;border-top:1px solid var(--line);background:var(--accent-soft);font-size:14px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.cal-emptymonth .linkish{padding:0 2px;font-size:inherit;font-weight:600;color:var(--accent-text,var(--accent))}

/* ---- telefono: meno righe prima dei contenuti ---- */
@media (max-width:640px){
  /* categorie (e tipi di locale) su una riga che scorre di lato, come le schede */
  .catfilter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding:2px 16px 6px}
  .catfilter::-webkit-scrollbar{display:none}
  .catfilter > *{flex:none}
  /* "+ Proponi…": bottone rotondo fisso in basso a destra, sempre sotto il pollice. Il testo resta per i lettori di schermo */
  #openForm,#openIdea,#openPlace{position:fixed;z-index:40;right:16px;bottom:calc(18px + env(safe-area-inset-bottom, 0px));
    width:60px;height:60px;padding:0;border-radius:50%;font-size:0;box-shadow:0 6px 18px rgba(0,0,0,.25)}
  #openForm::before,#openIdea::before,#openPlace::before{content:"+";font-size:32px;font-weight:600;line-height:1}
  body:has(.demo-bar) :is(#openForm,#openIdea,#openPlace){bottom:calc(84px + env(safe-area-inset-bottom, 0px))}
  body:has(.detail) :is(#openForm,#openIdea,#openPlace){display:none}   /* nelle schede coprirebbe i pulsanti */
  .wrap{padding-bottom:110px}
  /* intestazione su una riga: titolo a sinistra, Persone e avatar a destra */
  header.top:has(#tagline[hidden]){flex-wrap:nowrap;gap:8px}
  header.top:has(#tagline[hidden]) .brand h1{font-size:24px}
  .top-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px}   /* se i pulsanti non stanno in riga vanno a capo: la foto del profilo non esce mai dallo schermo */
  .top-actions .me{flex:none}
  #peopleBtn{padding:6px 10px}
}

/* ---- ricerca: "Cosa vuoi fare?" e "Quando?" ---- */
.searchbar{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.searchbar[hidden]{display:none}
.searchbar label{display:flex;align-items:center;gap:8px;padding:0 14px;color:var(--ink-3);min-width:0}
.searchbar .s-what{flex:1 1 auto}
.searchbar .s-when{flex:none;border-left:1px solid var(--line)}
.searchbar input,.searchbar select{border:0;background:transparent;color:var(--ink);padding:12px 0;min-width:0;width:100%;outline:none;font-size:15px}
.searchbar .ico svg{width:18px;height:18px;display:block}
.searchbar.no-when .s-when{display:none}
.searchbar:focus-within{border-color:var(--accent)}
@media (max-width:480px){ .searchbar .s-when{max-width:46%} .searchbar label{padding:0 10px} }

/* ---- categorie a riquadri con icona ---- */
.catfilter.tiles{flex-wrap:nowrap;overflow-x:auto;gap:10px;scrollbar-width:none;padding:2px 2px 6px}
.catfilter.tiles::-webkit-scrollbar{display:none}
.ctile{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:94px;height:84px;padding:6px;
  border-radius:14px;border:1px solid var(--line);background:var(--cs,var(--surface));color:var(--c,var(--ink));font-size:12.5px;font-weight:600;line-height:1.15;text-align:center}
.ctile-ic{font-size:26px;line-height:1}
.ctile[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--c,var(--ink))}
.ctile.all{--c:var(--ink);--cs:var(--surface)}
@media (max-width:640px){ .ctile{width:82px;height:76px} .ctile-ic{font-size:23px} }
/* riga della ricerca sul computer (A-122): ricerca + «Prezzo» e «Ordina per» a destra (js/telefono.js, enhanceSearchRow); vale per tutti i temi */
@media (min-width:1024px){
  .sr-row{display:flex;align-items:flex-start;gap:12px}
  .sr-row > .searchbar{flex:1 1 0;min-width:0}
  .sr-row > .viewswitch{flex:none;margin-top:6px}
  .sr-row > .sortby{flex:none;align-self:center;margin:0}
}
.sr-row:has(> #search[hidden]){display:none}
/* categorie e generi nei filtri (Eventi, Idee, Concerti, Cinema…) come pillole piccole: emoji in un cerchietto del colore della categoria + nome (A-122); la specificità batte i temi e il telefono. Le tessere grandi restano nella home (.v-cats) */
:is(#filters,#filtersSheet,#list,#placesHero) .catfilter.tiles{display:flex;flex-wrap:wrap;overflow:visible;gap:8px;padding:0;margin-inline:0}
:is(#filters,#filtersSheet,#list,#placesHero) .catfilter.tiles .ctile{flex-direction:row;width:auto;height:auto;min-height:36px;padding:4px 13px 4px 5px;gap:8px;border-radius:999px;font-size:13.5px;line-height:1.2;white-space:nowrap}
:is(#filters,#filtersSheet,#list,#placesHero) .catfilter.tiles .ctile:hover{transform:none}
:is(#filters,#filtersSheet,#list,#placesHero) .catfilter.tiles .ctile-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:15px;background:color-mix(in srgb,var(--c,var(--ink)) 26%,transparent)}

/* ---- eventi in griglia: card con copertina ---- */
.list.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.list.grid > .group-h,.list.grid > .empty{grid-column:1 / -1}
.ecard{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer}
.cover{position:relative;aspect-ratio:16 / 10;background:var(--surface-2);overflow:hidden}
.cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.ecard:hover .cover img{transform:scale(1.04)}
.cover.auto{display:flex;align-items:center;justify-content:center;
  background:radial-gradient(90% 80% at 85% 10%, color-mix(in srgb,var(--c) 40%,#fff), transparent 65%),linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 65%,#000))}
.cover-ic{font-size:64px;line-height:1;transform:rotate(-8deg);filter:drop-shadow(0 6px 12px rgba(0,0,0,.25))}
.datebadge{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;align-items:center;min-width:48px;padding:5px 8px;line-height:1.05;
  background:#fff;color:#161D2B;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.datebadge .wd,.datebadge .m{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.datebadge .d{font-family:var(--display);font-weight:800;font-size:22px;font-variant-numeric:tabular-nums}
.datebadge .more{font-size:10px;font-weight:600;margin-top:2px;color:#4A5468}
.ebody{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}
.ebody h3{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.2;margin:0;overflow-wrap:anywhere;text-wrap:balance}
.ebody h3 a{color:inherit;text-decoration:none}
.ecard:hover .ebody h3 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ebody .foot{margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line)}
.ebody .foot .btn{padding:6px 12px;font-size:14px}
.ebody .who{min-width:0}
.ecard.past .cover{filter:grayscale(.45)}   /* schede concluse sobrie (A-110/A-115): la locandina e la data restano riconoscibili, niente trasparenza sul testo; la sobrietà viene da colori e gerarchia */
.ecard.past{background:var(--surface-2)}
.ecard.past .chip.cat,.ecard.past .chip.genre{filter:saturate(.45)}
@media (max-width:560px){ .list.grid{grid-template-columns:1fr} }

/* ---- pagina di accesso: testata grande e "come funziona" ---- */
.gate.welcome{padding:0;gap:0;align-items:stretch;text-align:left;overflow:hidden}
.hero-gate{position:relative;min-height:340px;display:flex;align-items:flex-end;padding:36px 32px;overflow:hidden;color:#fff;
  background:var(--hero-photo, linear-gradient(135deg,#3044D0,#7A3CC2 45%,#C0302B)) center / cover}
.hero-gate::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.5))}
.hero-stickers{position:absolute;top:0;right:0;bottom:0;width:44%;display:grid;grid-template-columns:repeat(3,1fr);place-items:center;font-size:44px;padding:12px}   /* a destra: il testo sta a sinistra */
.hero-stickers span{transform:rotate(-10deg)}
.hero-stickers span:nth-child(3n){transform:rotate(12deg) scale(1.15)}
.hero-stickers span:nth-child(4n){transform:rotate(4deg) scale(.85)}
.hero-text{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;max-width:52%}
.gate .hero-text h2{color:#fff;font-size:clamp(30px,6vw,48px);text-wrap:balance}
.gate .hero-text p{color:rgba(255,255,255,.92);max-width:48ch}
.gate .hero-text .hero-note{font-size:13px;color:rgba(255,255,255,.8)}
.hero-text .btn.google{align-self:flex-start;background:#fff;color:#161D2B}
.how-h{margin:26px 32px 0;font-family:var(--display);font-weight:800;font-size:22px}
.gate.welcome .feats{margin:14px 32px 32px;width:auto;max-width:none;border-top:0;padding-top:0}
@media (max-width:640px){
  .hero-gate{min-height:440px;padding:24px 20px}
  .hero-stickers{left:0;width:auto;bottom:auto;height:42%;grid-template-columns:repeat(4,1fr);font-size:32px}   /* sul telefono in alto */
  .hero-stickers span:nth-child(n+9){display:none}
  .hero-text{max-width:none}
  .how-h{margin:22px 20px 0}
  .gate.welcome .feats{margin:12px 20px 24px}
}

/* ---- finestra "Aspetto": tema e chiaro/scuro ---- */
.look-dlg{border:0;border-radius:18px;padding:0;width:min(520px,calc(100vw - 32px));background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.look-dlg::backdrop{background:rgba(10,12,20,.45)}
.look{display:flex;flex-direction:column;gap:14px;padding:22px}
.look h3{margin:0;font-family:var(--display);font-size:22px}
.look p{margin:0}
.look-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.look-theme{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;border:2px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-align:left}
.look-theme small{color:var(--ink-3);font-size:12px;line-height:1.3}
.look-theme[aria-checked="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
/* mini anteprima di ogni tema: sfondo, card e colore principale */
.lt-prev{position:relative;width:100%;height:58px;border-radius:9px;overflow:hidden;margin-bottom:4px}
.lt-prev i{position:absolute;display:block}
.lt-prev i:nth-child(1){inset:0}
.lt-prev i:nth-child(2){left:10px;top:10px;width:58%;height:38px;border-radius:6px}
.lt-prev i:nth-child(3){right:10px;bottom:10px;width:24%;height:14px;border-radius:999px}
.lt-classico .lt-prev i:nth-child(1){background:#EEF1F6}
.lt-classico .lt-prev i:nth-child(2){background:#fff;border:1px solid #D9DEE8;box-shadow:inset 14px 0 0 #F4C534}
.lt-classico .lt-prev i:nth-child(3){background:#3044D0;border-radius:4px}
.lt-poster .lt-prev i:nth-child(1){background:radial-gradient(60px 40px at 0 0,#FFE7A8,transparent),radial-gradient(70px 50px at 100% 20%,#FFC4D6,transparent),#FFF3E0}
.lt-poster .lt-prev i:nth-child(2){background:#fff;border:2px solid #161D2B;box-shadow:3px 3px 0 #161D2B,inset 14px 0 0 #0B7A66}
.lt-poster .lt-prev i:nth-child(3){background:#5B3DF5;border:2px solid #161D2B}
.lt-tramonto .lt-prev i:nth-child(1){background:radial-gradient(70px 44px at 0 0,#FFD9B0,transparent),radial-gradient(80px 50px at 100% 100%,#DCCBF2,transparent),#FFF3E6}
.lt-tramonto .lt-prev i:nth-child(2){background:#fff;border:1px solid #ECD9C3;border-radius:10px;box-shadow:inset 14px 0 0 #B9442F}
.lt-tramonto .lt-prev i:nth-child(3){background:linear-gradient(135deg,#6A3F9C,#B9442F 60%,#E8A24A)}
.lt-evently .lt-prev i:nth-child(1){background:#F6F7FB}
.lt-evently .lt-prev i:nth-child(2){background:#fff;border-radius:9px;box-shadow:0 4px 12px rgba(16,24,40,.12),inset 0 16px 0 #FFB8A0}
.lt-evently .lt-prev i:nth-child(3){background:linear-gradient(90deg,#FF5A5F,#FF7A59)}
.look-modes{align-self:flex-start}
@media (max-width:480px){ .look-themes{grid-template-columns:1fr} .lt-prev{height:44px} .lt-prev i:nth-child(2){height:26px} }

/* ---- preferiti: cuore sulle copertine e nella scheda ---- */
.heart{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.92);color:#161D2B;font-size:19px;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .15s}
.heart:hover{transform:scale(1.08)}
.heart.on{color:#E0245E}
.btn.fav-on{color:#E0245E}
.back-home{order:-1}
.lt-vetrina .lt-prev i:nth-child(1){background:linear-gradient(135deg,#FF7A59,#FF5A5F 55%,#7B2FF7)}
.lt-vetrina .lt-prev i:nth-child(2){left:10px;top:30px;width:70%;height:14px;background:#fff;border-radius:999px}
.lt-vetrina .lt-prev i:nth-child(3){right:10px;top:30px;bottom:auto;width:16%;height:14px;background:#FF5A5F;border-radius:999px}
.lt-taccuino .lt-prev i:nth-child(1){background:#F3EBDD}
.lt-taccuino .lt-prev i:nth-child(2){background:#FFFCF5;border:1px solid #D9CDBA;box-shadow:inset 8px 0 0 #D7A08A}
.lt-taccuino .lt-prev i:nth-child(3){background:#9F4934;border-radius:4px}

/* errori: riquadro fisso in alto, resta finché non lo chiudi */
.notice.bad{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:1000;box-sizing:border-box;width:max-content;max-width:min(560px,calc(100% - 24px));display:flex;align-items:flex-start;gap:12px;
  background-color:var(--surface,#fff);background-image:linear-gradient(var(--bad-soft),var(--bad-soft));border:1px solid var(--bad);box-shadow:0 6px 24px rgba(0,0,0,.25);font-weight:600}
.notice-x{flex:none;border:0;background:transparent;color:inherit;font-size:22px;line-height:1;padding:0 2px;cursor:pointer}

/* conferme: avviso fisso in basso che sparisce da solo (status() in app.js); sul telefono sopra la barra in basso */
.notice:not(.bad):not([hidden]){position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:1000;box-sizing:border-box;width:max-content;max-width:min(560px,calc(100% - 24px));
  background-color:var(--surface,#fff);color:var(--ink);border:1px solid var(--line);box-shadow:0 6px 24px rgba(0,0,0,.25);font-weight:600}
body:has(#bottomnav:not([hidden])) .notice:not(.bad):not([hidden]){bottom:calc(76px + env(safe-area-inset-bottom,0px))}

/* avviso cookie / privacy */
.privacy{position:fixed;left:12px;right:12px;bottom:12px;z-index:900;max-width:640px;margin:0 auto;box-sizing:border-box;background:var(--surface,#fff);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:0 6px 24px rgba(0,0,0,.2);font-size:14px;line-height:1.45}
.privacy p{margin:0 0 8px}
.privacy details{margin:0 0 10px;color:var(--ink-2)}
.privacy summary{cursor:pointer;font-weight:600}
.privacy ul{margin:6px 0 0;padding-left:18px}
.privacy button{border:0;border-radius:999px;background:var(--ink);color:var(--ground);padding:7px 16px;font-weight:600;cursor:pointer}

/* avatar + nome nell'intestazione: aprono il profilo */
.me-link{display:flex;align-items:center;gap:8px;border:0;background:none;padding:2px 6px 2px 2px;margin:0;font:inherit;color:inherit;cursor:pointer;border-radius:999px;min-width:0}
.me-link:hover{background:var(--surface-2)}
@media (max-width:480px){
  .me .me-link img{width:34px;height:34px}
}

/* profilo */
.profile{display:flex;flex-direction:column;gap:18px}
.pf-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:0 22px 20px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.pf-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;background:var(--surface-2);flex:none;box-shadow:0 0 0 4px var(--surface),0 6px 18px rgba(0,0,0,.25)}
.pf-id{min-width:0}
.pf-id h2{margin:0;font-size:var(--t-xl);letter-spacing:-.02em;overflow-wrap:anywhere}
.pf-mail{margin:6px 0 0;color:var(--ink-3);font-size:var(--t-cap);overflow-wrap:anywhere}
.pf-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pf-chip{padding:4px 12px;border-radius:999px;background:var(--accent-soft,var(--surface-2));color:var(--accent-text,var(--accent,var(--ink)));font-weight:600;font-size:var(--t-cap)}
.pf-since{color:var(--ink-3);font-size:var(--t-cap)}
.pf-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pf-stat{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pf-ic{font-size:var(--t-lg);line-height:1}
.pf-stat strong{font-size:var(--t-xl);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.pf-stat .pf-l{color:var(--ink-2);font-size:var(--t-cap)}
.pf-sec{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px 20px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.pf-sec h3{margin:0;font-size:var(--t-ti)}
.pf-sec .muted{margin:0}
.pf-next{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column}
.pf-next li + li{border-top:1px solid var(--line)}
.pf-next button{width:100%;display:flex;flex-direction:column;gap:2px;text-align:left;border:0;background:none;padding:10px 0;color:inherit;cursor:pointer;font:inherit}
.pf-next button:hover strong{text-decoration:underline}
.pf-next span{color:var(--ink-2);font-size:var(--t-cap)}
.pf-actions{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:640px){
  .pf-hero{padding:0 14px 14px}
  .pf-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* il titolo in alto è un link alla home */
.brand h1 a{color:inherit;text-decoration:none;border-radius:6px}
.brand h1 a:hover{opacity:.8}

/* piè di pagina */
.site-foot{margin-top:28px;padding:22px 0 8px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:center;color:var(--ink-3);font-size:14px}
.sf-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.site-foot button{border:0;background:none;padding:6px 0;font:inherit;color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.site-foot button:hover{color:var(--ink)}
@media (max-width:480px){ .help-btn{display:none} }   /* sul telefono l'aiuto è nel piè di pagina: l'intestazione è già piena */

/* aiuto e domande frequenti */
.help{display:flex;flex-direction:column;gap:14px}
.help h2{margin:0;font-size:clamp(24px,4vw,32px);letter-spacing:-.02em}
.help .intro{margin:0;color:var(--ink-2)}
.help-q{width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.help-group{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.help-group h3{margin:6px 0 2px;font-size:19px}
.help-item{border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.help-item summary{cursor:pointer;list-style:none;padding:14px 44px 14px 18px;font-weight:600;position:relative}
.help-item summary::-webkit-details-marker{display:none}
.help-item summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:500;color:var(--ink-3)}
.help-item[open] summary::after{content:"–"}
.help-ans{padding:0 18px 16px;color:var(--ink-2);line-height:1.55}
.help-ans p{margin:0 0 8px}
.help-contact{margin-top:14px;padding:20px 22px;border-radius:18px;background:var(--accent-soft,var(--surface-2));border:1px solid var(--line)}
.help-contact h3{margin:0 0 6px}
.help-contact p{margin:0 0 6px}
.help-btn{font-weight:700;min-width:34px}

/* pulsante del gruppo WhatsApp nella scheda dell'evento */
.btn.wa-group{background:#25D366;border-color:#25D366;color:#073B1F}
.btn.wa-group:hover:not(:disabled){background:#1fbd5a;border-color:#1fbd5a}
.field .hint{display:block;margin-top:4px;color:var(--ink-3);font-size:12.5px;line-height:1.35}
.btn.wa-group{white-space:normal;padding-inline:10px;font-size:14.5px;line-height:1.25}

/* eliminazione dell'account (profilo) */
.pf-danger{border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.pf-danger h3{color:var(--bad)}
.pf-del-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;color:var(--ink-2)}
.pf-del-warn{margin:0;padding:10px 12px;border-radius:12px;background:var(--bad-soft);color:var(--bad);font-weight:600}
.pf-del-label{font-weight:600;font-size:var(--t-sm)}
.pf-del-input{width:100%;max-width:280px;box-sizing:border-box;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:var(--t-md);letter-spacing:.08em}
.btn.danger:disabled{opacity:.5;cursor:not-allowed}

/* schede dei posti: testo esteso fino al bordo, etichette e titoli di sezione più grandi e in grassetto */
.descbox{max-width:none}
.place-sheet .fact .lbl{font-size:15px;font-weight:800;letter-spacing:.05em;color:var(--ink)}
.place-sheet .sheet-main .sec h4.sec-h{font-size:17px;font-weight:800;letter-spacing:.04em;color:var(--ink);margin-bottom:12px}
.place-sheet .sec-h .ico{width:22px;height:22px}

/* tipo del posto: etichetta più grande, con un colore per ogni tipo (testo e sfondo seguono il tema chiaro/scuro) */
.chip.kind{
  font-size:14.5px;font-weight:700;letter-spacing:.01em;text-transform:none;padding:6px 14px;border-radius:999px;border:0;
  color:color-mix(in srgb,var(--k) 58%,var(--ink));
  background:color-mix(in srgb,var(--k) 16%,var(--surface));
}

/* filtri per tipo di posto: pallino del colore del tipo e numero di posti; i tipi ancora vuoti restano visibili ma più tenui */
.fchip.kindf{display:inline-flex;align-items:center}
.fchip .kdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--k);margin-right:7px;flex:none}
.fchip .kn{margin-left:7px;font-size:12px;font-weight:700;opacity:.65;font-variant-numeric:tabular-nums}
.fchip.kindf.empty:not([aria-pressed="true"]){opacity:1;border-style:dashed;color:var(--ink-2)}   /* era opacity .6: il testo non arrivava a 4,5:1 (axe) */

/* ---- Da scoprire (zona riservata): segnalazioni da verificare ---- */
.dis-btn{font-weight:600}
@media (max-width:480px){ .dis-btn .dtxt{display:none} }
/* telefono: Amministrazione, I miei eventi e Le mie richieste sono cerchi uguali con la sola icona, il numero rosso sul bordo, e l'avatar resta sulla stessa riga */
@media (max-width:480px){
  header.top .top-actions{flex-wrap:nowrap;gap:4px}
  header.top .top-actions .dis-btn{position:relative;flex:none;box-sizing:border-box;width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:17px;line-height:1}
  header.top .top-actions .dis-btn .badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px}
  header.top:has(#tagline[hidden]) .brand{min-width:0;flex:1 1 auto}
  header.top:has(#tagline[hidden]) .brand h1{overflow:hidden;text-overflow:ellipsis}
}
.discover{display:flex;flex-direction:column;gap:16px}
.ds-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.ds-head h2{margin:0;font-size:clamp(24px,4vw,32px);letter-spacing:-.02em}
.ds-private{padding:5px 12px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:13px;font-weight:600}
.ds-warn{padding:14px 18px;border-radius:14px;border:2px solid #E5A100;background:color-mix(in srgb,#F59F00 16%,var(--surface));color:var(--ink);line-height:1.5}
.ds-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ds-list{display:flex;flex-direction:column;gap:14px}
.ds-card{display:flex;flex-direction:column;gap:10px;padding:18px 20px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.ds-card h3{margin:0;font-size:20px;letter-spacing:-.01em}
.ds-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.ds-flag{padding:3px 10px;border-radius:999px;background:#E5A100;color:#2b1d00;font-size:12px;font-weight:800;letter-spacing:.05em}
.ds-venue{background:var(--surface-2,transparent);color:var(--ink-2);border:1px solid var(--line);text-transform:none;letter-spacing:0;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-found{margin-left:auto;color:var(--ink-3);font-size:13px}
.ds-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;color:var(--ink-2)}
.ds-facts li{display:flex;align-items:flex-start;gap:10px}
.ds-facts .ico{flex:none;width:18px;height:18px;margin-top:2px}
.ds-past{color:var(--bad);font-style:normal;font-weight:700}
.ds-desc{margin:0;color:var(--ink-2);line-height:1.55}
.ds-checks{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;background:var(--surface-2)}
.ds-checks-h{margin:0 0 2px;font-weight:700;font-size:14px}
.ds-ck{display:flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.4}
.ds-ck input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--accent)}
.ds-ok{margin:0;padding:10px 14px;border-radius:12px;background:#E6F7EF;color:#12795A;font-weight:600}
.ds-actions{display:flex;flex-wrap:wrap;gap:10px}
.ds-note{margin:0;padding:8px 12px;border-radius:10px;background:var(--surface-2);color:var(--ink-2);font-size:13.5px;line-height:1.45;border-left:3px solid #E5A100}
.ds-auto{margin:-4px 0 0}
.ds-provs{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ds-prov{margin:10px 0 0;padding-bottom:6px;border-bottom:2px solid var(--line);font-size:20px;display:flex;align-items:center;gap:10px}
.ds-prov .n{font-size:13px;font-weight:700;color:var(--ink-2);background:var(--surface-2);padding:2px 9px;border-radius:999px}

/* ---- elenco a righe degli eventi (scelta "Schede · Elenco") ---- */
.list.rows{display:flex;flex-direction:column;gap:10px}
.erow{display:grid;grid-template-columns:78px 76px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 16px 12px 12px;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;cursor:pointer;transition:box-shadow .15s,border-color .15s}
.erow:hover{border-color:var(--c,var(--accent));box-shadow:0 6px 18px rgba(16,24,40,.1)}
.erow.past{background:var(--surface-2)}   /* concluse: niente trasparenza (abbassava il contrasto del testo), sfondo più calmo e immagine meno viva */
.erow.past .erow-img{filter:grayscale(.45)}
.erow.past .chip.cat,.erow.past .chip.genre{filter:saturate(.45)}
.erow-date{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;padding:11px 0;border-radius:16px;
  background:color-mix(in srgb,var(--c,var(--accent)) 14%,var(--surface));color:color-mix(in srgb,var(--c,var(--accent)) 78%,var(--ink))}
.erow-date .wd,.erow-date .m{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.erow-date .d{font-family:var(--display);font-weight:800;font-size:38px;font-variant-numeric:tabular-nums}
.erow-date .more{margin-top:3px;font-size:11px;font-weight:700}
.erow-img{width:76px;height:76px;border-radius:14px;overflow:hidden;background:var(--surface-2)}
.erow-img .cover{aspect-ratio:auto;height:100%}
.erow-img .cover-ic{font-size:34px}
.erow-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.erow-main .meta{display:flex;flex-wrap:wrap;gap:6px}
.erow-main h3{margin:0;font-size:18px;line-height:1.25}
.erow-main h3 a{color:inherit;text-decoration:none}
.erow-main h3 a:hover{text-decoration:underline}
.erow-sub{display:flex;flex-wrap:wrap;align-items:center;gap:2px 16px;color:var(--ink-2);font-size:14px}
.erow-sub .factline{margin:0}
.erow-side{display:flex;align-items:center;gap:12px}
.erow-count{color:var(--ink-3);font-size:13px;white-space:nowrap}
.erow .heart{position:static;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--ink-3);font-size:22px}
.erow .heart.on{color:#E0245E}
.month-h,.period-h{margin:14px 0 0;padding-bottom:6px;border-bottom:2px solid var(--line);color:var(--ink);font-size:20px}   /* intestazioni di periodo («Questo weekend», mese…): A-111 */
.list > .period-h:first-child{margin-top:0}
.list.rows > .month-h:first-child{margin-top:0}
.layout-switch{margin-left:0}
@media (max-width:760px){
  .erow{grid-template-columns:66px minmax(0,1fr);grid-template-areas:"date main" "side side";gap:10px 12px;padding:12px}
  .erow-date{grid-area:date;align-self:start}
  .erow-img{display:none}
  .erow-main{grid-area:main}
  .erow-side{grid-area:side;justify-content:space-between}
}

/* data più grande sulle schede */
.datebadge{min-width:60px;padding:8px 12px;border-radius:14px}
.datebadge .wd,.datebadge .m{font-size:12.5px}
.datebadge .d{font-size:32px}
.datebadge .more{font-size:11px}
/* nota sotto la mappa */
.v-map-wrap{display:flex;flex-direction:column;gap:8px;min-width:0}
.v-map-note{margin:0;line-height:1.4}

/* filtro per provincia degli eventi */
.provfilter{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
.provfilter .flabel{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.venfilter .sortby{margin:0}
.venfilter .sortby select{min-height:38px;padding:6px 14px;border-radius:999px;font-weight:600;font-size:14px;max-width:100%}
.filters .fchip .kn{margin-left:7px;font-size:12px;font-weight:700;opacity:.65;font-variant-numeric:tabular-nums}
.filters.one-row{flex-wrap:wrap}   /* la riga delle province sta sopra, a tutta larghezza */

/* ---- Statistiche (solo amministratori) ---- */
.stats{display:flex;flex-direction:column;gap:16px}
.st-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1100px){ .st-cards{grid-template-columns:repeat(2,minmax(0,1fr))} }
.st-card{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.st-card strong{font-size:34px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.st-card span{color:var(--ink-2);font-size:14px}
.st-card small{color:var(--ink-3);font-size:12.5px}
.st-sec{padding:18px 20px;border-radius:18px;background:var(--surface);border:1px solid var(--line);min-width:0}
.st-sec h3{margin:0 0 4px;font-size:18px}
.st-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.st-chart{width:100%;height:auto;display:block;margin-top:8px}
.st-legend{margin:8px 0 0;color:var(--ink-2);font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.st-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
.st-bars{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.st-bars li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;gap:10px;font-size:14px}
.st-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-b{height:10px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.st-b i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.st-v{font-variant-numeric:tabular-nums;color:var(--ink-2);min-width:2.5em;text-align:right}
.st-hours{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;align-items:end;height:130px;margin-top:10px}
.st-h{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px}
.st-h i{width:100%;border-radius:3px 3px 0 0;background:var(--accent);min-height:2px}
.st-h span{font-size:10.5px;color:var(--ink-3);height:12px}
@media (max-width:720px){ .st-cards{grid-template-columns:1fr} .st-two{grid-template-columns:1fr} }

/* ---- pagina Amministrazione ---- */
.admin{display:flex;flex-direction:column;gap:16px}
.adm-tabs{display:flex;flex-wrap:wrap;gap:8px}
.adm-tabs .tab .n.hot{background:var(--bad);color:#fff;border-radius:99px;padding:1px 8px;margin-left:6px;opacity:1}
.sys-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.sys-list li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.sys-dot{width:12px;height:12px;border-radius:50%;margin-top:5px;background:var(--ink-3)}
.sys-ok .sys-dot{background:#2F9E44}.sys-attenzione .sys-dot{background:#F59F00}.sys-errore .sys-dot{background:var(--bad)}.sys-info .sys-dot{background:#1C7ED6}
.sys-errore{border-color:var(--bad)!important}.sys-attenzione{border-color:#E5A100!important}
.sys-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.sys-state{font-size:12px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--surface-2);color:var(--ink-2)}
.sys-list p{margin:4px 0 0;color:var(--ink-2);font-size:14px;line-height:1.45}

/* ---- eventi TABLO: si prenotano su Tablo ---- */
.tablo-book{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.ext-logo{border-radius:5px;margin-right:6px;vertical-align:-4px;flex:none}
.chip.cat .ext-logo{margin-right:4px;vertical-align:-2px}
.btn.ext-zonzers{gap:0}
.tablo-note{font-size:13px;color:var(--ink-3)}
.tablo-hint{margin:0;font-size:13px;line-height:1.4;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:8px 10px}

/* ---- Cinema ---- */
.film{display:grid;grid-template-columns:110px minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}
.film-poster{background:var(--surface-2);border-right:1px solid var(--line);display:flex;align-items:center;justify-content:center;min-height:160px}
.film-poster img{width:100%;height:100%;object-fit:cover;display:block}
.film-poster.none span{font-size:44px;opacity:.7}
.film .idea-body{padding:14px 16px}
.film-foot-left{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.btn.want.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.want .n{margin-left:6px;font-size:12px;opacity:.85}
.chip.film-sala{background:#e6f6ec;color:#17693a}
.chip.film-uscita{background:#fff1dc;color:#8a4b00}
.chip.film-archivio{background:var(--surface-2);color:var(--ink-3)}
.poll{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:12px;max-width:760px;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.poll.closed{opacity:.92}
.poll h3{margin:2px 0 0;font-size:22px;line-height:1.25}
.poll>.meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.poll-opts{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.poll-opt{position:relative;overflow:hidden;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:6px;align-items:center;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);transition:border-color .15s,background .15s}
.poll-opt>.po-top,.poll-opt>.po-bar,.poll-opt>.po-who{grid-column:1}
.poll-opt>.btn{grid-column:2;grid-row:1 / span 3;align-self:center;white-space:nowrap;min-width:118px;justify-content:center}
.poll-opt.mine{border-color:var(--accent);background:var(--surface)}
.poll-opt.win{border-color:#2f9e44;box-shadow:0 0 0 2px rgba(47,158,68,.25)}
.po-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-weight:700;font-size:16px}
.po-top a{color:inherit;text-decoration:none}
.po-n{font-weight:600;font-size:13px;color:var(--ink-2);white-space:nowrap}
.poll-opt::before{content:"";position:absolute;inset:0;width:var(--w,0%);background:color-mix(in srgb,var(--accent) 16%,transparent);pointer-events:none;transition:width .3s}
.poll-opt>*{position:relative}
.po-bar{display:none}
.po-bar i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .3s}
.po-who{line-height:1.3}
.poll .ds-ok{margin:0;padding:10px 14px;border-radius:12px;background:rgba(47,158,68,.14);font-weight:700}
.poll-form{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:22px;max-width:760px;border-radius:16px}
.propose.poll-form{grid-template-columns:minmax(0,1fr)}
.propose.poll-form>*{grid-column:1}
.poll-form h3{margin:0;font-size:22px}
.poll-form .field>label:first-child{font-weight:700}
.poll-form .field>label.check{justify-self:start;display:inline-flex;align-items:center;gap:8px;margin:6px 8px 0 0;padding:9px 14px;border:1.5px solid var(--line);border-radius:99px;cursor:pointer}
.poll-form .field>label.check:has(input:checked){border-color:var(--accent);background:var(--surface-2)}
.poll-pick{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(max(300px,calc((100% - 16px) / 3 - 1px)),1fr));margin-top:6px}   /* al massimo 3 riquadri per fila (v416) */
.poll-film{display:grid;gap:4px;align-content:start;padding:8px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface-2);transition:border-color .15s}
.poll-film.on{border-color:var(--accent)}
.poll-film>label.pf-main{display:grid;grid-template-columns:44px minmax(0,1fr) 26px;gap:12px;align-items:center;cursor:pointer}
.poll-film .pf-main input{position:absolute;opacity:0;pointer-events:none}
.pf-loc{width:44px;height:62px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:var(--t-lg);color:#fff;background:linear-gradient(160deg,hsl(var(--h) 70% 52%),hsl(calc(var(--h) + 50) 70% 42%))}
.pf-txt{display:grid;min-width:0}
.pf-txt small{color:var(--ink-2)}
.pf-tick{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:var(--t-sm);color:transparent}
.poll-film.on .pf-tick{background:var(--accent);border-color:var(--accent);color:#fff}
.poll-film .pf-main:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.poll-more{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:14px;background:var(--surface-2);padding:0 14px}
.poll-more>summary{display:grid;gap:2px;cursor:pointer;padding:12px 0;list-style:none}
.poll-more>summary::-webkit-details-marker{display:none}
.poll-more>summary::after{content:"▾";position:absolute;right:14px}
.poll-more{position:relative}
.poll-more[open]>summary::after{content:"▴"}
.pm-t{font-weight:700}
.poll-more[open]{padding-bottom:14px}
.poll-more .field{margin-top:10px}
.poll-shows{margin:0 0 2px 26px;font-size:14px}
.poll-shows summary{cursor:pointer;color:var(--ink-2);padding:4px 0}
.poll-shows .check{display:flex;gap:6px;padding:3px 0}
@media (min-width:900px){
  .poll,.propose.poll-form{max-width:none}
  .poll{padding:28px;gap:16px}
  .propose.poll-form{padding:30px;gap:22px}
  .poll h3,.poll-form h3{font-size:28px}
  .poll-form .field>label:first-child,.lab{font-size:15px}
  .poll-form input[type=text],.poll-form input:not([type]){font-size:18px;padding:14px 16px}
  .poll-pick{grid-template-columns:repeat(auto-fill,minmax(max(300px,calc((100% - 28px) / 3 - 1px)),1fr));gap:14px}
  .poll-film{padding:12px}
  .poll-film>label.pf-main{grid-template-columns:62px minmax(0,1fr) 32px;gap:16px}
  .pf-loc{width:62px;height:88px;font-size:var(--t-xl);border-radius:10px}
  .pf-txt b{font-size:var(--t-ti)}.pf-txt small{font-size:var(--t-sm)}
  .pf-tick{width:32px;height:32px;font-size:var(--t-ti)}
  .poll-shows{margin-left:78px;font-size:16px}
  .poll-more>summary{padding:16px 0}.pm-t{font-size:18px}
  .poll-opts{gap:12px}
  .poll-opt{padding:18px 22px;border-radius:14px}
  .po-top{font-size:19px}.po-n{font-size:15px}
  .poll-opt>.btn{min-width:150px;min-height:48px;font-size:16px}
  .poll .ds-ok{font-size:18px;padding:14px 18px}
  .poll .btn,.poll-form .btn{min-height:46px;font-size:16px;padding-inline:22px}
}
@media (max-width:520px){
  .poll{padding:16px}
  .poll-opt{grid-template-columns:minmax(0,1fr)}
  .poll-opt>.btn{grid-column:1;grid-row:auto;width:100%;min-height:44px}
  .poll-pick{grid-template-columns:1fr}
}
.poll-archivio{margin-top:16px}
.poll-archivio>summary{cursor:pointer;font-weight:700;padding:8px 0}
.poll-archivio .poll{margin-top:10px}
.poll-new{margin:4px 0}
@media (max-width:640px){
  .film{grid-template-columns:84px minmax(0,1fr)}
  .film-poster{min-height:120px}
  #openFilm{position:fixed;z-index:40;right:16px;bottom:calc(18px + env(safe-area-inset-bottom, 0px));width:56px;height:56px;padding:0;border-radius:50%;font-size:0;box-shadow:0 6px 18px rgba(0,0,0,.25)}
  #openFilm::before{content:"+";font-size:32px;font-weight:600;line-height:1}
  body:has(.demo-bar) #openFilm{bottom:calc(84px + env(safe-area-inset-bottom, 0px))}
  body:has(.detail) #openFilm{display:none}
}
.po-top a{color:inherit;text-decoration:none}
.po-top a:hover{text-decoration:underline}

/* ---- proiezioni dei cinema ---- */
.chip.shows{background:#e8f0ff;color:#2a45b8}
.film-shows .show-day{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line)}
.film-shows .sd{min-width:92px;font-weight:600;text-transform:capitalize}
.film-shows .st-times{display:flex;flex-wrap:wrap;gap:6px}
.show-time{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:3px 11px;font-size:14px;font-variant-numeric:tabular-nums}
button.show-time{cursor:pointer}
button.show-time:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}

/* ---- idee in elenco a righe ---- */
.irow{display:grid;grid-template-columns:92px 76px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 16px 12px 12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;cursor:pointer}
.irow:hover{border-color:var(--c,var(--accent));box-shadow:0 6px 18px rgba(16,24,40,.1)}
.irow .vote{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:14px;min-width:0}
.irow .vote .vn{font-family:var(--display);font-weight:800;font-size:26px;line-height:1}
.irow .vote .vl{font-size:11px;line-height:1.15;text-align:center}
.irow .avatars{display:flex}
@media (max-width:640px){
  .irow{grid-template-columns:84px minmax(0,1fr);grid-template-areas:"vote main" "side side";gap:10px 12px;padding:12px}
  .irow .vote{grid-area:vote;align-self:start}
  .irow .erow-img{display:none}
  .irow .erow-main{grid-area:main}
  .irow .erow-side{grid-area:side;justify-content:space-between}
}
.vote-box{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.undo-vote{margin:0 0 0 -2px;padding:4px 4px;font-size:13px;line-height:1.2;min-height:0;text-decoration:underline;text-underline-offset:3px;font-weight:600}

/* ---- controllo delle date dei film ---- */
.datecheck{background:#fff7e0;border:1px solid #f0c75e;border-radius:12px;padding:10px 14px;margin:0 0 10px;color:#5b4300;font-size:14px;line-height:1.45}
.datecheck .ds-actions{margin-top:8px}
.chip.datechip{background:#fff1c9;color:#7a5600}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .datecheck{background:#3a2f12;border-color:#7a5d1a;color:#f3dfa6}}
:root[data-theme="dark"] .datecheck{background:#3a2f12;border-color:#7a5d1a;color:#f3dfa6}
.datecheck a{color:#7a3b00;text-decoration:underline}   /* v550: il link «Apri la fonte» nel riquadro ambra aveva il colore del tema (rosa in Vetrina, contrasto 2,2): ora scuro sul chiaro e chiaro sul scuro */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .datecheck a{color:#ffd37a}}
:root[data-theme="dark"] .datecheck a{color:#ffd37a}
html.area-admin .datecheck a{color:var(--accent-text,var(--accent))}

/* ---- posti in elenco a righe; barra del Cinema con Esporta riepilogo ---- */
.prow{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;cursor:pointer;padding-right:16px}
.prow:hover{border-color:var(--accent);box-shadow:0 6px 18px rgba(16,24,40,.1)}
.prow .place-score{align-self:stretch;justify-content:center}
.prow .erow-main{padding:10px 0}
.prow-side{flex-direction:column;align-items:flex-end;gap:4px}
@media (max-width:640px){
  .prow .pmedal{width:44px;height:44px;font-size:22px}
  .prow{grid-template-columns:84px minmax(0,1fr);grid-template-areas:"score main" "side side";gap:0 12px;padding-right:12px}
  .prow .place-score{grid-area:score;flex-direction:column;justify-content:center;gap:2px;border-bottom:0;border-right:1px solid var(--line);padding:12px 4px}
  .prow .place-score .avg{font-size:26px}
  .prow .erow-main{grid-area:main}
  .prow-side{grid-area:side;align-items:flex-start;padding:0 0 12px 12px}
}
.cin-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}

/* ---- Amministrazione: pulsanti, schede, filtri e menù più grandi e uniformi ---- */
.admin .btn{min-height:46px;padding:11px 22px;font-size:15.5px;font-weight:600;border-radius:999px;box-shadow:0 1px 2px rgba(16,24,40,.06);transition:box-shadow .15s,transform .12s,background .15s,border-color .15s}
.admin .btn:hover:not(:disabled){box-shadow:0 4px 12px rgba(16,24,40,.12);border-color:var(--ink-3)}
.admin .btn:active:not(:disabled){transform:scale(.97)}
.admin .btn.primary{box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 32%,transparent)}
.admin .btn.primary:hover:not(:disabled){box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 42%,transparent);border-color:var(--accent)}
.admin .btn.ghost{box-shadow:none}
.admin .btn.back{min-height:42px;padding:9px 18px}
.admin .btn:disabled{opacity:.55;box-shadow:none}
.admin .adm-tabs,.admin .ds-tabs{gap:10px}
.admin .adm-tabs .tab,.admin .ds-tabs .tab{padding:11px 22px;font-size:16px;font-weight:600;min-height:46px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 2px rgba(16,24,40,.06);border-radius:999px}
.admin .adm-tabs .tab:hover:not([aria-selected="true"]),.admin .ds-tabs .tab:hover:not([aria-selected="true"]){color:var(--ink);background:var(--surface-2)}
.admin .adm-tabs .tab[aria-selected="true"],.admin .ds-tabs .tab[aria-selected="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink);box-shadow:0 6px 16px rgba(16,24,40,.22)}
.admin .tab .n{font-size:13.5px;margin-left:6px;opacity:.8}
.admin .fchip{min-height:40px;padding:8px 16px;font-size:14.5px;font-weight:600}
.admin select{min-height:44px;padding:8px 14px;border-radius:999px;font-weight:600;font-size:15px;background-color:var(--surface);border:1px solid var(--line)}
.admin .ds-actions{gap:12px}
.admin .ds-ck{padding:6px 0}
@media (max-width:640px){
  .admin .adm-tabs,.admin .ds-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .admin .adm-tabs .tab,.admin .ds-tabs .tab{padding:10px 12px;font-size:15.5px;text-align:center}
  .admin .ds-actions .btn{flex:1 1 100%}
}

.ds-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}

/* riepilogo film: proiezioni una riga per giorno */
.p-shows{margin-top:6px;padding:6px 10px;border-left:3px solid var(--accent);background:rgba(0,0,0,.03);border-radius:0 8px 8px 0}
.p-shows-h{font-weight:700;font-size:13px;margin-bottom:2px}
.p-show{display:flex;gap:12px;font-size:13px;line-height:1.55;font-variant-numeric:tabular-nums}
.p-show .sd{flex:0 0 84px;font-weight:600;text-transform:capitalize}

.cin-bar .sortby{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:14px}
.cin-bar .sortby select{min-height:44px;padding:8px 14px;border-radius:999px;font-weight:600;font-size:15px;background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.chip.shows{text-decoration:none}
a.chip.shows:hover{filter:brightness(.95);text-decoration:underline}

.p-lines{display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.5;padding:2px 0 6px}

/* ---- riquadro "Installa l'app": solo su schermi stretti (telefono) ---- */
.install-bar{display:none}
@media (max-width:820px){
  .install-bar:not([hidden]){display:flex;align-items:center;gap:10px;margin:10px 16px 0;padding:10px 12px;border-radius:16px;
    background:linear-gradient(135deg,#fff1f0,#fff7e6);border:1px solid #ffd2cc;color:#4a2a26;font-size:14px;line-height:1.35;box-shadow:0 4px 14px rgba(16,24,40,.08)}
  .install-bar .ib-ic{font-size:22px;flex:none}
  .install-bar .ib-txt{flex:1;min-width:0}
  .install-bar .btn{flex:none;min-height:40px;padding:8px 16px;border-radius:999px}
  .install-bar .ib-x{flex:none;border:0;background:transparent;font-size:24px;line-height:1;padding:4px 8px;color:inherit;opacity:.65;cursor:pointer}
}
@media (max-width:820px) and (prefers-color-scheme:dark){:root:not([data-theme="light"]) .install-bar:not([hidden]){background:#3a2420;border-color:#6b3a33;color:#ffe3de}}
:root[data-theme="dark"] .install-bar:not([hidden]){background:#3a2420;border-color:#6b3a33;color:#ffe3de}

/* ---- elenco dei film: una colonna sul telefono, 2-3 colonne sugli schermi larghi (niente metà riga vuota) ---- */
.film-lista{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:1000px){.film-lista{grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr))}}
/* ---- film in elenco a righe ---- */
.frow{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;cursor:pointer;padding-right:14px}
.frow:hover{border-color:var(--accent);box-shadow:0 6px 18px rgba(16,24,40,.1)}
.frow .film-poster{align-self:stretch;min-height:84px;border-right:1px solid var(--line)}
.frow .film-poster.none span{font-size:30px}
.frow .erow-main{padding:10px 0}
.frow-side{flex-direction:column;align-items:flex-end;gap:6px}
@media (max-width:640px){
  .frow{grid-template-columns:56px minmax(0,1fr);grid-template-areas:"poster main" "side side";gap:0 12px;padding-right:12px}
  .frow .film-poster{grid-area:poster;min-height:72px}
  .frow .erow-main{grid-area:main}
  .frow-side{grid-area:side;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:0 0 12px 12px}
}

.poster .p-link a{color:inherit;text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.poster .p-shows-h a{color:inherit;text-decoration:underline;font-weight:600}

/* ---- giorni e orari: campo ora e scorciatoie ---- */
.day-row input.tm-in{font-variant-numeric:tabular-nums;min-height:40px;text-align:center}
.day-row input.tm-in[aria-invalid=true]{border-color:#e5484d;box-shadow:0 0 0 1px #e5484d}
.time-quick{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 6px}
.time-quick .tq-l{font-size:12px;color:var(--ink-3);margin-right:2px}
.time-quick .tq-l:not(:first-child){margin-left:8px}
.time-quick button{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:4px 11px;font-size:13px;font-weight:600;cursor:pointer;line-height:1.3}
.time-quick button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text,var(--accent))}
.time-quick button:disabled{opacity:.4;cursor:default}
.time-quick .tq-clear{margin-left:auto;border-color:transparent;background:transparent;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){ .time-quick{gap:6px} .time-quick .tq-l:not(:first-child){margin-left:0;flex-basis:100%;margin-top:2px} .time-quick .tq-clear{margin-left:0} }
.chip.imdb{background:#fff3c4;color:#6b5200;text-decoration:none}
a.chip.imdb:hover{text-decoration:underline}

.v-todo{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;border-radius:18px;background:#fff7e0;border:1px solid #f0c75e;color:#5b4300}
.v-todo p{margin:0;font-size:14px;line-height:1.45}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .v-todo{background:#3a2f12;border-color:#7a5d1a;color:#f3dfa6}}
:root[data-theme="dark"] .v-todo{background:#3a2f12;border-color:#7a5d1a;color:#f3dfa6}

/* riquadri Link/Trailer/Fonte: il collegamento è grande e chiaro (l'indirizzo lungo sotto non serve) */
.fact .val a.ext{font-size:19px;font-weight:700;line-height:1.3}
@media (max-width:640px){ .fact .val a.ext{font-size:18px} }

/* ---- concerti: schede grandi, una per riga ---- */
.list.wide{display:flex;flex-direction:column;gap:18px}
.ccard{display:grid;grid-template-columns:minmax(240px,40%) minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;cursor:pointer;box-shadow:0 2px 10px rgba(16,24,40,.06)}
.ccard:hover{border-color:var(--c,var(--accent));box-shadow:0 10px 28px rgba(16,24,40,.14)}
.ccard.past{background:var(--surface-2)}
.ccard.past .ccard-img{filter:grayscale(.45)}
.ccard-img{min-height:230px;position:relative}
.ccard-img .cover{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.ccard-body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:22px 24px;align-items:start}
.ccard-date{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;padding:12px 14px;border-radius:16px;background:var(--surface-2);min-width:70px}
.ccard-date .wd,.ccard-date .m{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.ccard-date .d{font-family:var(--display);font-weight:800;font-size:38px;font-variant-numeric:tabular-nums}
.ccard-date .more{margin-top:3px;font-size:11px;font-weight:700}
.ccard-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.ccard-main h3{margin:0;font-size:24px;line-height:1.2;letter-spacing:-.01em}
.ccard-main h3 a{color:inherit;text-decoration:none}
.ccard-main h3 a:hover{text-decoration:underline}
.ccard-main .when{font-weight:700;color:var(--ink-2);font-size:16px}
.ccard-desc{margin:4px 0 0;color:var(--ink-2);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ccard-foot{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.ccard-foot .erow-count{margin-right:auto}
.ccard .heart{position:static;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--ink-3);font-size:24px}
.ccard .heart.on{color:#E0245E}
@media (max-width:760px){
  .ccard{grid-template-columns:1fr}
  .ccard-img{min-height:0;aspect-ratio:16 / 9}
  .ccard-body{grid-template-columns:1fr;gap:10px;padding:16px}
  .ccard-date{flex-direction:row;gap:8px;justify-content:flex-start;padding:6px 12px;min-width:0;align-self:flex-start}
  .ccard-date .d{font-size:22px}
  .ccard-main h3{font-size:20px}
}

/* ---- quote e pagamenti ---- */
.chip.fee{background:#e8f7ee;color:#17693a}
.chip.pay-da{background:#fde8e8;color:#a61b1b}
.chip.myev-annullato{background:#fde8e8;color:#a61b1b;font-weight:700}   /* v717: «Annullato» in «I miei eventi», come la pillola dell app */
.chip.pay-dichiarato{background:#fff1c9;color:#7a5600}
.chip.pay-confermato{background:#e6f6ec;color:#17693a}
.pay-field .check{display:flex;align-items:center;gap:8px;font-weight:600}
.pay-fields{margin-top:10px;padding:14px;border:1px dashed var(--line);border-radius:14px;background:var(--surface-2)}
.pay-sec,.pay-panel{display:flex;flex-direction:column;gap:10px}
.pay-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}
.pay-amount{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.02em}
.pay-note{margin:0;padding:8px 12px;border-radius:10px;background:var(--surface-2);color:var(--ink-2);font-size:14px}
.pay-steps{margin:0;padding-left:20px;color:var(--ink-2);line-height:1.6;font-size:14.5px}
.pay-ok{margin:0;padding:10px 14px;border-radius:12px;background:#E6F7EF;color:#12795A;font-weight:600}
.pay-wait{margin:0;padding:10px 14px;border-radius:12px;background:#fff7e0;color:#7a5600;font-weight:600}
.pay-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pay-sum > div{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;background:var(--surface-2)}
.pay-sum strong{font-family:var(--display);font-weight:800;font-size:24px;line-height:1.1}
.pay-sum span{font-size:12.5px;color:var(--ink-3)}
.pay-sum .hot{background:#fff1c9;color:#5b4300}
.pay-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pay-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.pay-row:first-child{border-top:0}
.pay-row img{width:36px;height:36px;border-radius:50%}
.pr-name{min-width:0;font-weight:600;overflow-wrap:anywhere}
.pr-act{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.pr-act .btn{min-height:36px;padding:6px 14px;font-size:14px}
@media (max-width:640px){
  .pay-sum{grid-template-columns:1fr 1fr 1fr;gap:6px} .pay-sum strong{font-size:19px} .pay-sum > div{padding:10px}
  .pay-row{grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"av name chip" "act act act"} .pay-row img{grid-area:av} .pr-name{grid-area:name} .pay-row .chip{grid-area:chip} .pr-act{grid-area:act;justify-content:flex-start}
}

.pay-sec a.btn,.pay-panel a.btn{text-decoration:none;color:var(--ink)}
.pay-sec a.btn.primary{color:var(--accent-ink)}
/* caselle da spuntare nei moduli: piccole e accanto alla frase (non larghe come i campi di testo) */
.field input[type=checkbox],.field input[type=radio]{width:18px;height:18px;min-width:0;flex:none;padding:0;margin:0;accent-color:var(--accent)}
.field .check{display:flex;align-items:center;gap:10px;cursor:pointer}

/* ---- aiuto per «Luogo»: pulsante Cerca e risultati ---- */
.place-row{display:flex;gap:8px;align-items:stretch}
.place-row input{flex:1;min-width:0}
.place-find{flex:none;white-space:nowrap}
.place-res{display:grid;gap:6px;margin-top:6px}
.place-res[hidden]{display:none}
.place-opt{text-align:left;justify-content:flex-start;white-space:normal;line-height:1.35}
.place-res .err{color:var(--bad)}

/* ---- Da scoprire: selezione multipla per scartare ---- */

/* ---- I miei eventi ---- */
.myev{display:flex;flex-direction:column;gap:16px}
.myev-h{margin:6px 0 0;font-size:18px;display:flex;align-items:center;gap:8px}
.myev-list{display:flex;flex-direction:column;gap:10px}
.myev-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--c,var(--line))}
.myev-row.past{opacity:.8}
.myev-main{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:4px}
.myev-main h3{margin:0;font-size:17px}
.myev-main h3 a{color:inherit;text-decoration:none}
.myev-main h3 a:hover{text-decoration:underline}
.myev-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.myev-act{display:flex;flex-wrap:wrap;gap:8px}
.myev-past summary{cursor:pointer;font-weight:700;padding:10px 0}
.myev-past .myev-list{margin-top:8px}
.pay-row .pr-name a{color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:var(--line)}
.pay-row .pr-name a:hover{text-decoration-color:currentColor}

/* ---- metodi di pagamento: PayPal, Revolut, Satispay ---- */
.pay-methods{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pay-tag{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.pay-tag strong{font-size:16px;user-select:all}
.pay-how{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2)}
.pay-how select{min-height:40px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600}

/* avviso "attiva le notifiche" (js/app.js, pushCheck) */
.push-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 16px 0;padding:10px 12px;border-radius:16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);font-size:14px;line-height:1.35}
.push-bar .pb-ic{font-size:22px;flex:none}
.push-bar .pb-txt{flex:1;min-width:200px}
.push-bar .btn{flex:none;min-height:40px;padding:8px 16px;border-radius:999px}

/* contatore dei cuori: solo il totale, accanto al cuore (js/app.js, heart()) */
.heart .heart-n{font-size:13px;font-weight:700;line-height:1;margin-left:4px;color:var(--ink-2)}
.heart.on .heart-n{color:#E0245E}
.heart.has-n{width:auto;min-width:36px;padding:0 10px;border-radius:999px}
.erow .heart.has-n,.ccard .heart.has-n{padding:0 6px}

/* elenco degli iscritti in «I miei eventi» (js/app.js, myEventsView) */
.myev-people{margin-top:8px}
.myev-people summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--accent-text,var(--accent))}
.myev-people ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.myev-people li{display:flex;align-items:center;gap:8px;font-size:14px}
.myev-people li img{width:24px;height:24px;border-radius:50%;flex:none}
/* «I miei eventi»: i numeri (iscritti, pagamenti) si leggono bene, non come le etichette piccole */
.myev-stats .chip{font-size:13px;padding:4px 10px;letter-spacing:.02em;text-transform:none}
.myev-stats .chip.myev-n{font-size:16px;font-weight:700;padding:5px 14px}

/* ticket (js/app.js, ticketSection / ticketsView / ticketThreadView) */
.tkt-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.tkt-row{min-width:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.tkt-row.unread{border-color:var(--accent);background:var(--accent-soft)}
.tkt-row.closed{opacity:.75}
.tkt-row a{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none}
.tkt-sub{font-weight:700;overflow-wrap:anywhere}
.tkt-meta{overflow-wrap:anywhere}
.tkt-thread h2,.tkt-with{overflow-wrap:anywhere}
.tkt-last{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tkt-state{display:flex;gap:6px;align-items:center;flex:none}
.tkt-form{display:grid;gap:8px;margin:10px 0}
.tkt-form input,.tkt-form textarea,.tkt-reply textarea{width:100%;box-sizing:border-box;font:inherit;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.tkt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.tkt-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tkt-msgs{list-style:none;margin:12px 0;padding:0;display:grid;gap:10px}
.tkt-msg{display:flex;gap:10px;align-items:flex-start}
.tkt-msg>img{width:32px;height:32px;border-radius:50%;flex:none}
.tkt-msg>div{flex:1;min-width:0;padding:8px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line)}
.tkt-msg.me>div{background:var(--accent-soft)}
.tkt-body{white-space:pre-wrap;overflow-wrap:anywhere}
.tkt-reply{display:grid;gap:8px;margin-top:8px}
.tkt-with img{width:20px;height:20px;border-radius:50%;vertical-align:middle}
/* il pulsante «Chiedi info all'organizzatore» è grande e a tutta larghezza: è l'azione principale della sezione */
.tkt-ask{display:flex;align-items:center;justify-content:center;width:100%;min-height:60px;margin-top:12px;padding:14px 20px;font-size:19px;font-weight:700;border-radius:18px}
/* numero e stato dei ticket */
.tkt-num{font-weight:800;color:var(--accent-text,var(--accent))}
.chip.tkt-st-todo{background:var(--bad-soft);color:var(--bad)}
.chip.tkt-st-waiting{background:var(--warn-soft);color:var(--warn)}
.chip.tkt-st-answered{background:var(--ok-soft);color:var(--ok)}
.chip.tkt-st-closed{background:var(--surface-2);color:var(--ink-3)}
.tkt-state .chip{white-space:nowrap}
.chip.tkt-chip{text-decoration:none}
/* link alla parte pubblica (/eventi/) */
.gate-pub{text-align:center;margin:14px 16px 0;font-size:16px;font-weight:600}
.gate-pub a{color:var(--accent-text,var(--accent))}
#siteFoot .sf-link{font:inherit;color:inherit;text-decoration:underline;margin:0 8px}

/* Scheda dell'evento: testi e icone più grandi (come la scheda dei posti): Quando, Dove, Link, Descrizione, Iscritti */
.sheet-main .sec h4.sec-h{font-size:17px;font-weight:800;letter-spacing:.04em;color:var(--ink);margin-bottom:12px}
.sec-h .ico{width:24px;height:24px}
.fact .lbl{font-size:15px;font-weight:800;letter-spacing:.05em;color:var(--ink-2)}
.fact > .ico{width:46px;height:46px;padding:9px}
.fact .val{font-size:18px}
.fact .sub{font-size:16px}
.sched li{font-size:18px;grid-template-columns:48px 1fr auto}
.sched .n{font-size:14px}
.descbox{font-size:17px}
.people li{font-size:17px;gap:10px}
.people img{width:32px;height:32px}
.people .you{font-size:14px}
/* righe con icona sotto i titoli (data, luogo, link) */
.factline{font-size:16px}
.factline .ico{width:20px;height:20px}
.factline .ext{font-size:16px}

/* telefono e tablet: le sezioni (Eventi, Trekking, Concerti, Cinema, Idee, Dove andare, Dove mangiare) vanno a capo invece di allargare la pagina oltre lo schermo
   (con Evently, Classico e Originale la riga restava unica e il telefono rimpiccioliva tutto) */
@media (max-width:1000px){
  .sections{flex-wrap:wrap}
  .sections button{white-space:nowrap}
}

/* titoli lunghi senza spazi vanno a capo anche in «I miei eventi» (con i temi diversi da Vetrina sporgevano dallo schermo) */
.myev-main,.erow-main{min-width:0;overflow-wrap:anywhere}   /* titolo, luogo e link lunghi senza spazi vanno a capo */
/* Dove e Link: l'icona sta al centro del testo che le sta accanto, qualunque sia il numero di righe */
.fact{align-items:center}

/* leggibilità (tutti i temi): testo di categoria un po' più scuro in chiaro, invariato in scuro (--cmix); riepilogo pagamenti */
.chip.cat{color:color-mix(in srgb,var(--c) var(--cmix,80%),#000)}
.ctile:not(.all){color:color-mix(in srgb,var(--c) var(--cmix,80%),#000)}
.pay-sum .hot span{color:#5b4300}

/* schermi larghi (tutti i temi, come Vetrina): colonna fino a 1800 px con meno margine ai lati, invece di restare a 860 px con grandi vuoti */
@media (min-width:900px){
  .wrap{max-width:1800px;padding-inline:clamp(24px,2.5vw,40px)}
}

/* genere del concerto (Techno, Classica, Hip hop…) accanto alla categoria */
.chip.genre{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}

/* ---- «Da scoprire» → Ricerche: riepilogo in cima e carte delle ricerche automatiche ---- */
.scan-sum{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:12px 0;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:14px;color:var(--ink-2)}
.scan-sum.bad{border-color:var(--bad);background:var(--bad-soft);color:var(--ink)}
.scan-sum-t{font-weight:700;color:var(--ink)}
.scan-sum .btn{margin-left:auto}
.scans{display:flex;flex-direction:column;gap:22px;margin-top:14px}
.scans h3{margin:0 0 8px;font-size:19px}
.scan-how{padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.scan-steps{margin:0 0 12px;padding:0;list-style:none;counter-reset:s;display:grid;gap:10px}
.scan-steps li{counter-increment:s;display:grid;grid-template-columns:32px minmax(0,1fr);gap:2px 12px;align-items:start}
.scan-steps li::before{content:counter(s);grid-row:1 / 3;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text,var(--accent));font-weight:800}
.scan-steps strong{font-size:15.5px}
.scan-steps span{color:var(--ink-2);font-size:14.5px;line-height:1.45}
.scan-week{margin:0;padding:0;list-style:none;display:grid;gap:6px;color:var(--ink-2)}
.scan-week strong{color:var(--ink)}
.scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,470px),1fr));gap:16px;align-items:start}
.scan-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);border-left:5px solid var(--ok)}
.scan-card.scan-mai{border-left-color:var(--ink-3)}
.scan-card.scan-errore{border-left-color:var(--bad)}
.scan-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.scan-top h3{margin:0;font-size:17px}
.scan-kind{margin:2px 0 6px;font-size:13px;font-weight:600;color:var(--ink-2)}
.scan-kind-claude{color:var(--accent-text,var(--accent))}
.scan-pill{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--ok-soft);color:var(--ok)}
.scan-mai .scan-pill{background:var(--surface-2);color:var(--ink-2)}
.scan-errore .scan-pill{background:var(--bad-soft);color:var(--bad)}
.scan-card p{margin:0;font-size:14px;color:var(--ink-2);overflow-wrap:anywhere}
.scan-card p strong{color:var(--ink)}
.scan-dl{margin:4px 0 0;display:grid;gap:8px;font-size:13.5px}
.scan-dl dt{font-weight:700;color:var(--ink);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
.scan-dl dd{margin:0;color:var(--ink-2);line-height:1.45;overflow-wrap:anywhere}
@media (max-width:640px){ .scan-sum .btn{margin-left:0;width:100%} .scan-how{padding:14px} }
.scan-card p.scan-help{padding:8px 10px;border-radius:10px;background:var(--bad-soft);color:var(--ink)}
.scan-card p.scan-sum2{color:var(--ink);font-size:14.5px}
.scan-det{border-top:1px solid var(--line);padding-top:8px}
.scan-det > summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--ink);padding:2px 0;list-style:none}
.scan-det > summary::before{content:"▸ ";color:var(--ink-3)}
.scan-det[open] > summary::before{content:"▾ "}
.scan-ol{margin:8px 0 8px;padding-left:22px;display:grid;gap:7px;font-size:13.5px;color:var(--ink-2);line-height:1.45}
.scan-ol li{overflow-wrap:anywhere}
.scan-card p.scan-not{font-size:13.5px;margin-top:4px}
.scan-det .scan-dl{margin-top:8px}
.scan-found{margin-top:8px;font-size:13.5px}
.scan-found summary{cursor:pointer;color:var(--accent-text,var(--accent));font-weight:600}
.scan-found ul{margin:6px 0 0;padding-left:18px;display:grid;gap:4px;color:var(--ink-2);overflow-wrap:anywhere}

/* ---- Amministrazione → Concerti ---- */
.cc{display:flex;flex-direction:column;gap:14px;margin-top:10px}
.cc-h{margin:14px 0 0;font-size:20px;letter-spacing:-.01em}
.cc-card{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:12px}
.cc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.cc-head h3{margin:0;font-size:17px}
.cc-over{background:var(--warn-soft);color:var(--warn)}
.cc-def{background:var(--surface-2);color:var(--ink-2)}
.cc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.cc-grid > .cc-check,.cc-grid > .cc-field:has(textarea),.cc-grid > .cc-locs{grid-column:1 / -1}
.cc-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.cc-l{font-weight:700;font-size:13px}
.cc-field input,.cc-field textarea{width:100%;box-sizing:border-box}
.cc-check{display:flex;align-items:center;gap:8px;font-weight:600}
.cc-locs{display:flex;flex-direction:column;gap:10px}
.cc-loc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;padding:12px;border:1px dashed var(--line);border-radius:12px}
.cc-loc .btn{align-self:end;grid-column:1 / -1;justify-self:start}
.cc-actions{display:flex;flex-wrap:wrap;gap:10px}
.cc-msg{margin:0;padding:8px 12px;border-radius:10px;font-size:14px}
.cc-msg.ok{background:var(--ok-soft);color:var(--ok)}
.cc-msg.bad{background:var(--bad-soft);color:var(--bad)}
.btn.armed{border-color:var(--bad);color:var(--bad)}
.cc-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.cc-stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cc-stat strong{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.cc-stat span{font-size:13.5px;color:var(--ink)}
.cc-sub{margin:16px 0 6px;font-size:16px}
.cc-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.cc-table{width:100%;border-collapse:collapse;font-size:14px}
.cc-table th,.cc-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.cc-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);background:var(--surface-2);white-space:nowrap}
.cc-table tbody tr:last-child td{border-bottom:0}
.cc-runs .scan-pill{white-space:nowrap}
.cc-runs tr.run-errore .scan-pill{background:var(--bad-soft);color:var(--bad)}
.cc-fix{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.cc-fix li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.cc-fix-b{display:flex;gap:8px}
/* Amministrazione → Artisti */
.ar-bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:10px 0}
.ar-filters{display:flex;flex-wrap:wrap;gap:8px}
.ar-q{flex:1 1 200px;min-width:0;max-width:340px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit}
.ar-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.ar-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ar-main{flex:1 1 260px;min-width:0;overflow-wrap:anywhere;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.ar-main .muted{flex:1 1 100%}
.ar-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ar-act select{min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
@media (max-width:760px){ .cc-grid,.cc-loc{grid-template-columns:1fr} .cc-card{padding:14px} }
.cc-run{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.cc-reqs .scan-pill{white-space:nowrap}
.cc-reqs tr.req-errore .scan-pill{background:var(--bad-soft);color:var(--bad)}
.cc-reqs tr.req-in-corso .scan-pill,.cc-reqs tr.req-richiesta .scan-pill{background:var(--warn-soft);color:var(--warn)}
.cc-city{border-style:solid;background:var(--surface-2)}
.cc-checks{display:flex;flex-wrap:wrap;gap:6px 18px;grid-column:1 / -1}
/* ---- Amministrazione → Cinema: attività sui film ---- */
.ci-table td,.ci-table th{vertical-align:top}
.ci-sort{border:0;background:none;padding:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;font-weight:700;white-space:nowrap}
.ci-open{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--ink);text-align:left;cursor:pointer;overflow-wrap:anywhere}
.ci-row.open td{background:var(--surface-2)}
.ci-detail-row td{background:var(--surface-2);padding:14px 16px}
.ci-detail{display:flex;flex-direction:column;gap:10px}
.ci-dl{margin:0}
.ci-dl dd ul{margin:4px 0 0;padding-left:18px;display:grid;gap:4px}
.ci-tl{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.ci-tl li{display:grid;grid-template-columns:24px 128px minmax(0,1fr);gap:4px 10px;align-items:start;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:14px}
.ci-tl-small li{background:var(--surface)}
.ci-when{color:var(--ink-2);font-size:13px;font-variant-numeric:tabular-nums}
.ci-txt{overflow-wrap:anywhere;min-width:0}
.ci-film{border:0;background:none;padding:0;font:inherit;color:var(--accent-text,var(--accent));font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.ci-filter{align-items:center}
.ci-filter select{max-width:100%}
@media (max-width:640px){ .ci-tl li{grid-template-columns:24px minmax(0,1fr)} .ci-when{grid-column:2} .ci-txt{grid-column:1 / -1} }
.ci-filter label{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}
.ci-filter select{min-width:0;flex:1 1 auto;width:100%}
.ci-film{overflow-wrap:anywhere;text-align:left;max-width:100%;display:inline}
.ci-tl li{min-width:0}
.cc-fix li{min-width:0}
.cc-fix li > div{min-width:0;overflow-wrap:anywhere;flex:1 1 220px}
.cc-fix-b{flex-wrap:wrap}

/* «Altre opzioni» del modulo evento e barra delle azioni delle schede: solo sul telefono nel tema Vetrina (css/vetrina.css); negli altri casi non si vedono */
.opt-toggle,.detail-bar{display:none}

/* proposta di descrizione di un film (organizzatori) */
.desccheck .desc-prop{margin:10px 0;padding:10px 14px;border-left:4px solid var(--accent);background:var(--surface-2);border-radius:8px;font-size:15px;line-height:1.45}
.desccheck .desc-old{margin-top:8px}
.desccheck .desc-old summary{cursor:pointer;font-size:13px;color:var(--ink-3)}

/* Amministrazione → Film: gestione dei film (trame proposte, film senza trama, da completare) */
.fm{display:flex;flex-direction:column;gap:14px}
.fm-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.fm-search{min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;min-width:220px;max-width:100%}
.fm-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);position:sticky;top:8px;z-index:6}
.fm-list{display:flex;flex-direction:column;gap:12px}
.fm-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.fm-row.sel{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.fm-row.fm-compact{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.fm-check{padding-top:4px}
.fm-check input{width:20px;height:20px}
.fm-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px}
.fm-head h3{margin:0;font-size:18px}
.fm-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fm-cols h4{margin:0 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.fm-old{margin:0;padding:10px 12px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:14px;line-height:1.45}
.fm-row textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;line-height:1.45;resize:vertical}
.fm-cnt{display:block;text-align:right}
.fm-src{margin:8px 0}
/* Amministrazione → Film: schede-filtro, copertine e righe */
.fm-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.fm-stat{font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px;transition:border-color .15s,box-shadow .15s,transform .15s}
.fm-stat:hover{border-color:var(--accent)}
.fm-stat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fm-stat[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.fm-stat.zero strong{color:var(--ink-3)}
.fm-stat small{font-size:12px;line-height:1.3}
.fm-tools-b{display:flex;flex-wrap:wrap;gap:8px}
.fm-cover{display:block;width:112px;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:var(--surface-2);border:1px solid var(--line)}
.fm-cover.vuota{display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--ink-3)}
.fm-cover.sm{width:72px;flex:none}
.fm-cover-b{padding:0;border:0;background:none;cursor:pointer;border-radius:8px;align-self:center}
.fm-cover-b:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fm-row.fm-compact.fm-film{grid-template-columns:auto minmax(0,1fr) auto;gap:14px}
.fm-head-c{align-items:center;flex-wrap:nowrap;gap:12px}
.fm-head-c > div{min-width:0;display:flex;flex-direction:column;gap:2px}
@media (max-width:1100px){.fm-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fm-lk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.fm-lk li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){
  .fm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fm-row.fm-compact.fm-film{grid-template-columns:72px minmax(0,1fr);gap:10px 12px}
  .fm-row.fm-compact.fm-film .fm-cover{width:72px}
  .fm-row.fm-compact.fm-film .cc-fix-b{grid-column:1/-1}
  .fm-tools-b{width:100%}.fm-tools-b .btn{flex:1}
}
@media (max-width:720px){ .fm-cols{grid-template-columns:1fr} .fm-row.fm-compact{grid-template-columns:1fr} .fm-search{width:100%} }

.ar-main a{color:var(--accent-text,var(--accent))}
.ar-confirm{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:4px 0 10px}

/* Concerti: «Giorno» = calendario per scegliere una data precisa, accanto a «Quando» */
.searchbar .s-day{flex:none;border-left:1px solid var(--line)}
.searchbar .s-day input,.v-search .s-day input{width:auto;min-width:130px;font:inherit;font-size:15px}
.v-search .s-day{flex:0 0 auto}
@media (max-width:640px){ .v-search .s-day{flex:1 1 auto} .v-search .s-day input{width:100%} }
.dayfilter .day-pick{min-height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
/* Concerti: «Giorno» e «Locale» sulla stessa riga (vanno a capo da soli se non ci stanno) */
.con-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 26px;margin-bottom:6px}
.con-filter-row:empty{display:none}
.con-filter-row > .provfilter{flex:0 1 auto;margin:0}
.sortfilter .sortby{display:inline-flex}

/* Modulo evento: prezzo del biglietto «da – a» su una riga */
.price-row{display:flex;align-items:center;gap:8px}
.price-row input{flex:1 1 0;min-width:0}
.price-row span{color:var(--ink-3);font-weight:700}

/* tinta del giorno (--dh, 0-359): ogni giorno ha il suo colore, uguale per tutti gli eventi dello stesso giorno (app e pagine pubbliche) */
.datebadge.dc{background:linear-gradient(150deg,hsl(var(--dh) 78% 46%),hsl(var(--dh) 72% 32%));border-color:hsl(var(--dh) 70% 60%);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 4px 14px hsl(var(--dh) 80% 30% / .45)}
.datebadge.dc,.datebadge.dc *{color:#fff!important}
.stub.dc{background:linear-gradient(160deg,hsl(var(--dh) 72% 46%),hsl(var(--dh) 68% 30%));color:#fff}
.stub.dc .t{border-top-color:rgba(255,255,255,.35)}

/* colore per genere musicale (chip «Rock», «Jazz»… sulle schede e negli elenchi): stesso colore nell'app e nelle pagine pubbliche */
.g-techno{--gc:#19b5ff}.g-elettronica{--gc:#8a3ffc}.g-rock{--gc:#ef4056}.g-indie{--gc:#2fd16b}.g-pop{--gc:#ff2d95}.g-hip-hop{--gc:#ff8a1a}
.g-jazz{--gc:#f5c518}.g-classica{--gc:#d9a066}.g-folk{--gc:#9bc53d}.g-metal{--gc:#8896ff}.g-world{--gc:#14b8a6}.g-altro{--gc:#94a3b8}
.chip.genre[class*=" g-"]{background:color-mix(in srgb,var(--gc) 20%,var(--surface));color:color-mix(in srgb,var(--gc) 62%,var(--ink));border:1px solid color-mix(in srgb,var(--gc) 55%,var(--line));font-weight:700}

/* concerto senza locandina: medaglione nel colore del genere (--gc, lo stesso del chip) con anelli da disco e l'icona del genere */
.cover.gcover{--c:var(--gc);position:relative;overflow:hidden;
  background:radial-gradient(70% 70% at 78% 18%,color-mix(in srgb,var(--gc) 55%,#fff),transparent 62%),linear-gradient(145deg,var(--gc),color-mix(in srgb,var(--gc) 45%,#0b0920))}
.cover.gcover::before{content:"";position:absolute;right:-12%;bottom:-38%;width:78%;aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:repeating-radial-gradient(circle,transparent 0 9px,rgba(255,255,255,.14) 9px 10px)}
.cover.gcover .cover-ic{position:relative;z-index:1;width:1.7em;height:1.7em;display:grid;place-items:center;font-size:44px;border-radius:50%;transform:rotate(-8deg);
  background:radial-gradient(circle at 32% 26%,color-mix(in srgb,var(--gc) 45%,#fff),var(--gc) 58%,color-mix(in srgb,var(--gc) 50%,#0b0920));box-shadow:0 0 0 3px rgba(255,255,255,.25),0 10px 26px color-mix(in srgb,var(--gc) 60%,transparent)}

/* ♡ preferito: niente cerchio. Sulle copertine è un cuore bianco con ombra morbida (si legge anche su foto chiare), da attivo rosa acceso con un alone */
button.heart{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border:0}
.cover .heart{top:8px;right:8px;width:44px;height:44px;font-size:30px;color:#fff;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.65)) drop-shadow(0 3px 8px rgba(0,0,0,.45));transition:transform .18s,filter .2s}
.cover .heart:hover{transform:scale(1.18)}
.cover .heart:active{transform:scale(.92)}
.cover .heart.on{color:#ff2d6a;filter:drop-shadow(0 0 7px rgba(255,45,106,.75)) drop-shadow(0 2px 4px rgba(0,0,0,.45));animation:cuore-pop .35s ease}
.cover .heart.has-n{width:auto;min-width:44px;padding:0 6px;border-radius:0}
.cover .heart .heart-n,.cover .heart.on .heart-n{color:#fff;font-size:14px;text-shadow:0 1px 3px rgba(0,0,0,.8)}
@keyframes cuore-pop{0%{transform:scale(.7)}60%{transform:scale(1.3)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){ .cover .heart.on{animation:none} }

/* ===== Modulo «Nuova proposta»: sezioni numerate, giorno e orario con scorciatoie e riepilogo in chiaro ===== */
.propose .grid{row-gap:14px}
.f-sec{grid-column:1 / -1;display:flex;align-items:center;gap:10px;margin:8px 0 -2px;font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.01em;color:var(--ink)}
.f-sec:first-child,.f-sec:first-of-type{margin-top:0}
.f-sec span{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px;font-weight:800;font-family:var(--body)}
.f-sec::after{content:"";flex:1;height:1px;background:var(--line)}
.days{gap:12px}
.day-row{padding:14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--accent) 4%,var(--surface-2));row-gap:10px}
.day-row .sub span{font-size:13px;font-weight:700;color:var(--ink-2)}
.day-row .sub input{min-height:46px;font-size:16px;font-weight:600}
.day-row input.tm-in{min-height:46px;font-size:17px}
.day-quick,.day-row .time-quick{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.day-quick .tq-l,.day-row .time-quick .tq-l{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);min-width:46px}
.day-quick .dq,.day-row .time-quick button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 13px;font-size:14px;font-weight:600;cursor:pointer;line-height:1.3;transition:background .15s,border-color .15s,transform .1s}
.day-quick .dq:hover,.day-row .time-quick button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text,var(--accent))}
.day-quick .dq:active,.day-row .time-quick button:active:not(:disabled){transform:scale(.96)}
.day-quick .dq.on,.day-row .time-quick button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.day-sum{grid-column:1 / -1;padding:10px 14px;border-radius:12px;font-size:15px;font-weight:700;line-height:1.35;background:var(--surface);border:1px dashed var(--line);color:var(--ink-2)}
.day-sum.ok{background:color-mix(in srgb,var(--ok) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line));color:var(--ink)}
.day-sum.warn{background:color-mix(in srgb,var(--warn) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));color:var(--ink)}
.day-sum.hint{font-weight:600}
.propose .add-day{align-self:flex-start;font-weight:700}
@media (max-width:640px){
  .day-row{padding:12px}
  .day-quick,.day-row .time-quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-12px;padding:2px 12px}
  .day-quick::-webkit-scrollbar,.day-row .time-quick::-webkit-scrollbar{display:none}
  .day-quick .dq,.day-row .time-quick button,.day-quick .tq-l,.day-row .time-quick .tq-l{flex:none;white-space:nowrap}
  .day-row .time-quick .tq-clear{margin-left:0}
  .day-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);position:relative}
  .day-row > span:empty{display:none}
  .day-row .rm{position:absolute;top:6px;right:6px;width:32px;height:32px}
  .day-row input.tm-in{font-size:16px;padding-inline:8px}
}
.field:has(> #f-days) > .lbl{display:none}   /* il titolo «2 Quando» dice già cos'è */

/* ===== Modulo evento, seconda passata: anteprima dal vivo, suggerimenti, ripetizione date, passi sul telefono ===== */
.f-steps{display:none}
.f-nav{display:none}
.chip-sug{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--ink);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;cursor:pointer;margin:0 8px 6px 0;line-height:1.3}
.chip-sug:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}
.chip-sug.last{border-style:solid;font-weight:700}
.f-sug,.f-last{margin:-4px 0 0}
.f-last .hint{display:block;margin-top:2px}
.f-place-st{display:block;margin-top:6px;font-weight:600;color:var(--ink-2)}
.rep-btns{display:flex;flex-wrap:wrap;gap:8px}
.rep-panel{margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.rep-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.rep-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;cursor:pointer}
.rep-tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.rep-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600}
.rep-row select,.rep-row input{width:auto;min-width:0;min-height:42px;font-size:16px}
.rep-row input{width:72px;text-align:center}
.rep-pre{margin:10px 0;padding:9px 12px;border-radius:12px;background:var(--surface);border:1px dashed var(--line);font-size:14px;font-weight:600;line-height:1.5;color:var(--ink-2)}
.rep-cal{display:flex;justify-content:center;margin:8px 0}
.rep-cal > input{display:none}
.rep-panel .btn.primary{margin-top:4px}
/* anteprima */
.f-prev{display:none;margin:0}
.fp-t{font-family:var(--display);font-weight:700;font-size:15px;margin-bottom:8px;color:var(--ink)}
.fp-t small{font-family:var(--body);font-weight:500;color:var(--ink-3);font-size:12px}
.fp-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.fp-cover{position:relative;height:150px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,hsl(var(--dh,215) 70% 52%),hsl(calc(var(--dh,215) + 55) 70% 36%))}
.fp-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fp-card[class*=" g-"] .fp-cover{background:linear-gradient(135deg,var(--gc),color-mix(in srgb,var(--gc) 45%,#000))}
.fp-ic{font-size:54px;filter:drop-shadow(0 3px 8px rgba(0,0,0,.35))}
.fp-date{position:absolute;left:12px;top:12px;display:flex;flex-direction:column;align-items:center;min-width:48px;padding:5px 8px;border-radius:12px;background:#fff;color:#111;box-shadow:0 3px 10px rgba(0,0,0,.3);line-height:1}
.fp-date b{font-size:22px;font-weight:800}
.fp-date i{font-style:normal;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--dh,215) 70% 38%)}
.fp-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}
.fp-title{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}
.fp-title.empty,.fp-line.empty{color:var(--ink-3);font-weight:500}
.fp-chips{display:flex;flex-wrap:wrap;gap:6px}
.fp-chip{padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:700;background:color-mix(in srgb,var(--accent) 14%,var(--surface-2));color:var(--ink)}
.fp-chip.gc{background:color-mix(in srgb,var(--gc,var(--accent)) 24%,var(--surface-2))}
.fp-chip.free{background:color-mix(in srgb,var(--ok) 22%,var(--surface-2))}
.fp-line{font-size:14px;font-weight:600;color:var(--ink-2);overflow-wrap:anywhere}
@media (min-width:1100px){
  #form:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr) 340px;column-gap:28px;align-items:start}
  #form > h2,#form > .grid,#form > .form-actions{grid-column:1}
  #form > .f-prev{display:block;grid-column:2;grid-row:1 / span 3;position:sticky;top:16px}
}
@media (max-width:640px){
  #form .f-steps{display:flex;gap:6px;list-style:none;margin:0 0 4px;padding:0}
  .f-steps li{flex:1;min-width:0}
  .f-steps li button{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;padding:2px 0;cursor:pointer;color:var(--ink-3);font-size:12px;font-weight:700}
  .f-steps li b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-2);border:2px solid var(--line);font-size:13px;color:var(--ink-2)}
  .f-steps li.on button{color:var(--ink)}
  .f-steps li.on b{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .f-steps li.done b{background:color-mix(in srgb,var(--ok) 25%,var(--surface));border-color:var(--ok);color:var(--ink)}
  #form:not(.show-all)[data-cur="1"] .grid > [data-step]:not([data-step="1"]),
  #form:not(.show-all)[data-cur="2"] .grid > [data-step]:not([data-step="2"]),
  #form:not(.show-all)[data-cur="3"] .grid > [data-step]:not([data-step="3"]),
  #form:not(.show-all)[data-cur="4"] .grid > [data-step]:not([data-step="4"]){display:none}
  #form[data-cur] .f-sec{display:none}   /* il titolo del passo lo dice già la barra in alto */
  #form[data-cur] .f-nav{display:inline-flex;justify-content:center}
  #form[data-cur="1"] #f-back,#form[data-cur="4"] #f-next{display:none}
  #form[data-cur="1"] #f-submit,#form[data-cur="2"] #f-submit,#form[data-cur="3"] #f-submit{display:none}
  #form[data-cur] #f-next,#form[data-cur] #f-submit{flex:1 1 auto;min-height:48px}
  #form[data-cur] #f-back{order:1}#form[data-cur] #f-next,#form[data-cur] #f-submit{order:2}#form[data-cur] #f-cancel{order:3}
  #form[data-cur="4"] .f-prev{display:block}
  #form:not([data-cur="4"]) .f-prev{display:none}
  .f-prev{margin:4px 0 8px}
  .fp-cover{height:130px}
  .rep-btns .btn{flex:1 1 100%}
  .rep-panel{padding:12px}
}
#form > .f-prev{top:96px}
.rep-cal .flatpickr-calendar.inline{width:100%;max-width:320px;box-shadow:none}
.rep-cal .flatpickr-innerContainer,.rep-cal .flatpickr-rContainer,.rep-cal .flatpickr-days,.rep-cal .dayContainer{width:100%;min-width:0;max-width:none}
.rep-cal .flatpickr-day{max-width:none;height:38px;line-height:38px}
.fp-up{position:absolute;right:10px;bottom:10px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fp-upb{display:inline-flex;align-items:center;gap:4px;padding:7px 13px;border-radius:999px;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:13px;font-weight:700;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);line-height:1.2}
.fp-upb:hover{background:rgba(0,0,0,.8)}

/* ===== Modulo evento, terza passata: bozza, doppioni, luoghi recenti, riepilogo, errori sotto il campo ===== */
.fp-title.vuoto,.fp-line.vuoto{color:var(--ink-3);font-weight:500;font-style:italic}
body:has(#form:not([hidden])) #list{display:none}   /* con il modulo aperto la home e l'elenco sotto distraggono */
.req{color:var(--bad,#c33);font-weight:800}
.f-reqnote{margin:-6px 0 0;font-size:12.5px;color:var(--ink-3)}
.f-draft{display:flex;flex-wrap:wrap;gap:4px}
.place-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.place-chips .tq-l{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-right:2px}
.place-chips .pc{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;cursor:pointer;line-height:1.3;max-width:100%}
.place-chips .pc:hover{border-color:var(--accent)}
.f-dup{padding:11px 14px;border-radius:12px;background:color-mix(in srgb,var(--warn) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));font-size:14.5px;line-height:1.45;color:var(--ink)}
.f-dup .hint{margin-top:4px;font-weight:500;color:var(--ink-2);font-size:13px}
.field.err input,.field.err select,.field.err textarea{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 22%,transparent)}
.f-err{display:block;margin-top:6px;color:var(--bad);font-weight:700;font-size:13.5px}
.field .f-err{color:var(--bad);font-weight:700;font-size:13.5px}   /* «.field small» (grigio, 400) la copriva: l'errore sotto il campo sembrava una nota */
.f-recap{display:none;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);overflow:hidden}
.rc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px}
.rc-row + .rc-row{border-top:1px solid var(--line)}
.rc-row small{display:block;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.rc-t{font-size:15px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.rc-t.vuoto{color:var(--ink-3);font-style:italic;font-weight:500}
.rc-edit{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;font-size:13.5px;font-weight:700;cursor:pointer}
/* scorciatoie un po' più compatte: «Senza orario» non resta da solo su una riga */
.day-quick .dq,.day-row .time-quick button{padding:6px 11px;font-size:13.5px}
.day-quick,.day-row .time-quick{gap:5px}
.day-quick .tq-l,.day-row .time-quick .tq-l{min-width:40px}
.day-row .time-quick .tq-clear{margin-left:auto;text-decoration:none;color:var(--ink-2)}
@media (max-width:640px){
  #form[data-cur] .f-recap{display:flex}
  .place-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-2px;padding:2px}
  .place-chips::-webkit-scrollbar{display:none}
  .place-chips .pc,.place-chips .tq-l{flex:none;white-space:nowrap}
  .f-dup{font-size:14px}
}
body:has(#form:not([hidden])) :is(#search,#tabs,#filters,#siteFoot){display:none!important}
/* artista del concerto, avvisi «da ricontrollare» */
.f-artist-st{display:block;margin-top:6px}
.f-warn{padding:11px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border:1px solid var(--line);font-size:14.5px;line-height:1.45;color:var(--ink);display:flex;flex-direction:column;gap:6px}
.f-warn .wr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.f-warn .wr span{flex:1 1 220px}
.f-warn .chip-sug{margin:0}
/* solo computer: scorciatoia «Cambia aspetto» accanto al profilo (su telefono e tablet resta nel profilo) */
.look-quick{font-size:17px;min-width:36px;padding-inline:8px;line-height:1}
@media (max-width:900px){ .look-quick{display:none} }

/* Computer (2026-10-08, audit tastiera/bersagli): bersagli almeno 24 px (WCAG 2.2) e testi almeno 12 px */
.stars-input .star{min-width:28px;min-height:28px;display:inline-flex;align-items:center;justify-content:center}
#siteFoot .sf-link{display:inline-block;padding:4px 0;min-height:24px}
.badge{font-size:12px}
.field small{font-size:12px}

/* caricamenti uniformi (loadingEl in app.js): cerchio che gira + testo */
.loading{display:flex;align-items:center;gap:10px}
.loading .spin{flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent-strong,var(--accent,currentColor));animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.loading .spin{animation:none;border-top-color:var(--line);border-style:dotted}}
.locate-note{margin:-4px 0 8px}

/* Menu a tendina (Quando?, Ordina per, Provincia…): l'elenco che si apre prende colore e sfondo dal tema; senza uno sfondo proprio il testo chiaro finiva su fondo bianco
   e i valori non si vedevano (2026-10-09, v118). */
select option,select optgroup{background-color:var(--surface);color:var(--ink)}

/* Profilo: impostazioni di servizio in una fisarmonica (A-49) */
.pf-more{border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.pf-more>summary{cursor:pointer;padding:16px 20px;font-weight:700;font-size:var(--t-md);min-height:44px;box-sizing:border-box}
.pf-more-body{display:flex;flex-direction:column;gap:14px;padding:0 12px 14px}
@media (min-width:640px){.pf-more{background:none;border:0}.pf-more>summary{display:none}.pf-more-body{padding:0}}

/* «Forse cercavi «…»?» nei messaggi di ricerca senza risultati (principio 25) */
.forse{margin:6px 0 0;font-size:16px}
.forse .linkish{font:inherit;font-weight:700;background:none;border:0;padding:2px 4px;color:var(--accent-text,var(--accent));text-decoration:underline;cursor:pointer}

/* Mappa con l'icona della categoria su ogni segnaposto (Lista | Mappa, D10; 2026-10-10) */
.lm-pin{background:none;border:0}
.lm-pin span{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#fff;border:2px solid var(--accent,#e11d74);box-shadow:0 4px 10px rgba(0,0,0,.35)}
.lm-pin i{font-style:normal;font-size:17px;line-height:1;transform:rotate(45deg)}
.v-map-full .v-map-box{min-height:62vh!important;height:62vh}

/* menu del profilo (A-63): foto con freccia in alto a destra */
.me-caret{font-size:12px;line-height:1;color:var(--ink-2)}
.me-link[aria-expanded="true"]{background:var(--surface-2)}
.me-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:230px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;padding:6px;border-radius:14px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 32px rgba(0,0,0,.22)}
.me-menu[hidden]{display:none}
.pm-head{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;min-width:0}
.pm-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-head small{color:var(--ink-2)}
.pm-item{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;font-weight:600;text-align:left;cursor:pointer}
.pm-item[hidden]{display:none}
.pm-item:hover,.pm-item:focus-visible{background:var(--surface-2)}
.pm-ic{flex:none;width:22px;text-align:center}
.pm-item .badge{margin-left:auto;position:static}
.pm-help{display:none}
@media (max-width:480px){ .pm-help{display:flex} }

/* ---- campanella delle notifiche (2026-10-11): pulsante dopo il «?», pannello sotto la testata; sul telefono foglio in basso ---- */
.bell-btn{position:relative;min-width:40px;min-height:40px;font-size:17px;padding:0 8px}
.bell-btn .badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px}
.bell-panel{position:fixed;z-index:60;top:64px;right:12px;width:min(400px,calc(100vw - 24px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.35);overflow:hidden}
.bell-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.bell-x{border:0;background:none;color:inherit;font-size:24px;line-height:1;min-width:44px;min-height:44px;margin:-8px -8px -8px 0;cursor:pointer}
.bell-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1}
.bell-item button{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;padding:12px 14px 12px 22px;min-height:44px;cursor:pointer;position:relative}
.bell-item button:hover,.bell-item button:focus-visible{background:var(--surface-2)}
.bell-item.unread button::before{content:"";position:absolute;left:8px;top:18px;width:8px;height:8px;border-radius:50%;background:var(--accent-strong,var(--accent))}
.bell-t{font-weight:700;font-size:15px}
.bell-b{color:var(--ink-2);font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bell-w{color:var(--ink-2);font-size:12.5px}
.bell-empty{padding:26px 16px;text-align:center;color:var(--ink-2)}
.bell-foot{margin:0;padding:9px 14px;font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--line)}
@media (max-width:640px){
  .bell-panel{top:auto;left:0;right:0;bottom:0;width:auto;max-height:78vh;border-radius:18px 18px 0 0;z-index:80;padding-bottom:env(safe-area-inset-bottom)}
}
/* campanella: il numero resta leggibile (≥ 12 px) e sul telefono il pulsante è grande 44 px come gli altri comandi */
.bell-btn .badge{min-width:18px;height:18px;font-size:12px;line-height:18px;top:-6px;right:-6px}
@media (max-width:640px){ .bell-btn{min-width:44px;min-height:44px} }

/* ---- scheda evento da 1100 px: testata a due blocchi, immagine | informazioni (A-91, piano docs/piano-scheda-evento.md) ----
   Sotto i 1100 px la scheda è quella di sempre (il codice non crea questi elementi). */
@media (min-width:1100px){
  .sheet-head.ev-head{grid-template-columns:7fr 5fr;min-height:380px}   /* niente altezza massima: con titolo, indirizzo, prezzo e sito lunghi la testata cresce invece di tagliare il pulsante «Sito ufficiale» */
  .ev-media{position:relative;display:block;overflow:hidden;background:var(--surface-2);isolation:isolate;min-height:380px;color:inherit}
  .ev-media .bk{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(26px) saturate(1.2) brightness(.85);transform:scale(1.1);z-index:0}
  .ev-media img{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:contain}   /* assoluta: l'immagine non decide l'altezza della testata */
  .ev-media.riempie img{object-fit:cover;object-position:center}
  .ev-media .cover{position:absolute;inset:0;z-index:1;aspect-ratio:auto}
  .ev-media .cover-ic{font-size:120px}
  .sheet-title.ev-info{padding:26px 28px;gap:14px;border-left:1px solid var(--line);justify-content:flex-start}
  .sheet-title.ev-info h2{font-size:clamp(28px,2.8vw,40px);line-height:1.08;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-wrap:balance}
  .ev-when{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center}
  .ev-info .ev-when .stub{width:84px;padding:10px 4px;border-radius:12px}
  .ev-info .ev-when .stub .d{font-size:38px}
  .ev-when .wd2{font-weight:700;font-size:18px;line-height:1.25}
  .ev-when .hr2{margin-top:2px;font-size:15px;font-variant-numeric:tabular-nums;opacity:.85}
  .ev-when .rel{margin-top:4px;font-size:13px;font-weight:700;color:var(--accent-text,var(--accent))}
  .ev-line{display:flex;gap:10px;align-items:flex-start;font-size:15px;min-width:0}
  .ev-line > .ico{flex:none;width:22px;height:22px;margin-top:1px}
  .ev-line > .ico svg{display:block;width:100%;height:100%}
  .ev-line .tx{min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:2px}
  .ev-line .ad{opacity:.85}
  .ev-line a{font-weight:600}
  .ev-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:14px}
  .ev-meta > span{opacity:.9}
  .ev-meta .ev-site{min-height:46px;padding:10px 20px;font-size:17px;font-weight:700;border:2px solid var(--accent);background:var(--surface);color:var(--ink);text-decoration:none}   /* colori propri: nel blocco a tinta piena del tema Poster il testo ereditato sarebbe bianco su bianco */
  .ev-info .edited,.ev-info .from-idea{font-size:13px}
  .ev-info .edited{margin-top:auto}
}

/* scheda evento da 1100 px: barra superiore e pannello «Partecipa» (A-91 fase 4) */
@media (min-width:1100px){
  .ev-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
  .ev-bar a.btn,.ev-side a.btn{text-decoration:none;text-align:center}
  .ev-bar a.btn,.ev-side .addcal a.btn{color:inherit}   /* solo i link senza un colore proprio: «Entra nel gruppo WhatsApp» e i pulsanti primari (Prenota…) tengono il loro */
  .ev-bar > .btn,.ev-bar-actions > .btn{min-height:44px;padding:9px 16px;margin:0}
  .ev-bar .back{margin-right:0;margin-bottom:0;min-height:48px;padding:10px 22px;font-size:16px;font-weight:800;background:var(--surface);color:var(--ink);border:2px solid var(--accent)}
  .ev-bar .back:hover{background:var(--accent);color:var(--accent-ink,#fff)}
  .ev-bar-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto;justify-content:flex-end}
  .ev-bar .copyfield{flex:1 0 100%}
  .ev-side{gap:14px}
  .ev-side .seats > h4{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}   /* «Posti» resta per chi usa lo screen reader: il titolo visibile è «Partecipa» */
  .ev-side-h{margin:0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
  .ev-quota{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:15px}
  .ev-quota strong{font-size:20px;font-variant-numeric:tabular-nums}
  .ev-quota .linklike{background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--accent-text,var(--accent));text-decoration:underline;cursor:pointer}
  .ev-side .side-actions .btn.primary,.ev-side .side-actions .btn.joined{min-height:50px;font-size:16px;font-weight:700}
  .ev-ci-sei p{margin:0 0 6px;font-weight:600}
  .ev-cal > summary{list-style:none;cursor:pointer;text-align:center}
  .ev-cal > summary::-webkit-details-marker{display:none}
  .ev-cal[open] > summary{margin-bottom:8px}
  .ev-avatars{display:flex;align-items:center}
  .ev-avatars img{width:30px;height:30px;border-radius:50%;border:2px solid var(--surface-2);margin-left:-8px}
  .ev-avatars img:first-child{margin-left:0}
  .ev-avatars .more{margin-left:6px;font-size:13px;font-weight:700;color:var(--ink-2,var(--ink))}
}

/* scheda evento da 1100 px: barra di ancore e pannello «Partecipa» fisso (A-91 fase 5) */
@media (min-width:1100px){
  .sheet{overflow:clip}   /* ritaglia gli angoli come hidden, ma non impedisce a un elemento interno di restare fisso */
  .ev-anchors{position:sticky;top:var(--ev-top,0px);z-index:20;display:flex;gap:4px;padding:6px 14px;background:var(--surface);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
  .ev-anchors a{flex:none;padding:8px 14px;border-radius:999px;font-weight:600;font-size:14px;color:var(--ink-2,var(--ink));text-decoration:none;border:1px solid transparent}
  .ev-anchors a:hover{border-color:var(--line)}
  .ev-anchors a[aria-current="true"]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}
  .sheet-main > section[id^="ev-"]{scroll-margin-top:calc(var(--ev-top,0px) + var(--ev-anchors-h,48px) + 12px)}
  .ev-side.fisso{position:sticky;top:calc(var(--ev-top,0px) + var(--ev-anchors-h,48px) + 16px);align-self:start}
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }

/* stampa della scheda evento costruita per il computer (A-91): sulla carta le regole «da 1100 px» non valgono, quindi la scheda va resa semplice e piana */
@media print{
  .ev-bar,.ev-anchors,.ev-cal,.ev-ci-sei,.detail > .back{display:none!important}
  .ev-side.fisso{position:static}
  .sheet{overflow:visible}
  .ev-head{display:block;break-inside:avoid}
  .ev-media{display:block;position:relative;height:70mm;min-height:0}
  .ev-media .bk{display:none}
  .ev-media img{position:static;display:block;width:100%;height:100%;object-fit:contain}
  .ev-media .cover{position:static;height:40mm}
  .sheet-title.ev-info{padding:14px 0;display:flex;flex-direction:column;gap:10px}
  .ev-when{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center}
  .ev-info .ev-when .stub{width:70px;padding:8px 4px}
  .ev-line{display:flex;gap:10px;align-items:flex-start}
  .ev-line > .ico{flex:none;width:20px;height:20px}
  .ev-line > .ico svg{display:block;width:100%;height:100%}
  .ev-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
  .ev-meta .ev-site{min-height:0;padding:4px 10px;font-size:14px}
  .ev-avatars img{width:28px;height:28px;border-radius:50%}
  /* la carta è bianca e gli sfondi di solito non si stampano: la scheda diventa chiara in ogni tema (altrimenti il testo bianco del tema scuro sparirebbe) e i pulsanti d'azione, inutili su carta, si tolgono */
  .sheet{--surface:#fff;--surface-2:#fff;--ink:#111;--ink-2:#333;--ink-3:#555;--line:#bbb;background:#fff!important;color:#111!important;border:1px solid #bbb}
  .sheet-head,.sheet-title.ev-info,.sheet-body,.sheet-side,.sheet-main{background:#fff!important;color:#111!important}
  .sheet a,.sheet .ev-site{color:#111!important;background:#fff!important;border-color:#888!important}
  .ev-side .side-actions,.danger-zone,.tkt-ask,.copyfield,.ev-quota .linklike{display:none!important}
  .stub,.chip{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}


/* «Gestisci evento» (A-92 fase 3): iscritti con «Togli…» e registro delle persone tolte; sul telefono le righe vanno a capo */
.manage{display:flex;flex-direction:column;gap:18px}
.manage .ds-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mg-event{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.mg-event h3{margin:0}
.mg-act{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.mg-sec{display:flex;flex-direction:column;gap:10px}
.mg-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mg-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.mg-row img{width:34px;height:34px;border-radius:50%}
.mg-who{flex:1 1 200px;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.mg-who small{flex:1 0 100%}
.mg-row.armed{border-color:var(--bad)}
.mg-confirm{flex:1 0 100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mg-confirm p{flex:1 0 100%;margin:0}
.mg-removed .mg-row{opacity:.9}
@media (max-width:640px){ .mg-row .btn{min-height:44px} .mg-confirm .btn{flex:1 1 140px} }

.blocked-note{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--bad);border-radius:12px;background:var(--surface-2)}
.blocked-note p{margin:0}
.manage .ds-head .back{min-height:44px;font-weight:700;border:2px solid var(--accent);padding:8px 18px}
.mg-event h3 a{color:inherit;text-decoration:none}
.mg-event h3 a:hover{text-decoration:underline}


/* Concerti — «programma da festival» (A-104, ondata 2): il mese è un titolo editoriale (nome grande, anno piccolo e discreto), con più respiro tra i gruppi. Tutti i temi, sopra e sotto i 640 px. */
/* titoli dei gruppi dei Concerti: gli stessi degli Eventi (14/10/2026: il «programma mensile da festival» di A-104 è stato tolto su richiesta di uniformare le due pagine) */
.concerti-list > .month-h:first-child{margin-top:4px}

/* Concerti — locali riconoscibili (A-108, ondata 2): il nome del locale è in evidenza, l'indirizzo e la distanza più discreti; la spilla resta all'inizio della riga. Tutti i temi, telefono compreso. */
.factline .ven{font-weight:700;color:var(--ink)}
.factline .addr{font-size:.92em;color:var(--ink-2)}

/* Locandine protagoniste dei concerti (A-96 + A-105, ondata 2): nell'elenco la locandina sta in una cornice 4:3 (più alta del 16:10 di prima), intera su sfondo sfocato oppure a riempimento
   secondo `fitOf` (js/locandina.js); mai ritagliata a caso. Solo nell'elenco a schede (`.list.grid`): nelle strisce della home la copertina resta com'era. */
.list.grid .ecard.cat-musica .cover{aspect-ratio:4 / 3}   /* tutte le schede dei concerti hanno la stessa cornice, con o senza locandina */
.cover.poster{isolation:isolate;width:100%;min-width:0}
.cover.poster .bk{position:absolute;inset:-20px;z-index:0;background-size:cover;background-position:center;filter:blur(22px) saturate(1.2) brightness(.85);transform:scale(1.1)}
.cover.poster img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain}
.cover.poster.riempie img{object-fit:cover}
.cover.poster .datebadge,.cover.poster .heart{z-index:2}

/* Micro-dettagli veri (A-109, ondata 3): «Gratis», «Ultimo posto/Ultimi N posti», «Questa settimana»; compaiono solo quando i dati li confermano (js/dettagli.js). Colori già usati per gli stati (ok / attenzione / neutro). */
.chip.dettaglio.d-gratis{background:var(--ok-soft);color:var(--ok)}
.chip.dettaglio.d-ultimi{background:var(--warn-soft);color:var(--warn)}
.chip.dettaglio.d-settimana{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}

/* Accento di colore sotto la data (A-107 + A-113 + A-120, ondata 3, scelta 2 dell'utente): una barretta sotto il tagliando della data, del colore del genere per i concerti (--gc) e della categoria per
   gli altri eventi (--c). Decorativo: la categoria e il genere si leggono anche nelle pillole. Il colore pieno resta alla locandina e alla pillola, non si tinge la scheda. */
.ecard,.erow,.ccard{--acc:var(--gc,var(--c,transparent))}
.datebadge::after,.erow-date::after,.ccard-date::after{content:"";display:block;width:64%;height:4px;margin-top:5px;border-radius:2px;background:var(--acc)}
/* «Questa settimana» sulla scheda ripeterebbe il titolo del gruppo: nell'elenco degli eventi, già raggruppato per periodo, non si mostra (resta nella home e nei Concerti, dove non c'è quel titolo) */
#list.grid .chip.d-settimana,#list.rows .chip.d-settimana{display:none}

/* Un segnaposto per luogo (A-97, ondata 4): il numero delle date sul segnaposto e l'elenco nel fumetto; segnaposto neutro quando le categorie del luogo sono diverse. */
.lm-pin .lm-n{position:absolute;top:-6px;right:-8px;z-index:2;min-width:22px;height:22px;padding:0 5px;box-sizing:border-box;border-radius:11px;background:#161D2B;color:#fff;border:2px solid #fff;font:700 12px/18px system-ui,sans-serif;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.lm-pin.lm-mix span{border-color:#161D2B}
.leaflet-popup-content .lm-list{margin:6px 0 4px;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;max-height:200px;overflow:auto}
.leaflet-popup-content .lm-list a{display:block;padding:6px 0;min-height:40px}
.leaflet-popup-content .lm-list .lm-d{font-weight:700;margin-right:4px}

/* Scheda del locale (A-94, ondata 4): il nome del locale sulle schede è un pulsante discreto (stessa resa di prima, sottolineato al passaggio; area di tocco allargata senza cambiare l'altezza della riga)
   e, scelto un locale, l'elenco dei Concerti si apre con una intestazione: nome, indirizzo, quante date in arrivo, «Vedi sulla mappa» e «← Tutti i locali». Tutti i temi, telefono compreso. */
.factline button.ven{position:relative;background:none;border:0;padding:0;margin:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}
.factline button.ven:hover{text-decoration:underline}
.factline button.ven::after{content:"";position:absolute;inset:-12px -6px}
.venue-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:10px 0 14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.venue-head h2{margin:0;font-size:1.3rem;color:var(--ink)}
.venue-head p{margin:2px 0 0;color:var(--ink-2)}
.venue-head .vh-addr{display:flex;align-items:center;gap:6px}
.venue-head .vh-n{font-weight:700;color:var(--ink)}
.venue-head .vh-act{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.venue-head .btn{min-height:44px;display:inline-flex;align-items:center}
@media (max-width:640px){ .venue-head{padding:12px} .venue-head .vh-act{width:100%} }
.leaflet-popup-content .lm-vn{background:none;border:0;padding:0;margin:0;font:inherit;font-weight:700;color:inherit;cursor:pointer;text-decoration:underline;text-align:left;min-height:32px}
/* Telefono: il pulsante del locale è alto 44 px (area di tocco vera) ma con margini negativi non allarga la riga della scheda */
@media (max-width:640px){ .factline button.ven{display:inline-flex;align-items:center;min-height:44px;margin-block:-10px} }

/* Scheda evento sotto i 1100 px: badge «Iscritti» sull'immagine (o sotto il titolo se manca) e, al tocco, l'elenco dei nomi; la sezione «Iscritti» in fondo non c'è più */
.ev-hero{position:relative;margin-bottom:6px}
.ev-hero .ev-ppl{position:absolute;left:12px;bottom:-20px;z-index:2}   /* a cavallo del bordo in basso: non copre le scritte della locandina */
.ev-ppl{display:inline-block;align-self:flex-start}
.ev-badge{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 14px;border:0;border-radius:999px;background:rgba(12,14,22,.8);color:#fff;font:inherit;font-size:15px;font-weight:700;line-height:1.2;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px rgba(0,0,0,.4)}
.ev-badge .num{font-variant-numeric:tabular-nums;font-size:17px}
.ev-badge.full{background:#8a1c2b}
.ev-badge:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ppl-dlg{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);padding:16px 18px;width:min(420px,calc(100% - 32px));max-height:80dvh;overflow-y:auto;overscroll-behavior:contain}
.ppl-dlg::backdrop{background:rgba(10,14,24,.55)}
.ppl-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;font-size:18px}
.ppl-x{min-width:44px;min-height:44px;border:0;border-radius:50%;background:var(--surface-2);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.ppl-x:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ppl-posti{margin:0 0 12px;color:var(--ink-2);display:flex;flex-direction:column;gap:6px}
.ppl-bar{display:block;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.ppl-bar i{display:block;height:100%;background:var(--accent)}
@media (max-width:640px){
  .ppl-dlg{margin:auto 0 0;width:100%;max-width:none;box-sizing:border-box;border-width:1px 0 0;border-radius:22px 22px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .sheet-side .seats{display:none}   /* «Posti» sta nel badge sull'immagine */
}

/* Scheda evento sotto i 1100 px (seconda parte): immagine con sfondo sfocato, riga con l'essenziale, descrizione e sezioni che si ripiegano, calendario, condividi, eventi simili */
.ev-hero .ev-media{position:relative;display:block;overflow:hidden;isolation:isolate;border-radius:10px;background:var(--surface-2);color:inherit;text-decoration:none}
.ev-hero .ev-media .bk{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(26px) saturate(1.2) brightness(.85);transform:scale(1.1);z-index:0}
.ev-hero .ev-media img{position:relative;z-index:1;display:block;width:100%;height:auto;max-height:460px;object-fit:contain}   /* intera: l'altezza la decide l'immagine; ai lati di una locandina verticale si vede lo sfondo sfocato */
.ev-hero .ev-media.riempie img{position:absolute;inset:0;height:100%;max-height:none;object-fit:cover}
.ev-hero .ev-media.riempie{height:clamp(200px,54vw,380px)}
.ev-hero .ev-media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;z-index:2;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.4),transparent)}   /* il badge in basso si legge su qualsiasi immagine */
.ev-badge{position:relative;padding-bottom:12px;box-shadow:0 2px 10px rgba(0,0,0,.4),inset 0 0 0 2px var(--c,transparent);transition:transform .15s ease}
.ev-badge:active{transform:scale(.97)}
.ev-badge .mini{position:absolute;left:14px;right:14px;bottom:5px;height:3px;border-radius:2px;background:rgba(255,255,255,.28);overflow:hidden}
.ev-badge .mini i{display:block;height:100%;background:#fff}
.ev-badge-av{display:inline-flex;align-items:center}
.ev-badge-av img{width:24px;height:24px;border-radius:50%;border:2px solid #20232f;margin-left:-8px;background:#20232f}
.ev-badge-av img:first-child{margin-left:0}
.ppl-dlg[open]{animation:ppl-in .18s ease-out}
@keyframes ppl-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .ppl-dlg[open]{animation:none} .ev-badge{transition:none} }
.ppl-bar i{background:var(--c,var(--accent))}
.ev-riga{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.ev-riga .chip.rel{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.ev-riga .chip.ult{background:#8a1c2b;color:#fff}
.ev-desc-fold:not(.open){display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ev-desc-more{display:block;min-height:44px;margin-top:2px;padding:0 4px;border:0;background:none;color:var(--accent-text,var(--accent));font:inherit;font-weight:700;cursor:pointer;text-decoration:underline}
.ev-fold{border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.ev-fold > summary{display:flex;align-items:center;gap:8px;min-height:48px;padding:6px 14px;cursor:pointer;list-style:none;font-weight:800;font-size:17px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.ev-fold > summary::-webkit-details-marker{display:none}
.ev-fold > summary::after{content:"▾";margin-left:auto;transition:transform .15s ease}
.ev-fold[open] > summary::after{transform:rotate(180deg)}
.ev-fold > summary .ico{flex:none;width:24px;height:24px;color:var(--c,var(--accent))}
.ev-fold > .sec{padding:0 14px 14px}
.ev-fold > .sec > .sec-h{display:none}   /* il titolo lo dice già la riga che si tocca */
.ev-ci-cal > summary{list-style:none;cursor:pointer;text-align:center;min-height:46px;display:flex;align-items:center;justify-content:center}
.ev-ci-cal > summary::-webkit-details-marker{display:none}
.ev-ci-cal[open] > summary{margin-bottom:8px}
@media (min-width:641px){ .ev-ci-cal{display:none} }   /* da 641 px il calendario sta già nel pannello a lato */
.sheet-head{position:relative}
.ev-share{position:absolute;top:8px;right:8px;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:var(--surface-2);color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
.ev-share:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.sheet-head:has(.ev-share) .sheet-title{padding-right:56px}
.ev-simili{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.ev-sim{display:flex;gap:12px;align-items:center;min-height:64px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none}
.ev-sim:hover{border-color:var(--c,var(--accent))}
.ev-sim:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ev-sim-img{flex:none;width:64px;height:64px;border-radius:8px;overflow:hidden}
.ev-sim-img .cover{width:100%;height:100%;aspect-ratio:auto}
.ev-sim-img .cover-ic{font-size:28px}
.ev-sim-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.ev-sim-tx strong{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ev-sim-tx small{color:var(--ink-2,var(--ink));font-size:13px}
@media (min-width:1100px){ .ev-share{display:none} }
button.ev-avatars{background:none;border:0;padding:4px 0;min-height:44px;cursor:pointer;color:inherit;font:inherit}
button.ev-avatars:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media print{ .ev-share,.ev-badge,.ev-ppl,.ev-simili-sec{display:none!important} }

/* Scheda evento sotto i 1100 px: «Iscriviti» (e gli altri stati dell'iscrizione) sull'immagine, a destra del badge, a cavallo del bordo in basso */
.ev-join{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}
.ev-join .btn{width:auto;min-height:44px;padding:8px 18px;border-radius:999px;font-size:15px;font-weight:800;line-height:1.2;box-shadow:0 2px 10px rgba(0,0,0,.4)}
.ev-join .btn.joined{background:var(--surface);color:var(--ok);border-color:var(--ok)}
.ev-hero .ev-join{position:absolute;right:12px;bottom:-20px;z-index:2;max-width:calc(100% - 24px);flex-direction:column-reverse;align-items:flex-end;flex-wrap:nowrap}
.ev-riga-part{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.ev-join .btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}

/* Cinema: prossime proiezioni in una riga su carte e righe dei film («Oggi 20:15, 22:40 · Dom 17:30 · +4») */
.film-orari{font-size:14px;font-weight:600;line-height:1.35;margin:4px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.film-ecard .film-orari{color:var(--ink);font-size:13.5px}

/* Area riservata /admin (A-123): niente menu né pulsanti del sito normale, solo l'area; in cima «Torna al sito» */
html.area-admin #sections,html.area-organizzatore #sections,html.area-admin #bottomnav,html.area-organizzatore #bottomnav,html.area-admin #topActions > .btn,html.area-organizzatore #topActions > .btn:not(#openForm),html.area-admin .fab,html.area-organizzatore .fab,html.area-admin #gatePub,html.area-organizzatore #gatePub,html.area-admin .admin .btn.back,html.area-organizzatore .admin .btn.back{display:none!important}   /* «← Indietro» porterebbe alla home del sito: qui c'è «Torna al sito» */
.area-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 10px}
.area-bar.area-tabs .adm-tabs{margin:0}
.area-riservata{max-width:520px;margin:48px auto;padding:24px;text-align:center;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.area-riservata h2{margin:0 0 8px}.area-riservata p{margin:0 0 16px;color:var(--ink-2,var(--ink))}
.area-bar a.btn,.area-riservata a.btn{text-decoration:none}

/* /admin (A-123, fase 5): pannello laterale con le sezioni; sul telefono si apre con «☰ Sezioni» */
.adm-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}
.adm-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.adm-back{color:var(--ink-2);font-size:14px;font-weight:600;text-decoration:none;min-height:32px;display:flex;align-items:center}
.adm-back:hover{text-decoration:underline}
.adm-title{font-size:18px;margin:2px 0 6px}
.adm-shell .adm-nav.adm-tabs{display:flex;flex-direction:column;flex-wrap:nowrap;gap:0}
.adm-grp{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.adm-grp h3{margin:10px 0 4px;padding:0 12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-family:var(--body);font-weight:700}
.adm-shell .tab.adm-nav-i{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 12px;border:0;border-radius:10px;box-shadow:none;background:transparent;color:var(--ink);font:inherit;font-weight:600;text-align:left;cursor:pointer}
.adm-shell .tab.adm-nav-i:hover{background:var(--surface-2)}
.adm-shell .tab.adm-nav-i[aria-selected="true"]{background:var(--surface-2);color:var(--ink);font-weight:800;box-shadow:inset 3px 0 0 var(--accent)}
.adm-shell .tab.adm-nav-i:focus-visible{outline:3px solid var(--accent);outline-offset:-2px}
.adm-nav-toggle{display:none;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.adm-nav-toggle .adm-cur{font-weight:500;color:var(--ink-2)}
.adm-main{min-width:0;display:flex;flex-direction:column;gap:16px}
@media (max-width:900px){
  .adm-shell{grid-template-columns:1fr;gap:12px}
  .adm-side{position:static}
  .adm-nav-toggle{display:flex}
  .adm-shell .adm-nav.adm-tabs{display:none}
  .adm-shell.open .adm-nav.adm-tabs{display:flex}
}

/* Sotto-sezioni di Concerti, Cinema, Sagre e Corsi (A-123, fase 6): una barra con le parti, sotto solo quella scelta */
.adm-sub{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.adm-sub-i{min-height:44px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font:inherit;font-weight:600;cursor:pointer}
.adm-sub-i:hover{background:var(--surface-2);color:var(--ink)}
.adm-sub-i[aria-selected="true"]{background:var(--surface-2);color:var(--ink);font-weight:800;box-shadow:inset 0 -3px 0 var(--accent)}
.adm-sub-i:focus-visible{outline:3px solid var(--accent);outline-offset:-2px}
.adm-sub-corpo{display:flex;flex-direction:column;gap:12px}

/* /admin (A-123, fase 7, primo passo): aspetto sobrio e unico, uguale in tutti i temi del sito — sfondo neutro (chiaro o scuro come il dispositivo), caratteri di sistema, un solo colore d'accento, niente sfumature */
html.area-admin:root{
  color-scheme:light;
  --ground:#F3F4F6; --surface:#FFFFFF; --surface-2:#F6F7F9;
  --ink:#111827; --ink-2:#4B5563; --ink-3:#6B7280; --line:#D9DDE3;
  --accent:#1F4FD8; --accent-text:#1F4FD8; --accent-strong:#1F4FD8; --accent-ink:#FFFFFF; --accent-soft:#E6ECFB; --grad:linear-gradient(var(--accent),var(--accent));
  --ok:#1E7A4F; --ok-soft:#DDF1E6; --warn:#9A5A12; --warn-soft:#FBEBDD; --bad:#B42335; --bad-soft:#F9E0E3;
  --display:var(--body); --soft:0 1px 2px rgba(16,24,40,.06); --soft-hover:0 1px 3px rgba(16,24,40,.1);
  background:var(--ground);
}
@media (prefers-color-scheme: dark){
  html.area-admin:root:not([data-theme="light"]){
    color-scheme:dark;
    --ground:#0F1115; --surface:#171A21; --surface-2:#1D212A;
    --ink:#E5E7EB; --ink-2:#A1A8B5; --ink-3:#8B93A1; --line:#2B303B;
    --accent:#7C9BFF; --accent-text:#9DB3FF; --accent-strong:#7C9BFF; --accent-ink:#0B1020; --accent-soft:#1E2A4D;
    --ok:#6BD39E; --ok-soft:#173528; --warn:#F0A76A; --warn-soft:#3A2717; --bad:#FF8A97; --bad-soft:#3D1C22;
  }
}
html.area-admin:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#0F1115; --surface:#171A21; --surface-2:#1D212A;
  --ink:#E5E7EB; --ink-2:#A1A8B5; --ink-3:#8B93A1; --line:#2B303B;
  --accent:#7C9BFF; --accent-text:#9DB3FF; --accent-strong:#7C9BFF; --accent-ink:#0B1020; --accent-soft:#1E2A4D;
  --ok:#6BD39E; --ok-soft:#173528; --warn:#F0A76A; --warn-soft:#3A2717; --bad:#FF8A97; --bad-soft:#3D1C22;
}
html.area-admin:root body,html.area-admin:root:not([data-theme="light"]) body{background:var(--ground);color:var(--ink);font-family:var(--body)}
html.area-admin:root body::before,html.area-admin:root:not([data-theme="light"]) body::before{display:none}
html.area-admin header.top{background:var(--surface);border-bottom:1px solid var(--line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
html.area-admin h1,html.area-admin h2,html.area-admin h3{font-family:var(--body);letter-spacing:0}
html.area-admin .ds-private{background:transparent;border:1px solid var(--line);border-radius:6px;font-weight:500}
html.area-admin .adm-sub,html.area-admin .adm-side{border-radius:12px;box-shadow:none}
html.area-admin .admin .btn.primary{box-shadow:none}
html.area-admin .btn{border-radius:8px}
/* Da scoprire (A-123, fase 7): avvisi con barra a sinistra invece di riquadri colorati, filtri e schede con angoli piccoli, etichetta «non verificata» a contorno */
html.area-admin .ds-warn{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:10px;background:var(--surface)}
html.area-admin .scan-sum{border-radius:10px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--bad)}
html.area-admin .fchip{border-radius:8px;box-shadow:none}
html.area-admin .ds-tabs .tab{border-radius:8px;box-shadow:none}
html.area-admin .ds-tabs .tab[aria-selected="true"]{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}
html.area-admin .ds-card{border-radius:12px}
html.area-admin .ds-flag{background:transparent;border:1px solid var(--warn);color:var(--warn);border-radius:4px;letter-spacing:.04em}
/* Sistema e Statistiche (A-123, fase 7): riquadri con angoli piccoli; lo stato di un controllo si legge dal pallino e da una barra a sinistra, non da un contorno colorato */
html.area-admin .sys-list{gap:8px}
html.area-admin .sys-list li{border-radius:10px;border-color:var(--line);box-shadow:none}
html.area-admin .sys-list li.sys-attenzione{box-shadow:inset 3px 0 0 var(--warn)}
html.area-admin .sys-list li.sys-errore{box-shadow:inset 3px 0 0 var(--bad)}
html.area-admin .st-card{border-radius:12px}
html.area-admin .st-card strong{letter-spacing:0}
html.area-admin .st-per .tab,html.area-admin .st-tabs .tab{border-radius:8px}
html.area-admin .sys-list li.sys-attenzione,html.area-admin .sys-list li.sys-errore{border-color:var(--line)!important}
/* Schede delle ricerche (Concerti, Cinema, Sagre, Corsi) e Film (A-123, fase 7): angoli piccoli, stati a contorno, avvisi con barra a sinistra */
html.area-admin .scan-card,html.area-admin .cc-card,html.area-admin .cc-stat,html.area-admin .cc-fix li,html.area-admin .cc-tablewrap,html.area-admin .cc-loc{border-radius:10px}
html.area-admin .scan-pill{background:transparent;border:1px solid currentColor;border-radius:4px;font-weight:600}
html.area-admin .scan-errore .scan-pill,html.area-admin .cc-runs tr.run-errore .scan-pill,html.area-admin .cc-reqs tr.req-errore .scan-pill{background:transparent}
html.area-admin .cc-reqs tr.req-in-corso .scan-pill,html.area-admin .cc-reqs tr.req-richiesta .scan-pill{background:transparent}
html.area-admin .scan-help,html.area-admin .cc-msg.bad{background:var(--surface-2);color:var(--ink);border-radius:6px;border-left:3px solid var(--bad)}
html.area-admin .cc-msg.ok{background:var(--surface-2);color:var(--ink);border-left:3px solid var(--ok);border-radius:6px}
html.area-admin .datecheck{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:6px;color:var(--ink)}
html.area-admin .cc-over{background:transparent;border:1px solid var(--warn);border-radius:4px}

/* pagina dei sondaggi: intestazione con numeri e elenco a griglia */
.poll-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 28px;align-items:center;padding:24px 26px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,var(--surface)),var(--surface) 65%);margin:6px 0 18px}
.poll-hero h2{margin:0 0 6px;font-size:30px;line-height:1.15}
.poll-hero p{margin:0;max-width:60ch;color:var(--ink-2)}
.ph-stats{display:flex;gap:10px}
.ph-stat{display:grid;justify-items:center;min-width:84px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.ph-stat b{font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.ph-stat span{font-size:13px;color:var(--ink-2)}
.poll-hero .poll-new{grid-column:1 / -1;margin:0}
.poll-hero .poll-new .btn{font-size:17px;padding:13px 26px}
.poll-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:18px;align-items:start}
.poll-list .poll{max-width:none}
@media (max-width:640px){
  .poll-hero{grid-template-columns:minmax(0,1fr);padding:18px}
  .poll-hero h2{font-size:24px}
  .ph-stats{justify-content:space-between}.ph-stat{flex:1;min-width:0}
}
.poll-noshows{margin:0 0 2px 56px;font-size:13px}
@media (min-width:900px){.poll-noshows{margin-left:78px;font-size:14px}}

/* chat dell'evento (A-126) */
.ev-chat{display:grid;gap:10px}
.chat-nota{margin:0}
/* cene a tavoli (A-127) */
.tav-box{display:grid;gap:10px;margin-top:8px}
.ev-tavoli{display:grid;gap:10px}
.tav-tuo{margin:0;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line))}
.tav-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tav{padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface-2);display:grid;gap:8px;align-content:start}
.tav.mio{border-color:var(--accent);background:var(--surface)}
.tav-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.tav-persone{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tav-persone li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.tav-nome{font-weight:600}
.tav-sposta{font:inherit;font-size:14px;padding:3px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.tav-dieta{flex-basis:100%;color:var(--ink-2)}
.tav-dieta-box{display:grid;gap:6px}
.tav-dieta-riga{display:flex;gap:8px;flex-wrap:wrap}
.tav-dieta-riga input{flex:1;min-width:200px;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit}
.tav-strumenti{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tav-strumenti small{flex-basis:100%}

/* ===== Pulsanti dell'evento in risalto (17/10/2026): preferiti, copia link, condividi, WhatsApp, gestisci iscritti, modifica, crea come questo ===== */
.btn.q{font-weight:700;border-width:2px;white-space:nowrap;min-height:44px}
.btn.q-fav{border-color:#d63c76}
.btn.q-fav.fav-on{background:#c2185b;border-color:#c2185b;color:#fff}
.btn.q-copy,.btn.q-share{border-color:var(--accent)}
.btn.q-wa{background:#15803d;border-color:#15803d;color:#fff!important}
.btn.q-wa:hover{background:#166534;border-color:#166534}
.btn.q-gest,.btn.q-mod{background:#1f1a3d;border-color:var(--accent);color:#fff}   /* contrasto alto in ogni tema (bianco su viola scuro) */
.btn.q-dup{border-style:dashed;border-color:var(--accent)}
.ev-bar-actions .btn.q{min-height:46px;padding:9px 18px;font-size:15px}
.side-actions .btn.q{justify-content:center}
.btn.q-wa,.side-actions a.btn.q-wa{text-decoration:none}
.locale-cerca .place-pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:48px;width:100%}
.locale-cerca .place-pick small{color:var(--ink-2,inherit);opacity:.85}
.locale-scelto{margin:0;padding:10px 14px;border:2px solid var(--accent);border-radius:12px;font-weight:700}
.locale-scelto .linkish{margin-left:8px}

/* Concerti → Impostazioni: menu a schede (17/10/2026) */
.cc-menu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:8px 0 6px}
.cc-m{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-height:92px;transition:border-color .15s,box-shadow .15s}
.cc-m:hover{border-color:var(--accent)}
.cc-m[aria-selected="true"]{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.cc-m-i{font-size:22px;line-height:1}
.cc-m-t{font-weight:800;font-size:15px;line-height:1.2}
.cc-m-n{margin-top:auto;display:inline-block;padding:1px 10px;border-radius:99px;font-size:12.5px;font-weight:700;background:color-mix(in srgb,var(--ink) 10%,transparent)}
.cc-m.off .cc-m-n{background:color-mix(in srgb,var(--bad,#c0302b) 20%,transparent)}
.cc-m-d{margin:2px 0 12px;color:var(--ink-2,inherit);opacity:.9}
@media (max-width:900px){.cc-menu{display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.cc-menu::-webkit-scrollbar{display:none}.cc-m{flex:none;width:150px}}

/* Modulo «Proponi evento» più ordinato (17/10/2026): emoji piccole, durata solo dopo l'inizio, opzioni come riquadri uniformi */
.time-quick .tq-i{font-size:.9em;margin-right:2px}
.time-quick [hidden]{display:none!important}
.propose .opt-card{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:color-mix(in srgb,var(--ink) 3%,var(--surface))}
.propose .opt-card>label.check{display:flex;align-items:center;gap:10px;font-weight:700;margin:0}
.propose .opt-card>label.check small{font-weight:500;color:var(--ink-3)}
.propose .opt-card>.hint,.propose .opt-card>small.hint{display:block;margin:4px 0 0 28px;font-size:13px;line-height:1.35}
.propose .opt-card .tav-box,.propose .opt-card .pay-fields{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.propose .opt-card input[type="checkbox"]{width:18px;height:18px;flex:none}

/* carosello dei film nella home del Cinema (js/film-cinema.js): fila che scorre di lato, 6 per pagina (2 sotto i 900 px, uno e un pezzo sul telefono), frecce e pausa */
.v-caro{position:relative}
.v-caro>.v-cards{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 0 8px;margin-inline:0}
.v-caro>.v-cards::-webkit-scrollbar{display:none}
.v-caro>.v-cards>.ecard{flex:0 0 calc((100% - 90px) / 6);scroll-snap-align:start}
.v-caro>.v-cards:focus-visible{outline:3px solid var(--link,#0b5fd1);outline-offset:2px;border-radius:12px}
.v-ca{display:none;position:absolute;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:700 26px/1 system-ui,sans-serif;align-items:center;justify-content:center;padding:0 0 3px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.v-ca:hover{border-color:var(--accent)}
.v-ca:focus-visible{outline:3px solid var(--link,#0b5fd1);outline-offset:2px}
.v-caro.v-multi .v-ca{display:inline-flex}
.v-prev{left:-18px;top:46px}   /* a metà dell'immagine, mezza fuori dal bordo: non copre i chip «Uscito il…» e «▶ Trailer» sotto/sopra l'immagine */
.v-next{right:-18px;top:46px}
.v-pausa{position:static;margin:6px auto 0;width:auto;height:34px;border-radius:999px;padding:0 16px;font:600 13px/1 system-ui,sans-serif;box-shadow:none;opacity:.9}
.v-tit{display:flex;align-items:center;gap:14px;min-width:0;flex-wrap:wrap}
.v-tit .v-pausa{display:inline-flex;gap:7px;align-items:center;justify-content:center;margin:0;height:32px;font-size:13px}
.v-tit .v-pausa[hidden]{display:none}
@media (max-width:900px){.v-caro>.v-cards>.ecard{flex-basis:calc((100% - 18px) / 2)}}
@media (max-width:640px){
  .v-caro>.v-cards{margin-inline:-16px;padding:2px 16px 8px}
  .v-caro>.v-cards>.ecard{flex:0 0 84%}
  .v-prev,.v-next{display:none!important}   /* sul telefono si scorre col dito */
}
@media (prefers-reduced-motion:reduce){.v-caro>.v-cards{scroll-behavior:auto}}
.v-caro>.v-cards>.ecard{display:flex}   /* vince sulla regola del tema che nasconde dalla quinta scheda in poi: il carosello le mostra tutte */
.v-caro .film-ecard .foot:has(.film-min){display:none}   /* nel carosello niente durata: la riga resta solo se c'è «lo vorrebbe vedere» */
.v-caro .film-ecard .cover{flex:1 0 auto}   /* le schede di una fila hanno l'altezza della più alta (quelle con gli orari): lo spazio in più lo prende l'immagine, non un vuoto sotto */
.v-caro .film-ecard .cover:not(.auto){aspect-ratio:5 / 6}   /* locandina vera nel carosello: 5:6 (circa 10% più bassa del 3:4 del tema, ritaglio al centro) */
@media (min-width:641px){   /* computer: i film senza locandina (fotogramma del trailer o nessuna immagine) hanno tutti l'immagine della stessa altezza, 16:10, che non cresce: titoli e generi allineati; l'altezza della scheda resta quella di prima (immagine + testo della scheda più alta) */
  .v-caro .film-ecard .cover.da-trailer,.v-caro .film-ecard .cover.auto{aspect-ratio:16 / 10!important;height:auto!important;flex:0 0 auto}
  .v-caro .film-ecard .cover.da-trailer img.fr{width:100%!important;height:100%!important;object-fit:cover!important}
}
/* elenco del Cinema, vista «Schede»: la locandina (o il fotogramma del trailer) è lo sfondo di tutta la scheda, scurito da una sfumatura; il testo sta sopra */
.film-lista.cards .film{position:relative;isolation:isolate;grid-template-columns:minmax(0,1fr);min-height:225px;border-color:transparent;background:#12122a}
.film-lista.cards .film-poster{position:absolute;inset:0;z-index:-1;min-height:0;border:0;background:#12122a}
.film-lista.cards .film-poster img{object-position:50% 25%}
.film-lista.cards .film-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,28,.9) 0%,rgba(10,10,28,.72) 36%,rgba(10,10,28,.16) 62%,rgba(10,10,28,0) 100%)}   /* v494 ancora più leggero; v493: velo più leggero («le immagini dei film sono troppo scure»): a destra l'immagine è libera, a sinistra resta scuro per il testo */   /* v417: velo più leggero a destra, colori della locandina più vivi */
.film-lista.cards .film-poster img{filter:saturate(1.35) contrast(1.03) brightness(1.4)}   /* v494: ancora più luminose («quelli scuri non si vedono ancora bene») */   /* a destra resta il poster, ma i poster chiari non sbiancano la scheda */
.film-lista.cards .film-poster.none span{position:absolute;right:28px;top:50%;transform:translateY(-50%);font-size:64px;opacity:.35}
.film-lista.cards .film-poster.da-trailer img.fr{top:0!important;height:100%!important;aspect-ratio:auto;transform:none!important;box-shadow:none}
.film-lista.cards .film-poster.da-trailer img.bk{display:none!important}
.film-lista.cards .film-poster.da-trailer .tb{left:auto;right:12px;top:12px;bottom:auto;z-index:3}
.film-lista.cards .film .idea-body{position:relative;z-index:1;padding:16px 18px}
@media (min-width:641px){.film-lista.cards .film:has(.film-poster.da-trailer) .idea-body .meta{padding-right:92px}}   /* il segno «▶ Trailer» sta in alto a destra: la riga dei chip non ci passa sotto */
.film-lista.cards .film .idea-body h3,.film-lista.cards .film .idea-body p,.film-lista.cards .film .idea-body .muted{color:#fff}
.film-lista.cards .film .idea-body .film-orari{color:#fff}
.film-lista.cards .film .idea-body p{opacity:.92}
@media (max-width:640px){
  .film-lista.cards .film{min-height:200px}
  .film-lista.cards .film-poster.da-trailer .tb{top:auto;bottom:12px;right:12px}
  .film-lista.cards .film-poster::after{background:linear-gradient(180deg,rgba(10,10,28,.7) 0%,rgba(10,10,28,.9) 100%)}
}
/* elenco del Cinema, vista «Elenco» (righe): come nelle Schede, la locandina (o il fotogramma del trailer) è lo sfondo della riga, scurito da una sfumatura; il testo sta sopra */
.frow{position:relative;isolation:isolate;grid-template-columns:minmax(0,1fr) auto;min-height:96px;border-color:transparent;background:#12122a}
.frow .film-poster{position:absolute;inset:0;z-index:-1;min-height:0;border:0;background:#12122a}
.frow .film-poster img{object-position:50% 25%;filter:brightness(1.4) saturate(1.2)}   /* v494 */
.frow .film-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,28,.9) 0%,rgba(10,10,28,.76) 46%,rgba(10,10,28,.26) 80%,rgba(10,10,28,.08) 100%)}   /* v494 */
.frow .film-poster.none span{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:44px;opacity:.35}
.frow .film-poster.da-trailer img.fr{top:0!important;height:100%!important;aspect-ratio:auto;transform:none!important;box-shadow:none}
.frow .film-poster.da-trailer img.bk{display:none!important}
.frow .film-poster.da-trailer .tb{left:auto;right:10px;top:auto;bottom:8px;font-size:12px;padding:5px 9px}
.frow .erow-main{position:relative;z-index:1;padding:12px 0 12px 16px}
.frow .erow-main h3,.frow .erow-main h3 a,.frow .erow-sub,.frow .erow-sub .muted,.frow .film-orari{color:#fff}
.frow .frow-side{position:relative;z-index:1}
.frow:has(.film-poster.da-trailer) .frow-side{padding-bottom:40px}   /* sotto i pulsanti c'è posto per il segno «▶ Trailer» (prima si sovrapponeva a «Organizza») */
@media (max-width:640px){
  .frow{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side";padding-right:0}
  .frow .erow-main{grid-area:main;padding:12px 14px 4px}
  .frow-side{grid-area:side;padding:0 14px 12px}
  .frow .film-poster::after{background:linear-gradient(180deg,rgba(10,10,28,.7) 0%,rgba(10,10,28,.92) 100%)}
}
/* Schede del Cinema: la riga «Lo vorrei vedere» / «Organizza una visione» sta sempre in fondo alla scheda (allineata fra le schede affiancate); «Organizza» non va a capo da solo, è il testo «Lo vorrebbero vedere» a restringersi */
.film .idea-body .idea-foot{margin-top:auto;flex-wrap:nowrap}
.film .idea-foot .film-foot-left{flex:1 1 auto;min-width:0}
.film .idea-foot>.btn{flex:none;white-space:nowrap}
@media (max-width:640px){ .film .idea-body .idea-foot{flex-wrap:wrap} }
/* scheda del film: intestazione con sfondo (fotogramma del trailer), durata/IMDb/fonte in una riga, «Lo vorrei vedere» e «Organizza una visione» accanto al titolo */
.film-sheet .sheet-head.film-head{position:relative;isolation:isolate;overflow:hidden;grid-template-columns:120px minmax(0,1fr) auto;align-items:center}
.film-head .fh-bg{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.film-head.has-bg::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,10,28,.78) 0%,rgba(10,10,28,.52) 50%,rgba(10,10,28,.12) 100%)}   /* sfondo più chiaro (23/10/2026: «lo sfondo delle locandine non è troppo scuro?»): la locandina o il fotogramma si vedono di più, il testo resta leggibile grazie all'ombra */
.film-head.has-bg .sheet-title,.film-head.has-bg .film-info{text-shadow:0 1px 3px rgba(0,0,0,.6)}
.film-head.has-bg .sheet-title,.film-head.has-bg .sheet-title h2,.film-head.has-bg .edited,.film-head.has-bg .film-info,.film-head.has-bg .film-info .muted{color:#fff}
.film-head.has-bg .film-info a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.film-info{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;font-size:15px;color:var(--ink-2)}
.film-info a.ext{font-size:15px;font-weight:600}
.film-info .fi{white-space:normal}
.film-head-act{display:flex;flex-direction:column;gap:8px;padding:18px 24px;min-width:230px}
.film-head-act .btn{width:100%}
@media (max-width:900px){
  .film-sheet .sheet-head.film-head{grid-template-columns:88px minmax(0,1fr)}
  .film-head-act{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;min-width:0;padding:0 16px 16px}
  .film-head-act .btn{flex:1 1 160px;width:auto}
}
.film-sheet .side-actions .film-dup{display:none}   /* sul computer i due pulsanti principali stanno nell'intestazione */
@media (max-width:640px){
  .film-sheet .side-actions .film-dup{display:inline-flex}   /* sul telefono li prende la barra fissa in basso (js/telefono.js) */
  .film-head-act{display:none!important}
}

/* Scheda film, tappa 2: orari subito sotto l'intestazione; trama e trailer affiancati sul computer */
.film-sheet .film-duo{display:grid;gap:20px;align-items:start}
@media (min-width:901px){.film-sheet .film-duo:has(.film-trailer){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.film-sheet .film-duo .film-trailer .yt{max-width:none}
@media (max-width:640px){.film-sheet .film-shows a.btn{scroll-margin-bottom:170px}}   /* il link ai biglietti non resta sotto la barra fissa */

/* Scheda film, tappa 3 (computer): azioni secondarie nel menu «Altro» */
.film-altro summary{list-style:none;cursor:pointer;text-align:center}
.film-altro summary::-webkit-details-marker{display:none}
.film-altro summary::after{content:' ▾'}
.film-altro[open] summary::after{content:' ▴'}
.film-altro .fa-body{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.film-altro .danger-zone{margin-top:6px}

/* Orari del cinema (scheda film): giorno a blocchetto, fasce colorate, passati sbiaditi, «prossima» in cima */
.film-shows .show-next{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;background:var(--surface-2)}
.film-shows .show-next .btn{margin:0}
.film-shows .show-cin + .show-cin{margin-top:14px}
.film-shows .show-cin h4{margin:0 0 4px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.film-shows .show-day{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;align-items:center;padding:8px 0}
.film-shows .sd{display:grid;grid-template-columns:auto auto;grid-template-areas:"w n" "m m" "e e";justify-content:center;align-items:baseline;column-gap:6px;min-width:0;padding:6px 4px;border-radius:12px;background:var(--surface-2);text-align:center;text-transform:uppercase;line-height:1.1}
.film-shows .sd-w{grid-area:w;font-size:12px;letter-spacing:.06em;color:var(--muted)}
.film-shows .sd-n{grid-area:n;font-size:22px;font-weight:800}
.film-shows .sd-m{grid-area:m;font-size:11px;color:var(--muted)}
.film-shows .sd em{grid-area:e;margin-top:3px;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--accent-text,var(--accent))}
.film-shows .is-we .sd-w{color:var(--accent-text,var(--accent))}
.film-shows .is-today .sd{box-shadow:inset 0 0 0 2px var(--accent)}
.film-shows .st-times{gap:8px}
.film-shows .show-time{padding:7px 15px;font-size:16px;font-weight:700;border-width:1px;border-bottom-width:3px}
.film-shows .show-time.f-pom{border-bottom-color:#e8b339}
.film-shows .show-time.f-sera{border-bottom-color:#e5568a}
.film-shows .show-time.f-notte{border-bottom-color:#6b5bd6}
.film-shows .show-time.past{opacity:.45;text-decoration:line-through}
@media (max-width:640px){.film-shows .show-day{grid-template-columns:64px minmax(0,1fr);gap:10px}.film-shows .sd-n{font-size:20px}}
.film-sheet .film-shows a.btn{scroll-margin-bottom:90px}

/* Cinema (parte privata): viste Lista (una riga per film) e Programma (una riga per film con gli orari) */
.film-lista.list,.film-lista.prog{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.flis{display:grid;grid-template-columns:minmax(0,2.2fr) auto minmax(0,1.4fr) 64px auto auto;align-items:center;gap:6px 14px;padding:8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer}
.flis:hover,.fprog:hover{border-color:var(--accent)}
.flis h3{margin:0;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flis h3 a{color:inherit;text-decoration:none}
.flis-gen{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flis-min{font-size:14px;font-variant-numeric:tabular-nums}
.plis{display:grid;grid-template-columns:minmax(0,2fr) auto minmax(0,1.6fr) auto auto;align-items:center;gap:6px 14px;padding:8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer}
.plis:hover{border-color:var(--accent)}
.plis h3{margin:0;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plis h3 a{color:inherit;text-decoration:none}
.plis-where{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plis-voto{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:70px}
.plis .btn{padding:4px 12px;font-size:14px;margin:0}
@media (max-width:720px){.plis{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"t t b" "c w b";gap:4px 10px;padding:10px 12px}
  .plis h3{grid-area:t;white-space:normal;overflow:visible;font-size:16px;line-height:1.25}
  .plis>.chip{grid-area:c;justify-self:start}
  .plis-where{grid-area:w}
  .plis-voto{display:none}
  .plis>.btn.want{grid-area:b;white-space:normal;max-width:112px;text-align:center;line-height:1.15;padding:6px 10px}}
.flis-voto{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:70px}
.flis .btn{padding:4px 12px;font-size:14px;margin:0}
.fprog{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) auto;align-items:center;gap:8px 20px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer}
.fprog h3{margin:0 0 2px;font-size:18px}
.fprog h3 a{color:inherit;text-decoration:none}
.fp-sub{font-size:13px}
.fp-orari{display:flex;flex-wrap:wrap;gap:6px 18px}
.fp-g{display:flex;align-items:center;gap:8px}
.fp-g>b{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);min-width:44px}
.fp-g>span{display:flex;gap:5px;flex-wrap:wrap}
.fprog .show-time{padding:4px 11px;font-size:14px;font-weight:700}
@media (max-width:900px){
  .flis{grid-template-columns:minmax(0,1fr) auto auto}
  .flis-gen,.flis-min{display:none}
  .fprog{grid-template-columns:minmax(0,1fr) auto}
  .fprog .fp-orari{grid-column:1 / -1;grid-row:2}
}

/* Scheda film: trama automatica del cinema mostrata come «Regia e cast» */
.film-nodesc .film-credits{margin:0 0 6px}
.film-nodesc .linkish{padding:0 4px;text-decoration:underline}
@media (max-width:640px){.v-tit .v-pausa .v-pt{display:none}.v-tit .v-pausa{width:36px;height:36px;padding:0;font-size:15px}.v-tit{flex-wrap:nowrap}}
.v-pausa [aria-hidden]{letter-spacing:-2px;font-size:12px}

/* dal controllo da telefono: orari della scheda film (testi ≥ 12 px), pulsante Pausa ≥ 44 px, «Vedi tutti» su una riga */
.film-shows .sd-m,.film-shows .sd em{font-size:12px}
@media (max-width:640px){.v-tit .v-pausa{min-width:44px;min-height:44px;width:44px;height:44px;flex:none}}
.v-head .v-more{white-space:nowrap;flex:none}

.film-shows .show-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--ink-2);list-style:none}
.film-shows .show-more>summary::-webkit-details-marker{display:none}
.film-shows .show-more>summary::before{content:"▸";margin-right:8px;transition:transform .15s}
.film-shows .show-more[open]>summary::before{transform:rotate(90deg)}

/* ritocchi grafici del Cinema (20/10): intestazione «Film in sala» da telefono, chip nelle schede, introduzione compatta sul computer */
@media (max-width:640px){
  .v-head{flex-wrap:wrap;align-items:center;row-gap:10px}
  .v-head>h2,.v-head>.v-tit{flex:1 1 100%}
  .v-head .v-acts{flex:1 1 100%;display:flex;gap:10px;flex-wrap:wrap}
  .film-lista.cards .film .meta .chip.min,.film-lista.cards .film .meta .chip.imdb{display:none}   /* nelle schede da telefono durata e IMDb restano nella scheda del film: i chip occupavano tre righe prima del titolo */
  body:has(.film-sheet) .detail-bar>.btn.want{flex:0 0 auto;white-space:nowrap}   /* «Lo vorrei vedere» su una riga: lo spazio in più lo prende «Organizza una visione» */
}
@media (min-width:641px){
  .cin-intro{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 48px;align-items:start}
  .cin-intro>strong{grid-column:1 / -1}
  .cin-intro dl{grid-column:2;grid-row:2 / span 2;margin:2px 0 0}
  .cin-intro ul{margin:2px 0}
}

/* Compatta e Programma (20/10): orari colorati per fascia come nella scheda del film, «oggi» in risalto, da telefono riga a due colonne con il pulsante a destra */
.fprog .show-time{border-bottom-width:3px}
.fprog .show-time.f-pom{border-bottom-color:#e8b339}
.fprog .show-time.f-sera{border-bottom-color:#e5568a}
.fprog .show-time.f-notte{border-bottom-color:#6b5bd6}
.fp-g.oggi>b{color:var(--accent-text,var(--accent))}
@media (max-width:640px){
  .flis{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t b" "c b";align-items:center;gap:4px 10px;padding:10px 12px}
  .flis h3{grid-area:t;white-space:normal;overflow:visible;font-size:16px;line-height:1.25}
  .flis>.chip{grid-area:c;justify-self:start}
  .flis-voto{grid-area:c;justify-self:end;min-width:0}
  .flis>.btn.want,.fprog .fp-side .btn.want{grid-area:b;white-space:normal;max-width:112px;text-align:center;line-height:1.15;padding:6px 10px}
}

/* «Oggi» sotto la testata del Cinema (20/10): una riga sola, scorrevole, con la prossima proiezione di oggi di ogni film; pillole come gli orari della scheda (bordo per fascia) */
.v-stasera{display:flex;align-items:center;gap:12px;margin:6px 0 18px;min-width:0}
.v-stasera .st-l{flex:none;font-weight:700;font-size:14px;color:var(--ink-2)}
.v-stasera .st-r{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 4px;min-width:0;scroll-snap-type:x proximity}
.v-stasera .st-r::-webkit-scrollbar{display:none}
.st-pill{flex:none;display:inline-flex;align-items:baseline;gap:7px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);border-bottom-width:3px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap;scroll-snap-align:start;align-items:center}
.st-pill:hover{border-color:var(--accent)}
.st-pill b{font-variant-numeric:tabular-nums;font-size:15px}
.st-pill .st-t{max-width:15ch;overflow:hidden;text-overflow:ellipsis}
.st-pill small{color:var(--ink-2);font-size:12px}
.st-pill.f-pom{border-bottom-color:#e8b339}.st-pill.f-sera{border-bottom-color:#e5568a}.st-pill.f-notte{border-bottom-color:#6b5bd6}
.cc-miss{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
/* Calendario del Cinema: miniatura (locandina o fotogramma del trailer) a sinistra di ogni film del giorno scelto */
.agenda-row:has(.agenda-th){grid-template-columns:72px 110px minmax(0,1fr);align-items:center}
.agenda-th{grid-row:span 2;width:72px;height:54px;object-fit:cover;border-radius:8px;background:var(--surface-2)}
@media (max-width:640px){.agenda-row:has(.agenda-th){grid-template-columns:56px minmax(0,1fr);gap:2px 12px}.agenda-th{width:56px;height:56px;grid-row:span 3}.agenda-row:has(.agenda-th) .hr{grid-row:auto}}
/* «Preferiti»: il gruppo dei film che vorresti vedere occupa tutta la larghezza dell'elenco (che per gli eventi è a colonne) */
#list>.film-pref,#list>.film-pref-h,#list>p.muted{grid-column:1 / -1}
.film-pref{margin-bottom:12px}
@media (max-width:640px){.film-pref .fprog .fp-side .btn.want{max-width:146px}}
.ci-top{margin:6px 0 16px;padding-left:24px;display:grid;gap:8px}
.ci-top .ci-film{font-weight:600}
.ci-top .ci-film{display:inline;padding:0;margin:0;text-align:left;min-height:0}
/* Profilo → Calendario del telefono */
.pf-cal-box{display:grid;gap:8px}
.pf-cal-tutti{display:grid;gap:8px;margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
.pf-cal-tutti h4{margin:0;font-size:1rem}
.pf-cal-in{width:100%;font:13px/1.3 ui-monospace,Menlo,Consolas,monospace;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);overflow:hidden;text-overflow:ellipsis}

/* Riepilogo dei film: filtri, aspetto (elenco, griglia, programma) e colori scuri */
.exp-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 12px}
.exp-fgroup{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.exp-fgroup h3{flex:1 1 100%;margin:0;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.exp-fgroup label:not(.check){display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2);min-width:150px;flex:1 1 150px}
.exp-fgroup select{min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}
.exp-fgroup .check{display:flex;align-items:center;gap:8px;min-height:40px;flex:1 1 100%}
@media (max-width:760px){.exp-filters{grid-template-columns:1fr}}
.p-thumb.sm{width:96px}
.p-thumb.g{width:100%}
.p-grid{padding:16px 24px 20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 16px}
.g-card{display:flex;flex-direction:column;gap:5px;min-width:0;break-inside:avoid}
.g-t{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.25;margin-top:3px}
.g-w{font-size:12px;color:#4A5468}
.g-s{font-size:12.5px;color:#161D2B;display:flex;flex-direction:column;gap:1px}
.g-s b{font-weight:700}
.p-row.pr{grid-template-columns:96px minmax(0,1fr) auto}
.p-times{font-family:var(--mono);font-size:12.5px;font-weight:600;color:#161D2B;text-align:right;max-width:230px;overflow-wrap:anywhere;padding-top:2px}
/* colori scuri: stessa pagina con sfondo e testi invertiti (si vede anche nel PNG/PDF) */
.poster.p-scuro{background:#0F1524;color:#E8ECF4;border-color:#2A3350}
.p-scuro .p-head{background:#070B15}
.p-scuro .p-month{color:#B4BDD0;border-color:#2A3350}
.p-scuro .p-row{border-color:#1D2740}
.p-scuro .p-when,.p-scuro .p-desc,.p-scuro .g-w{color:#B4BDD0}
.p-scuro .p-date{background:#F4C534;color:#2A2206}
.p-scuro .p-title,.p-scuro .g-t,.p-scuro .g-s,.p-scuro .p-times{color:#F2F5FB}
.p-scuro .p-links a,.p-scuro .p-link,.p-scuro .p-shows a{color:#8FA2FF}
.p-scuro .p-links .sep{color:#59627A}
.p-scuro .p-seats{color:#97A2BA}
.p-scuro .p-foot{background:#0A101D;border-color:#2A3350;color:#97A2BA}
.p-scuro .p-empty{color:#B4BDD0}
.p-scuro .p-thumb{background:#070B15}
@media print{.p-scuro{-webkit-print-color-adjust:exact;print-color-adjust:exact}.p-scuro .p-head,.p-scuro .p-foot{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Dove mangiare / Dove andare: schede «Tutti · Da provare · Provati» e i pulsanti «Ci vorrei andare» / «Ci sono stato» (come «Lo vorrei vedere» del Cinema) */
.place-tabs{margin:2px 0 14px}
.place-marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.place-marks .btn.want{min-height:44px}
.erow-main .place-marks{margin-top:6px}
.place-who .people .rstars{margin-left:auto;font-size:13px;color:var(--ink-3)}
.place-pref{display:flex;flex-direction:column;gap:12px}
.place-marks .btn{white-space:nowrap}
@media (max-width:560px){
  .pm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .place-marks{flex-wrap:nowrap;gap:6px;margin-top:6px}
  .place-marks .btn.want{flex:1 1 0;min-width:0;justify-content:center;padding-inline:8px;font-size:14px}
  .place-marks .btn.cena{display:none}   /* da telefono «Organizza una cena qui» sta nella scheda del locale («Crea un tavolo qui»): meno pulsanti per riga */
  .place-tabs{margin:0 0 10px}
}

/* Amministrazione → Posti: tre schede-filtro */
.pm-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:560px){.pm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.film-tabs{margin:2px 0 14px}

/* Dove mangiare / Dove andare: elenco dei posti. Schede = griglia di schede con copertina nel colore del tipo (A-137, «Dove mangiare» alla pari del Cinema); Elenco e Compatta restano a righe una sotto l'altra */
.place-lista{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
.place-lista.cards{gap:16px}
.place-lista.list,.place-lista.prog{gap:8px}
.pprog{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr) auto;align-items:center;gap:8px 20px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer;min-width:0}
.pprog:hover{border-color:var(--accent)}
.pprog h3{margin:0 0 2px;font-size:18px}.pprog h3 a{color:inherit;text-decoration:none}
.pp-sub{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-orari{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;min-width:0}
.pp-ev{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:14px;cursor:pointer}
.pp-ev b{white-space:nowrap}.pp-ev span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22ch;color:var(--ink-2,var(--muted))}
.pp-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:720px){.pprog{grid-template-columns:minmax(0,1fr)}.pp-side{justify-content:flex-start}.pp-ev{min-height:44px;align-items:center}}
@media (min-width:720px){.place-lista.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));align-items:start}}
.place.pcard{display:flex;flex-direction:column;grid-template-columns:none}
.pcover{--gc:var(--accent);position:relative;overflow:hidden;flex:none;height:116px;display:grid;place-items:center;
  background:radial-gradient(60% 90% at 78% 0%,color-mix(in srgb,var(--gc) 60%,#fff),transparent 60%),linear-gradient(135deg,color-mix(in srgb,var(--gc) 78%,#0b0920),color-mix(in srgb,var(--gc) 32%,#0b0920))}
.pcover::before{content:"";position:absolute;right:-8%;bottom:-70%;width:60%;aspect-ratio:1;border-radius:50%;pointer-events:none;background:repeating-radial-gradient(circle,transparent 0 9px,rgba(255,255,255,.13) 9px 10px)}
.pcover .pmedal{width:72px;height:72px;font-size:38px;margin:0;z-index:1}
.pc-voto,.pc-price{position:absolute;top:10px;z-index:2;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.4;color:#fff;background:rgba(10,10,28,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.pc-voto{left:12px;font-variant-numeric:tabular-nums}
.pc-voto.none{font-weight:500;opacity:.85}
.pc-price{right:12px}
.place.pcard .idea-body{padding:14px 16px 16px}
@media (max-width:719px){.pcover{height:68px}.pcover .pmedal{width:50px;height:50px;font-size:26px}.place.pcard .idea-body{padding:12px 14px 14px;gap:6px}}
.place-marks .btn{min-height:44px}   /* il pulsante «Organizza una cena qui», se va a capo, non deve restare da 40 px */

/* pagina d'ingresso di Dove mangiare / Dove andare (Vetrina): sezioni a scorrimento orizzontale con schede più piccole */
.p-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 12px;scrollbar-width:thin}
.ptile{flex:0 0 clamp(240px,23%,300px);scroll-snap-align:start;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;cursor:pointer}
.ptile:hover{border-color:var(--ink-3)}
.ptile .idea-body{padding:12px 14px 14px;gap:6px}
.ptile h3{margin:0;font-size:17px}
.ptile h3 a{color:inherit;text-decoration:none}
.ptile-where{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ptile .btn.want{align-self:flex-start;margin-top:4px;min-height:44px}
@media (max-width:719px){.ptile{flex-basis:78%}.ptile .pcover{height:68px}.ptile .pcover .pmedal{width:50px;height:50px;font-size:26px}}
.place-only{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
@media (max-width:719px){.place-only .fchip{min-height:44px}}

/* carosello di «Appena aggiunti» (Dove mangiare / Dove andare): riusa frecce e pausa del Cinema (.v-ca, .v-pausa); le schede sono .ptile in una riga .p-strip */
.p-caro>.p-strip{scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 0 8px}
.p-caro>.p-strip::-webkit-scrollbar{display:none}
.p-caro>.p-strip:focus-visible{outline:3px solid var(--link,#0b5fd1);outline-offset:2px;border-radius:12px}
.p-caro .v-prev,.p-caro .v-next{top:50px}
@media (max-width:640px){.p-caro>.p-strip{margin-inline:-16px;padding:2px 16px 8px}}
@media (prefers-reduced-motion:reduce){.p-caro>.p-strip{scroll-behavior:auto}}
.v-sec.v-consigli{gap:0}   /* «Potrebbero piacerti»: la riga «In base agli eventi…» sta attaccata al titolo (prima 10-18 px di vuoto fra gli elementi) */
.v-sec.v-consigli>p{margin:2px 0 14px}

/* profilo (A-138 fase 1): copertina in colore (per ora quella dell'accento; poi nei colori degli interessi), foto grande a cavallo, numeri con icona */
.pf-cover{height:96px;margin:0 -22px;background:radial-gradient(60% 140% at 85% 0%,color-mix(in srgb,var(--accent) 55%,#fff),transparent 60%),linear-gradient(135deg,color-mix(in srgb,var(--accent) 80%,#0b0920),color-mix(in srgb,var(--accent) 35%,#0b0920))}
.pf-head{display:flex;align-items:flex-start;gap:16px;margin-top:-44px;position:relative}
.pf-head .pf-id{padding-top:52px;min-width:0}
@media (max-width:640px){.pf-cover{margin:0 -14px;height:72px}.pf-head{margin-top:-36px;gap:12px}.pf-head .pf-id{padding-top:42px}}

.fchip.place-near{min-height:36px}
@media (max-width:719px){.fchip.place-near{min-height:44px}}
.p-near-cta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:4px 0 0}
.p-near-cta .btn{min-height:44px}
.p-near-cta small{font-size:13px}

/* «Chi sono» nel profilo (A-138 fase 2): copertine a tinta, riga sotto il nome, segno, scelte a pulsanti */
.pf-cov-tramonto{background:radial-gradient(60% 140% at 85% 0%,#ffd27a,transparent 60%),linear-gradient(135deg,#c2410c,#7c1d6f)!important}
.pf-cov-oceano{background:radial-gradient(60% 140% at 85% 0%,#7dd3fc,transparent 60%),linear-gradient(135deg,#0e7490,#1e3a8a)!important}
.pf-cov-foresta{background:radial-gradient(60% 140% at 85% 0%,#bbf7d0,transparent 60%),linear-gradient(135deg,#15803d,#14532d)!important}
.pf-cov-notte{background:radial-gradient(60% 140% at 85% 0%,#a5b4fc,transparent 60%),linear-gradient(135deg,#1e1b4b,#0b0920)!important}
.pf-cov-aurora{background:radial-gradient(60% 140% at 85% 0%,#f0abfc,transparent 60%),linear-gradient(135deg,#0d9488,#6d28d9)!important}
.pf-cov-lavanda{background:radial-gradient(60% 140% at 85% 0%,#fbcfe8,transparent 60%),linear-gradient(135deg,#7c3aed,#be185d)!important}
.pf-cov-ambra{background:radial-gradient(60% 140% at 85% 0%,#fde68a,transparent 60%),linear-gradient(135deg,#b45309,#78350f)!important}
.pf-tagline{margin:2px 0 6px;color:var(--ink-2);font-size:var(--t-sm);overflow-wrap:anywhere}
.pf-tagline[hidden],.pf-chip-segno[hidden]{display:none}
.pf-chi{align-items:stretch}
.pf-chi-testa{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
.pf-chi-corpo{display:flex;flex-direction:column;gap:8px;width:100%}
.pf-chi-riga{margin:0;font-size:var(--t-ti);font-weight:700}
.pf-chi-bio{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.pf-segno{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}
.pf-segno-s{font-size:var(--t-lg);line-height:1}
.pf-tags,.pf-scelte{display:flex;flex-wrap:wrap;gap:8px}
.pf-tag-chip{padding:4px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--t-sm)}
.pf-lbl{font-weight:700;font-size:var(--t-sm);margin-top:8px}
.pf-nascita{display:flex;gap:10px}
.pf-nascita select{min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;font:inherit}
.pf-cop{display:flex;flex-wrap:wrap;gap:10px}
.pf-cop-b{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);color:#fff;font-weight:800;cursor:pointer;background:linear-gradient(135deg,var(--accent),#0b0920)}
.pf-cop-b.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.pf-chi .tav-chip{min-height:44px}

/* profilo ristrutturato (A-138, v355): schede in alto, livello con avanzamento, distintivi, barra di completezza */
.pf-tabs{margin:2px 0 4px}
.pf-hero-az{display:flex;gap:10px;margin-top:12px}
.pf-liv{display:flex;flex-direction:column;gap:6px;margin-top:12px;max-width:520px}
.pf-liv[hidden],.pf-dist[hidden]{display:none}
.pf-liv-riga{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.pf-liv-t{font-size:var(--t-ti)}
.pf-prog{width:100%;height:12px;border-radius:99px;overflow:hidden;border:0;background:var(--surface-2);accent-color:var(--accent)}
.pf-prog::-webkit-progress-bar{background:var(--surface-2);border-radius:99px}
.pf-prog::-webkit-progress-value{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#fff));border-radius:99px}
.pf-prog::-moz-progress-bar{background:var(--accent);border-radius:99px}
.pf-dist{align-items:stretch}
.pf-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;width:100%}
.pf-badge{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;border-radius:14px;border:1px dashed var(--line);background:var(--surface-2);opacity:.62}
.pf-badge.ok{opacity:1;border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.pf-badge-i{font-size:var(--t-xl);line-height:1;filter:grayscale(1)}
.pf-badge.ok .pf-badge-i{filter:none}
.pf-badge small{font-size:var(--t-cap);line-height:1.3}
.pf-compl{display:flex;flex-direction:column;gap:4px;width:100%}
@media (max-width:640px){.pf-badges{display:flex;overflow-x:auto;scroll-snap-type:x proximity;margin-inline:-4px;padding:2px 4px 6px;scrollbar-width:none}.pf-badges::-webkit-scrollbar{display:none}.pf-badge{flex:0 0 132px;scroll-snap-align:start}}

/* scheda «Attività» del profilo (v357): calendario a quadratini, passaporto con cartina, vetrina */
.pf-cal-q,.pf-pass,.pf-vetrina{align-items:stretch}
.pf-q-scroll{overflow-x:auto;width:100%;padding-bottom:4px}
.pf-q-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,13px);grid-auto-columns:13px;gap:3px;width:max-content}
.pf-q{display:inline-block;width:13px;height:13px;border-radius:3px;background:var(--surface-2);border:1px solid var(--line)}
.pf-q.fut{visibility:hidden}
.pf-q.l1{background:color-mix(in srgb,var(--accent) 35%,var(--surface-2));border-color:transparent}
.pf-q.l2{background:color-mix(in srgb,var(--accent) 65%,var(--surface-2));border-color:transparent}
.pf-q.l3{background:var(--accent);border-color:transparent}
.pf-q-leg{display:flex;align-items:center;gap:4px}
.pf-mappa{height:320px;width:100%;border-radius:14px;overflow:hidden}
.pf-pop{display:flex;flex-direction:column;gap:4px;min-width:150px}
.pf-vet-riga{display:flex;flex-wrap:wrap;gap:10px;width:100%}
.pf-vet{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:140px;max-width:220px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:inherit;text-align:left;cursor:pointer}
.pf-vet:hover{border-color:var(--accent)}
.pf-vet-i{font-size:var(--t-lg);line-height:1}
@media (max-width:640px){.pf-mappa{height:260px}.pf-vet{flex:1 1 140px}}
@media (min-width:900px){.pf-q-grid{grid-template-rows:repeat(7,17px);grid-auto-columns:17px;gap:4px}.pf-q{width:17px;height:17px}}

/* profilo pubblico (v358): pagina #u-<id> vista dagli altri e scheda «Cosa vedono gli altri» */
.pf-pub{display:flex;flex-direction:column;gap:14px}
.pf-pub-liv{margin:12px 0 0;font-size:var(--t-sm)}
.pf-pub-bio{margin:0;white-space:pre-line;overflow-wrap:anywhere;line-height:1.55}
.pf-tags{display:flex;flex-wrap:wrap;gap:8px}
.pf-tag{padding:6px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--t-sm)}
.pf-pub-anteprima{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.pf-pub-az{gap:12px}
.pf-pub-altro{width:100%}
.pf-pub-altro summary{display:flex;align-items:center;min-height:44px;font-weight:600;cursor:pointer;color:var(--ink-2)}
.pf-pub-altro-c{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-top:6px}
.pf-pub-segnala{display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px}
.pf-pub-segnala select{min-height:44px}
.pf-vis-lista{display:flex;flex-direction:column;width:100%}
.pf-vis-riga{display:flex;align-items:center;gap:14px;min-height:52px;padding:8px 2px;border-top:1px solid var(--line);cursor:pointer}
.pf-vis-riga:first-child{border-top:0}
.pf-vis-riga input{width:24px;height:24px;flex:none;accent-color:var(--accent)}
.pf-vis-riga span{display:flex;flex-direction:column;gap:2px;min-width:0}
.pf-vis-riga small{font-size:var(--t-cap)}

/* profilo, grafica «social» (v359): copertina alta, foto con anello del livello, striscia di numeri, medaglie, due colonne */
.pf-hero{border-radius:22px;padding:0 28px 22px;box-shadow:0 10px 30px rgba(0,0,0,.14)}
.pf-cover{position:relative;height:170px;margin:0 -28px}
.pf-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(45% 90% at 12% 115%,rgba(255,255,255,.22),transparent 70%),repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 16px)}
.pf-head{margin-top:-68px;gap:20px}
.pf-head .pf-id{padding-top:80px}
.pf-id h2{font-size:var(--t-xl)}
.pf-av{position:relative;width:136px;height:136px;flex:none}
.pf-av .pf-avatar{position:absolute;inset:12px;width:calc(100% - 24px);height:calc(100% - 24px)}
.pf-ring{position:absolute;inset:0;width:100%;height:100%}
.pf-ring-bg{stroke:color-mix(in srgb,var(--ink) 14%,var(--surface))}
.pf-ring-fg{transition:stroke-dashoffset 1.1s cubic-bezier(.2,.8,.2,1)}
.pf-lvb{position:absolute;right:0;bottom:8px;min-width:36px;height:36px;padding:0 6px;border-radius:99px;display:grid;place-items:center;font-weight:800;font-size:var(--t-md);background:var(--accent);color:var(--accent-ink);border:3px solid var(--surface);box-shadow:0 4px 10px rgba(0,0,0,.25)}
.pf-lvb[hidden]{display:none}
.pf-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.pf-sb{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;min-width:0}
.pf-sb strong{font-size:var(--t-xl);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--accent-text,var(--accent))}
.pf-sb span{font-size:var(--t-cap);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.pf-hero-az{margin-top:16px}
.pf-cols,.pf-col-a,.pf-col-b{display:flex;flex-direction:column;gap:18px;min-width:0}
@media (min-width:1000px){.pf-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);align-items:start}.pf-col-a{grid-column:1;grid-row:1}.pf-col-b{grid-column:2;grid-row:1}}
.pf-badges{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.pf-badge.ok{align-items:center;text-align:center;padding:16px 10px 12px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 22%,var(--surface)),var(--surface));box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 20%,transparent)}
.pf-badge.ok .pf-badge-i{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;font-size:var(--t-xl);filter:none;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55),transparent 55%),linear-gradient(145deg,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent));box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--accent),0 8px 18px color-mix(in srgb,var(--accent) 40%,transparent)}
.pf-badge.ok strong{font-size:var(--t-sm)}
.pf-lock{width:100%}
.pf-lock[hidden]{display:none}
.pf-lock summary{display:flex;align-items:center;min-height:44px;font-weight:600;color:var(--ink-2);cursor:pointer}
.pf-badges-lock{margin-top:6px}
.pf-badge .pf-prog-s{height:6px;margin-top:4px}
.pf-stats{gap:10px}
.pf-stat{flex-direction:row;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:12px 14px;border-radius:14px}
.pf-stat .pf-ic{font-size:var(--t-lg)}
.pf-stat strong{font-size:var(--t-xl)}
.pf-stat .pf-l{flex-basis:100%}
@media (max-width:640px){
  .pf-hero{padding:0 16px 16px}
  .pf-cover{height:120px;margin:0 -16px}
  .pf-head{margin-top:-54px;gap:14px}
  .pf-head .pf-id{padding-top:62px}
  .pf-av{width:112px;height:112px}
  .pf-av .pf-avatar{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px)}
  .pf-lvb{min-width:32px;height:32px;font-size:var(--t-sm);bottom:4px}
  .pf-sb span{font-size:var(--t-cap);letter-spacing:.03em}
}
@media (prefers-reduced-motion:reduce){.pf-ring-fg{transition:none}}

/* scheda del film: «Info» e «Proiezioni» come due grandi pulsanti (v360): grandi, a colore pieno quando attivi, con bordo ben visibile quando no */
.film-tabs{display:flex;flex-wrap:nowrap;gap:10px;width:100%;max-width:560px;margin:4px 0 10px}
.film-tabs .tab{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:10px 16px;border-radius:16px;border:2px solid var(--accent);background:transparent;color:var(--accent-text,var(--accent));font-size:18px;font-weight:800;letter-spacing:-.01em;cursor:pointer}
.film-tabs .tab:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}
.film-tabs .tab[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 38%,transparent)}
.film-tabs .tab .ti{font-size:22px;line-height:1}
.film-tabs .tab .n{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-size:15px;font-weight:800}
.film-tabs .tab[aria-selected="true"] .n{background:var(--accent-ink);color:var(--accent)}
@media (max-width:640px){.film-tabs{max-width:none}.film-tabs .tab{font-size:17px;padding:10px 10px;gap:8px}}

/* profilo «Instagram» (v361): atmosfera nel colore della copertina, anello a gradiente, cerchi «In evidenza», griglia di momenti, scheda con ingranaggio */
.profile{position:relative;isolation:isolate;--pf-a:var(--accent);--pf-b:color-mix(in srgb,var(--accent) 55%,#fff)}
.pf-t-tramonto{--pf-a:#c2410c;--pf-b:#ffd27a}.pf-t-oceano{--pf-a:#0e7490;--pf-b:#7dd3fc}.pf-t-foresta{--pf-a:#15803d;--pf-b:#bbf7d0}.pf-t-notte{--pf-a:#4338ca;--pf-b:#a5b4fc}
.pf-t-aurora{--pf-a:#0d9488;--pf-b:#f0abfc}.pf-t-lavanda{--pf-a:#7c3aed;--pf-b:#fbcfe8}.pf-t-ambra{--pf-a:#b45309;--pf-b:#fde68a}
.profile::before{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;height:520px;pointer-events:none;background:radial-gradient(ellipse 50% 85% at 50% 0%,color-mix(in srgb,var(--pf-a) 34%,transparent),transparent 100%),radial-gradient(ellipse 30% 55% at 78% 8%,color-mix(in srgb,var(--pf-b) 26%,transparent),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 120px);mask-image:linear-gradient(to bottom,transparent 0,#000 120px)}
.profile .pf-sec h3{display:flex;align-items:center;gap:10px}
.profile .pf-sec h3::before{content:"";width:5px;height:1.1em;border-radius:3px;background:linear-gradient(var(--pf-b),var(--pf-a))}
.pf-hero{background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(8px)}
.pf-cover::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.18) 46%,transparent 62%)}
.pf-ring-bg{stroke:color-mix(in srgb,var(--ink) 12%,var(--surface))}
.pf-ring-fg{stroke-width:7}
.pf-gear{margin-left:auto;min-width:44px;font-size:var(--t-lg);padding:6px 12px}
.pf-gear[aria-current="page"]{background:var(--accent-soft,var(--surface-2));border-color:var(--accent)}
.pf-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;gap:6px}
.pf-tabs::-webkit-scrollbar{display:none}
.pf-tabs .tab{flex:none;white-space:nowrap}
@media (max-width:640px){.pf-hero-az{flex-wrap:wrap}.pf-gear{margin-left:0}}

/* profilo (v363): testata più compatta, sfondo proprio, carte a domanda */
.pf-hero{padding:0 22px 14px}
.pf-cover{height:118px;margin:0 -22px}
.pf-head{margin-top:-48px;gap:16px}
.pf-head .pf-id{padding-top:56px}
.pf-id h2{font-size:var(--t-xl)}
.pf-av{width:104px;height:104px}
.pf-av .pf-avatar{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px)}
.pf-lvb{min-width:30px;height:30px;font-size:var(--t-sm);bottom:2px}
.pf-liv{margin-top:8px}
.pf-liv-t{font-size:var(--t-sm)}
.pf-prog{height:8px}
.pf-strip{margin-top:10px;padding-top:10px}
.pf-sb strong{font-size:var(--t-xl)}
.pf-hero-az{margin-top:10px}
.pf-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pf-cover.con-img::before{background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.28))}
.pf-carte{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;width:100%}
.pf-carta{padding:12px 14px;border-radius:14px;background:linear-gradient(150deg,color-mix(in srgb,var(--pf-a) 18%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--pf-a) 35%,var(--line))}
.pf-carta small{display:block;font-size:var(--t-cap);font-weight:700;color:var(--ink-2)}
.pf-carta p{margin:4px 0 0;font-size:var(--t-md);line-height:1.4;overflow-wrap:anywhere}
.pf-carte-ed{display:flex;flex-direction:column;gap:10px;width:100%}
.pf-carta-ed{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:14px;width:100%}
.pf-carta-ed select{min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;font:inherit}
.pf-carta-az{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pf-sfondo{display:flex;flex-direction:column;gap:8px;width:100%}
.pf-sfondo-anteprima{width:100%;max-height:140px;object-fit:cover;border-radius:12px}
.pf-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
@media (max-width:640px){
  .pf-hero{padding:0 14px 12px}
  .pf-cover{height:84px;margin:0 -14px}
  .pf-head{margin-top:-40px;gap:12px}
  .pf-head .pf-id{padding-top:46px}
  .pf-av{width:88px;height:88px}
  .pf-av .pf-avatar{inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}
  .pf-lvb{min-width:28px;height:28px;font-size:var(--t-cap);bottom:0}
  .pf-id h2{font-size:var(--t-lg)}
}
@media (min-width:900px){
  .pf-hero{display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-template-areas:"cover cover" "head strip" "liv strip" "az az";column-gap:28px}
  .pf-hero > .pf-cover{grid-area:cover}
  .pf-hero > .pf-head{grid-area:head}
  .pf-hero > .pf-liv{grid-area:liv;max-width:none}
  .pf-hero > .pf-strip{grid-area:strip;align-self:center;margin-top:8px;padding-top:0;border-top:0}
  .pf-hero > .pf-hero-az{grid-area:az}
}
@media (max-width:640px){.pf-liv-s{display:none}.pf-hero-az{margin-top:8px}.pf-strip{margin-top:8px;padding-top:8px}}

/* «In comune con te» e «Potrebbero piacerti» (v364) */
.pf-comune{border-color:color-mix(in srgb,var(--pf-a) 40%,var(--line));background:linear-gradient(150deg,color-mix(in srgb,var(--pf-a) 12%,var(--surface)),var(--surface))}
.pf-comune-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;width:100%}
.pf-comune-l li{display:flex;gap:10px;align-items:baseline;line-height:1.4}
.pf-comune-l li > span:first-child{flex:none}
.pf-sugg[hidden]{display:none}
.pf-sugg-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;width:100%}
.pf-sugg-p{text-decoration:none;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:inherit;text-align:left;font:inherit;cursor:pointer}
.pf-sugg-p:hover{border-color:var(--accent)}
.pf-sugg-av{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;background:var(--surface)}
.pf-sugg-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.pf-sugg-t small{font-size:var(--t-cap);line-height:1.3}

/* «Cerco compagnia» (v365): scheda dell'evento, pagina e profilo */
.ev-comp{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.ev-comp[hidden]{display:none}
.ev-comp.vuoto{padding:0;border:0;background:none}
.ev-comp-h{margin:0;font-size:17px}
.ev-comp-l{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ev-comp-p{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;text-align:left}
button.ev-comp-p{cursor:pointer}
button.ev-comp-p:hover{border-color:var(--accent)}
.ev-comp-av{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:var(--surface-2)}
.ev-comp-t{display:flex;flex-direction:column;min-width:0}
.ev-comp-t small{font-size:13px;line-height:1.25}
.ev-comp-form{display:flex;flex-direction:column;gap:8px;max-width:520px}
.pf-cerco{border-color:color-mix(in srgb,var(--pf-a) 40%,var(--line))}
.pf-cerco[hidden]{display:none}
.pf-cerco-l{display:flex;flex-direction:column;gap:8px;width:100%;list-style:none;margin:0;padding:0}
.pf-cerco-r{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pf-cerco-b{display:flex;flex-direction:column;gap:2px;min-height:44px;padding:6px 0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pf-cerco-b strong{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink) 25%,transparent)}
.pf-cerco-b small{font-size:var(--t-cap)}

/* ringraziamenti (v366) */
.ev-grazie{padding:12px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.ev-grazie[hidden]{display:none}
.ev-grazie summary{display:flex;align-items:center;gap:6px;min-height:44px;font-weight:700;cursor:pointer}
.ev-gr-l{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.ev-gr-p{display:flex;flex-direction:column;gap:6px}
.ev-gr-nome{display:flex;align-items:center;gap:10px;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left}
.ev-gr-q{display:flex;flex-wrap:wrap;gap:8px}
.ev-gr-q .tav-chip{min-height:44px}
.pf-gr-t strong{color:var(--accent-text,var(--accent))}

/* Cinema: colori per genere e per scheda (A-139, v373). Un colore per genere (--gc, classi fg-…: js/film-schede.js, `filmGenreCls`); generi non previsti neutri.
   Etichette e riquadri usano la stessa formula dei generi musicali (miscela con --surface e --ink: leggibile in chiaro e in scuro). */
.fg-azione{--gc:#ff6a3d}.fg-avventura{--gc:#14b8a6}.fg-animazione{--gc:#ff2d95}.fg-commedia{--gc:#f5c518}.fg-giallo{--gc:#7c6cf0}.fg-storia{--gc:#d9a066}
.fg-dramma{--gc:#3b82f6}.fg-scifi{--gc:#19b5ff}.fg-fantasy{--gc:#8a3ffc}.fg-horror{--gc:#c0152f}.fg-musica{--gc:#2fd16b}.fg-famiglia{--gc:#9bc53d}.fg-amore{--gc:#ff5fa8}.fg-altro{--gc:#94a3b8}
.chip.fgenre[class*=" fg-"]{background:color-mix(in srgb,var(--gc) 20%,var(--surface));color:color-mix(in srgb,var(--gc) 42%,var(--ink));border:1px solid color-mix(in srgb,var(--gc) 55%,var(--line));font-weight:700}
.ctile[class*=" fg-"]{--cs:color-mix(in srgb,var(--gc) 22%,var(--surface));--c:color-mix(in srgb,var(--gc) 42%,var(--ink));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gc) 45%,transparent)}
.ctile[class*=" fg-"][aria-pressed="true"]{box-shadow:inset 0 0 0 2.5px var(--gc)}
/* niente puntino colorato con anello bianco davanti all'emoji del genere (v400): l'emoji basta */
.fgp[class*=" fg-"]::before{content:none}
/* schede In sala / In uscita / Archivio / Sondaggi: un colore ciascuna (puntino sempre, tinta piena quando è scelta; testi bianchi su colori scuri ≥ 4,5:1) */
.cin-tabs .tab{--tc:#475569}
.cin-tabs .tab.cin-t-sala{--tc:#17693a}.cin-tabs .tab.cin-t-uscita{--tc:#8a4b00}.cin-tabs .tab.cin-t-archivio{--tc:#475569}.cin-tabs .tab.cin-t-sondaggi{--tc:#6d28d9}
.cin-tabs .tab::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--tc);box-shadow:0 0 0 1.5px rgba(255,255,255,.6)}
.cin-tabs .tab.cin-t-sala:not([aria-selected="true"]){border-color:color-mix(in srgb,var(--tc) 45%,var(--line))}
.cin-tabs .tab.cin-t-uscita:not([aria-selected="true"]){border-color:color-mix(in srgb,var(--tc) 45%,var(--line))}
.cin-tabs .tab.cin-t-sondaggi:not([aria-selected="true"]){border-color:color-mix(in srgb,var(--tc) 45%,var(--line))}
.ds-tabs.cin-tabs .tab[aria-selected="true"]{background:var(--tc);color:#fff;border-color:var(--tc)}
.ds-tabs.cin-tabs .tab[aria-selected="true"]::before{background:#fff;box-shadow:none}
@media (min-width:641px){ .ds-tabs.cin-tabs .tab{padding-left:16px;padding-right:16px} }   /* i puntini allargavano le schede: nel Cinema in Vetrina la barra andava a capo a 1400 px (prova riga-ricerca) */

/* «Più vicini a te» (A-78, tappa 2): distanza accanto a ogni evento */
.km-badge{display:inline-block;margin:6px 12px 10px;padding:2px 10px;border-radius:999px;background:var(--surface-2,#eef);color:var(--ink-2,#444);font-size:13px;font-weight:700}

/* Evento annullato (A-79, v376): chip, avviso nella scheda, carte e righe barrate, riquadro del motivo */
.chip.cancelled{background:#fde8e8;color:#9b1c1c;border:1px solid #f3b4b4;font-weight:800}
.cancelled-note{margin:10px 0;padding:12px 14px;border-radius:12px;background:#fde8e8;color:#7a1414;border:1px solid #f3b4b4}
.cancelled-note p{margin:4px 0 0}
.ecard.cancelled h3,.erow.cancelled h3,.ecard.cancelled .title,.erow.cancelled .title{text-decoration:line-through}
.ecard.cancelled,.erow.cancelled{opacity:.78}
.annulla-box{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.annulla-box input{width:100%;font-size:16px}
.ev-dopo{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}

/* Mappa (Leaflet): la scritta «Leaflet | © OpenStreetMap» sta su fondo quasi bianco con link più scuro, così si legge anche sopra mappe scure (axe: 3,3:1 → ≥ 4,5:1) */
.leaflet-container .leaflet-control-attribution{background:rgba(255,255,255,.94);color:#333}
.leaflet-container .leaflet-control-attribution a{color:#00587a}

/* Amministrazione → Artisti: il campo «Link per ascoltare» come gli altri campi dell'area (A-123, fase 7: prima aveva il bordo quadrato predefinito del browser) */
.ar-music{min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;min-width:0;width:100%;max-width:200px}

/* età indicativa (A-133, v378): campo del modulo e chip */
.f-eta-in{display:flex;align-items:center;gap:8px}
.f-eta-in input{width:90px;min-width:0}
.chip.eta{background:var(--surface-2,#eef);color:var(--ink-2,#444);border:1px solid var(--line)}

/* «+1 amico» (A-133, v379): chip nell'elenco di chi organizza e segno accanto ai nomi */
.piu-uno{font-weight:700;color:var(--ink-2)}
.chip.piu-uno-chip{background:var(--surface-2,#eef);color:var(--ink-2);border:1px solid var(--line)}
.chip.plus1{background:var(--surface-2,#eef);color:var(--ink-2);border:1px solid var(--line)}

/* Impostazioni a elenco (v380): voci raggruppate, una sezione alla volta */
.pf-imp-gr{margin:0 0 18px}
.pf-imp-h{margin:0 0 8px 4px;font-size:var(--t-cap);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.pf-imp-l{list-style:none;margin:0;padding:0;border-radius:16px;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.pf-imp-l li+li{border-top:1px solid var(--line)}
.pf-imp-riga{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 14px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pf-imp-riga:hover{background:var(--surface-2)}
.pf-imp-riga:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pf-imp-ic{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--surface-2);font-size:var(--t-lg)}
.pf-imp-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.pf-imp-t strong{font-size:var(--t-md)}
.pf-imp-t small{font-size:var(--t-cap);line-height:1.3;overflow-wrap:anywhere}
.pf-imp-fr{flex:none;font-size:var(--t-xl);line-height:1;color:var(--ink-3)}
.pf-imp-riga.pericolo .pf-imp-t strong{color:#C62D33}
.pf-imp-indietro{margin:0 0 12px}
@media (min-width:900px){.pf-imp-gr,.pf-imp-indietro{max-width:720px}.profile .pf-imp-indietro+.pf-sec{max-width:720px}}
/* Profilo a due colonne sul computer (v381): le sezioni strette si affiancano, le larghe restano a tutta pagina */
.pf-cols{display:flex;flex-direction:column;gap:18px}
@media (min-width:1000px){.pf-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.pf-cols>*{grid-column:1/-1}.pf-cols>.pf-half{grid-column:auto}
  .pf-cols .pf-sugg-l{grid-template-columns:1fr}}

/* Profilo più compatto (v385): meno spazio tra e dentro le sezioni, testata più bassa, numeri in tre colonne anche sul telefono */
.profile{gap:12px}
.pf-cols{gap:12px}
.pf-sec{padding:14px 16px;gap:8px;border-radius:16px}
.pf-sec h3{font-size:var(--t-ti)}
.pf-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pf-stat{padding:10px 12px;gap:2px;border-radius:14px}
.pf-stat strong{font-size:var(--t-lg)}
.pf-ic{font-size:var(--t-ti)}
.pf-stat .pf-l{font-size:var(--t-cap);line-height:1.25}
.pf-hero{padding-bottom:12px}
.pf-cover{height:84px}
.pf-head{margin-top:-40px;gap:14px}
.pf-head .pf-id{padding-top:48px}
.pf-avatar{width:80px;height:80px}
.pf-hero-az{margin-top:8px}
.pf-imp-l{border-radius:14px}.pf-imp-riga{min-height:56px;padding:10px 12px}.pf-imp-gr{margin-bottom:12px}
@media (max-width:640px){
  .pf-cover{height:60px}
  .pf-head{margin-top:-32px;gap:10px}
  .pf-head .pf-id{padding-top:36px}
  .pf-avatar{width:68px;height:68px}
  .pf-sec{padding:12px 14px}
}
.pf-vis-gr{margin:10px 0 2px;font-size:var(--t-cap);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.pf-vis-gr:first-child{margin-top:0}
.pf-vis-riga{min-height:46px;padding:6px 2px;gap:12px}
@media (min-width:900px){.pf-vis-lista:not(.sg-modo){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.pf-vis-lista:not(.sg-modo)>.pf-vis-gr{grid-column:1/-1}.pf-vis-lista:not(.sg-modo)>.pf-vis-riga:nth-child(2),.pf-vis-lista:not(.sg-modo)>.pf-vis-gr+.pf-vis-riga{border-top:0}}

.pf-imp-indietro{justify-self:start;width:auto}
/* «⚙️ Impostazioni» è un pulsante con il nome, accanto a «Modifica profilo» e «Condividi» (v385); sul telefono: Modifica a tutta riga, sotto Condividi e Impostazioni affiancati */
.pf-hero .pf-gear{position:static;margin:0;min-width:0;min-height:0;padding:8px 16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:inherit;background:transparent;color:inherit;border:1px solid var(--line);backdrop-filter:none}
.pf-hero .pf-gear[aria-current="page"]{background:var(--accent-soft,var(--surface-2));border-color:var(--accent);color:var(--accent-text,inherit)}
@media (max-width:640px){.pf-hero-az{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pf-hero-az .btn.primary{grid-column:1/-1}.pf-hero-az .btn{justify-content:center}}
/* copertina automatica con tinta personale e scheletro di caricamento (v385) */
.pf-cover.pf-cov-auto{filter:hue-rotate(var(--pf-rot,0deg))}
.pf-sk{display:flex;flex-direction:column;gap:8px;width:100%}
.pf-sk span{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--surface-2) 25%,color-mix(in srgb,var(--surface-2) 60%,var(--ink-3)) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:pf-sk 1.4s linear infinite}
.pf-sk span:nth-child(2){width:80%}.pf-sk span:nth-child(3){width:55%}
@keyframes pf-sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.pf-sk span{animation:none}}
.pf-imp-cerca{width:100%;max-width:720px;min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;margin-bottom:14px}
.pf-imp-cerca:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.pf-imp-gr[hidden],.pf-imp-l li[hidden]{display:none}
.pf-preset{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 8px}
/* senza eventi il calendario annuale si riduce alla frase (la griglia vuota occupava mezza schermata); «+ Aggiungi…» è il passo successivo del profilo */
.pf-cal-q.vuoto .pf-q-scroll,.pf-cal-q.vuoto .pf-q-leg{display:none}
.pf-next-step{align-self:flex-start;margin-top:4px}
.pf-compl{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.pf-compl .pf-prog{flex:1 1 100%}
/* «Sport e natura»: carosello delle attività e testata di ogni attività (v387) */
.att-car{list-style:none;margin:0;padding:2px 2px 8px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}
.att-car>li{flex:none;scroll-snap-align:start}
.att-carta{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;width:168px;height:196px;padding:12px;border-radius:18px;border:1px solid var(--line);overflow:hidden;color:#fff;text-align:left;font:inherit;cursor:pointer;background:linear-gradient(160deg,color-mix(in srgb,var(--att,#6fcf97) 85%,#000),color-mix(in srgb,var(--att,#6fcf97) 40%,#000))}
.att-carta:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
.att-carta:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.att-ic{position:absolute;top:14px;left:14px;font-size:54px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.att-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.att-carta::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.62))}
.att-t{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px}
.att-t strong{font-size:17px;line-height:1.15;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.att-t small{font-size:13px;opacity:.92;text-shadow:0 1px 3px rgba(0,0,0,.5)}
@media (min-width:900px){.att-car{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}.att-carta{width:100%;height:170px}}
@media (prefers-reduced-motion:reduce){.att-carta:hover{transform:none}}
.att-testa{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 4px}
.att-testa h2{margin:0;font-size:clamp(22px,4vw,30px)}
.att-escursionismo{--att:#2fd16b}
.att-ciclismo{--att:#ff9f1a}
.att-corsa{--att:#ff5a5f}
.att-alpinismo{--att:#8a6cff}
.att-inverno{--att:#4cc9f0}
.att-acqua{--att:#1e90ff}
.att-terme{--att:#f7b2c4}
.att-cavallo{--att:#c08457}
.att-motore{--att:#9aa0a6}
.att-altro{--att:#6fcf97}
/* «Chi sono» vuota: invito con tre scelte rapide e «N passi su 9» (tappa 1 del piano del profilo, 23/10) */
.pf-invito{display:flex;flex-direction:column;gap:8px;width:100%}
.pf-invito p{margin:0}
.pf-invito-t{font-size:var(--t-lg);font-weight:800}
.pf-rapidi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px}
.pf-rapido{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:88px;padding:10px 8px;border-radius:16px;border:1.5px solid var(--line);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:inherit;font:inherit;font-weight:700;font-size:var(--t-sm);line-height:1.25;text-align:center;cursor:pointer}
.pf-rapido span{font-size:var(--t-xl);line-height:1}
.pf-rapido:hover,.pf-rapido:focus-visible{border-color:var(--accent)}
@media (max-width:420px){.pf-rapidi{grid-template-columns:1fr}.pf-rapido{flex-direction:row;justify-content:flex-start;min-height:56px;padding:10px 14px;text-align:left}.pf-rapido span{font-size:var(--t-lg)}}
/* «Come ti vedono gli altri» sopra le schede del profilo (tappa 1) */
.pf-vista{align-self:flex-start;margin:2px 0}
/* Impostazioni a riquadri colorati cliccabili (tappa 2 del piano del profilo, 23/10): un colore per gruppo, due colonne sul telefono, tre o più sul computer; il colore è una variabile della classe del gruppo (niente stili in linea) */
.pf-imp-g1{--c:#8b5cf6}.pf-imp-g2{--c:#f59e0b}.pf-imp-g3{--c:#0ea5e9}.pf-imp-g4{--c:#10b981}
.pf-imp-gr .pf-imp-l{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:transparent;border:0;border-radius:0;overflow:visible}
.pf-imp-gr .pf-imp-l li+li{border-top:0}
.pf-imp-gr .pf-imp-riga{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;min-height:128px;height:100%;padding:14px;border-radius:18px;border:1.5px solid color-mix(in srgb,var(--c) 50%,var(--line));background:color-mix(in srgb,var(--c) 15%,var(--surface))}
.pf-imp-gr .pf-imp-riga:hover{background:color-mix(in srgb,var(--c) 24%,var(--surface))}
.pf-imp-gr .pf-imp-riga:focus-visible{outline:2px solid var(--c);outline-offset:2px}
.pf-imp-gr .pf-imp-ic{width:46px;height:46px;border-radius:14px;font-size:var(--t-xl);background:color-mix(in srgb,var(--c) 32%,var(--surface))}
.pf-imp-gr .pf-imp-t{gap:3px;flex:none;width:100%}
.pf-imp-gr .pf-imp-t strong{font-size:var(--t-md);line-height:1.25}
.pf-imp-gr .pf-imp-t small{color:var(--ink-2);font-size:var(--t-cap)}
.pf-imp-gr .pf-imp-riga.pericolo{--c:#e5484d}
.pf-imp-gr .pf-imp-riga.pericolo .pf-imp-t strong{color:var(--ink)}
.pf-imp-gr .pf-imp-fr{display:none}
@media (min-width:900px){.pf-imp-gr,.pf-imp-cerca{max-width:none}.pf-imp-gr .pf-imp-l{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}}
/* testata compatta delle Impostazioni (sostituisce il blocco grande del profilo) */
.pf-imp-testa{display:flex;align-items:center;gap:12px;margin:2px 0 14px}
.pf-imp-testa .back{margin:0}
.pf-imp-titolo{margin:0;font-size:var(--t-lg)}
.pf-imp-gr .pf-imp-t small{overflow-wrap:break-word}
/* «Proponi un'uscita»: passo «Cosa» con le attività a riquadri colorati; link di biglietterie, categoria e cena a tavoli nascosti (23/10) */
.f-uscita #f-import-box,.f-uscita #f-cat-field,.f-uscita .tav-field,.f-uscita #f-att-field{display:none}
.f-att-l{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.f-att-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.f-att-t{display:flex;align-items:center;gap:8px;min-height:56px;padding:10px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-weight:700;font-size:14px;line-height:1.2;text-align:left;cursor:pointer}
.f-att-t span:last-child{min-width:0;overflow-wrap:anywhere}
.f-att-t:hover{border-color:var(--accent)}
.f-att-t.on{border-color:var(--accent);background:var(--accent-soft,var(--surface));box-shadow:inset 0 0 0 1.5px var(--accent)}
.f-att-ic{font-size:24px;line-height:1;flex:none}
@media (min-width:640px){.f-att-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.f-att-t{flex-direction:column;justify-content:center;text-align:center;min-height:84px}}
/* ritorno delle Impostazioni: grande, colorato e ben definito (23/10) */
.pf-imp-testa .pf-imp-back{min-height:48px;padding:0 22px;font-size:var(--t-ti);font-weight:800;border-radius:999px;flex:none}
/* «Proponi un'uscita» fase 2: dati dell'uscita nel passo «Dettagli» e sulla scheda (v392) */
.f-out{display:none}
.f-uscita .f-out,.f-out.f-via:not([hidden]){display:flex;flex-direction:column;gap:14px;padding:14px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface-2)}
.f-out-h{margin:0;font-size:17px}
.f-out-h small{font-weight:400;color:var(--ink-3)}
.f-out-pills{display:flex;flex-wrap:wrap;gap:8px}
.f-out-p{min-height:44px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-weight:600;cursor:pointer}
.f-out-p.on{border-color:var(--accent);background:var(--accent-soft,var(--surface));box-shadow:inset 0 0 0 1.5px var(--accent)}
.f-out-riga{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.f-out-c{display:flex;flex-direction:column;gap:6px;min-width:0}
.f-out-c label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.f-out-liv[hidden],.f-out-c[hidden],.f-out-gear-w[hidden]{display:none}
.chip.uscita{font-weight:600}
.ev-uscita-dati{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.ev-uscita-dati li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2)}
.ev-uscita-dati strong{font-size:17px}
.ev-uscita-rit{margin:0 0 10px}
.ev-uscita-l{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ev-uscita-l li{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:14px}
/* Film senza trailer: campo e pulsanti nella riga (v395) */
.fm-trailer-riga{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.fm-trailer-in{flex:1 1 260px;min-width:0;min-height:44px;padding:8px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit}
/* «Concerti trovati dal sistema» nel modulo di un concerto (v397) */
.f-found{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;border:1.5px solid var(--accent);background:var(--accent-soft,var(--surface-2))}
.f-found[hidden]{display:none}
.f-found label small{font-weight:400}
.f-found-l{display:flex;flex-direction:column;gap:6px}
.f-found-b{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:52px;padding:8px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}
.f-found-b:hover,.f-found-b:focus-visible{border-color:var(--accent)}
.f-found-b small{color:var(--ink-2)}
/* ricerca nell'area organizzatore (v398) */
.myev-cerca{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 10px}
.myev-q{flex:1 1 260px;min-width:0;min-height:48px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit}
.myev-q:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* anello «acceso» attorno alla foto quando la persona ha un evento in arrivo (v399) */
.pf-av.pf-av-live::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--accent);opacity:.85;pointer-events:none;animation:pf-live 2.4s ease-in-out infinite}
@keyframes pf-live{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:.35}}
@media (prefers-reduced-motion:reduce){.pf-av.pf-av-live::after{animation:none}}
/* anello «acceso» attorno alla foto quando la persona ha un evento in arrivo (v399) */
.pf-av.pf-av-live::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--accent);opacity:.85;pointer-events:none;animation:pf-live 2.4s ease-in-out infinite}
@keyframes pf-live{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:.35}}
@media (prefers-reduced-motion:reduce){.pf-av.pf-av-live::after{animation:none}}

/* cambio di tema: dissolvenza morbida (View Transitions, js/aspetto.js) */
::view-transition-old(root),::view-transition-new(root){animation-duration:.3s;animation-timing-function:ease-in-out}

/* v481 · Amministrazione → Film: i filtri sono etichette col conteggio in tre gruppi (Da fare · Manca qualcosa · Tutti), non nove riquadri («riquadri con dei numeri… dispersivi») */
.fm-stats.fm-chips{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 22px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.fm-chip-g{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.fm-chip-g:last-child{margin-left:auto;align-self:flex-start;margin-top:21px}   /* «Tutti i film» a destra, allineato alla prima fila */
.fm-chip-l{flex-basis:100%;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.fm-chips .fm-stat{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 6px 0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:500;line-height:1.2;transition:border-color .15s,background .15s}
.fm-chips .fm-stat strong{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:color-mix(in srgb,var(--accent) 80%,var(--ink));font-size:13px;font-weight:700}
.fm-chips .fm-stat.zero{color:var(--ink-3)}
.fm-chips .fm-stat.zero strong{background:var(--surface-2);color:var(--ink-3)}
.fm-chips .fm-stat:hover{border-color:var(--accent);color:var(--ink)}
.fm-chips .fm-stat[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:color-mix(in srgb,var(--accent) 80%,var(--ink));box-shadow:none}
.fm-chips .fm-stat[aria-pressed=true] strong{background:var(--accent);color:#fff}
@media (max-width:1100px){.fm-stats.fm-chips{gap:10px 16px}.fm-chip-g:last-child{margin-left:0;margin-top:0}}
@media (max-width:560px){.fm-stats.fm-chips{display:flex;padding:10px 12px}.fm-chips .fm-stat{min-height:40px}}

/* v485 · Amministrazione → Cinema: i numeri in righe compatte (numero · etichetta · nota) dentro un riquadro solo, invece di dieci/sei scatoline («riquadri con dei numeri… dispersivi») */
.cc-stats.cc-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2px 28px;padding:8px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.cc-strip .cc-stat{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:12px;align-items:baseline;padding:8px 0;border:0;border-radius:0;background:none;gap:0 12px}
.cc-strip .cc-stat strong{font-size:20px;line-height:1.1;text-align:right;font-variant-numeric:tabular-nums}
.cc-strip .cc-stat > span{font-size:14px;font-weight:600;line-height:1.3}
.cc-strip .cc-stat small{grid-column:2;font-size:12px;line-height:1.3;color:var(--ink-3)}
@media (max-width:560px){.cc-stats.cc-strip{grid-template-columns:minmax(0,1fr);padding:4px 14px}}
/* v486 · Amministrazione → Cinema: quattro parti; i blocchi accorpati hanno un titolo di gruppo più grande, con una riga sopra */
.cc-sub.cc-gr{margin:26px 0 10px;padding-top:18px;border-top:1px solid var(--line);font-size:18px;letter-spacing:-.01em}
.adm-sub-corpo > .cc-sub.cc-gr:first-child{margin-top:4px;padding-top:0;border-top:0}
/* v488 · Amministrazione → Film → Senza trailer: la proposta della ricerca con «Applica» e «Ignora» */
.fm-proposta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);font-size:14px}
.fm-proposta-t{min-width:0;overflow-wrap:anywhere}
/* v489 · Cinema: la barra dei bottoni (← Home, In sala, In uscita, Archivio, Sondaggi, Lista/Calendario, Schede/Elenco/Compatta/Programma, Esporta riepilogo) del 10% più piccola da computer («tutti i bottoni da home in poi del 10% più piccoli»); da telefono restano 44 px per il tocco */

/* ===== v522 · «Proponi un evento», tappa a (bozze https://claude.ai/artifact/AXv6Xy9waEEDQQ1Q5FjPnF): anche da computer un passo alla volta, con l'anteprima fissa a destra,
   «Cosa organizzi?» a riquadri e la barra delle azioni sempre in basso. Il telefono resta com'era (il suo blocco sta sopra). ===== */
@media (min-width:641px){
  #form .f-steps{display:flex;gap:4px;list-style:none;margin:0 0 6px;padding:0;flex-wrap:wrap}
  .f-steps li{flex:none}
  .f-steps li button{display:flex;align-items:center;gap:8px;border:0;background:none;padding:6px 12px 6px 6px;border-radius:999px;cursor:pointer;color:var(--ink-3);font:inherit;font-size:14px;font-weight:600}
  .f-steps li button:hover{background:var(--surface-2)}
  .f-steps li b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface-2);border:1.5px solid var(--line);font-size:12.5px;color:var(--ink-2)}
  .f-steps li.on button{color:var(--ink);font-weight:700}
  .f-steps li.on b{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .f-steps li.done b{background:color-mix(in srgb,var(--ok) 22%,var(--surface));border-color:var(--ok);color:var(--ok)}
  #form:not(.show-all)[data-cur="1"] .grid > [data-step]:not([data-step="1"]),
  #form:not(.show-all)[data-cur="2"] .grid > [data-step]:not([data-step="2"]),
  #form:not(.show-all)[data-cur="3"] .grid > [data-step]:not([data-step="3"]),
  #form:not(.show-all)[data-cur="4"] .grid > [data-step]:not([data-step="4"]){display:none}
  #form:not(.show-all)[data-cur] .f-sec{display:none}
  #form:not(.show-all)[data-cur] .f-nav{display:inline-flex;justify-content:center}
  #form:not(.show-all)[data-cur="1"] #f-back,#form:not(.show-all)[data-cur="4"] #f-next{display:none}
  #form:not(.show-all)[data-cur] #f-back{order:1}#form:not(.show-all)[data-cur] #f-stepn{order:2;flex:1 1 auto}#form:not(.show-all)[data-cur] #f-submit{order:3}#form:not(.show-all)[data-cur] #f-cancel{order:4}#form:not(.show-all)[data-cur] #f-next{order:5}
  #form:not(.show-all)[data-cur] .form-msg{order:6;flex:1 0 100%}
  /* prima dell'ultimo passo «Pubblica» resta a portata di mano ma in secondo piano (bozza: «Puoi già pubblicare») */
  #form:not(.show-all)[data-cur="1"] #f-submit,#form:not(.show-all)[data-cur="2"] #f-submit,#form:not(.show-all)[data-cur="3"] #f-submit{background:transparent;color:var(--ink-2);border:1px solid var(--line);box-shadow:none}
  #form:not(.show-all)[data-cur] #f-stepn{display:block;font-size:13.5px;color:var(--ink-3)}
  #form.show-all #f-stepn,#form.show-all .f-nav{display:none}
  .propose#form .form-actions{position:sticky;bottom:0;z-index:5;margin:8px -16px -16px;padding:12px 16px;background:var(--surface);border-top:1px solid var(--line)}
  #form:not(.show-all)[data-cur] .f-reqnote{display:none}
  .f-tutto{justify-self:start;border:0;background:none;padding:4px 0;margin:-2px 0 8px;font:inherit;font-size:13px;font-weight:600;color:var(--accent-text,var(--accent));cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  #form .f-recap{display:none}
}
@media (max-width:640px){.f-tutto{display:none}}
.f-stepn{display:none}
/* «Cosa organizzi?» a riquadri (passo 1) */
.f-tipo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.f-tipo-t{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:96px;padding:12px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}
.f-tipo-t:hover{border-color:var(--accent)}
.f-tipo-t.on{border-color:var(--accent);background:var(--accent-soft,var(--surface-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.f-tipo-ic{font-size:26px;line-height:1}
.f-tipo-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.f-tipo-tx b{font-size:14.5px;line-height:1.2}
.f-tipo-tx small{font-size:12px;line-height:1.3;color:var(--ink-3)}
#f-cat-field.f-cat-nascosta{display:none}
.f-uscita #f-tipo-box{display:block}
@media (max-width:640px){
  .f-tipo-grid{grid-template-columns:1fr;gap:8px}
  .f-tipo-t{flex-direction:row;align-items:center;min-height:60px;padding:10px 12px}
  .f-tipo-tx b{font-size:15.5px}
}
@media (min-width:641px) and (max-width:1000px){.f-tipo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* «Da completare» sotto l'anteprima, nella colonna di destra; da telefono resta sotto i campi del passo (l'anteprima compare solo al passo 4) */
.f-prev .f-warn{margin-top:12px;padding:0;border:0;background:transparent;font-size:13.5px;gap:8px}
.f-prev .f-warn > strong{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.f-prev .f-warn > strong small{font-weight:600;letter-spacing:0;text-transform:none;font-size:12px}
.f-prev .f-warn .wr{padding-left:14px;position:relative;color:var(--ink-2)}
.f-prev .f-warn .wr::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--warn,#a5561a)}
.f-prev .f-warn .chip-sug{padding:4px 10px;font-size:13px}
@media (max-width:640px){
  #form:not([data-cur="4"]) .f-prev{display:block;margin:0}
  #form:not([data-cur="4"]) .f-prev > :not(.f-warn){display:none}
  .f-prev .f-warn{margin-top:4px}
}
@media (min-width:641px) and (max-width:1099px){#form > .f-prev{display:block;margin-top:12px}}
body:has(#form:not([hidden])) #sections{display:none}   /* con il modulo aperto la riga delle sezioni distrae; si torna con «Annulla» o pubblicando */
@media (min-width:1100px){#form > .f-prev{grid-row:1 / span 9}}   /* l'anteprima copre tutte le righe: così titolo, passi e interruttore non si allargano per farle posto */
.f-tutto{margin:-6px 0 10px}
#form.show-all:not(.f-uscita) #f-cat-field.f-cat-nascosta{display:block}   /* «Tutto su una pagina»: anche il menu delle categorie resta visibile */

/* ===== v523 · «Proponi un evento», tappa b: Dettagli a gruppi richiudibili, calendario accanto a «Quando», mappa in «Dove» ===== */
#form .opt-toggle{display:none}
#form.propose:not(.show-opts) .field.opt{display:flex}   /* niente più «Altre opzioni»: i gruppi chiusi fanno lo stesso lavoro */
.f-grp{grid-column:1 / -1;display:block;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.f-grp > summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:58px;padding:8px 14px;cursor:pointer}
.f-grp > summary::-webkit-details-marker{display:none}
.f-grp > summary:hover{background:var(--surface-2)}
.f-grp > summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.f-grp-ic{width:36px;height:36px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-2);flex:none}
.f-grp-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.f-grp-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.f-grp-t b{font-size:15.5px}
.f-grp-s{font-size:13px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f-grp-s.warn{color:var(--warn,#a5561a);font-weight:600}
.f-grp-ch{width:10px;height:10px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:rotate(45deg);margin:0 8px 4px 0;flex:none;transition:transform .15s}
.f-grp[open] > summary .f-grp-ch{transform:rotate(225deg);margin:4px 8px 0 0}
.f-grp > .f-grp-in{padding:6px 14px 14px;border-top:1px solid var(--line)}
.f-grp .f-grp-in > .field.opt-card{background:var(--surface-2)}
@media (prefers-reduced-motion:reduce){.f-grp-ch{transition:none}}
/* calendario accanto a «Quando» (da computer, un passo alla volta) */
.f-cal{display:none}
.f-cal > input{display:none}
.f-cal .flatpickr-calendar.inline{width:100%;max-width:none;box-shadow:none;border:1px solid var(--line);border-radius:14px;padding:6px 0}
.f-cal .flatpickr-innerContainer,.f-cal .flatpickr-rContainer,.f-cal .flatpickr-days,.f-cal .dayContainer{width:100%;min-width:0;max-width:none}
.f-cal .flatpickr-day{max-width:none;height:38px;line-height:38px;position:relative}
.f-cal .flatpickr-day.f-cal-mio::after{content:"";position:absolute;left:50%;bottom:3px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--accent)}
.f-cal .flatpickr-day.selected.f-cal-mio::after{background:var(--accent-ink,#fff)}
.f-cal-h{display:block;margin-top:6px}
@media (min-width:1000px){
  #form:not(.show-all)[data-cur="2"] .field:has(> #f-days){display:grid;grid-template-columns:minmax(0,1fr) 320px;column-gap:20px;row-gap:10px;align-items:start}
  #form:not(.show-all)[data-cur="2"] .field:has(> #f-days) > :not(.f-cal){grid-column:1}
  #form:not(.show-all)[data-cur="2"] .f-cal{display:block;grid-column:2;grid-row:1 / span 6}
}
/* mappa nel passo «Dove» */
.f-map{margin-top:10px}
.f-map[hidden]{display:none}
.f-map-el{height:240px;border-radius:14px;border:1px solid var(--line);overflow:hidden;background:var(--surface-2)}
.f-map-note{margin:6px 0 0}
@media (min-width:1000px){
  #form:not(.show-all)[data-cur="3"] .field:has(> .place-row > #f-place){display:grid;grid-template-columns:minmax(0,1fr) 400px;column-gap:20px;row-gap:6px;align-items:start}
  #form:not(.show-all)[data-cur="3"] .field:has(> .place-row > #f-place) > :not(.f-map){grid-column:1}
  #form:not(.show-all)[data-cur="3"] .f-map{grid-column:2;grid-row:1 / span 8;margin:0}
  #form:not(.show-all) .f-map-el{height:320px}
}
#form.propose.f-uscita .field.opt.tav-field,#form.propose.f-uscita .field.opt#f-att-field{display:none}   /* per un'uscita la cena a tavoli e l'elenco attività restano nascosti anche dentro i gruppi */

/* ===== v524 · «Proponi un evento», tappa c: «Hai una proposta a metà», «Pubblicato!», righe di «Da completare» che portano al passo ===== */
.f-ripr{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.f-ripr-t{display:flex;flex-direction:column;gap:2px}
.f-ripr-t strong{font-size:16.5px}
.f-ripr-t small{font-size:13px;color:var(--ink-2)}
.f-ripr-c{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.f-ripr-d{width:46px;height:50px;border-radius:10px;background:var(--accent);color:var(--accent-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex:none}
.f-ripr-d small{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.f-ripr-d b{font-size:19px}
.f-ripr-n{display:flex;flex-direction:column;gap:2px;min-width:0}
.f-ripr-n b{font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f-ripr-n small{font-size:13px;color:var(--ink-2)}
.f-ripr-az{display:flex;flex-wrap:wrap;gap:8px}
.f-ripr-az .btn{min-height:44px}
.f-ripr-az .btn.primary{flex:1 1 220px}
.f-ripr-del{color:var(--bad)}
.f-done{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;align-items:start;max-width:1800px;margin:0 auto 16px;padding:18px 44px 18px 20px;border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--ok) 8%,var(--surface))}
.f-done-ic{width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--ok) 22%,var(--surface));color:var(--ok);display:grid;place-items:center;font-size:24px;font-weight:800;grid-row:1 / span 2}
.f-done-t h3{margin:0 0 4px;font-family:var(--display);font-size:22px}
.f-done-t p{margin:0;color:var(--ink-2);font-size:15px;line-height:1.45}
.f-done-az{grid-column:2;display:flex;flex-wrap:wrap;gap:8px}
.f-done-az .btn{min-height:44px}
.f-done-x{position:absolute;top:8px;right:8px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--ink-3);font-size:22px;line-height:1;cursor:pointer}
.f-done-x:hover{background:var(--surface-2);color:var(--ink)}
.f-warn .wr-va{border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink) 30%,transparent);text-underline-offset:3px;flex:1 1 220px}
.f-warn .wr-va:hover{color:var(--accent-text,var(--accent))}
@media (max-width:640px){
  .f-done{grid-template-columns:auto minmax(0,1fr);padding:14px 40px 14px 14px;margin:0 0 12px;border-radius:16px}
  .f-done-az{grid-column:1 / -1;flex-direction:column}
  .f-done-az .btn{width:100%}
  .f-ripr-az{flex-direction:column}
}
/* v525 · «Dove»: il pulsante «Cerca sulla mappa» in risalto e la spiegazione sempre sotto il campo («il bottone cerca può essere messo in risalto, magari anche la dicitura sotto una spiegazione») */
#form .place-find.primary{min-height:46px;padding:0 18px;font-weight:700;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 30%,transparent)}
.f-place-h{display:block;margin-top:8px;line-height:1.45;color:var(--ink-2)}
.f-place-h b{color:var(--ink)}
.f-place-st:not([hidden]) + .f-place-h,.f-place-h + .place-chips{margin-top:8px}
@media (max-width:640px){
  .field:has(> .place-row > #f-place) > .place-row{flex-wrap:wrap}
  .field:has(> .place-row > #f-place) > .place-row > .place-find{flex:1 1 100%;min-height:48px}
}

/* ===== v526 · «Proponi un evento», rifiniture («in linea di massima ci siamo, solo che bisogna raffinare, mi sembrano un po' acerbo») ===== */
/* 1. il bottoncino scelto restava blu su blu al passaggio del mouse (e dopo il tocco da telefono): la regola di «scelto» vince su quella di «sopra» */
.day-quick .dq.on:hover,.day-row .time-quick button.on:hover,.time-quick button.on:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
/* 3. orari su righe ordinate: Giorno · Inizio · Durata (con «Senza orario» in fondo a destra) */
.day-row .time-quick.tq-inizio{margin-top:2px}
.day-row .time-quick.tq-durata{margin-top:-2px}
.day-row .time-quick.tq-durata[hidden]{display:none}
.day-row .time-quick .tq-clear{margin-left:auto;font-weight:600}
/* 2. da telefono i bottoncini vanno a capo invece di scorrere di lato tagliando le parole */
@media (max-width:640px){
  .day-quick,.day-row .time-quick{flex-wrap:wrap;overflow:visible;margin-inline:0;padding:0;gap:6px}
  .day-quick .tq-l,.day-row .time-quick .tq-l{min-width:0;flex-basis:100%;margin:0}
  .day-row .time-quick .tq-clear{margin-left:auto}
  /* 7. «Aggiungi un altro giorno» e «Ripeti» affiancati, come bottoni secondari */
  .rep-btns .btn{flex:1 1 100%;min-height:44px;font-size:14.5px}
  /* 6. testata più compatta: titolo, passi e via la riga dell'asterisco */
  #form > h2{font-size:19px}
  #form .f-steps{margin:0 0 2px}
  .f-steps li b{width:24px;height:24px;font-size:12px;border-width:1.5px}
  .f-steps li button{font-size:11.5px;gap:2px}
  #form.propose{gap:12px}
}
.rep-btns .btn.ghost{border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-weight:600;color:var(--ink)}
.rep-btns .btn.ghost:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
/* 5. «Tutto su una pagina» a destra della barra dei passi, come interruttore discreto */
.f-testa{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.f-testa .f-steps{flex:1 1 auto}
#form .f-tutto{margin:0;padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:12.5px;font-weight:600;text-decoration:none;line-height:1.2}
#form .f-tutto:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
#form .f-tutto[aria-pressed="true"]{background:var(--accent-soft,var(--surface-2));border-color:var(--accent);color:var(--ink)}
/* 4. da computer la scheda finiva 80 px sotto la barra delle azioni: l'anteprima copriva 9 righe della griglia e le righe vuote contavano lo spazio tra una riga e l'altra */
@media (min-width:1100px){#form > :not(.f-prev){grid-column:1} #form > .f-prev{grid-row:1 / span 4}}
/* 8. «Dove»: spiegazione di una riga, il resto con «Come funziona?» */
.f-place-piu{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent-text,var(--accent));cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.f-place-piu-t{display:block;margin-top:6px}
.f-place-piu-t[hidden]{display:none}
/* 9. «Da completare»: righe come piccole schede con freccia, senza sottolineatura */
.f-warn .wr{padding:9px 12px 9px 26px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.f-warn .wr::before{content:"";position:absolute;left:11px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--warn,#a5561a)}
.f-warn .wr{position:relative}
.f-prev .f-warn .wr{padding:9px 12px 9px 26px}
.f-prev .f-warn .wr::before{left:11px;top:14px}
.f-warn .wr-va{text-decoration:none;color:var(--ink)}
.f-warn .wr-va::after{content:" ›";font-weight:800;color:var(--ink-3)}
.f-warn .wr-va:hover{color:var(--accent-text,var(--accent))}
.f-warn .wr-va:hover::after{color:inherit}
.f-prev .f-warn{gap:6px}

/* ===== v527 · passo 1 «Cosa» rifinito (bozza https://claude.ai/artifact/2Ub4JukWW64xZ1JQLC4pJV, «ok»): icone a linea nei riquadri, due colonne da telefono, «Hai già il link?» discreto sotto il titolo ===== */
.f-tipo-ic{width:40px;height:40px;border-radius:10px;background:var(--surface-2);color:var(--accent-text,var(--accent));display:grid;place-items:center;font-size:0;flex:none}
.f-tipo-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.f-tipo-t.on .f-tipo-ic{background:var(--accent);color:var(--accent-ink)}
.f-tipo-t{gap:10px;padding:14px}
#form .f-tipo-sub{display:none}
@media (max-width:640px){
  .f-tipo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .f-tipo-t{flex-direction:row;align-items:center;gap:10px;min-height:56px;padding:8px 10px;border-radius:12px}
  .f-tipo-ic{width:36px;height:36px;border-radius:9px}
  .f-tipo-ic svg{width:24px;height:24px}
  .f-tipo-tx b{font-size:14.5px;line-height:1.15}
  .f-tipo-tx small{display:none}
  #form .f-tipo-sub{display:block;margin-top:8px;color:var(--ink-3)}
  #form .f-tipo-sub[hidden]{display:none}
}
.f-import-riga{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:11px 14px;border:1px dashed color-mix(in srgb,var(--ink) 22%,var(--line));border-radius:12px;background:var(--surface-2);color:var(--ink-2);font-size:14px;line-height:1.35}
.f-import-riga[hidden]{display:none}
.f-import-ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--accent-text,var(--accent))}
.f-import-t{flex:1 1 220px}
.f-import-apri{display:inline-flex;align-items:center;min-height:44px;border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent-text,var(--accent));cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.f-import-in[hidden]{display:none}
.f-import-in{display:flex;flex-direction:column;gap:6px}
.f-import-in label{margin:0}

/* ===== v528 · «Dove»: i locali salvati in Dove mangiare / Dove andare prima di OpenStreetMap (suggeriti mentre si scrive, in cima ai risultati) ===== */
.f-locali{margin-top:6px}
.f-loc-opt{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px}
.f-loc-n{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 auto;text-align:left}
.f-loc-n strong{font-size:14.5px;line-height:1.25}
.f-loc-n small{font-size:12.5px;color:var(--ink-3);line-height:1.3}
.f-loc-sez{flex:none;padding:3px 9px;border-radius:999px;background:var(--accent-soft,var(--surface-2));color:var(--ink);font-size:11.5px;font-weight:700;letter-spacing:.02em}
.place-res .f-loc-t{margin:2px 0 -2px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}

/* ===== v530 · «Dove»: locali e risultati in una tendina sopra il contenuto (prima allungavano la pagina fino alla barra); «Quando» da computer: riquadro del giorno più compatto, calendario più grande ===== */
.field:has(> .place-row > #f-place) > .place-row{position:relative}
#form .f-tendina{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;margin:0;max-height:min(340px,55vh);overflow:auto;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 12px 32px rgba(16,24,40,.16)}
#form .f-tendina[hidden]{display:none}
#form .f-tendina .place-opt{border-color:transparent;background:transparent;border-radius:10px}
#form .f-tendina .place-opt:hover,#form .f-tendina .place-opt:focus-visible{background:var(--surface-2);border-color:var(--line)}
#form .f-tendina .f-loc-t{margin:6px 8px 2px}
#form .f-tendina > p.muted{margin:6px 8px 4px}
@media (min-width:641px){
  #form:not(.show-all)[data-cur="2"] .field:has(> #f-days){grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:24px}
  #form:not(.show-all)[data-cur="2"] .day-row{padding:12px;row-gap:8px;border-radius:14px}
  #form:not(.show-all)[data-cur="2"] .day-row .sub span{font-size:12px}
  #form:not(.show-all)[data-cur="2"] .day-row .sub input,#form:not(.show-all)[data-cur="2"] .day-row input.tm-in{min-height:40px;font-size:15px}
  #form:not(.show-all)[data-cur="2"] .day-quick .dq,#form:not(.show-all)[data-cur="2"] .day-row .time-quick button{padding:4px 10px;font-size:13px}
  #form:not(.show-all)[data-cur="2"] .day-quick .tq-l,#form:not(.show-all)[data-cur="2"] .day-row .time-quick .tq-l{font-size:11px}
  #form:not(.show-all)[data-cur="2"] .day-sum{padding:8px 12px;font-size:13.5px}
  #form:not(.show-all)[data-cur="2"] .rep-btns .btn{min-height:40px;padding:6px 12px;font-size:13.5px}
  #form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-calendar.inline{padding:10px 4px 8px}
  #form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-day{height:46px;line-height:46px;font-size:15.5px;border-radius:12px}
  #form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-months .flatpickr-month,#form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-current-month{height:40px;font-size:17px}
  #form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-current-month .numInputWrapper,#form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-current-month input.cur-year{font-size:17px}
  #form:not(.show-all)[data-cur="2"] .f-cal span.flatpickr-weekday{font-size:13px}
  #form:not(.show-all)[data-cur="2"] .f-cal .flatpickr-day.f-cal-mio::after{bottom:5px}
}
/* v530 · «Dove» da computer: campo più stretto, mappa più grande («dove si inserisce Luogo mi sembra eccessivamente lungo, si può ridimensionare facendo la mappa più grande») */
@media (min-width:641px){
  #form:not(.show-all)[data-cur="3"] .field:has(> .place-row > #f-place){grid-template-columns:minmax(0,2fr) minmax(0,3fr);column-gap:24px}
  #form:not(.show-all)[data-cur="3"] .f-map-el{height:440px}
  #form:not(.show-all)[data-cur="3"] .place-row > .place-find{padding-inline:14px}
}

/* v530 · «Dove» da computer: il pulsante sotto il campo, così il campo ha tutta la colonna */
@media (min-width:641px){
  #form:not(.show-all)[data-cur="3"] .field:has(> .place-row > #f-place) > .place-row{flex-wrap:wrap}
  #form:not(.show-all)[data-cur="3"] .field:has(> .place-row > #f-place) > .place-row > #f-place{flex:1 1 100%}
  #form:not(.show-all)[data-cur="3"] .field:has(> .place-row > #f-place) > .place-row > .place-find{flex:1 1 100%;min-height:46px}
}
/* v530 · modulo evento: caratteri più grandi, etichette in grassetto, emoji nei passi e nei titoli dei campi, colori per tipo nei riquadri («i caratteri sono troppo piccoli…
   usa il grassetto, una grafica accattivante dei colori ed emoji dove si può») */
#form .field > label,#form .field .lbl,#form .f-att-l{font-size:14px;font-weight:800;letter-spacing:.04em;color:var(--ink)}
#form .field > label small,#form .field .lbl small{font-weight:600;letter-spacing:0;text-transform:none;font-size:13px;color:var(--ink-3)}
#form .field .hint,#form .f-place-h{font-size:14px;line-height:1.45}
#form .f-place-st{font-size:14.5px}
#form .f-tipo-tx b{font-size:16px;font-weight:800}
#form .f-tipo-tx small{font-size:13px}
#form .f-grp > summary .f-grp-t,#form .f-grp > summary b{font-size:18px;font-weight:800}
#form .f-grp-s{font-size:14px}
#form input,#form select,#form textarea{font-size:16px}
.f-step-ic{font-style:normal}
@media (min-width:641px){
  .f-steps li button{font-size:15.5px}
  .f-steps li.on button{font-weight:800}
  .f-steps li b{width:28px;height:28px;font-size:13.5px}
  #form .f-stepn{font-size:14.5px}
}
@media (max-width:640px){
  .f-steps li button{font-size:12px}
  .f-step-ic{display:none}   /* da telefono lo spazio è poco: resta il numero */
}
/* colori per tipo nei riquadri «Cosa organizzi?»: il quadratino dell'icona ha il colore della categoria, pieno sul riquadro scelto */
.f-tipo-t[data-k=cibo]{--tc:#D9541E}.f-tipo-t[data-k=musica]{--tc:#7C3AED}.f-tipo-t[data-k=cinema]{--tc:#B91C1C}.f-tipo-t[data-k=uscita]{--tc:#15803D}
.f-tipo-t[data-k=cultura]{--tc:#B45309}.f-tipo-t[data-k=festa]{--tc:#DB2777}.f-tipo-t[data-k=giochi]{--tc:#0E7490}.f-tipo-t[data-k=altro]{--tc:#4B5563}
.f-tipo-t .f-tipo-ic{background:color-mix(in srgb,var(--tc,var(--accent)) 16%,var(--surface));color:var(--tc,var(--accent))}
.f-tipo-t:hover{border-color:var(--tc,var(--accent))}
.f-tipo-t.on{border-color:var(--tc,var(--accent));background:color-mix(in srgb,var(--tc,var(--accent)) 9%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--tc,var(--accent)) 22%,transparent)}
.f-tipo-t.on .f-tipo-ic{background:var(--tc,var(--accent));color:#fff}
#form .form-actions{z-index:36}   /* v530: la barra delle azioni resta sopra le tendine del luogo */
@media (max-width:640px){#form .f-tendina{max-height:min(300px,42vh)}}
/* v531 · tendina del luogo: niente più elenco di completamento del browser (si apriva sopra la tendina); i luoghi di altri eventi stanno nella tendina, con l'etichetta «Altri eventi» */
.f-loc-sez.f-loc-ev{background:var(--surface-2);color:var(--ink-2)}
/* v532 · «Cena a tavoli»: «Posti totali» sopra e «Persone per tavolo» dentro (sembravano due volte «posti»); la spiegazione sotto il campo, a tutta larghezza, anche da telefono */
#form .tav-box{display:flex;flex-direction:column;gap:10px}
#form .tav-box > .grid{display:flex;flex-wrap:wrap;gap:10px 16px}
#form .tav-box > .grid > .field{flex:0 1 200px;max-width:220px}
#form .f-tav-tot{margin:0;font-size:14px;line-height:1.45;color:var(--ink-2)}
.f-found-gia{text-decoration:none;color:inherit}
.f-found-gia strong::before{content:"🎵 "}
/* v533 · «Organizza un'uscita a questo concerto»: la spiegazione sotto il pulsante */
.from-idea .ev-organizza-uscita + small{display:block;margin-top:5px;font-size:13px;line-height:1.4}
.from-idea.ev-uscite{line-height:1.5}

/* ===== v535 · «Proponi un evento», revisione finale (12 punti) ===== */
/* 1. nuovo giorno evidenziato per un attimo, senza calendario a tendina */
.day-row.day-nuovo{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent);transition:box-shadow .3s}
/* 3. nel calendario grande anche gli altri giorni dell'evento */
.f-cal .flatpickr-day.f-cal-altro:not(.selected){background:color-mix(in srgb,var(--accent) 18%,var(--surface));border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--ink);font-weight:700}
/* 4. «Costi»: la spiegazione dei pagamenti staccata dai campi e più leggera */
#form .pay-fields > .form-hint{margin:12px 0 0;padding-top:10px;border-top:1px dashed var(--line);font-size:13.5px;line-height:1.45;color:var(--ink-3)}
/* 5. «Concerti trovati dal sistema» e «Che uscita è?» stanno sotto i riquadri, nello stile dei gruppi (non più la scatola blu) */
#form .f-found{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
#form .f-found > label{margin-bottom:2px}
#form .f-att-box{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
/* 7. icone a linea nelle attività, col colore dell'attività */
.f-att-ic{width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--ac,var(--accent)) 16%,var(--surface));color:var(--ac,var(--accent));display:grid;place-items:center;font-size:0}
.f-att-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.f-att-t.on .f-att-ic{background:var(--ac,var(--accent));color:#fff}
.f-att-t{background:var(--surface)}
/* 8. link aperto: etichetta come le altre e «Chiudi» */
.f-import-testa{display:flex;align-items:center;justify-content:space-between;gap:10px}
#form .f-import-in label{font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.f-import-chiudi{border:0;background:none;padding:4px 0;font:inherit;font-size:13px;font-weight:600;color:var(--ink-3);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.f-import-chiudi:hover{color:var(--ink)}
/* 9. «Ogni settimana per 4 volte in tutto» su una riga */
.rep-row{white-space:nowrap}
.rep-row .rep-volte,.rep-row .rep-per{white-space:nowrap}
@media (max-width:640px){.rep-row{white-space:normal}}
/* 10. i segnaposto degli orari non sembrano valori veri */
#form input::placeholder,#form textarea::placeholder{color:var(--ink-3);opacity:.75}
#form input.tm-in::placeholder{font-weight:400}
/* 12. la freccia di «Da completare» resta attaccata all'ultima parola */
.f-warn .wr-va::after{content:"\00a0›"}
@media (max-width:640px){.f-att-t span:last-child{overflow-wrap:normal;hyphens:manual;font-size:13.5px}.f-att-t{padding:8px}}   /* v535: «Escursionismo» non si spezza a metà parola */
/* v536 · «Hai una proposta a metà»: «Comincia da capo» con bordo e «Elimina la bozza» rosso («credo che Comincia da capo ed Elimina la bozza vadano risaltati, fai Elimina la bozza rosso») */
.f-ripr-az .btn.f-ripr-nuovo{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font-weight:700;padding-inline:16px}
.f-ripr-az .btn.f-ripr-nuovo:hover{border-color:var(--accent);color:var(--accent-text,var(--accent))}
.f-ripr-az .btn.f-ripr-del{border:1.5px solid color-mix(in srgb,var(--bad) 55%,transparent);background:color-mix(in srgb,var(--bad) 8%,var(--surface));color:var(--bad);font-weight:700;padding-inline:16px}
.f-ripr-az .btn.f-ripr-del:hover{background:var(--bad);border-color:var(--bad);color:#fff}
@media (max-width:640px){.f-ripr-az .btn.primary{flex:0 0 auto}}   /* v537: da telefono (colonna) il bottone non si gonfia in altezza */

/* ===== v546 · Amministrazione → Panoramica: cruscotto «Da fare adesso», stato del server, numeri, visite, ricerche, attività (js/admin-panoramica.js) ===== */
.adm-over{display:flex;flex-direction:column;gap:16px;min-width:0}
.adm-top{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.adm-over .adm-top .btn{min-height:36px;padding:6px 14px;font-size:14px}
.adm-muted{color:var(--ink-2);font-size:13px}
.adm-pad{padding:0 20px 16px;margin:0}
.adm-g1,.adm-cols{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;align-items:stretch}   /* v555: «Da fare adesso» e «Stato del server» alti uguali; sotto, due colonne indipendenti (Visite + Attività | Ricerche) che finiscono alla stessa altezza */
.adm-colv{display:flex;flex-direction:column;gap:16px;min-width:0}.adm-colv > .adm-panel:last-child{flex:1}
/* v555 · ogni riquadro ha il suo colore (--h pieno, --hs tenue: quelli delle categorie, già nei quattro temi, chiaro e scuro): bordo da 1,5 px tinto, titolo su fascia colorata con icona, ombra leggera */
.adm-h-blu{--h:var(--cat-incontro);--hs:var(--cat-incontro-soft)}.adm-h-vio{--h:var(--cat-cultura);--hs:var(--cat-cultura-soft)}.adm-h-tur{--h:var(--cat-visita);--hs:var(--cat-visita-soft)}
.adm-h-ros{--h:var(--cat-musica);--hs:var(--cat-musica-soft)}.adm-h-ver{--h:var(--cat-trekking);--hs:var(--cat-trekking-soft)}.adm-h-ara{--h:var(--cat-viaggio);--hs:var(--cat-viaggio-soft)}
.adm-panel{background:var(--surface);border:1.5px solid color-mix(in srgb,var(--h,var(--ink-3)) 34%,var(--line));border-radius:var(--adm-r,14px);min-width:0;overflow:hidden;box-shadow:0 3px 10px -6px color-mix(in srgb,var(--h,var(--ink-3)) 45%,transparent)}
.adm-ic{width:30px;height:30px;border-radius:9px;background:var(--hs,var(--surface-2));color:var(--h,var(--ink-2));display:inline-grid;place-items:center;flex:none;border:1px solid color-mix(in srgb,var(--h,var(--ink-3)) 25%,transparent)}
.adm-ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.adm-ph{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:color-mix(in srgb,var(--hs,var(--surface-2)) 70%,var(--surface));border-bottom:1.5px solid color-mix(in srgb,var(--h,var(--ink-3)) 22%,var(--line))}
.adm-ph + .adm-todo,.adm-ph + .adm-ok-vuoto,.adm-feed .adm-fi:nth-child(-n+2){border-top:0}
.adm-ph .adm-link{color:var(--h,var(--accent-text,var(--accent)))}
.adm-ph h3{margin:0;font-size:16px;display:flex;align-items:center;gap:10px}
.adm-link{font-size:14px;font-weight:600;color:var(--accent-text,var(--accent));text-decoration:none}
.adm-link:hover{text-decoration:underline}
.adm-todo{display:flex;align-items:center;gap:14px;padding:13px 20px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);min-height:44px}
a.adm-todo:hover,.adm-piu:hover{background:var(--surface-2)}
a.adm-todo:focus-visible,.adm-piu:focus-visible,.adm-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.adm-fermo{pointer-events:none}
.adm-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.adm-tx b{font-size:15px}
.adm-tx span{font-size:13.5px;color:var(--ink-2);overflow-wrap:anywhere}
.adm-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--ink-3)}
.adm-dot.r{background:var(--bad)}.adm-dot.a{background:var(--warn)}.adm-dot.v{background:var(--ok)}.adm-dot.b{background:var(--accent)}
.adm-n{min-width:28px;height:28px;border-radius:14px;padding:0 9px;box-sizing:border-box;display:inline-grid;place-items:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;flex:none}
.adm-n.r{background:var(--bad);color:var(--on-bad,var(--accent-ink,#fff))}.adm-n.a{background:var(--warn-soft);color:var(--warn)}.adm-n.b{background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.adm-chev{width:18px;height:18px;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.adm-ok-vuoto{display:flex;align-items:center;gap:14px;padding:18px 20px;border-top:1px solid var(--line)}
.adm-ok-vuoto b{display:block}.adm-ok-vuoto small{display:block;color:var(--ink-2);font-size:13.5px}
.adm-spunta{width:36px;height:36px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;flex:none}
.adm-spunta svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.adm-grande{display:flex;align-items:baseline;gap:10px;padding:0 20px 10px}
.adm-grande strong{font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}.adm-grande span{font-size:14px;color:var(--ink-2)}
.adm-righe{display:flex;flex-direction:column}
.adm-chk{display:flex;align-items:center;gap:10px;padding:9px 20px;border-top:1px solid var(--line);font-size:14px;min-height:40px;box-sizing:border-box}
.adm-l{flex:1;min-width:0}
.adm-v{color:var(--ink-2);font-size:13px;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.adm-piu{display:flex;align-items:center;min-height:44px;padding:0 20px;border-top:1px solid var(--line);font-size:14px;font-weight:600;color:var(--accent-text,var(--accent));text-decoration:none}
.adm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.adm-kpi{position:relative;padding:16px 20px;display:flex;flex-direction:column;gap:2px;background:color-mix(in srgb,var(--hs) 55%,var(--surface));border-color:color-mix(in srgb,var(--h) 38%,var(--line))}
.adm-kpi .adm-ic{position:absolute;top:14px;right:16px;background:var(--surface)}
.adm-kpi small{padding-right:40px}
.adm-kpi small{font-size:13px;font-weight:600;color:var(--ink-2)}
.adm-kpi strong{font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--h)}
.adm-kpi .adm-spark{stroke:var(--h)}
.adm-d{font-size:13px;font-weight:600;color:var(--ok)}.adm-d.g{color:var(--ink-2);font-weight:500}.adm-d.giu{color:var(--warn)}
.adm-d + .adm-d{margin-top:4px}
.adm-spark{width:160px;max-width:100%;height:36px;margin-top:6px;stroke:var(--accent)}
.adm-leg{display:flex;gap:14px;font-size:13px;color:var(--ink-2)}.adm-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.adm-leg i.s,.adm-bar i.s{background:var(--accent)}.adm-leg i.a,.adm-bar i.a{background:color-mix(in srgb,var(--accent) 45%,var(--surface))}
.adm-bars{display:flex;align-items:flex-end;gap:4px;height:150px;padding:0 20px 8px}
.adm-bar{flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;gap:1px}
.adm-bar i{flex:1;border-radius:2px 2px 0 0;min-height:1px}
.adm-asse{display:flex;justify-content:space-between;padding:0 20px 14px;font-size:12.5px;color:var(--ink-2)}
.adm-scan{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 3.2em minmax(0,.9fr);gap:10px;align-items:center;padding:10px 20px;border-top:1px solid var(--line);font-size:14px}
.adm-scan.adm-th{border-top:0;padding-top:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.adm-nm{min-width:0;overflow-wrap:anywhere;line-height:1.25}
.adm-num{text-align:right;font-variant-numeric:tabular-nums}
.adm-solo-tel{display:none}
.adm-pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;font-size:12.5px;font-weight:700;width:fit-content;white-space:nowrap}
.adm-pill.ok{background:var(--ok-soft);color:var(--ok)}.adm-pill.b{background:var(--bad-soft);color:var(--bad)}.adm-pill.g{background:var(--surface-2);color:var(--ink-2)}
.adm-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.adm-fi{display:flex;gap:12px;align-items:flex-start;padding:11px 20px;border-top:1px solid var(--line);font-size:14px;line-height:1.35}
.adm-fi:nth-child(even){border-left:1px solid var(--line)}
.adm-fi .adm-dot{margin-top:5px}
.adm-ft{flex:1;min-width:0;overflow-wrap:anywhere}
.adm-fi time{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.adm-sk{display:block;max-width:100%;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 0%,var(--line) 50%,var(--surface-2) 100%);background-size:200% 100%}
@media (prefers-reduced-motion:no-preference){.adm-sk{animation:adm-sk 1.3s ease-in-out infinite}@keyframes adm-sk{from{background-position:200% 0}to{background-position:-200% 0}}}
@media (max-width:1100px){.adm-g1,.adm-cols{grid-template-columns:minmax(0,1fr)}}   /* v555: sotto i 1100 px le colonne sarebbero troppo strette e i titoli andrebbero a capo (la prova di allineamento lo vide a 1024 px) */
@media (max-width:900px){
  .adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .adm-feed{grid-template-columns:minmax(0,1fr)}
  .adm-fi:nth-child(even){border-left:0}
}
@media (max-width:760px){
  .adm-over{gap:12px}
  .adm-over .adm-top .btn{min-height:44px;padding:0 16px}
  .adm-ph{padding:4px 16px}
  .adm-ph h3{min-height:44px}
  .adm-link{display:inline-flex;align-items:center;min-height:44px}
  .adm-todo{padding:12px 16px;min-height:56px;gap:12px}
  .adm-chk,.adm-fi,.adm-piu,.adm-scan{padding-left:16px;padding-right:16px}
  .adm-grande,.adm-pad{padding-left:16px;padding-right:16px}
  .adm-kpi{padding:14px 16px}.adm-kpi strong{font-size:26px}
  .adm-kpi .adm-ic{display:none}.adm-kpi small{padding-right:0}   /* v555: sul telefono la tessera è colorata ma senza icona, così l'etichetta non va a capo e la pagina non si allunga */
  .adm-bars{padding:0 16px 8px;height:110px;gap:3px}.adm-asse{padding:0 16px 12px}
  .adm-scan.adm-th{display:none}
  .adm-scan{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px}
  .adm-scan .adm-num{display:none}.adm-solo-tel{display:inline}
  .adm-scan .adm-pill{grid-row:1 / span 2;grid-column:2;align-self:center}
}

/* ---- v547 · Amministrazione → Persone: filtri con i numeri, ricerca, «Da approvare», tabella, menu dei ruoli (js/admin-persone.js) ---- */
.adp{display:flex;flex-direction:column;gap:14px;min-width:0}
.adp .r-admin,.adp-menu .r-admin{--rc:var(--cat-cultura,#6D3BC2)}.adp .r-organizer,.adp-menu .r-organizer{--rc:var(--cat-incontro,var(--accent))}.adp .r-member,.adp-menu .r-member{--rc:var(--ok)}.adp .r-pending,.adp-menu .r-pending{--rc:var(--warn)}
.adp-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.adp-top{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.adp-tabs{display:flex;flex-wrap:wrap;gap:8px}
.adp-tab{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 14px/1 var(--body);cursor:pointer}
.adp-tab b{font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.adp-tab:hover{background:var(--surface-2)}
.adp-tab.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}.adp-tab.on b{color:var(--surface);opacity:.85}
.adp-tab.w{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 45%,var(--line));color:color-mix(in srgb,var(--warn) 70%,var(--ink))}.adp-tab.w b{color:inherit}
.adp-tab.w.on{background:var(--warn);border-color:var(--warn);color:var(--surface)}.adp-tab.w.on b{color:var(--surface)}
.adp-lk{border:0;background:none;color:var(--accent-text,var(--accent));font:600 14px/1 var(--body);min-height:36px;padding:0 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.adp-ruoli{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.adp-ruoli[hidden]{display:none}
.adp-ru{display:flex;flex-direction:column;gap:3px;padding:12px 16px;background:var(--surface);font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.adp-ru b{font-size:14px;color:color-mix(in srgb,var(--rc) 65%,var(--ink))}
.adp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.adp-search{position:relative;flex:1 1 260px;min-width:0;display:flex;align-items:center}
.adp-search .ico{position:absolute;left:12px;width:18px;height:18px;color:var(--ink-3);pointer-events:none}
.adp-search .ico svg{width:18px;height:18px}
.adp-q{width:100%;box-sizing:border-box;min-height:40px;padding:0 12px 0 38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:500 15px var(--body)}
.adp-q::placeholder{color:var(--ink-3)}
.adp-sort{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2)}
.adp .adp-ord{min-height:40px;padding:0 34px 0 14px;border:1px solid var(--line);border-radius:8px;background-color:var(--surface);color:var(--ink);font:600 14px var(--body)}
.adp-body{display:flex;flex-direction:column;gap:14px;min-width:0}
.adp-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-sizing:border-box}
.adp-card img{width:38px;height:38px;border-radius:50%;flex:none;object-fit:cover}
.adp-attesa{border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}
.adp-ph{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;background:var(--warn-soft);border-bottom:1px solid color-mix(in srgb,var(--warn) 30%,var(--line))}
.adp-ph h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px;color:color-mix(in srgb,var(--warn) 55%,var(--ink))}
.adp-n{min-width:24px;height:24px;padding:0 8px;border-radius:12px;box-sizing:border-box;display:inline-grid;place-items:center;background:var(--warn);color:var(--surface);font-size:13px;font-weight:700}
.adp-hint{font-size:13px;color:color-mix(in srgb,var(--warn) 45%,var(--ink-2))}
.adp-wl,.adp-list{list-style:none;margin:0;padding:0}
.adp-w{display:flex;align-items:center;gap:14px;padding:12px 20px;border-top:1px solid var(--line)}
.adp-w:first-child{border-top:0}
.adp-t{min-width:0;display:flex;flex-direction:column;gap:1px;flex:1}
.adp-nm{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.adp-em{font-size:13px;color:var(--ink-2);overflow-wrap:anywhere}
.adp-wa{display:flex;gap:10px;flex:none}
.adp-wa .btn{min-height:36px}
.adp-rif{border-color:color-mix(in srgb,var(--bad,#b42335) 45%,var(--line));color:color-mix(in srgb,var(--bad,#b42335) 80%,var(--ink))}   /* v579: «Rifiuta» */
.adp-rif:hover:not(:disabled){background:color-mix(in srgb,var(--bad,#b42335) 10%,var(--surface))}
.btn.primary.adp-dang,.btn.primary.adp-dang:hover:not(:disabled){background:var(--bad,#b42335);border-color:var(--bad,#b42335);color:#fff}
.adp-dlg-l{margin:0 0 16px;padding-left:18px;font-size:14px;line-height:1.45;color:var(--ink-2)}
.adp-dlg-l li{margin:0 0 6px}
.adp-th,.adp-row{display:grid;grid-template-columns:minmax(0,2.3fr) 178px 130px minmax(0,1.5fr) 84px;gap:14px;align-items:center;padding:10px 20px}
.adp-th{background:var(--surface-2);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.adp-row{border-top:1px solid var(--line);font-size:14px}
.adp-who{display:flex;align-items:center;gap:12px;min-width:0}
.adp-lbl{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.adp-dal{color:var(--ink-2)}
.adp-pill{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;min-width:132px;box-sizing:border-box;padding:0 12px;border-radius:16px;border:1px solid color-mix(in srgb,var(--rc) 55%,var(--line));background:color-mix(in srgb,var(--rc) 13%,var(--surface));color:color-mix(in srgb,var(--rc) 70%,var(--ink));font:700 13.5px var(--body);cursor:pointer}
.adp-pill:disabled{opacity:.6;cursor:default}
.adp-self{cursor:default;justify-content:flex-start}
.adp-chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);flex:none}
.adp-pro{font-size:14px;font-weight:600;color:var(--accent-text,var(--accent));text-decoration:none;white-space:nowrap}
.adp-pro:hover{text-decoration:underline}
.adp-foot{padding:11px 20px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.adp-vuoto{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;background:var(--surface);border:1px dashed var(--line);border-radius:12px;color:var(--ink-2)}
.adp-vuoto strong{color:var(--ink);font-size:15px}
.adp-back{position:fixed;inset:0;z-index:1190;background:transparent}
.adp-menu{position:fixed;z-index:1200;box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(16,24,40,.18);overflow:hidden}
.adp-opt{display:flex;align-items:flex-start;gap:12px;width:100%;box-sizing:border-box;min-height:44px;padding:10px 14px;border:0;border-top:1px solid var(--line);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.adp-opt:first-child{border-top:0}
.adp-opt:hover,.adp-opt:focus-visible,.adp-opt.on{background:var(--surface-2)}
.adp-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:none;background:var(--rc)}
.adp-ot{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.adp-ot b{font-size:14.5px}.adp-ot span{font-size:13px;color:var(--ink-2);line-height:1.3}
.adp-ck{color:var(--accent-text,var(--accent));font-weight:800;margin-top:1px}
.adp-dlg-t{display:block;font-size:18px;margin-bottom:8px}
.adp-dlg-p{margin:0 0 18px;font-size:14.5px;line-height:1.45;color:var(--ink-2)}
.adp-dlg-b{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.notice-undo{flex:none;margin-left:14px;min-height:36px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--accent-text,var(--accent));font:700 14.5px var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media (max-width:1100px){
  .adp-th,.adp-row{grid-template-columns:minmax(0,2fr) 160px 120px 84px}
  .adp-th>:nth-child(4),.adp-att{display:none}
}
@media (max-width:760px){
  .adp-th{display:none}
  .adp-top{align-items:flex-start;flex-direction:column}
  .adp-tabs{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:2px 16px 6px;width:calc(100% + 32px);scroll-snap-type:x proximity}
  .adp-tab{flex:none;min-height:44px;scroll-snap-align:start}
  .adp-lk{min-height:44px}
  .adp-ruoli{grid-template-columns:1fr}
  .adp-bar{flex-direction:column;align-items:stretch}
  .adp-search{flex:none}
  .adp-q{min-height:44px;font-size:16px}
  .adp-sort{justify-content:space-between}
  .adp .adp-ord{min-height:44px;flex:1;max-width:60%}
  .adp-ph{padding:12px 16px}
  .adp-w{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px 12px;padding:14px 16px}
  .adp-wa{grid-column:1 / -1;width:100%}.adp-wa .btn{flex:1;min-height:44px}
  .adp-wa{flex-wrap:wrap}.adp-wa .btn{flex:1 1 40%}.adp-wa .btn[aria-haspopup]{flex:1 1 100%;order:3}   /* v579: Rifiuta e Approva affiancati, «Scegli un altro ruolo» sotto */
  .adp-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px;align-items:center}
  .adp-who{grid-column:1 / -1}
  .adp-rl{grid-column:2;grid-row:2;justify-self:end}
  .adp-dal{grid-column:1;grid-row:2;font-size:13px}
  .adp-att{display:block;grid-column:1;grid-row:3;font-size:13px;color:var(--ink-2)}
  .adp-pro{grid-column:2;grid-row:3;justify-self:end;display:inline-flex;align-items:center;min-height:44px}
  .adp-lbl{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
  .adp-pill{min-height:44px;min-width:150px;padding:0 14px;border-radius:22px}
  .adp-foot{padding:12px 16px}
  .adp-back{background:rgba(10,14,24,.45)}
  .adp-menu{left:0;right:0;bottom:0;border-radius:18px 18px 0 0;border-width:1px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .adp-opt{min-height:56px}
  .notice-undo{min-height:44px}
}

/* ---- v548 · Amministrazione → Da scoprire: coda di lavoro a righe che si aprono, ricerca e filtri a menu, barra delle selezionate (js/da-scoprire.js) ---- */
html .discover{gap:14px}
html .discover .ds-warn{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;padding:10px 16px;border-radius:10px;border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line));background:var(--warn-soft);color:var(--ink);font-size:14px;line-height:1.45}
.ds-warn-t{flex:1 1 360px;min-width:0}
.ds-how-b{border:0;background:none;color:var(--accent-text,var(--accent));font:600 14px/1 var(--body);min-height:36px;padding:0 2px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:nowrap}
.ds-how{flex:1 1 100%;margin:0;color:var(--ink-2)}
html .discover .ds-tabs{display:flex;flex-wrap:nowrap;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin-inline:0;padding:0}
html .discover .ds-tabs::-webkit-scrollbar{display:none}
html .discover .ds-tabs .tab{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;box-shadow:none;color:var(--ink-2);font:600 15px/1 var(--body);margin-bottom:-1px;white-space:nowrap}
html .discover .ds-tabs .tab:hover:not([aria-selected="true"]){background:var(--surface-2);color:var(--ink)}
html .discover .ds-tabs .tab .n{min-width:0;padding:2px 8px;border-radius:11px;background:var(--surface-2);color:var(--ink-2);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
html .discover .ds-tabs .tab .n.hot{background:var(--bad);color:var(--surface)}
html .discover .ds-tabs .tab[aria-selected="true"]{background:none;box-shadow:none;color:var(--ink);border-bottom-color:var(--accent)}
html .discover .ds-tabs .tab[aria-selected="true"] .n{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent-text,var(--accent))}
.ds-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ds-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ds-search{position:relative;flex:1 1 260px;min-width:0;display:flex;align-items:center}
.ds-search .ico{position:absolute;left:12px;width:18px;height:18px;color:var(--ink-3);pointer-events:none}
.ds-search .ico svg{width:18px;height:18px}
.ds-q{width:100%;box-sizing:border-box;min-height:40px;padding:0 12px 0 38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:500 15px var(--body)}
.ds-q::placeholder{color:var(--ink-3)}
.ds-selects{display:flex;gap:10px;flex-wrap:wrap}
.ds-f{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-2)}
html .discover .ds-f select{min-height:40px;max-width:230px;padding:0 30px 0 12px;border:1px solid var(--line);border-radius:8px;background-color:var(--surface);color:var(--ink);font:600 14px var(--body)}
.ds-listhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:36px}
.ds-all{gap:10px}
.ds-all::before{content:"";width:18px;height:18px;border:2px solid var(--ink-3);border-radius:5px;box-sizing:border-box;flex:none}
.ds-lcount{margin-left:auto;font-size:13px;color:var(--ink-2)}
.ds-moreact{position:relative}
.ds-moreact > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center}
.ds-moreact > summary::-webkit-details-marker{display:none}
.ds-moreact > summary::after,.ds-menu-b::after{content:none}
.ds-moreact-p{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(340px,86vw);box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(16,24,40,.18);padding:12px;display:flex;flex-direction:column;gap:8px}
.ds-moreact-b{display:flex;flex-wrap:wrap;gap:8px}
.ds-moreact-p .muted{margin:0}
.ds-selbar{position:sticky;bottom:16px;z-index:40;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--ink);color:var(--surface);border-radius:14px;padding:10px 12px 10px 18px;box-shadow:0 10px 30px rgba(19,26,42,.3);border:0}
.ds-selbar[hidden]{display:none}
.ds-selcount{font-weight:700;margin-right:auto;color:inherit}
.ds-selbar .btn{min-height:40px;background:transparent;color:inherit;border:1px solid color-mix(in srgb,currentColor 45%,transparent);max-width:100%;white-space:normal;text-align:center}
.ds-selbar .btn.primary{background:var(--surface);color:var(--ink);border-color:var(--surface)}
.ds-selbar .btn.armed{background:var(--bad);border-color:var(--bad);color:var(--surface)}
.ds-selbar .btn:disabled{opacity:.5}
.ds-grp{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
html .discover .ds-card{display:block;padding:0;gap:0;border:0;border-top:1px solid var(--line);border-radius:0;background:none}
html .discover .ds-card:first-child{border-top:0}
.ds-row{display:flex;align-items:center;gap:14px;padding:14px 18px}
.ds-pick{display:grid;place-items:center;width:44px;height:44px;margin:-11px -10px -11px -14px;flex:none;cursor:pointer}
.ds-pick input.ds-sel{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin:0;border:2px solid var(--ink-3);border-radius:6px;background:var(--surface);cursor:pointer;display:grid;place-content:center;box-sizing:border-box}
.ds-pick input.ds-sel:checked{background:var(--accent);border-color:var(--accent)}
.ds-pick input.ds-sel:checked::after{content:"";width:5px;height:10px;border:solid var(--accent-ink,#fff);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}
.ds-pick input.ds-sel:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ds-dt{width:52px;flex:none;box-sizing:border-box;text-align:center;border:1px solid var(--line);border-radius:10px;padding:5px 0 6px;background:var(--surface)}
.ds-dt b{display:block;font-size:20px;line-height:1.1;font-variant-numeric:tabular-nums}
.ds-dt span{display:block;font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--ink-2)}
.ds-dt.past{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.ds-dt.past span{color:var(--bad)}
.ds-main{flex:1;min-width:0}
html .discover .ds-card h3{margin:0;font-size:16px;line-height:1.3;letter-spacing:0;overflow-wrap:anywhere}
html .discover .ds-card .ds-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:4px 0 0}
.ds-pastpill{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:11px;background:var(--bad-soft);color:var(--bad);font-size:12.5px;font-weight:700}
.ds-tag{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:11px;background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 70%,var(--ink));font-size:12.5px;font-weight:700}
.ds-meta{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:4px;font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.ds-side{display:flex;align-items:center;gap:12px;flex:none}
.ds-racts{display:flex;align-items:center;gap:8px}
html .discover .ds-flag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border:0;border-radius:12px;background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 70%,var(--ink));font-size:12.5px;font-weight:700;letter-spacing:0;white-space:nowrap}
html .discover .ds-ok,.ds-state{display:inline-flex;align-items:center;height:24px;margin:0;padding:0 10px;border-radius:12px;background:var(--ok-soft);color:color-mix(in srgb,var(--ok) 75%,var(--ink));font-size:12.5px;font-weight:700;white-space:nowrap}
.ds-state{background:var(--surface-2);color:var(--ink-2)}
.ds-toggle{gap:8px}
.ds-chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .15s;flex:none}
.ds-toggle[aria-expanded="true"] .ds-chev{transform:rotate(-135deg) translate(-1px,-1px)}
.ds-menu{position:relative}
.ds-menu > summary{list-style:none;cursor:pointer;min-width:36px;display:inline-flex;align-items:center;justify-content:center}
.ds-menu > summary::-webkit-details-marker{display:none}
.ds-menu-p{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:210px;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(16,24,40,.18);padding:6px;display:flex;flex-direction:column;gap:2px}
.ds-menu-p .btn{justify-content:flex-start;border:0;background:none;min-height:44px}
.ds-body{border-top:1px solid var(--line);background:var(--surface-2);padding:16px 18px 16px 18px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px 28px}
.ds-body[hidden]{display:none}
.ds-body.due{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.ds-bl,.ds-br{display:flex;flex-direction:column;gap:10px;min-width:0}
.ds-found{margin:0;font-size:13px;color:var(--ink-2)}
html .discover .ds-checks{padding:0;background:none;gap:0}
.ds-checks-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.ds-checks-top .ds-checks-h{margin:0}
.ds-ckn{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.ds-pr{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:4px}
.ds-pr i{display:block;height:100%;width:0;background:var(--accent);transition:width .15s}
html .discover .ds-ck{align-items:center;min-height:44px}
html .discover .ds-ck input{width:22px;height:22px;margin:0}
html .discover .ds-bulk{padding:14px 18px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
html .discover .ds-found{flex:none;margin:0}
@media (max-width:900px){
  .ds-body.due{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  html .discover .ds-tabs{margin-inline:-16px;padding:0 16px;width:calc(100% + 32px);box-sizing:border-box}
  html .discover .ds-tabs .tab{min-height:48px;padding:0 14px}
  .ds-bar{flex-direction:column;align-items:stretch}
  .ds-search{flex:none}
  .ds-q{min-height:44px;font-size:16px}
  .ds-selects{flex-direction:column}
  .ds-f{justify-content:space-between}
  html .discover .ds-f select{min-height:44px;flex:1;max-width:65%}
  .ds-listhead{gap:8px}
  .ds-lcount{display:none}
  .ds-moreact{margin-left:auto}
  .ds-moreact-p{right:auto;left:0}
  .ds-row{flex-wrap:wrap;gap:10px 12px;padding:14px 16px;align-items:flex-start}
  .ds-main{flex:1 1 0}
  .ds-side{flex:1 1 100%;justify-content:space-between;flex-wrap:wrap;gap:8px}
  .ds-racts{flex-wrap:wrap;margin-left:auto;justify-content:flex-end}
  .ds-racts .btn{min-height:44px}
  .ds-menu > summary{min-width:44px}
  .ds-body{padding:14px 16px}
  html .discover .ds-bulk{padding:14px 16px}
  .ds-selbar{bottom:12px;padding:10px 12px;gap:8px}
  body:has(#bottomnav:not([hidden])) .ds-selbar{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .ds-selbar .btn{min-height:44px;flex:1 1 auto}
  .ds-selcount{flex:1 1 100%;margin:0}
}

/* ---- v550 · Amministrazione → Film: schede, menu «Cosa manca», righe con problemi in elenco e barra dei dati a posto (js/film-admin.js) ---- */
html .fmv{gap:14px}
.fmv-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.fmv-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.fmv-tabs::-webkit-scrollbar{display:none}
.fmv-tab{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;background:none;color:var(--ink-2);font:600 15px/1 var(--body);cursor:pointer;white-space:nowrap}
.fmv-tab:hover:not(.on){background:var(--surface-2);color:var(--ink)}
.fmv-tab b{padding:2px 8px;border-radius:11px;background:var(--surface-2);color:var(--ink-2);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.fmv-tab.w b{background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
.fmv-tab.on{color:var(--ink);border-bottom-color:var(--accent)}
.fmv-tab.on b{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent-text,var(--accent))}
.fmv .fm-tools-b{display:flex;gap:8px;padding-bottom:6px}
.fmv-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fmv-search{position:relative;flex:1 1 260px;min-width:0;display:flex;align-items:center}
.fmv-search .ico{position:absolute;left:12px;width:18px;height:18px;color:var(--ink-3);pointer-events:none}
.fmv-search .ico svg{width:18px;height:18px}
html .fmv .fm-search{width:100%;min-width:0;box-sizing:border-box;min-height:40px;padding:0 12px 0 38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:500 15px var(--body)}
.fmv-sel{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-2)}
html .fmv .fmv-sel select{min-height:40px;max-width:270px;padding:0 30px 0 12px;border:1px solid var(--line);border-radius:8px;background-color:var(--surface);color:var(--ink);font:600 14px var(--body)}
html .fmv .fm-list{gap:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
html .fmv .fm-row{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:16px 18px;box-shadow:none}
html .fmv .fm-row:first-child{border-top:0}
html .fmv .fm-row.sel{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
html .fmv .fm-row.fmv-row{display:grid;grid-template-columns:auto minmax(0,1fr) 176px;gap:18px;align-items:start}
html .fmv .fmv-row .fm-cover-b{align-self:start}
html .fmv .fmv-row .fm-cover{width:64px;height:92px;aspect-ratio:auto}
html .fmv .fmv-row .fm-cover.vuota{border-style:dashed}
html .fmv .fmv-row .fm-head{margin:0;gap:2px 12px}
html .fmv .fmv-row .fm-head h3{font-size:17px;line-height:1.3}
.fmv-pr{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:14px}
.fmv-pr li{display:flex;gap:8px;align-items:flex-start;line-height:1.35;font-weight:600}
.fmv-ic{width:16px;height:16px;flex:none;margin-top:2px}
.fmv-ic svg{width:16px;height:16px;display:block}
.fmv-pr .bad{color:var(--bad)}
.fmv-pr .war{color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
.fmv-ok{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:10px;font-size:13px;color:var(--ink-2)}
.fmv-ok span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ok);margin-right:6px;vertical-align:middle}
.fmv-ok span.no::before{background:var(--ink-3)}
.fmv-meter{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--ink-2)}
.fmv-meter i{display:block;width:120px;height:6px;border-radius:3px;background:var(--line);overflow:hidden;flex:none}
.fmv-meter b{display:block;height:100%;background:var(--accent)}
.fmv-act{display:flex;flex-direction:column;gap:8px}
.fmv-act .btn{justify-content:center;width:100%;box-sizing:border-box}
.fmv-trailer{margin-top:10px}
.fmv-nota{margin:0;font-size:13px;color:var(--ink-2)}
.fmv .fm-trailer-riga a.btn{text-decoration:none;color:var(--ink)}
.fmv .fm-proposta .btn,.fmv .fm-trailer-riga .btn{min-height:40px}
@media (max-width:640px){
  .fmv-top{flex-direction:column-reverse;align-items:stretch;gap:8px;border-bottom:0}
  .fmv-tabs{border-bottom:1px solid var(--line);margin-inline:-16px;padding:0 16px;width:calc(100% + 32px);box-sizing:border-box}
  .fmv-tabs{overflow:visible}
  .fmv-tab{flex:1 1 0;min-width:0;flex-direction:column-reverse;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:6px 4px;font-size:14px;white-space:normal;text-align:center;line-height:1.2}
  .fmv-tab b{font-size:15px;padding:1px 9px}
  .fmv .fm-proposta .btn,.fmv .fm-trailer-riga .btn{min-height:44px}
  .fmv .fm-tools-b{padding:0}
  .fmv .fm-tools-b .btn{flex:1;min-height:44px}
  .fmv-bar{flex-direction:column;align-items:stretch}
  .fmv-search{flex:none}
  html .fmv .fm-search{min-height:44px;font-size:16px}
  .fmv-sel{justify-content:space-between}
  html .fmv .fmv-sel select{min-height:44px;flex:1;max-width:62%}
  html .fmv .fm-row{padding:14px 16px}
  html .fmv .fm-row.fmv-row{grid-template-columns:56px minmax(0,1fr);gap:10px 12px}
  html .fmv .fmv-row .fm-cover{width:56px;height:80px}
  .fmv-act{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}
  .fmv-act .btn{flex:1 1 auto;width:auto;min-height:44px}
}

/* ---- v551 · Amministrazione → Posti: stesse righe di Film (classi fmv-*), icona a linea e sezione nel titolo (js/posti-admin.js) ---- */
.fmv-ico{width:64px;height:64px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2)}
.fmv-ico svg{width:28px;height:28px}
html .fmv .pm-row .fm-head h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fmv-sec{font-size:12.5px;font-weight:700;border-radius:11px;padding:2px 9px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent-text,var(--accent))}
.fmv-sec.a{background:var(--ok-soft);color:color-mix(in srgb,var(--ok) 75%,var(--ink))}
.fmv-d{font-weight:500;color:var(--ink-2)}
.fmv-nota-t{padding-bottom:12px}
@media (max-width:640px){
  html .fmv .pm-row.fmv-row .fmv-ico{width:52px;height:52px}
  .fmv-nota-t{display:none}
}

/* ---- v551 · Amministrazione: schede con sotto-sezioni (Cinema, Concerti, Sagre, Corsi): barra delle parti a schede sottolineate, schede di stato come pulsanti piccoli, carte delle ricerche senza barra colorata, campi dei moduli ---- */
html .adm-sub{display:flex;flex-wrap:wrap;gap:0 2px;margin:0 0 14px;padding:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;box-shadow:none}
html .adm-sub-i{min-height:44px;padding:0 14px;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;border-radius:0;background:none;box-shadow:none;color:var(--ink-2);font:600 15px/1 var(--body);white-space:nowrap}
html .adm-sub-i:hover{background:var(--surface-2);color:var(--ink)}
html .adm-sub-i[aria-selected="true"]{background:none;box-shadow:none;color:var(--ink);font-weight:700;border-bottom-color:var(--accent)}
.adm-sub ~ p{margin:0 0 10px;max-width:78ch;font-size:14px;line-height:1.5;color:var(--ink-2)}
html .adm-sub-corpo .discover .ds-tabs{border-bottom:0;gap:6px;flex-wrap:wrap;overflow:visible}
html .adm-sub-corpo .discover .ds-tabs .tab{min-height:36px;margin:0;padding:0 14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);font-size:14px}
html .adm-sub-corpo .discover .ds-tabs .tab:hover:not([aria-selected="true"]){background:var(--surface-2)}
html .adm-sub-corpo .discover .ds-tabs .tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
html .adm-sub-corpo .discover .ds-tabs .tab[aria-selected="true"] .n{background:color-mix(in srgb,var(--surface) 22%,transparent);color:var(--surface)}
html .scan-card{border-left:1px solid var(--line);border-radius:12px;padding:16px 18px;gap:10px}
html .scan-card.scan-errore{border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.scan-top h3{display:flex;align-items:center;gap:9px}
.scan-top h3::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}
.scan-mai .scan-top h3::before{background:var(--ink-3)}
.scan-errore .scan-top h3::before{background:var(--bad)}
.scan-card .btn{align-self:flex-start}
.cc-field input:not([type=checkbox]):not([type=radio]),.cc-field textarea,.cc-field select{padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px;line-height:1.45}
.cc-field input:focus-visible,.cc-field textarea:focus-visible,.cc-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cc-l{font-size:13.5px;color:var(--ink)}
.cc-table th{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);background:var(--surface-2)}
@media (max-width:640px){
  html .adm-sub{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding:0 16px;width:calc(100% + 32px);box-sizing:border-box}
  html .adm-sub::-webkit-scrollbar{display:none}
  html .adm-sub-i{flex:none}
}

/* ---- v551 · Amministrazione → Sistema: riepilogo in cima, prima ciò che va guardato, righe divise da un filo (js/amministrazione.js) ---- */
.sys-sum{display:flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.sys-sum-n{display:grid;place-items:center;min-width:44px;height:44px;padding:0 8px;box-sizing:border-box;border-radius:22px;background:var(--ok-soft);color:color-mix(in srgb,var(--ok) 75%,var(--ink));font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.sys-sum.bad .sys-sum-n{background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
.sys-sum b{display:block;font-size:17px}
.sys-sum .muted{display:block;margin-top:2px}
html .sys ul.sys-list{gap:0;margin:12px 0 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
html .sys ul.sys-list li{border:0;border-top:1px solid var(--line)!important;border-radius:0;background:none;box-shadow:none;padding:14px 18px}
html .sys ul.sys-list li:first-child{border-top:0!important}
html .sys ul.sys-list li.sys-attenzione{background:color-mix(in srgb,var(--warn) 7%,var(--surface))}
html .sys ul.sys-list li.sys-errore{background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
html .sys ul.sys-list li.sys-attenzione .sys-state{background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
html .sys ul.sys-list li.sys-errore .sys-state{background:var(--bad-soft);color:var(--bad)}
html .sys ul.sys-list li.sys-ok .sys-state{background:var(--ok-soft);color:color-mix(in srgb,var(--ok) 75%,var(--ink))}
html .sys .sys-dot{background:var(--ink-3)}
html .sys .sys-ok .sys-dot{background:var(--ok)}html .sys .sys-attenzione .sys-dot{background:var(--warn)}html .sys .sys-errore .sys-dot{background:var(--bad)}
@media (max-width:640px){
  html .sys ul.sys-list li{padding:14px 16px}
  .sys-sum{padding:12px 14px;gap:12px}
}
html .sys ul.sys-list li.sys-attenzione,html .sys ul.sys-list li.sys-errore{box-shadow:none}

/* ---- v551 · Amministrazione → Statistiche: stessa lingua di Panoramica (numeri, schede con raggio 12, periodo a pulsanti piccoli, nota senza barra colorata) (js/statistiche.js) ---- */
html .stats .ds-warn{padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-size:14px;line-height:1.5}
html .stats .ds-warn strong{color:var(--ink)}
html .stats .ds-tabs{display:flex;flex-wrap:wrap;gap:6px;border:0;margin:0;padding:0}
html .stats .ds-tabs .tab{min-height:36px;margin:0;padding:0 14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:none;color:var(--ink);font:600 14px/1 var(--body)}
html .stats .ds-tabs .tab:hover:not([aria-selected="true"]){background:var(--surface-2)}
html .stats .ds-tabs .tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface);box-shadow:none}
html .stats .st-card{padding:16px 18px;border-radius:12px;gap:6px}
html .stats .st-card strong{font-size:30px;letter-spacing:0}
html .stats .st-card span{font-size:14px;line-height:1.35}
html .stats .st-sec{padding:18px 20px;border-radius:12px}
html .stats .st-sec h3{font-size:16px;margin:0 0 6px}
@media (max-width:640px){
  html .stats .ds-tabs{flex-wrap:nowrap}
  html .stats .ds-tabs .tab{min-height:48px;flex:1 1 0;min-width:0;padding:0 4px;white-space:normal;text-align:center;line-height:1.15;font-size:13.5px}
}

/* ---- v551 · Amministrazione → Artisti: stessa lingua delle altre schede (js/admin-piccoli.js) ---- */
.ar > p.muted{font-size:14px;line-height:1.5;color:var(--ink-2);max-width:78ch;margin:0 0 4px}
.ar-bar{margin:8px 0 6px}
html .ar .ar-filters{gap:6px}
html .ar .ar-filters .tab{min-height:36px;margin:0;padding:0 14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:none;color:var(--ink);font:600 14px/1 var(--body)}
html .ar .ar-filters .tab:hover:not([aria-selected="true"]){background:var(--surface-2)}
html .ar .ar-filters .tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
html .ar .ar-q{min-height:40px;max-width:340px;padding:0 12px;border-radius:8px;font:500 15px var(--body)}
html .ar ul.ar-list{gap:0;margin:8px 0 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
html .ar .ar-row{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:14px 18px}
html .ar .ar-row:first-child{border-top:0}
html .ar .ar-main strong{font-size:15.5px}
html .ar .ar-act select,html .ar .ar-music{min-height:40px;border-radius:8px;font:500 14.5px var(--body)}
html .ar .ar-music{padding:0 12px}
html .ar .ar-act .btn{min-height:40px}
@media (max-width:640px){
  html .ar .ar-filters{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
  html .ar .ar-filters .tab{flex:none;min-height:44px}
  html .ar .ar-q{min-height:44px;max-width:none;font-size:16px;width:100%}
  html .ar .ar-row{padding:14px 16px}
  html .ar .ar-act{width:100%}
  html .ar .ar-act select,html .ar .ar-music{min-height:44px;flex:1 1 140px;max-width:none}
  html .ar .ar-act .btn{min-height:44px}
}

/* ---- v553 · Amministrazione → Impostazioni e Risultati di Cinema e Concerti (bozza https://claude.ai/artifact/JtYX7zyB5RMctbQmBWHDep) ----
   Scelta di una ricerca alla volta a pillole (menu a tendina sul telefono), modulo con interruttore e piè «Salva / Annulla le modifiche», risultati in una fascia di quattro blocchi (js/admin-risultati.js), indice «In questa pagina» in Cinema */
html .cc-menu{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px;overflow:visible;padding:0}
html .cc-m{display:inline-flex;flex-direction:row;align-items:center;gap:8px;flex:none;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink);box-shadow:none;font:600 15px/1.2 var(--body)}
html .cc-m:hover{border-color:var(--ink-3);background:var(--surface)}
html .cc-m[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface);box-shadow:none}
.cc-m-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.cc-m.off .cc-m-dot{background:var(--ink-3)}
.cc-m[aria-selected="true"] .cc-m-dot{background:#6BD39E}
.cc-m[aria-selected="true"].off .cc-m-dot{background:#B7BECB}
html .cc-m-t{font-size:15px;font-weight:600}
html .cc-m-n,html .cc-m.off .cc-m-n{margin:0;padding:1px 8px;border-radius:99px;font-size:12.5px;font-weight:700;background:color-mix(in srgb,currentColor 16%,transparent)}
.cc-sel,.adm-sub-sel{display:none;align-items:center;justify-content:space-between;gap:10px;min-height:48px;margin:0 0 14px;padding:0 6px 0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:600 15px var(--body);color:var(--ink)}
.cc-sel select,.adm-sub-sel select{flex:1;min-width:0;min-height:44px;border:0;background:transparent;color:var(--ink-2);font:500 15px var(--body);text-align:right;text-align-last:right;cursor:pointer}
@media (max-width:700px){
  html .cc-menu,html .adm-sub{display:none}
  html .cc-sel,html .adm-sub-sel{display:flex}
}

html .cc-card{padding:0;gap:0;border-radius:12px;overflow:hidden}
html .cc-head{flex-wrap:nowrap;align-items:flex-start;gap:24px;padding:22px 24px 18px;border-bottom:1px solid var(--line)}
html .cc-head h3{margin:0;font-size:19px;line-height:1.3}
.cc-head-d{margin:4px 0 0;max-width:62ch;font-size:14px;line-height:1.45;color:var(--ink-2)}
.cc-sw{display:inline-flex;align-items:center;gap:10px;flex:none;min-height:44px;padding:0;border:0;background:none;color:var(--ink);font:600 15px/1.3 var(--body);text-align:left;cursor:pointer}
.cc-sw i{position:relative;flex:none;width:44px;height:26px;border-radius:13px;background:var(--ink-3);transition:background .15s}
.cc-sw i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);transition:transform .15s}
.cc-sw[aria-checked="true"] i{background:var(--ok)}
.cc-sw[aria-checked="true"] i::after{transform:translateX(18px)}
.cc-sw small{display:block;margin-top:1px;font-size:13px;font-weight:500;color:var(--ink-2)}
.cc-sw:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:8px}
@media (prefers-reduced-motion:reduce){.cc-sw i,.cc-sw i::after{transition:none}}
.cc-note{display:flex;gap:10px;align-items:flex-start;margin:18px 24px 0;padding:12px 14px;border-radius:10px;background:var(--warn-soft);color:var(--ink);font-size:14px;line-height:1.45}
.cc-note::before{content:"!";flex:none;display:grid;place-items:center;box-sizing:border-box;width:18px;height:18px;margin-top:1px;border:2px solid var(--warn);border-radius:50%;color:var(--warn);font:800 11px/1 var(--body)}
.cc-note.ok{background:var(--surface-2);color:var(--ink-2)}
.cc-note.ok::before{content:"✓";border-color:var(--ok);color:var(--ok)}
html .cc-card > .cc-grid{padding:22px 24px 24px;gap:20px 24px}
.cc-field{gap:6px}
.cc-field .cc-l{font-size:14px;font-weight:700}
.cc-field > small{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.4;color:var(--ink-2)}
.cc-cnt{white-space:nowrap;font-variant-numeric:tabular-nums}
.cc-field textarea{min-height:76px;resize:vertical;line-height:1.45}
html .cc-locs > strong{font-size:14px}
html .cc-loc{border-style:solid;border-radius:10px;padding:14px}
html .cc-loc.cc-loc2{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;align-items:end;padding:0;border:0}
html .cc-loc.cc-loc2 .btn{grid-column:auto;justify-self:auto}
.cc-del{border-color:transparent;background:none;color:var(--bad)}
.cc-del:hover{text-decoration:underline}
html .cc-add{width:100%;min-height:44px;border-style:dashed;color:var(--ink)}
html .cc-card > .cc-msg{margin:0 24px 16px}
html .cc-card > .cc-actions.cc-ff{align-items:center;gap:12px;padding:16px 24px;border-top:1px solid var(--line);background:var(--surface-2)}
.cc-st{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:13.5px;color:var(--ink-2)}
.cc-st i{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.cc-st.sporco{color:var(--ink);font-weight:600}
.cc-st.sporco i{background:var(--warn)}
@media (max-width:700px){
  html .cc-head{flex-direction:column;align-items:stretch;gap:12px;padding:16px}
  .cc-sw{width:100%;justify-content:space-between}
  .cc-sw i{order:2}
  .cc-note{margin:14px 16px 0}
  html .cc-card > .cc-grid{padding:16px;gap:16px}
  html .cc-loc.cc-loc2{grid-template-columns:minmax(0,1fr);align-items:stretch;padding:14px;border:1px solid var(--line)}
  html .cc-loc.cc-loc2 .btn{justify-self:start}
  html .cc-card > .cc-msg{margin:0 16px 12px}
  html .cc-card > .cc-actions.cc-ff{flex-direction:column;align-items:stretch;padding:16px}
  html .cc-ff .btn{width:100%;min-height:48px}
  .cc-st{margin:0;justify-content:center}
}

.rsl-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.rsl-bl{min-width:0;padding:18px 22px 20px;border-left:1px solid var(--line)}
.rsl-bl:first-child{border-left:0}
.rsl-t{margin:0;font:700 12px/1.2 var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.rsl-n{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:8px 0 0}
.rsl-n strong{font-size:32px;line-height:1.1;font-variant-numeric:tabular-nums}
.rsl-n span{font-size:15px;font-weight:600;color:var(--ink-2)}
.rsl-r{margin:6px 0 0;font-size:14px;line-height:1.45;color:var(--ink-2)}
.rsl-r b{color:var(--ink)}
@media (max-width:900px){
  .rsl-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rsl-bl:nth-child(odd){border-left:0}
  .rsl-bl:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:420px){.rsl-bl{padding:14px}.rsl-n strong{font-size:28px}}
.rsl-fonti .cc-table th.rsl-num,.rsl-fonti .cc-table td.rsl-num{text-align:right;font-variant-numeric:tabular-nums}
.rsl-tag{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:11px;background:var(--warn-soft);color:var(--ink);font-size:12.5px;font-weight:700;vertical-align:middle}
.rsl-bar{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px}
.rsl-bar i{display:block;width:84px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--ink) 14%,transparent);overflow:hidden}
.rsl-bar i b{display:block;height:100%;background:var(--ok)}
.rsl-bar.w i b{background:var(--warn)}
.rsl-bar em{min-width:38px;font-style:normal;font-weight:700;text-align:right}
.rsl-prov ul{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0;list-style:none}
.rsl-prov li{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:14px}

.cc-idx{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;font-size:14px;color:var(--ink-2)}
.cc-idx-b{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);font:600 14px/1 var(--body);cursor:pointer}
.cc-idx-b:hover{background:var(--surface-2)}
.cc-idx-b:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.cc-gr{scroll-margin-top:84px}
@media (max-width:700px){.cc-idx-b{min-height:44px}}

/* ===== v555 · Amministrazione → Film: righe tutte uguali (js/film-admin.js; bozza https://claude.ai/artifact/A3wtp2ioyhRfSD3S1x8af6) =====
 * Una riga = copertina, titolo, dati, al massimo due etichette, barra «n dati su 7», UN pulsante e la freccia; alta sempre uguale. Il resto sta nel dettaglio che si apre toccando la riga (una alla volta). */
.fmu-row{display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--surface)}
.fmu-row:first-child{border-top:0}
.fmu-row.on{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.fmu-row.sel{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.fmu-main{display:flex;align-items:center;gap:12px;min-height:84px;padding:10px 16px;box-sizing:border-box}
.fmu-check{padding:0;display:grid;place-items:center;flex:none}
.fmu-t{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) 152px 20px;align-items:center;gap:14px;min-height:64px;margin:0;padding:0;border:0;border-radius:8px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.fmu-t:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.fmu-cv{display:block;width:48px;height:64px;border-radius:6px;object-fit:cover;background:var(--surface-2);border:1px solid var(--line);box-sizing:border-box}
.fmu-cv.vuota{display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ink-3);border-style:dashed}
.fmu-tx{min-width:0;display:flex;flex-direction:column;gap:2px}
.fmu-ti{font-size:15.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fmu-me{font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fmu-ch{display:flex;gap:6px;min-height:22px;align-items:center;overflow:hidden}
.fmu-c{font-size:12.5px;font-weight:700;line-height:1;padding:4px 9px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}
.fmu-c.r{background:var(--bad-soft);color:var(--bad)}
.fmu-c.a{background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
.fmu-c.g{background:var(--ok-soft);color:color-mix(in srgb,var(--ok) 75%,var(--ink))}
.fmu-mt{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.fmu-mt i{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.fmu-mt i b{display:block;height:100%;border-radius:3px;background:var(--ok)}
.fmu-mt.low i b{background:var(--warn)}
.fmu-chev{display:grid;place-items:center;color:var(--ink-3);transition:transform .15s}
.fmu-chev svg{width:20px;height:20px}
.fmu-row.on .fmu-chev{transform:rotate(90deg)}
.fmu-cta{flex:none;width:176px;min-height:40px;justify-content:center;box-sizing:border-box}
.fmu-det{display:flex;flex-direction:column;gap:12px;padding:2px 16px 18px 78px}
.fmu-row.con-check .fmu-det{padding-left:110px}
.fmu-det .fmv-pr,.fmu-det .fmv-ok,.fmu-det .fmv-trailer,.fmu-det .fmv-meter{margin-top:0}
.fmu-az{display:flex;flex-wrap:wrap;gap:8px}
.fmu-az .btn{min-height:40px}
.fmu-solo-tel{display:none}
.fmu-piu{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;border-top:1px solid var(--line)}
@media (prefers-reduced-motion:reduce){.fmu-chev{transition:none}}
@media (max-width:700px){
  .fmu-main{flex-wrap:wrap;min-height:0;padding:12px 16px;gap:10px 12px}
  .fmu-t{grid-template-columns:48px minmax(0,1fr) 20px;gap:12px}
  .fmu-mt{display:none}
  .fmu-solo-tel{display:flex}
  .fmu-cta{display:none;flex:1 1 100%;width:auto;min-height:44px}
  .fmu-row.on .fmu-cta{display:inline-flex}
  .fmu-det{padding:2px 16px 16px}
  .fmu-row.con-check .fmu-det{padding-left:16px}
  .fmu-az .btn{min-height:44px;flex:1 1 auto}
  .fmu-piu .btn{min-height:44px}
}

/* v555 · una sola forma per i riquadri dell'Amministrazione: stesso raggio in tutte le schede (14 px) */
:root{--adm-r:14px}
:root:root :is(.adp-card,.ds-grp,.ds-moreact-p,.fm-list,.ar-list,.st-sec,.st-card,.sys-sum,.sys-list,.sys-dk){border-radius:var(--adm-r)}   /* :root:root = più forte delle regole di scheda (html .fmv .fm-list…) */
/* v702: con la quinta scheda «Da confermare» (solo quando c'è un posto nato da un concerto) le schede dei Posti a telefono vanno a capo invece di uscire dallo schermo */
@media (max-width:640px){.fmv-tabs.pm-stats:has(.fmv-tab:nth-child(5)){flex-wrap:wrap;row-gap:4px}}

/* v704: pallino rosso quando ci sono segnalazioni verificate ma non ancora pubblicate (Amministrazione, schede «Verificate» e voci del menu) */
.adm-dot{display:inline-block;flex:none;width:9px;height:9px;margin-left:6px;border-radius:50%;background:#e03131;box-shadow:0 0 0 2px var(--surface,#fff);vertical-align:middle;animation:adm-dot 2.4s ease-in-out infinite}
@keyframes adm-dot{0%,100%{box-shadow:0 0 0 2px var(--surface,#fff),0 0 0 2px rgba(224,49,49,.35)}50%{box-shadow:0 0 0 2px var(--surface,#fff),0 0 0 6px rgba(224,49,49,0)}}
@media (prefers-reduced-motion:reduce){.adm-dot{animation:none}}

/* Amministrazione → Eventi (v720): numeri in alto (toccabili come filtri), ricerca, filtri a pillola, tabella; a telefono una scheda per evento */
.aev{display:grid;gap:16px}
.aev-intro{margin:0}
.aev-kpis .aev-k{font:inherit;text-align:left;cursor:pointer;color:inherit}
.aev-kpis .aev-k.on{outline:2.5px solid var(--h);outline-offset:1px}
.aev-kpis .aev-k:focus-visible{outline:3px solid var(--accent,#3044d0);outline-offset:2px}
.aev-i{display:inline-flex;width:22px;height:22px;color:var(--h,var(--ink-2))}.aev-i svg{width:100%;height:100%}
.aev-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.aev-qw{position:relative;flex:1 1 280px;display:flex}
.aev-qw .aev-i{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-3)}
.aev-q{width:100%;min-height:44px;padding:10px 14px 10px 38px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:16px}
.aev-com{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2)}
.aev-com select{min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:15px}
.aev-seg{display:flex;flex-wrap:wrap;gap:8px}
.aev-f{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1.5px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.aev-f.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.aev-n{font-size:12px;font-weight:700;padding:1px 8px;border-radius:99px;background:color-mix(in srgb,currentColor 14%,transparent)}
.aev-conta{margin:0;font-size:14px}
.aev-tab{overflow-x:auto;padding:0}
.aev-tab table{width:100%;border-collapse:collapse;font-size:14px}
.aev-tab th{text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:12px 14px;border-bottom:1.5px solid var(--line)}
.aev-tab td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.aev-tab tr:last-child td{border-bottom:0}
.aev-tab tbody tr:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
.aev-annullato .aev-t a{text-decoration:line-through;color:var(--ink-3)}
.aev-cal{display:inline-grid;justify-items:center;min-width:48px;padding:4px 6px;border-radius:10px;background:color-mix(in srgb,var(--ink) 6%,var(--surface));line-height:1.1}
.aev-cal small{font-size:12px;text-transform:uppercase;color:var(--ink-3)}.aev-cal b{font-size:18px}
.aev-t a{font-weight:700;color:var(--ink);text-decoration:none}.aev-t a:hover{text-decoration:underline}
.aev-t small{display:block;color:var(--ink-3);font-size:13px;margin-top:2px}
.aev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.aev-tag{font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--ink) 8%,var(--surface));color:var(--ink-2)}
.aev-tag-c{background:color-mix(in srgb,var(--cat-cultura,#7c3aed) 16%,var(--surface));color:color-mix(in srgb,var(--cat-cultura,#7c3aed) 60%,var(--ink))}
.aev-st-annullato{background:#fde8e8;color:#a61b1b}.aev-st-oggi,.aev-st-corso{background:#e8f7ee;color:#17693a}
.aev-warn{display:inline-flex;align-items:center;min-height:32px;padding:2px 10px;border-radius:99px;background:#fff1c9;color:#7a5600;font-weight:700;text-decoration:none;font-size:13px}
.aev-ok{color:#17693a;font-size:13px}
.aev-g{min-height:44px;white-space:nowrap}
.aev-piu{margin:12px}
@media (max-width:760px){
  .aev-tab{background:transparent;border:0;box-shadow:none;overflow:visible}
  .aev-tab thead{display:none}
  .aev-tab table,.aev-tab tbody{display:block}
  .aev-tab tr{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 12px;padding:14px;margin-bottom:12px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface)}
  .aev-tab td{padding:0;border:0}
  .aev-tab td.aev-d{grid-row:span 4}
  .aev-tab td[data-l]{font-size:14px;color:var(--ink-2)}
  .aev-tab td[data-l]::before{content:attr(data-l) ": ";color:var(--ink-3);font-size:13px}
  .aev-tab td.aev-a{grid-column:1/-1;margin-top:8px}.aev-g{width:100%}
}
