:root{--bg: #f4f7f6;--card: #ffffff;--border: #e1e6e4;--primary: #1c6fa8;--primary-tint: #e5f0f8;--navy: #12435f;--text: #142b27;--text-2: #5c6e6a;--text-3: #8a9b96;--amber-bg: #fcefd8;--amber: #92600a;--green-bg: #def2e5;--green: #1b7a43;--red-bg: #fbe4e2;--red: #b3261e}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg);font-size:15px;line-height:1.45}h1{font-size:24px;margin:0 0 4px}h2{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:0 0 10px}p{margin:0 0 10px}a{color:var(--primary)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);font-size:14px}th{color:var(--text-2);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em}td.num{text-align:right;font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.fine{font-size:12px}.error{color:var(--red);background:var(--red-bg);padding:8px 10px;border-radius:8px}.centered{min-height:100%;display:grid;place-items:center;padding:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:16px}.signin{max-width:440px;width:100%}.signin .button{display:block;text-align:center;margin:14px 0}.brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}.brand h1{margin:0}.brand.small strong{font-size:15px}.brand-mark{width:40px;height:40px;border-radius:12px;flex:none;background:linear-gradient(135deg,var(--primary),var(--navy));box-shadow:inset 0 0 0 2px #ffffff40}.brand.small .brand-mark{width:32px;height:32px;border-radius:9px}.button{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:9px 14px;cursor:pointer;text-decoration:none}.button:hover{background:var(--primary-tint);border-color:var(--primary)}.button:disabled{opacity:.5;cursor:default}.button.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.button.primary:hover{background:var(--navy)}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100%}.sidebar{background:var(--card);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto}.nav-row{font:inherit;text-align:left;background:none;border:0;border-radius:10px;padding:9px 12px;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-row:hover{background:var(--bg)}.nav-row.selected{background:var(--primary-tint);color:var(--navy);font-weight:600}.nav-row.coming{color:var(--text-3)}.sidebar-foot{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:6px}.sidebar-foot .button{align-self:flex-start;margin-top:4px}.content{padding:28px 32px;max-width:1100px}.tag{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.tag.inline{margin:0 4px;text-transform:none;letter-spacing:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:16px 0}.tile{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.tile-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy)}.tile-label{color:var(--text-2);font-size:13px}.tile.warn .tile-value{color:var(--amber)}.tile.ok .tile-value{color:var(--green)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}ul.plain{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:4px}.alert-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:10px 12px;border-left:4px solid var(--amber);background:var(--amber-bg);border-radius:8px;margin-bottom:8px}.alert-row.critical{border-left-color:var(--red);background:var(--red-bg)}.alert-row.info{border-left-color:var(--primary);background:var(--primary-tint)}@media (max-width: 760px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.content{padding:18px}}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card)}.segmented button{font:inherit;font-size:13px;border:0;background:none;padding:7px 12px;cursor:pointer;color:var(--text-2)}.segmented button.selected{background:var(--primary-tint);color:var(--navy);font-weight:600}.daybar{display:flex;align-items:center;gap:8px;margin:12px 0 14px;flex-wrap:wrap}.daybar input[type=date]{font:inherit;border:1px solid var(--border);border-radius:10px;padding:7px 10px;background:var(--card);color:var(--text)}.daytitle{font:inherit;background:none;border:0;cursor:pointer;color:var(--text);text-align:left;padding:6px 8px;border-radius:10px}.daytitle:hover{background:var(--primary-tint)}.diary{padding:6px 0}.slot{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:10px 16px;border-bottom:1px solid var(--border)}.slot:last-child{border-bottom:0}.slot.free{color:var(--text-3)}.slot.extra .time{color:var(--amber)}.slot .time{font-variant-numeric:tabular-nums;font-weight:600}.slot .time .fine{font-weight:400}.freeslot{display:flex;align-items:center;gap:10px;min-height:36px}.booking{display:flex;flex-direction:column;gap:8px}.booking .name{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pill{font-size:11px;font-weight:600;border-radius:999px;padding:2px 8px;background:var(--bg);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.pill.type.newGeneral,.pill.type.newSleep{background:var(--navy);color:#fff;border-color:var(--navy)}.pill.status.s-arrived{background:var(--green-bg);color:var(--green);border-color:transparent}.pill.status.s-seen{background:var(--primary-tint);color:var(--navy);border-color:transparent}.pill.status.s-late{background:var(--amber-bg);color:var(--amber);border-color:transparent}.pill.status.s-missed,.pill.missed{background:var(--red-bg);color:var(--red);border-color:transparent}.pill.paid{background:var(--green-bg);color:var(--green);border-color:transparent}.slot.s-arrived{background:#f4fbf6}.slot.s-missed .who{opacity:.7}.slot.s-gone .who{opacity:.5;text-decoration:line-through}.desk{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.desk .gap{width:10px}.deskbutton{font:inherit;font-size:13px;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:999px;padding:6px 12px;cursor:pointer;text-decoration:none;min-height:34px;display:inline-flex;align-items:center}.deskbutton:hover{border-color:var(--primary);background:var(--primary-tint)}.deskbutton:disabled{opacity:.5;cursor:default}.deskbutton.on{background:var(--green-bg);color:var(--green);border-color:var(--green);font-weight:600}.deskbutton.on.missed{background:var(--red-bg);color:var(--red);border-color:var(--red)}.deskbutton.on.seen{background:var(--primary-tint);color:var(--navy);border-color:var(--primary)}.deskbutton.on.paid{background:var(--green-bg);color:var(--green);border-color:var(--green)}.deskbutton.quiet{color:var(--text-3);border-color:transparent}.monthgrid{padding:12px 14px}.monthhead,.monthdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.monthhead div{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);text-align:center;padding-bottom:4px}.monthday{font:inherit;border:1px solid transparent;background:none;border-radius:10px;padding:8px 4px;cursor:pointer;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:2px}.monthday.clinic{color:var(--text);background:var(--bg)}.monthday.today{border-color:var(--primary)}.monthday.selected{background:var(--primary);color:#fff}.monthday .count{font-size:10px;font-weight:700;background:var(--card);color:var(--navy);border-radius:999px;padding:0 6px}.monthday.selected .count{background:#ffffffe6}@media (max-width: 760px){.slot{grid-template-columns:60px 1fr;padding:10px}}
