:root{--bg: #f6f5f1;--surface: #ffffff;--surface-2: #fbfaf7;--border: #e5e2da;--border-strong: #cfcbc1;--text: #1b1f1d;--muted: #6a6e69;--faint: #9a9d97;--sidebar: #17251f;--sidebar-text: #c9d3cd;--sidebar-active: #24382f;--accent: #2f5d50;--accent-hover: #264c41;--accent-soft: #e7efec;--danger: #b3261e;--danger-soft: #fbeceb;--warn-soft: #fdf5e1;--s-libero: #2e9e5b;--s-prenotato: #d9a400;--s-occupato: #d64541;--s-pulire: #8b5a2b;--s-completata: #5b7186;--s-off: #a7a7a2;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(20, 30, 25, .05), 0 4px 16px rgba(20, 30, 25, .05);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;color:var(--text);font-feature-settings:"tnum" 1,"cv11" 1;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:20px;font-weight:650;margin:0;letter-spacing:-.01em}h2{font-size:16px;font-weight:600;margin:0}h3{font-size:13px;font-weight:600;margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}a{color:var(--accent)}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12.5px}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.col{display:flex;flex-direction:column;gap:8px}.gap16{gap:16px}.gap4{gap:4px}.spacer{flex:1}.mono{font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:216px 1fr;height:100%}.sidebar{background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;padding:20px 12px;gap:2px}.brand{color:#fff;font-weight:700;letter-spacing:.08em;font-size:15px;padding:0 10px 2px}.brand-sub{font-size:11.5px;color:#8fa198;padding:0 10px 20px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;border:0;background:none;color:inherit;cursor:pointer;text-align:left;font-weight:500}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:var(--sidebar-active);color:#fff}.nav-item .count{margin-left:auto;background:#d9a400;color:#1b1f1d;font-size:11.5px;font-weight:700;border-radius:10px;padding:1px 7px}.nav-item svg{width:17px;height:17px;opacity:.9;flex:none}.sidebar .user{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:14px 10px 0;font-size:12.5px}.sidebar .user b{color:#fff;font-weight:600;display:block}.main{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--surface)}.content{flex:1;overflow:auto;padding:20px 24px 40px}.testbar{background:#fdf5e1;color:#6b5300;font-size:12.5px;padding:6px 24px;border-bottom:1px solid #f1e3b5;display:flex;gap:12px;align-items:center}.testbar button{background:none;border:0;color:#6b5300;text-decoration:underline;cursor:pointer;padding:0;font-size:12.5px}.mobilebar{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);padding:0 14px;height:36px;font-weight:550;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover{background:var(--surface-2);border-color:#b9b4a8}.btn:focus-visible,.tab:focus-visible,.nav-item:focus-visible,.tbl:focus-visible,.list-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-ghost{color:var(--danger);border-color:#e9c1bd}.btn.ghost{border-color:transparent;background:none}.btn.ghost:hover{background:#0000000a}.btn.lg{height:46px;font-size:15px;padding:0 20px}.btn.sm{height:30px;padding:0 10px;font-size:13px}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.tabs{display:inline-flex;background:#efede7;border-radius:9px;padding:3px;gap:2px;flex-wrap:wrap}.tab{border:0;background:none;padding:6px 12px;border-radius:7px;cursor:pointer;font-weight:550;color:var(--muted);display:inline-flex;gap:6px;align-items:center}.tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.tab .n{font-size:12px;background:#0000000f;border-radius:9px;padding:0 6px;min-width:20px;text-align:center}.tab.active .n{background:var(--accent-soft);color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card.pad{padding:16px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.divider{height:1px;background:var(--border);margin:14px 0}.empty{padding:28px 16px;text-align:center;color:var(--muted)}.notice{border-radius:8px;padding:10px 12px;font-size:13px;background:var(--warn-soft);color:#6b5300}.notice.error{background:var(--danger-soft);color:var(--danger)}.notice.info{background:var(--accent-soft);color:var(--accent)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:20px;background:#f0eee9;color:var(--muted);white-space:nowrap}.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.pill.libero{color:var(--s-libero);background:#e6f4ec}.pill.prenotato{color:#8a6a00;background:#fbf2d6}.pill.occupato{color:var(--s-occupato);background:#fbe7e6}.pill.pulire{color:var(--s-pulire);background:#f3eadf}.pill.completata{color:var(--s-completata);background:#e8edf2}.pill.off,.pill.annullata{color:#767670;background:#efefec}.pill.warn{color:#8a6a00;background:#fbf2d6}.pill.ok{color:var(--s-libero);background:#e6f4ec}.pill.err{color:var(--danger);background:var(--danger-soft)}.pill.info{color:var(--accent);background:var(--accent-soft)}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}.metric{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:10px 14px;cursor:pointer}.metric:hover{border-color:var(--border-strong)}.metric .k{font-size:12px;color:var(--muted);font-weight:500}.metric .v{font-size:24px;font-weight:650;letter-spacing:-.02em;margin-top:2px}.metric.alert{background:#fdf6e3;border-color:#efd99a}.metric.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.service{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.map-wrap{padding:12px}.map-head{display:flex;align-items:center;gap:10px;padding:4px 4px 12px;flex-wrap:wrap}.map{position:relative;width:100%;aspect-ratio:16 / 10;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:12px;overflow:hidden;touch-action:none}.map.cerchio{border-radius:50%}.map.quadrato{aspect-ratio:1;max-width:640px;margin:0 auto}.map .label-ingresso{position:absolute;left:12px;bottom:8px;font-size:11px;color:var(--faint);letter-spacing:.08em}.tbl{position:absolute;transform:translate(-50%,-50%);width:clamp(40px,12.5%,88px);aspect-ratio:7 / 5;container-type:inline-size;border-radius:10px;border:1.5px solid;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;text-align:center;user-select:none;transition:box-shadow .12s,opacity .12s}.tbl.round{border-radius:50%;aspect-ratio:1}.tbl .nm{font-weight:700;font-size:clamp(10.5px,17cqi,13.5px)}.tbl .sub{font-size:11px;color:var(--muted);max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@container (max-width: 64px){.tbl .sub{display:none}}.tbl.libero{border-color:var(--s-libero);background:#eef8f2}.tbl.prenotato{border-color:var(--s-prenotato);background:#fdf6df}.tbl.occupato{border-color:var(--s-occupato);background:#fcebea}.tbl.da_pulire{border-color:var(--s-pulire);background:#f4ece2}.tbl.indisponibile{border-color:var(--s-off);background:#f1f1ef;color:var(--muted)}.tbl.selected{box-shadow:0 0 0 3px var(--text)}.tbl.dim{opacity:.28;cursor:not-allowed}.tbl.fit{box-shadow:0 0 0 3px var(--accent)}.tbl.suggested:after{content:"Consigliato";white-space:nowrap;position:absolute;top:-10px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px}.tbl .link{position:absolute;top:-8px;right:-8px;background:var(--text);color:#fff;font-size:10px;border-radius:8px;padding:0 5px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:10px 4px 0}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.modebar{display:flex;align-items:center;gap:10px;background:var(--text);color:#fff;padding:10px 14px;border-radius:10px;margin-bottom:10px}.modebar .btn{height:30px}.side{position:sticky;top:0}.side-body{padding:16px}.list-row{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;padding:11px 16px;border-top:1px solid var(--border);cursor:pointer;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left}.list-row:hover{background:var(--surface-2)}.list-row .t{font-weight:650;font-size:15px}.list-row .n{font-weight:600}.list-row .d{font-size:12.5px;color:var(--muted)}.kv{display:grid;grid-template-columns:110px 1fr;gap:6px 10px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0}.back{background:none;border:0;color:var(--muted);cursor:pointer;padding:0;font-size:13px;margin-bottom:10px}.timeline{list-style:none;margin:0;padding:0;font-size:13px}.timeline li{display:grid;grid-template-columns:92px 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--border)}.timeline li:first-child{border-top:0}.option-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}.option{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left}.option:hover{border-color:var(--accent)}.option.bad{opacity:.55;cursor:not-allowed}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--surface-2)}.table tr:last-child td{border-bottom:0}.split{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.search{height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 12px;min-width:240px;background:#fff}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12.5px;font-weight:600;color:var(--muted)}.field .hint{font-size:12px;color:var(--faint)}.input,.field input,.field select,.field textarea{height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 11px;background:#fff;width:100%}.field textarea{height:auto;min-height:120px;padding:10px 11px;line-height:1.45;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search:focus,.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.check{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-size:13.5px}.check input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--accent)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.stepper button{width:38px;height:38px;border:0;background:var(--surface-2);cursor:pointer;font-size:18px}.stepper span{min-width:44px;text-align:center;font-weight:650;font-size:16px}.overlay{position:fixed;inset:0;background:#12181561;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.dialog{background:var(--surface);border-radius:14px;width:100%;max-width:460px;box-shadow:0 20px 60px #00000040;max-height:calc(100% - 32px);display:flex;flex-direction:column}.dialog.wide{max-width:640px}.dialog .dh{padding:20px 22px 4px}.dialog .db{padding:10px 22px 6px;overflow:auto}.dialog .df{padding:16px 22px 20px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.dialog p{margin:6px 0;line-height:1.5;color:#3d413e}.toasts{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:60;align-items:center}.toast{background:var(--text);color:#fff;border-radius:10px;padding:10px 12px 10px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 30px #00000040;min-width:280px;max-width:92vw}.toast.error{background:var(--danger)}.toast button{background:#ffffff24;border:0;color:#fff;border-radius:6px;padding:6px 10px;cursor:pointer;font-weight:600}.loading{display:flex;height:100%;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--muted)}.login{display:flex;min-height:100%;align-items:center;justify-content:center;padding:24px;background:var(--sidebar)}.login .card{width:100%;max-width:420px;padding:28px}.user-choice{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;text-align:left}.user-choice:hover{border-color:var(--accent);background:var(--accent-soft)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cal .dow{background:var(--surface-2);padding:8px;font-size:12px;font-weight:600;color:var(--muted)}.cal .day{background:#fff;min-height:92px;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.cal .day:hover{background:var(--surface-2)}.cal .day.out{background:#faf9f6;color:var(--faint)}.cal .day.today .num{background:var(--accent);color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.cal .num{font-weight:600;font-size:13px}.cal .chip{font-size:11.5px;background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:1px 6px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.week .wd{background:#fff;border:1px solid var(--border);border-radius:var(--radius);min-height:220px}.week .wd .h{padding:8px 10px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px;cursor:pointer}.week .wd .it{padding:6px 10px;font-size:12.5px;border-bottom:1px solid #f1efea;cursor:pointer}.week .wd .it:hover{background:var(--surface-2)}.editor-tbl{cursor:grab}.editor-tbl:active{cursor:grabbing}.subnav{display:flex;flex-direction:column;gap:2px}.subnav button{text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font-weight:550;color:var(--muted)}.subnav button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000f}.settings{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:start}.switch{position:relative;width:40px;height:22px;border-radius:12px;background:#d6d3cb;border:0;cursor:pointer;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}.switch.on{background:var(--accent)}.switch.on:after{left:21px}@media (max-width: 1180px){.service{grid-template-columns:1fr}.side{position:static}.metrics{grid-template-columns:repeat(3,1fr)}.split{grid-template-columns:1fr}}@media (max-width: 900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.mobilebar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--sidebar);z-index:40;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.mobilebar button{flex:1;background:none;border:0;color:var(--sidebar-text);font-size:10.5px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;position:relative}.mobilebar button.active{color:#fff}.mobilebar svg{width:20px;height:20px}.mobilebar .count{position:absolute;top:0;right:calc(50% - 20px);background:#d9a400;color:#1b1f1d;font-size:10px;font-weight:700;border-radius:8px;padding:0 5px}.content{padding:14px 14px 90px}.topbar{padding:10px 14px;flex-wrap:wrap}.settings{grid-template-columns:1fr}.subnav{flex-direction:row;overflow-x:auto}.week{grid-template-columns:1fr}.testbar{padding:6px 14px}}@media (max-width: 560px){.metrics{grid-template-columns:repeat(2,1fr)}.grid2,.grid3{grid-template-columns:1fr}.search{min-width:0;width:100%}.hide-sm{display:none!important}.cal .day{min-height:56px}.cal .chip{display:none}}.attention{background:#fffaf0;border:1px solid #efd99a;border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.attention h2{font-size:15px;margin-bottom:8px;color:#6b5300}.att-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #f3e6bf;flex-wrap:wrap}.att-row:first-of-type{border-top:0}.att-row .t{font-weight:650;font-size:15px;min-width:48px}.warn-text{color:#8a6a00;font-weight:600}.late{color:var(--danger);font-weight:600}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.bcol{background:#efede7;border-radius:12px;padding:12px;min-height:160px}.bcol header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.bcol header .dot{width:10px;height:10px;border-radius:50%}.bcol header .count{margin-left:auto;background:#fff;border-radius:10px;padding:1px 9px;font-weight:700}.bcard{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 2px #0000000a}.bcard.later{opacity:.7}.bcard-info{background:none;border:0;padding:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:1px}.bcard-info:hover b{text-decoration:underline}.bcard .bt{font-weight:700;font-size:16px}.bcard .more{color:var(--faint);font-size:18px;line-height:1}.bcard .btn.primary{height:44px;font-size:15px}.col-empty{color:var(--muted);font-size:13px;padding:18px 8px;text-align:center;background:#ffffff80;border-radius:8px}.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}.drawer{width:min(420px,100%);height:100%;border-radius:0;overflow:auto}.tbl .seats{font-weight:500;color:var(--muted);font-size:.85em}@media (max-width: 1000px){.board{grid-template-columns:1fr}.bcol{min-height:0}}.accounts{display:flex;flex-direction:column;gap:8px}.account{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface, #fff)}.account.off{opacity:.6}.account .who{flex:1 1 200px;min-width:0}.account .actions{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-block;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 8px;background:var(--accent-soft);color:var(--accent)}.chip.ok{background:#e3f4e8;color:#1d6b3a}.chip.warn{background:var(--warn-soft);color:#6b5300}.chip.bad{background:var(--danger-soft);color:var(--danger)}.credentials{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 18px;padding:14px 16px;border-radius:10px;background:var(--accent-soft)}.credentials>div{display:flex;flex-direction:column;gap:3px;min-width:0}.credentials b{white-space:nowrap}.credentials .mono,.credentials code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px;user-select:all}.btn.danger-text{color:var(--danger)}.conversation li.reply{align-items:start}.conversation .bubble{background:var(--surface-2, #f6f5f3);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:0}.conversation li.reply.new .bubble{border-color:#e2c46a;background:var(--warn-soft)}.conversation .bubble .text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;line-height:1.5;font-size:14px}.badge-reply{display:inline-block;margin-left:4px}tr.unread td{font-weight:600;background:var(--warn-soft)}
