.g-app,.g-modulo{--g-sfondo:var(--surface);--g-pannello:#fffefb;--g-bordo:#e2e3da;--g-bordo-forte:#c9ccc1;--g-grigio:#5d6a62;--g-attivo:#e9eae2;--g-chiaro:#dfe8dc}.g-app{min-height:100dvh;display:grid;grid-template-columns:232px minmax(0,1fr);grid-template-rows:auto 1fr;background:var(--g-sfondo);font-size:.9375rem;line-height:1.45}.g-app h1,.g-app h2{letter-spacing:-.02em;text-wrap:balance}.g-app h1{font-size:1.75rem;line-height:1.15;font-weight:600}.g-app h2{font-size:1rem;line-height:1.3;font-weight:600}.g-app :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.g-avviso{grid-column:1/-1;margin:0;padding:.5rem var(--space-md);background:var(--ink);color:var(--surface);font-size:.875rem}.g-caricamento{padding:var(--space-xl);color:var(--muted)}.g-barra{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-md) 12px;border-right:1px solid var(--g-bordo);position:sticky;top:0;height:100dvh}.g-marchio{display:flex;align-items:center;gap:10px;padding:0 8px;text-decoration:none;font-weight:600;letter-spacing:-.02em;line-height:1.15}.g-marchio svg{flex:none;color:var(--accent)}.g-marchio small{display:block;color:var(--g-grigio);font-weight:400;font-size:.8125rem;letter-spacing:0}.g-app nav ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.g-app nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;padding:0 10px;border-radius:8px;text-decoration:none;color:var(--ink)}.g-app nav a:hover{background:var(--g-attivo)}.g-app nav a[aria-current=page]{background:var(--g-attivo);font-weight:600}.g-conteggio{color:var(--accent);font-size:.8125rem;font-weight:500;white-space:nowrap}.g-piede-nav{margin-top:auto;display:grid;gap:2px}.g-piede-nav a,.g-piede-nav button{display:flex;align-items:center;min-height:36px;padding:0 10px;border:0;border-radius:8px;background:none;color:var(--g-grigio);text-decoration:none;text-align:left;cursor:pointer;font-size:.875rem}.g-piede-nav a:hover,.g-piede-nav button:hover{background:var(--g-attivo);color:var(--ink)}.g-testata{display:none}.g-tela{padding:28px clamp(16px,3vw,40px) 64px;min-width:0;max-width:1240px}.g-titolo{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-md)}.g-sottotitolo{margin-top:4px;color:var(--g-grigio)}.g-capitale:first-letter{text-transform:uppercase}.g-bottone{min-height:36px;padding:0 14px;border:1px solid var(--g-bordo-forte);border-radius:8px;background:var(--g-pannello);color:var(--ink);font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--motion-duration),border-color var(--motion-duration)}.g-bottone:hover{border-color:var(--ink)}.g-bottone:active{transform:translateY(1px)}.g-primario{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.g-primario:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.g-primario:disabled{background:var(--g-attivo);border-color:var(--g-bordo-forte);color:var(--g-grigio);cursor:not-allowed}.g-link{padding:0;border:0;background:none;color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;min-height:32px}.g-grigio{color:var(--g-grigio)}.g-pannello{background:var(--g-pannello);border:1px solid var(--g-bordo);border-radius:12px;padding:16px 18px}.g-pannello>h2{display:flex;gap:8px;margin-bottom:8px}.g-pannello>h2 span{color:var(--g-grigio);font-weight:400;font-variant-numeric:tabular-nums}.g-griglia-oggi{display:grid;grid-template-columns:1fr 1fr;gap:16px}.g-largo{grid-column:1/-1}.g-lista{list-style:none;margin:0;padding:0}.g-riga{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;border-top:1px solid var(--g-bordo)}.g-riga:first-child{border-top:0}.g-riga-testo{display:grid;gap:2px;min-width:0;padding:8px 0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.g-riga-testo span{color:var(--g-grigio);font-size:.8125rem}.g-riga-testo:hover strong{text-decoration:underline}.g-riga-azione{flex:none}.g-vuoto{color:var(--g-grigio);padding-block:8px}.g-settimana{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.g-settimana li{display:grid;align-content:start;gap:2px;padding:10px;border-radius:8px;background:var(--g-chiaro)}.g-settimana li[data-pieno]{background:var(--g-attivo)}.g-settimana strong{font-variant-numeric:tabular-nums}.g-giorno,.g-nomi{font-size:.8125rem}.g-giorno,.g-nomi,.g-settimana li[data-pieno] .g-giorno{color:var(--g-grigio)}.g-strumenti{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.g-strumenti--sinistra{justify-content:flex-start}.g-schede{display:flex;gap:2px;padding:2px;border-radius:10px;background:var(--g-attivo);overflow-x:auto}.g-schede button{min-height:32px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--g-grigio);cursor:pointer;white-space:nowrap}.g-schede button[aria-pressed=true]{background:var(--g-pannello);color:var(--ink);font-weight:500}.g-cerca input{min-height:36px;width:260px;max-width:100%;padding:0 12px;border:1px solid var(--g-bordo-forte);border-radius:8px;color:var(--ink)}.g-cerca input,.g-tabella{background:var(--g-pannello)}.g-tabella{width:100%;border-collapse:collapse;border:1px solid var(--g-bordo);border-radius:12px;overflow:hidden}.g-tabella th{padding:10px 14px;color:var(--g-grigio);font-size:.8125rem;font-weight:400;text-align:left;white-space:nowrap}.g-tabella td{padding:10px 14px;border-top:1px solid var(--g-bordo);vertical-align:middle}.g-tabella .g-num{text-align:right;font-variant-numeric:tabular-nums}.g-identita{font-weight:500}.g-contatti small,.g-identita small{display:block;color:var(--g-grigio);font-size:.8125rem;font-weight:400}.g-contatti a{text-decoration:none}.g-note{max-width:22rem;color:var(--g-grigio)}.g-chip{display:inline-flex;flex:none;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:.8125rem;font-weight:500;white-space:nowrap}.g-chip--confermata{background:var(--g-chiaro);color:#1d3f31}.g-chip--in-attesa{background:#f6ecd2;color:#5b4310}.g-chip--in-casa{background:var(--accent);color:var(--on-accent)}.g-chip--partita{background:var(--g-attivo);color:var(--g-grigio)}.g-chip--cancellata{background:transparent;color:var(--g-grigio);text-decoration:line-through}.g-legenda{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;padding:0;color:var(--g-grigio);font-size:.8125rem}.g-legenda li{display:flex;align-items:center;gap:6px}.g-segno{display:inline-block;width:18px;height:10px;border-radius:3px}.g-calendario-cornice{overflow-x:auto;background:var(--g-pannello);border:1px solid var(--g-bordo);border-radius:12px}.g-calendario{--colonna:minmax(40px,1fr);min-width:calc(150px + var(--giorni) * 40px)}.g-cal-intestazione,.g-cal-riga{display:grid;grid-template-columns:150px repeat(var(--giorni),var(--colonna))}.g-cal-intestazione,.g-cal-riga{border-bottom:1px solid var(--g-bordo)}.g-cal-riga{position:relative;min-height:64px}.g-cal-riga:last-child{border-bottom:0}.g-cal-camera{grid-column:1;grid-row:1;display:grid;align-content:center;padding:8px 14px;font-weight:500;position:sticky;left:0;z-index:2;background:var(--g-pannello);border-right:1px solid var(--g-bordo)}.g-cal-camera small{color:var(--g-grigio);font-size:.8125rem;font-weight:400}.g-cal-giorno{display:grid;justify-items:center;padding:6px 0;font-variant-numeric:tabular-nums;font-weight:500}.g-cal-giorno small{color:var(--g-grigio);font-size:.75rem;font-weight:400}.g-cal-cella[data-weekend],.g-cal-giorno[data-weekend]{background:#f3f3ec}.g-cal-giorno[data-oggi]{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.g-cal-cella{grid-row:1;padding:0;border:0;border-left:1px solid #efefe8;background:transparent;cursor:copy}.g-cal-cella:hover{background:var(--g-chiaro)}.g-cal-cella[data-oggi]{box-shadow:inset 1px 0 0 var(--accent)}.g-barra-p{grid-row:1;align-self:center;z-index:1;height:28px;margin:0 3px;padding:0 8px;overflow:hidden;border:1px solid transparent;border-radius:4px;font-size:.8125rem;font-weight:500;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.g-barra-p--confermata{background:var(--g-chiaro);border-color:#b9cbb4;color:#1d3f31}.g-barra-p--in-attesa{background:var(--g-pannello);border:1px dashed #a88a3c;color:#5b4310}.g-barra-p--in-casa{background:var(--accent);color:var(--on-accent)}.g-barra-p--partita{background:var(--g-attivo);color:var(--g-grigio)}.g-barra-p:hover{border-color:var(--ink)}.g-nota{margin-top:10px;color:var(--g-grigio);font-size:.8125rem}.g-camere{list-style:none;margin:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.g-camera,.g-camere{padding:0;display:grid}.g-camera{align-content:start;gap:12px;overflow:hidden}.g-camera img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.g-camera-testo{display:grid;gap:10px;padding:0 16px 16px;justify-items:start}.g-chiavi{width:100%;margin:0;display:grid;gap:6px}.g-chiavi div{display:flex;justify-content:space-between;gap:12px}.g-chiavi dt{color:var(--g-grigio)}.g-chiavi dd{margin:0;text-align:right}.g-traccia{width:100%;height:6px;border-radius:3px;background:var(--g-attivo);overflow:hidden}.g-traccia span{display:block;height:100%;background:var(--accent)}.g-modulo{inset:0;margin:auto;width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);padding:22px;border:1px solid var(--g-bordo);border-radius:14px;background:#fffefb;color:var(--ink);box-shadow:0 18px 48px rgb(0 0 0/.18);font-size:.9375rem}.g-modulo::backdrop{background:rgb(28 41 35/.45)}.g-modulo h2{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;margin-bottom:16px}.g-campi{grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;border:0}.g-campi,.g-campo{display:grid;min-width:0}.g-campo{gap:4px;color:var(--g-grigio);font-size:.8125rem}.g-campo input,.g-campo select,.g-campo textarea{min-height:40px;width:100%;padding:6px 10px;border:1px solid var(--g-bordo-forte);border-radius:8px;background:#fff;color:var(--ink);font-size:.9375rem}.g-campo [aria-invalid=true]{border-color:var(--error)}.g-riepilogo{margin-top:16px;font-variant-numeric:tabular-nums}.g-errore{margin-top:8px;color:var(--error)}.g-azioni{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}@media (max-width:1000px){.g-app{grid-template-columns:minmax(0,1fr)}.g-barra{display:none}.g-testata{justify-content:space-between;min-height:56px;padding:0 16px;border-bottom:1px solid var(--g-bordo);position:sticky;top:0;z-index:5;background:var(--g-sfondo)}.g-menu summary,.g-testata{display:flex;align-items:center}.g-menu summary{list-style:none;min-height:44px;padding:0 14px;border:1px solid var(--g-bordo-forte);border-radius:8px;cursor:pointer;font-weight:500}.g-menu summary::-webkit-details-marker{display:none}.g-menu-foglio{position:fixed;inset:56px 0 0;z-index:6;display:flex;flex-direction:column;gap:var(--space-lg);padding:16px;background:var(--g-sfondo);overflow-y:auto}.g-menu-foglio .g-piede-nav>*,.g-menu-foglio nav a{min-height:48px;font-size:1rem}.g-camere{grid-template-columns:1fr 1fr}.g-settimana{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:640px){.g-tela{padding-top:20px}.g-app h1{font-size:1.5rem}.g-titolo{flex-direction:column}.g-titolo .g-primario{width:100%;min-height:44px}.g-camere,.g-griglia-oggi{grid-template-columns:1fr}.g-settimana{grid-template-columns:1fr 1fr}.g-campi{grid-template-columns:1fr}.g-cerca,.g-cerca input{width:100%}.g-bottone,.g-link{min-height:44px}.g-tabella,.g-tabella tbody,.g-tabella tr{display:block}.g-tabella thead{display:none}.g-tabella tr{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:10px 14px;border-top:1px solid var(--g-bordo)}.g-tabella tr:first-child{border-top:0}.g-tabella td{display:block;padding:0;border:0;color:var(--g-grigio);font-size:.8125rem}.g-tabella td.g-identita{flex:1 1 100%;color:var(--ink);font-size:.9375rem}.g-tabella td.g-num:last-child{margin-left:auto}.g-tabella td.g-stato{order:9;flex:1 0 auto;margin-top:6px}.g-tabella td.g-stato~td.g-num:last-child{order:10;margin-top:6px}}@media (prefers-reduced-motion:reduce){.g-bottone:active{transform:none}}