.personal-plan-view,.pv-day-shifts,.pv-week-list{display:grid;gap:12px}.personal-plan-view{gap:28px;max-width:1000px;margin:24px auto}.pv-today>header{margin-bottom:18px}.pv-eyebrow{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-text)}.personal-plan-view h2,.pv-area h2{font-size:24px;line-height:1.2;font-weight:750;margin:8px 0}.personal-plan-view h3{font-size:17px;font-weight:650;margin:16px 0 12px}.pv-today>header p,.pv-week-heading>div>span{color:var(--muted-text);font-size:14px}.pv-shift{display:grid;gap:12px;width:100%;border:1px solid var(--line);background:var(--surface-1);border-radius:18px;padding:20px;text-align:left;color:var(--ink);transition:border-color .15s,background .15s}.pv-day-shift:hover,.pv-shift:hover{border-color:var(--brand-deep)}.pv-compact-week button:focus-visible,.pv-days button:focus-visible,.pv-shift:focus-visible{outline:3px solid var(--brand-deep);outline-offset:3px}.pv-hero-shift{background:linear-gradient(125deg,color-mix(in srgb,var(--brand-deep) 10%,var(--surface-1)),var(--surface-1));margin-top:12px}.pv-shift-bottom,.pv-shift-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}.pv-shift-top{color:var(--muted-text)}.pv-shift-top b{font-size:12px;font-weight:650;color:var(--ink);padding:4px 8px;background:color-mix(in srgb,var(--brand-deep) 12%,transparent);border-radius:6px}.pv-time{font-size:25px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.pv-hero-shift .pv-time{font-size:32px}.pv-shift-bottom>span:last-child{display:flex;align-items:center;gap:10px;color:var(--muted-text)}.pv-next{margin-top:20px}.pv-empty{display:grid;justify-items:start;gap:10px;padding:24px;border:1px dashed var(--line);border-radius:18px;color:var(--muted-text);font-size:14px}.pv-empty strong{color:var(--ink);font-size:18px}.pv-action-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:var(--surface-1);border:1px solid var(--line);border-radius:14px;text-align:left}.pv-action-summary span{display:grid;gap:4px}.pv-action-summary small{color:var(--muted-text)}.pv-week-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.pv-segment{display:flex;padding:4px;border:1px solid var(--line);border-radius:12px}.pv-segment button{padding:8px 14px;border-radius:8px;min-height:40px;font-size:14px}.pv-segment button[aria-pressed=true]{background:var(--surface-1);box-shadow:0 1px 4px #0002;font-weight:700}.pv-date-nav{display:flex;align-items:center;gap:6px;margin:16px 0;flex-wrap:wrap}.pv-date-nav button{min-width:44px;min-height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:14px}.pv-date-nav strong{flex:1;text-align:center;font-size:14px}.pv-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:16px 0}.pv-days button{display:grid;gap:3px;justify-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 2px;font-size:13px;min-height:78px}.pv-days button strong{font-size:19px}.pv-days button[aria-pressed=true]{border-color:var(--brand-deep);background:color-mix(in srgb,var(--brand-deep) 14%,var(--surface-1))}.pv-detail{display:grid;gap:16px;padding:20px 24px}.pv-detail h2{font-size:30px;font-weight:750}.pv-detail h3{font-size:20px}.pv-detail p{display:flex;align-items:center;gap:8px;line-height:1.6}.pv-note{font-size:14px;line-height:1.6;color:var(--muted-text);white-space:pre-wrap}.pv-area button,.pv-detail button{min-height:44px}.pv-detail-sheet{overflow-y:auto}.pv-planner-day{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;margin:24px 0;align-items:start}.pv-area{border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--surface-1);min-width:0}.pv-area>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.pv-area h2{font-size:19px}.pv-area>header span{font-size:13px;color:var(--muted-text)}.pv-area>header button,.pv-coverage-slot button{font-size:13px;border:1px solid var(--line);padding:8px 12px;border-radius:10px;white-space:nowrap}.pv-coverage{display:grid;gap:8px;margin-bottom:18px}.pv-coverage-slot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-left:3px solid var(--line);background:var(--canvas);border-radius:8px}.pv-coverage-slot>span{display:grid;gap:4px}.pv-coverage-slot strong{font-size:14px}.pv-coverage-slot small{font-size:12px;color:var(--muted-text)}.pv-coverage-slot.critical_shortage{border-left-color:#c98620}.pv-coverage-slot.below_target{border-left-color:var(--brand-deep)}.pv-day-shift{display:grid;gap:5px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--canvas);color:var(--ink)}.pv-day-shift>strong{font-size:19px;font-variant-numeric:tabular-nums}.pv-day-shift>span{font-size:14px}.pv-day-shift>small{font-size:12px;color:var(--muted-text)}.pv-day-shift.is-open{border-style:dashed}.pv-day-shift.is-removed>strong{text-decoration:line-through}.pv-warning{display:flex;align-items:start;gap:6px}.pv-warning svg{flex-shrink:0}.pv-absence{display:flex;flex-wrap:wrap;gap:4px 12px;text-align:left;width:100%;padding:12px 0;border-top:1px solid var(--line);margin-top:12px;font-size:14px}.pv-absence small{color:var(--muted-text)}.pv-compact-week{display:none}.roster-view-tabs button[aria-pressed=true]{background:var(--surface-1);color:var(--ink);font-weight:700}.pv-change{border-bottom:1px solid var(--line);padding-bottom:16px}.pv-change p{font-size:14px}.pv-loading{display:grid;gap:14px;width:min(100%,600px);margin:24px auto}.pv-loading>div{display:grid;gap:12px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface-1)}.pv-loading span,.pv-loading strong{height:14px;width:45%;border-radius:6px;background:var(--surface-2)}.pv-loading strong{height:30px;width:65%}.pv-loading span:last-child{width:35%}.personal-plan-tabs{overflow-x:auto;flex-wrap:nowrap!important}.personal-plan-tabs button{min-height:44px;flex-shrink:0}.pv-more{position:relative}.pv-more summary{cursor:pointer;min-width:44px;min-height:44px;display:grid;place-items:center;list-style:none}.pv-more summary,.pv-more[open]>div{border:1px solid var(--line);border-radius:12px}.pv-more[open]>div{position:absolute;right:0;top:100%;z-index:30;min-width:230px;display:grid;gap:6px;padding:12px;background:var(--surface-1);box-shadow:var(--card-shadow)}.roster-plan .roster-desktop{max-height:75dvh;overflow:auto}.roster-plan .roster-grid-header{position:sticky;top:0;z-index:5;background:var(--surface-1)}@media(min-width:901px){.pv-today{max-width:680px}.pv-week-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.roster-plan .roster-desktop{display:none}.pv-compact-week{display:grid;gap:10px;margin:20px 0}.pv-compact-week>button{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:left;background:var(--surface-1)}.pv-compact-week>button.is-today{border-color:var(--brand-deep)}.pv-compact-week span{display:grid;gap:6px}.pv-compact-week small{color:var(--muted-text);font-size:13px}.pv-planner-day{grid-template-columns:1fr}.roster-plan .roster-view-tabs{overflow-x:auto;flex-wrap:nowrap}.roster-plan .roster-view-tabs button{min-height:44px;flex-shrink:0}.pv-area{padding:16px}}@media(max-width:600px){.pv-detail-sheet{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;height:auto!important;max-height:90dvh;border-radius:24px 24px 0 0!important}.pv-shift{padding:18px}.pv-hero-shift .pv-time{font-size:28px}.pv-date-nav strong{font-size:12px}.personal-plan-view{gap:24px}.pv-week-heading h2{font-size:22px}}@media(prefers-reduced-motion:reduce){.pv-shift{transition:none}}.schedule-context-actions,.schedule-context-bar,.schedule-publication,.schedule-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.schedule-toolbar{justify-content:space-between;margin:8px 0 16px}.schedule-toolbar .roster-week-nav{margin:0;min-width:0;max-width:100%;grid-template-columns:44px minmax(0,1fr) 44px auto}.schedule-toolbar .roster-view-tabs{width:auto}.schedule-context-bar{justify-content:space-between;min-height:48px;margin:12px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.schedule-context-actions{gap:6px}.schedule-context-actions button,.schedule-publication>button:not(.admin-primary){min-height:44px;padding:8px 12px;border-radius:10px;color:var(--muted-text);font-size:14px}.schedule-context-actions button:hover,.schedule-context-actions button[aria-pressed=true]{background:var(--surface-2);color:var(--ink)}.schedule-published-status{font-size:14px;color:var(--muted-text)}.roster-plan .roster-area-tabs button[aria-pressed=true]{background:var(--surface-2);color:var(--ink);border-color:var(--brand-deep);font-weight:700}.roster-plan .roster-area-tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap}.roster-plan .roster-area-tabs button{white-space:nowrap;min-height:44px}.schedule-menu{background:var(--surface-1);color:var(--ink);border-color:var(--line);max-width:calc(100vw - 24px)}.schedule-menu [role=menuitem]{min-height:44px;padding:10px 14px;font-size:14px;cursor:pointer}.schedule-menu [role=menuitem][data-highlighted]{background:var(--surface-2)}.schedule-empty-start{padding:24px;border:1px dashed var(--line);border-radius:16px;margin:16px 0;display:grid;gap:12px}.schedule-empty-start h2{font-size:20px;font-weight:700}.schedule-empty-start p{color:var(--muted-text);font-size:14px}.schedule-empty-start>div{display:flex;gap:8px;flex-wrap:wrap}.schedule-empty-start button{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;width:fit-content}.roster-plan button.roster-shift-card{display:grid;gap:5px;width:100%;min-height:64px;text-align:left;box-shadow:none;padding:10px 12px;overflow:hidden}.roster-plan .roster-shift-card>.roster-shift-title{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.roster-plan .roster-shift-card strong{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.roster-plan .roster-shift-card>span:not(.roster-shift-title){font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-plan .roster-shift-card small{font-size:12px;color:var(--muted-text)}.roster-plan .roster-shift-card .schedule-duty-status{color:var(--ink)}.roster-plan .roster-shift-card.is-open{border-style:dashed}.roster-detail-primary{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.roster-detail-primary button{display:flex;gap:8px;align-items:center;justify-content:center;min-height:46px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;font-size:14px}.roster-detail-primary svg{width:18px}.roster-detail .roster-options{margin-top:16px}.roster-detail .roster-detail-actions{grid-template-columns:1fr}.roster-detail .roster-detail-actions>button{min-height:44px;box-shadow:none;text-align:left;justify-content:flex-start}.roster-detail .roster-detail-actions>.danger{margin-top:12px;border-top:1px solid var(--line)}.employee-picker{display:grid;gap:16px}.employee-picker h3{font-size:14px;font-weight:650;color:var(--muted-text)}.employee-picker .roster-member-option{min-height:76px;width:100%;text-align:left}.employee-picker .roster-member-option strong{font-size:16px;overflow-wrap:anywhere}.employee-picker .roster-member-option small{font-size:14px;line-height:1.45;display:block}.employee-picker .roster-member-option[aria-pressed=true]{border-color:var(--brand-deep)}.employee-choice>summary{min-height:44px;font-size:15px}.planning-check{display:grid;gap:24px}.planning-check h3{display:flex;justify-content:space-between;margin:0 0 10px;font-weight:700;font-size:16px}.planning-check h3 span{font-weight:500;color:var(--muted-text)}.planning-issue{display:flex;align-items:flex-start;gap:12px;width:100%;min-height:64px;padding:14px 0;text-align:left;border-bottom:1px solid var(--line);color:var(--ink)}.planning-issue>span{flex:1;min-width:0;display:grid;gap:5px}.planning-issue>svg{width:18px;flex-shrink:0;margin-top:3px;color:var(--muted-text)}.planning-issue strong{font-size:15px;overflow-wrap:anywhere}.planning-issue small{font-size:14px;color:var(--muted-text);line-height:1.5}.planning-issue .planning-issue-action{color:var(--brand-deep);font-weight:650}.planning-issue.is-critical>svg:first-child{color:var(--destructive)}.planning-check-empty{font-size:15px;color:var(--muted-text);padding:12px 0}.schedule-duty-issues{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:14px;line-height:1.6}.schedule-duty-issues summary{min-height:44px;padding-top:8px;cursor:pointer}.distribution-notice{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.distribution-notice summary{cursor:pointer;min-height:44px;line-height:1.5}.roster-plan button:focus-visible,.roster-plan summary:focus-visible,.roster-sheet button:focus-visible,.roster-sheet summary:focus-visible{outline:2px solid var(--brand-deep);outline-offset:3px}.pv-detail-sheet,.roster-sheet,.template-sheet{overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom)}.roster-sheet-body,.template-scroll{min-height:0;scroll-padding-bottom:88px}@media(max-width:900px){.schedule-toolbar{align-items:flex-start;gap:12px}.schedule-toolbar .roster-week-nav{flex:1 1 100%;min-width:0}.schedule-context-bar{align-items:stretch}.schedule-context-actions{gap:4px}.schedule-publication{width:100%;justify-content:space-between}.roster-plan .roster-heading{align-items:center}.roster-plan .roster-heading-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.roster-plan .roster-heading-actions>button{min-height:44px;padding-inline:10px}}@media(max-width:600px){.pv-detail-sheet,.roster-sheet,.template-sheet{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;height:auto!important;max-height:92dvh!important;border-radius:20px 20px 0 0!important}.schedule-toolbar .roster-week-nav strong{font-size:14px}.schedule-toolbar .roster-week-nav{width:100%;min-width:0;grid-template-columns:44px minmax(0,1fr) 44px}.schedule-toolbar .roster-today{grid-column:1/-1;justify-self:center}.roster-detail-primary{display:grid;grid-template-columns:1fr 1fr}.roster-detail-primary button{font-size:14px;padding-inline:8px}.roster-sheet input,.roster-sheet select,.template-sheet input,.template-sheet select{font-size:16px}.roster-plan .roster-heading h1{font-size:26px}}@media(prefers-reduced-motion:reduce){.roster-plan *,.roster-sheet,.template-sheet{scroll-behavior:auto!important;animation-duration:0s!important;transition-duration:0s!important}}.roster-heading,.roster-heading>div,.roster-plan,.roster-plan .roster-desktop,.schedule-context-bar,.schedule-context-bar>div,.schedule-toolbar,.schedule-toolbar>div{min-width:0;max-width:100%}.roster-heading{flex-wrap:wrap}.roster-plan .roster-area-tabs{flex-wrap:wrap;overflow:visible;margin-inline:0}.roster-plan .roster-area-tabs button{white-space:normal;overflow-wrap:anywhere}.pv-area h2,.pv-coverage-slot>span,.pv-day-shift{min-width:0;overflow-wrap:anywhere}@media(max-width:900px){.schedule-toolbar .roster-view-tabs{flex-wrap:wrap;overflow:visible}.roster-heading-actions{margin-left:auto}}.template-start{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:1rem 0}.template-start.is-empty{padding:1.4rem;border:1px dashed var(--border);border-radius:1.25rem}.template-start>div{flex:1 0 100%}.template-start p,.template-start small{color:var(--muted-foreground)}.template-sheet button,.template-start button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;border:1px solid var(--border);border-radius:.8rem;padding:.6rem .85rem;font-size:.875rem}.template-sheet{width:min(1100px,94vw)!important;max-width:none!important;background:var(--background);color:var(--foreground);gap:0!important}.template-scroll{overflow:auto;padding:1rem 1.5rem 2rem;display:flex;flex-direction:column;gap:1rem}.template-scroll label{display:flex;flex-direction:column;gap:.4rem;font-size:.875rem}.template-scroll label:has(input[type=checkbox]){flex-direction:row;align-items:center}.template-scroll input:not([type=checkbox]),.template-scroll select,.template-scroll textarea{background:var(--background);color:var(--foreground);border:1px solid var(--border);border-radius:.6rem;min-height:44px;padding:.65rem;max-width:100%;width:100%}.template-scroll input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--brand)}.template-scroll fieldset{display:flex;flex-wrap:wrap;gap:.8rem;padding:.8rem 0}.template-scroll legend{font-size:.875rem;font-weight:600;margin-bottom:.6rem}.template-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem}.template-card,.template-slot,.template-summary{border:1px solid var(--border);border-radius:1rem;padding:1rem;background:var(--card)}.template-card h3,.template-summary h3{font-weight:650;font-size:1.1rem}.template-card p,.template-summary p{margin:.6rem 0}.template-card small,.template-scroll small{display:block;color:var(--muted-foreground);font-size:.8rem}.template-mini-week{display:flex;gap:.4rem;margin:1rem 0;overflow:auto}.template-mini-week>div{min-width:70px;flex:1}.template-mini-week span{display:block;border:1px solid var(--border);border-radius:.5rem;padding:.4rem;margin-top:.35rem;font-size:.8rem}.template-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.template-options{display:grid;gap:1rem}.template-editor{display:grid;gap:.8rem}.template-editor.is-week{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.template-editor h3{font-weight:650;margin:.5rem 0}.template-slot{display:flex;flex-direction:column;gap:.7rem;margin-bottom:.7rem}.template-time-pair{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.template-slot details>summary{cursor:pointer;min-height:44px;padding:.7rem 0}.template-slot details label{margin-bottom:.7rem}.template-preview-days{display:grid;gap:1rem}.template-preview-days h4{font-weight:650;margin-bottom:.5rem}.template-preview-entry{border:1px solid var(--border);border-radius:.8rem;padding:.7rem 1rem;margin-bottom:.5rem}.template-preview-entry summary{display:flex;align-items:center;gap:.7rem;cursor:pointer;min-height:44px}.template-preview-entry p{margin:.5rem 0;font-size:.875rem}.template-preview-entry summary svg{flex-shrink:0}.template-candidates{display:flex;flex-direction:column;gap:.5rem}.template-candidates button{align-items:flex-start;flex-direction:column;text-align:left}.template-replace-confirm{padding:1rem;border:1px solid var(--border);border-radius:.8rem}.template-commit{position:sticky;bottom:0;width:100%;box-shadow:0 -8px 20px var(--background)}.template-sheet button:disabled{opacity:.5;cursor:not-allowed}.template-sheet button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}@media(max-width:640px){.template-sheet{inset:6vh 0 0!important;width:100%!important;height:94vh!important;border-radius:1.3rem 1.3rem 0 0}.template-scroll{padding:1rem}.template-editor.is-week{grid-template-columns:1fr}.template-start button{flex:1 1 45%}.template-mini-week{flex-wrap:wrap}.template-mini-week>div{flex:1 1 25%}}.automatic-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.automatic-week h3{font-weight:650;margin-bottom:.8rem}.automatic-week .template-preview-entry{background:var(--card)}.automatic-week .template-preview-entry>strong{font-size:1.15rem}.automatic-week .is-skipped{opacity:.6}.automatic-metrics{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.automatic-metrics span{border:1px solid var(--border);border-radius:.8rem;padding:.6rem 1rem}.automatic-metrics b{font-size:1.5rem;margin-right:.3rem}.automatic-error{border:1px solid var(--destructive);border-radius:.8rem;padding:1rem}.automatic-sheet summary{cursor:pointer;min-height:44px}.automatic-sheet button:focus-visible,.automatic-sheet summary:focus-visible{outline:2px solid var(--brand);outline-offset:3px}@media(max-width:640px){.automatic-week{grid-template-columns:1fr}.automatic-metrics{gap:.5rem}.automatic-metrics span{flex:1 1 40%}.automatic-week .template-time-pair{grid-template-columns:1fr}}