:root{--ink:#17213e;--muted:#64708c;--line:#dce3f0;--paper:#fffefe;--canvas:#f4f7fd;--mint:#e8efff;--green:#234a9f;--darkgreen:#234a9f;--coral:#f36622}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:'DM Sans',sans-serif}.app-shell{max-width:1240px;margin:auto;padding:48px 28px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.12em;color:var(--green);margin:0 0 6px}h1,h2{font-family:'Playfair Display',serif;margin:0}h1{font-size:2.3rem}.topbar-actions,.toolbar,.toolbar-right,.dialog-heading,.dialog-actions{display:flex;align-items:center;gap:12px}.sync-status,.signed-in-user{font-size:.84rem;color:var(--muted);padding-right:8px}.signed-in-user{color:var(--green);font-weight:600}.sync-status.connected{color:var(--green)}button{font:inherit;cursor:pointer;border:0}.button{background:var(--darkgreen);color:white;padding:11px 17px;border-radius:8px;font-weight:600;transition:.15s}.button:hover{background:var(--coral)}.button-secondary{background:#e8efff;color:var(--ink)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.summary-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:19px 20px}.summary-card.accent{background:var(--mint);border-color:transparent}.summary-card span,.summary-card small{display:block;color:var(--muted);font-size:.82rem}.summary-card strong{display:block;font-size:1.7rem;margin:8px 0 4px;letter-spacing:-.04em}.content-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.toolbar{justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.month-picker{display:flex;align-items:center;gap:8px}.icon-button{height:32px;width:32px;border-radius:6px;background:#edf2ff;font-size:1.5rem;line-height:1}.month-picker input{border:0;background:transparent;color:var(--ink);font:600 .95rem inherit}.search{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--muted)}.search input{border:0;outline:0;width:180px;font:inherit}.text-button{background:transparent;color:var(--green);font-weight:700}.table-wrap{min-height:300px;position:relative;overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:.72rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;background:#f8faff;padding:13px 20px}td{padding:16px 20px;border-top:1px solid var(--line);font-size:.92rem}td strong{font-weight:600}.role-tag{font-size:.77rem;background:#edf2ff;padding:5px 8px;border-radius:99px;color:#405986;white-space:nowrap}.hours{font-weight:700;color:var(--green);white-space:nowrap}.row-actions{background:transparent;color:var(--muted);font-size:1.15rem;padding:4px 8px}.empty-state{text-align:center;padding:52px 20px}.empty-icon{font-size:2.5rem;color:var(--coral)}.empty-state p,.footnote,.settings-copy,.hint{color:var(--muted)}.empty-state h2{font-size:1.45rem;margin:8px}.footnote{font-size:.8rem;margin:12px 2px}.dialog{width:min(620px,calc(100% - 28px));border:0;border-radius:14px;padding:0;box-shadow:0 24px 70px #14241e55;color:var(--ink)}.dialog::backdrop{background:#0d1f4b66}.dialog form{padding:28px}.dialog-heading{justify-content:space-between;margin-bottom:24px}.dialog h2{font-size:1.7rem}.close-button{background:transparent;color:var(--muted);font-size:1.8rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}label{display:grid;gap:7px;font-size:.84rem;font-weight:600}input{border:1px solid #d7e0f0;border-radius:7px;padding:10px 11px;background:#fff;font:inherit;color:var(--ink)}input:focus{outline:2px solid #bdcdf4;border-color:var(--green)}.calculated-field{background:#f0f4ff;border-radius:7px;padding:10px 12px;display:flex;flex-direction:column}.calculated-field span,.calculated-field small{font-size:.78rem;color:var(--muted)}.calculated-field strong{font-size:1.1rem;color:var(--green);margin:3px 0}.dialog-actions{justify-content:flex-end;margin-top:27px}.settings-copy{line-height:1.45;margin-top:-10px}.settings-dialog label{margin-top:18px}.hint{font-size:.78rem;line-height:1.4}.hint code{color:var(--ink)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:#17213e;color:white;padding:11px 16px;border-radius:8px;transition:.22s;font-size:.88rem;box-shadow:0 6px 22px #0003}#toast.show{transform:translateX(-50%) translateY(0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:760px){.app-shell{padding:26px 14px}.topbar{align-items:flex-start;gap:18px;flex-direction:column}.summary-grid{grid-template-columns:1fr 1fr}.toolbar{align-items:flex-start;flex-direction:column}.toolbar-right{width:100%;justify-content:space-between}.search{flex:1}.search input{width:100%}th,td{padding:13px 12px}.table-wrap{margin-right:0}.form-grid{grid-template-columns:1fr}.sync-status{display:none}}@media(max-width:430px){.summary-grid{grid-template-columns:1fr}.topbar-actions{width:100%;flex-wrap:wrap}.topbar-actions .button{flex:1}}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:26px;background:linear-gradient(135deg,#e7efe8 0%,#f6f4ed 52%,#d8ede0 100%)}.login-panel{width:min(930px,100%);min-height:530px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--paper);border-radius:18px;overflow:hidden;box-shadow:0 25px 80px #183f2c27}.login-intro{padding:60px;background:var(--darkgreen);color:white;position:relative;overflow:hidden}.login-intro:after{content:'';position:absolute;width:390px;height:390px;border:1px solid #a5d6b755;border-radius:50%;right:-200px;bottom:-180px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--mint);color:var(--darkgreen);font-weight:700;margin-bottom:58px}.login-intro .eyebrow{color:#a9d5b9}.login-intro h1{font-size:3rem;line-height:1.06}.login-intro>p:not(.eyebrow){max-width:310px;line-height:1.55;color:#d5e9db;margin:20px 0 38px}.login-feature{font-size:.88rem;margin:14px 0;color:#dff1e5}.login-feature span{color:#a7e0bb;font-weight:700;margin-right:8px}.login-form{padding:68px 56px;align-self:center}.login-form h2{font-size:2rem;margin-bottom:8px}.login-help,.login-note{font-size:.87rem;color:var(--muted);line-height:1.5}.login-form label{margin-top:21px}.password-wrap{position:relative}.password-wrap input{width:100%;padding-right:58px}.password-wrap button{position:absolute;right:7px;top:7px;background:transparent;color:var(--green);font-size:.76rem;font-weight:700;padding:5px}.remember{display:flex!important;align-items:center;grid-template-columns:auto 1fr!important;gap:8px!important;font-weight:500!important;color:var(--muted)}.remember input{margin:0;width:16px;height:16px;accent-color:var(--green)}.login-error{min-height:18px;margin:14px 0 -5px;color:#ae3f35;font-size:.8rem}.login-submit{width:100%;margin-top:20px;padding:13px}.login-note{text-align:center;margin:18px 0 0}@media(max-width:760px){.login-panel{grid-template-columns:1fr}.login-intro{padding:35px}.brand-mark{margin-bottom:32px}.login-intro h1{font-size:2.3rem}.login-intro>p:not(.eyebrow),.login-feature{display:none}.login-form{padding:38px 28px}}
[hidden]{display:none!important}
.login-screen{background:linear-gradient(135deg,#e8efff 0%,#fff8f3 52%,#fbe4d8 100%)}.login-intro:after{border-color:#b9caf555}.login-intro .eyebrow{color:#c9d8ff}.login-intro>p:not(.eyebrow){color:#dbe5ff}.login-feature{color:#edf2ff}.login-feature span{color:var(--coral)}
#today-hours,#week-hours,#month-hours,.hours{color:var(--coral)}
.chart-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 20px 12px;margin-bottom:24px}.chart-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:0 4px}.chart-heading h2{font-size:1.45rem}.chart-month{font-size:.85rem;font-weight:600;color:var(--muted);padding-top:7px}.attendance-chart{display:block;width:100%;height:auto;min-height:210px;overflow:visible}.attendance-chart .chart-grid{stroke:var(--line);stroke-width:1}.attendance-chart .chart-axis{fill:var(--muted);font-family:'DM Sans',sans-serif;font-size:12px}.attendance-chart .chart-bar{fill:var(--coral);transition:fill .15s}.attendance-chart .chart-bar:hover{fill:var(--darkgreen)}@media(max-width:500px){.chart-card{padding:18px 10px 8px}.chart-heading{padding:0 8px}.attendance-chart .chart-axis{font-size:11px}}
.chart-controls{display:flex;align-items:center;gap:10px}.chart-controls select{max-width:180px;border:1px solid var(--line);border-radius:7px;padding:7px 26px 7px 9px;background:var(--paper);color:var(--ink);font:inherit;font-size:.82rem}@media(max-width:500px){.chart-heading{gap:12px;flex-direction:column}.chart-controls{width:100%;justify-content:space-between}.chart-controls select{max-width:60%}}
.brand-mark{width:155px;height:58px;background:transparent;padding:0;display:flex;align-items:center}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}.dashboard-brand{display:flex;align-items:center;gap:14px}.dashboard-logo{display:block;width:126px;height:40px;object-fit:contain;object-position:left center}@media(max-width:500px){.dashboard-brand{gap:8px}.dashboard-logo{width:94px;height:32px}.dashboard-brand h1{font-size:1.8rem}}
.login-form-logo{display:flex;justify-content:center;margin:0 auto 22px}.login-form-logo img{display:block;width:180px;height:58px;object-fit:contain}.login-form>.eyebrow,.login-form>h2,.login-form>.login-help{text-align:center}
.dialog-actions-spacer{flex:1}.button-danger{background:#fce7df;color:#a4391c}.button-danger:hover{background:var(--coral);color:white}
.users-list{border:1px solid var(--line);border-radius:8px;max-height:180px;overflow:auto;margin-bottom:22px}.users-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line);font-size:.88rem}.users-list>div:last-child{border-bottom:0}.users-list span{color:var(--muted)}.user-list-info{display:grid;gap:3px}.users-subheading{font-family:'DM Sans',sans-serif;font-size:1rem;margin:0 0 10px}
.tasks-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:24px}.tasks-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 20px 12px}.tasks-heading h2{font-size:1.45rem}.task-status{font-size:.77rem;padding:5px 8px;border-radius:99px;background:#edf2ff;color:#405986;white-space:nowrap}.task-status.completed{background:#e8f7ee;color:#197248}.task-status.on-hold{background:#fff0e8;color:#a7481c}.eta-locked{font-size:.78rem;color:var(--muted)}.eta-dialog{width:min(440px,calc(100% - 28px))}
.task-status-select{border:1px solid var(--line);border-radius:7px;padding:6px 24px 6px 8px;background:var(--paper);color:var(--ink);font:inherit;font-size:.8rem}
.task-time{font-size:.8rem;color:var(--muted)}
