:root{--gold:#c9a227;--black:#171717;--bg:#f4f5f7;--line:#e5e7eb;--muted:#71717a}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:#222}.hidden{display:none!important}.login-view{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#111,#2a2a2a);padding:20px}.login-card{width:min(420px,94vw);background:#fff;padding:32px;border-radius:18px;box-shadow:0 24px 80px #0008}.brand-mark{width:68px;height:68px;background:var(--gold);display:grid;place-items:center;border-radius:16px;font-weight:900;font-size:24px;margin:auto}.brand-mark.small{width:42px;height:42px;font-size:16px;margin:0;border-radius:11px}.login-card h1,.login-card p{text-align:center}.login-card p{color:var(--muted);margin-top:-6px}label{display:block;font-weight:700;font-size:13px;margin:12px 0 5px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d6d8dc;border-radius:9px;background:#fff;font:inherit}textarea{min-height:90px;resize:vertical}.primary,.secondary{border-radius:9px;padding:10px 14px;font-weight:800;cursor:pointer}.primary{background:var(--gold);border:0;color:#171717}.secondary{background:#fff;border:1px solid #d6d8dc}.login-card .primary{width:100%;margin-top:18px}.link-btn{width:100%;border:0;background:none;color:#78620f;padding:10px;cursor:pointer}.link{border:0;background:none;color:#78620f;font-weight:800;cursor:pointer;padding:5px}.message{min-height:20px;text-align:center;color:#a00;font-size:13px}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--black);color:#fff;padding:16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:10px;align-items:center;border-bottom:1px solid #333;padding-bottom:16px}.brand span{display:block;color:#aaa;font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:4px;padding-top:12px}.sidebar nav button,.logout{border:0;background:none;color:#bbb;text-align:left;padding:11px;border-radius:8px;cursor:pointer}.sidebar nav button.active,.sidebar nav button:hover{background:#2b2b2b;color:#fff}.logout{margin-top:auto;border-top:1px solid #333}.main{grid-column:2}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:10}.topbar h2{margin:0}.topbar small{color:var(--muted)}.menu{display:none;border:0;background:none;font-size:22px;margin-right:8px}.user-chip{margin-left:auto;display:flex;gap:9px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:#222;color:#fff;display:grid;place-items:center;font-size:12px}.user-chip small{display:block}.content{padding:24px;max-width:1450px;margin:auto}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.hero h1{margin:0 0 4px}.hero p{margin:0;color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.card,.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.kpi span{display:block;color:var(--muted);font-size:12px}.kpi b{display:block;font-size:26px;margin-top:5px}.grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.row:last-child{border:0}.grow{flex:1}.row p{margin:3px 0 0;color:var(--muted);font-size:13px}.muted{color:var(--muted)}.pill{font-size:11px;background:#fff1b5;border-radius:999px;padding:5px 8px}.empty{color:var(--muted);text-align:center;padding:35px 12px}.section-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.section-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.section-card h3{margin:0 0 6px}.section-card p{margin:0;color:var(--muted)}.modal{position:fixed;inset:0;background:#0009;z-index:100;display:grid;place-items:center;padding:15px}.modal-card{width:min(650px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:15px;padding:20px;box-shadow:0 25px 80px #0008}.modal-card>.primary{margin-top:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:8px}.modal-head h2{margin:0}.workflow-card{margin-bottom:14px}.workflow-head,.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.workflow-head h3,.card-head h3{margin:0}.workflow-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.workflow-progress{height:10px;background:#ececec;border-radius:999px;overflow:hidden;margin:14px 0}.workflow-progress div{height:100%;background:var(--gold);transition:width .2s}.milestone-track{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.milestone{background:#f7f7f8;border:1px solid var(--line);border-radius:9px;padding:10px;text-align:center;color:#777;min-height:70px}.milestone span{display:block;font-size:19px;font-weight:900}.milestone small{display:block;margin-top:5px}.milestone.done{background:#fff7cf;border-color:#dfca62;color:#493b00}.check-button{width:30px;height:30px;border-radius:50%;border:1px solid #cfd2d6;background:#fff;cursor:pointer;font-weight:900;flex:0 0 auto}.completed-row{opacity:.62}.completed-row b{text-decoration:line-through}.field-clock{background:#171717;color:#fff;border-radius:14px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.field-clock span{display:block;font-size:12px;letter-spacing:.08em;color:#bbb}.field-clock b{display:block;font-size:18px;margin-top:4px}.field-clock.clocked-in{box-shadow:inset 4px 0 0 var(--gold)}.field-sections{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-job{border:1px solid var(--line);border-radius:10px;padding:13px;margin:9px 0}.field-job b,.field-job span,.field-job small{display:block}.field-job span{margin:4px 0;color:#555}.field-job small{color:var(--muted)}.time-clock-card{min-height:260px}.clock-big{font-size:26px;font-weight:900;margin:28px 0}.big-action{width:100%;padding:15px;font-size:17px;margin-top:16px}@media(max-width:1050px){.milestone-track{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.section-grid{grid-template-columns:1fr 1fr}.grid,.field-sections{grid-template-columns:1fr}}@media(max-width:700px){.app{display:block}.sidebar{transform:translateX(-100%);transition:.2s;width:270px}.sidebar.open{transform:none}.main{grid-column:auto}.menu{display:block}.topbar{padding:0 13px}.content{padding:15px}.user-chip div:last-child{display:none}.section-grid,.form-grid{grid-template-columns:1fr}.hero{display:block}.hero button{margin-top:10px}.kpis{grid-template-columns:1fr 1fr}.row{align-items:flex-start;flex-wrap:wrap}.milestone-track{grid-template-columns:1fr 1fr}.workflow-head,.card-head{align-items:flex-start}.field-clock{align-items:flex-start;flex-direction:column}.field-clock .primary{width:100%}}
.install-help{margin:0 0 8px;color:var(--muted);font-size:13px;line-height:1.45;text-align:center}.login-view{min-height:100dvh;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.sidebar{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.topbar{height:calc(70px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left))}.content{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom))}@media(max-width:700px){.topbar{height:calc(70px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(13px,env(safe-area-inset-right)) 0 max(13px,env(safe-area-inset-left))}.content{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right));padding-bottom:max(15px,env(safe-area-inset-bottom))}.topbar-badge{margin-left:8px;max-width:28vw}}
.setup-context{margin:18px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff7cf;text-align:left}.setup-context b,.setup-context span{display:block}.setup-context span{color:#594700;font-size:13px;margin-top:3px}.setup-help{font-size:13px!important;margin:12px 0 0!important;text-align:left!important;line-height:1.45}.password-row{display:flex;gap:8px;align-items:stretch}.password-row input{min-width:0}.password-toggle{flex:0 0 auto;padding:8px 10px}.setup-card #setupSignIn{width:100%;margin-top:14px}@media(max-width:700px){.login-card{padding:24px 20px}.setup-card{width:min(440px,94vw)}.password-row input{font-size:16px}.setup-card .primary{min-height:50px}}
.employee-invite-card{margin-bottom:14px}.employee-message{min-height:22px;margin-top:12px;color:#594700;font-size:14px}.employee-list h3{margin-top:0}.employee-card{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.employee-card:last-child{border-bottom:0}.employee-card p{margin:4px 0;color:var(--muted);font-size:14px}.employee-state{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.employee-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.employee-card{flex-direction:column;gap:8px}.employee-state,.employee-actions{justify-content:flex-start}.employee-actions button{min-height:44px}.employee-invite-card .primary{width:100%;min-height:50px}}

.job-account,.job-site{border:1px solid var(--line);border-radius:10px;background:#fff}.job-account{margin:12px 0}.job-site{margin:10px 12px;background:#fafafa}.job-account>summary,.job-site>summary{cursor:pointer;list-style:none;padding:12px 14px}.job-account>summary::-webkit-details-marker,.job-site>summary::-webkit-details-marker{display:none}.job-account>summary:before,.job-site>summary:before{content:"▸";display:inline-block;margin-right:8px;color:#78620f;transition:transform .15s}.job-account[open]>summary:before,.job-site[open]>summary:before{transform:rotate(90deg)}.job-account-sites{padding:0 0 4px}.job-site-jobs{padding:0 12px 6px}.job-site-jobs .row:first-child{border-top:1px solid var(--line)}@media(max-width:700px){.job-account>summary,.job-site>summary{padding:12px}.job-site{margin:8px}.job-site-jobs{padding:0 10px 4px}}
@media(max-width:700px){.topbar>div:first-of-type{min-width:0;flex:1}.topbar #pageTitle{font-size:22px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar>div:first-of-type small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .user-chip{flex:0 0 auto}.topbar-badge{flex:0 1 auto}}

.duplicate-review-intro{margin:0 0 14px;line-height:1.5}.duplicate-group{border:1px solid var(--line);border-radius:12px;padding:16px;margin:0 0 14px;background:#fff}.duplicate-group-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.duplicate-group-head h3{margin:7px 0 2px}.duplicate-group-head p{margin:0;color:var(--muted);font-size:13px}.duplicate-member-list{margin:12px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.duplicate-member{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:11px 12px;border-bottom:1px solid var(--line);background:#fafafa}.duplicate-member:last-child{border-bottom:0}.duplicate-keep,.duplicate-merge{display:flex;align-items:center;gap:9px;margin:0;cursor:pointer}.duplicate-keep input,.duplicate-merge input{width:auto;min-height:auto}.duplicate-keep span{min-width:0}.duplicate-keep b,.duplicate-keep small{display:block}.duplicate-keep small{margin-top:3px;color:var(--muted);font-weight:400}.duplicate-merge{font-size:13px;font-weight:700}.duplicate-group-help{font-size:13px;line-height:1.45}.duplicate-merge-action{min-height:44px}@media(max-width:700px){.duplicate-group{padding:13px}.duplicate-member{grid-template-columns:1fr;gap:8px}.duplicate-merge{padding-left:25px}.duplicate-merge-action{width:100%}}

.manual-merge-intro{margin:0 0 14px;line-height:1.5}.manual-merge-list{margin:12px 0;border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:min(46vh,420px)}.manual-merge-row{display:flex;align-items:flex-start;gap:10px;margin:0;padding:11px 12px;border-bottom:1px solid var(--line);background:#fafafa;cursor:pointer}.manual-merge-row:last-child{border-bottom:0}.manual-merge-row input{width:auto;min-height:auto;margin-top:3px}.manual-merge-row span{min-width:0}.manual-merge-row b,.manual-merge-row small{display:block}.manual-merge-row small{margin-top:3px;color:var(--muted);font-weight:400;line-height:1.35}.manual-merge-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.manual-merge-footer .primary{min-height:44px}@media(max-width:700px){.manual-merge-footer{align-items:stretch;flex-direction:column}.manual-merge-footer .primary{width:100%}}

.subcontract-target-banner{border-left:4px solid var(--gold);display:grid;gap:6px}
.subcontract-target-banner .pill{width:max-content}.subcontract-target-banner>b{font-size:20px}.subcontract-target-banner p{margin:0;color:var(--muted)}
.agreement-bulk-summary{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:10px;margin:12px 0}.agreement-bulk-summary>div{border:1px solid #e3e3e3;border-radius:9px;padding:10px;background:#fafafa}.agreement-bulk-summary span{display:block;font-size:10px;font-weight:800;color:#777}.agreement-bulk-summary b{display:block;margin-top:4px;font-size:18px}.agreement-bulk-results{display:grid;margin:12px 0}.agreement-bulk-result{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #eee}.agreement-bulk-result:first-child{border-top:0}.agreement-bulk-result p{margin:3px 0 0;color:#666}.agreement-bulk-result.failed{opacity:.8}.agreement-match-options{display:grid;gap:8px;margin:10px 0}.agreement-match-option{display:flex;gap:10px;align-items:flex-start;border:1px solid #e3e3e3;border-radius:9px;padding:10px}.agreement-match-option input{width:auto;min-height:auto;margin-top:3px}.agreement-match-option span{display:flex;flex-direction:column;gap:2px}.agreement-match-option small{color:#666}@media(max-width:700px){.agreement-bulk-summary{grid-template-columns:repeat(2,1fr)}.agreement-bulk-result{grid-template-columns:1fr auto}.agreement-bulk-result .link{width:100%}}@media(max-width:480px){.agreement-bulk-summary{grid-template-columns:1fr 1fr}.agreement-bulk-result{grid-template-columns:1fr}}