@import url("tokens.css");
@font-face{font-family:"Titillium Web";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/titillium-web-regular.woff2") format("woff2")}
@font-face{font-family:"Titillium Web";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/titillium-web-semibold.woff2") format("woff2")}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-family:"Titillium Web",system-ui,sans-serif;font-synthesis:none;font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-surface)}
body{margin:0;min-width:0}
button,input{font:inherit}
button,a,input,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a{color:var(--color-action);text-underline-offset:3px}
button{cursor:pointer;min-height:44px;border:1px solid var(--color-input-border);border-radius:0;background:var(--color-surface);padding:10px 16px;color:var(--color-action);font-weight:600}
button:hover{background:var(--color-selection)}
button:disabled{color:var(--color-muted);background:var(--color-selection);border-color:var(--color-divider);cursor:not-allowed}
:focus-visible{outline:2px solid var(--color-action);outline-offset:3px;box-shadow:0 0 0 3px var(--color-surface)}
h1,h2,h3,strong,label{font-weight:600}
h1,h2,h3,p,a{overflow-wrap:anywhere}
h1{font-size:44px;line-height:1.12;letter-spacing:-.025em;margin:0 0 14px}
h2{font-size:22px;line-height:1.3;margin:0}
p{margin-top:0}
.shell{width:100%;max-width:var(--page-width);margin:0 auto;padding:0 var(--page-padding)}
.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:22px 0}
.brand{display:flex;align-items:center;gap:16px;min-width:0;color:var(--color-text);font-size:23px;line-height:1.2;font-weight:600;text-decoration:none}
.brand-logo{width:100px;height:auto;flex-shrink:0}
.navigation{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:14px}
.navigation form{margin:0}
.quiet{border:0;background:transparent;padding:8px;font-size:14px}
.account-label{font-size:12px;color:var(--color-muted)}
.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:24px 0;font-size:13px;color:var(--color-muted)}
.site-footer nav{display:flex;gap:16px}
.skip-link{position:absolute;left:16px;top:-100px;z-index:20;background:var(--color-surface);padding:12px}
.skip-link:focus{top:8px}
main{padding:20px 0 28px;min-width:0}
.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:20px 0 30px}
.intro h1{margin-bottom:0}
.eyebrow{font-size:13px;letter-spacing:.08em;color:var(--color-action);font-weight:600;margin:0 0 10px}
.muted{color:var(--color-muted);font-size:14px;line-height:1.5}
.primary{background:var(--color-brand);border:0;color:var(--color-surface);white-space:nowrap}
.primary:hover{background:var(--color-action);border-color:var(--color-action)}
.danger{color:var(--color-error-text);background:var(--color-error-surface);border:0}
.danger:hover{background:#f9cbd3}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{display:flex;flex-direction:column;min-width:0;background:var(--color-selection);border:0;border-radius:0;box-shadow:none;min-height:280px;overflow:hidden}
.card:nth-child(3n+2){background:var(--color-service-graphics)}
.card:nth-child(3n){background:var(--color-service-orders)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 8px}
.card h2{font-size:28px}
.card-head .quiet{font-size:24px;line-height:1;flex-shrink:0}
.card-body{padding:0 16px 12px;flex:1;max-height:470px;overflow:auto}
.entry{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:0;border-radius:0;background:transparent;padding:8px;font-size:15px;color:var(--color-text)}
.entry:hover,.card .quiet:hover{background:rgba(255,255,255,.45)}
.attendance-day{padding:8px 0}
.attendance-day+.attendance-day{margin-top:10px}
.day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 8px 4px;font-size:15px;font-weight:600}
.day-heading time{font-size:12px;font-weight:400;color:var(--color-muted);white-space:nowrap}
.day-entries{display:grid;gap:2px}
.entry .edit-icon{width:16px;height:16px;flex-shrink:0;fill:none;stroke:var(--color-action);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.entry .hours{font-variant-numeric:tabular-nums;font-size:14px;white-space:nowrap;font-weight:400}
.card-footer{padding:8px 24px 18px}
.add-time{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;background:transparent;color:var(--color-action);padding:10px 0;text-align:left}
.add-time::after{content:"→";font-size:20px;line-height:1}
.add-time:hover{background:transparent;color:var(--color-text)}
.empty{padding:12px 8px;color:var(--color-muted);font-size:14px;line-height:1.6}
.empty-state{grid-column:1/-1;background:var(--color-selection);padding:36px 24px;text-align:center;color:var(--color-muted);margin:0}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:4px;font-size:12px;color:var(--color-muted);margin-top:12px}
.pagination .quiet{min-width:40px}
.footnote{font-size:13px;color:var(--color-muted);margin:24px 0 0}
#notice{font-size:14px;color:var(--color-action);margin:0 0 16px}
#notice:empty{display:none}
.error{color:var(--color-error-text);font-size:14px;line-height:1.5}
.error:empty{display:none}
.login{max-width:440px;margin:32px auto 48px;padding:20px 0}
.login h1{font-size:34px}
.login form{border-top:1px solid var(--color-divider);padding-top:4px;margin-top:24px}
.login .primary{width:100%;margin-top:8px}
label{display:block;font-size:14px;margin:18px 0}
input{display:block;width:100%;min-width:0;min-height:44px;margin-top:6px;border:1px solid var(--color-input-border);border-radius:0;padding:10px 12px;font-size:16px;background:var(--color-surface);color:var(--color-text)}
dialog{width:420px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);overflow:auto;padding:24px;border:0;border-radius:0;background:var(--color-surface);color:var(--color-text)}
dialog::backdrop{background:#22222266}
.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.dialog-head .quiet{min-width:44px}
.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.time-fields label{margin-top:0}
.actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}
.actions .primary{margin-left:auto}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.grid{grid-template-columns:1fr}.brand-logo{width:72px}.brand{font-size:20px;gap:12px}.top{gap:12px}.navigation{gap:12px}.intro{align-items:flex-start;flex-direction:column;margin-top:16px}h1{font-size:34px}.login{margin:16px auto 32px}.time-fields{gap:12px}}

.delete-warning{margin:20px 0 0;padding:14px;background:var(--color-error-surface);color:var(--color-error-text);font-size:15px;line-height:1.6}
.login label:has(+input){margin:18px 0 6px}
.login label+input{margin-top:0}
.field-hint{font-size:13px;color:var(--color-muted);margin:6px 0 0}
.form-link{font-size:14px;margin:20px 0 0}
.status{padding:12px 14px;background:var(--color-service-orders);font-size:14px;line-height:1.5}
