:root{--web-panel-radius:16px;--web-control-radius:10px;--web-panel-space:24px;--web-gap:24px}body{font-family:var(--font-open-sans),system-ui,sans-serif;font-size:14px;line-height:22px}button,input,select,textarea{font:inherit}.gradient-blob{display:none}h1{letter-spacing:-.5px;font-size:28px;font-weight:700;line-height:36px}h2{font-size:18px;font-weight:600;line-height:26px}button,a,input,textarea,select{transition:background-color .18s,border-color .18s,box-shadow .18s,color .18s}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}[data-slot=card]{border-radius:var(--web-panel-radius);box-shadow:0 2px 6px color-mix(in srgb,var(--color-text) 3%,transparent);--card-spacing:24px}[data-slot=card-title]{text-transform:none;letter-spacing:normal;font-size:18px;font-weight:600;line-height:26px}[data-slot=card-description]{font-size:14px;line-height:22px}[data-slot=button]{border-radius:10px;min-height:40px;font-size:14px;font-weight:600}[data-slot=input],[data-slot=textarea],[data-slot=select-trigger]{border-radius:10px;min-height:40px;font-size:14px}[data-slot=dialog-content],[data-slot=alert-dialog-content]{border-radius:16px;max-height:calc(100dvh - 32px);padding:24px;font-size:14px;line-height:22px;overflow-y:auto}[data-slot=dialog-title],[data-slot=alert-dialog-title]{font-size:18px;line-height:26px}[data-slot=dropdown-menu-content],[data-slot=popover-content]{border-radius:10px}[data-slot=dropdown-menu-item]{gap:8px;min-height:40px;font-size:14px}[data-slot=table]{font-variant-numeric:tabular-nums;font-size:14px;line-height:22px}[data-slot=table-head],[data-slot=table-cell]{padding:12px 16px}[data-slot=badge]{border-radius:6px;font-size:12px;line-height:18px}.workspace-shell{background:var(--color-bg);min-height:100dvh;color:var(--color-text);display:flex}.workspace-shell .sidebar,.workspace-drawer{background:var(--color-nav-bg);flex:0 0 248px;gap:0;width:248px;padding:24px 16px;font-size:14px}.workspace-shell .sidebar--desktop{height:100dvh;display:flex;position:sticky;top:0}.workspace-brand{align-items:center;gap:12px;margin:0 8px 24px;text-decoration:none;display:flex}.workspace-brand strong{letter-spacing:-.5px;font-size:20px;font-weight:700;line-height:28px;display:block}.workspace-brand small{color:var(--color-text-muted);font-size:12px;line-height:18px;display:block}.workspace-shell .organisation-navigation,.workspace-drawer .organisation-navigation{margin:0 0 16px;padding:0}.workspace-shell .organisation-switch,.workspace-drawer .organisation-switch{border-radius:10px;min-height:64px;padding:12px}.workspace-shell .organisation-switch-copy strong,.workspace-drawer .organisation-switch-copy strong{font-size:14px;line-height:22px}.workspace-nav-label{color:var(--color-text-muted);padding:8px 12px;font-size:12px}.workspace-shell .sidebar-link,.workspace-drawer .sidebar-link{white-space:normal;border-radius:10px;align-items:center;gap:12px;min-height:44px;margin:2px 0;padding:10px 12px;font-size:14px;font-weight:500;line-height:22px;display:flex}.workspace-shell .sidebar-link.active,.workspace-drawer .sidebar-link.active{background:var(--color-nav-active);color:var(--color-primary);box-shadow:none;font-weight:600}.workspace-staff-nav{flex-direction:column;flex:1;gap:2px;display:flex}.workspace-sidebar-footer{border-top:1px solid var(--color-border);align-items:center;gap:12px;margin-top:auto;padding:16px 8px 0;display:flex}.workspace-sidebar-footer>span:last-child{min-width:0}.workspace-sidebar-footer strong{overflow-wrap:anywhere;font-size:14px;display:block}.workspace-sidebar-footer small{color:var(--color-text-muted);font-size:12px;display:block}.workspace-avatar{background:var(--color-nav-active);width:36px;height:36px;color:var(--color-primary);border-radius:10px;flex:none;place-items:center;font-weight:600;display:grid}.workspace-main{flex:1;min-width:0}.workspace-topbar{border-bottom:1px solid var(--color-border);background:var(--color-bg-card);justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding:16px 32px;display:flex}.workspace-context{overflow-wrap:anywhere;min-width:0;font-weight:600}.workspace-header-actions{flex:none;align-items:center;gap:12px;display:flex}.workspace-account{border:1px solid var(--color-border);text-align:left;background:var(--color-bg-card);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex}.workspace-account-copy{min-width:0;max-width:220px;display:block}.workspace-account-copy strong,.workspace-account-copy small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.workspace-account-copy small{color:var(--color-text-muted);font-size:12px;line-height:18px}.workspace-skip{z-index:100;background:var(--color-bg-card);padding:12px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.workspace-skip:focus{transform:none}.web-content{width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:32px}.web-content--wide{max-width:none}.web-content h1{letter-spacing:-.5px;font-size:28px;font-weight:700;line-height:36px}:is(.web-content>div>div:has(>h1),.web-content>div>header){margin-bottom:24px}.web-content input:not([type=checkbox]):not([type=radio]),.web-content select,.web-content textarea{border-radius:10px;font-size:14px;line-height:22px}.web-content table{font-variant-numeric:tabular-nums;font-size:14px;line-height:22px}.web-content table th{text-align:left;white-space:nowrap;background:var(--color-bg-elevated);font-weight:600}.web-content table td,.web-content table th{padding:12px 16px}.web-content table td{vertical-align:middle}.web-content .text-xs{font-size:12px;line-height:18px}.web-content .text-sm{font-size:14px;line-height:22px}.web-page-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.web-page-header h1{margin:0}.web-page-header p{color:var(--color-text-secondary);max-width:65ch;margin:8px 0 0}.web-page-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.web-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:24px;display:grid}.web-metric{border:1px solid var(--color-border);background:var(--color-bg-card);min-width:0;box-shadow:0 2px 6px color-mix(in srgb,var(--color-text) 3%,transparent);border-radius:16px;text-decoration:none;display:block;overflow:hidden}.web-metric-heading{border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.web-metric>strong{font-variant-numeric:tabular-nums;padding:20px 16px 4px;font-size:32px;font-weight:700;line-height:40px;display:block}.web-metric>small{color:var(--color-text-muted);padding:0 16px 20px;font-size:12px;line-height:18px;display:block}.web-metric:hover{border-color:var(--color-primary)}.web-panel{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:16px;min-width:0;margin-bottom:24px;padding:24px}.web-panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.web-panel h2{margin:0;font-size:18px;font-weight:600;line-height:26px}.web-panel-header p{color:var(--color-text-muted);margin:4px 0 0;font-size:12px;line-height:18px}.web-dashboard-charts{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px;display:grid}.web-dashboard-lower{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;display:grid}.web-chart{width:100%;min-width:0;height:280px}.web-chart-note{color:var(--color-text-muted);margin-top:16px;font-size:12px;line-height:18px}.web-table-scroll{max-width:100%;overflow-x:auto}.web-table-scroll table{border-collapse:collapse;width:100%}.web-table-scroll td,.web-table-scroll th{border-bottom:1px solid var(--color-border)}.web-empty{text-align:center;color:var(--color-text-muted);justify-items:center;gap:8px;padding:32px 16px;display:grid}.web-empty h3{color:var(--color-text);margin:0;font-size:14px;font-weight:600;line-height:22px}.web-empty p{max-width:45ch;margin:0}.web-error{border:1px solid var(--color-border);border-left:3px solid var(--color-danger);background:var(--color-bg-card);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:16px;display:flex}.web-error button{border:1px solid var(--color-border);white-space:nowrap;border-radius:10px;padding:8px 12px}.web-record-list{gap:12px;display:grid}.web-record{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.web-record strong{overflow-wrap:anywhere;font-size:14px;line-height:22px}.web-record small{color:var(--color-text-muted);margin-top:4px;font-size:12px;line-height:18px;display:block}.web-status{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 8%,var(--card));border:1px solid color-mix(in srgb,var(--color-success) 30%,var(--card));white-space:nowrap;border-radius:6px;flex:none;align-items:center;gap:6px;padding:5px 9px;font-size:12px;font-weight:600;line-height:18px;display:inline-flex}.web-status--warning{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 8%,var(--card));border-color:color-mix(in srgb,var(--color-danger) 30%,var(--card))}.web-status--break{color:var(--color-text);background:color-mix(in srgb,var(--color-primary) 12%,var(--card));border-color:var(--color-primary)}.dark .web-status,.dark .web-status--warning{color:#fcfcfc}.web-actions{flex-wrap:wrap;gap:12px;display:flex}.web-actions a{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:10px;padding:10px 16px;font-weight:600}.workspace-shell .mobile-menu-btn{display:none}@media (max-width:1200px){.web-metrics{gap:16px}.workspace-account-copy{max-width:160px}}@media (max-width:1023px){.workspace-shell .sidebar--desktop{display:none}.workspace-shell .mobile-menu-btn{z-index:30;width:44px;height:44px;display:flex;position:absolute;top:18px;left:16px;right:auto}.workspace-topbar{min-height:64px;padding:16px 16px 16px 76px}.workspace-context{max-width:40%}.workspace-account-copy{display:none}.workspace-account{padding:8px}.workspace-header-actions{gap:8px}.web-content{padding:24px}.web-dashboard-charts,.web-dashboard-lower{grid-template-columns:1fr}.web-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-drawer{width:280px!important;max-width:calc(100vw - 32px)!important;padding-top:40px!important}.workspace-drawer .organisation-navigation{border:0}.workspace-drawer .workspace-staff-nav{overflow-y:auto}}@media (max-width:600px){:root{--web-panel-space:16px;--web-gap:16px}.web-content{padding:24px 16px}.web-content h1,h1{font-size:24px;line-height:32px}.web-page-header{flex-direction:column;gap:16px}.web-panel{margin-bottom:16px;padding:16px}.web-panel-header{flex-wrap:wrap;margin-bottom:16px}.web-metrics{gap:12px;margin-bottom:16px}.web-metric-heading{align-items:flex-start;padding:12px;font-size:12px}.web-metric>strong{padding:16px 12px 4px;font-size:28px;line-height:36px}.web-metric>small{padding:0 12px 16px}.web-dashboard-charts,.web-dashboard-lower{gap:0}.web-chart{height:240px}.workspace-context{font-size:12px}.workspace-account>svg{display:none}.workspace-avatar{width:30px;height:30px}.workspace-account{border:0;padding:6px}.workspace-header-actions{gap:4px}.web-error{flex-direction:column;align-items:flex-start}.web-record{align-items:flex-start}.web-record>div{min-width:0}.web-content button,.web-content [data-slot=button],[data-slot=dialog-content] button,[data-slot=alert-dialog-content] button{min-height:44px}.web-content [data-slot=card]{--card-spacing:16px}.web-content table td,.web-content table th{padding:12px}.web-content input:not([type=checkbox]):not([type=radio]),.web-content select{min-height:44px}[data-slot=dialog-content],[data-slot=alert-dialog-content]{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.staff-dashboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.staff-dashboard>.web-page-header{grid-column:1/-1;margin-bottom:0}.staff-clock-panel{gap:24px;display:grid}.staff-clock-panel>div:first-of-type{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:16px;padding:24px}.staff-dashboard h3{text-transform:none;letter-spacing:normal;font-size:18px;font-weight:600;line-height:26px}.attendance-dashboard{max-width:960px}.roster-mobile-view,.roster-agenda{display:none}.roster-calendar{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:16px;overflow-x:auto}.roster-week-grid{grid-template-columns:repeat(7,minmax(160px,1fr));min-width:1120px;display:grid}.roster-day{border-right:1px solid var(--color-border);min-width:0}.roster-day:last-child{border-right:0}.roster-day>header{text-align:center;border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated);min-height:90px;padding:16px 8px}.roster-day h3{margin:0;font-size:14px;font-weight:600;line-height:22px}.roster-day time,.roster-day header small{color:var(--color-text-muted);margin-top:4px;font-size:12px;line-height:18px;display:block}.roster-day--weekend{background:color-mix(in srgb,var(--color-primary-light) 10%,var(--color-bg-card))}.roster-day--weekend>header,.roster-agenda--weekend{background:color-mix(in srgb,var(--color-primary-light) 20%,var(--color-bg-card))}.roster-day--today>header{background:var(--color-nav-active);color:var(--color-primary)}.roster-day-shifts{flex-direction:column;gap:12px;min-height:300px;padding:12px 8px;display:flex}.roster-shift{border:1px solid var(--color-border);border-left:3px solid var(--color-primary);background:var(--color-bg-card);min-width:0;box-shadow:0 1px 3px color-mix(in srgb,var(--color-text) 3%,transparent);border-radius:10px;margin-bottom:8px;position:relative}.roster-shift--draft{border-left-color:var(--color-warning)}.roster-shift-edit{text-align:left;cursor:pointer;border-radius:10px;width:100%;padding:12px 32px 12px 12px;display:block}.roster-shift-edit strong{overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:22px;display:block}.roster-shift-edit span{color:var(--color-text-secondary);font-size:12px;line-height:18px;display:block}.roster-shift-edit small{color:var(--color-text-muted);align-items:center;gap:4px;margin-top:6px;font-size:12px;line-height:18px;display:flex}.roster-shift-edit small.roster-draft-label{color:var(--color-warning)}.roster-shift-delete{width:28px;height:28px;color:var(--color-text-muted);border-radius:6px;place-items:center;display:grid;position:absolute;top:4px;right:4px}.roster-shift-delete:hover{color:var(--color-danger);background:var(--color-bg-elevated)}.roster-day-shifts>[data-slot=button]{margin-top:auto;font-size:12px}@media (max-width:1023px){.staff-dashboard{grid-template-columns:1fr}.staff-clock-panel{width:100%;max-width:680px}.roster-mobile-view{gap:12px;margin-bottom:16px;display:flex}.roster-calendar{display:none}.roster-calendar--visible,.roster-agenda{display:block}.roster-agenda--hidden{display:none}.roster-shift-delete{width:44px;height:44px}.roster-shift-edit{padding-right:52px}.roster-calendar:focus-visible{outline-offset:3px}}.web-content h2{text-transform:none;letter-spacing:normal;font-size:18px;font-weight:600;line-height:26px}.web-directory-row{flex-wrap:wrap;gap:16px}.web-directory-row>div{min-width:0}.web-directory-row>div:first-child{flex:1;min-width:180px}.web-directory-row>div:last-child{flex-wrap:wrap;justify-content:flex-end}.web-directory-row p{overflow-wrap:anywhere}.web-content [data-slot=input-group]{border-radius:10px;min-height:44px}.web-content form{font-size:14px;line-height:22px}.web-content form label{font-size:14px;font-weight:500;line-height:22px}.workspace-shell .organisation-switch-copy>span,.workspace-drawer .organisation-switch-copy>span{font-size:12px;line-height:18px}@media (max-width:600px){.web-directory-row>div:last-child{justify-content:flex-start;width:100%}.web-directory-row [data-slot=avatar]{flex-shrink:0}.web-content>div>div:has(>h1){flex-wrap:wrap;gap:16px}}.web-support-form{gap:0;max-width:960px;display:grid}.web-support-form form{gap:16px;margin-top:24px;display:grid}.web-support-form textarea,.web-support-form select{background:var(--color-bg-card);color:var(--color-text)}.web-account-panels{gap:24px;max-width:960px;display:grid}.web-account-form{gap:16px;display:grid}.web-account-form h2{margin:0}.web-account-form p{color:var(--color-text-secondary);max-width:65ch}.web-account-form label{gap:8px;font-weight:500;display:grid}.web-account-form select{border:1px solid var(--color-border);background:var(--color-bg-card);width:100%;min-height:44px;color:var(--color-text);border-radius:10px;padding:10px 12px}.web-account-form button{justify-self:start}@media (max-width:600px){.web-account-panels{gap:16px}.web-account-panels>[data-slot=card]{padding:16px}}.text-primary{color:var(--foreground)}.workspace-topbar{padding-block:10px}.workspace-shell .sidebar-link.active,.workspace-drawer .sidebar-link.active{color:var(--foreground);border-left:3px solid var(--primary)}.workspace-account{background:0 0;border:0}.web-metric-heading{background:0 0;border-bottom:0;padding:16px 20px 0}.web-metric>strong{padding:8px 20px 0;font-size:30px}.web-metric>small{padding:6px 20px 16px}.web-metric,.web-panel,[data-slot=card]{box-shadow:none}.web-content table th{background:color-mix(in srgb,var(--border) 35%,var(--card));color:var(--color-text-secondary);font-size:12px}.web-content table tbody tr:hover{background:color-mix(in srgb,var(--color-primary-light) 7%,var(--card))}.workspace-nav-group{margin-top:16px}.workspace-nav-group h2{color:var(--color-text-secondary);padding:4px 12px;font-size:12px;font-weight:600;line-height:18px}:focus-visible{outline-color:var(--ring)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.roster-view-tabs{gap:8px;margin:16px 0;display:flex}.roster-days-mobile{display:none}.employee-roster-scroll{border:1px solid var(--border);isolation:isolate;background:var(--card);border-radius:16px;max-height:calc(100dvh - 160px);overflow:auto}.employee-roster{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1280px}.employee-roster th,.employee-roster td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top;padding:8px!important}.employee-roster thead th{z-index:2;text-align:center;background:var(--card);height:72px;color:var(--foreground);position:sticky;top:0}.employee-roster th:first-child{background:var(--card);z-index:1;text-align:left;width:224px;position:sticky;left:0;padding:16px!important}.employee-roster thead th:first-child{z-index:3;vertical-align:middle}.employee-roster th strong{font-size:14px;font-weight:600;display:block}.employee-roster th small,.employee-roster time{color:var(--color-text-secondary);margin-top:4px;font-size:12px;display:block}.employee-roster-person{align-items:center;gap:10px;display:flex}.employee-roster-person>div{min-width:0}.employee-roster-person strong{overflow-wrap:anywhere}.employee-initials{background:var(--color-nav-active);border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:grid}.employee-roster td{height:100px}.employee-roster .employee-weekend{background:color-mix(in srgb,var(--color-primary-light) 13%,var(--card))}.employee-roster .employee-today{box-shadow:inset 0 3px var(--primary)}.employee-shift{border:1px solid var(--border);border-left:3px solid var(--primary);background:var(--card);border-radius:6px;align-items:flex-start;min-width:0;margin-bottom:6px;display:flex}.employee-shift-draft{border-left-style:dashed}.employee-shift-main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;min-width:0;padding:8px}.employee-shift-main strong{white-space:nowrap;font-size:13px;display:block}.employee-shift-main span{overflow-wrap:anywhere;color:var(--color-text-secondary);font-size:12px;line-height:18px;display:block}.employee-shift-main small{background:var(--color-nav-active);border-radius:4px;margin-top:5px;padding:2px 5px;font-size:11px;display:inline-block}.employee-add-shift{border:1px dashed var(--border);width:100%;min-height:36px;color:var(--color-text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.employee-add-shift:hover{background:var(--color-nav-active);color:var(--foreground)}.employee-roster-summary{border-top:1px solid var(--border);background:var(--card);z-index:2;flex-wrap:wrap;gap:24px;padding:12px 16px;font-size:12px;display:flex;position:sticky;bottom:0;left:0}@media (max-width:1023px){.employee-roster-desktop,.roster-view-tabs{display:none}.roster-days-mobile{display:block}}.web-attendance-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.web-table-scroll table{font-variant-numeric:tabular-nums}.roster-planning-tools{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:16px;margin-bottom:16px}.roster-planning-tools>summary{cursor:pointer;min-height:44px;padding:16px 24px;font-size:14px;font-weight:600}.roster-planning-tools>div{padding:0 24px 24px}.roster-view-tabs{gap:8px;margin-bottom:16px;display:flex}@media (max-width:1023px){.roster-view-tabs{display:none}.roster-planning-tools>summary{padding:16px}.roster-planning-tools>div{padding:0 16px 16px}}
