.week-board{min-height:778px}.day-slots,.time-scale{height:720px}.day-slots{touch-action:pan-x pan-y;user-select:none;background:linear-gradient(180deg,transparent 43.75%,#faf5e9 0,#faf5e9 50%,transparent 0),repeating-linear-gradient(180deg,transparent 0,transparent 21.5px,#f3f5f3 22.5px),repeating-linear-gradient(180deg,transparent 0,transparent 89px,#e1e7e3 90px)}.list-head,.list-row{grid-template-columns:130px 1.1fr 1.5fr 1.1fr 165px}.list-row{min-height:62px;padding:9px 20px}.list-row small{margin-top:3px}.day-list .list-row b,.day-list .list-row>span{font-size:14px}.list-row.alternate{background:#faf9fd}.list-row.alternate.completed,.list-row.completed{background:#eaf6ef}.list-row button{padding:3px 6px;white-space:nowrap;border:1px solid #e4e0ef;background:transparent;color:var(--purple-dark);font-size:10px}.list-row button:hover{background:#e4dff2}.list-row button.visited{border-color:#b9ddc7;color:#397653}.list-row button.visited.active,.list-row button.visited:hover{border-color:#8fc3a2;background:#d5ebdd;color:#2f6848}.lunch-row{position:relative;min-height:42px;display:flex;align-items:center;padding:8px 20px;border-top:1px solid #eee8d8;border-bottom:1px solid #eee8d8;background:#faf5e9;color:#897f6b}.lunch-row strong{font:700 13px serif}.lunch-row span{position:absolute;left:50%;transform:translateX(-50%);font-size:11px;font-weight:700}.day-type-banner{min-height:38px;display:flex;align-items:center;justify-content:center;padding:7px 20px;border-bottom:1px solid #e4e0ef;background:#faf9fd;color:var(--purple-dark);text-align:center}.day-type-banner strong{font-size:11px}.day-type-banner.rest{border-color:#dfe3e1;background:#f3f4f3;color:#5f696a}.day-type-banner.initial{border-color:#8fc4ec;background:#e7f3ff;color:#286b9c}.field input,.field select,.field textarea{width:100%}.field input,.field select{height:42px}.actions .rest-toggle{border-color:#cfd4d2;color:#667173}.actions .rest-toggle.active{background:#747d7e;border-color:#747d7e;color:#fff}.week-card>b{font-size:12px;line-height:14px}.week-card.rest-card{top:0!important;height:720px!important;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:18px 12px;border-color:#d8dcda #d8dcda #d8dcda #7b8585;background:#f3f4f3;text-align:left}.week-card.rest-card>b{font-size:14px;color:#596465}.week-card.rest-card>small{display:none}.week-card.rest-card>button{background:#e1e4e2;color:#687273}.week-card.rest-card>span{display:none}.week-card.block-card{border-color:#d8dcda #d8dcda #d8dcda #7b8585;background:#f3f4f3}.week-card.block-card>b,.week-card.block-card>span{color:#596465}.week-card.block-card>small{display:none}.week-card.block-card>button{background:#e1e4e2;color:#687273}.week-card:not(.rest-card):not(.block-card){padding-right:22px}.week-card>.delete-card{right:3px}.week-card.action-open>b,.week-card.action-open>small,.week-card.action-open>span{filter:blur(2px);opacity:.38;transition:filter .12s ease,opacity .12s ease}.week-card.action-open>.delete-card{opacity:.25}.week-card>.visit-option{z-index:6;top:50%;left:50%;right:auto;bottom:auto;width:auto;min-width:64px;height:29px;padding:0 11px;transform:translate(-50%,-50%);border:1px solid #9fcdb0;border-radius:8px;background:#e1f2e7;color:#326b49;box-shadow:0 4px 12px #315e4230;font-size:11px;font-weight:800;line-height:27px}.week-card>.visit-option.active,.week-card>.visit-option:hover{border-color:#8fc3a2;background:#d5ebdd;color:#2f6848}.week-card.completed-card{border-color:#b9ddc7 #b9ddc7 #b9ddc7 #5e9b75;background:#eaf6ef}.week-card.completed-card>b,.week-card.completed-card>span{color:#3f7656}.full-day-option{grid-column:1/-1;display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #dfe4e2;border-radius:9px;background:#f7f8f6;font-size:12px;font-weight:700;color:#5f6b6c}.full-day-option input{width:17px;height:17px;accent-color:#747d7e}.block-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.block-presets.full{grid-column:1/-1}.block-presets>span{color:var(--muted);font-size:11px}.block-presets button{border:1px solid #d9dedb;border-radius:8px;background:#f5f6f4;color:#5f6b6c;padding:7px 10px;font-size:11px}.block-presets .manage-presets{border-style:dashed;background:#fff;font-weight:700}.treatment-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.treatment-presets.full{grid-column:1/-1}.treatment-presets>span{color:var(--muted);font-size:11px}.treatment-presets button{border:1px solid #dcd7ea;border-radius:8px;background:#faf9fd;color:#655a98;padding:7px 10px;font-size:11px}.treatment-presets button.active{border-color:var(--purple);background:var(--purple);color:#fff}.treatment-presets .manage-presets{border-style:dashed;background:#fff;font-weight:700}.preset-manager{padding:12px;border:1px solid #ded9ed;border-radius:11px;background:#faf9fd}.preset-add{display:grid;grid-template-columns:1fr auto;gap:8px}.preset-add input{min-width:0;height:38px;border:1px solid #dfe5e2;border-radius:8px;padding:0 10px;background:#fff}.preset-add button{border:0;border-radius:8px;padding:0 15px;background:var(--purple);color:#fff;font-weight:700}.preset-manager-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.preset-manager-list span{display:flex;align-items:center;gap:6px;padding:6px 7px 6px 10px;border:1px solid #dcd7ea;border-radius:8px;background:#fff;color:var(--purple-dark);font-size:10px}.preset-manager-list button{width:19px;height:19px;border:0;border-radius:5px;padding:0;background:#efecf8;color:var(--purple-dark);line-height:19px}.preset-manager>small{display:block;margin-top:9px;color:var(--muted);font-size:9px}.duration-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.duration-presets.full{grid-column:1/-1}.duration-presets>span{color:var(--muted);font-size:11px}.duration-presets button{border:1px solid #dcd7ea;border-radius:8px;background:#fff;color:#655a98;padding:7px 10px;font-size:11px}.duration-presets button.active{border-color:var(--purple);background:#efecf8;color:var(--purple-dark);font-weight:700}.entry-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 18px;padding:4px;border-radius:11px;background:#eef0ee}.entry-type-toggle button{height:40px;border:0;border-radius:8px;background:transparent;color:#778283;font-weight:700}.entry-type-toggle button.active{background:#fff;color:var(--purple-dark);box-shadow:0 2px 8px #34423e17}.actions .compact-add{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:10px;font-size:21px;line-height:1}.day-head,.time-head{height:78px}.day-head{position:relative;align-items:flex-start;padding-top:15px}.day-type-select{position:absolute;left:7px;right:7px;bottom:7px;width:calc(100% - 14px);height:25px;border:1px solid #e0dcec;border-left:3px solid var(--purple);border-radius:6px;background:#faf9fd;color:var(--purple-dark);padding:0 4px;font-size:9px;font-weight:700;cursor:pointer}.day-column:has(.rest-card) .day-type-select{display:none}.day-column.selected-day{box-shadow:inset 0 0 0 2px #8175b3;background:#fbfaff}.day-column.selected-day .day-head{background:#f1eef9;color:var(--purple)}.day-column.selected-day .day-head b{color:var(--purple)}.day-column.initial-day .day-slots{background:linear-gradient(180deg,#edf6ff 0,#edf6ff 43.75%,#faf5e9 0,#faf5e9 50%,#edf6ff 0,#edf6ff),repeating-linear-gradient(180deg,transparent 0,transparent 21.5px,#f3f5f3 22.5px),repeating-linear-gradient(180deg,transparent 0,transparent 89px,#e1e7e3 90px)}.day-column:has(.day-type-select option[value="初诊（上）复诊（下）"]:checked) .day-slots{background:linear-gradient(180deg,#edf6ff 0,#edf6ff 43.75%,#faf5e9 0,#faf5e9 50%,transparent 0),repeating-linear-gradient(180deg,transparent 0,transparent 21.5px,#f3f5f3 22.5px),repeating-linear-gradient(180deg,transparent 0,transparent 89px,#e1e7e3 90px)}.day-column:has(.day-type-select option[value="初诊（下）复诊（上）"]:checked) .day-slots{background:linear-gradient(180deg,transparent 0,transparent 43.75%,#faf5e9 0,#faf5e9 50%,#edf6ff 0,#edf6ff),repeating-linear-gradient(180deg,transparent 0,transparent 21.5px,#f3f5f3 22.5px),repeating-linear-gradient(180deg,transparent 0,transparent 89px,#e1e7e3 90px)}.day-head{cursor:pointer}.drag-selection{position:absolute;left:5px;right:5px;z-index:5;border:2px solid #776da8;border-radius:7px;background:#dcd6f0aa;pointer-events:none}.drag-selection span{display:block;padding:5px;color:#5f558f;font-size:9px;font-weight:700}.calendar-overlay{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:18px;background:#26383b52;backdrop-filter:blur(2px)}.calendar-panel{width:min(390px,94vw);padding:20px;border:1px solid #e0dcec;border-radius:18px;background:#fff;box-shadow:0 18px 60px #26383b35}.calendar-panel header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;margin-bottom:12px}.calendar-panel header strong{text-align:center;font-size:18px}.calendar-panel header button{width:42px;height:38px;border:0;border-radius:10px;background:#f1eef8;color:var(--purple-dark);font-size:24px}.calendar-days,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:6px;color:#7e898a;text-align:center;font-size:12px;font-weight:700}.calendar-days button{aspect-ratio:1;min-width:0;border:0;border-radius:10px;background:#fafbf9;color:var(--ink);font-size:15px}.calendar-days button:hover{background:#efecf8;color:var(--purple-dark)}.calendar-days button.other{color:#bdc4c3;background:transparent}.calendar-days button.selected{background:var(--purple);color:#fff;font-weight:700}.calendar-today{width:100%;height:40px;margin-top:14px;border:1px solid #dcd7ea;border-radius:10px;background:#faf9fd;color:var(--purple-dark);font-weight:700}