@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}: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:var(--topbar-muted);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}}.auth-page{background:radial-gradient(circle at 18% 22%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 30%), var(--bg);min-height:100vh;color:var(--text);grid-template-rows:auto 1fr auto;place-items:stretch stretch;padding:0;display:grid;position:relative;overflow:hidden}.auth-blueprint-grid{pointer-events:none;opacity:.32;background-image:linear-gradient(#8eb3c909 1px,#0000 1px),linear-gradient(90deg,#8eb3c909 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000c 55%,#0000 100%);mask-image:linear-gradient(90deg,#000 0%,#000c 55%,#0000 100%)}.auth-header,.auth-layout,.auth-footer{z-index:1;position:relative}.auth-header{border-bottom:1px solid #252c33;justify-content:space-between;align-items:center;gap:24px;width:100%;min-height:86px;padding:18px clamp(28px,4vw,72px);display:flex}.auth-company-brand{align-items:center;gap:14px;display:flex}.auth-riggs-mark{color:#fff;letter-spacing:-.03em;background:#13191e;border:1px solid #5d6974;border-radius:5px;place-items:center;width:44px;height:44px;font-size:19px;font-weight:700;display:grid}.auth-company-copy{flex-direction:column;gap:3px;display:flex}.auth-company-copy strong{color:#f7f9fa;letter-spacing:.08em;font-size:15px;font-weight:600}.auth-company-copy span,.auth-header-note{color:#9ba7b1;font-size:12px;font-weight:600}.auth-header-note{border-left:1px solid #303841;padding-left:16px}.auth-layout{grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr);align-items:stretch;width:100%;max-width:1680px;margin:0 auto;display:grid}.auth-intro{flex-direction:column;justify-content:center;min-height:620px;padding:clamp(54px,8vh,110px) clamp(40px,6vw,96px);display:flex}.auth-kicker{color:#86b4d0;letter-spacing:.15em;margin-bottom:24px;font-size:13px;font-weight:600}.auth-intro h1{color:#fff;letter-spacing:-.045em;margin:0;font-size:clamp(54px,6vw,88px);font-weight:600;line-height:.95}.auth-product-title{color:#c6d0d8;letter-spacing:-.02em;margin-top:18px;font-size:clamp(22px,2vw,30px);font-weight:560}.auth-intro-copy{color:#aab5be;max-width:680px;margin:34px 0 0;font-size:18px;line-height:1.65}.auth-trust-list{color:#c4ccd2;gap:15px;margin-top:44px;font-size:14px;font-weight:600;display:grid}.auth-trust-list>div{align-items:center;gap:12px;display:flex}.auth-trust-icon{color:#8ec1df;background:#14232d;border:1px solid #385164;border-radius:50%;flex:0 0 24px;place-items:center;width:24px;height:24px;font-size:13px;font-weight:600;display:grid}.auth-access-column{background:#12171cc2;border-left:1px solid #272e35;align-items:center;padding:clamp(44px,7vh,88px) clamp(34px,5vw,76px);display:flex}.auth-access-panel{width:100%;max-width:520px;margin:0 auto}.auth-state-label{color:#aeb8c0;letter-spacing:.12em;background:#171d22;border:1px solid #3a454f;border-radius:4px;width:fit-content;margin-bottom:20px;padding:7px 10px;font-size:12px;font-weight:600}.auth-state-label.success{color:#8fc5ae;background:#13261f;border-color:#315e4d}.auth-state-label.notice{color:#d2bf83;background:#282317;border-color:#62583c}.auth-state-label.error{color:#e0a4a4;background:#2a1919;border-color:#6d4242}.auth-access-panel h2{color:#f8fafb;letter-spacing:-.035em;margin:0;font-size:clamp(34px,3.2vw,46px);font-weight:700;line-height:1.05}.auth-access-copy{color:#a9b4bd;margin:20px 0 0;font-size:17px;line-height:1.65}.auth-support-note{color:#c9b6b6;background:#201719;border-left:3px solid #9b5e5e;margin-top:22px;padding:13px 15px;font-size:13px;line-height:1.5}.auth-microsoft-button{color:#172028;background:#f3f5f6;border:1px solid #70818e;border-radius:5px;justify-content:space-between;align-items:center;gap:18px;min-height:56px;margin-top:32px;padding:0 18px;font-size:15px;font-weight:700;text-decoration:none;transition:background .12s,border-color .12s,transform .12s;display:flex}.auth-microsoft-button:hover{background:#fff;border-color:#9eb2c0;transform:translateY(-1px)}.auth-microsoft-button:focus-visible{outline-offset:3px;outline:3px solid #7eafce5c}.auth-microsoft-button-main{align-items:center;gap:14px;display:inline-flex}.microsoft-mark{flex:0 0 20px;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;width:20px;height:20px;display:grid}.microsoft-mark span:first-child{background:#f25022}.microsoft-mark span:nth-child(2){background:#7fba00}.microsoft-mark span:nth-child(3){background:#00a4ef}.microsoft-mark span:nth-child(4){background:#ffb900}.auth-button-arrow{color:#496274;font-size:22px;font-weight:500}.auth-protection-note{color:#7f8b95;margin-top:16px;font-size:12px;line-height:1.5}.auth-footer{color:#6f7b85;border-top:1px solid #252c33;justify-content:space-between;align-items:center;gap:22px;min-height:64px;padding:14px clamp(28px,4vw,72px);font-size:11px;font-weight:600;display:flex}.auth-loading-screen{background:var(--bg);color:var(--text)}.auth-loading-brand{align-items:center;gap:16px;display:flex}.auth-loading-brand>div:last-child{flex-direction:column;gap:5px;display:flex}.auth-loading-brand strong{letter-spacing:.08em;font-size:14px}.auth-loading-brand span{color:#8f9ba5;font-size:13px}@media (width<=980px){.auth-layout{grid-template-columns:1fr}.auth-intro{min-height:auto;padding-bottom:54px}.auth-access-column{border-top:1px solid #272e35;border-left:0}.auth-access-panel{max-width:none}}@media (width<=620px){.auth-header{min-height:74px;padding:14px 18px}.auth-company-copy span,.auth-header-note{display:none}.auth-riggs-mark{width:40px;height:40px}.auth-intro{padding:58px 22px 44px}.auth-kicker{font-size:10px;line-height:1.6}.auth-intro h1{font-size:52px}.auth-product-title{font-size:21px}.auth-intro-copy{margin-top:26px;font-size:16px}.auth-trust-list{margin-top:34px;font-size:13px}.auth-access-column{padding:42px 22px 52px}.auth-access-panel h2{font-size:34px}.auth-access-copy{font-size:16px}.auth-microsoft-button{min-height:58px;font-size:14px}.auth-footer{flex-direction:column;align-items:flex-start;gap:5px;padding:16px 18px}}:root{--bg:#f2f3f5;--surface:#fff;--surface-2:#f8f9fa;--surface-3:#eef1f3;--text:#1f252c;--text-muted:#68717c;--text-faint:#8b949d;--border:#d9dee3;--border-strong:#c5ccd2;--accent:#2d607f;--accent-soft:#e5eef3;--accent-border:#89a9bc;--success:#2c785c;--success-bg:#e5f2ec;--danger:#a34f4f;--danger-bg:#f8e8e8;--warning:#9a691f;--warning-bg:#faf0df;--topbar:#1b2229;--topbar-border:#323b44;--topbar-text:#f5f7f8;--topbar-muted:#9da6af;--shadow:0 10px 28px #121b2412;font-family:Public Sans Variable,Public Sans,Segoe UI,system-ui,sans-serif}:root[data-theme=dark]{--bg:#181d22;--surface:#20262c;--surface-2:#252c33;--surface-3:#2b333b;--text:#cbd2d8;--text-muted:#929da7;--text-faint:#7f8a94;--border:#2d343b;--border-strong:#3a434c;--accent:#72a3c0;--accent-soft:#243844;--accent-border:#486f86;--success:#78ad97;--success-bg:#26372f;--danger:#d08484;--danger-bg:#3a2929;--warning:#d3a75f;--warning-bg:#383123;--topbar:#151a1f;--topbar-border:#2a3138;--topbar-text:#d9dfe3;--topbar-muted:#8f9aa4;--shadow:0 8px 24px #00000026}:root[data-theme=dark] body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:root[data-theme=dark] :is(h1,h2,h3,strong){color:#e1e6ea}:root[data-theme=dark] :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:var(--border);background:var(--surface-2);color:#e1e6ea}:root[data-theme=dark] :is(input,textarea)::placeholder{color:#7f8a94;opacity:1}:root[data-theme=dark] :is(input,select,textarea):focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--border-strong));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}:root[data-theme=dark] :is(.theme-toggle,.signout-button,.refresh-button){border-color:var(--border-strong)}:root[data-theme=dark] :is(.theme-toggle,.signout-button):hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 42%, var(--border-strong));background:#232a31}:root[data-theme=dark] .brand-copy span,:root[data-theme=dark] .current-user span{color:var(--topbar-muted)}:root[data-theme=dark] *{scrollbar-color:#46515b transparent}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#46515b}:root[data-theme=dark] ::-webkit-scrollbar-track{background:0 0}:root[data-theme=dark] :is(button,a,input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}
