:root{--bg:#f4f5f7;--surface:#fff;--surface-sunken:#f8f9fb;--border:#dfe3e8;--border-strong:#c3cad3;--text:#16202c;--text-soft:#5b6878;--text-faint:#8a95a3;--accent:#1457b8;--accent-soft:#e8f0fd;--accent-hover:#0f459a;--page-wash:#f4f5f7;--sidebar-bg:#fff;--sidebar-border:#dfe3e8;--tool:#0f6b5c;--tool-soft:#def7f1;--tool-border:#8dcec0;--success:#0d7a4a;--success-soft:#e3f5ec;--warning:#9a6300;--warning-soft:#fdf2dc;--danger:#b4231b;--danger-soft:#fdeae8;--radius:10px;--shadow:0 1px 2px #16202c0f, 0 4px 12px #16202c0d;--cover-orange:#9a6300;--cover-orange-soft:#fdf2dc;--cover-amber:linear-gradient(160deg, #f8e7b8 0%, #e4c36a 48%, #c9922a 100%);--cover-amber-low:linear-gradient(128deg, #f6e4b4 0%, #e4c36a 38%, #c9922a 72%, #9a6300 100%);--cover-hatch:#9a630038}*{box-sizing:border-box}html,body{background:var(--page-wash,var(--bg));color:var(--text);background-attachment:fixed;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;line-height:1.25}h1{letter-spacing:-.01em;font-size:1.5rem}h2{font-size:1.1rem}h3{font-size:.95rem}a{color:var(--accent)}.shell{background:var(--page-wash,var(--bg));grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar-bg,var(--surface));border-right:1px solid var(--sidebar-border,var(--border));box-shadow:inset 3px 0 0 var(--accent);flex-direction:column;gap:24px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{color:inherit;flex-direction:column;gap:8px;padding:0 10px;font-size:.95rem;font-weight:650;text-decoration:none;display:flex}.sidebar-top{flex-direction:column;gap:10px;display:flex}.sidebar-pin{align-self:flex-start;margin:0 10px}.brand-mark{width:36px;height:36px;display:none}.brand-wordmark{width:100%;max-width:196px;height:auto;display:block}.brand span{color:var(--text-faint);font-size:.78rem;font-weight:450;display:block}.nav{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow-y:auto}.nav a{color:var(--text-soft);border-radius:8px;justify-content:flex-start;align-items:center;gap:8px;padding:9px 10px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-icon{flex-shrink:0;width:18px;height:18px}.nav-label{flex:1;min-width:0}.nav a:hover,.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.nav-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;flex-shrink:0;min-width:1.25rem;height:1.25rem;margin-left:auto;padding:0 6px;font-size:.7rem;font-weight:700;line-height:1.25rem}.nav-arrange{align-self:flex-start;margin:0 10px}.nav-arrange-hint{color:var(--text-faint);margin:-16px 10px 0;font-size:.75rem}.nav-row{border-radius:8px;align-items:stretch;display:flex}.nav-row a{flex:1;min-width:0}.nav-grip{color:var(--text-faint);cursor:grab;letter-spacing:-2px;-webkit-user-select:none;user-select:none;flex:0 0 18px;justify-content:center;align-items:center;font-size:.72rem;display:flex}.nav-row.dragging{opacity:.45}.nav-row.drag-over{background:var(--accent-soft)}.sidebar-foot{color:var(--text-faint);flex-direction:column;align-items:flex-start;gap:8px;margin-top:auto;padding:0 10px;font-size:.8rem;display:flex}.sidebar-foot strong,.sidebar-who{color:var(--text);font-size:.85rem;font-weight:550;display:block}.sidebar-level{display:block}.appearance{width:100%;position:relative}.appearance-toggle{align-items:center;gap:8px;display:inline-flex}.appearance-swatch{border:1px solid #16202c2e;border-radius:3px;flex-shrink:0;width:12px;height:12px}.appearance-pop{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(240px,100vw - 40px);box-shadow:var(--shadow);padding:12px;position:absolute;bottom:calc(100% + 8px);left:0}.appearance-title{color:var(--text);margin:0 0 4px;font-size:.85rem;font-weight:650}.appearance-hint{margin:0 0 10px;font-size:.75rem;line-height:1.4}.appearance-swatches{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.appearance-preset{cursor:pointer;border:2px solid #0000;border-radius:999px;width:28px;height:28px;padding:0}.appearance-preset.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface)}.appearance-custom{border:1px dashed var(--border-strong);border-radius:999px;width:22px;height:22px;overflow:hidden}.appearance-custom input{cursor:pointer;border:0;width:32px;height:32px;margin:-5px;padding:0}.appearance-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.prefs-heading{letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft);margin:22px 0 6px;font-size:.82rem;font-weight:750}.prefs-heading:first-child{margin-top:0}.prefs-hint{margin:6px 0 12px;font-size:.75rem}.prefs-colors{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:8px 0 10px;display:grid}.prefs-colors input[type=color]{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;width:100%;height:36px;padding:2px;display:block}.prefs-preview{border-radius:var(--radius);border:1px dashed var(--border);margin:12px 0;padding:18px 16px}.prefs-preview-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text-soft);padding:10px 14px;font-size:.8rem;display:inline-block}.shell.sidebar-slim{grid-template-columns:72px 1fr}.sidebar-slim .sidebar{padding:16px 8px}.sidebar-slim .brand{align-items:center;padding:0}.sidebar-slim .brand-mark{display:block}.sidebar-slim .brand-wordmark,.sidebar-slim .brand span,.sidebar-slim .nav-label,.sidebar-slim .nav-arrange,.sidebar-slim .nav-arrange-hint,.sidebar-slim .nav-grip,.sidebar-slim .sidebar-who,.sidebar-slim .sidebar-level,.sidebar-slim .appearance-label{display:none}.sidebar-slim .sidebar-pin{align-self:stretch;margin:0;padding-left:0;padding-right:0}.sidebar-slim .nav a{justify-content:center;padding:10px 6px}.sidebar-slim .nav-badge{min-width:1rem;height:1rem;padding:0 4px;font-size:.62rem;line-height:1rem;position:absolute;top:2px;right:2px}.sidebar-slim .sidebar-foot{align-items:stretch;padding:0}.sidebar-slim .appearance-pop{bottom:0;left:calc(100% + 10px)}.main{min-width:0;padding:24px 28px 56px}.main-foot{border-top:1px solid var(--border);justify-content:flex-end;margin-top:40px;padding-top:16px;display:flex}.main-foot img{opacity:.65;width:auto;height:22px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head p{color:var(--text-soft);max-width:62ch;margin:4px 0 0;font-size:.9rem}.page-title-row{align-items:center;gap:8px;display:flex}.help{flex-shrink:0;display:inline-flex;position:relative}.help-btn{border:1px solid var(--border-strong);background:var(--surface);width:22px;height:22px;color:var(--text-soft);cursor:help;border-radius:999px;padding:0;font:italic 700 12px/22px ui-serif,Georgia,serif}.help-btn:hover,.help-btn:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.help-tip{z-index:30;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(34ch,70vw);box-shadow:var(--shadow);color:var(--text-soft);text-align:left;opacity:0;visibility:hidden;pointer-events:none;padding:10px 12px;font-size:.82rem;font-weight:450;line-height:1.4;transition:opacity .12s;position:absolute;top:calc(100% + 8px);left:0}.help:hover .help-tip,.help:focus-within .help-tip{opacity:1;visibility:visible}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.split{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.assign-facts{gap:8px;margin:2px 0 10px;display:grid}.assign-facts>div{min-width:0}.assign-facts dt{color:var(--text-soft);margin:0;font-size:.72rem;font-weight:550}.assign-facts dd{margin:2px 0 0;font-size:.86rem}.assign-facts .pill{vertical-align:middle;margin-left:6px}.assign-change{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assign-change select{flex:1;width:auto;min-width:180px}button.assign-name{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:2px;margin:0;padding:8px 0;display:flex}button.assign-name:disabled{cursor:default;opacity:.65}button.assign-name .sub{font-weight:450}.assign-details{padding:0 0 12px}.assign-details>.toolbar{margin-top:10px}.assign-confirm-overlay{z-index:80;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.assign-confirm{background:#fff;border-radius:12px;width:min(440px,100%);padding:22px 24px 20px;box-shadow:0 18px 48px #0f172a33}.assign-confirm h2{margin:0 0 10px;font-size:1.05rem}.assign-confirm p{margin:0 0 14px;font-size:.92rem;line-height:1.45}.assign-replace{border:0;margin:0 0 8px;padding:0}.assign-replace legend{margin-bottom:6px;font-size:.78rem;font-weight:650}.assign-replace .check{margin-bottom:4px;display:flex}.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.split.messages-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.95fr)}@media (max-width:1100px){.split{grid-template-columns:1fr}}.card.message-thread-list>.card-head{padding:8px 12px}.card.message-thread-list>.card-head h2{font-size:.92rem}.message-thread-list .row-item{align-items:center;gap:8px;padding:6px 12px;display:flex}.message-thread-list .row-item .strong{text-align:left;flex:1;min-width:0;font-size:.88rem;font-weight:650}.message-unread-dot{background:var(--danger);border-radius:50%;flex-shrink:0;width:8px;height:8px}.message-unread-dot-empty{background:0 0}.message-thread-list-body{max-height:16rem;overflow:auto}.message-thread-heading{letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);background:var(--surface-sunken);border-bottom:1px solid var(--border);margin:0;padding:8px 12px 2px;font-size:.68rem;font-weight:800}.message-thread-heading:first-child{padding-top:6px}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;position:static}.nav{flex-flow:wrap}.main{padding:16px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.card-tabs{margin-bottom:14px}.card-head p{color:var(--text-soft);margin:3px 0 0;font-size:.83rem}.card-body{padding:16px}.card-body.tight{padding:12px 16px}.settings-section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.settings-section>summary::-webkit-details-marker{display:none}.settings-section>summary::marker{display:none}.settings-section:not([open])>summary{border-bottom:none}.settings-section>summary:after{content:"";border-right:2px solid var(--text-soft);border-bottom:2px solid var(--text-soft);flex-shrink:0;width:.45rem;height:.45rem;margin-left:auto;transition:transform .12s;transform:rotate(45deg)}.settings-section[open]>summary:after{transform:rotate(-135deg)}.email-add-form{margin-top:12px}.email-add-fields{grid-template-columns:minmax(180px,220px) minmax(260px,1fr);align-items:end;column-gap:12px;max-width:640px;display:grid}.email-add-fields .field{margin-bottom:0}.email-add-fields input{height:40px;min-height:40px}.card.message-compose>.card-head{border-left:6px solid var(--border-strong)}.card.message-compose>.card-head h2{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.message-compose-kind{letter-spacing:.01em;background:#ffffffb8;border:1px solid #0000;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:800;display:inline-block}.card.message-compose-direct>.card-head{background:var(--accent-soft);border-bottom-color:#bfd6f6;border-left-color:var(--accent)}.card.message-compose-direct .message-compose-kind{color:var(--accent);border-color:#bfd6f6}.card.message-compose-org>.card-head{background:var(--warning-soft);border-bottom-color:#ecd3a0;border-left-color:var(--warning)}.card.message-compose-org .message-compose-kind{color:var(--warning);border-color:#ecd3a0}.card.message-compose-jobsite>.card-head{background:var(--success-soft);border-bottom-color:#b9e3cd;border-left-color:var(--success)}.card.message-compose-jobsite .message-compose-kind{color:var(--success);border-color:#b9e3cd}.card.message-compose-direct .message-audience-select{background:var(--accent-soft);border-color:#bfd6f6;font-weight:700}.card.message-compose-org .message-audience-select{background:var(--warning-soft);border-color:#ecd3a0;font-weight:700}.card.message-compose-jobsite .message-audience-select{background:var(--success-soft);border-color:#b9e3cd;font-weight:700}.message-jobsite-row{grid-template-columns:minmax(0,1.15fr) minmax(9rem,.85fr);align-items:stretch;gap:10px 12px;display:grid}.message-jobsite-roster{background:var(--success-soft);min-height:7.5rem;max-height:7.5rem;color:var(--text-soft);border:1px solid #b9e3cd;border-radius:8px;padding:8px 10px;font-size:.78rem;line-height:1.35;overflow:auto}.message-jobsite-roster-label{color:var(--success);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;font-weight:800}.message-jobsite-roster ul{margin:0;padding:0;list-style:none}.message-jobsite-roster li+li{margin-top:1px}.message-jobsite-roster p{margin:0}@media (max-width:760px){.message-jobsite-row{grid-template-columns:1fr}}.message-pick-toolbar{gap:14px;margin:-4px 0 8px;display:flex}.message-pick-toolbar .link-button{color:var(--accent);font-size:.8rem;font-weight:650;display:inline}.message-picked{color:var(--text-soft);margin:0 0 8px;font-size:.84rem}.message-employee-list{background:var(--accent-soft);border:1px solid #bfd6f6;border-radius:8px;max-height:14rem;margin-bottom:12px;padding:6px 8px;overflow:auto}.message-employee-list>p{color:var(--text-faint);margin:6px 4px;font-size:.84rem}.message-employee-list .check{border-radius:6px;margin:0;padding:5px 4px}.message-employee-list .check:hover{background:#ffffff8c}.message-attach{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.message-attach input[type=file]{opacity:0;width:1px;height:1px;position:absolute}.message-receipt{color:var(--text-soft);margin:4px 0 0;font-size:.78rem}.message-receipt.is-open{color:var(--tool);font-weight:550}.message-receipt-list{color:var(--text-soft);margin-top:4px;font-size:.78rem}.message-receipt-list summary{cursor:pointer;font-weight:550}.message-receipt-list ul{margin:6px 0 0;padding-left:18px}.message-receipt-list li{margin:2px 0}.message-photo-thumb{border:1px solid var(--border);background:var(--surface-sunken);cursor:zoom-in;border-radius:8px;max-width:220px;margin:6px 0 2px;padding:0;display:block;overflow:hidden}.message-photo-thumb img{object-fit:cover;width:100%;height:auto;max-height:160px;display:block}.message-photo-missing{margin:4px 0 0;font-size:.85rem}.message-photo-lightbox{z-index:80;cursor:zoom-out;background:#0c121cd1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.message-photo-lightbox img{object-fit:contain;max-width:min(960px,100%);max-height:90vh;box-shadow:var(--shadow);border-radius:8px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}button.metric,a.metric{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;appearance:none;text-decoration:none;display:block}.metric-link:hover{border-color:var(--accent);background:var(--accent-soft)}.metric-value{letter-spacing:-.02em;font-size:1.7rem;font-weight:600}.metric-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}table{border-collapse:collapse;width:100%;font-size:.88rem}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);background:var(--surface-sunken);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:.73rem;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 16px}tbody tr:last-child td{border-bottom:0}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--surface-sunken)}tbody tr.selected{background:var(--accent-soft)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}th.check-col,td.check-col{vertical-align:middle;width:36px;padding-left:12px;padding-right:4px}th.check-col input,td.check-col input{width:16px;height:16px;margin:0;display:block}th.class-hours-col,td.class-hours-col{text-align:center;vertical-align:middle;white-space:nowrap;width:6.5rem}td.class-hours-col input{width:16px;height:16px;margin:0 auto;display:block}th.diag-log-col,td.diag-log-col{text-align:center;vertical-align:middle;white-space:nowrap;width:5.5rem}td.diag-log-col input{width:16px;height:16px;margin:0 auto;display:block}.muted{color:var(--text-faint)}.strong{font-weight:600}.sub{color:var(--text-faint);font-size:.78rem;display:block}.perm-check{border-top:1px solid var(--border);align-items:flex-start;gap:10px;padding:7px 0;font-size:.88rem;display:flex}.perm-check input{flex:none;width:16px;height:16px;margin:3px 0 0}.perm-check>span{display:block}.perm-check.disabled{opacity:.55}.group-head-row{justify-content:space-between;align-items:baseline;gap:12px;margin-top:18px;display:flex}.group-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.74rem;font-weight:600}.group-toggle{color:var(--accent);flex:none;font-size:.78rem}.tick-list{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 18px;margin:0;padding:0;font-size:.88rem;list-style:none;display:grid}.tick-list li:before{content:"✓";color:var(--accent);margin-right:7px}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.row-list{margin:0;padding:0;list-style:none}.row-item{border:0;border-bottom:1px solid var(--border);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;padding:10px 16px;display:block}.row-item:hover{background:var(--surface-sunken)}.row-item.selected{background:var(--accent-soft)}.link-button{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.link-button:hover .strong{color:var(--accent)}tr.expanded-head>td{background:var(--accent-soft)}td.expanded-cell{background:var(--surface-sunken);padding:10px 12px}.empty{text-align:center;color:var(--text-faint);padding:36px 16px;font-size:.9rem}label.field{margin-bottom:12px;display:block}label.field>span:not(.field-hint):not(.field-head){color:var(--text-soft);margin-bottom:5px;font-size:.8rem;font-weight:550;display:block}label.field>.field-head{color:var(--text-soft);flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;font-size:.8rem;font-weight:550;display:flex}label.field>.field-hint{color:var(--text-soft);margin:-2px 0 6px;font-size:.78rem;font-weight:400;display:block}label.field>.field-head>.field-hint{color:var(--text-faint);margin:0;font-size:.75rem;font-weight:400;display:inline}input::placeholder,textarea::placeholder{color:var(--text-faint);opacity:1}input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=time],select,textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:9px 11px;font-size:.9rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}textarea{resize:vertical;min-height:62px}input[type=range]{width:100%}.check{align-items:center;gap:8px;margin-bottom:8px;font-size:.88rem;display:flex}.check input{width:16px;height:16px;margin:0}.inline-fields{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.schedule{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.schedule-row{grid-template-columns:58px 1fr 14px 1fr 52px;align-items:center;gap:6px;display:grid}.schedule-row .check{gap:7px;margin-bottom:0;font-size:.84rem}.schedule-row input[type=time],.schedule-row input[type=number]{padding:6px 7px;font-size:.84rem}.schedule-row input[type=time]:disabled,.schedule-row input[type=number]:disabled{opacity:.4}.schedule-row .dash,.schedule-row .length{color:var(--text-faint);font-size:.75rem}.schedule-row .length{text-align:right}.schedule-head{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}button{font:inherit;cursor:pointer}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:.88rem;font-weight:550;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-sunken)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{background:var(--surface);color:var(--danger);border-color:#e3a7a2}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.btn.ghost{color:var(--accent);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--accent-soft)}.btn.small{padding:5px 9px;font-size:.8rem}.btn.tool{background:var(--tool-soft);border-color:var(--tool-border);color:var(--tool)}.btn.tool:hover:not(:disabled){background:#c8eee4}.btn.tool.is-on{background:var(--tool);border-color:var(--tool);color:#fff}.btn.tool.is-on:hover:not(:disabled){background:#0c584c}.btn.block{width:100%}.segmented{border:1px solid var(--border-strong);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);color:var(--text-soft);border:0;padding:8px 14px;font-size:.86rem;font-weight:550}.segmented button+button{border-left:1px solid var(--border)}.segmented button[aria-pressed=true]{background:var(--accent);color:#fff}.pill{white-space:nowrap;background:var(--surface-sunken);color:var(--text-soft);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:.76rem;font-weight:600;display:inline-flex}.pill.success{background:var(--success-soft);color:var(--success);border-color:#b9e3cd}.pill.warning{background:var(--warning-soft);color:var(--warning);border-color:#ecd3a0}.pill.danger{background:var(--danger-soft);color:var(--danger);border-color:#efc0bb}.pill.accent{background:var(--accent-soft);color:var(--accent);border-color:#bfd6f6}a.pill{cursor:pointer;text-decoration:none}a.pill:hover{filter:brightness(.97)}.pill-list{flex-wrap:wrap;gap:4px;display:flex}.crew-flag-link{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;padding:0;display:block}.crew-flag-link:hover .strong{color:var(--accent)}.crew-detail td{background:var(--surface-sunken);box-shadow:inset 4px 0 0 var(--warning);padding:12px 14px 16px}.crew-dossier h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);margin:0 0 6px;font-size:.78rem}.crew-dossier p,.crew-dossier li{margin:0 0 4px;font-size:.86rem}.crew-dossier ul{margin:0 0 8px;padding-left:16px}.crew-dossier-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.notice{border:1px solid var(--border);background:var(--surface-sunken);color:var(--text-soft);border-radius:8px;padding:11px 14px;font-size:.88rem}.notice.error{background:var(--danger-soft);color:var(--danger);border-color:#efc0bb}.notice.ok{background:var(--success-soft);color:var(--success);border-color:#b9e3cd}.notice.info{background:var(--accent-soft);color:var(--accent);border-color:#bfd6f6}.map{border-radius:var(--radius);background:var(--surface-sunken);width:100%;height:100%;min-height:420px;overflow:hidden}.map-wrap{height:560px;position:relative}.jobsite-map .map-wrap{height:400px}.split.jobsite-map-wide,.split.jobsite-map-min,.split.jobsite-no-sidebar,.split.employees-no-sidebar{grid-template-columns:1fr}.area-row-schedule{max-width:560px}.jobsites-areas tbody tr.selected td,.jobsites-areas tbody tr.expanded-head>td,.employees-roster tbody tr.selected td,.employees-roster tbody tr.expanded-head>td,.crew-everyone tbody tr.selected td,.crew-everyone tbody tr.expanded-head>td,.assignments-here tbody tr.selected td,.assignments-here tbody tr.expanded-head>td{background:var(--warning-soft);border-top:1px solid #e4c36a;border-bottom:1px solid #e4c36a}.jobsites-areas tbody tr.selected td:first-child,.jobsites-areas tbody tr.expanded-head>td:first-child,.employees-roster tbody tr.selected td:first-child,.employees-roster tbody tr.expanded-head>td:first-child,.crew-everyone tbody tr.selected td:first-child,.crew-everyone tbody tr.expanded-head>td:first-child,.assignments-here tbody tr.selected td:first-child,.assignments-here tbody tr.expanded-head>td:first-child{box-shadow:inset 4px 0 0 var(--warning)}.jobsites-areas tbody tr.selected.clickable:hover td,.jobsites-areas tbody tr.expanded-head.clickable:hover td,.crew-everyone tbody tr.selected.clickable:hover td,.crew-everyone tbody tr.expanded-head.clickable:hover td,.assignments-here tbody tr.selected.clickable:hover td,.assignments-here tbody tr.expanded-head.clickable:hover td{background:#fae8c4}.jobsites-areas td.expanded-cell,.employees-roster td.expanded-cell{background:var(--surface-sunken);box-shadow:inset 4px 0 0 var(--warning)}.jobsite-map-card>.card-head,.employees-roster-card>.card-head{grid-template-columns:minmax(0,.55fr) auto minmax(0,1.45fr);align-items:center;gap:12px;display:grid}.jobsite-map-card>.card-head>div:first-child,.employees-roster-card>.card-head>div:first-child{grid-area:1/1;min-width:0}.jobsite-map-card>.card-head h2,.employees-roster-card>.card-head h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.jobsite-map-card>.card-head>.toolbar,.employees-roster-card>.card-head>.toolbar{display:contents}.btn.primary.jobsite-new-area,.btn.primary.roster-add{letter-spacing:.01em;grid-area:1/2;padding:12px 24px;font-size:.98rem;font-weight:700;box-shadow:0 1px 2px #16202c1f,0 6px 14px #1457b847}.jobsite-map-tools,.roster-card-tools{flex-wrap:wrap;grid-area:1/3;justify-self:end;align-items:center;gap:8px;display:flex}.jobsite-map-tools .btn.tool,.assign-map-tools .btn.tool,.crew-map-tools .btn.tool,.roster-card-tools .btn.tool,.btn.tool.amber{background:var(--warning-soft);color:var(--warning);border-color:#e4c36a}.jobsite-map-tools .btn.tool:hover:not(:disabled),.assign-map-tools .btn.tool:hover:not(:disabled),.crew-map-tools .btn.tool:hover:not(:disabled),.roster-card-tools .btn.tool:hover:not(:disabled),.btn.tool.amber:hover:not(:disabled){background:#fae8c4}.jobsite-map-tools .btn.tool.is-on,.assign-map-tools .btn.tool.is-on,.crew-map-tools .btn.tool.is-on,.roster-card-tools .btn.tool.is-on,.btn.tool.amber.is-on{background:var(--warning);border-color:var(--warning);color:#fff}.jobsite-map-tools .btn.tool.is-on:hover:not(:disabled),.assign-map-tools .btn.tool.is-on:hover:not(:disabled),.crew-map-tools .btn.tool.is-on:hover:not(:disabled),.roster-card-tools .btn.tool.is-on:hover:not(:disabled),.btn.tool.amber.is-on:hover:not(:disabled){background:#7c4f00}.employees-roster-card{overflow:visible}.employees-roster-card>.card-head{grid-template-columns:minmax(0,.55fr) auto 1fr auto}.employees-roster-card .btn.primary.roster-add{grid-column:2;justify-self:center;margin-left:0}.employees-roster-card .roster-card-tools{grid-column:4}.roster-filter-wrap{grid-area:1/3;justify-self:center;align-items:center;gap:8px;min-width:0;display:flex}.roster-filter-wrap .filter-menu-panel{min-width:260px;left:0;right:auto}.roster-filter-wrap summary{text-overflow:ellipsis;max-width:220px;overflow:hidden}.roster-filter-count{color:var(--text-soft);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:650}.roster-filter-wrap>.btn.small,.crew-filter-wrap>.btn.small{border-color:var(--border);background:var(--surface);color:var(--text-soft);font-weight:550}.crew-map-tools,.crew-filter-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.crew-map-card>.card-head>.toolbar{margin-left:auto}.jobsite-map-wide .jobsite-map .map-wrap{height:min(78vh,860px)}.jobsite-map-min .jobsite-map .map-wrap{display:none}.split.crew-map-wide,.split.crew-map-min,.split.assign-map-wide{grid-template-columns:1fr}.assign-map-wide .jobsite-map .map-wrap{height:min(78vh,860px)}.assign-map-card>.card-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.assign-map-card>.card-head>div:first-child{grid-area:1/1;min-width:0}.assign-map-card>.card-head h2{white-space:normal;font-size:inherit;font-weight:inherit;margin:0;overflow:visible}.assign-map-card>.card-head>.toolbar{display:contents}.assign-map-tools{flex-wrap:wrap;grid-area:1/2;justify-self:end;align-items:center;gap:8px;display:flex}select.assign-area-select{background:var(--success-soft);width:100%;max-width:420px;color:var(--success);border-color:#b9e3cd;font-weight:650}select.assign-area-select:focus{outline-color:var(--success);border-color:var(--success)}.crew-map-wide .map-wrap{height:min(78vh,860px)}.crew-map-min .map-wrap{display:none}#crew-everyone,#crew-map,#crew-needs-look{scroll-margin-top:18px}.map-basemap{z-index:2;border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);cursor:pointer;background:#fffffff2;border-radius:8px;padding:7px 11px;font-size:.8rem;font-weight:700;position:absolute;top:12px;left:12px}.map-hint{z-index:2;border:1px solid var(--border);color:var(--text-soft);box-shadow:var(--shadow);background:#fffffff2;border-radius:8px;max-width:320px;padding:7px 11px;font-size:.8rem;position:absolute;bottom:12px;left:12px}.maplibregl-ctrl-attrib{font-size:10px}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:100%;max-width:380px}.login-wordmark{width:auto;max-width:100%;height:52px;margin:0 auto 18px;display:block}.prose{max-width:68ch;margin:0 auto;padding:40px 24px 72px;font-size:.95rem;line-height:1.65}.prose h1{margin:0 0 4px;font-size:1.5rem}.prose h2{border-top:1px solid var(--border);margin:32px 0 8px;padding-top:20px;font-size:1.1rem}.prose h3{margin:20px 0 6px;font-size:.95rem}.prose p,.prose ul{margin:0 0 12px}.prose ul{padding-left:22px}.prose li{margin-bottom:6px}.center-note{text-align:center;min-height:100vh;color:var(--text-soft);place-items:center;padding:32px;display:grid}.scroll-x{overflow-x:auto}.coe-block{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:6px;padding-top:14px;display:flex}.coe-wrap{overflow-x:auto}.coe-table{min-width:720px}.coe-table th,.coe-table td{vertical-align:middle;padding:6px 8px}.coe-table select,.coe-table input{width:100%;min-width:0}.coe-table .link-button{color:var(--danger);font-size:.8rem}.coe-signature{width:160px;height:60px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;display:block}.coe-sign-pad{touch-action:none;cursor:crosshair;background:0 0;border:0;width:100%;height:56px;display:block}.coe-sign-pad.compact{max-width:none;height:44px}.hhc-approve{background:#f4f6f8;flex-direction:column;gap:10px;min-height:100vh;padding:16px 20px 0;display:flex}.hhc-approve-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.hhc-frame{background:#fff;border:1px solid #c8c8c8;flex:1;width:100%;min-height:80vh}.coe-policy-overlay{z-index:80;background:#0f172a8c;padding:24px;position:fixed;inset:0;overflow:auto}.coe-policy-sheet{max-width:860px;margin:0 auto 40px}.coe-policy{color:#111;background:#fff;border:1px solid #c8c8c8;margin-top:10px;padding:22px 32px 20px;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:14.5px;line-height:1.32}.coe-policy .banner{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px;display:flex}.coe-policy .mark-img{width:auto;height:62px;display:block}.coe-policy .rev{text-align:right;margin-top:8px;font-size:14px}.coe-policy .rule{border-top:3px solid #111;margin-top:12px}.coe-policy h2{text-align:left;color:#2e8eaa;letter-spacing:-.02em;margin:2px 0 0;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:30px;font-weight:600;line-height:1.05;text-decoration:none}.coe-policy p{text-align:left;margin:0 0 10px}.coe-policy .auth{margin:0 0 14px;font-weight:700;text-decoration:underline}.coe-policy .blank-line{white-space:nowrap;border-bottom:1px solid #111;min-width:8em;padding:0 6px;font-weight:700;display:inline-block}.coe-policy .project{white-space:nowrap}.coe-policy .checks{text-align:center;margin:10px 0 12px}.coe-policy .fill{align-items:flex-end;gap:10px;margin:10px 0 0;display:flex}.coe-policy .fill .lbl{white-space:nowrap;font-weight:700}.coe-policy .fill .u{border-bottom:1px solid #111;flex:1;min-height:28px;padding:0 6px 2px;font-weight:700}.coe-policy .row2{align-items:flex-end;gap:18px;display:flex}.coe-policy .row2 .fill{flex:1}.coe-policy .fill.date{flex:0 0 150px}.coe-policy .mark{outline-offset:3px;background:#fffdf5;border-radius:2px;outline:2px dashed #1d4ed8}.coe-policy-table{border-collapse:collapse;width:100%;margin:12px 0 14px;font-size:13px}.coe-policy-table th,.coe-policy-table td{vertical-align:top;border:1px solid #111;height:32px;padding:6px 8px}.coe-policy-table th{text-align:center;font-weight:700;line-height:1.15}.coe-policy-table .tool{font-weight:700}.coe-policy-table .tag{margin-top:2px;font-size:12px;font-weight:400}.coe-policy-table .cost,.coe-policy-table .center,.coe-policy-table .initials{text-align:center;vertical-align:middle}.coe-issue-box{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.spacer{flex:1}.timesheet{width:max-content;min-width:100%}.timesheet tbody tr.timesheet-detail td{background:var(--surface-sunken,#f8fafc);cursor:default;text-align:left;vertical-align:top;white-space:normal;padding:10px 8px 16px}.timesheet tbody tr.timesheet-detail:hover td{background:var(--surface-sunken,#f8fafc)}.timesheet-detail-inner{width:100%;min-width:0;max-width:none}.shift-detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(420px,1fr);align-items:start;gap:12px;display:grid}.shift-detail-main,.shift-detail-side{flex-direction:column;gap:12px;min-width:0;display:flex}.shift-detail-side table{width:100%}.shift-detail-main tbody tr.shift-open td{background:#d7e4fa}.shift-detail-main tbody tr.shift-open td:first-child{box-shadow:inset 4px 0 0 var(--accent);font-weight:750}.shift-detail-main table thead th{vertical-align:bottom}.punch-map-card .map-wrap{height:210px}.punch-map-card .map{height:210px;min-height:210px}@media (max-width:1100px){.shift-detail-grid{grid-template-columns:1fr}}.timesheet th.actions,.timesheet td.actions{z-index:2;background:var(--surface);white-space:nowrap;min-width:172px;position:sticky;right:0;box-shadow:inset 8px 0 8px -8px #16202c2e}.timesheet tbody tr.clickable:hover td.actions{background:var(--surface-sunken)}.timesheet tbody tr.selected td.actions{background:var(--accent-soft)}.timesheet .actions .row{flex-wrap:nowrap}.timesheet th.timesheet-day,.timesheet td.timesheet-day{text-align:center;vertical-align:top;white-space:normal;min-width:92px;max-width:120px;font-size:.78rem}.timesheet .ot-line{color:var(--warning);font-size:.72rem;font-weight:600}.timesheet .leave-line,.timesheet .recharge-line,.timesheet .call-line,.timesheet .coe-line{margin-top:2px;font-size:.7rem;font-weight:600;line-height:1.25}.timesheet .leave-line{color:var(--accent)}.timesheet .recharge-line{color:#6b3fa0}.timesheet .call-line{color:#9a3b2f}.timesheet td.has-call{background:#fdecea}.timesheet .coe-line{color:var(--text-soft);font-weight:500}.timesheet td.has-ot{background:var(--warning-soft)}.timesheet td.has-leave{background:var(--accent-soft)}.timesheet td.has-recharge{background:#f3e8fd}.timesheet td.has-leave.has-recharge{background:linear-gradient(180deg, var(--accent-soft) 50%, #f3e8fd 50%)}.timesheet td.has-ot.has-leave,.timesheet td.has-ot.has-recharge{background:var(--warning-soft)}.timesheet td.sheet-recharge,.compare-grid td.compare-day.sheet-recharge{color:#2f4f9a;background:linear-gradient(#f3f6ff 0%,#e4ebfb 100%);box-shadow:inset 0 0 0 1px #5b7cda}.timesheet td.sheet-excused,.compare-grid td.compare-day.sheet-excused{color:#0b6f91;background:linear-gradient(#eefafe 0%,#d7f3fb 100%);box-shadow:inset 0 0 0 1px #1aa3d1}.timesheet td.sheet-call-in,.compare-grid td.compare-day.sheet-call-in{color:#7a120e;background:linear-gradient(#ffcfc9 0%,#f48b82 100%);box-shadow:inset 0 0 0 2px #c62828}.timesheet td.sheet-non-mandatory,.compare-grid td.compare-day.sheet-non-mandatory{color:#5a2270;background:linear-gradient(#f8f1fb 0%,#eadcf4 100%);box-shadow:inset 0 0 0 1px #7a2e91}.timesheet td.sheet-minimum,.compare-grid td.compare-day.sheet-minimum{color:#8a6a00;background:linear-gradient(#fffbeb 0%,#fff0c2 100%);box-shadow:inset 0 0 0 1px #d4a017}.timesheet td.sheet-travel,.compare-grid td.compare-day.sheet-travel{color:#3d6b2e;background:linear-gradient(#f4faef 0%,#dcefd0 100%);box-shadow:inset 0 0 0 1px #7aaa5c}.timesheet td.sheet-recharge .call-line,.timesheet td.sheet-recharge .recharge-line,.timesheet td.sheet-recharge .leave-line,.timesheet td.sheet-recharge .strong,.compare-grid td.compare-day.sheet-recharge .app,.compare-grid td.compare-day.sheet-recharge .client,.compare-grid td.compare-day.sheet-recharge .src .val{color:#2f4f9a;font-weight:650}.timesheet td.sheet-excused .call-line,.timesheet td.sheet-excused .recharge-line,.timesheet td.sheet-excused .leave-line,.timesheet td.sheet-excused .strong,.compare-grid td.compare-day.sheet-excused .app,.compare-grid td.compare-day.sheet-excused .client,.compare-grid td.compare-day.sheet-excused .src .val{color:#0b6f91;font-weight:650}.timesheet td.sheet-call-in .call-line,.timesheet td.sheet-call-in .recharge-line,.timesheet td.sheet-call-in .leave-line,.timesheet td.sheet-call-in .strong,.compare-grid td.compare-day.sheet-call-in .app,.compare-grid td.compare-day.sheet-call-in .client,.compare-grid td.compare-day.sheet-call-in .src .val{color:#7a120e;font-weight:700}.timesheet td.sheet-non-mandatory .call-line,.timesheet td.sheet-non-mandatory .recharge-line,.timesheet td.sheet-non-mandatory .leave-line,.timesheet td.sheet-non-mandatory .strong,.compare-grid td.compare-day.sheet-non-mandatory .app,.compare-grid td.compare-day.sheet-non-mandatory .client,.compare-grid td.compare-day.sheet-non-mandatory .src .val,.compare-grid td.compare-day.sheet-non-mandatory .off-tag,.compare-grid td.compare-day.sheet-non-mandatory .note-tag,.compare-grid td.compare-day.sheet-non-mandatory .mark{color:#5a2270;font-weight:650}.timesheet td.sheet-minimum .call-line,.timesheet td.sheet-minimum .recharge-line,.timesheet td.sheet-minimum .leave-line,.timesheet td.sheet-minimum .strong,.compare-grid td.compare-day.sheet-minimum .app,.compare-grid td.compare-day.sheet-minimum .client,.compare-grid td.compare-day.sheet-minimum .src .val{color:#8a6a00;font-weight:650}.timesheet td.sheet-travel .call-line,.timesheet td.sheet-travel .recharge-line,.timesheet td.sheet-travel .leave-line,.timesheet td.sheet-travel .strong,.compare-grid td.compare-day.sheet-travel .app,.compare-grid td.compare-day.sheet-travel .client,.compare-grid td.compare-day.sheet-travel .src .val{color:#3d6b2e;font-weight:650}.compare-grid td.compare-day.sheet-recharge .note-tag,.compare-grid td.compare-day.sheet-recharge .off-tag{color:#2f4f9a;background:#d5def5}.compare-grid td.compare-day.sheet-excused .note-tag,.compare-grid td.compare-day.sheet-excused .off-tag{color:#0b6f91;background:#c5eaf5}.compare-grid td.compare-day.sheet-call-in .note-tag,.compare-grid td.compare-day.sheet-call-in .off-tag{color:#7a120e;background:#ffecea}.compare-grid td.compare-day.sheet-non-mandatory .note-tag,.compare-grid td.compare-day.sheet-non-mandatory .off-tag{color:#5a2270;background:#ddc8ea}.compare-grid td.compare-day.sheet-minimum .note-tag,.compare-grid td.compare-day.sheet-minimum .off-tag{color:#8a6a00;background:#f5e3a3}.compare-grid td.compare-day.sheet-travel .note-tag,.compare-grid td.compare-day.sheet-travel .off-tag{color:#3d6b2e;background:#c9e3b8}.timesheet td.timesheet-day.day-selected{outline:2px solid var(--accent);outline-offset:-2px}button.time-link{color:var(--accent);font:inherit;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}button.time-link:hover{color:#0f459a}.report-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.report-tile{border:1px solid var(--border);background:var(--surface-sunken);border-radius:8px;flex-direction:column;gap:8px;padding:14px;display:flex}.report-tile h3{margin:0;font-size:.95rem}.report-tile p{color:var(--text-soft);flex:1;margin:0;font-size:.82rem}.compare-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.compare-grid th,.compare-grid td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px}.compare-grid th.compare-day,.compare-grid td.compare-day{text-align:center;width:88px;min-width:72px;max-width:100px;padding:6px 4px;font-size:.75rem;overflow:hidden}.compare-grid td.compare-day{cursor:pointer}.compare-grid td.compare-day .app,.compare-grid td.compare-day .client{overflow-wrap:anywhere;line-height:1.25}.compare-grid td.compare-day.readonly{cursor:default}.compare-grid .pd-mini{letter-spacing:.01em;color:var(--text-soft);font-variant-numeric:tabular-nums;margin-top:3px;font-size:.62rem;font-weight:650}.compare-grid td.compare-week{cursor:default;min-width:64px}.compare-grid th.check-col,.compare-grid td.check-col{text-align:center;cursor:default;letter-spacing:.03em;text-transform:uppercase;width:40px;min-width:40px;max-width:44px;color:var(--text-faint);font-size:.72rem;font-weight:650}.compare-grid td.check-col input{margin:4px auto 0}.compare-grid td.week-totals{text-align:left;cursor:default;width:168px;min-width:168px;max-width:200px}.compare-grid .week-totals-grid{font-variant-numeric:tabular-nums;color:var(--text);grid-template-columns:max-content 1fr;align-items:start;gap:2px 14px;font-size:.75rem;font-weight:650;line-height:1.35;display:grid}.compare-grid .week-hours{flex-direction:column;gap:1px;display:flex}.compare-grid .week-pd{white-space:nowrap}.compare-grid .week-k{letter-spacing:.04em;text-transform:uppercase;min-width:2.4em;color:var(--text-faint);font-size:.62rem;font-weight:750;display:inline-block}.compare-grid .week-hours .week-k{min-width:3.2em}.compare-grid td.compare-day.triple{min-width:92px;max-width:100px}.compare-grid .pair{flex-direction:column;gap:2px;display:flex}.compare-grid .pair .app,.compare-grid .pair .client{min-height:1.15rem;line-height:1.15rem}.compare-grid .pair .app{color:var(--text);font-variant-numeric:tabular-nums;font-weight:650}.compare-grid .pair .client{font-variant-numeric:tabular-nums;color:var(--text-soft)}.compare-grid th.pair-key,.compare-grid td.pair-key{text-align:right;vertical-align:top;cursor:default;white-space:nowrap;width:82px;min-width:76px;max-width:88px;padding:6px 8px 6px 4px}.compare-grid td.pair-key .app,.compare-grid td.pair-key .client{letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-variant-numeric:normal;font-size:.58rem;font-weight:750}.compare-grid .src{justify-content:space-between;align-items:baseline;gap:4px;line-height:1.25;display:flex}.compare-grid .src .tag{letter-spacing:.03em;text-transform:uppercase;color:var(--text-faint);flex:none;font-size:.58rem;font-weight:750}.compare-grid .src .val{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;min-width:0;font-weight:650;overflow:hidden}.compare-grid .src.app .val{color:var(--text)}.compare-grid .src.mjobs .val,.compare-grid .src.final .val,.compare-grid .src.payroll .val{color:var(--text-soft)}.compare-grid td.compare-day.match{background:var(--success-soft)}.compare-grid td.compare-day.match .app,.compare-grid td.compare-day.match .client,.compare-grid td.compare-day.match .src .val{color:var(--success)}.compare-grid td.compare-day.mismatch{background:var(--danger-soft)}.compare-grid td.compare-day.mismatch .app,.compare-grid td.compare-day.mismatch .client,.compare-grid td.compare-day.mismatch .src .val{color:var(--danger);font-weight:650}.compare-grid td.compare-day.quiet{color:var(--text-faint)}.compare-grid td.compare-day.off{color:var(--text-soft);background:#eceff3;box-shadow:inset 0 0 0 1px #c5ccd4}.compare-grid td.compare-day.match.off,.compare-grid td.compare-day.quiet.off{background:#eceff3}.compare-grid td.compare-day.off .app,.compare-grid td.compare-day.off .client,.compare-grid td.compare-day.off .src .val{color:var(--text-soft);font-weight:600}.compare-grid .off-tag{color:var(--text-soft);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;background:#e4e8ed;border-radius:4px;margin-top:3px;padding:1px 4px;font-size:.62rem;font-weight:750;line-height:1.25;overflow:hidden}.compare-grid td.compare-day.note{background:var(--warning-soft);box-shadow:inset 0 0 0 1px var(--warning)}.compare-grid td.compare-day.note .app,.compare-grid td.compare-day.note .client,.compare-grid td.compare-day.note .src .val{color:var(--warning);font-weight:650}.compare-grid td.compare-day.mismatch.note{background:var(--danger-soft);box-shadow:inset 0 0 0 1px var(--danger)}.compare-grid td.compare-day.mismatch.note .app,.compare-grid td.compare-day.mismatch.note .client,.compare-grid td.compare-day.mismatch.note .src .val{color:var(--danger)}.compare-grid td.compare-day.reviewed{background:var(--success-soft);box-shadow:inset 0 0 0 2px var(--success)}.compare-grid td.compare-day.reviewed .app,.compare-grid td.compare-day.reviewed .client,.compare-grid td.compare-day.reviewed .src .val{color:var(--success)}.compare-grid td.compare-day.noted{box-shadow:inset 0 0 0 2px var(--accent)}.compare-grid td.compare-day.match.note{background:var(--warning-soft)}.compare-grid .note-tag{color:var(--warning);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;background:#fff6e0;border-radius:4px;margin-top:3px;padding:1px 4px;font-size:.62rem;font-weight:750;line-height:1.25;overflow:hidden}.compare-grid td.compare-day.mismatch.note .note-tag{color:var(--danger);background:#fff}.compare-grid .mark{letter-spacing:.03em;text-transform:uppercase;margin-top:2px;font-size:.64rem;font-weight:700}.compare-grid thead th:first-child,.compare-grid td.who{z-index:1;background:var(--surface);min-width:188px;position:sticky;left:0}.mark-all{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.mark-all .btn.small{padding:2px 6px;font-size:.68rem}.compare-grid tr.needs-review td.who{box-shadow:inset 3px 0 0 var(--danger)}.compare-grid tbody tr.clickable:hover td.compare-day.match:not(.note):not(.off){filter:brightness(.98)}.compare-grid tbody tr.selected td.who{background:var(--accent-soft)}.compare-grid td.compare-day.picked{outline:2px solid var(--accent);outline-offset:-2px}.pd-check{letter-spacing:.03em;text-transform:uppercase;color:var(--text-soft);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:4px;margin-top:4px;font-size:.64rem;font-weight:700;display:inline-flex}.pd-check.on{color:var(--success)}.pd-check.keyed{color:var(--accent)}.pd-check input{width:12px;height:12px;accent-color:var(--success);margin:0}.compare-grid tr.compare-review td{background:var(--surface-sunken);cursor:default;text-align:left;padding:0;position:static}.compare-grid tr.compare-review .day-resolve{box-sizing:border-box;border:none;border-radius:0;width:100%;max-width:none;margin:0;position:sticky;left:0}.compare-grid tr.compare-review+tr.compare-review .day-resolve{border-top:1px solid var(--border)}.compare-grid tbody tr.timesheet-detail td{background:var(--surface-sunken,#f8fafc);cursor:default;text-align:left;vertical-align:top;white-space:normal;padding:10px 12px 16px}.compare-grid tbody tr.timesheet-detail:hover td{background:var(--surface-sunken,#f8fafc)}.compare-grid tr.timesheet-detail .timesheet-detail-inner{width:100%;max-width:none;position:sticky;left:0}.day-resolve{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);margin-top:14px;padding:12px 14px}.day-resolve-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.day-resolve-work{grid-template-columns:minmax(0,1fr) minmax(260px,32%);align-items:start;gap:10px 28px;display:grid}.day-resolve-facts{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 16px;margin:0 0 12px;display:grid}.day-resolve-actions{flex-direction:column;gap:10px;display:flex}.day-resolve-actions .field{max-width:12rem;margin:0}@media (max-width:1100px){.day-resolve-work{grid-template-columns:1fr}.day-resolve-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}.day-resolve-facts div{margin:0}.day-resolve-facts dt{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.day-resolve-facts dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:650}.day-resolve-name{text-underline-offset:2px;font-weight:650;text-decoration:underline}button.day-resolve-name{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:650}button.day-resolve-name[aria-expanded=true]{color:var(--text)}.day-resolve .field{max-width:28rem;margin:0 0 12px}.assignment-stints{margin:0 0 12px;padding:0;font-size:.85rem;list-style:none}.assignment-stints li{border-top:1px solid var(--border);gap:10px;padding:4px 0;display:flex}.assignment-stints li:first-child{border-top:none}.assignment-stints span{color:var(--text-soft);min-width:10.5rem}.employee-detail.stack{gap:8px}.employee-detail .field{margin-bottom:0}.employee-detail .inline-fields{align-items:end;gap:8px 12px}.employee-detail .inline-fields-3{grid-template-columns:1.2fr 1fr 1fr;align-items:end;gap:8px 12px;display:grid}.employee-detail input[type=text],.employee-detail input[type=email],.employee-detail input[type=tel],.employee-detail input[type=password],.employee-detail input[type=number],.employee-detail input[type=date],.employee-detail select,.employee-detail textarea{padding:6px 9px;font-size:.86rem}.employee-detail textarea{resize:vertical;min-height:0}.employee-notes .field-head{width:100%}.employee-notes .field-head .link-button{margin-left:auto;font-size:.75rem}.employee-notes textarea.is-collapsed{resize:none;overflow:hidden}.employee-detail .notice{padding:6px 10px;font-size:.82rem}.employee-detail-foot{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px 24px;margin-top:4px;padding-top:10px;display:grid}.employee-detail-foot .stack{border:none;gap:8px;margin:0;padding:0}.employee-detail .coe-block{gap:8px;margin-top:2px;padding-top:10px}.employee-detail-foot .sub,.employee-detail .coe-block>p .sub{display:inline}@media (max-width:860px){.employee-detail .inline-fields-3,.employee-detail-foot{grid-template-columns:1fr}}.coe-head-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.coe-head-row select{width:min(280px,100%)}.employee-detail .coe-head-row .sub{display:inline}.employee-detail .coe-table{width:100%;min-width:0}.employee-detail .coe-table th,.employee-detail .coe-table td{padding:4px 8px;font-size:.82rem}.employee-detail .coe-table .sub{margin-left:6px;display:inline}.coe-policy-link,.coe-table .coe-policy-link{color:var(--accent);font-size:.8rem}.employee-old-policies{font-size:.82rem}.employee-old-policies summary{cursor:pointer;color:var(--accent);font-weight:650}.employee-old-policies ul{margin:6px 0 0;padding:0;list-style:none}.employee-old-policies li{flex-wrap:wrap;align-items:center;gap:10px;padding:3px 0;display:flex}.help-tip.wide{width:min(62ch,80vw)}.filter-menu{position:relative}.filter-menu>summary{list-style:none}.filter-menu>summary::-webkit-details-marker{display:none}.filter-menu-panel{z-index:40;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:240px;box-shadow:var(--shadow);padding:6px;position:absolute;top:calc(100% + 6px);left:0}.filter-menu-panel>button{text-align:left;width:100%;font:inherit;color:var(--text);background:0 0;border:0;border-radius:6px;padding:7px 10px;font-size:.84rem;display:block}.filter-menu-panel>button:hover,.filter-menu-panel>button.is-on{background:var(--tool-soft);color:var(--tool)}.card-head .filter-menu-panel{left:auto;right:0}.card-tools-left>.card-head{justify-content:flex-start;gap:16px clamp(40px,10vw,120px)}.card-tools-left>.card-head .filter-menu-panel{left:0;right:auto}.card-tools-left>.card-head .toolbar{flex-wrap:wrap;gap:8px}.map-pin-legend{align-items:center;gap:6px;margin-right:4px;display:inline-flex}.map-pin-swatch{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:.75rem;font-weight:550;display:inline-flex}.map-pin-swatch:hover{background:var(--surface-sunken)}.map-pin-swatch.is-on{box-shadow:0 0 0 2px var(--tool-soft);border-color:var(--tool)}.map-pin-dot{border:2px solid #fff;border-radius:50%;flex-shrink:0;width:12px;height:12px;box-shadow:0 0 0 1px #16202c40}.map-pin-dot.ok{background:#0d7a4a}.map-pin-dot.warn{background:#9a6300}.map-pin-dot.bad{background:#b4231b}.filter-menu-area{border-top:1px solid var(--border);color:var(--text-soft);flex-direction:column;gap:4px;margin-top:6px;padding:8px 10px 6px;font-size:.78rem;font-weight:550;display:flex}.filter-menu-area select{width:100%;max-width:100%}.filter-menu-panel>button.filter-menu-clear{border-top:1px solid var(--border);color:var(--text-soft);border-radius:0 0 6px 6px;margin-top:4px}.filter-menu-panel>button.filter-menu-clear:hover:not(:disabled),.filter-menu-panel>button.filter-menu-clear.is-on{background:var(--surface-sunken);color:var(--text)}.filter-menu-panel>button.filter-menu-clear:disabled{opacity:.45;cursor:not-allowed}.project-cover:not(.is-published){border-top:4px solid var(--cover-orange)}.project-cover .card-body{padding:28px 32px 32px}.project-cover-brand{border-bottom:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:28px;padding-bottom:22px;display:flex}.project-cover-wordmark{width:auto;max-width:100%;height:48px}.project-cover-org{color:var(--text-soft);margin:4px 0 0;font-size:.92rem}.project-cover-grid{grid-template-columns:1fr 1fr;gap:16px 20px;margin:0;display:grid}.project-cover-wide{grid-column:1/-1}.project-logo-row{flex-wrap:wrap;align-items:center;gap:10px 12px;display:flex;position:relative}.project-logo-row input[type=file]{opacity:0;width:1px;height:1px;position:absolute}.project-logo-preview{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:6px;width:auto;max-width:160px;height:auto;max-height:48px;padding:4px 8px;display:block}.project-cover.is-published{position:relative;overflow:hidden}.project-cover.is-published>.card-head{z-index:3;background:0 0;border:none;padding:0;position:absolute;top:10px;left:10px}.project-cover.is-published .card-body{padding:0}.project-poster{min-height:min(860px,100vh - 48px);color:var(--text);background:#fff;padding:0;position:relative;overflow:hidden}.project-poster-hatch,.project-poster-stripe,.project-poster-black,.project-poster-skyline{pointer-events:none;position:absolute}.project-poster-hatch{z-index:1;background:repeating-linear-gradient(-38deg, transparent 0 16px, var(--cover-hatch) 16px 18px);clip-path:polygon(0 0,100% 0,42% 100%,0 100%);width:46%;height:36%;top:0;left:0}.project-poster-stripe{background:var(--cover-amber);clip-path:polygon(0 0,100% 0,100% 10%,0 24%);width:auto;height:auto;inset:0;transform:none}.project-poster-stripe-low{opacity:1;background:var(--cover-amber-low);clip-path:polygon(0 66%,9% 68%,34% 0,26% 0);width:auto;height:auto;inset:0;transform:none}.project-poster-black{background:var(--text);clip-path:polygon(38% 0,100% 0,100% 100%);z-index:1;width:22%;height:16%;top:0;right:0}.project-poster-skyline{z-index:1;opacity:.92;width:100%;height:68%;bottom:0;left:0}.project-poster-inner{z-index:1;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;max-width:none;min-height:min(860px,100vh - 48px);margin:0;padding:72px 64px 180px;display:grid;position:relative}.project-poster-inner.has-aside{grid-template-columns:minmax(0,1fr) 248px;column-gap:8px;padding-right:48px}.project-poster-mark{z-index:2;position:absolute;bottom:24px;right:28px}.project-poster .project-cover-wordmark{opacity:.55;height:32px}.project-poster-hero{text-align:center;flex-direction:column;justify-self:center;align-items:center;width:100%;max-width:780px;padding:0 24px;display:flex;transform:translateY(-44px)}.project-poster-logos{flex-wrap:wrap;justify-content:center;align-items:center;gap:28px 36px;margin:0 0 28px;display:flex}.project-poster-logo-gap{background:#d5dbe2;width:1px;height:72px}.project-poster-org-logo{object-fit:contain;width:auto;max-width:340px;height:auto;max-height:168px;margin:0;display:block}.project-poster-logos.is-single .project-poster-org-logo{max-width:480px;max-height:176px}.project-poster-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0;font-size:clamp(2.05rem,4.4vw,3.4rem);font-weight:800;line-height:1.12}.project-poster-title{letter-spacing:.02em;color:var(--cover-orange);margin:14px 0 0;font-size:clamp(1.7rem,3.1vw,2.45rem);font-weight:700}.project-poster-fields{text-align:left;flex-direction:column;align-self:center;gap:18px;width:100%;margin:0;padding:12px 4px 12px 32px;display:flex;position:relative}.project-poster-fields:before{content:"";border-left:1.5px dashed #c5ced8;position:absolute;top:10%;bottom:10%;left:0}.project-poster-fields>div{text-align:left;width:100%;min-width:0;margin:0}.project-poster-fields dt{letter-spacing:.08em;text-transform:uppercase;color:var(--cover-orange);margin:0 0 4px;font-size:.68rem;font-weight:700}.project-poster-fields dd{color:var(--text);white-space:pre-wrap;margin:0;font-size:.98rem;font-weight:650;line-height:1.35}@media (max-width:720px){.project-cover-grid{grid-template-columns:1fr}.project-poster{min-height:auto}.project-poster-inner,.project-poster-inner.has-aside{grid-template-columns:1fr;min-height:auto;padding:96px 24px}.project-poster-mark{bottom:20px;right:16px}.project-poster-hatch,.project-poster-stripe,.project-poster-stripe-low{opacity:.85}.project-poster-skyline{width:100%;height:42%}.project-poster-fields{padding:24px 0 0}.project-poster-fields:before{border-top:1.5px dashed #c5ced8;border-left:none;inset:0 12% auto}}.phone-home-split{grid-template-columns:minmax(0,1fr) 280px}.phone-home-row{border-bottom:1px solid var(--border,#e5e7eb);gap:10px;padding:10px 0;display:flex}.phone-home-row.is-off{opacity:.55}.phone-home-row-tools{flex-direction:column;gap:4px;display:flex}.phone-home-row-body{flex:1;min-width:0}.phone-home-fields{gap:8px;margin-left:24px;display:grid}.phone-shell{background:#111827;border-radius:28px;width:240px;margin:0 auto;padding:12px 10px 16px;box-shadow:inset 0 0 0 2px #374151}.phone-screen{background:#f3f4f6;border-radius:18px;flex-direction:column;gap:8px;min-height:420px;padding:12px;display:flex}.phone-status{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;margin:0;font-size:.72rem;font-weight:800}.phone-punch{text-align:center;color:#fff;background:#1457b8;border-radius:10px;margin:0;padding:10px;font-weight:800}.phone-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.phone-card strong{font-size:.78rem}.phone-card span{color:#6b7280;font-size:.72rem}@media print{.sidebar,.page-head,.project-cover.is-published>.card-head{display:none!important}.project-poster-mark{bottom:18px;right:24px}.shell{display:block}.main{padding:0}.project-cover.is-published{box-shadow:none;border:none;border-radius:0}.project-poster{min-height:100vh}}
