:root{font-synthesis:none;text-rendering:optimizelegibility;--bg:#f2f3f5;--surface:#fff;--surface-2:#f8f9fa;--surface-3:#edf0f2;--text:#1f252c;--text-muted:#68717c;--text-faint:#8b949d;--border:#d9dee3;--border-strong:#c7ced5;--accent:#2d607f;--accent-soft:#e9f1f6;--accent-border:#89a9bc;--success:#2f7048;--success-bg:#edf6f0;--danger:#9b4242;--danger-bg:#fbefef;--warning:#745a17;--warning-bg:#f6edcf;--shadow:0 1px 2px #121b240d;--topbar:#1b2229;--topbar-border:#323b44;--topbar-text:#f5f7f8;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}:root[data-theme=dark]{--bg:#111418;--surface:#181c20;--surface-2:#1d2227;--surface-3:#242a30;--text:#e7eaed;--text-muted:#a4acb5;--text-faint:#7e8892;--border:#30373e;--border-strong:#414a53;--accent:#7eafce;--accent-soft:#1b3040;--accent-border:#47728d;--success:#80c597;--success-bg:#193125;--danger:#e39a9a;--danger-bg:#392121;--warning:#dec56c;--warning-bg:#382f16;--shadow:none;--topbar:#0d1013;--topbar-border:#252b30;--topbar-text:#f4f6f7}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}.app-shell{min-height:100vh}.topbar{background:var(--topbar);height:58px;color:var(--topbar-text);border-bottom:1px solid var(--topbar-border);justify-content:space-between;align-items:center;padding:0 24px;display:flex}.brand,.topbar-actions{align-items:center;display:flex}.brand{gap:10px}.brand-mark{border:1px solid #59636e;border-radius:4px;place-items:center;width:30px;height:30px;font-size:16px;font-weight:700;display:grid}.brand-copy{flex-direction:column;line-height:1.15;display:flex}.brand-copy strong{font-size:13px;font-weight:650}.brand-copy span{color:#9da6af;margin-top:2px;font-size:11px}.topbar-actions{gap:8px}.demo-badge{color:#ead476;text-transform:uppercase;letter-spacing:.04em;border:1px solid #796726;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:700}.theme-toggle{color:#d9dde1;background:0 0;border:1px solid #39434d;border-radius:4px;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.theme-toggle:hover{background:#242b31}.signout-button{color:#d9dde1;white-space:nowrap;background:0 0;border:1px solid #39434d;border-radius:4px;height:32px;padding:0 10px;font-size:10px;font-weight:650}.signout-button:hover{background:#242b31}.page-content{width:100%;max-width:1920px;margin:0 auto;padding:22px 24px 34px}.page-title-row{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;display:flex}.page-title-row h1{letter-spacing:-.02em;margin:0;font-size:25px;font-weight:650}.page-title-row p{color:var(--text-muted);margin:5px 0 0;font-size:13px}.refresh-button{border:1px solid var(--border-strong);background:var(--surface);height:34px;color:var(--text);border-radius:4px;padding:0 12px;font-size:12px;font-weight:600}.refresh-button:hover:not(:disabled){background:var(--surface-2)}.alert{border:1px solid;border-radius:4px;margin-bottom:12px;padding:9px 11px;font-size:12px}.error-alert{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:var(--danger-bg);color:var(--danger)}.success-alert{border-color:color-mix(in srgb, var(--success) 35%, transparent);background:var(--success-bg);color:var(--success)}.toolbar{border:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:14px;padding:10px;display:flex}.search-control{border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;align-items:center;min-width:0;height:34px;display:flex}.job-search{width:min(500px,43vw)}.search-icon{color:var(--text-faint);flex:none;padding-left:9px;font-size:17px;line-height:1}.search-control input{width:100%;min-width:0;height:100%;color:var(--text);background:0 0;border:0;outline:0;padding:0 8px;font-size:12px}.search-control input::placeholder{color:var(--text-faint)}.clear-search{width:31px;height:100%;color:var(--text-muted);background:0 0;border:0;font-size:18px}.filter-tabs{align-items:center;gap:2px;display:flex}.filter-tabs button{height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:7px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex}.filter-tabs button:hover{background:var(--surface-2);color:var(--text)}.filter-tabs button.active{border-color:var(--border);background:var(--surface-3);color:var(--text)}.filter-tabs button span{background:var(--surface);min-width:18px;color:var(--text-muted);text-align:center;border-radius:8px;padding:1px 5px;font-size:10px}.summary-strip{border:1px solid var(--border);background:var(--surface-2);align-items:center;min-height:38px;margin-top:-1px;display:flex}.summary-strip>div{border-right:1px solid var(--border);align-items:baseline;gap:7px;min-width:105px;padding:0 13px;display:flex}.summary-strip span{color:var(--text-muted);font-size:10px}.summary-strip strong{font-size:12px;font-weight:700}.summary-status{margin-left:auto;border-right:0!important}.status-good{color:var(--success)}.status-locked{color:var(--warning)}.workspace{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:14px;margin-top:14px;display:grid}.resource-panel{border:1px solid var(--border);background:var(--surface);height:calc(100vh - 28px);min-height:500px;box-shadow:var(--shadow);flex-direction:column;display:flex;position:sticky;top:14px}.resource-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:14px 14px 10px;display:flex}.resource-panel-header h2{margin:0;font-size:14px;font-weight:650}.resource-panel-header p{color:var(--text-muted);margin:3px 0 0;font-size:10px}.resource-total{border:1px solid var(--border);background:var(--surface-2);min-width:28px;height:24px;color:var(--text-muted);border-radius:4px;place-items:center;font-size:10px;font-weight:700;display:grid}.panel-search{margin:10px 10px 7px}.selected-resource-banner{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--text);text-align:left;border-radius:4px;grid-template-columns:1fr auto;column-gap:8px;margin:0 10px 6px;padding:8px 9px;display:grid}.selected-resource-banner span:first-child{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;grid-column:1;font-size:9px}.selected-resource-banner strong{grid-column:1;font-size:11px}.selected-resource-clear{color:var(--text-muted);grid-area:1/2/span 2;align-self:center;font-size:16px}.resource-scroll{flex:1;min-height:0;padding:0 10px 10px;overflow-y:auto}.resource-section+.resource-section{margin-top:15px}.resource-section-heading{z-index:2;background:var(--surface);height:29px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;display:flex;position:sticky;top:0}.resource-section-heading strong{font-size:10px}.resource-list{gap:5px;display:grid}.resource-card{border:1px solid var(--border);background:var(--surface);-webkit-user-select:none;user-select:none;cursor:grab;border-radius:4px;grid-template-columns:30px minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-width:0;min-height:48px;padding:7px;display:grid}.resource-card:hover{border-color:var(--border-strong);background:var(--surface-2)}.resource-card.selected{border-color:var(--accent-border);background:var(--accent-soft)}.avatar,.assigned-avatar{border:1px solid var(--border);background:var(--surface-3);color:var(--text-muted);flex:none;place-items:center;font-size:9px;font-weight:700;display:grid}.avatar{border-radius:3px;width:30px;height:30px}.resource-copy,.assigned-copy{min-width:0}.resource-name{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.resource-meta{color:var(--text-muted);margin-top:2px;font-size:9px}.resource-job-count{border:1px solid var(--border);background:var(--surface-2);min-width:22px;height:20px;color:var(--text-muted);border-radius:9px;place-items:center;font-size:9px;font-weight:700;display:grid}.drag-grip{color:var(--text-faint);font-size:13px}.panel-empty{border:1px dashed var(--border);color:var(--text-faint);padding:8px;font-size:10px}.resource-panel-footer{border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);padding:9px 12px;font-size:9px}.jobs-panel{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow)}.job-columns,.job-row{grid-template-columns:minmax(185px,.75fr) minmax(215px,.85fr) minmax(360px,1.7fr);display:grid}.job-columns{z-index:4;border-bottom:1px solid var(--border-strong);background:var(--surface-3);min-height:34px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;font-size:10px;font-weight:700;position:sticky;top:0}.job-columns>div{padding:0 12px}.job-columns>div+div{border-left:1px solid var(--border)}.job-row{border-bottom:1px solid var(--border);background:var(--surface);min-height:76px}.job-row:last-child{border-bottom:0}.job-row:hover{background:color-mix(in srgb, var(--surface-2) 55%, var(--surface))}.job-cell{min-width:0;padding:10px 12px}.job-cell+.job-cell{border-left:1px solid var(--border)}.job-identity{align-self:stretch}.job-number{color:var(--text);letter-spacing:.01em;font-size:13px;font-weight:750}.job-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);margin-top:3px;font-size:11px;font-weight:550;overflow:hidden}.job-location{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);margin-top:3px;font-size:9px;overflow:hidden}.drop-zone{transition:background .1s,box-shadow .1s}.drop-active{box-shadow:inset 0 0 0 1px var(--accent-border);background:var(--accent-soft)!important}.empty-assignment{border:1px dashed var(--border-strong);min-height:44px;color:var(--text-faint);border-radius:4px;justify-content:center;align-items:center;font-size:10px;display:flex}.assigned-person{border:1px solid var(--border);background:var(--surface);cursor:grab;border-radius:4px;grid-template-columns:28px minmax(0,1fr) 27px;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 5px 6px 7px;display:grid}.assigned-person:hover{border-color:var(--border-strong)}.assigned-avatar{border-radius:3px;width:28px;height:28px}.assigned-copy{flex-direction:column;display:flex}.assigned-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:650;overflow:hidden}.assigned-copy span{color:var(--text-muted);margin-top:2px;font-size:9px}.remove-assignment{width:25px;height:25px;color:var(--text-faint);background:0 0;border:0;border-radius:3px;place-items:center;font-size:17px;display:grid}.remove-assignment:hover{background:var(--danger-bg);color:var(--danger)}.foremen-stack{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:6px;display:grid}.crew-assignment{min-width:0}.crew-assignment-row{grid-template-columns:minmax(0,1fr) 27px;gap:4px;display:grid}.crew-toggle{border:1px solid var(--border);background:var(--surface-2);width:27px;min-height:44px;color:var(--text-muted);border-radius:4px;font-size:14px;font-weight:700}.crew-toggle:hover,.crew-toggle.active{border-color:var(--border-strong);color:var(--text)}.crew-members{border:1px solid var(--border);background:var(--surface-2);border-radius:4px;margin-top:4px}.crew-member{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;min-height:25px;padding:3px 7px;font-size:9px;display:flex}.crew-member:last-child{border-bottom:0}.crew-member small{color:var(--text-muted);font-size:8px}.crew-member-empty{color:var(--text-faint);padding:7px;font-size:9px}.add-more-hint{min-height:30px;color:var(--text-faint);border:1px dashed #0000;justify-content:center;align-items:center;font-size:9px;display:flex}.foremen-cell:hover .add-more-hint{border-color:var(--border)}.loading-state,.empty-results{border:1px solid var(--border);background:var(--surface);min-height:180px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.empty-results{border:0}.empty-results strong{color:var(--text);font-size:13px}.empty-results span{font-size:10px}.saving-toast{z-index:20;border:1px solid var(--border-strong);background:var(--topbar);color:var(--topbar-text);border-radius:4px;padding:9px 12px;font-size:11px;font-weight:600;position:fixed;bottom:18px;right:18px;box-shadow:0 4px 16px #0000002e}@media (width<=1150px){.toolbar{flex-direction:column;align-items:stretch}.job-search{width:100%}.filter-tabs{overflow-x:auto}.workspace{grid-template-columns:250px minmax(0,1fr)}.job-columns,.job-row{grid-template-columns:175px 205px minmax(300px,1fr)}}@media (width<=850px){.page-content{padding:16px 12px 28px}.topbar{padding:0 12px}.page-title-row{align-items:flex-start}.summary-strip{overflow-x:auto}.workspace{display:block}.resource-panel{width:100%;height:auto;min-height:0;margin-bottom:12px;position:static}.resource-scroll{max-height:350px}.jobs-panel{overflow-x:auto}.job-columns,.job-row{min-width:770px}}select,textarea{font:inherit}.job-identity-button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;position:relative}.job-identity-button:hover{background:var(--surface-2)}.job-identity-button:focus-visible{outline:2px solid var(--accent-border);outline-offset:-2px}.job-open-hint{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;opacity:0;font-size:8px;font-weight:700;transition:opacity .1s;position:absolute;top:9px;right:10px}.job-identity-button:hover .job-open-hint{opacity:1}.job-schedule-summary{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);border-radius:3px;align-items:center;gap:4px;margin-top:6px;padding:2px 5px;font-size:8px;font-weight:650;display:inline-flex}.job-schedule-summary span{color:var(--text-faint)}.job-drawer-layer{z-index:100;justify-content:flex-end;display:flex;position:fixed;inset:0}.job-drawer-backdrop{cursor:default;background:#0c111675;border:0;width:100%;height:100%;position:absolute;inset:0}.job-drawer{z-index:1;border-left:1px solid var(--border-strong);background:var(--surface);flex-direction:column;width:min(720px,94vw);height:100vh;display:flex;position:relative;box-shadow:-12px 0 32px #00000029}.job-drawer-header{border-bottom:1px solid var(--border);background:var(--surface);flex:none;justify-content:space-between;align-items:flex-start;gap:20px;min-height:82px;padding:17px 20px 14px;display:flex}.drawer-eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:9px;font-weight:700;display:block}.job-drawer-header h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:750}.job-drawer-header p{color:var(--text-muted);margin:3px 0 0;font-size:12px}.drawer-close{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:4px;flex:none;place-items:center;font-size:21px;line-height:1;display:grid}.drawer-close:hover{color:var(--text);border-color:var(--border-strong)}.drawer-loading{color:var(--text-muted);flex:1;place-items:center;font-size:12px;display:grid}.job-edit-form{flex-direction:column;flex:1;min-height:0;display:flex}.job-drawer-scroll,.drawer-body{flex:1;min-height:0;padding:16px 20px 26px;overflow-y:auto}.drawer-readonly-note{border:1px solid color-mix(in srgb, var(--warning) 35%, transparent);background:var(--warning-bg);color:var(--warning);border-radius:4px;margin-bottom:12px;padding:9px 10px;font-size:10px;font-weight:600}.detail-section{border-bottom:1px solid var(--border);padding:4px 0 20px}.detail-section+.detail-section{padding-top:19px}.detail-section:last-child{border-bottom:0}.detail-section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.detail-section-heading h3{margin:0;font-size:13px;font-weight:700}.detail-section-heading span{color:var(--text-muted);font-size:9px}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-wide{grid-column:1/-1}.field>span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:9px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);border-radius:4px;outline:0;font-size:11px}.field input,.field select{height:35px;padding:0 9px}.field textarea{resize:vertical;min-height:72px;padding:8px 9px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-border);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 12%, transparent)}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--surface-2);color:var(--text-muted);cursor:default}.schedule-callout{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface-2);justify-content:space-between;align-items:center;gap:18px;margin-bottom:12px;padding:10px 12px;display:flex}.schedule-callout>div{flex-direction:column;flex:none;display:flex}.schedule-callout span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:8px;font-weight:700}.schedule-callout strong{margin-top:2px;font-size:14px}.schedule-callout p{color:var(--text-muted);text-align:right;margin:0;font-size:9px}.reference-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.reference-grid>div{border:1px solid var(--border);background:var(--surface-2);min-width:0;padding:8px 9px}.reference-grid dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 3px;font-size:8px;font-weight:700}.reference-grid dd{text-overflow:ellipsis;color:var(--text);white-space:nowrap;margin:0;font-size:10px;overflow:hidden}.source-link{color:var(--accent);margin-top:10px;font-size:10px;font-weight:650;text-decoration:none;display:inline-block}.source-link:hover{text-decoration:underline}.job-drawer-footer{border-top:1px solid var(--border-strong);background:var(--surface-2);flex:none;justify-content:space-between;align-items:center;gap:14px;min-height:64px;padding:11px 16px;display:flex}.drawer-sync-note{color:var(--text-muted);font-size:9px}.drawer-footer-actions{align-items:center;gap:7px;display:flex}.primary-button,.secondary-button{border-radius:4px;height:34px;padding:0 12px;font-size:10px;font-weight:700}.secondary-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.secondary-button:hover{background:var(--surface-3)}.primary-button{border:1px solid color-mix(in srgb, var(--accent) 75%, #000 10%);background:var(--accent);color:#fff}:root[data-theme=dark] .primary-button{color:#0e1519}.primary-button:hover:not(:disabled){filter:brightness(.95)}@media (width<=650px){.job-drawer{width:100vw}.detail-grid,.reference-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.schedule-callout,.job-drawer-footer{flex-direction:column;align-items:flex-start}.schedule-callout p{text-align:left}.job-drawer-footer,.drawer-footer-actions{width:100%}.drawer-footer-actions>button{flex:1}}button,input,select,textarea{font:inherit}.brand-area{align-items:center;gap:30px;min-width:0;display:flex}.app-nav{align-items:stretch;gap:2px;height:58px;display:flex}.app-nav button{color:#aab2ba;background:0 0;border:0;min-width:84px;padding:0 12px;font-size:11px;font-weight:650;position:relative}.app-nav button:hover{color:#f2f4f6;background:#ffffff0a}.app-nav button.active{color:#fff}.app-nav button.active:after{content:"";background:#9fc3da;height:2px;position:absolute;bottom:0;left:10px;right:10px}.planner-page-content{max-width:none}.planner-title-row{margin-bottom:12px}.planner-summary-strip{border:1px solid var(--border);background:var(--surface);align-items:center;min-height:42px;display:flex}.planner-summary-strip>div{border-right:1px solid var(--border);align-items:baseline;gap:8px;min-width:125px;padding:0 14px;display:flex}.planner-summary-strip span{color:var(--text-muted);font-size:10px}.planner-summary-strip strong{font-size:13px}.planner-warning-value{color:var(--warning)}.planner-layout{grid-template-columns:292px minmax(0,1fr);align-items:start;gap:14px;margin-top:14px;display:grid}.planner-issues{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);position:sticky;top:14px;overflow:hidden}.planner-issues-tabs{border-bottom:1px solid var(--border);background:var(--surface-2);grid-template-columns:1fr 1fr;display:grid}.planner-issues-tabs button{border:0;border-right:1px solid var(--border);min-height:44px;color:var(--text-muted);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:6px;padding:0 9px;font-size:9px;font-weight:700;display:flex}.planner-issues-tabs button:last-child{border-right:0}.planner-issues-tabs button.active{background:var(--surface);color:var(--text)}.planner-issues-tabs button span{border:1px solid var(--border);background:var(--surface-2);min-width:21px;color:var(--text-muted);text-align:center;border-radius:8px;padding:2px 5px}.planner-issues-body{min-height:130px;max-height:calc(100vh - 280px);padding:8px;overflow-y:auto}.planner-job-queue{gap:5px;display:grid}.planner-job-item{border:1px solid var(--border);background:var(--surface);border-radius:4px;min-width:0;padding:7px 24px 7px 8px;position:relative}.planner-job-item.draggable{cursor:grab}.planner-job-item.draggable:hover{border-color:var(--accent-border);background:var(--accent-soft)}.planner-job-item.missing-dates{border-style:dashed}.planner-job-main{width:100%;color:var(--text);text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);gap:7px;padding:0;display:grid}.planner-job-main strong{font-size:10px}.planner-job-main span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.planner-job-dates{color:var(--text-faint);margin-top:4px;font-size:9px}.planner-job-item.missing-dates .planner-job-dates{color:var(--warning)}.planner-drag-mark{color:var(--text-faint);font-size:10px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.planner-issues-empty{color:var(--text-muted);text-align:center;padding:22px 12px;font-size:10px}.planner-issues-foot{border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);padding:8px 10px;font-size:9px;line-height:1.4}.planner-main{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow)}.planner-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 10px;display:flex}.planner-search{width:min(440px,42vw)}.planner-window-controls{align-items:center;gap:4px;display:flex}.planner-window-controls button,.planner-window-controls select{border:1px solid var(--border-strong);background:var(--surface);height:32px;color:var(--text);border-radius:4px;padding:0 9px;font-size:10px;font-weight:600}.planner-window-controls button:hover{background:var(--surface-2)}.planner-range-label{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:center;gap:16px;min-height:37px;padding:0 11px;display:flex}.planner-range-label strong{font-size:11px}.planner-range-label span{color:var(--text-muted);font-size:9px}.planner-scroll{background:var(--surface);max-height:calc(100vh - 260px);overflow:auto}.planner-canvas{min-width:100%;position:relative}.planner-header-row,.planner-super-row{grid-template-columns:220px minmax(0,1fr);display:grid}.planner-header-row{z-index:12;border-bottom:1px solid var(--border-strong);background:var(--surface-3);height:37px;position:sticky;top:0}.planner-super-header,.planner-super-cell{z-index:9;border-right:1px solid var(--border-strong);background:var(--surface);position:sticky;left:0}.planner-super-header{z-index:14;background:var(--surface-3);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;padding:0 11px;font-size:9px;font-weight:700;display:flex}.planner-month-header,.planner-timeline-row{min-width:0;position:relative}.planner-month{border-right:1px solid var(--border-strong);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding-left:8px;font-size:9px;font-weight:700;display:flex;position:absolute;top:0;bottom:0}.planner-super-row{border-bottom:1px solid var(--border)}.planner-super-row:last-child{border-bottom:0}.planner-super-row:hover .planner-super-cell,.planner-super-row:hover .planner-timeline-row{background-color:var(--surface-2)}.planner-super-cell{grid-template-columns:30px minmax(0,1fr);align-content:center;align-items:center;gap:8px;height:100%;padding:7px 10px;display:grid}.planner-super-cell>div:last-child{min-width:0;display:grid}.planner-super-cell strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.planner-super-cell span{color:var(--text-muted);margin-top:2px;font-size:8px}.planner-timeline-row{background:repeating-linear-gradient(to bottom, transparent, transparent 29px, color-mix(in srgb, var(--border) 35%, transparent) 30px);height:100%}.planner-month-grid{border-right:1px solid var(--border);pointer-events:none;position:absolute;top:0;bottom:0}.planner-today-line{z-index:5;background:var(--danger);opacity:.65;pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.planner-today-line.header{z-index:20}.planner-today-line.header span{background:var(--danger-bg);color:var(--danger);white-space:nowrap;border-radius:3px;padding:1px 4px;font-size:8px;position:absolute;top:2px;left:4px}.planner-bar{z-index:4;border:1px solid var(--accent-border);background:var(--accent-soft);height:24px;color:var(--text);cursor:grab;border-radius:3px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;display:grid;position:absolute;overflow:hidden}.planner-bar.confirmed{background:color-mix(in srgb, var(--accent-soft) 76%, var(--success-bg));border-style:solid}.planner-bar.completed{opacity:.62}.planner-bar.conflict{border-color:color-mix(in srgb, var(--warning) 70%, var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--warning) 20%, transparent)}.planner-bar-job{min-width:0;height:100%;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:5px;padding:0 6px;display:flex}.planner-bar-job strong{flex:none;font-size:9px}.planner-bar-job span{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.planner-bar-warning{color:var(--warning);font-size:10px}.planner-bar-edit{border:0;border-left:1px solid color-mix(in srgb, var(--accent-border) 55%, transparent);width:25px;height:100%;color:var(--text-muted);letter-spacing:-1px;background:0 0;font-size:9px}.planner-bar-edit:hover{background:color-mix(in srgb, var(--surface) 45%, transparent);color:var(--text)}.planner-no-results{color:var(--text-muted);padding:24px;font-size:11px}.schedule-editor-layer{z-index:120;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.schedule-editor-backdrop{background:#060a0e80;border:0;position:absolute;inset:0}.schedule-editor{border:1px solid var(--border-strong);background:var(--surface);border-radius:5px;width:min(520px,100%);max-height:calc(100vh - 40px);position:relative;overflow:auto;box-shadow:0 18px 48px #0000003d}.schedule-editor-header{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:20px;min-height:72px;padding:14px 16px;display:flex}.schedule-editor-header span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:8px;font-weight:700}.schedule-editor-header h2{margin:3px 0 0;font-size:17px}.schedule-editor-header p{color:var(--text-muted);margin:2px 0 0;font-size:10px}.schedule-editor-header>button{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-muted);border-radius:4px;font-size:17px}.schedule-editor-body{gap:13px;padding:15px 16px;display:grid}.schedule-effective-dates{border:1px solid var(--border);background:var(--surface-2);grid-template-columns:1fr 1fr;display:grid}.schedule-effective-dates>div{border-right:1px solid var(--border);gap:3px;padding:9px 10px;display:grid}.schedule-effective-dates>div:last-child{border-right:0}.schedule-effective-dates span{color:var(--text-muted);text-transform:uppercase;font-size:8px}.schedule-effective-dates strong{font-size:11px}.schedule-override-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.schedule-editor .field small{color:var(--text-faint);margin-top:3px;font-size:8px}.planner-conflict-note{border:1px solid color-mix(in srgb, var(--warning) 40%, var(--border));background:var(--warning-bg);color:var(--warning);border-radius:4px;padding:8px 9px;font-size:9px}.schedule-editor-footer{border-top:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;display:flex}.schedule-editor-footer>div{gap:6px;display:flex}.danger-text-button{color:var(--danger);background:0 0;border:0;font-size:9px;font-weight:700}@media (width<=980px){.planner-layout{grid-template-columns:1fr}.planner-issues{position:static}.planner-issues-body{max-height:210px}.planner-toolbar,.planner-range-label{flex-direction:column;align-items:flex-start}.planner-search{width:100%}}@media (width<=720px){.topbar{align-items:flex-start;height:auto;min-height:58px;padding:10px 12px}.brand-area{flex-direction:column;align-items:flex-start;gap:6px}.app-nav{height:32px}.app-nav button{min-width:auto;padding:0 10px}.planner-summary-strip{flex-wrap:wrap}.planner-summary-strip>div{border-bottom:1px solid var(--border);min-width:50%;min-height:34px}.planner-window-controls{flex-wrap:wrap;width:100%}.planner-window-controls button,.planner-window-controls select{flex:1}.schedule-override-grid,.schedule-effective-dates{grid-template-columns:1fr}.schedule-effective-dates>div{border-right:0;border-bottom:1px solid var(--border)}.schedule-effective-dates>div:last-child{border-bottom:0}.schedule-editor-footer{flex-direction:column;align-items:stretch}.schedule-editor-footer>div{grid-template-columns:1fr 1fr;display:grid}}.current-user{flex-direction:column;align-items:flex-end;min-width:120px;padding:0 8px;line-height:1.15;display:flex}.current-user strong{color:#f2f4f6;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:11px;font-weight:650;overflow:hidden}.current-user span{color:#9da6af;margin-top:2px;font-size:10px}.auth-state{background:var(--bg);min-height:100vh;color:var(--text);text-align:center;place-content:center;gap:8px;padding:24px;display:grid}.auth-state strong{font-size:18px}.auth-state span{max-width:560px;color:var(--text-muted)}.auth-state a{color:var(--accent);margin-top:6px;font-weight:650}.drop-zone.read-only,.planner-job-item.read-only{cursor:default}@media (width<=720px){.current-user{min-width:0;max-width:150px;padding:3px 4px}.current-user strong{max-width:145px}.signout-button{padding:0 8px}}.brand-mark.large{border-radius:6px;width:42px;height:42px;font-size:20px}.loading-page,.auth-page{background:var(--bg);min-height:100vh}.loading-page{color:var(--text);place-content:center;justify-items:center;gap:9px;display:grid}.loading-page strong{margin-top:3px;font-size:14px}.loading-page span{color:var(--text-muted);font-size:10px}.auth-page{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 62%, transparent), transparent 52%), var(--bg);place-items:center;padding:28px;display:grid;position:relative}.auth-theme{position:absolute;top:18px;right:18px}.auth-card{border:1px solid var(--border);background:var(--surface);width:min(430px,100%);box-shadow:var(--shadow);border-radius:6px;padding:28px}.auth-brand{align-items:center;gap:14px;display:flex}.auth-eyebrow{color:var(--text-faint);letter-spacing:.08em;font-size:9px;font-weight:750}.auth-brand h1{color:var(--text);letter-spacing:-.03em;margin:2px 0 0;font-size:24px;font-weight:650}.auth-copy{color:var(--text-muted);margin:18px 0 22px;font-size:11px;line-height:1.55}.auth-button{justify-content:space-between;align-items:center;width:100%;height:40px;min-height:40px;padding:0 14px;text-decoration:none;display:flex}.auth-security-note{color:var(--text-faint);justify-content:center;align-items:center;gap:7px;margin-top:16px;font-size:8px;display:flex}.auth-alert{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border));background:var(--danger-bg);border-radius:4px;gap:4px;margin-bottom:14px;padding:10px 11px;display:grid}.auth-alert strong{color:var(--danger);font-size:10px}.auth-alert span{color:var(--text-muted);font-size:9px;line-height:1.45}.status-dot{background:var(--text-faint);border-radius:999px;flex:none;width:6px;height:6px}.status-dot.success{background:var(--success)}.dev-badge{color:#ead476;letter-spacing:.04em;text-transform:uppercase;border:1px solid #796726;border-radius:4px;padding:4px 7px;font-size:9px;font-weight:750}@media (width<=720px){.auth-page{place-items:start center;padding:72px 14px 20px}.auth-theme{top:16px;right:14px}.auth-card{padding:22px 18px}.dev-badge{display:none}}
