:root{
  --bg:#f3f4f6;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;
  --primary:#111827;--primary2:#374151;--ok:#166534;--okbg:#dcfce7;
  --warn:#92400e;--warnbg:#fef3c7;--danger:#991b1b;--dangerbg:#fee2e2;
  --blue:#1d4ed8;--bluebg:#dbeafe;--shadow:0 8px 28px rgba(17,24,39,.08);
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:.84rem}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);background:var(--card);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.brand-mark{width:56px;height:56px;border-radius:18px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:900;font-size:1.2rem}.login-card h1{margin:16px 0 4px}.login-card label{display:block;font-size:.86rem;font-weight:700;margin:14px 0 6px}.login-card input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;margin-top:6px;background:#fff}.full{width:100%;margin-top:10px}.demo-box{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}
button{border:0;border-radius:12px;padding:11px 14px;font-weight:700;cursor:pointer}.primary{background:var(--primary);color:#fff}.secondary{background:#eef0f3;color:var(--text)}.danger-btn{background:var(--dangerbg);color:var(--danger)}.success-btn{background:var(--okbg);color:var(--ok)}.ghost{background:transparent;border:1px solid var(--line)}button:disabled{opacity:.45;cursor:not-allowed}
.app-shell{min-height:100vh;padding-bottom:82px}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:calc(12px + env(safe-area-inset-top)) 18px 12px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:1.35rem;margin:2px 0 0}.top-actions{display:flex;gap:8px;align-items:center}.badge{font-size:.75rem;background:#eef0f3;padding:6px 9px;border-radius:999px}.icon-btn{width:40px;height:40px;padding:0;border-radius:50%;background:#eef0f3}.content{padding:16px;max-width:1180px;margin:0 auto}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid var(--line);padding:8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:4px}.nav-btn{background:transparent;color:var(--muted);padding:8px 12px;min-width:76px;font-size:.75rem}.nav-btn.active{color:var(--text);background:#f3f4f6}.nav-icon{display:block;font-size:1.18rem;margin-bottom:2px}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}.week-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:2px}.week-tab{white-space:nowrap;background:#fff;border:1px solid var(--line);padding:10px 12px}.week-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.publish-state{display:flex;align-items:center;gap:8px}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.green{background:#22c55e}.gray{background:#9ca3af}
.week-grid{display:grid;gap:12px}.day-card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.day-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.day-head h3{margin:0;font-size:1rem}.today{outline:2px solid var(--blue);outline-offset:0}.services{display:grid;grid-template-columns:1fr 1fr}.service{padding:12px}.service+.service{border-left:1px solid var(--line)}.service-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:8px}.dept-title{font-size:.75rem;font-weight:800;margin:9px 0 5px}.slot-select{width:100%;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:6px}.employee-list{display:flex;flex-wrap:wrap;gap:6px}.person-chip{background:#f3f4f6;border-radius:999px;padding:6px 9px;font-size:.8rem}.my-chip{background:var(--bluebg);color:var(--blue);font-weight:800}
.card{background:#fff;border-radius:18px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}.card h2,.card h3{margin-top:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid{display:grid;grid-template-columns:2fr 2fr 1fr auto;gap:8px;align-items:end}.form-grid input,.form-grid select,.form-grid textarea,.field{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}.staff-table{width:100%;border-collapse:collapse}.staff-table th,.staff-table td{padding:10px 7px;border-bottom:1px solid var(--line);text-align:left;font-size:.88rem}.staff-table th{font-size:.75rem;text-transform:uppercase;color:var(--muted)}.num{text-align:center!important;font-variant-numeric:tabular-nums}.department-pill{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.75rem;font-weight:800}.sala{background:var(--bluebg);color:var(--blue)}.cucina{background:#f3e8ff;color:#7e22ce}.owner{background:#fef3c7;color:#92400e}
.request-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.request-card:last-child{border-bottom:0}.request-actions{display:flex;gap:6px}.pending{color:var(--warn);background:var(--warnbg)}.approved{color:var(--ok);background:var(--okbg)}.rejected{color:var(--danger);background:var(--dangerbg)}.status-pill{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.72rem;font-weight:800}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.month-card{background:#fff;border-radius:16px;padding:12px;box-shadow:var(--shadow)}.month-card h3{margin:0 0 8px;text-transform:capitalize}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.dow,.mini-day{font-size:.7rem;text-align:center;padding:6px 2px;border-radius:7px}.dow{color:var(--muted);font-weight:800}.mini-day{background:#f8fafc;border:1px solid transparent;cursor:pointer}.mini-day.empty{background:transparent;cursor:default}.mini-day.has-absence{background:var(--warnbg);color:var(--warn);font-weight:800}.mini-day.approved-absence{background:var(--dangerbg);color:var(--danger);font-weight:800}.mini-day.today-mini{border-color:var(--blue)}
.empty-state{text-align:center;padding:26px;color:var(--muted)}.notice{padding:12px;border-radius:12px;background:var(--bluebg);color:#1e3a8a;margin-bottom:12px}.warning{background:var(--warnbg);color:var(--warn)}.toast{position:fixed;z-index:100;left:50%;top:18px;transform:translateX(-50%);background:#111827;color:#fff;padding:11px 15px;border-radius:12px;box-shadow:var(--shadow);max-width:90%;font-size:.88rem}
.modal-backdrop{position:fixed;z-index:60;inset:0;background:rgba(17,24,39,.42);display:grid;place-items:end center;padding:16px}.modal{background:#fff;width:min(520px,100%);border-radius:20px;padding:18px;box-shadow:var(--shadow);max-height:88vh;overflow:auto}.modal h3{margin-top:0}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
@media(max-width:760px){.services{grid-template-columns:1fr}.service+.service{border-left:0;border-top:1px solid var(--line)}.split{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.year-grid{grid-template-columns:1fr}.staff-table{font-size:.78rem}.staff-table th:nth-child(2),.staff-table td:nth-child(2){display:none}.content{padding:12px}.nav-btn{min-width:64px;padding:8px 7px}}
@media(min-width:900px){.week-grid{grid-template-columns:repeat(2,1fr)}.bottom-nav{left:50%;right:auto;transform:translateX(-50%);border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;width:auto}.app-shell{padding-bottom:96px}}

/* Abilitazioni Sala / Cucina */
.input-label{display:block;font-size:.86rem;font-weight:700;margin-bottom:6px}.capability-box{display:flex;gap:8px;align-items:center;min-height:42px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.capability-box label,.role-toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.capability-box input,.role-toggle input{width:18px;height:18px;accent-color:var(--primary)}.role-cell{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.small-btn{padding:7px 9px;font-size:.76rem}.staff-add-grid{grid-template-columns:2fr 2fr 1.5fr auto}
@media(max-width:760px){.staff-add-grid{grid-template-columns:1fr}.role-cell{min-width:180px}}
