.appointment-book-shell{--timeline-center-col-gap:clamp(120px,14vw,170px);grid-template-columns:320px minmax(0,1fr) 300px;gap:12px;min-height:calc(100vh - 220px);display:grid}.appointment-book-top-bar{grid-column:1/-1;justify-content:flex-end;align-items:center;padding:4px 0;display:flex}.appointment-book-top-bar-right{align-items:center;gap:8px;display:flex}.appointment-book-col{flex-direction:column;gap:10px;margin-bottom:0;padding:12px;display:flex}.appointment-book-left-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.appointment-book-left-heading{flex:140px;min-width:140px}.appointment-book-left-heading h3,.appointment-book-left-heading p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.appointment-book-left-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;display:flex}.appointment-book-mode-switch{width:120px;height:32px}.appointment-book-left-actions .btn-sm:not(.btn-icon),.appointment-book-search-row .btn-sm:not(.btn-icon),.appointment-book-search-row .search-input-wrapper{height:32px;padding-top:0;padding-bottom:0}.appointment-book-search-row .search-input-wrapper{padding-left:12px;padding-right:12px}.appointment-book-search-row .search-input{font-size:var(--font-sm)}.appointment-book-mode-switch.sliding-toggle{border-radius:var(--radius-md)}.appointment-book-mode-switch .sliding-toggle-thumb,.appointment-book-mode-switch .sliding-toggle-option{border-radius:calc(var(--radius-md) - 2px)}.appointment-book-left-header h3,.appointment-book-main h3,.appointment-book-right h3{margin:0;font-size:16px}.appointment-book-left-header p,.appointment-book-main p,.appointment-book-right p{color:var(--color-text-tertiary);margin:4px 0 0;font-size:12px}.appointment-book-refresh{min-width:30px}@keyframes appointment-book-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.appointment-book-refresh:active svg{animation:.6s linear appointment-book-spin}.appointment-book-refresh.is-refreshing svg{animation:.9s linear infinite appointment-book-spin}.appointment-book-search-row{align-items:center;gap:8px;display:flex}.appointment-book-search-row .search-input-wrapper{flex:1;min-width:0;margin:0}.appointment-book-search{margin:0}.appointment-book-filter-trigger,.appointment-book-scheduled-trigger{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.appointment-book-scheduled-dropdown{flex-shrink:0}.appointment-book-scheduled-dropdown .more-menu-dropdown{min-width:160px}.appointment-book-filter-dropdown{flex-shrink:0}.appointment-book-filter-dropdown .more-menu-dropdown{min-width:160px}.appointment-book-filter-dropdown-item.active,.appointment-book-filter-dropdown-item.is-active{background:var(--color-info-soft);color:var(--color-accent)}.appointment-book-queue-list{flex-direction:column;gap:8px;min-height:240px;max-height:calc(100vh - 360px);padding-right:2px;display:flex;overflow:auto}.appointment-book-queue-item{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;flex-direction:column;gap:6px;padding:10px;transition:border-color .15s,box-shadow .15s;display:flex}.appointment-book-queue-item.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f629}.appointment-book-item-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.appointment-book-item-head-actions{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.appointment-book-item-title{color:var(--color-text-primary);font-size:14px;font-weight:600}.appointment-book-item-tag{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:999px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;display:inline-flex}.appointment-book-item-subtitle{color:var(--color-text-secondary);word-break:break-word;overflow-wrap:break-word;white-space:normal;font-size:12px;line-height:1.4}.appointment-book-item-meta{color:var(--color-text-tertiary);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.appointment-book-item-footer{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.appointment-book-item-actions{flex-shrink:0}.appointment-book-empty{border:1px dashed var(--color-border-light);border-radius:var(--radius-md);flex-direction:column;align-items:flex-start;gap:8px;padding:14px;display:flex}.appointment-book-empty-title{margin:0;font-size:13px;font-weight:600}.appointment-book-empty-subtitle{color:var(--color-text-tertiary);margin:0;font-size:12px}.appointment-book-loading{flex-direction:column;gap:8px;display:flex}.appointment-book-loading-item{border-radius:var(--radius-md);background:linear-gradient(90deg,var(--color-bg-tertiary)25%,var(--color-bg-secondary)50%,var(--color-bg-tertiary)75%);background-size:200% 100%;height:68px;animation:1.2s ease-in-out infinite appointment-book-skeleton}.appointment-book-main-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.appointment-book-main-title{align-items:center;gap:8px;display:flex}.appointment-book-help{color:var(--color-text-tertiary);cursor:help;align-items:center;display:inline-flex;position:relative}.appointment-book-help-popover{z-index:10;border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-bg-secondary);width:280px;box-shadow:var(--shadow-md);padding:8px;display:none;position:absolute;top:calc(100% + 6px);left:0}.appointment-book-help-popover p{color:var(--color-text-secondary);margin:0;font-size:12px;line-height:1.4}.appointment-book-help-popover p+p{margin-top:4px}.appointment-book-help:hover .appointment-book-help-popover{display:block}.appointment-book-date-tools{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;width:100%;display:grid}.appointment-book-date-picker{grid-column:2;align-items:center;gap:8px;display:inline-flex}.appointment-book-date-label{border-radius:var(--radius-sm);min-height:32px;color:var(--color-text-primary);font-variant-numeric:tabular-nums;background:#3b82f61a;border:1px solid #3b82f640;align-items:center;gap:0;padding:0 12px;font-size:14px;font-weight:600;display:inline-flex}.appointment-book-weekday{color:var(--color-text-secondary);font-size:13px;font-weight:600}.appointment-book-today-btn{grid-column:3;justify-self:end;margin-left:0}.appointment-book-today-btn.btn-ghost{color:var(--color-text-primary);background:#3b82f624;border-color:#3b82f64d}.appointment-book-today-btn.btn-ghost:hover:not(:disabled){background:#3b82f62e;border-color:#3b82f659}.appointment-book-today-btn.active.btn-ghost,.appointment-book-today-btn.is-active.btn-ghost{color:var(--color-accent);background:#3b82f638;border-color:#3b82f673}.appointment-book-day-loading{flex-direction:column;gap:10px;display:flex}.appointment-book-density-overview{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.density-chip{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-bg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:66px;padding:4px 6px;display:inline-flex}.density-chip-time{color:var(--color-text-tertiary);font-size:11px}.density-chip-score{color:var(--color-text-primary);font-size:13px;font-weight:600}.density-chip.is-selected{outline:2px solid var(--color-accent);outline-offset:0}.appointment-book-timeline{border:1px solid var(--color-border-light);border-radius:var(--radius-md);--timeline-time-col:64px;--timeline-density-col:64px;flex-direction:column;display:flex;overflow:hidden}.timeline-row{grid-template-columns:var(--timeline-time-col)minmax(0,1fr)var(--timeline-density-col);border-bottom:1px solid var(--color-border-light);cursor:pointer;min-height:46px;display:grid}.timeline-row:last-child{border-bottom:none}.timeline-row.is-selected{box-shadow:inset 2px 0 0 var(--color-accent)}.timeline-time{background:var(--color-bg-secondary);color:var(--color-text-primary);border-right:1px solid var(--color-border-light);justify-content:center;align-items:center;display:flex}.timeline-time-label{font-size:13px;font-weight:600;line-height:1}.timeline-lane{--timeline-marker-width:72px;grid-template-rows:1fr 1fr;min-height:46px;display:grid;position:relative}.timeline-half{align-items:center;gap:6px;min-height:22px;padding:2px 10px 2px 16px;display:flex;position:relative}.timeline-half-top{border-bottom:1px dashed var(--color-border-light)}.timeline-half.is-active{background:#64748b14}.timeline-half.is-pending{background:#64748b1f}.timeline-half-inline-hint{z-index:8;color:var(--color-danger,#dc2626);white-space:nowrap;background:#fff7f7f5;border:1px solid #ef444459;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;position:absolute;top:50%;right:10px;transform:translateY(-50%);box-shadow:0 1px 2px #0f172a1f}.timeline-empty{color:var(--color-text-tertiary);font-size:11px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.timeline-marker{--marker-color:var(--color-text-secondary);--marker-border:var(--color-border-light);--marker-bg:#94a3b81f;width:var(--timeline-marker-width);min-width:var(--timeline-marker-width);box-sizing:border-box;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--marker-border)78%,transparent);background:color-mix(in srgb,var(--marker-bg)78%,transparent);justify-content:center;align-items:center;max-width:100%;padding:1px 5px;display:inline-flex}.timeline-marker.is-merged{background:0 0;position:relative;overflow:hidden}.timeline-marker-merge-bg{z-index:0;display:flex;position:absolute;inset:0}.timeline-marker-merge-cell{background:color-mix(in srgb,var(--marker-color)24%,transparent);flex:1 1 0}.timeline-marker-merge-cell+.timeline-marker-merge-cell{border-left:1px solid color-mix(in srgb,var(--marker-border)65%,transparent)}.timeline-marker.is-merged .timeline-marker-name{z-index:1;position:relative}.timeline-tone-0{--merge-color:#4f6fae;--marker-color:#4f6fae;--marker-border:#4f6fae6b;--marker-bg:#4f6fae24}.timeline-tone-1{--merge-color:#2f8f97;--marker-color:#2f8f97;--marker-border:#2f8f976b;--marker-bg:#2f8f9724}.timeline-tone-2{--merge-color:#4c8d6b;--marker-color:#4c8d6b;--marker-border:#4c8d6b6b;--marker-bg:#4c8d6b24}.timeline-tone-3{--merge-color:#9a7b3f;--marker-color:#9a7b3f;--marker-border:#9a7b3f6b;--marker-bg:#9a7b3f24}.timeline-tone-4{--merge-color:#a05a74;--marker-color:#a05a74;--marker-border:#a05a746b;--marker-bg:#a05a7424}.timeline-tone-5{--merge-color:#5e7f9b;--marker-color:#5e7f9b;--marker-border:#5e7f9b6b;--marker-bg:#5e7f9b24}.timeline-tone-6{--merge-color:#7662a8;--marker-color:#7662a8;--marker-border:#7662a86b;--marker-bg:#7662a824}.timeline-tone-7{--merge-color:#3d8d87;--marker-color:#3d8d87;--marker-border:#3d8d876b;--marker-bg:#3d8d8724}.timeline-marker-start{order:20}.timeline-marker-end{order:10}.timeline-marker-start.is-pending{order:40}.timeline-marker-end.is-pending{order:30}.timeline-marker.is-pending{opacity:.9;border-style:dashed}.timeline-marker-name{color:var(--marker-color);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:11px;display:block;overflow:hidden}.timeline-more{color:var(--color-text-secondary);font-size:11px;position:absolute;bottom:2px;right:10px}.timeline-density-col{border-left:1px solid var(--color-border-light);background:var(--color-bg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.timeline-density-value{letter-spacing:.2px;font-size:11px;font-weight:600}.timeline-density-meta{color:var(--color-text-tertiary);font-size:10px}.timeline-center-layer{left:calc(16px + var(--timeline-marker-width) - 1px);z-index:6;pointer-events:none;position:absolute;top:0;bottom:0;right:10px;overflow:visible}.timeline-merge-item{--merge-muted-color:color-mix(in srgb,var(--merge-color,#818cf8)78%,white 22%);--merge-center-offset:0px;--merge-canvas-width:66px;color:var(--merge-color,#818cf8);align-items:center;gap:4px;max-width:100%;display:inline-flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.timeline-merge-item.is-pending{opacity:.95}.timeline-merge-lines{width:var(--merge-canvas-width);flex:none;height:40px;overflow:visible}.timeline-merge-path{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-dasharray:2 4;stroke-opacity:.36}.timeline-merge-joint{fill:currentColor;fill-opacity:.46}.timeline-center-item{min-width:0;max-width:min(168px,calc(100% - var(--merge-canvas-width) - 8px));transform:translateY(var(--merge-center-offset));flex-direction:column;flex:auto;align-items:flex-start;gap:3px;line-height:1.25;display:flex}.timeline-center-name-row{align-items:baseline;gap:4px;width:100%;min-width:0;display:flex;overflow:hidden}.timeline-center-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:700;overflow:hidden}.timeline-merge-item .timeline-center-name,.timeline-merge-item .timeline-center-name.is-pending{color:currentColor}.timeline-center-demographic{color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:88px;font-size:10px;overflow:hidden}.timeline-merge-item .timeline-center-demographic{color:var(--merge-muted-color);opacity:1}.timeline-center-type{color:var(--color-text-tertiary);-webkit-line-clamp:2;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;width:100%;max-width:100%;font-size:10px;display:-webkit-box;overflow:hidden}.timeline-merge-item .timeline-center-type{color:var(--merge-muted-color);opacity:1}.appointment-book-live-summary{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.appointment-book-live-summary-head{flex-wrap:nowrap;align-items:baseline;gap:12px;min-width:0;display:flex}.appointment-book-live-summary-head>*{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.appointment-book-live-summary-head .summary-title{flex:0 auto}.appointment-book-live-summary-head .summary-breakdown{flex:auto}.appointment-book-summary{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.summary-title{color:var(--color-text-primary);margin:0;font-size:13px;font-weight:600}.summary-breakdown{color:var(--color-text-tertiary);margin:0;font-size:12px}.appointment-book-inline-hint{color:var(--color-danger,#dc2626);margin:2px 0 0;font-size:12px}.summary-stats{flex-wrap:wrap;gap:6px;display:flex}.summary-stat{border:1px solid var(--color-border-light);color:var(--color-text-secondary);border-radius:999px;padding:2px 8px;font-size:11px}.appointment-book-plan-panel{border-top:1px dashed var(--color-border-light);flex-direction:column;gap:6px;margin-top:4px;padding-top:8px;display:flex}.appointment-book-plan-grid{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;display:grid}.appointment-book-plan-primary{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;font-weight:600;overflow:hidden}.appointment-book-plan-secondary{color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.appointment-book-plan-secondary.is-danger{color:var(--color-danger,#dc2626)}.appointment-book-plan-actions{flex-direction:column;flex-shrink:0;grid-area:1/2/span 2;align-items:flex-end;gap:8px;display:flex}.appointment-book-plan-shift-actions,.appointment-book-plan-confirm{justify-content:flex-end;gap:6px;display:flex}.appointment-book-right-section{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:10px}.right-section-title{color:var(--color-text-primary);margin:0 0 8px;font-size:12px;font-weight:600}.right-list{color:var(--color-text-secondary);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:12px;display:flex}.right-empty{color:var(--color-text-tertiary);margin:0;font-size:12px}.right-empty-meta{color:var(--color-text-secondary);margin:0;font-size:11px}.right-chip-wrap{flex-wrap:wrap;gap:6px;display:flex}.right-chip{border:1px solid var(--color-border-light);border-radius:999px;padding:2px 8px;font-size:11px}.appointment-book-right-hint{color:var(--color-text-tertiary);align-items:flex-start;gap:8px;margin-top:8px;font-size:12px;display:flex}.appointment-book-right-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.appointment-book-right-body{flex-direction:column;gap:10px;display:flex}.appointment-book-mobile-toggle{flex-shrink:0;display:none}.appointment-book-right-collapsed-tip{color:var(--color-text-tertiary);margin:0;font-size:12px}.appointment-book-candidate{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.appointment-book-candidate.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f624}.appointment-book-candidate-datetime{flex-direction:column;gap:4px;display:flex}.appointment-book-candidate-date{color:var(--color-text-primary);margin:0;font-size:13px;font-weight:600}.appointment-book-candidate-time-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.appointment-book-candidate-time{color:var(--color-text-secondary);margin:0;font-size:12px}.appointment-book-candidate-duration{color:var(--color-text-tertiary);flex-shrink:0;font-size:11px}.appointment-book-candidate-reason{color:var(--color-text-tertiary);word-break:break-word;overflow-wrap:break-word;margin:0;font-size:10px;line-height:1.4}.appointment-book-candidate-footer{align-items:flex-start;gap:8px;margin-top:2px;display:flex}.appointment-book-candidate-reason{min-width:0;color:var(--color-text-tertiary);word-break:break-word;overflow-wrap:break-word;flex:1;font-size:10px;line-height:1.4}.appointment-book-candidate-apply-btn{flex-shrink:0;align-self:flex-start;margin-top:1px}.appointment-book-candidate-reasons{color:var(--color-text-secondary);flex-direction:column;gap:4px;margin:0;padding-left:16px;font-size:12px;display:flex}.appointment-book-reflow-item{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-bg-tertiary);flex-direction:column;gap:2px;margin-top:6px;padding:8px;display:flex}.appointment-book-reflow-main{color:var(--color-text-primary);margin:0;font-size:12px;font-weight:600}.appointment-book-reflow-note{color:var(--color-text-secondary);margin:0;font-size:11px}.appointment-book-urgent-modal{width:min(560px,100vw - 32px)}.appointment-book-urgent-hint{color:var(--color-text-tertiary);margin:4px 0 0;font-size:12px}.appointment-book-urgent-note{resize:vertical;min-height:82px}.appointment-book-type-row{grid-template-columns:minmax(0,1fr) minmax(0,180px);gap:8px;display:grid}.appointment-book-type-custom{min-width:0}.density-low{color:#64748b;background:#64748b14}.density-medium{color:#667085;background:#64748b1a}.density-high{color:#7c6f5b;background:#78716c1f}.density-overload{color:#b45353;background:#ef44441f}@keyframes appointment-book-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:1200px){.appointment-book-shell{grid-template-columns:280px minmax(0,1fr)}.appointment-book-right{grid-column:1/-1}}@media (max-width:768px){.appointment-book-shell{grid-template-columns:1fr}.appointment-book-live-summary-head{display:none}.appointment-book-col{max-height:none}.appointment-book-queue-list{max-height:300px}.appointment-book-left-actions{justify-content:flex-end;width:100%}.appointment-book-date-tools{grid-template-columns:1fr;justify-items:stretch}.appointment-book-date-picker{justify-content:center;width:100%}.appointment-book-date-label{justify-content:center}.appointment-book-today-btn{justify-self:end}.appointment-book-type-row{grid-template-columns:1fr}.appointment-book-mobile-toggle{display:inline-flex}.appointment-book-right.is-mobile-collapsed .appointment-book-right-body{display:none}.timeline-row{--timeline-time-col:58px;--timeline-density-col:58px}.timeline-lane{--timeline-marker-width:72px}.timeline-marker-name{max-width:100%}}