:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183039;background:#f4f6f5;font-size:14px;--green:#176954;--ink:#183039;--muted:#647770;--line:#dfe7e2}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:10px 15px;font-weight:600;transition:.15s}button:hover{background:#edf4ef;border-color:#b8cbc1}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#10533f;color:white}.quiet{background:transparent}.small{padding:6px 10px;font-size:12px}.danger{color:#a63c2c}.shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh}.sidebar{background:#123c32;color:#e4f1e9;padding:30px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:750;letter-spacing:-.5px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;background:#d3ebbb;color:#153b2c;border-radius:10px;font-size:20px}.sidebar .sub{color:#a8c6b8;font-size:11px;letter-spacing:1.7px;text-transform:uppercase;margin:14px 0 40px}.nav{display:grid;gap:8px}.nav button{text-align:left;border:0;background:transparent;color:#b8d1c4;padding:13px}.nav button.active{background:#285043;color:#fff}.nav span{display:inline-block;width:25px}.side-note{margin-top:auto;border-top:1px solid #3b5d4f;padding-top:20px;font-size:12px;line-height:1.7;color:#b7cdc2}.side-note strong{color:#e6f2e9}.main{min-width:0;padding:28px 40px 50px}.topline{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;gap:15px;margin-bottom:34px}.pill{display:inline-flex;align-items:center;gap:7px;border-radius:20px;background:#e8eee9;padding:6px 10px;color:#456354;font-size:11px;font-weight:650}.dot{width:6px;height:6px;border-radius:50%;background:#3a8964}.title-row{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}h1{font-size:32px;letter-spacing:-1.2px;font-weight:650;margin:0 0 8px}h2{font-size:20px;letter-spacing:-.5px;margin:0 0 8px}h3{font-size:15px;margin:0 0 8px}p{line-height:1.6}.muted{color:var(--muted)}.title-row p{margin:0;color:var(--muted)}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.card,.panel{background:white;border:1px solid var(--line);border-radius:14px}.card{padding:21px}.card .value{font-size:30px;font-weight:650;letter-spacing:-1px;margin:10px 0 5px}.card .label{color:var(--muted);font-size:12px}.card .foot{color:var(--muted);font-size:11px}.good{color:var(--green)}.amber{color:#a96715}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;padding:30px;background:#e9f0e8;border:1px solid #d7e4d7;border-radius:16px;margin-top:26px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.7px;color:#50715e;text-transform:uppercase;margin-bottom:13px}.hero h2{font-size:25px;max-width:440px}.hero p{max-width:470px;color:#54705f}.step{display:flex;gap:12px;margin:12px 0;align-items:center}.step b{width:29px;height:29px;display:grid;place-items:center;background:white;border-radius:50%;color:#365d46;font-size:12px}.step span{font-size:13px;color:#456450}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;margin-top:24px}.panel{padding:24px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.panel-head h2{font-size:17px;margin:0}.list-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #edf0ed;align-items:center}.list-row:last-child{border:0}.list-row small{display:block;color:var(--muted);margin-top:5px}.bar{height:6px;background:#e9eeea;border-radius:10px;overflow:hidden;margin-top:14px}.bar i{display:block;background:#83a98c;height:100%;border-radius:10px}.notice{padding:14px 18px;background:#fff4df;border:1px solid #f0dfb8;color:#815d1f;border-radius:10px;line-height:1.6;margin:14px 0}.notice.info{background:#eaf1fa;border-color:#d6e3f2;color:#3f5d7d}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:20px 0}.toolbar input{min-width:250px;flex:1;max-width:400px}input,select{padding:10px 12px;border:1px solid #d2ddd6;border-radius:8px;background:white;color:var(--ink)}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px;cursor:pointer}input[type=number]{width:75px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:white;max-height:68vh}table{border-collapse:separate;border-spacing:0;width:100%;text-align:left}th{background:#f4f7f4;font-size:11px;color:#64796a;font-weight:650;padding:14px;position:sticky;top:0;z-index:3;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 14px;border-bottom:1px solid #edf0ed;font-size:13px}tr:last-child td{border-bottom:0}.person-name{font-weight:600}.person-sub{font-size:11px;color:var(--muted);margin-top:5px}.schedule{min-width:1500px}.schedule th:first-child,.schedule td:first-child{position:sticky;left:0;min-width:205px;background:white;border-right:1px solid var(--line);z-index:2}.schedule th:first-child{z-index:4;background:#f4f7f4}.schedule th:not(:first-child){width:150px;min-width:140px;white-space:normal;line-height:1.5}.schedule td{padding:6px;vertical-align:top}.schedule td:first-child{padding:15px}.slot{font-size:12px;font-weight:500;border:1px solid #e1e9e3;background:#f7faf7;border-radius:7px;width:100%;text-align:left;padding:12px 9px;min-height:51px;line-height:1.5}.slot.locked{background:#e6eee8;border-color:#bdd0c0}.slot.changed{background:#e6f2fe;border-color:#aecce8}.slot.empty{border:1px dashed #d8bf8c;background:#fffbf1;color:#92681e}.slot.off{color:#b9c2bc;background:transparent;border:0;text-align:center;cursor:default}.lock-icon{float:right;font-size:11px;color:#607d69}.legend{font-size:12px;color:var(--muted);display:flex;gap:18px;margin:12px 0}.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;background:#e6f2fe;border:1px solid #aecce8;margin-right:5px}.preview-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e8f1fb;border:1px solid #bbd1e9;border-radius:12px;padding:18px 22px;margin:20px 0}.preview-banner p{margin:5px 0 0;font-size:12px;color:#4a6885}.chip{font-size:11px;background:#eef3ef;padding:4px 8px;border-radius:6px;color:#5a7161}.toggle-grid{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 20px}.toggle-grid label{font-size:12px;border:1px solid var(--line);border-radius:8px;padding:9px;display:flex;align-items:center;gap:8px}.toggle-grid label:has(input:checked){background:#edf5ed;border-color:#b4cbb8}.field{display:grid;gap:8px;margin:18px 0}.field label,.field>span{font-size:12px;font-weight:650}.form-row{display:flex;gap:25px;align-items:center;margin:18px 0}.form-row label{display:flex;gap:8px;align-items:center;font-size:13px}.help{color:var(--muted);font-size:12px;line-height:1.65}.radio-card{display:flex;gap:12px;padding:17px;border:1px solid var(--line);border-radius:10px;margin:12px 0;cursor:pointer}.radio-card:has(input:checked){background:#eef5ed;border-color:#7ea288}.radio-card input{accent-color:var(--green)}.radio-card strong{display:block}.radio-card small{display:block;color:var(--muted);margin-top:7px;line-height:1.5}dialog{border:0;border-radius:17px;width:min(620px,94vw);max-height:90vh;overflow:auto;padding:28px;box-shadow:0 25px 100px #10281a40;color:var(--ink)}dialog::backdrop{background:#102b2266;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.dialog-head button{padding:4px 10px;font-size:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.empty-state{padding:50px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#183c30;color:white;padding:14px 22px;border-radius:10px;box-shadow:0 8px 25px #0002;max-width:80vw;display:none;z-index:100}#toast.show{display:block}.loading{padding:40px}.progress{height:4px;background:#e8eee9;overflow:hidden;margin:25px 0;border-radius:10px}.progress:after{content:'';display:block;width:40%;height:100%;background:#36745b;animation:progress 1.5s infinite ease-in-out}@keyframes progress{from{transform:translateX(-100%)}to{transform:translateX(350%)}}.issues{max-height:260px;overflow:auto}.issue{padding:10px 0;font-size:12px;line-height:1.5;border-bottom:1px solid #eee}.error{color:#a23e31;background:#fff0e9;border-radius:8px;padding:12px;margin-top:15px;line-height:1.5}.position-id{font-size:11px;font-weight:700;color:#527460}.saved{font-size:11px;color:var(--muted)}@media(max-width:1000px){.shell{grid-template-columns:180px 1fr}.sidebar{padding:24px 14px}.main{padding:25px}.cards{gap:10px}.card{padding:16px}.two-col{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.hero .steps{display:none}}@media(max-width:720px){.shell{display:block}.sidebar{position:static;height:auto;padding:15px}.sidebar .sub,.side-note{display:none}.brand{font-size:16px}.nav{display:flex;margin-top:15px;gap:2px}.nav button{padding:10px;font-size:12px}.nav span{display:none}.main{padding:20px 15px}.topline{margin-bottom:20px}.title-row{align-items:start;flex-direction:column;gap:15px}h1{font-size:28px}.cards{grid-template-columns:repeat(2,1fr)}.hero{padding:23px}.preview-banner{align-items:start;flex-direction:column}.form-row{flex-wrap:wrap}.table-wrap{max-height:65vh}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

