:root{--bg:#090e12;--side:#0b1014;--panel:#10171b;--panel2:#141d22;--line:#293238;--text:#e8ecee;--muted:#8d999f;--yellow:#f4c400;--green:#45a75a;--blue:#2f67ad;--red:#d94a3e;--road:#30363a;--input:#0d1418}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:210px minmax(0,1fr)}.sidebar{background:linear-gradient(180deg,#080c0f,#0b1216);border-right:1px solid #20282d;padding:18px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand-word{padding:2px 8px 18px}.brand-word strong{font-size:26px;line-height:1;display:block;letter-spacing:-1px}.brand-word span{display:block;color:var(--yellow);font-size:12px;font-weight:900;letter-spacing:.7px;margin-top:1px}.sidebar nav{display:grid;gap:4px}.nav-item{background:transparent;border:0;color:#c1c8cc;text-align:left;padding:12px 10px;border-radius:3px;cursor:pointer;text-transform:uppercase;font-size:12px}.nav-item:hover,.nav-item.active{background:#141c20;color:#fff}.nav-item.active{color:var(--yellow);border-left:3px solid var(--yellow)}.nav-icon{display:inline-block;width:27px;font-size:18px}.side-spacer{flex:1}.reset-project{background:#7c1b1a;border:1px solid #b62f29;color:#fff;padding:11px 10px;border-radius:4px;font-weight:800;cursor:pointer}.side-card{margin-top:16px;color:var(--muted);font-size:11px}.side-card small,.side-card b,.side-card span{display:block}.side-card b{color:#c9d0d3;margin:5px 0 2px}.main{min-width:0;padding:0 14px 28px}.topbar{min-height:67px;border-bottom:1px solid #252d31;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 3px}.topbar h1{font-size:27px;margin:0;letter-spacing:-.6px}.topbar p{margin:3px 0 0;color:var(--muted)}.top-actions{display:flex;align-items:end;gap:10px}.top-actions label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:800}.top-actions input,.top-actions a{background:#0e1519;border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:4px}.export-link{text-decoration:none;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));gap:7px;margin:12px 0}.kpi{background:linear-gradient(180deg,#11191d,#0f161a);border:1px solid #273036;border-radius:5px;padding:11px 13px;min-height:78px}.kpi span{font-size:9px;color:#aab3b7}.kpi strong{display:block;font-size:20px;margin:7px 0 2px;font-weight:500}.kpi small{font-size:9px;color:var(--muted)}.kpi.progress strong{color:#72cf58}.panel{background:linear-gradient(180deg,#10171b,#0d1418);border:1px solid #263036;border-radius:5px;margin:10px 0;padding:10px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:9px}.section-title>div:first-child>span{font-size:11px;font-weight:900;color:var(--yellow)}.section-title h2{font-size:15px;margin:2px 0 0;font-weight:600}.section-title.compact{margin-bottom:6px}.map-key,.gantt-legend{display:flex;gap:16px;flex-wrap:wrap;color:#aeb7bb;font-size:10px}.map-key span,.gantt-legend span{display:flex;align-items:center;gap:6px}.key{width:10px;height:10px;border-radius:50%;display:inline-block}.key.catch{background:#101010;border:1px solid #8f999d}.key.pole{background:var(--red)}.key.crew-key{background:#2f7ed8;border:1px solid #7eb8ff}.key.equipment-key{background:#d94a3e;border:1px solid #ff8b82}.key.mill{width:18px;border-radius:2px;background:#d89b18}.road-viewport{overflow-x:auto;border:1px solid #38422d;border-radius:4px;background:#1b231b}.road-canvas{position:relative;width:5000px;height:330px;touch-action:pan-x pan-y;overflow:hidden;background:#1c281b}.terrain{position:absolute;left:0;right:0;background:repeating-linear-gradient(120deg,#1e2c1c 0 18px,#23331f 18px 35px,#192619 35px 49px)}.terrain.top{top:0;height:112px}.terrain.bottom{top:184px;bottom:0}.road{position:absolute;left:40px;right:40px;top:108px;height:78px;background:linear-gradient(180deg,#373d40,#282d30 48%,#353a3d);border:1px solid #82898b;z-index:2}.road-edge{position:absolute;left:0;right:0;border-top:2px solid #c8c9bd}.top-edge{top:5px}.bottom-edge{bottom:5px}.road-center{position:absolute;left:0;right:0;top:38px;border-top:2px dashed #d7b739}.station-tick{position:absolute;top:103px;height:89px;width:1px;background:#6f787b;opacity:.65;z-index:5}.station-tick.major{top:96px;height:103px;background:#a1aaad}.station-label{position:absolute;top:202px;width:48px;margin-left:-24px;text-align:center;font-size:9px;color:#c2c8ca;z-index:7}.station-label.alt{top:218px}.reset-line{position:absolute;top:88px;height:116px;width:2px;background:var(--yellow);z-index:7}.reset-label{position:absolute;top:72px;width:90px;margin-left:-45px;text-align:center;color:var(--yellow);font-size:8px;font-weight:900;z-index:7}.milling-section{position:absolute;top:110px;height:74px;background:rgba(216,155,24,.63);border-top:2px solid #f4c400;border-bottom:2px solid #f4c400;z-index:3}.entrance-marker{position:absolute;top:178px;width:86px;margin-left:-43px;text-align:center;z-index:8;color:#dfe5e7}.entrance-pavement{display:block;width:27px;height:39px;background:#343a3d;border-left:1px solid #929a9d;border-right:1px solid #929a9d;margin:0 auto 2px;position:relative}.entrance-pavement:before{content:"";position:absolute;left:12px;top:4px;bottom:2px;border-left:1px dashed #d7b739}.entrance-marker b{display:block;font-size:8px;font-weight:700}.entrance-marker small{display:block;color:var(--yellow);font-size:8px}.asset-dot{position:absolute;transform:translateX(-50%);background:transparent;border:0;padding:0;z-index:10;color:#dce2e4;cursor:pointer;text-align:center}.asset-dot span{display:block;width:11px;height:11px;border-radius:50%;margin:auto;box-shadow:0 0 0 1px #080b0d}.asset-dot b{display:block;font-size:8px;margin-top:3px;font-weight:500;white-space:nowrap}.asset-dot.catch_basin{top:245px}.asset-dot.catch_basin span{background:#050505;border:1px solid #a6adb0}.asset-dot.pole_wrap{top:60px}.asset-dot.pole_wrap span{background:var(--red);border:1px solid #ff746a}.asset-dot.complete span{background:var(--green);border-color:#8fe69a}.resource-marker{position:absolute;z-index:14;transform:translateX(-50%);height:29px;display:flex;align-items:center;gap:4px;background:#0b1013;border:1px solid #596267;border-radius:3px;padding:3px 5px;cursor:grab;user-select:none;box-shadow:0 2px 5px #0008}.resource-marker:active{cursor:grabbing}.resource-marker.crew-marker{background:#0d2034;border-color:#2f7ed8;box-shadow:inset 3px 0 0 #2f7ed8,0 2px 5px #0008}.resource-marker.equipment-marker{background:#2a1211;border-color:#d94a3e;box-shadow:inset 3px 0 0 #d94a3e,0 2px 5px #0008}.resource-marker.crew-marker .resource-icon{color:#69aaf0}.resource-marker.equipment-marker .resource-icon{color:#ef6d63}.resource-marker.crew-marker .resource-name{color:#cfe6ff}.resource-marker.equipment-marker .resource-name{color:#ffd6d2}.resource-icon{width:18px;height:18px;color:var(--yellow);display:grid;place-items:center}.resource-icon svg,.table-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.resource-name{font-size:8px;font-weight:800;white-space:nowrap}.resource-marker small{color:#aab4b8;font-size:7px;white-space:nowrap;border-left:1px solid #374046;padding-left:4px}.map-help{font-size:9px;color:var(--muted);padding:7px 3px 0}.action-row{display:flex;gap:7px}.button{border-radius:3px;border:1px solid #39444a;padding:8px 13px;background:#18232a;color:#eef2f4;font-weight:700;font-size:11px;cursor:pointer}.button.primary{background:#1e652c;border-color:#2c8c3e}.button.secondary{background:#133d6a;border-color:#285f98}.button.small{padding:7px 10px}.button.danger{background:#7c1b1a;border-color:#b62f29}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}.production-table{min-width:1180px}.production-table th,.resource-table th{font-size:8px;font-weight:600;color:#a5afb3;text-transform:uppercase;padding:7px 6px;border:1px solid #2b353a;text-align:left}.production-table td,.resource-table td{font-size:10px;padding:6px;border:1px solid #263036;vertical-align:middle}.production-table tbody tr:hover,.resource-table tbody tr:hover{background:#141d22}.production-table input,.production-table select,.add-resource input,.add-resource select{background:var(--input);border:1px solid #39444a;color:#e4eaec;border-radius:3px;padding:5px 6px;min-height:29px}.qty{width:75px;text-align:right}.station-input{width:96px}.date-input{width:123px}.production-table input[readonly]{color:#b7c0c4;background:#11181c}.item-name{font-weight:700}.item-sub{display:block;color:var(--muted);font-size:8px;margin-top:2px}.pct{font-weight:900;color:#74cd62}.dash{color:#67747a}.status-line{color:#93a0a5;font-size:10px;padding:8px 2px 1px}.resource-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:10px}.resource-panel{margin:0}.add-resource{display:flex;gap:6px;margin-bottom:7px}.add-resource input{min-width:0;flex:1}.resource-table{min-width:470px}.table-icon{display:inline-grid;width:15px;height:15px;margin-right:6px;color:var(--yellow);vertical-align:middle}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:5px}.remove-link{border:0;background:transparent;color:#d37a72;font-size:9px;cursor:pointer}.empty{color:var(--muted);text-align:center!important}.gantt-panel{padding-bottom:12px}.gantt{border:1px solid #263036;overflow-x:auto;min-width:0}.gantt-head,.gantt-row{display:grid;grid-template-columns:210px minmax(700px,1fr);min-height:31px}.gantt-head{background:#0b1216}.gantt-row:nth-child(even){background:#0e161a}.gantt-name{border-right:1px solid #263036;border-bottom:1px solid #202a2f;padding:7px 8px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-name b{display:inline-block;width:20px;color:#77848a}.gantt-time{position:relative;border-bottom:1px solid #202a2f;background-image:linear-gradient(to right,#202a2f 1px,transparent 1px);background-size:7.142857% 100%;min-width:700px}.gantt-head .gantt-time span{position:absolute;top:0;height:100%;border-right:1px solid #384148;display:grid;place-items:center;font-size:8px;color:#aab4b8}.gantt-bar{position:absolute;height:8px;border-radius:1px;z-index:2}.gantt-bar.planned{top:7px;background:var(--blue)}.gantt-bar.actual{top:17px;background:var(--green)}.today-line{position:absolute;top:0;bottom:0;border-left:1px dashed var(--yellow);z-index:5}.gantt-empty{padding:24px;text-align:center;color:var(--muted)}.gantt-legend i{display:inline-block;width:18px;height:7px}.gantt-legend .planned{background:var(--blue)}.gantt-legend .actual{background:var(--green)}.gantt-legend .today{border-left:1px dashed var(--yellow);height:12px;width:1px}.daily-panel textarea{width:100%;min-height:120px;background:#0c1317;border:1px solid #354047;color:#e8edef;border-radius:3px;padding:10px;resize:vertical}.modal-backdrop{position:fixed;inset:0;background:#000b;display:grid;place-items:center;padding:20px;z-index:100}.modal-backdrop[hidden]{display:none}.modal-card{width:min(480px,100%);background:#11191d;border:1px solid #3b464c;border-radius:5px;padding:20px}.modal-card h2{margin:0 0 8px}.modal-card p{color:#a5b0b4;line-height:1.5}.modal-card label{display:block;font-size:11px}.modal-card input{display:block;width:100%;background:#0c1317;border:1px solid #3c474d;color:#fff;padding:9px;margin-top:6px}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}.resource-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{display:flex;overflow-x:auto}.side-spacer,.side-card,.reset-project{display:none}.main{padding:0 8px 20px}.topbar,.section-title{align-items:flex-start;flex-direction:column}.topbar h1{font-size:21px}.kpis{grid-template-columns:repeat(2,1fr)}.road-canvas{height:320px}.map-key{display:none}.gantt-head,.gantt-row{grid-template-columns:150px minmax(700px,1fr)}}

/* V4 map refinements */
.road-canvas{height:370px}
.terrain.top{height:98px}
.terrain.bottom{top:212px}
.road{top:96px;height:114px}
.road-center{top:56px}
.milling-section{top:98px;height:110px}
.station-tick{top:91px;height:125px}
.station-tick.major{top:84px;height:139px}
.station-label{top:225px}
.station-label.alt{top:241px}
.reset-line{top:77px;height:148px}
.reset-label{top:61px}
.entrance-marker{top:205px}
.entrance-pavement{height:47px}
.asset-dot.catch_basin{top:292px}
.asset-dot.pole_wrap{top:46px}
.resource-marker{height:16px;min-height:16px;padding:1px 3px;gap:2px;border-radius:2px;box-shadow:0 1px 3px #000a;touch-action:none}
.resource-icon{width:12px;height:12px}
.resource-name{font-size:7px;line-height:1}
.resource-marker small{font-size:6px;line-height:1;padding-left:3px}
.key.culvert{border-radius:1px;background:repeating-linear-gradient(45deg,#d9e0e3 0 2px,#1c2529 2px 4px);border:1px solid #d9e0e3}
.box-culvert{position:absolute;top:0;z-index:9;transform:translateX(-50%);width:96px;height:260px;pointer-events:none;text-align:center;color:#e8edef}
.box-culvert .culvert-crossing{position:absolute;left:39px;top:84px;width:18px;height:142px;border:2px solid #dfe5e7;background:repeating-linear-gradient(45deg,rgba(223,229,231,.75) 0 2px,rgba(19,26,30,.85) 2px 5px);box-shadow:0 0 0 1px #080b0d}
.box-culvert .culvert-crossing:before,.box-culvert .culvert-crossing:after{content:"";position:absolute;left:-7px;width:28px;border-top:2px solid #dfe5e7}
.box-culvert .culvert-crossing:before{top:7px}.box-culvert .culvert-crossing:after{bottom:7px}
.box-culvert b{position:absolute;top:59px;left:0;right:0;font-size:8px;letter-spacing:.4px;color:#fff}
.box-culvert small{position:absolute;top:70px;left:0;right:0;font-size:8px;color:var(--yellow)}
.crew-table{min-width:670px}
.crew-members{width:100%;min-width:190px;background:var(--input);border:1px solid #39444a;color:#e4eaec;border-radius:3px;padding:5px 6px;transition:border-color .15s,background .15s}
.crew-members:focus{outline:1px solid var(--yellow);border-color:var(--yellow)}
.crew-members.saved{border-color:var(--green);background:#102317}
.slot-note{display:block;margin-top:2px;color:#6f7b80;font-size:7px}

/* V5 roadway completion bands + delay-aware schedule */
.production-table{min-width:1450px}
.delay-input{width:72px!important;text-align:center}
.forecast-date{display:inline-block;min-width:92px;color:#e5ecef;font-weight:700;white-space:nowrap}
.key.shade{width:18px;height:7px;border-radius:1px;border:1px solid rgba(255,255,255,.25)}
.key.shade.milling{background:#3da851}.key.shade.rough{background:#3478d4}.key.shade.final{background:#d94a3e}.key.shade.subgrade{background:#e7c91a}.key.shade.fdb{background:#8b9297}
.completion-band{position:absolute;height:11px;z-index:4;border-top:1px solid rgba(255,255,255,.38);border-bottom:1px solid rgba(0,0,0,.45);opacity:.9;pointer-events:none}
.completion-band.milling{top:103px;background:#36a64d}
.completion-band.rough{top:120px;background:#3478d4}
.completion-band.final{top:137px;background:#d94a3e}
.completion-band.subgrade{top:154px;background:#e4c817}
.completion-band.fdb{top:171px;background:#8b9297}
.gantt-bar.forecast{top:7px;background:#d8872f;z-index:3}
.gantt-legend .forecast{background:#d8872f}
.gantt-name em{font-style:normal;color:#e6a34e;font-size:8px;margin-left:4px}

/* V6 baseline schedule + activity controls */
.baseline-status{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border-radius:6px;border:1px solid #46505d;font-size:11px;font-weight:800;letter-spacing:.06em;white-space:nowrap}.baseline-status.locked{color:#9ee6aa;border-color:#2f8f46;background:rgba(47,143,70,.12)}.baseline-status.unlocked{color:#f2cf5b;border-color:#8e7331;background:rgba(142,115,49,.12)}
.order-controls{display:flex;gap:4px;justify-content:center}.order-btn{width:28px;height:28px;border:1px solid #454d58;border-radius:5px;background:#20262e;color:#d8dde4;cursor:pointer;font-size:13px;line-height:1}.order-btn:hover:not(:disabled){border-color:#e1ba2f;color:#f1ca3f}.order-btn:disabled{opacity:.25;cursor:not-allowed}
.schedule-locked-note{display:block;margin-top:3px;font-size:9px;color:#8f99a5;text-transform:uppercase;letter-spacing:.05em}.date-input:disabled{opacity:.58;cursor:not-allowed;background:#15191f}.production-table th:first-child,.production-table td:first-child{width:72px;text-align:center}.production-table th:nth-child(2){min-width:170px}
#activityModal .modal-card select{width:100%;margin-top:7px;background:#171c22;color:#e8ebef;border:1px solid #414956;border-radius:5px;padding:10px}
@media(max-width:1100px){.schedule-actions{gap:6px}.baseline-status{order:-1}}

/* V7 administrative task tracker */
.admin-panel{padding-bottom:12px}.admin-summary{display:flex;align-items:baseline;gap:6px;color:#87949a;font-size:9px}.admin-summary strong{font-size:17px;color:#e8edef;margin-left:9px}.admin-summary strong:first-child{color:var(--yellow);margin-left:0}.admin-add-row{display:grid;grid-template-columns:minmax(230px,1.05fr) minmax(260px,1.3fr) auto;gap:7px;margin:7px 0 10px}.admin-add-row input,.admin-task-name,.admin-task-note{width:100%;min-width:0;background:var(--input);border:1px solid #39444a;color:#e4eaec;border-radius:3px;padding:7px 8px;min-height:34px}.admin-add-row input:focus,.admin-task-name:focus,.admin-task-note:focus{outline:1px solid var(--yellow);border-color:var(--yellow)}.admin-task-head,.admin-task-row{display:grid;grid-template-columns:42px minmax(220px,.9fr) minmax(280px,1.35fr) 100px;gap:7px;align-items:center}.admin-task-head{padding:5px 6px;color:#87949a;font-size:8px;text-transform:uppercase;border-bottom:1px solid #293238}.admin-task-list{border:1px solid #263036;border-radius:3px;overflow:hidden}.admin-task-row{padding:7px 6px;border-bottom:1px solid #202a2f;background:#0e1519;transition:background .15s}.admin-task-row:last-child{border-bottom:0}.admin-task-row:nth-child(even){background:#10191d}.admin-task-row.complete{background:#0d1812}.admin-task-row.complete .admin-task-name{text-decoration:line-through;color:#78857d}.admin-task-row.complete .admin-task-note{color:#78857d}.admin-check{display:grid;place-items:center;cursor:pointer}.admin-check input{position:absolute;opacity:0;pointer-events:none}.admin-check span{width:22px;height:22px;border:1px solid #59646a;border-radius:3px;background:#0a1013;position:relative}.admin-check input:checked+span{background:#1f7131;border-color:#43a758}.admin-check input:checked+span:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:900}.admin-check input:focus-visible+span{outline:2px solid var(--yellow);outline-offset:2px}.admin-row-actions{display:flex;justify-content:flex-end;gap:4px}.admin-move,.admin-delete{width:28px;height:28px;border:1px solid #414b51;border-radius:3px;background:#172026;color:#cfd6d9;cursor:pointer}.admin-move:disabled{opacity:.25;cursor:not-allowed}.admin-delete{color:#e0847d;border-color:#5d3431}.admin-task-name.saved,.admin-task-note.saved{border-color:var(--green);background:#102317}.admin-empty{padding:20px;color:#7f8c92;text-align:center;font-size:10px}.admin-panel .status-line{min-height:24px}
@media(max-width:900px){.admin-add-row{grid-template-columns:1fr}.admin-task-head{display:none}.admin-task-row{grid-template-columns:42px 1fr 88px}.admin-task-note{grid-column:2/4}.admin-row-actions{grid-column:3;grid-row:1}.admin-summary{align-self:flex-end}}


/* V8 one-click project database backup */
.backup-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border:1px solid #39764a;border-radius:4px;background:#14301d;color:#aee4bb;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:.03em;white-space:nowrap}.backup-link:before{content:"↓";margin-right:6px;font-size:14px}.backup-link:hover{border-color:#54a86a;background:#193d25;color:#d1f2d9}.backup-link:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}

/* V9 hosting/authentication */
.signed-in{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;padding:0 4px}.signed-in b{font-size:12px;color:#f4f7f9}.signed-in small{font-size:10px;color:#8e9aa4;margin-top:3px}.logout-form{margin:0}.logout-button{font:inherit;cursor:pointer}.auth-body{min-height:100vh;background:#0b1116;color:#edf2f5;display:grid;place-items:center;padding:24px;font-family:Arial,sans-serif}.auth-card{width:min(430px,100%);background:#121a20;border:1px solid #2c3740;border-radius:12px;padding:28px}.auth-brand strong{font-size:28px;letter-spacing:1px}.auth-brand span{display:block;color:#f2c500;font-weight:800;letter-spacing:1.5px;font-size:12px}.auth-card h1{margin:28px 0 6px;font-size:24px}.auth-card p{color:#9aa5ad}.auth-card label{display:block;margin:16px 0 6px;font-size:12px;color:#c6d0d6}.auth-card input,.admin-shell input,.admin-shell select{box-sizing:border-box;width:100%;background:#0e151a;color:#eef3f6;border:1px solid #34404a;border-radius:7px;padding:11px}.auth-card button{width:100%;margin-top:20px;padding:12px;background:#f2c500;border:0;border-radius:7px;font-weight:800;cursor:pointer}.auth-error,.flash-error{background:#3b1719;border:1px solid #7a2b30;color:#ffc5c8;padding:10px;border-radius:7px;margin-top:15px}.flash-success{background:#14301e;border:1px solid #2d6940;color:#b9efc8;padding:10px;border-radius:7px;margin:10px 0}.admin-body{margin:0;background:#0b1116;color:#edf2f5;font-family:Arial,sans-serif}.admin-shell{max-width:1100px;margin:0 auto;padding:28px}.admin-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:24px}.admin-top a{color:#f2c500;text-decoration:none}.admin-card{background:#121a20;border:1px solid #2c3740;border-radius:10px;padding:20px;margin-bottom:18px}.admin-card h2{margin-top:0}.admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}.admin-users{width:100%;border-collapse:collapse}.admin-users th,.admin-users td{border-bottom:1px solid #27323a;padding:10px;text-align:left;vertical-align:top}.admin-users th{color:#f2c500;font-size:12px}.admin-users form{display:grid;grid-template-columns:130px 100px 1fr auto;gap:8px;align-items:center}.admin-note{color:#9aa5ad;font-size:13px}.restore-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.restore-form input[type=file]{width:auto;min-width:280px}.admin-button{background:#f2c500;color:#111;border:0;border-radius:6px;padding:9px 13px;font-weight:800;cursor:pointer}.danger-note{border-left:3px solid #d34b4b;padding-left:12px;color:#d5dde2}@media(max-width:760px){.admin-grid{grid-template-columns:1fr}.admin-users form{grid-template-columns:1fr}.signed-in{display:none}}

/* V9.2 schedule relationships, daily Gantt scale, and crew-count improvements */
.resource-marker{height:34px;padding:4px 7px;gap:5px}
.resource-icon{width:23px;height:23px}
.resource-name{font-size:9px}
.resource-marker small{font-size:8px}
.production-table{min-width:1780px}
.schedule-link-input{min-width:92px;max-width:180px;background:var(--input);border:1px solid #39444a;color:#e4eaec;border-radius:3px;padding:5px 6px;min-height:29px}
.predecessor{min-width:155px}
.relationship{min-width:74px}
.employee-count{font-weight:900;text-align:center;color:#d9e4e8;font-size:12px!important}

.gantt{position:relative;overflow-x:auto;overflow-y:hidden}
.gantt-chart-inner{position:relative;min-width:max-content}
.gantt-head.daily,.gantt-row{display:grid;grid-template-columns:210px max-content}
.gantt-head.daily{height:50px;min-height:50px;background:#0b1216;position:relative;z-index:4}
.gantt-head.daily .gantt-name{height:50px;display:flex;align-items:center}
.gantt-row{height:34px;min-height:34px;position:relative}
.gantt-row .gantt-name{height:34px;display:flex;align-items:center;padding:6px 8px}
.gantt-time{position:relative;min-width:0;background-image:linear-gradient(to right,#202a2f 1px,transparent 1px);background-repeat:repeat-x}
.gantt-axis{height:50px;background:none;overflow:hidden}
.gantt-day-cell{position:absolute;top:0;height:50px;border-left:1px solid #303a3f;display:flex!important;flex-direction:column;align-items:center;justify-content:center;font-size:8px;color:#c6ced1;background:#0d1519}
.gantt-day-cell b{font-size:9px;font-weight:800;line-height:1.1}
.gantt-day-cell small{font-size:7px;color:#8d999e;line-height:1.1;min-height:9px;text-transform:uppercase}
.gantt-day-cell.sunday{background:#151a1d;border-right:3px solid #566268;color:#778287}
.gantt-day-cell.week-start{border-left:2px solid #566268}
.gantt-body{position:relative}
.gantt-links{position:absolute;pointer-events:none;overflow:visible;z-index:6}
.gantt-link{fill:none;stroke:#aeb8bc;stroke-width:1;opacity:.72;vector-effect:non-scaling-stroke}
.gantt-bar{height:9px;z-index:3}
.gantt-bar.planned{top:7px}
.gantt-bar.forecast{top:7px}
.gantt-bar.actual{top:19px}
.today-line{z-index:7}

.schedule-summary-wrap{margin-top:14px;border-top:1px solid #303a3f;padding-top:12px}
.schedule-summary-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px}
.schedule-summary-title span{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--yellow)}
.schedule-summary-title small{font-size:9px;color:var(--muted)}
.schedule-summary-table{width:100%;min-width:760px;border-collapse:collapse}
.schedule-summary-table th{font-size:8px;text-transform:uppercase;color:#9da8ad;text-align:left;padding:7px 8px;border:1px solid #2b353a;background:#0d1519}
.schedule-summary-table td{font-size:10px;padding:7px 8px;border:1px solid #263036}
.schedule-summary-table td:first-child{width:42px;color:#7f8b90;font-weight:800}
.schedule-summary-table td:nth-child(3){font-weight:900;text-align:center}

@media(max-width:760px){.gantt-head.daily,.gantt-row{grid-template-columns:150px max-content}.gantt-links{margin-left:-60px}}
