@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap";:root{--on-surface:#1b1c1d;--on-background:#1b1c1d;--surface-variant:#e4e2e3;--surface-container-high:#e9e8e9;--surface-container-low:#f5f3f4;--surface-container:#efedef;--surface-container-lowest:#fff;--surface:#fbf9fa;--background:#fbf9fa;--primary:#162839;--primary-container:#2c3e50;--primary-fixed:#d1e4fb;--primary-fixed-dim:#b5c8df;--on-primary:#fff;--on-primary-container:#96a9be;--secondary:#5c5f60;--tertiary:#362308;--tertiary-fixed:#ffddb7;--tertiary-fixed-dim:#e3c19b;--error:#ba1a1a;--error-container:#ffdad6;--on-error-container:#93000a;--outline:#74777d;--outline-variant:#c4c6cd;--green-bg:#e8f5e9;--green-border:#a5d6a7;--green-text:#2e7d32;--orange-bg:#fff3e0;--orange-border:#ffb74d;--orange-text:#e65100;--radius:4px;--radius-lg:8px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;color:var(--on-background);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;direction:ltr;justify-content:center;align-items:center;font-family:Material Symbols Outlined;font-size:20px;font-style:normal;font-weight:400;line-height:1;display:inline-flex}.material-symbols-outlined.fill{font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 20}.app-shell{min-height:100vh;display:flex}.side-nav{z-index:50;gap:var(--space-md);width:240px;padding:var(--space-lg) var(--space-md);background:var(--surface-container-low);border-right:1px solid var(--outline-variant);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:var(--space-sm);padding-inline:var(--space-sm);display:flex}.brand-mark,.avatar{border-radius:var(--radius);background:var(--primary);width:32px;height:32px;color:var(--on-primary);flex:none;place-items:center;font-weight:700;display:grid}.brand strong{color:var(--primary);font-size:18px;line-height:24px;display:block}.brand span{color:var(--secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700;line-height:16px;display:block}.nav-cta,.btn,.date-filter{justify-content:center;align-items:center;gap:var(--space-xs);min-height:34px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:var(--surface-container-lowest);color:var(--primary);border:1px solid #0000;font-size:13px;font-weight:600;line-height:16px;display:inline-flex}.nav-cta,.btn.primary{background:var(--primary);width:100%;color:var(--on-primary)}.btn.secondary,.date-filter{border-color:var(--outline-variant);background:var(--surface-container-lowest);width:auto;color:var(--primary)}.nav-list{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.nav-item{align-items:center;gap:var(--space-md);width:100%;min-height:36px;padding:var(--space-sm);border-radius:var(--radius);color:var(--secondary);text-align:left;background:0 0;border:0;border-right:2px solid #0000;font-size:14px;line-height:20px;display:flex}.nav-item:hover,.nav-item.active{background:var(--surface-container-high);color:var(--primary)}.nav-item.active{border-right-color:var(--primary);font-weight:700}.nav-item.bottom{margin-top:auto}.nav-item .nav-label{flex:1}.nav-badge{background:var(--error);min-width:20px;height:18px;color:var(--on-primary);border-radius:999px;place-items:center;padding-inline:6px;font-size:11px;font-weight:700;display:inline-grid}.empty-state{align-items:center;gap:var(--space-xs);padding:var(--space-xl);border:1px dashed var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface-container-low);color:var(--secondary);text-align:center;flex-direction:column;display:flex}.empty-state strong{color:var(--primary);font-size:14px}.empty-state .material-symbols-outlined{color:var(--outline);font-size:32px}.status-pill{border:1px solid var(--outline-variant);background:var(--surface-container-low);color:var(--secondary);text-transform:capitalize;letter-spacing:0;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.status-pill.scheduled{border-color:var(--green-border);background:var(--green-bg);color:var(--green-text)}.status-pill.draft{border-color:var(--outline);background:var(--surface-container);color:var(--primary)}.status-pill.cancelled,.status-pill.no-show,.status-pill.makeup-needed{border-color:var(--orange-border);background:var(--orange-bg);color:var(--orange-text)}.metric,.panel,.person-card,.candidate-card{transition:box-shadow .15s,transform .15s}.metric:hover,.person-card:hover,.candidate-card:hover{box-shadow:0 4px 16px #1628390f}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.workspace{flex-direction:column;flex:1;min-width:0;margin-left:240px;display:flex}.top-bar{z-index:40;height:64px;padding-inline:var(--space-lg);background:var(--surface);border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.top-tabs,.top-actions,.button-row,.badges,.schedule-controls{align-items:center;gap:var(--space-sm);display:flex}.top-tab{height:64px;color:var(--secondary);background:0 0;border:0;border-bottom:2px solid #0000;font-size:18px;font-weight:600;line-height:24px}.top-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.icon-btn{border-radius:var(--radius);width:32px;height:32px;color:var(--secondary);background:0 0;border:0;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-container);color:var(--primary)}.screen{width:100%;max-width:1280px;padding:var(--space-lg);margin:0 auto}.screen-flush{max-width:none;height:calc(100vh - 64px)}.toast{right:var(--space-lg);bottom:var(--space-lg);z-index:80;align-items:center;gap:var(--space-sm);max-width:520px;padding:var(--space-sm) var(--space-md);border:1px solid var(--green-border);border-radius:var(--radius-lg);background:var(--green-bg);color:var(--green-text);font-size:13px;font-weight:600;display:flex;position:fixed}.toast button{color:currentColor;background:0 0;border:0}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);margin-bottom:var(--space-lg);display:flex}h1,h2,h3,p{margin:0}h1{color:var(--primary);font-size:24px;font-weight:600;line-height:32px}h2{color:var(--primary);font-size:18px;font-weight:600;line-height:24px}h3{color:var(--on-surface);font-size:18px;font-weight:600;line-height:24px}p,small{color:var(--secondary);font-size:13px;line-height:18px}.breadcrumb,.sort-chip,.metric span,.metric small,.label,label,em{color:var(--secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-style:normal;font-weight:700;line-height:16px}.metric-grid,.profile-grid,.settings-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metric,.panel,.person-card,.info-strip,.opportunity-row{border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface)}.metric{min-height:140px;padding:var(--space-md)}.metric.danger{border-left:4px solid var(--error)}.metric.warn{border-left:4px solid var(--tertiary-fixed-dim)}.metric div,.panel-head,.section-title,.candidate-head{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.metric strong{align-items:baseline;gap:var(--space-xs);margin-block:var(--space-lg) var(--space-sm);color:var(--primary);font-size:32px;line-height:1;display:flex}.metric small{text-transform:none;letter-spacing:0}.split-grid,.assignment-layout,.map-workspace{gap:var(--space-lg);grid-template-columns:minmax(0,2fr) minmax(300px,1fr);align-items:start;display:grid}.assignment-layout{grid-template-columns:minmax(320px,.8fr) minmax(0,1.6fr)}.stack{gap:var(--space-md);flex-direction:column;display:flex}.stack.wide{min-width:0}.panel{padding:var(--space-md)}.panel-head{padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--outline-variant)}.panel-head button,.section-title button,.issue-row em,.chain-card button{color:var(--primary);background:0 0;border:0;font-size:13px;font-weight:600}.list-panel{padding:0;overflow:hidden}.action-row,.issue-row{align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md);border:0;border-bottom:1px solid var(--outline-variant);color:var(--on-surface);text-align:left;background:0 0;grid-template-columns:36px minmax(0,1fr) auto auto;display:grid}.action-row:hover,.issue-row:hover,.opportunity-row:hover{background:var(--surface-container-low)}.row-icon{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-container);width:36px;height:36px;color:var(--outline);place-items:center;display:grid}.action-row strong,.issue-row strong,.quick-panel strong,.opportunity-row strong{color:var(--primary);font-size:13px;line-height:16px;display:block}.action-row small,.issue-row small{margin-top:2px;display:block}.action-row em{background:var(--error-container);color:var(--on-error-container);border-radius:12px;padding:3px 8px}.quick-panel{gap:var(--space-sm);flex-direction:column;display:flex}.quick-panel h2{padding-bottom:var(--space-sm);border-bottom:1px solid var(--outline-variant)}.quick-panel button,.opportunity-row{justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface-container-low);color:var(--primary);display:flex}.quick-panel button span,.primary-row span{align-items:center;gap:var(--space-sm);font-weight:600;display:inline-flex}.quick-panel .primary-row{background:var(--primary);color:var(--on-primary)}.info-strip{gap:var(--space-md);padding:var(--space-md);background:var(--surface-container-low);display:flex}.info-strip strong,.info-strip span{display:block}.schedule-page{gap:var(--space-md);flex-direction:column;height:100%;display:flex}.schedule-controls{padding:var(--space-md);border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap}.week-picker,.segmented{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-container-lowest);align-items:center;display:flex;overflow:hidden}.week-picker button,.segmented button{min-height:34px;color:var(--secondary);background:0 0;border:0}.week-picker strong{min-width:200px;padding-inline:var(--space-md);color:var(--primary);text-align:center}.segmented{background:var(--surface-container);padding:2px}.segmented button{padding-inline:var(--space-md);border-radius:var(--radius);font-size:13px;font-weight:600}.segmented .selected{background:var(--surface);color:var(--primary)}.spacer{flex:1}.checkline{align-items:center;gap:var(--space-sm);text-transform:none;letter-spacing:0;font-size:14px;display:inline-flex}.schedule-grid{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface);flex:1;min-height:0;overflow:auto}.grid-head,.grid-row{grid-template-columns:200px repeat(7,minmax(130px,1fr));min-width:1110px;display:grid}.grid-head{z-index:5;background:var(--surface-container-low);border-bottom:1px solid var(--outline-variant);position:sticky;top:0}.grid-head>div{border-right:1px solid var(--outline-variant);min-height:56px;color:var(--secondary);text-transform:uppercase;letter-spacing:.05em;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.grid-head span{margin-left:var(--space-xs);color:var(--primary);font-size:13px}.grid-row{border-bottom:1px solid var(--outline-variant)}.resource-cell{z-index:4;min-height:84px;padding:var(--space-sm);border:0;border-right:1px solid var(--outline-variant);background:var(--surface);text-align:left;flex-direction:column;justify-content:center;display:flex;position:sticky;left:0}.resource-cell strong{color:var(--primary);font-size:13px}.resource-cell span{color:var(--secondary);text-transform:uppercase;font-size:11px;font-weight:700}.day-cell{min-height:84px;padding:var(--space-xs);border-right:1px solid var(--outline-variant);position:relative}.visit-block{height:100%;min-height:70px;padding:var(--space-xs);border:1px solid var(--green-border);border-radius:var(--radius);background:var(--green-bg);color:var(--green-text);flex-direction:column;justify-content:space-between;font-size:11px;display:flex}.visit-block.draft{border-style:dashed;border-color:var(--outline);background:var(--surface-container);color:var(--primary)}.visit-block.makeup-needed,.visit-block.cancelled,.visit-block.no-show{border-color:var(--orange-border);background:var(--orange-bg);color:var(--orange-text)}.visit-block div{justify-content:space-between;gap:var(--space-xs);display:flex}.visit-block span{font-size:10px}.empty-slot{inset:var(--space-xs);border-radius:var(--radius);color:#0000;background:0 0;border:1px dashed #0000;place-items:center;display:grid;position:absolute}.day-cell:hover .empty-slot{border-color:var(--primary-fixed-dim);background:color-mix(in srgb, var(--primary-fixed) 30%, transparent);color:var(--primary)}.assignment-layout label,.settings-panel label{gap:var(--space-xs);margin-top:var(--space-sm);flex-direction:column;display:flex}input,select{min-height:36px;padding:var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-container-lowest);color:var(--on-surface);font-size:14px}.form-grid{gap:var(--space-sm);grid-template-columns:repeat(3,1fr);display:grid}.validation-box{gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-container-low);flex-direction:column;display:flex}.error-text,.warn-text,.ok-text{align-items:center;gap:var(--space-xs);font-weight:600;display:flex}.error-text{color:var(--error)}.warn-text{color:var(--orange-text)}.ok-text{color:var(--green-text)}.map-card,.map-large{border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:radial-gradient(var(--outline-variant) 1px, transparent 1px) 0 0 / 16px 16px, var(--surface-container);min-height:280px;position:relative;overflow:hidden}.map-large{min-height:560px}.map-pin{color:var(--primary);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.map-label,.map-note{padding:var(--space-xs) var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius);background:#ffffffe6;font-size:12px;position:absolute}.map-label{top:var(--space-sm);left:var(--space-sm)}.map-label span,.map-label strong{display:block}.map-note{right:var(--space-sm);bottom:var(--space-sm);align-items:center;gap:var(--space-xs);text-transform:uppercase;font-size:11px;font-weight:700;display:flex}.map-note span,.dot{background:var(--green-text);border-radius:999px;width:8px;height:8px}.candidate-list{gap:var(--space-sm);flex-direction:column;display:flex}.candidate-card{gap:var(--space-md);padding:var(--space-md);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface);grid-template-columns:84px minmax(0,1fr) 150px;display:grid}.candidate-card.featured{border-width:2px;border-color:var(--primary)}.candidate-card.blocked{background:color-mix(in srgb, var(--error-container) 18%, var(--surface))}.score{border-right:1px solid var(--outline-variant);text-align:center;align-content:center;place-items:center;display:grid}.score strong{color:var(--green-text);font-size:32px;line-height:1}.score span{color:var(--secondary);text-transform:uppercase;font-size:11px;font-weight:700}.candidate-main{gap:var(--space-sm);flex-direction:column;min-width:0;display:flex}.badges{margin-top:var(--space-xs);flex-wrap:wrap}.badges span{border:1px solid var(--outline-variant);border-radius:var(--radius);background:var(--surface-container-low);color:var(--primary);align-items:center;gap:2px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.badges .good{border-color:var(--green-border);background:var(--green-bg);color:var(--green-text)}.badges .bad{border-color:var(--error-container);background:var(--error-container);color:var(--on-error-container)}.logic-grid{gap:var(--space-sm) var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.reason{gap:var(--space-xs);display:flex}.reason>.material-symbols-outlined{color:var(--primary)}.reason strong,.reason span{color:var(--secondary);font-size:13px;line-height:18px;display:block}.reason strong{color:var(--secondary);text-transform:uppercase;font-size:11px;font-weight:700}.candidate-actions{justify-content:end;gap:var(--space-sm);flex-direction:column;display:flex}.candidate-actions .btn{width:100%}.chain-card{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px dashed var(--primary-fixed-dim);border-radius:var(--radius);background:var(--surface-container-low);margin-left:96px;display:flex}.chain-card strong,.chain-card span{display:block}.filter-bar{gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface);display:flex}.search{flex:1;position:relative}.search .material-symbols-outlined{left:var(--space-sm);color:var(--outline);position:absolute;top:50%;transform:translateY(-50%)}.search input{width:100%;padding-left:var(--space-xl)}.issue-group{margin-bottom:var(--space-lg);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.issue-group header{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--outline-variant);display:flex}.issue-group.critical header{background:var(--error-container);color:var(--error)}.issue-group.warning header{background:var(--tertiary-fixed)}.issue-group.info header{background:var(--surface-container-low)}.issue-group header span:last-child{background:var(--primary);color:var(--on-primary);text-transform:uppercase;border-radius:12px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:700}.profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.person-card{gap:var(--space-md);padding:var(--space-md);grid-template-columns:48px minmax(0,1fr);display:grid}.person-avatar{border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--primary-fixed);width:48px;height:48px;color:var(--primary);place-items:center;font-weight:700;display:grid}.person-card .person-stats,.person-card .button-row{grid-column:1/-1}.person-stats{gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius);background:var(--surface-container-low);color:var(--secondary);font-size:13px;display:grid}.profile-summary{gap:var(--space-md);flex-direction:column;display:flex}.profile-summary>strong{padding:var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius);color:var(--primary)}.mini-schedule{gap:var(--space-sm);flex-direction:column;display:flex}.mini-schedule div,.review-table>div{gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:1px solid var(--outline-variant);grid-template-columns:1fr 1fr auto;align-items:center;display:grid}.mini-schedule span,.mini-schedule em{color:var(--secondary);font-size:13px}.map-marker{align-items:center;gap:var(--space-xs);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--primary);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-marker.client .material-symbols-outlined,.dot.client{color:var(--green-text);background:var(--green-text)}.map-marker.rbt .material-symbols-outlined,.dot.rbt{color:var(--primary);background:var(--primary)}.dot.missing{background:var(--error);display:inline-block}.review-table{gap:0;display:grid}.review-table>div{grid-template-columns:72px 1fr 2fr 1fr}.import-toolbar,.mapping-grid,.import-summary{gap:var(--space-sm);margin-bottom:var(--space-md);display:grid}.import-toolbar{grid-template-columns:auto minmax(180px,1fr) auto;align-items:center}.file-drop{justify-content:center;align-items:center;gap:var(--space-xs);border:1px dashed var(--outline);border-radius:var(--radius);background:var(--surface-container-lowest);min-height:40px;color:var(--primary);cursor:pointer;font-size:13px;font-weight:700;display:flex}.file-drop input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.import-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.import-summary div{min-height:72px;padding:var(--space-sm);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);background:var(--surface-container-low)}.import-summary strong{color:var(--primary);font-size:24px;line-height:1.2;display:block}.import-summary span{color:var(--secondary);text-transform:uppercase;font-size:12px;font-weight:700}.mapping-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mapping-grid label{gap:var(--space-xs);color:var(--secondary);text-transform:uppercase;flex-direction:column;font-size:11px;font-weight:700;display:flex}.review-table.enhanced{overflow-x:auto}.review-table.enhanced>div{grid-template-columns:56px repeat(5,minmax(150px,1fr)) minmax(180px,1fr) 40px;min-width:1120px}.review-table.enhanced input{min-height:32px;padding:6px 8px;font-size:13px}.review-head{color:var(--secondary);text-transform:uppercase;font-size:11px;font-weight:700}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-panel{gap:var(--space-sm);flex-direction:column;display:flex}.settings-panel code{border-radius:var(--radius);background:var(--surface-container);color:var(--primary);align-self:start;padding:4px 8px;font-size:13px}.save-settings{width:auto;margin-top:var(--space-lg)}@media (width<=980px){.side-nav{width:100%;height:auto;position:static}.app-shell,.top-bar,.page-head,.split-grid,.assignment-layout,.map-workspace{flex-direction:column;display:flex}.top-bar{align-items:stretch;gap:var(--space-sm);height:auto;padding:var(--space-sm) var(--space-lg);position:static}.top-tabs{justify-content:center}.top-tab{height:44px}.top-actions{flex-wrap:wrap;justify-content:center}.top-actions .btn{width:auto;min-width:96px}.workspace{margin-left:0}.metric-grid,.profile-grid,.settings-grid,.candidate-card{grid-template-columns:1fr}.score{border-right:0;border-bottom:1px solid var(--outline-variant);padding-bottom:var(--space-sm)}.logic-grid,.form-grid{grid-template-columns:1fr}.action-row,.issue-row{grid-template-columns:36px minmax(0,1fr) auto}.action-row em,.issue-row em{grid-column:2/3;justify-self:start}}
