.schedule-page{max-width:none;width:calc(100% - 32px);padding-top:18px}.schedule-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.schedule-title h1{font-size:24px;margin:4px 0 14px}.schedule-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.schedule-toolbar button{height:36px;padding:0 14px;background:white;border:1px solid var(--border);border-radius:7px;color:var(--accent)}.schedule-toolbar input{width:160px}.schedule-hint,.schedule-toolbar span{font-size:12px;color:var(--muted)}.schedule-form input,.schedule-form select,.schedule-modal section>input,.schedule-pool input,.schedule-toolbar input{border:1px solid var(--border-strong);background:white;padding:8px 10px;min-height:38px;border-radius:7px;color:var(--ink);min-width:0;max-width:100%}.schedule-layout{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.schedule-pool{background:white;border:1px solid var(--border);border-radius:12px;padding:14px;position:-webkit-sticky;position:sticky;top:10px}.schedule-pool h2{font-size:15px;margin:0}.schedule-pool p{font-size:11px;color:var(--muted);margin:7px 0 12px}.schedule-pool input{width:100%;font-size:12px}.schedule-pool-items{display:flex;flex-direction:column;gap:8px;margin-top:12px}.schedule-card{-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y;cursor:-webkit-grab;cursor:grab;outline-offset:2px}.schedule-card.held{opacity:.5;cursor:-webkit-grabbing;cursor:grabbing}.pool-card{background:#f4f8ff;border:1px solid #d4e2fb;border-radius:8px;padding:11px;display:flex;flex-direction:column;gap:4px}.schedule-card strong{font-size:12px}.schedule-card small{font-size:10px;color:var(--muted)}.schedule-search-results button{display:flex;gap:6px;align-items:center;background:white;padding:10px 3px;font-size:12px;width:100%;border-bottom:1px solid var(--border)}.schedule-search-results small{font-size:9px;color:var(--muted)}.schedule-calendar{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden}.schedule-columns{padding:10px 14px;font-size:12px;border-bottom:1px solid var(--border)}.schedule-columns summary{cursor:pointer;color:var(--accent);font-weight:600}.schedule-columns label{display:inline-flex;align-items:center;gap:6px;margin:10px 14px 0 0}.schedule-horizontal{overflow-x:auto}.schedule-grid{display:grid;position:relative}.schedule-staff-head,.schedule-time-head{background:#f4f7fc;border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:12px 8px;font-size:12px;text-align:center}.schedule-staff-head b{color:var(--accent);font-size:10px;background:#e5eeff;border-radius:4px;padding:3px 5px}.schedule-staff-head small{display:block;color:var(--muted);margin-top:3px}.schedule-times{position:relative;border-right:1px solid var(--border);background:#fafcff}.schedule-times span{position:absolute;right:8px;transform:translateY(-50%);font-size:10px;color:var(--muted)}.schedule-times span:first-child{transform:translateY(0)}.schedule-times span:last-child{transform:translateY(-100%)}.schedule-lane{position:relative;border-right:1px solid var(--border);background:repeating-linear-gradient(180deg,transparent 0,transparent 47px,#e4ebf6 0,#e4ebf6 48px)}.appointment{position:absolute;border:1px solid #b9d0f4;border-left:3px solid #2468cd;background:#eaf2ff;color:#19477f;border-radius:5px;padding:3px 5px;display:flex;flex-direction:column;overflow:hidden;min-height:22px}.appointment.pt{background:#e9f7f3;border-color:#b9dfd1 #b9dfd1 #b9dfd1 #22866d;color:#18614f}.appointment.ot{background:#f2edfc;border-color:#d5c7ef #d5c7ef #d5c7ef #8263ae;color:#5a3b86}.appointment strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:16px}.appointment small{white-space:nowrap;font-size:9px;line-height:12px}.appointment-resize{position:absolute;bottom:0;left:0;right:0;height:10px;line-height:8px;text-align:center;color:#7695c2;font-size:11px;cursor:ns-resize}.schedule-drop-preview{position:absolute;left:2px;right:2px;border:2px dashed var(--accent);background:#d9e8ffba;z-index:5;pointer-events:none;font-size:11px;padding:3px}.schedule-drag-ghost{position:fixed;z-index:100;pointer-events:none;background:#1e5bb4;color:white;padding:9px 14px;border-radius:8px;box-shadow:0 6px 20px #1239;width:200px;font-size:12px}.schedule-drag-ghost small{display:block;margin-top:4px}.schedule-modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#0e244e66;padding:20px}.schedule-modal section{background:white;border-radius:14px;width:480px;max-width:100%;max-height:90vh;overflow:auto;padding:20px;box-shadow:0 16px 60px #1234}.schedule-modal header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.schedule-modal h2{font-size:17px;margin:0}.schedule-modal header button{background:#edf3ff;border-radius:6px;width:34px;height:34px;color:var(--accent);font-size:22px}.schedule-modal p{font-size:12px;line-height:1.7;color:var(--muted)}.schedule-form,.schedule-menu{display:flex;flex-direction:column;gap:10px}.schedule-menu button{width:100%}.schedule-danger{background:#fff0f1;color:#aa3540;padding:12px;border-radius:8px}.schedule-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600}.schedule-week-tabs{display:flex;gap:5px;margin:16px 0}.schedule-week-tabs button{flex:1 1;padding:10px;background:#f1f5fb;border-radius:6px}.schedule-week-tabs button.active{background:var(--accent);color:white}.schedule-week-people{display:flex;flex-direction:column;gap:12px;margin:15px 0;max-height:300px;overflow:auto}.schedule-week-people label{display:flex;align-items:center;gap:10px;font-size:13px}.schedule-week-people small{margin-left:auto;color:var(--muted)}.schedule-error{background:#fff0f1;color:#ae3347;padding:10px;font-size:12px}.record-day-list{background:white;border:1px solid var(--border);border-radius:10px;padding:12px;margin:14px 0}.record-day-list header{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}.record-day-list input{border:1px solid var(--border);border-radius:6px;padding:6px}.record-day-items{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.record-day-items button{background:#edf4ff;color:#205398;border:1px solid #d3e2fb;border-radius:8px;padding:8px 12px;text-align:left;font-size:12px}.record-day-items small{display:block;font-size:10px;margin-top:3px}.saved-visit-row{padding:12px;background:white;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;align-items:center}.saved-visit-row small{display:block;color:var(--muted);font-size:11px}.saved-visit-row button{color:var(--accent);background:#edf4ff;border-radius:6px;padding:8px 14px}@media(max-width:900px){.schedule-layout{grid-template-columns:1fr}.schedule-pool{position:static}.schedule-pool-items{flex-direction:row;flex-wrap:wrap}.pool-card{min-width:160px}.schedule-pool input{max-width:350px}.schedule-title{align-items:flex-start}.schedule-title h1{font-size:20px}.schedule-hint{line-height:1.6}.schedule-page{width:calc(100% - 20px)}.bottom-nav{grid-template-columns:repeat(5,1fr)}}.schedule-card{touch-action:none}.schedule-slot-people{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto}.schedule-slot-people button{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;text-align:left;border:1px solid var(--border);border-radius:8px;background:#f4f8ff;color:var(--ink)}.schedule-slot-people button:hover{background:#e8f1ff;border-color:var(--accent)}.schedule-slot-people small{color:var(--muted);font-size:11px}.schedule-slot-people span{margin-left:auto;color:var(--accent)}.schedule-modal-wide>section{width:1320px}.weekly-actions,.weekly-add{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}.weekly-add label{display:flex;align-items:center;gap:8px;font-size:12px}.weekly-add input:not([type=checkbox]){flex:1 1;min-width:220px}.record-day-list select,.weekly-actions select,.weekly-add input:not([type=checkbox]),.weekly-add select{border:1px solid var(--border-strong);border-radius:7px;background:white;color:var(--ink);padding:9px;min-height:40px}.weekly-calendar-scroll{overflow:auto;max-height:55vh;border:1px solid var(--border);border-radius:10px}.weekly-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));min-width:1085px}.weekly-calendar-grid>section{width:auto;max-height:none;min-height:300px;overflow:visible;padding:8px;border-radius:0;border-right:1px solid var(--border);box-shadow:none;background:#fafcff}.weekly-calendar-grid header{padding:8px;margin:0 0 6px;font-size:13px;position:-webkit-sticky;position:sticky;top:0;background:#edf3ff;z-index:1}.weekly-calendar-grid header small{font-size:11px;color:var(--muted)}.weekly-calendar-grid .drop-active{background:#dceaff}.weekly-person{padding:10px;background:white;border:1px solid #ceddf4;border-radius:7px;display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.weekly-add-day{width:100%;padding:10px 4px;color:var(--accent);background:transparent;font-size:12px}.weekly-search{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.weekly-actions button,.weekly-search button{padding:10px;background:#edf3ff;border-radius:7px;font-size:12px}.weekly-actions button:disabled,.weekly-search button:disabled{opacity:.45}.weekly-actions strong{font-size:13px}.weekly-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.schedule-hidden-notice{font-size:12px;padding:10px 14px;color:#916017;background:#fff8e8;margin:0}.record-view-switch{display:flex;border-radius:7px;background:#edf3ff;padding:3px}.record-today,.record-view-switch button{background:transparent;padding:8px 12px;color:var(--accent);border-radius:5px;font-size:12px}.record-view-switch button[aria-pressed=true]{background:var(--accent);color:white}.record-schedule-table{overflow:auto;margin-top:14px}.record-schedule-table table{width:100%;border-collapse:collapse;min-width:640px;text-align:left;font-size:13px}.record-schedule-table th{background:#f4f7fc;font-size:11px;color:var(--muted);font-weight:600;padding:10px 12px}.record-schedule-table td{padding:12px;border-bottom:1px solid var(--border);white-space:nowrap}.record-schedule-table small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.record-schedule-table button{background:#edf3ff;color:var(--accent);padding:10px 14px;border-radius:7px}.record-state{font-size:11px;color:var(--muted)}.record-state.saved{color:#178068}.record-empty{text-align:center;color:var(--muted)}.record-unassigned-heading{font-size:12px;margin:18px 0 0}.schedule-menu button:disabled{opacity:.45;cursor:not-allowed}.weekly-add label{white-space:nowrap;flex-shrink:0}.weekly-add label:first-child select{min-width:90px}.weekly-search{max-height:140px;overflow:auto}.record-day-list header>select{max-width:100%}.page-scroll:has(.schedule-page){padding-bottom:0;overflow:hidden}.schedule-page{height:100%;min-height:0;padding:10px 0 12px;display:flex;flex-direction:column;gap:8px}.schedule-title{flex:none}.schedule-title h1{font-size:20px;margin:0}.schedule-title .secondary-button{min-height:34px;padding:7px 12px;font-size:12px}.schedule-toolbar{margin:0;gap:6px;flex:none}.schedule-toolbar input{min-height:34px;height:34px}.schedule-toolbar button{height:34px}.schedule-toolbar strong{font-size:12px}.schedule-view-switch{display:flex;gap:2px;margin-left:auto;background:#eaf1fc;border-radius:7px;padding:2px}.schedule-view-switch button{border:0;background:transparent;padding:0 12px;font-size:12px}.schedule-view-switch button[aria-pressed=true]{background:var(--accent);color:white}.schedule-view-label-short{display:none}.schedule-layout{flex:1 1;min-height:0;align-items:stretch;grid-template-columns:205px minmax(0,1fr);gap:12px}.schedule-pool{position:static;overflow:auto;min-height:0;padding:12px}.schedule-calendar{display:flex;flex-direction:column;min-height:0}.schedule-columns{flex:none;padding:8px 12px;max-height:150px;overflow:auto}.schedule-horizontal{flex:1 1;min-height:0;overflow:auto;overscroll-behavior:none;position:relative}.schedule-grid{grid-template-rows:30px 48px auto;isolation:isolate}.schedule-date-head{position:-webkit-sticky;position:sticky;top:0;z-index:4;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#f1f5fc;color:var(--ink);font-size:12px;font-weight:700;height:30px}.schedule-date-head.selected{background:#dce9ff;color:var(--accent)}.schedule-staff-head{position:-webkit-sticky;position:sticky;top:30px;z-index:3;height:48px;padding:6px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.schedule-staff-head small{font-size:9px}.schedule-time-head{top:0;z-index:6;height:78px;padding:30px 4px 0}.schedule-time-head,.schedule-times{position:-webkit-sticky;position:sticky;left:0}.schedule-times{z-index:2}.schedule-week .schedule-staff-head b{font-size:8px;padding:2px}.schedule-week .appointment{padding-inline:3px}.schedule-hidden-notice{flex:none;padding:5px 12px}.record-staff-search{position:relative;width:360px;max-width:100%}.record-staff-search>input{width:100%;height:42px;padding:8px 12px;font-size:13px}.record-staff-options{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:white;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 8px 24px #16365a22;max-height:280px;overflow:auto;padding:4px}.record-staff-options button{width:100%;display:flex;flex-direction:column;gap:4px;text-align:left;background:white;border-radius:5px;padding:10px 12px;min-height:48px}.record-staff-options button.highlighted,.record-staff-options button:hover{background:#edf4ff}.record-staff-options small{font-size:11px;color:var(--muted)}.record-staff-options p{padding:12px;font-size:12px;color:var(--muted)}.schedule-horizontal{-webkit-overflow-scrolling:touch}@media(max-width:900px){.schedule-layout{grid-template-columns:170px minmax(0,1fr)}.schedule-pool-items{flex-direction:column}.pool-card{min-width:0}.schedule-title{align-items:center}.schedule-title h1{font-size:18px}}@media(max-width:1199px),(max-width:1400px) and (pointer:coarse){.schedule-page{width:calc(100% - 16px);padding-top:6px;padding-bottom:6px;gap:6px}.schedule-layout{grid-template-columns:clamp(160px,19vw,205px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:10px}.schedule-pool{display:block;padding:10px}.schedule-title{align-items:center;gap:8px}.schedule-title h1{font-size:18px}.schedule-title .secondary-button{min-height:36px;padding:6px 10px}.schedule-toolbar{gap:4px}.schedule-toolbar button{height:40px;padding-inline:10px}.schedule-toolbar input{height:40px;width:140px;padding-inline:8px}.schedule-columns{padding:0 10px}.schedule-columns summary{min-height:36px;align-content:center}.schedule-columns[open]{padding-bottom:8px}.schedule-calendar{border-radius:8px}}@media(max-width:767px){.schedule-page{height:calc(100% - 64px - env(safe-area-inset-bottom))}.schedule-pool{display:none}.schedule-layout{grid-template-columns:minmax(0,1fr);gap:0}.schedule-toolbar{display:grid;grid-template-columns:36px minmax(120px,1fr) auto 36px 48px}.schedule-toolbar>button{padding:0}.schedule-toolbar input{width:100%}.schedule-toolbar strong{font-size:11px;white-space:nowrap}.schedule-toolbar-switches{grid-column:1/-1;justify-self:end;max-width:100%;overflow-x:auto}.schedule-view-switch{margin:0;padding:0}.schedule-view-switch button{height:34px;padding-inline:14px}.schedule-view-label-full{display:none}.schedule-view-label-short{display:inline}.record-staff-search{width:100%}}.weekly-calendar-grid>section.drop-active{background:#e5f0ff;box-shadow:inset 0 0 0 3px #2165ce}.weekly-calendar-grid>section.drop-active>header{background:#2165ce;color:white}.weekly-calendar-grid>section.drop-active>header small{color:white}.weekly-calendar-grid>section.drop-blocked{background:#fff5e8;box-shadow:inset 0 0 0 2px #b86b19}.weekly-drop-preview{pointer-events:none;border:2px dashed #2165ce;border-radius:8px;background:white;padding:12px 8px;margin:8px 0;min-height:76px;display:flex;flex-direction:column;gap:8px;color:#1751a4;font-size:12px}.weekly-drop-preview.blocked{border-color:#b86b19;color:#8a4c0c}.weekly-drag-ghost{position:fixed;z-index:120;pointer-events:none;background:#194f9f;color:white;border:2px solid white;border-radius:9px;padding:12px;width:240px;box-shadow:0 8px 24px #10264644;display:grid;grid-gap:6px;gap:6px;font-size:13px}.weekly-drag-ghost span{font-size:12px}.weekly-drag-status{padding:10px;background:#eaf2ff;color:#1751a4;border-radius:8px;font-size:13px}.weekly-search-person{display:flex;gap:8px;flex-wrap:wrap;background:#f3f7ff;border:1px solid #b9d0f4;border-radius:8px;padding:12px;margin:6px 0}.weekly-search-person span{font-size:11px;color:var(--muted)}.schedule-toolbar-switches{display:flex;align-items:center;gap:6px;margin-left:auto;flex:none}.schedule-toolbar-switches .schedule-view-switch{margin-left:0}.schedule-scope{display:flex;align-items:center;gap:3px;flex:none;background:#eaf1fc;padding:2px;border-radius:7px}.schedule-scope button[aria-pressed]{min-height:34px;padding:5px 12px;border-radius:6px;color:var(--accent);background:transparent;font-size:12px}.schedule-scope button[aria-pressed=true]{background:var(--accent);color:white}.schedule-scope-picker{display:flex;flex-direction:column;gap:12px}.schedule-scope-picker>label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650}.schedule-scope-picker input{width:100%;height:44px;border:1px solid var(--border-strong);border-radius:8px;padding:0 12px}.schedule-scope-options{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:9px;padding:4px}.schedule-scope-options>button{width:100%;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:7px;background:#fff;text-align:left}.schedule-scope-options>button:hover,.schedule-scope-options>button[aria-selected=true]{background:var(--accent-soft);color:var(--accent-strong)}.schedule-scope-options>button>span{display:flex;flex-direction:column;gap:3px}.schedule-scope-options small{color:var(--muted);font-size:10px}.schedule-scope-options>p{padding:12px;margin:0}.schedule-scope-picker>footer{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.schedule-scope-picker>footer button{min-width:110px}@media(max-width:520px){.schedule-toolbar-switches{width:100%;justify-content:flex-end;gap:4px}.schedule-scope button[aria-pressed],.schedule-view-switch button{padding-inline:8px;font-size:11px}.schedule-scope-picker>footer button{flex:1 1;min-width:0}}.schedule-modal-wide{padding:10px}.schedule-modal-wide>section{width:100%;height:calc(100dvh - 20px);max-height:none;display:flex;flex-direction:column;overflow:hidden;padding:16px}.schedule-modal-wide .weekly-footer,.schedule-modal-wide>section>header{flex:none}.schedule-modal-wide .weekly-calendar-editor{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:8px}.schedule-modal-wide .weekly-calendar-editor>p{margin:0}.schedule-modal-wide .weekly-add{margin:0;justify-content:space-between;flex:none;font-size:12px}.weekly-workspace{flex:1 1;min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:12px;gap:12px}.weekly-pool{min-height:0;display:flex;flex-direction:column;gap:8px;border:1px solid var(--border);border-radius:10px;padding:10px}.weekly-pool>label{font-size:12px;font-weight:600}.weekly-pool>input{width:100%;border:1px solid var(--border-strong);border-radius:7px;padding:9px}.schedule-modal-wide .weekly-search{display:block;flex:1 1;min-height:0;max-height:none;overflow:auto;margin:0;scrollbar-gutter:stable}.schedule-modal-wide .weekly-calendar-scroll{height:100%;max-height:none;min-height:0;overscroll-behavior:none;scrollbar-gutter:stable}.schedule-modal-wide .weekly-calendar-grid{height:100%;min-width:1260px;grid-template-columns:repeat(7,minmax(180px,1fr))}.schedule-modal-wide .weekly-calendar-grid>section{height:100%;min-height:0;overflow-y:auto;position:relative;scrollbar-gutter:stable;padding:6px}.schedule-modal-wide .weekly-calendar-grid header{top:6px;padding:8px 4px}.schedule-modal-wide .weekly-person,.schedule-modal-wide .weekly-search-person{display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:6px;min-height:34px;padding:6px;margin:0 0 6px;font-size:12px}.schedule-modal-wide .weekly-person strong,.schedule-modal-wide .weekly-search-person strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-modal-wide .weekly-person small,.schedule-modal-wide .weekly-search-person small{flex:none;font-size:10px;margin:0;color:var(--muted)}.schedule-modal-wide .weekly-drop-preview{position:absolute;bottom:8px;left:6px;right:6px;min-height:0;margin:0;padding:8px;font-size:11px;z-index:2}.schedule-modal-wide .weekly-drag-status{flex:none;min-height:36px;padding:8px;font-size:12px}.schedule-modal-wide .weekly-actions{flex:none;height:44px;margin:0;font-size:12px}.schedule-modal-wide .weekly-footer{margin-top:8px}.schedule-title>div{display:flex;align-items:center;gap:6px}.schedule-layout.pool-hidden{grid-template-columns:minmax(0,1fr)}.schedule-week.schedule-scope-all .schedule-date-head,.schedule-week.schedule-scope-all .schedule-lane.day-boundary,.schedule-week.schedule-scope-all .schedule-staff-head.day-boundary{border-left:3px solid #8fa8cc}@media(max-width:1199px),(max-width:1400px) and (pointer:coarse){.schedule-card{touch-action:pan-x pan-y}}@media(max-width:767px){.schedule-title .schedule-pool-toggle{display:none!important}.schedule-title{display:none}}