:root{--primario: #55286d;--primario-scuro: #3d1c4f;--accento: #e8b04b;--sfondo: #f4f1ea;--carta: #ffffff;--testo: #2b2333;--muted: #7a7284;--rosso: #b3362c;--verde: #2c7a3f;--bordo: #e3ddd2}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--sfondo);color:var(--testo)}.app{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.demo-banner{flex-shrink:0;background:var(--accento);color:#4a3608;text-align:center;font-size:12px;padding:4px 8px}.header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--primario);color:#fff}.header h1{font-size:17px;margin:0}.header .muted{color:#cfc3dd;font-weight:400}.main{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding:14px;max-width:1100px;width:100%;margin:0 auto}h2{font-size:19px;margin:4px 0 12px}h3{font-size:15px;margin:0 0 10px}.muted{color:var(--muted)}.piccolo{font-size:12px}.rosso{color:var(--rosso)}.card{background:var(--carta);border:1px solid var(--bordo);border-radius:12px;padding:14px;margin-bottom:14px}.barra{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.barra-bottoni{display:flex;gap:8px;flex-shrink:0}label.check{display:flex;align-items:center;gap:8px}label.check input{width:auto;margin:0}.ore-calcolate{background:#eef3ef;border:1px solid var(--bordo);border-radius:10px;padding:9px 12px;font-size:14px;margin-bottom:10px}.ore-calcolate strong{color:var(--primario);font-size:15px}button,.bottone-file{background:var(--primario);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-size:14px;cursor:pointer}button:disabled{opacity:.5}button.secondario{background:#eee7f4;color:var(--primario)}button.link{background:none;color:var(--primario);padding:4px;text-decoration:underline}.header button.link{color:#e5d9f2}input,select{width:100%;padding:10px;border:1px solid var(--bordo);border-radius:10px;font-size:15px;background:#fff}label{display:block;font-size:13px;color:var(--muted);margin-bottom:10px}label input,label select{margin-top:4px}.riga-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.login{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(160deg,var(--primario) 0%,var(--primario-scuro) 100%);padding:20px}.login-card{background:var(--carta);border-radius:16px;padding:28px;width:100%;max-width:380px;text-align:center}.login-card h1{font-size:20px;margin:10px 0 2px}.login-card form{margin-top:18px;display:grid;gap:10px}.login-demo{margin-top:14px;font-size:11px}.errore{color:var(--rosso);font-size:13px}.tabbar{flex-shrink:0;display:flex;background:var(--carta);border-top:1px solid var(--bordo);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;background:none;color:var(--muted);border-radius:0;padding:8px 4px;display:grid;gap:2px;font-size:11px}.tabbar button.attivo{color:var(--primario);font-weight:600}.tabbar .ico{font-size:18px}.griglia-scroll{overflow-x:auto;background:var(--carta);border:1px solid var(--bordo);border-radius:12px}.griglia{border-collapse:collapse;font-size:12px;min-width:100%}.griglia th,.griglia td{border:1px solid var(--bordo);padding:4px;text-align:center;min-width:26px}.griglia th.weekend{background:#f0ebe2;color:var(--muted)}.colonna-nome{position:sticky;left:0;background:var(--carta);text-align:left!important;min-width:130px!important;z-index:1}.cella{cursor:pointer}.cella.c-l{background:#e9f3ea}.cella.c-fe{background:#dbeafe}.cella.c-pe{background:#ede9fe}.cella.c-ml{background:#fee2e2}.cella.c-pn{background:#fef3c7}.cella.c-r{background:#f5f2ec;color:#b8b0a4}.cella.ritardo{outline:2px solid var(--rosso);outline-offset:-2px}.num{text-align:right!important;font-variant-numeric:tabular-nums}.legenda{margin-top:8px}.kpi-riga{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}.kpi{background:var(--carta);border:1px solid var(--bordo);border-radius:12px;padding:12px}.kpi-valore{font-size:22px;font-weight:700;color:var(--primario)}.kpi-label{font-size:12px;color:var(--muted)}.barre{display:flex;gap:8px;align-items:flex-end}.barra-mese{flex:1;background:none;color:var(--testo);padding:4px;display:grid;gap:4px;justify-items:center}.barra-colonna{height:110px;width:100%;max-width:46px;display:flex;align-items:flex-end;background:#f0ebe2;border-radius:6px;overflow:hidden}.barra-riempi{width:100%;background:var(--primario);border-radius:6px 6px 0 0}.barra-mese.attivo .barra-riempi{background:var(--accento)}.tabella{width:100%;border-collapse:collapse;font-size:13px}.tabella th,.tabella td{padding:7px 6px;border-bottom:1px solid var(--bordo);text-align:left}.tabella tr.totale td{font-weight:700;border-top:2px solid var(--testo)}.badge{display:inline-block;background:#f0ebe2;color:var(--muted);font-size:10px;border-radius:20px;padding:2px 8px;margin-left:6px;vertical-align:middle}.badge.verde{background:#e9f3ea;color:var(--verde)}.card.verifica{border-color:var(--accento);border-width:2px}.warning{background:#fef3c7;color:#7a5a08;border-radius:10px;padding:10px;font-size:13px;margin-bottom:10px}.ok-box{background:#e9f3ea;color:var(--verde);border-radius:10px;padding:10px;font-size:13px;margin:10px 0}.modal-sfondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e142880;display:grid;place-items:center;padding:16px;z-index:10}.modal{background:var(--carta);border-radius:16px;padding:18px;width:100%;max-width:420px;max-height:88dvh;overflow-y:auto}.modal.larga{max-width:560px}.modal-azioni{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.bot{flex:1;min-height:0;display:flex;flex-direction:column}.chat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px}.msg{max-width:85%;border-radius:14px;padding:10px 14px;font-size:14px}.msg p{margin:0 0 6px}.msg p:last-child{margin-bottom:0}.msg.bot{background:var(--carta);border:1px solid var(--bordo);align-self:flex-start}.msg.utente{background:var(--primario);color:#fff;align-self:flex-end}.msg .fonte{margin-top:6px;font-size:11px;color:var(--muted)}.suggerimenti{display:flex;gap:6px;overflow-x:auto;padding:8px 0}.chip{background:#eee7f4;color:var(--primario);font-size:12px;padding:6px 12px;border-radius:20px;white-space:nowrap}.chat-input{display:flex;gap:8px}.chat-input input{flex:1}.toast{position:fixed;bottom:calc(78px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--testo);color:#fff;border-radius:20px;padding:10px 18px;font-size:13px;z-index:20}@media (max-width: 640px){.kpi-valore{font-size:18px}.msg{max-width:95%}}:root{--ap-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Segoe UI", Roboto, sans-serif;--ap-accento: var(--accento, var(--verde, var(--primario, #0071e3)));--ap-materiale: rgba(255, 255, 255, .74);--ap-bordo-luce: rgba(255, 255, 255, .45);--ap-bordo-tenue: rgba(0, 0, 0, .08);--ap-anello: rgba(0, 113, 227, .22);--ap-molla: cubic-bezier(.2, .8, .2, 1);--ap-molla-out: cubic-bezier(.8, .2, .8, 0)}@supports (background: color-mix(in srgb,red 50%,blue)){:root{--ap-materiale: color-mix(in srgb, var(--card, var(--bg, #ffffff)) 74%, transparent);--ap-bordo-tenue: color-mix(in srgb, var(--bordo, #e5e5ea) 60%, transparent);--ap-anello: color-mix(in srgb, var(--ap-accento) 22%, transparent)}}html{font-family:var(--ap-font);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}h1{letter-spacing:-.022em;line-height:1.1;font-weight:700}h2{letter-spacing:-.018em;line-height:1.15;font-weight:700}h3{letter-spacing:-.012em;line-height:1.2;font-weight:650}.section-title,.k{letter-spacing:.01em}small,.piccolo,.mini{letter-spacing:.012em}.kpi,.importo,.totale,.num,td.n,.n{font-variant-numeric:tabular-nums}@media (pointer: coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:max(16px,1em)}}button,.btn,.chip,.icon-btn{touch-action:manipulation;transition:transform .1s ease-out,opacity .1s ease-out,background-color .15s var(--ap-molla),box-shadow .15s var(--ap-molla)}button:active:not(:disabled),.btn:active:not(:disabled),.chip:active,.icon-btn:active{transform:scale(.97)}button:disabled,.btn:disabled{cursor:not-allowed}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.header,.tabbar{background:var(--ap-materiale);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}.header{border-bottom-color:var(--ap-bordo-tenue)}.tabbar{border-top-color:var(--ap-bordo-tenue)}.sheet{-webkit-backdrop-filter:blur(28px) saturate(160%);backdrop-filter:blur(28px) saturate(160%)}}.card,.sheet{box-shadow:inset 0 1px 0 var(--ap-bordo-luce),var(--ombra, 0 1px 2px rgba(0,0,0,.04), 0 2px 8px rgba(0,0,0,.04))}.ap-materializza{animation:ap-materializza .32s var(--ap-molla) both;transform-origin:bottom center}@keyframes ap-materializza{0%{opacity:0;transform:translateY(12px) scale(.985);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}.content,.contenuto,.scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--ap-accento);outline-offset:2px;border-radius:6px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--ap-accento);box-shadow:0 0 0 3px var(--ap-anello)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.ap-materializza{animation:ap-dissolvenza .2s ease both;transform:none!important;filter:none!important}@keyframes ap-dissolvenza{0%{opacity:0}to{opacity:1}}button:active,.btn:active,.chip:active,.icon-btn:active{transform:none;opacity:.85}}@media (prefers-reduced-transparency: reduce){.header,.tabbar,.sheet{background:var(--card, var(--bg, #fff));-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast: more){.header,.tabbar,.sheet,.card{border:1px solid var(--testo, #1d1d1f);background:var(--card, var(--bg, #fff));-webkit-backdrop-filter:none;backdrop-filter:none}:focus-visible{outline-width:3px}}