[hidden]{display:none!important}details summary{cursor:pointer;font-weight:600;padding:10px 0}details{margin:15px 0}

.keymen-panel{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:#edf3e9;border:1px solid #d8e4d0;border-radius:14px;padding:24px}.keymen-panel .eyebrow{margin-bottom:8px}.keymen-panel h2{display:flex;align-items:center;gap:10px}.keymen-panel p{margin-bottom:0}.keymen-names{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.keyman-person{display:flex;gap:10px;align-items:center;font-size:13px;background:white;border-color:#d4dfca}.key-symbol{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:#e9efcf;color:#5e7030;font-size:12px}.keyman-badge{font-size:10px;font-weight:600;color:#6c6b2b;background:#f1edcd;padding:3px 6px;border-radius:5px;margin-left:5px}.contact-email{overflow-wrap:anywhere;max-width:260px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form input{width:100%;min-width:0}.contact-form .field{margin:10px 0}.keyman-edit{display:flex;align-items:center;gap:8px;margin:20px 0}.keyman-options{max-height:48vh;overflow:auto}.keyman-option{display:flex;gap:12px;align-items:center;border-bottom:1px solid #e8ede7;padding:13px 4px}.keyman-option small{display:block;color:#6d7d70;margin-top:4px}.removed-people{padding:20px;background:white;border:1px solid #dfe7e2;border-radius:12px;margin-top:22px}.people-table{min-width:650px}.dialog-actions{position:sticky;bottom:-28px;background:white;padding:18px 0 8px;border-top:1px solid #edf0ed;z-index:5}@media(max-width:720px){.keymen-panel{flex-direction:column}.contact-form{grid-template-columns:1fr}.keyman-edit{flex-wrap:wrap}}

/* Keep person actions visible in narrow planner windows. */
.people-table td:last-child,.people-table th:last-child{position:sticky;right:0;background:white;box-shadow:-1px 0 0 var(--line);z-index:2;white-space:nowrap}.people-table th:last-child{background:#f4f7f4;z-index:4}@media(min-width:721px) and (max-width:1000px){.people-table{min-width:0}.people-table td,.people-table th{padding:12px 9px}.people-table td:last-child button{padding:6px 8px}.people-table .contact-email{max-width:180px}}

.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.map-card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.map-preview{display:flex;align-items:center;justify-content:center;width:100%;height:180px;padding:0;border:0;border-radius:0;background:#e8eee7}.map-preview img{width:100%;height:100%;object-fit:contain}.map-details{padding:20px}.map-details h2{font-size:18px;overflow-wrap:anywhere}.pdf-icon{display:inline-grid;place-items:center;width:65px;height:80px;background:white;border:1px solid #c9d6c9;border-radius:8px;font-weight:750;color:#497259;font-size:22px}.map-empty{text-align:center;background:#eaf0e7;border:1px dashed #bacbb6;border-radius:16px;padding:45px 24px}.map-empty h2{margin-top:24px}.map-image{display:block;width:100%;max-height:65vh;object-fit:contain}.map-document{width:100%;height:65vh;border:1px solid var(--line);border-radius:8px}.button-link{display:inline-block;border:1px solid var(--line);border-radius:9px;padding:10px 15px;color:var(--green);text-decoration:none;font-weight:600}.import-steps{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:22px}.import-steps b{color:var(--green)}.import-sample{max-height:160px}.import-review{max-height:46vh;overflow:auto;margin-top:15px}.import-row{border:1px solid var(--line);padding:15px;border-radius:10px;margin-bottom:10px}.import-row>label{display:flex;align-items:center;gap:9px;margin-bottom:10px}.import-row .chip{display:inline-block}.import-contact{font-size:12px;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}.import-contact s{color:#8c625b}.import-role{font-size:12px;margin:12px 0 0!important}.import-role select{max-width:100%}.import-error{color:#a23e31;font-size:12px;margin-bottom:0}.nav{overflow:visible}@media(max-width:720px){.nav{flex-wrap:wrap}.import-role{flex-wrap:wrap}.contact-form select{max-width:100%}}
.status-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:6px 8px;border-radius:20px;color:#6a736d;background:#f1f3f1;white-space:nowrap}.status-toggle i{width:7px;height:7px;border-radius:50%;background:#a7b0a9}.status-toggle.is-active{color:#176954;background:#e9f4e9;border-color:#bcd5c2}.status-toggle.is-active i{background:#2d8b58}

.map-workspace-toolbar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:20px 0}.map-workspace-toolbar h2{font-size:17px;margin-bottom:4px}.map-workspace-toolbar>.actions{margin-left:auto}.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:20px;align-items:start}.map-canvas{overflow:auto;max-height:72vh;background:white;border:1px solid var(--line);border-radius:12px}.map-stage{position:relative;line-height:0;min-width:100%}.map-stage img{width:100%;height:auto;display:block}.map-stage.editing{cursor:crosshair}.map-hotspot{position:absolute;transform:translate(-50%,-50%);width:2.65%;min-width:16px;aspect-ratio:1;padding:0;border:2px solid #168569;border-radius:50%;background:#1685690b;box-shadow:0 0 0 1px #fff9}.map-hotspot:hover,.map-hotspot.selected{background:#ffcf5d45;border:3px solid #e2a31c;z-index:4;box-shadow:0 0 0 3px #ffdc7b70}.map-hotspot.inactive{border-color:#567ca5}.map-hotspot.unlinked,.map-hotspot.removed{border-color:#89918b;border-style:dashed}.map-position-panel{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;max-height:79vh;overflow:auto}.map-position-panel h2{font-size:19px;line-height:1.35}.map-position-panel .notice{font-size:12px;padding:12px}.map-position-panel #editSelectedMarker{margin-top:14px}.map-position-panel .primary{font-size:12px;padding:10px}.map-assignment-list .list-row{font-size:12px;padding:10px 0}.map-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px;color:var(--muted);font-size:11px}.map-legend i{display:inline-block;width:9px;height:9px;border:2px solid #168569;border-radius:50%;margin-right:5px}.map-legend i.inactive{border-color:#567ca5}.map-legend i.unlinked{border-color:#89918b;border-style:dashed}.map-marker-list{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.map-marker-list button{min-width:35px}.map-schedule-link{margin-top:10px;color:var(--green)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.map-workspace{grid-template-columns:1fr}.map-position-panel{max-height:none}.map-assignment-list{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}}@media(max-width:720px){.map-workspace-toolbar>.actions{margin-left:0}.map-hotspot{min-width:14px;border-width:1.5px}}
/* Flexible support and personal time windows */
.backup-panel{background:#f2f7fb;border-color:#d5e1ea;margin-bottom:22px}.backup-panel h2{margin:6px 0}.backup-team{display:flex;flex-wrap:wrap;gap:14px}.backup-person{padding:8px 12px;background:white;border-radius:12px;max-width:330px}.backup-person small{display:block;color:#536574;line-height:1.6;margin-top:6px}.availability-link{margin-top:7px}.unavailable-row{display:flex;align-items:end;gap:12px;margin:14px 0}.unavailable-row label{flex:1;display:flex;flex-direction:column;gap:6px}.unavailable-row input{width:100%;min-width:0}.unavailable-row button{margin-bottom:2px}@media(max-width:600px){.unavailable-row{flex-wrap:wrap}.backup-panel{align-items:start;flex-direction:column}}
.email-recipient-list{max-height:360px;overflow:auto;margin:18px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.email-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.7 inherit;background:#f3f7f4;padding:18px;border-radius:12px;max-height:340px;overflow:auto}.preview-link{display:inline-block;padding:10px 12px;border:1px solid #d4dfd7;border-radius:9px;color:#245239;text-decoration:none}.field textarea{font:inherit;border:1px solid #d4dfd7;border-radius:8px;padding:12px;width:100%}#emailDelivery details{padding:12px 0;border-bottom:1px solid #d4dfd7}
/* Team management and touch-friendly controls */
.designated-panel{margin-bottom:22px}.designation-teams{display:grid;grid-template-columns:1fr 1fr;gap:24px}.designation-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.designation-option label{font-weight:600}.designation-option small{display:block;font-weight:400;color:var(--muted);margin-top:4px}.designation-option select{min-height:44px;max-width:48%}.designation-options{max-height:50vh;overflow:auto}
@media(max-width:720px){.nav{flex-wrap:wrap}.nav button{min-height:44px;flex:1 0 28%}.panel-head{flex-wrap:wrap}.designation-teams{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.panel{padding:18px}input,select,textarea{font-size:16px}button,.small{min-height:44px}.topline{flex-wrap:wrap}.toolbar input{min-width:0;width:100%}.designation-option{align-items:flex-start}.designation-option select{min-width:145px}.keymen-panel{flex-direction:column}dialog{max-width:calc(100vw - 24px);box-sizing:border-box}.contact-email{overflow-wrap:anywhere}}

.quick-schedule{display:none}.quick-slot{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0}.quick-slot p{margin:6px 0 0}.quick-slot button{flex-shrink:0}
@media(max-width:720px){.quick-schedule{display:block}.schedule-grid{display:none}}
:root {color-scheme:light}
.login-page {max-width:540px;margin:7vh auto;padding:24px;}
.login-page #signin {margin:28px 0;}
.login-page h1 {font-size:2.2rem;}
#auditRows .list-row {gap:16px;flex-wrap:wrap;}

.mobile-account-actions{display:none}
@media(max-width:720px){.mobile-account-actions{display:flex;justify-content:flex-end;gap:8px;margin:0 0 18px}.mobile-account-actions button{min-height:44px}}
