:root{font-family:Segoe UI,Arial,sans-serif;color:#12365c;background:#eef3f8;--blue:#1766a7;--blue2:#0e4f86;--line:#c8d7e6;--ok:#11894b;--danger:#c52a39}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:7px;padding:9px 14px;font-weight:650;cursor:pointer}button.secondary{background:#fff;color:#12365c;border-color:var(--line)}button.danger{background:#fff;color:var(--danger);border-color:#efb6bd}button:disabled{opacity:.5;cursor:not-allowed}.brand{display:flex;align-items:center;gap:9px}.brand>span{display:grid;place-items:center;background:#f28b16;color:#0a3762;border-radius:11px;width:46px;height:46px;font-weight:900;font-size:20px}.brand div{display:flex;flex-direction:column;line-height:1}.brand b{font-size:18px}.brand small{font-size:10px;letter-spacing:1.2px;margin-top:5px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#edf5fc,#dce9f5)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 18px 45px #1a4c7624}.login-card h1{margin:25px 0 20px}.login-card label,.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600;margin-bottom:14px}.login-card input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fff;color:#12365c}.login-card button{width:100%;margin-top:5px}.status{min-height:22px;color:#526b84}.status.error{color:var(--danger);font-weight:700}.status.ok{color:var(--ok);font-weight:700}.app-shell{min-height:100vh}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:10px 20px;gap:22px;position:sticky;top:0;z-index:20}.topbar .tenant{display:flex;flex-direction:column;flex:1}.topbar nav{display:flex;gap:8px}main{padding:18px}.toolbar{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap}.toolbar-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar input{border:1px solid var(--line);border-radius:7px;padding:8px}.toolbar button.active{background:var(--blue2)}#agenda{margin-top:12px}.day-grid{display:grid;grid-template-columns:90px 1fr;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.hour-label,.hour-slot{min-height:72px;border-bottom:1px solid #e1e9f1}.hour-label{padding:9px;text-align:right;font-weight:700;background:#f8fafc}.hour-slot{padding:5px;display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:8px;overflow:auto}.week-day{background:#fff;border:1px solid var(--line);border-radius:10px;min-height:520px}.week-day>header{padding:10px;border-bottom:1px solid var(--line);position:sticky;top:79px;background:#fff;z-index:4}.week-day.today>header{background:#e7f4ff}.week-body{padding:7px;display:flex;flex-direction:column;gap:7px}.appointment-card{border:1px solid #bad0e4;border-left:6px solid var(--blue);background:#f8fbfe;border-radius:7px;padding:8px;cursor:pointer;color:#12365c}.appointment-card.status-COMPLETATO{border-left-color:var(--ok);background:#effaf4}.appointment-card.status-ANNULLATO{border-left-color:#9b9b9b;opacity:.7}.appointment-card.status-IN_CORSO{border-left-color:#e39a11;background:#fff8e8}.appointment-card b{display:block}.appointment-card small{display:block;margin-top:4px;color:#526b84}.list-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}.list-table th,.list-table td{border-bottom:1px solid var(--line);padding:9px;text-align:left}.list-table th{background:#f3f7fb}.list-table tr:hover{background:#f7fbff}.empty{background:#fff;border:1px solid var(--line);border-radius:10px;padding:40px;text-align:center;color:#6b7e91}dialog{border:none;border-radius:12px;padding:0;width:min(760px,94vw);max-height:92vh;box-shadow:0 25px 70px #0e335a55;color:#12365c}dialog::backdrop{background:#0b2d4f80}dialog form,.dialog-card{padding:0 20px 20px}dialog header{display:flex;align-items:center;border-bottom:1px solid var(--line);margin:0 -20px 18px;padding:13px 20px}dialog header h2{margin:0;flex:1}.icon{background:transparent;color:#12365c;border:none;font-size:28px;padding:0 8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.form-grid .full{grid-column:1/-1}.form-grid small{font-weight:400;color:#657d94}dialog footer{display:flex;align-items:center;gap:9px;margin-top:14px}dialog footer span{flex:1}.meta{background:#f2f7fb;border-radius:7px;padding:10px;color:#536f88;font-size:13px}.dialog-card.wide{width:min(900px,94vw)}.user-row,.audit-row{display:grid;grid-template-columns:1fr auto;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}.user-row small,.audit-row small{display:block;color:#60778e;margin-top:4px}.actions{display:flex;gap:7px;align-items:center}.badge{display:inline-block;border-radius:999px;padding:3px 8px;background:#e5eff8;font-size:12px}.audit-change{white-space:pre-wrap;background:#f6f8fa;border:1px solid #e2e8ee;padding:7px;border-radius:6px;margin-top:6px;font-size:12px}.readonly-banner{background:#fff6d8;border:1px solid #ead27c;padding:9px;border-radius:7px;margin-bottom:10px}
@media(max-width:850px){.topbar{height:auto;flex-wrap:wrap}.topbar .tenant{order:3;flex-basis:100%}.week-grid{grid-template-columns:1fr}.week-day{min-height:auto}.week-day>header{position:static}.toolbar{align-items:stretch}.toolbar-row{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.list-table{display:block;overflow:auto}main{padding:10px}}
