:root{color-scheme:light dark;--bg: #fbfaf7;--fg: #171412;--muted: #6b635b;--line: #e2ddd5;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-text-size-adjust:100%}@media (prefers-color-scheme: dark){:root{--bg: #14120f;--fg: #f2eee8;--muted: #9b9289;--line: #2d2924}}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg)}.shell{max-width:34rem;margin:0 auto;padding:2rem 1.25rem calc(2rem + env(safe-area-inset-bottom))}h1{margin:0;font-size:2rem;letter-spacing:-.02em}.tagline{margin:.25rem 0 2rem;color:var(--muted)}.status{display:grid;grid-template-columns:7rem 1fr;gap:.5rem 1rem;margin:0;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.status dt{color:var(--muted)}.status dd{margin:0;font-variant-numeric:tabular-nums}.note{margin-top:2rem;color:var(--muted);font-size:.9rem}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.875rem 1.25rem calc(.875rem + env(safe-area-inset-bottom));background:var(--fg);color:var(--bg);font-size:.95rem}.banner-text{margin:0;flex:1 1 14rem}.banner-action{flex:0 0 auto;min-height:44px;padding:0 1.1rem;border:0;border-radius:6px;background:var(--bg);color:var(--fg);font:inherit;font-weight:600;cursor:pointer}.banner-action:focus-visible{outline:3px solid #d9721f;outline-offset:2px}#root{display:flex;flex-direction:column;min-height:100dvh}.queue-status{margin-top:1.5rem;padding:.875rem 1rem;border:1px solid var(--line);border-left:4px solid #d9721f;border-radius:6px;background:color-mix(in srgb,#d9721f 8%,transparent);font-size:.95rem}.queue-line{margin:0}.queue-line+.queue-line{margin-top:.5rem}.queue-warn{color:var(--fg);font-weight:600}.fill-in{display:flex;align-items:flex-start;gap:.75rem;margin:1.25rem 0}.fill-in-box{flex:0 0 auto;width:1.5rem;height:1.5rem;margin-top:.6rem;accent-color:#d9721f}.fill-in-label{display:flex;flex-direction:column;gap:.2rem;min-height:44px;justify-content:center;cursor:pointer;flex:1 1 auto}.fill-in-title{font-weight:600}.fill-in-hint{color:var(--muted);font-size:.9rem}.fill-in-box:focus-visible{outline:3px solid #d9721f;outline-offset:2px}.clock-shell{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0;width:100%;max-width:34rem;margin:0 auto;padding:.75rem 1.25rem calc(1rem + env(safe-area-inset-bottom))}.clock-middle{flex:1;min-height:0;overflow-y:auto}.shift-status{padding:1rem 0 .25rem}.shift-state{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:-.01em}.shift-on .shift-state{color:#1d7a4c}@media (prefers-color-scheme: dark){.shift-on .shift-state{color:#4fc98a}}.shift-elapsed{margin:.25rem 0 0;display:flex;align-items:baseline;gap:.5rem}.shift-elapsed-value{font-size:3.5rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.shift-elapsed-unit{color:var(--muted)}.shift-detail{margin:.5rem 0 0;color:var(--muted)}.clock-controls{display:grid;gap:.75rem}.clock-action{width:100%;min-height:9rem;border:3px solid transparent;border-radius:14px;font:inherit;font-size:2rem;font-weight:700;letter-spacing:.01em;cursor:pointer;display:grid;place-content:center;gap:.25rem}.clock-in{background:#1d7a4c;color:#fff;border-color:#145837}.clock-out{background:#a33a12;color:#fff;border-color:#7a2a0c}.clock-action:disabled{opacity:.65;cursor:progress}.clock-action-label{line-height:1.1}.clock-action-sub{font-size:1rem;font-weight:500;opacity:.9}.clock-action:focus-visible{outline:4px solid #d9721f;outline-offset:3px}.punch-refused{margin:0;padding:.875rem 1rem;border-radius:10px;background:#a31212;color:#fff;font-weight:600}.client-pick{display:grid;gap:.35rem}.client-pick-label{color:var(--muted);font-size:.95rem}.client-pick-select{min-height:56px;padding:0 .75rem;border:2px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit;font-size:1.1rem}.client-pick-select:focus-visible{outline:3px solid #d9721f;outline-offset:2px}.today{border-top:1px solid var(--line);padding-top:.75rem}.today-heading{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.today-empty{margin:0;color:var(--muted)}.today-list{margin:0;padding:0;list-style:none}.today-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.6rem 0;border-bottom:1px solid var(--line)}.today-times{font-size:1.1rem;font-variant-numeric:tabular-nums}.today-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto;color:var(--muted);font-size:.9rem}.today-duration{font-variant-numeric:tabular-nums;color:var(--fg)}.today-open,.today-missing{color:#a33a12;font-weight:600}@media (prefers-color-scheme: dark){.today-open,.today-missing{color:#f08b5a}}.today-fill-in,.today-unsaved,.today-client{padding:.05rem .45rem;border:1px solid var(--line);border-radius:999px}.today-unsaved{border-color:#a33a12;color:#a33a12}@media (prefers-color-scheme: dark){.today-unsaved{border-color:#f08b5a;color:#f08b5a}}.clock-footer{color:var(--muted);font-size:.85rem;padding:1rem 0 .5rem}
