:root{--bright-primary-brand-charcoal-grey: #3E434D;--bright-primary-brand-red-enx: #E30613;--bright-primary-neutral-white: #FFFFFF;--bright-primary-neutral-light-1: #F9F9F9;--bright-primary-neutral-light-2: #EDEDED;--bright-primary-neutral-light-3: #D8DADB;--bright-primary-neutral-light-4: #C1C1C1;--bright-primary-neutral-black: #000000;--bright-primary-neutral-dark-1: #0F141D;--bright-primary-neutral-dark-2: #1D222A;--bright-primary-neutral-dark-3: #222731;--bright-primary-neutral-dark-4: #292E37;--bright-primary-neutral-dark-5: #34373E;--bright-primary-neutral-dark-6: #4F535B;--bright-primary-neutral-dark-7: #83868A;--bright-semantic-blue-1: #005BC4;--bright-semantic-blue-2: #004A9F;--bright-semantic-blue-3: #1671D9;--bright-semantic-green-success: #1B8819;--bright-semantic-orange-status: #FD8A00;--bright-semantic-red-error: #C30707;--bright-semantic-purple: #82368C;--bright-primary-brand-gradient: linear-gradient(180deg, #005BC4 17.894%, #764289 53.225%, #C30707 100%);--bright-illustrative-ic-light-green: linear-gradient(180deg, #A2D996 13.246%, #B0E2A9 85.23%);--bright-illustrative-ic-green: linear-gradient(180deg, #4EA67C 13.246%, #67C397 85.23%);--bright-illustrative-ic-dark-green: linear-gradient(180deg, #006666 13.499%, #078888 88.575%);--bright-illustrative-ic-light-blue: linear-gradient(180deg, #7CBFE8 13.588%, #9ED2EC 85.847%);--bright-illustrative-ic-medium-blue: linear-gradient(180deg, #5A9FEF 13.291%, #66B2FF 86.226%);--bright-illustrative-ic-dark-blue: linear-gradient(180deg, #3D7AAB 13.184%, #5C8FC3 85.829%);--bright-illustrative-ic-medium-purple-1: linear-gradient(180deg, #A368A3 13.353%, #C58AC5 85.733%);--bright-illustrative-ic-dark-purple: linear-gradient(180deg, #7A4B99 13.353%, #9968B9 85.733%);--bright-illustrative-ic-medium-purple-2: linear-gradient(180deg, #7E5BCC 13.313%, #9977E0 86.735%);--bright-illustrative-ic-red: linear-gradient(180deg, #B63434 13.353%, #D25757 85.733%);--bright-illustrative-ic-pink: linear-gradient(180deg, #FF9FAA 13.416%, #FFB6C1 85.306%);--bright-illustrative-ic-peach: linear-gradient(180deg, #FF7552 13.374%, #FF8C69 85.243%);--bright-illustrative-ic-orange: linear-gradient(180deg, #FF8A00 13.374%, #FFA500 85.243%);--bright-illustrative-ic-yellow: linear-gradient(180deg, #FFC100 13.48%, #FFD700 85.964%);--bright-illustrative-ic-light-purple: linear-gradient(180deg, #D6B8F6 6.713%, #C18CEF 89.716%);--bright-illustrative-ic-purple: linear-gradient(180deg, #C07EF5 11.218%, #9D4EDD 91.487%);--bright-illustrative-ic-medium-purple: linear-gradient(180deg, #7D30B7 16.471%, #5A0F93 90.984%);--bright-illustrative-ic-soft-teal: linear-gradient(180deg, #9CF4EC 11.954%, #7FE3DA 88.983%);--bright-illustrative-ic-teal: linear-gradient(180deg, #76EADF 11.954%, #4FD1C5 88.983%);--bright-illustrative-ic-medium-teal: linear-gradient(180deg, #52CABF 12.217%, #2FAFA3 89.468%);--bright-illustrative-ic-dark-teal: linear-gradient(180deg, #39A8A2 0%, #1F7A75 100%);--role-surface-app: var(--bright-primary-neutral-dark-2);--role-surface-canvas: var(--bright-primary-neutral-dark-1);--role-surface-panel: var(--bright-primary-neutral-dark-3);--role-surface-elevated: var(--bright-primary-neutral-dark-5);--role-surface-hover: var(--bright-primary-neutral-dark-6);--role-border: var(--bright-primary-neutral-dark-6);--role-text-primary: var(--bright-primary-neutral-white);--role-text-muted: var(--bright-primary-neutral-dark-7);--role-interaction: var(--bright-semantic-blue-1);--role-accent-data: var(--bright-semantic-blue-3);--role-warning: var(--bright-semantic-orange-status);--role-success: var(--bright-semantic-green-success);--role-error: var(--bright-semantic-red-error);--role-selection: var(--bright-primary-neutral-white);--role-brand-cta: var(--bright-primary-brand-red-enx);--role-text-on-fill: var(--bright-primary-neutral-white);--local-pu-0: #e74c3c;--local-pu-1: #3498db;--local-pu-2: #2ecc71;--local-pu-3: #f39c12;--local-pu-4: #9b59b6;--local-pu-5: #1abc9c;--local-pu-6: #e67e22;--local-pu-7: #2980b9;--local-pu-8: #27ae60;--local-pu-9: #8e44ad;--local-rule-0: #f5b7b1;--local-rule-1: #aed6f1;--local-rule-2: #a9dfbf;--local-rule-3: #fad7a0;--local-rule-4: #d7bde2;--local-rule-5: #a3e4d7;--local-rule-6: #f9e79f;--local-rule-7: #85c1e9;--local-rule-8: #f1948a;--local-rule-9: #82e0aa;--local-charge-deck-air: #222b45;--local-charge-deck-gravel: #4a5568;--local-charge-deck-rocky: #3d4452}:root{--local-anim-fired: #ffda6b;--local-isotime-early: #8ecae6;--local-check-ok-text: #7ddba3;--local-check-bad-text: #ffb763}[data-theme=light]{--role-surface-canvas: var(--bright-primary-neutral-white);--role-surface-app: var(--bright-primary-neutral-light-1);--role-surface-panel: var(--bright-primary-neutral-light-2);--role-surface-elevated: var(--bright-primary-neutral-light-3);--role-surface-hover: var(--bright-primary-neutral-light-4);--role-border: var(--bright-primary-neutral-light-4);--role-text-primary: var(--bright-primary-neutral-dark-1);--role-text-muted: var(--bright-primary-neutral-dark-6);--role-interaction: var(--bright-semantic-blue-1);--role-accent-data: var(--bright-semantic-blue-3);--role-warning: var(--bright-semantic-orange-status);--role-success: var(--bright-semantic-green-success);--role-error: var(--bright-semantic-red-error);--role-selection: var(--bright-primary-neutral-dark-1);--role-brand-cta: var(--bright-primary-brand-red-enx);--local-anim-fired: #C77700;--local-isotime-early: #1D6FA5;--local-check-ok-text: #14683A;--local-check-bad-text: #8A4D00}:root{color-scheme:dark;--bg: var(--role-surface-app);--panel: var(--role-surface-panel);--panel-2: var(--role-surface-elevated);--line: var(--role-border);--text: var(--role-text-primary);--muted: var(--role-text-muted);--accent: var(--role-accent-data);--danger: var(--role-error);--ok: var(--role-success)}[data-theme=light]{color-scheme:light}*{box-sizing:border-box}body{display:flex;flex-direction:column;margin:0;height:100vh;height:100dvh;background:var(--bg);color:var(--text);font-family:Segoe UI,Arial,sans-serif}main{flex:1 1 auto;min-height:0}button,input,select{font:inherit}button,.file-button{min-height:36px;border:1px solid var(--line);border-radius:6px;background:var(--role-surface-elevated);color:var(--text);padding:7px 12px;cursor:pointer}button:hover,.file-button:hover{border-color:var(--accent)}button.active{background:var(--role-interaction);border-color:var(--role-interaction);color:var(--role-text-on-fill)}button.danger{background:var(--role-error);border-color:var(--role-error);color:var(--role-text-on-fill)}input,select{width:100%;min-height:32px;border:1px solid var(--line);border-radius:4px;background:var(--role-surface-canvas);color:var(--text);padding:5px 7px}.app-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--role-surface-panel)}h1{margin:0;font-size:22px;font-weight:650}.app-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.toolbar,.sidebar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-bar{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.project-bar select{width:auto;min-width:170px;max-width:260px}.project-bar button{min-height:32px;padding:4px 10px;font-size:13px}.save-indicator{color:var(--muted);font-size:12px;white-space:nowrap}.file-button input{display:none}.isotime-interval{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:12px;white-space:nowrap}.isotime-interval input{width:64px}.isotime-interval select{width:auto}.row-params{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}.row-params[hidden]{display:none}.row-params label{display:inline-flex;align-items:center;gap:4px}.row-params input{width:56px}.tabs{flex-shrink:0;display:flex;gap:2px;padding:8px 18px 0;background:var(--role-surface-panel)}.tab{border-bottom-left-radius:0;border-bottom-right-radius:0}.tab-panel{display:none;height:100%}.tab-panel.active{display:block}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:12px;height:100%;padding:12px}.map-shell{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--role-surface-canvas)}#mapCanvas{display:block;width:100%;height:100%}.map-hint{position:absolute;top:14px;left:14px;max-width:calc(100% - 28px);color:var(--muted);background:color-mix(in srgb,var(--role-surface-canvas) 88%,transparent);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;pointer-events:none}.animation-bar[hidden]{display:none}.animation-bar{position:absolute;left:12px;right:12px;bottom:12px;display:grid;grid-template-columns:auto auto 96px minmax(120px,1fr) 88px;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--role-surface-canvas) 90%,transparent)}.animation-bar label{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;color:var(--muted);font-size:12px}#animationTime{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.sidebar{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:12px}.pu-list{display:flex;flex-direction:column;gap:10px;overflow:auto;margin-top:12px;padding-right:2px;max-height:44%}.pu-card{border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:10px}.pu-card header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.pu-title{display:flex;align-items:center;gap:8px;min-width:0;font-weight:650}.swatch{width:18px;height:18px;border-radius:50%;border:1px solid color-mix(in srgb,var(--role-text-primary) 45%,transparent);flex:0 0 auto}.pu-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pu-grid label,.safety-form label{display:grid;gap:4px;color:var(--muted);font-size:12px}.pu-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.deck-editor{flex:1 1 auto;margin-top:12px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:10px;min-height:260px}.deck-editor h2,.table-heading{margin:0 0 10px;font-size:16px}.deck-editor .muted{color:var(--muted);font-size:13px}.deck-tools,.deck-row,.delay-row-controls{display:grid;gap:8px}.deck-tools{grid-template-columns:1fr 1fr;margin-bottom:10px}.deck-tools button{grid-column:span 1}.borehole{position:relative;height:260px;margin:8px 44px 12px;border-left:18px solid var(--role-border);border-right:18px solid var(--role-border);border-radius:12px;background:linear-gradient(90deg,transparent 48%,color-mix(in srgb,var(--role-text-primary) 14%,transparent) 50%,transparent 52%),linear-gradient(var(--role-surface-canvas),var(--role-surface-app))}.borehole:before,.borehole:after{position:absolute;left:50%;transform:translate(-50%);color:var(--muted);font-size:11px}.borehole:before{content:"collar";top:-18px}.borehole:after{content:"toe";bottom:-18px}.deck-marker{position:absolute;left:50%;width:96px;min-height:22px;transform:translate(-50%,-50%);border:1px solid color-mix(in srgb,var(--role-text-on-fill) 35%,transparent);border-radius:6px;background:var(--role-interaction);color:var(--role-text-on-fill);font-size:12px;font-weight:700;text-align:center;cursor:ns-resize;-webkit-user-select:none;user-select:none}.deck-marker.fired{background:var(--local-anim-fired);box-shadow:0 0 18px color-mix(in srgb,var(--local-anim-fired) 75%,transparent);color:var(--bright-primary-neutral-dark-1)}[data-theme=light] .deck-marker.fired{box-shadow:0 0 12px color-mix(in srgb,var(--local-anim-fired) 40%,transparent)}.deck-rows{display:grid;gap:8px}.deck-row{grid-template-columns:58px 1fr 1fr auto;align-items:end;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--role-surface-app)}.deck-row label{display:grid;gap:4px;color:var(--muted);font-size:12px}.table-heading{margin-top:18px}.table-wrap{height:100%;padding:12px;overflow:auto}table{width:100%;border-collapse:collapse;background:var(--panel)}th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;font-size:13px;white-space:nowrap}th{position:sticky;top:0;background:var(--role-surface-elevated);z-index:1}.safety-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:12px;height:100%;padding:12px}.safety-form,.results{overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:12px}fieldset{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;margin:0 0 12px;padding:10px}legend{color:var(--text);padding:0 4px;font-weight:650}.result-section{margin-bottom:14px}.result-section h2{margin:0 0 8px;font-size:16px}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.result-item{border:1px solid var(--line);border-radius:6px;padding:8px;background:var(--role-surface-app)}.result-item span{display:block;color:var(--muted);font-size:12px}.result-item strong{display:block;margin-top:4px;overflow-wrap:anywhere}#statusBar{flex-shrink:0;min-height:28px;padding:6px 12px;border-top:1px solid var(--line);background:var(--role-surface-canvas);color:var(--muted);font-size:13px}@media(max-width:980px){.app-header{align-items:flex-start;flex-direction:column}.editor-grid,.safety-layout{grid-template-columns:1fr}.sidebar{min-height:320px}}.checks-panel{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:12px;background:var(--role-surface-canvas)}.checks-panel h2{margin:0 0 8px;font-size:14px}.checks-panel label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:8px}.checks-content .check{border-radius:6px;padding:6px 8px;margin-bottom:6px;font-size:12.5px;line-height:1.4}.checks-content .check.ok{background:#2ecc711f;color:var(--local-check-ok-text)}.checks-content .check.bad{background:#fd8a0024;color:var(--local-check-bad-text)}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.chip{font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--role-surface-app);color:inherit;cursor:pointer}.chip:hover{border-color:var(--role-accent-data)}.delay-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 10px}.depth-input{width:72px;background:var(--role-surface-app);color:inherit;border:1px solid var(--line);border-radius:4px;padding:2px 6px}.toolbar button.danger{border-color:color-mix(in srgb,var(--role-error) 55%,transparent)}.sidebar-mode{display:flex;gap:2px;margin-bottom:10px}.sidebar-mode button{flex:1 1 auto}#delaysPage,#chargingPage{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:auto}#delaysPage>*,.charging-main>*{flex-shrink:0}#chargingPage{flex-direction:row;gap:12px;overflow:hidden}.charging-main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;overflow:auto}#chargingPage .pu-list{max-height:none}#chargingPage[hidden],#delaysPage[hidden]{display:none}.delay-histogram{display:flex;flex-direction:column;gap:4px}.hist-caption{margin:0;color:var(--muted);font-size:12px}.hist-bars{display:flex;align-items:flex-end;gap:2px;height:190px;border-bottom:1px solid var(--line)}.delay-histogram .bar{flex:1 1 auto;min-width:3px;border-radius:3px 3px 0 0;background:var(--role-accent-data)}.delay-histogram .bar[data-empty]{background:var(--role-surface-elevated)}.delay-histogram .bar.over{background:var(--role-warning)}.hist-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.rule-item-row{display:grid;grid-template-columns:72px 1fr 76px auto;gap:6px;align-items:end;margin-top:6px}.rule-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);cursor:pointer}.rule-row.active{background:color-mix(in srgb,var(--role-interaction) 14%,var(--panel-2))}.rule-row-text{flex:1 1 auto;min-width:0;display:grid;gap:2px}.rule-row-text .muted{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.rule-row button{flex:0 0 auto;min-height:28px;padding:3px 10px;font-size:13px}#projectSetupDialog{width:min(420px,94vw);border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:16px}#projectSetupDialog::backdrop{background:#0000008c}#projectSetupForm h2{margin:0 0 10px;font-size:16px}#projectSetupForm .muted{color:var(--muted);font-size:13px}#projectSetupForm label{display:grid;gap:4px;margin:12px 0}#projectSetupForm footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}#ruleDialog{width:min(760px,94vw);max-height:92vh;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:16px}#ruleDialog::backdrop{background:#0000008c}.rule-dialog-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px}.rule-dialog-form header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.rule-dialog-form footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.rule-dialog-preview{display:flex;flex-direction:column;min-height:440px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:10px}.rule-dialog-preview h2{margin:0 0 10px;font-size:16px}.rule-dialog-preview .muted{color:var(--muted);font-size:13px}#chargePreview{display:flex;flex-direction:column;flex:0 0 150px;margin-top:0;min-height:0}.charge-bands{flex:1 1 auto;display:flex;flex-direction:column;min-height:300px;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:8px}.charge-band{flex:0 1 auto;display:flex;align-items:center;justify-content:center;min-height:18px;padding:0 4px;overflow:hidden;text-align:center;font-size:11px;color:var(--role-text-on-fill);text-shadow:0 1px 2px rgba(0,0,0,.65)}.charge-band[draggable=true]{cursor:grab}.charge-band.dragging{opacity:.5}.charge-band.drop-collar{box-shadow:inset 0 3px 0 var(--role-selection)}.charge-band.drop-toe{box-shadow:inset 0 -3px 0 var(--role-selection)}.override-cell input{width:76px}td .skip-toggle{min-height:24px;padding:2px 8px;font-size:11px}td .skip-toggle.active{background:var(--role-warning);border-color:var(--role-warning);color:var(--bright-primary-neutral-dark-1)}.migration-notice{border:1px solid var(--role-warning);border-radius:6px;background:#fd8a0024;color:var(--local-check-bad-text);padding:6px 8px;margin-bottom:8px;font-size:12.5px}.update-toast{position:fixed;left:50%;bottom:48px;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);box-shadow:0 6px 24px #00000073;z-index:100}[data-theme=light] .update-toast{box-shadow:0 6px 24px #0000002e}.update-toast button{min-height:30px;padding:4px 12px}.update-toast .toast-dismiss{background:transparent;color:var(--muted)}
