:root{--ink:#172019;--paper:#f3efe5;--white:#fff;--line:#d7d1c4;--muted:#6d716b;--accent:#ef6b43;--accent-soft:#ffe0d5;--green:#2f8058;--green-soft:#dff2e7;--amber:#9c680a;--amber-soft:#fff0ca;--red:#a33d32;--red-soft:#ffe1dc;--shadow:0 28px 80px #17201918;--radius:24px;color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink)}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button,a{color:inherit}button{cursor:pointer}.eyebrow{font-size:.7rem;font-weight:900;letter-spacing:.15em;margin:0 0 .65rem;text-transform:uppercase}.eyebrow:before{background:var(--accent);border-radius:9px;content:"";display:inline-block;height:6px;margin-right:8px;width:24px}.button{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:.82rem;font-weight:850;gap:.5rem;justify-content:center;min-height:42px;padding:.65rem 1rem;text-decoration:none}.button.primary{background:var(--ink);border-color:var(--ink);color:#fff}.button.quiet{background:#fff}.button.danger{background:var(--red-soft);border-color:#efb7ae;color:var(--red)}.icon-button{background:transparent;border:0;border-radius:50%;font-size:1.7rem;height:42px;line-height:1;width:42px}.icon-button:hover{background:#ece8df}.app-brand{align-items:center;display:inline-flex;font-size:1rem;font-weight:950;gap:.65rem;letter-spacing:-.035em;text-decoration:none;text-transform:uppercase}.app-brand img{border-radius:10px;height:38px;width:38px}.app-brand.light{color:#fff}.status-bar{background:var(--ink);color:#fff;font-size:.76rem;font-weight:750;left:50%;max-width:calc(100% - 32px);opacity:0;padding:.7rem 1rem;pointer-events:none;position:fixed;top:12px;transform:translate(-50%,-16px);transition:.2s;z-index:100}.status-bar.visible{opacity:1;transform:translate(-50%,0)}.status-bar.error{background:var(--red)}

.auth-view{display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh}.auth-art{background:radial-gradient(circle at 80% 12%,#ffffff24,transparent 24%),linear-gradient(145deg,#172019,#274036);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(2rem,6vw,5.5rem)}.auth-art>div{max-width:720px}.auth-art h1{font-size:clamp(4rem,8vw,8.2rem);letter-spacing:-.08em;line-height:.83;margin:.2em 0}.auth-art p:not(.eyebrow){color:#ffffffb8;font-size:1.18rem;max-width:580px}.auth-art small{color:#ffffff80}.auth-panel{align-items:center;background:#f5f1e8;display:flex;flex-direction:column;justify-content:center;padding:2rem}.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.5rem,4vw,3rem);width:min(480px,100%)}.form-card h2,.dialog-form h2{font-size:2.5rem;letter-spacing:-.055em;margin:.15em 0}.form-intro{color:var(--muted);margin:0 0 2rem}.form-card label,.dialog-form label{display:grid;font-size:.76rem;font-weight:850;gap:.45rem;margin:1rem 0}.form-card input,.dialog-form input,.dialog-form select,.dialog-form textarea{background:#faf9f5;border:1px solid #cfc9bc;border-radius:10px;color:var(--ink);outline:none;padding:.8rem .9rem;width:100%}.form-card input:focus,.dialog-form input:focus,.dialog-form select:focus,.dialog-form textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px #17201912}.form-card .button{margin-top:.8rem;width:100%}.form-error{color:var(--red);font-size:.8rem;min-height:1.2em}.auth-help{color:var(--muted);font-size:.82rem}

.app-shell{min-height:100vh}.sidebar{background:var(--ink);color:#fff;display:flex;flex-direction:column;height:100vh;left:0;padding:24px;position:fixed;top:0;width:270px;z-index:20}.side-nav{display:grid;gap:7px;margin-top:48px}.side-nav button{align-items:center;background:transparent;border:0;border-radius:12px;color:#ffffff94;display:grid;font-size:.85rem;font-weight:800;grid-template-columns:28px 1fr auto;padding:12px;text-align:left}.side-nav button span{font:700 .62rem/1 ui-monospace,monospace}.side-nav button b{background:#ffffff18;border-radius:999px;font-size:.62rem;padding:3px 6px}.side-nav button.active,.side-nav button:hover{background:#ffffff11;color:#fff}.sync-card{align-items:flex-start;border:1px solid #ffffff18;border-radius:14px;display:flex;gap:10px;margin-top:auto;padding:13px}.sync-card i{background:#d2a43b;border-radius:50%;box-shadow:0 0 0 4px #d2a43b22;flex:none;height:8px;margin-top:6px;width:8px}.sync-card i.online{background:#60c68e;box-shadow:0 0 0 4px #60c68e22}.sync-card strong,.sync-card span,.user-card strong,.user-card span{display:block}.sync-card strong{font-size:.73rem}.sync-card span{color:#ffffff80;font-size:.61rem;line-height:1.35;margin-top:2px}.user-card{align-items:center;border-top:1px solid #ffffff17;display:grid;gap:10px;grid-template-columns:34px 1fr auto;margin-top:16px;padding-top:16px}.avatar{background:var(--accent);border-radius:10px;display:grid;font-size:.7rem;font-weight:900;height:34px;place-items:center;width:34px}.user-card strong{font-size:.75rem}.user-card span{color:#ffffff76;font-size:.63rem}.user-card button{background:transparent;border:0;color:#ffffff78}.workspace{margin-left:270px;min-height:100vh}.workspace-head{align-items:center;background:rgba(243,239,229,.91);border-bottom:1px solid var(--line);display:flex;gap:2rem;min-height:120px;padding:22px clamp(1.2rem,4vw,4rem);position:sticky;top:0;z-index:10;backdrop-filter:blur(16px)}.workspace-head h1{font-size:2.4rem;letter-spacing:-.06em;line-height:.95;margin:0}.head-actions{display:flex;gap:8px;margin-left:auto}.mobile-menu{display:none}.workspace-content{padding:clamp(1.2rem,4vw,4rem)}

.summary-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:34px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;min-height:150px;padding:18px}.summary-card span{color:var(--muted);font-size:.68rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.summary-card strong{font-size:3rem;letter-spacing:-.07em;line-height:1;margin-top:auto}.summary-card em{color:var(--muted);font-size:.7rem;font-style:normal}.section-head{align-items:end;display:flex;gap:1rem;margin:32px 0 14px}.section-head h2{font-size:1.65rem;letter-spacing:-.045em;margin:0}.section-head p{color:var(--muted);font-size:.8rem;margin:0}.section-head .button{margin-left:auto}.job-list{display:grid;gap:10px}.job-row{align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;display:grid;gap:14px;grid-template-columns:44px minmax(220px,1.5fr) minmax(130px,.8fr) minmax(120px,.75fr) 90px 28px;padding:14px;text-align:left;width:100%}.job-row:hover{border-color:#aaa397;box-shadow:0 12px 30px #1720190c}.job-index{background:#ede8de;border-radius:10px;display:grid;font:800 .66rem/1 ui-monospace,monospace;height:44px;place-items:center;width:44px}.job-row h3,.job-row p{margin:0}.job-row h3{font-size:.93rem}.job-row p,.job-row small{color:var(--muted);font-size:.7rem}.job-row strong{font-size:.73rem}.status-pill{border-radius:999px;display:inline-flex;font-size:.62rem;font-weight:900;padding:5px 8px;text-transform:uppercase}.status-draft{background:#ece8df;color:#656861}.status-scheduled{background:#e1ebff;color:#315d9b}.status-in_progress{background:var(--amber-soft);color:var(--amber)}.status-awaiting_approval{background:#eee4ff;color:#6a45a8}.status-approved,.status-invoice_ready{background:var(--green-soft);color:var(--green)}.status-closed{background:#e2e5e3;color:#4f5551}.empty-state{background:#fff;border:1px dashed #bdb6a9;border-radius:22px;padding:60px;text-align:center}.empty-state h2{font-size:2.6rem;letter-spacing:-.06em;margin:.2em}.empty-state p{color:var(--muted);margin:0 auto 1.5rem;max-width:520px}.client-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.client-card{background:#fff;border:1px solid var(--line);border-radius:16px;min-height:160px;padding:18px}.client-card h3{margin:.4rem 0}.client-card p{color:var(--muted);font-size:.75rem;margin:.25rem 0}.client-card small{font:700 .62rem/1 ui-monospace,monospace}

.detail-back{background:transparent;border:0;color:var(--muted);font-size:.8rem;font-weight:850;margin-bottom:18px;padding:0}.job-hero{background:var(--ink);border-radius:26px;color:#fff;display:grid;gap:28px;grid-template-columns:1fr 260px;padding:clamp(1.5rem,4vw,3.4rem)}.job-hero h2{font-size:clamp(2.8rem,6vw,6rem);letter-spacing:-.075em;line-height:.88;margin:.2em 0}.job-hero p{color:#ffffffa3;max-width:720px}.job-meta{display:grid;gap:10px}.job-meta div{border-top:1px solid #ffffff20;padding-top:10px}.job-meta span,.job-meta strong{display:block}.job-meta span{color:#ffffff70;font-size:.62rem;text-transform:uppercase}.job-meta strong{font-size:.78rem;margin-top:2px}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 34px}.detail-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr)}.detail-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.detail-panel>header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.detail-panel h3{font-size:1.35rem;letter-spacing:-.04em;margin:0}.detail-panel>header span{color:var(--muted);font-size:.7rem;margin-left:auto}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;gap:10px;grid-template-columns:34px 1fr auto;padding:12px 0;position:relative}.timeline li:not(:last-child):before{background:var(--line);content:"";height:calc(100% - 22px);left:16px;position:absolute;top:34px;width:1px}.evidence-icon{background:#eee9df;border-radius:10px;display:grid;font-size:.58rem;font-weight:950;height:34px;place-items:center;width:34px;z-index:1}.evidence-icon.photo{background:var(--accent-soft);color:#a44025}.evidence-icon.reading{background:#dcecff;color:#2c6095}.timeline h4,.timeline p{margin:0}.timeline h4{font-size:.83rem}.timeline p{color:var(--muted);font-size:.7rem;margin-top:3px}.timeline time{color:var(--muted);font-size:.62rem}.timeline img{border-radius:10px;display:block;margin-top:9px;max-height:240px;max-width:100%;object-fit:cover}.estimate-table{border-collapse:collapse;width:100%}.estimate-table th,.estimate-table td{border-bottom:1px solid #e2ddd3;font-size:.72rem;padding:10px;text-align:left}.estimate-table th{color:var(--muted);font-size:.6rem;text-transform:uppercase}.estimate-table td:last-child,.estimate-table th:last-child{text-align:right}.estimate-total{display:flex;font-size:.8rem;justify-content:space-between;padding:16px 10px}.estimate-total strong{font-size:1.3rem}.approval-history{display:grid;gap:8px}.approval-item{background:#f4f1ea;border-radius:12px;font-size:.7rem;padding:10px}.approval-item strong,.approval-item span{display:block}.approval-item span{color:var(--muted)}.queue-list{display:grid;gap:8px}.queue-item{align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;display:grid;gap:12px;grid-template-columns:36px 1fr auto;padding:12px}.queue-item i{background:var(--amber-soft);border-radius:10px;color:var(--amber);display:grid;font-size:.62rem;font-style:normal;font-weight:900;height:36px;place-items:center}.queue-item strong,.queue-item span{display:block}.queue-item strong{font-size:.78rem}.queue-item span{color:var(--muted);font-size:.68rem}.truth-strip{background:var(--green-soft);border:1px solid #add8be;border-radius:14px;color:#245f43;font-size:.76rem;margin-bottom:20px;padding:13px}

dialog{background:transparent;border:0;max-height:calc(100vh - 32px);padding:0;width:min(620px,calc(100% - 24px))}dialog::backdrop{background:#101713aa;backdrop-filter:blur(7px)}.dialog-form{background:#fff;border-radius:24px;box-shadow:var(--shadow);max-height:calc(100vh - 32px);overflow:auto;padding:24px}.dialog-form>header{align-items:start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-bottom:18px;padding-bottom:16px}.dialog-form>header h2{font-size:2rem}.dialog-form>footer{align-items:center;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;margin-top:20px;padding-top:16px}.field-pair{display:grid;gap:12px;grid-template-columns:1fr 1fr}.offline-note{background:#f2eee5;border-radius:10px;color:var(--muted);font-size:.7rem;padding:10px}.segmented{border:0;display:flex;gap:7px;margin:0;padding:0}.segmented legend{font-size:.76rem;font-weight:850;margin-bottom:8px}.segmented label{margin:0}.segmented input{clip:rect(0 0 0 0);position:absolute}.segmented span{background:#f2eee5;border:1px solid var(--line);border-radius:999px;display:block;font-size:.72rem;padding:7px 12px}.segmented input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}

.approval-view{min-height:100vh}.approval-view>header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:22px clamp(1.2rem,6vw,5rem)}.approval-view>header>span{font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.approval-view main{margin:0 auto;max-width:900px;padding:clamp(2rem,7vw,7rem) 1.2rem}.approval-card{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.approval-card>header{background:var(--ink);color:#fff;padding:clamp(1.5rem,5vw,4rem)}.approval-card h1{font-size:clamp(3rem,7vw,6rem);letter-spacing:-.075em;line-height:.88;margin:.2em 0}.approval-card>header p{color:#ffffffa6}.approval-summary{display:grid;gap:12px;grid-template-columns:repeat(3,1fr);padding:20px}.approval-summary div{background:#f3efe7;border-radius:14px;min-height:120px;padding:14px}.approval-summary span,.approval-summary strong{display:block}.approval-summary span{color:var(--muted);font-size:.62rem;text-transform:uppercase}.approval-summary strong{font-size:1.5rem;margin-top:24px}.approval-form{border-top:1px solid var(--line);padding:20px}.approval-form label{display:grid;font-size:.76rem;font-weight:850;gap:5px;margin:12px 0}.approval-form input,.approval-form textarea{border:1px solid var(--line);border-radius:10px;padding:12px;width:100%}.approval-form .button{width:100%}.approved-state{background:var(--green-soft);border-radius:16px;color:var(--green);padding:28px;text-align:center}

[hidden]{display:none!important}@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,1fr)}.client-grid{grid-template-columns:repeat(2,1fr)}.job-row{grid-template-columns:44px 1fr .7fr 90px 24px}.job-row>*:nth-child(4){display:none}.detail-grid{grid-template-columns:1fr}}@media(max-width:820px){.auth-view{grid-template-columns:1fr}.auth-art{min-height:44vh;padding:2rem}.auth-art h1{font-size:4.2rem}.auth-panel{min-height:56vh}.sidebar{box-shadow:20px 0 50px #10171344;transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.workspace-head{min-height:94px;padding:14px 16px}.mobile-menu{background:#fff;border:1px solid var(--line);border-radius:999px;display:block;font-size:.72rem;font-weight:850;padding:8px 10px}.workspace-head .eyebrow{display:none}.workspace-head h1{font-size:1.8rem}.head-actions .button{display:none}.head-actions [data-action="new-punch"]{display:inline-flex}.workspace-content{padding:16px}.job-row{grid-template-columns:38px 1fr 86px 18px}.job-row>*:nth-child(3){display:none}.job-index{height:38px;width:38px}.job-hero{grid-template-columns:1fr}.job-hero h2{font-size:3.7rem}.client-grid{grid-template-columns:1fr}}@media(max-width:520px){.auth-art h1{font-size:3.4rem}.summary-grid{grid-template-columns:1fr 1fr}.summary-card{min-height:125px}.summary-card strong{font-size:2.4rem}.job-row{padding:10px}.job-row .status-pill{font-size:.52rem}.field-pair{grid-template-columns:1fr}.approval-summary{grid-template-columns:1fr}.approval-summary div{min-height:90px}.approval-summary strong{margin-top:14px}.detail-actions .button{flex:1}.dialog-form{padding:18px}}@media print{.sidebar,.workspace-head,.detail-actions,.detail-back,.status-bar{display:none!important}.workspace{margin:0}.workspace-content{padding:0}.job-hero{background:#fff;border:1px solid #aaa;color:#000}.job-hero p,.job-meta span{color:#555}.detail-grid{grid-template-columns:1fr}.detail-panel{break-inside:avoid;box-shadow:none}}

/* Clockstead application identity and timekeeping components. */
:root{--ink:#17211c;--paper:#edf3ed;--line:#cad7cc;--muted:#617066;--accent:#ef8354;--accent-soft:#ffe1d3;--green:#28734f;--green-soft:#dff2e6}
.slotstead-art{background:radial-gradient(circle at 75% 16%,#ef83542f,transparent 25%),linear-gradient(145deg,#17211c,#365348)}
.sidebar>.button.quiet{color:var(--ink);margin-top:16px;width:100%}
.setup-actions{display:flex;flex-wrap:wrap;gap:7px;margin-left:auto}.setup-group{margin-top:2rem}.setup-group>h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.booking-row{grid-template-columns:44px minmax(210px,1.4fr) minmax(180px,1fr) minmax(120px,.7fr) 100px 28px}
.status-pending{background:#fff0ca;color:#8a5a06}.status-confirmed{background:#e0f1e7;color:#2d674b}.status-arrived{background:#dcecff;color:#2c6095}.status-completed{background:#e2e5e3;color:#4f5551}.status-no_show,.status-cancelled{background:#ffe1dc;color:#a33d32}
.status-open{background:#ffe1dc;color:#a33d32}.status-correction_submitted{background:#fff0ca;color:#8a5a06}.status-resolved,.status-acknowledged{background:#e0f1e7;color:#2d674b}
.booking-facts{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:18px}.booking-facts div{background:#f4f0e8;border-radius:12px;padding:12px}.booking-facts span,.booking-facts strong{display:block}.booking-facts span{color:var(--muted);font-size:.62rem;text-transform:uppercase}.booking-facts strong{font-size:.8rem;margin-top:4px}
.detail-footer{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end;margin-top:18px}.dialog-form>label{display:grid;font-size:.76rem;font-weight:850;gap:.45rem;margin:1rem 0}.dialog-form select,.dialog-form textarea{background:#faf9f5;border:1px solid #cfc9bc;border-radius:10px;color:var(--ink);outline:none;padding:.8rem .9rem;width:100%}
.approval-card{padding:clamp(1.5rem,5vw,4rem)}.approval-card h1{margin:.2em 0}.approval-card dl{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin:2rem 0}.approval-card dl div{background:#f4f0e8;border-radius:14px;padding:14px}.approval-card dt{color:var(--muted);font-size:.62rem;text-transform:uppercase}.approval-card dd{font-size:1rem;font-weight:800;margin:.5rem 0 0}.approval-card form label{display:grid;font-size:.76rem;font-weight:850;gap:.45rem;margin:1rem 0}.approval-card input,.approval-card textarea{border:1px solid var(--line);border-radius:10px;padding:12px;width:100%}.approval-actions{display:flex;gap:8px;justify-content:flex-end}.approval-result{background:var(--green-soft);border-radius:16px;color:var(--green);display:grid;gap:5px;padding:28px;text-align:center}
@media(max-width:1050px){.booking-row{grid-template-columns:44px 1fr 160px 90px 28px}.booking-row>span:nth-child(4){display:none}.setup-actions{margin-left:0}}
@media(max-width:720px){.booking-row{grid-template-columns:38px 1fr 26px}.booking-row>span:nth-child(3),.booking-row>span:nth-child(4),.booking-row>span:nth-child(5){display:none}.booking-facts,.approval-card dl{grid-template-columns:1fr}.setup-actions{width:100%}.setup-actions .button{flex:1 1 42%}}
