:root{--green:#5d963a;--green-dark:#4e7e31;--charcoal:#343136;--ink:#242124;--muted:#737078;--line:#dedde0;--soft:#f6f6f5;--white:#fff;--warn:#b46b10;--danger:#b63c32;--shadow:0 10px 30px rgba(36,33,36,.08)}
*{box-sizing:border-box}html{background:#ececea}body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:#f8f8f7}.app-shell{min-height:100vh;padding-bottom:84px}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:12px 18px}.brand-block{display:flex;align-items:center;gap:12px}.logo-box{width:52px;height:52px;border:1px solid #d7d7d7;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#fff;padding:5px;overflow:hidden}.logo-box img{max-width:100%;max-height:100%;object-fit:contain}.logo-box.large{width:68px;height:68px}.brand-kicker,.eyebrow{font-size:11px;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:var(--green)}.brand-title{font-weight:800;font-size:18px;margin-top:2px}.top-actions{display:flex;align-items:center;gap:10px}.save-state{font-size:12px;color:#5d5b60;display:flex;align-items:center;gap:6px}.save-state .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.save-state.saving .dot{background:#e0a628}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:10px;width:40px;height:40px;font-size:22px;cursor:pointer}.screen{display:none;max-width:980px;margin:0 auto;padding:22px 18px 40px}.screen.active{display:block}.welcome-row,.page-intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px}.welcome-row h1,.page-intro h1{margin:4px 0 0;font-size:30px}.page-intro{display:block}.page-intro p{color:var(--muted);margin:6px 0 0}.sync-meta{font-size:12px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px}.section-head>div{display:flex;align-items:center;gap:10px}.section-head h2{font-size:19px;margin:0}.section-head.spaced{margin-top:34px}.section-number{width:28px;height:28px;border-radius:7px;background:var(--charcoal);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.count-pill{min-width:28px;height:28px;border-radius:99px;background:#e7f0e1;color:var(--green-dark);display:grid;place-items:center;font-size:12px;font-weight:800}.count-pill.warning{background:#fff0dc;color:var(--warn)}.job-list{display:grid;gap:10px}.job-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.025);display:flex;justify-content:space-between;gap:14px;align-items:center}.job-card:hover{border-color:#c9d9bf}.job-card-main{min-width:0}.job-client{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--green);font-weight:800}.job-project{font-size:18px;font-weight:800;margin:4px 0}.job-desc{font-size:13px;color:var(--muted);line-height:1.4}.job-status{font-size:11px;color:#777;margin-top:8px}.job-open{border:0;border-radius:9px;background:var(--charcoal);color:#fff;padding:10px 14px;font-weight:800;white-space:nowrap;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-tile{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:left;cursor:pointer;min-height:118px;display:flex;flex-direction:column;justify-content:space-between}.form-tile:hover{border-color:var(--green)}.form-icon{font-size:24px}.form-tile b{font-size:17px}.form-tile small{color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{font-size:30px;display:block;margin:4px 0}.admin-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.admin-card-head,.submission-row{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}.admin-card-head h3{margin:0}.submission-row:last-child{border-bottom:0}.submission-row div span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.mini-btn,.text-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;font-weight:700;cursor:pointer}.text-btn{border:0;color:var(--green);padding:4px;background:transparent}.job-hero{background:#fff;border-bottom:4px solid var(--green);display:flex;align-items:center;gap:20px;padding:18px;margin:-22px -18px 20px}.job-hero-text{flex:1;text-align:right}.job-hero h1{margin:4px 0 0;font-size:28px;letter-spacing:-.02em}.job-hero h2{margin:2px 0;color:var(--green);font-size:20px}.hero-meta{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;color:var(--muted);font-size:12px}.form-section{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:14px 0;box-shadow:0 2px 12px rgba(0,0,0,.025)}.form-section-title{display:flex;align-items:center;background:var(--charcoal);color:#fff;border-left:5px solid var(--green);padding:12px 14px;gap:10px}.form-section-title span{width:26px;height:26px;border-radius:7px;background:var(--green);display:grid;place-items:center;font-weight:800}.form-section-title h3{margin:0;font-size:17px}.field-grid{display:grid;grid-template-columns:1fr;gap:0}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid.nested{border:0}.field{padding:14px;border-bottom:1px solid var(--line);min-width:0}.field-grid.two>.field:nth-child(odd){border-right:1px solid var(--line)}.field.wide{grid-column:1/-1}.field>span{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#6e6b71;font-weight:800;margin-bottom:7px}.field input,.field textarea,.field select,.modal-card select,.modal-card textarea{width:100%;border:1px solid #d2d0d4;border-radius:9px;background:#fff;padding:11px 12px;font:inherit;color:var(--ink);outline:none}.field textarea{resize:vertical;min-height:80px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(93,150,58,.12)}.inline-input{display:flex;gap:8px}.field-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.dictate-btn,.ai-btn{border:1px solid #d7d5d9;background:#fafafa;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:750;cursor:pointer}.ai-btn{color:#4f7e34;background:#f4f9f1;border-color:#c9d9bf}.segmented{display:inline-flex;border:1px solid #cbc9cd;border-radius:9px;overflow:hidden}.segmented button{border:0;background:#fff;padding:9px 18px;min-width:74px;font-weight:800;cursor:pointer}.segmented button.selected{background:var(--green);color:#fff}.section-note{padding:0 15px;color:var(--muted);font-size:13px}.photo-list{padding:0 14px}.photo-entry{border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden;background:#fafafa}.photo-entry-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.photo-entry-head b{font-size:13px}.mandatory-tag{font-size:10px;background:#e7f0e1;color:var(--green-dark);border-radius:20px;padding:4px 8px;font-weight:800}.photo-entry-body{padding:12px;display:grid;grid-template-columns:130px 1fr;gap:12px}.photo-upload{height:110px;border:2px dashed #c7c5ca;border-radius:10px;display:grid;place-items:center;color:var(--muted);text-align:center;font-size:12px;cursor:pointer;background:#fff}.photo-upload input{display:none}.photo-caption textarea{width:100%;min-height:75px;border:1px solid #d2d0d4;border-radius:9px;padding:10px;font:inherit}.secondary-btn,.primary-btn{border-radius:10px;padding:11px 14px;font-weight:800;cursor:pointer}.secondary-btn{border:1px solid #cbc9cd;background:#fff;color:var(--ink);margin:0 14px 14px}.primary-btn{border:1px solid var(--green);background:var(--green);color:#fff}.signature-wrap{border:1px solid #d2d0d4;border-radius:10px;overflow:hidden;background:#fff}.signature-wrap canvas{display:block;width:100%;height:160px;touch-action:none}.signature-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:8px 10px;color:var(--muted);font-size:12px}.readonly{background:#fafafa;color:#666}.submit-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0 30px;box-shadow:var(--shadow)}.submit-panel p{margin:4px 0;color:var(--muted);font-size:13px}.submit-actions{display:flex;gap:10px;margin-top:14px}.submit-actions .secondary-btn{margin:0}.danger-link{margin-top:16px;border:0;background:transparent;color:var(--danger);font-weight:800;cursor:pointer;padding:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:72px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);display:flex;justify-content:center;z-index:30;backdrop-filter:blur(10px)}.nav-btn{width:min(180px,33.33%);border:0;background:transparent;color:#777;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}.nav-btn span{font-size:20px}.nav-btn b{font-size:11px}.nav-btn.active{color:var(--green)}.toast{position:fixed;left:50%;bottom:86px;transform:translate(-50%,20px);background:#242124;color:#fff;padding:10px 14px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;z-index:50;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.modal{position:fixed;inset:0;background:rgba(0,0,0,.38);display:grid;place-items:center;z-index:60;padding:20px}.modal.hidden,.hidden{display:none!important}.modal-card{max-width:430px;width:100%;background:#fff;border-radius:16px;padding:20px;box-shadow:var(--shadow)}.modal-card h3{margin-top:0}.modal-card p{color:var(--muted)}.modal-card textarea{margin-top:10px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.modal-actions .secondary-btn{margin:0}
@media(max-width:680px){.topbar{padding:10px 12px}.save-state span:last-child{display:none}.logo-box{width:44px;height:44px}.brand-title{font-size:16px}.screen{padding:16px 12px 28px}.welcome-row{align-items:flex-start}.welcome-row h1,.page-intro h1{font-size:24px}.sync-meta{padding-top:22px}.form-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid .stat:last-child{grid-column:1/-1}.job-card{align-items:flex-start}.job-open{padding:9px 11px}.job-hero{margin:-16px -12px 16px;padding:14px 12px;gap:12px}.logo-box.large{width:58px;height:58px}.job-hero h1{font-size:21px}.job-hero h2{font-size:16px}.hero-meta{font-size:10px}.field-grid.two{grid-template-columns:1fr}.field-grid.two>.field:nth-child(odd){border-right:0}.photo-entry-body{grid-template-columns:1fr}.photo-upload{height:145px}.submit-actions{flex-direction:column}.submit-actions button{width:100%}.submission-row{align-items:flex-start;gap:8px}}
\n.home-tabs{display:flex;gap:8px;margin:14px 0 18px;overflow:auto}.home-tab{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 13px;font-weight:800;white-space:nowrap;cursor:pointer}.home-tab.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.home-tab span{display:inline-block;margin-left:4px;min-width:20px;padding:1px 6px;border-radius:12px;background:#eee;color:#555}.home-tab.active span{background:var(--green);color:#fff}.home-view{display:none}.home-view.active{display:block}.compliance-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff4f2;border:1px solid #e8b2aa;border-left:5px solid var(--danger);border-radius:12px;padding:14px 16px;margin:10px 0 12px}.compliance-banner p{margin:3px 0 0;color:#70504c;font-size:13px}.day-summary{background:#f4f8f1;border:1px solid #d4e2cb;border-radius:10px;padding:10px 12px;color:#456b31;font-size:13px;margin-bottom:12px}.job-date{font-size:11px;color:var(--muted);margin-bottom:3px}.job-meta-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:11px;color:var(--muted)}.overdue-card{border-left:5px solid var(--danger)}.overdue-chip{background:#fff0ee;color:var(--danger);border:1px solid #efc2bd;border-radius:20px;padding:3px 7px;font-weight:800}.count-pill.warning{background:#fff0ee;color:var(--danger)}\n

.login-gate{position:fixed;inset:0;z-index:9999;background:#f4f4f2;display:flex;align-items:center;justify-content:center;padding:20px}.login-gate.hidden{display:none}.login-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:28px;box-shadow:0 18px 60px rgba(0,0,0,.15)}.login-card .logo-box{margin-bottom:18px}.login-card h1{margin:4px 0 8px}.login-card p{margin:0 0 18px;color:#666}.login-card .field{margin-bottom:14px}.login-card .primary-btn{width:100%;margin-top:8px}.login-error{margin-top:12px;padding:10px 12px;border-radius:10px;background:#fff1f1;color:#9c1c1c;font-size:.92rem}.hidden{display:none!important}

.shift-chip{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;background:rgba(255,255,255,.08);font-size:.78rem;font-weight:700;white-space:nowrap}
