:root{color-scheme:light;font-family:Microsoft JhengHei,Noto Sans TC,system-ui,sans-serif;--bg: #f5f7fa;--surface: #ffffff;--surface-2: #f9fbfd;--line: #dce3ec;--line-strong: #c9d4e2;--text: #172033;--muted: #667085;--accent: #087d95;--accent-dark: #05677d;--accent-soft: #e4f5f8;--ok: #24a36a;--warn: #e8972f;--danger: #de4b4b;--shadow: 0 14px 40px rgba(31, 42, 68, .12)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface)}.mobile-menu-scrim{display:none}.brand{display:flex;align-items:center;gap:12px;height:68px;padding:0 22px;border-bottom:1px solid var(--line);font-size:18px;font-weight:800}.brand-title{display:block;line-height:1.25}.brand-mark,.avatar{display:grid;place-items:center;color:#fff;background:var(--accent)}.brand-mark{width:28px;height:28px;border-radius:7px}.nav-list{display:grid;gap:8px;padding:22px 12px}.nav-item{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 16px;border:0;border-radius:8px;color:#253047;background:transparent;font-size:15px;font-weight:700;text-align:left}.nav-item.active{color:#fff;background:linear-gradient(180deg,#098aa3,#05738a);box-shadow:0 8px 18px #087d953d}.login-gate{display:grid;place-items:center;min-height:100vh;padding:24px;background:var(--bg)}.login-panel{display:grid;justify-items:center;gap:16px;width:min(420px,100%);padding:34px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);text-align:center}.login-panel h1{margin:0;font-size:24px;line-height:1.3}.login-panel p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.sidebar-footer{display:grid;gap:14px;margin-top:auto;padding:18px 16px 22px}.field-label,label span{display:block;margin-bottom:7px;color:#4b5565;font-size:13px;font-weight:800}.perspective-box{padding:12px;border:1px solid #b7e4cf;border-radius:8px;background:#f2fbf7}.perspective-box small{display:block;margin-top:7px;color:#08734b;font-size:11px;font-weight:800;line-height:1.45}select,input{width:100%;height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:7px;color:var(--text);background:#fff;font-size:14px}.profile-card{display:flex;align-items:center;gap:11px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.avatar{flex:0 0 36px;width:36px;height:36px;aspect-ratio:1;border-radius:50%}.profile-card strong,.profile-card span{display:block}.profile-card>div:last-child{min-width:0}.profile-card strong{overflow:hidden;font-size:14px;line-height:1.35;text-overflow:ellipsis}.profile-card span{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.workspace{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 24px;border-bottom:1px solid var(--line);background:#ffffffeb}.topbar-title,.topbar-actions,.month-control,.button-row,.inline-inputs{display:flex;align-items:center;gap:12px}.topbar h1,.panel h2,.detail-heading h2,.modal-header h2{margin:0;color:var(--text)}.topbar h1{font-size:18px}.topbar-actions{gap:10px}.search-box{display:flex;align-items:center;gap:8px;width:260px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted)}.search-box input{height:auto;padding:0;border:0;background:transparent;outline:0}.icon-button,.soft-button,.ghost-button,.primary-button,.danger-button,.account-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;border-radius:7px;font-size:14px;font-weight:800}.icon-button{width:36px;border:1px solid var(--line);color:#344054;background:#fff}.notification{position:relative}.notification span{position:absolute;top:-6px;right:-5px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;background:var(--danger);font-size:11px}.soft-button,.ghost-button,.account-button{padding:0 12px;border:1px solid var(--line);color:#344054;background:#fff}.ghost-button{width:100%}.primary-button{padding:0 16px;border:1px solid var(--accent-dark);color:#fff;background:var(--accent)}.primary-button:disabled,.soft-button:disabled{cursor:not-allowed;opacity:.52}.danger-button{padding:0 12px;border:1px solid #ffd2d2;color:var(--danger);background:#fff7f7}.quick-fill-button{border-color:#f4bd3f;color:#5f4200;background:#fff4c7}.quick-fill-button:hover{border-color:#e1a51a;background:#ffe58c}.google-dot{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#4285f4;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-weight:900}.content-grid,.page-content{display:grid;grid-template-columns:minmax(680px,1fr) 520px;gap:18px;padding:20px}.page-content.single-column{grid-template-columns:1fr}.left-pane{display:grid;gap:18px;min-width:0}.panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 1px #10182808}.panel-header,.detail-heading,.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.panel h2,.detail-heading h2{font-size:20px}.panel h2 small{color:var(--muted);font-size:14px;font-weight:500}.view-switch{display:grid;grid-template-columns:repeat(3,54px);height:36px;overflow:hidden;border:1px solid var(--line);border-radius:7px}.view-switch.two-options{grid-template-columns:repeat(2,64px)}.view-switch button{border:0;border-right:1px solid var(--line);color:#344054;background:#fff;font-weight:800}.view-switch button:last-child{border-right:0}.view-switch .selected{color:#fff;background:var(--accent)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0 16px}.calendar-grid.weekdays-only{grid-template-columns:repeat(5,minmax(0,1fr))}.calendar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.capacity-select{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff}.capacity-select span{margin:0;color:#344054;font-size:13px;font-weight:900;white-space:nowrap}.capacity-select select{width:78px;height:28px;padding:0 8px}.schedule-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.schedule-toolbar input[type=month]{width:150px}.case-filter-form{display:grid;grid-template-columns:minmax(220px,1.2fr) repeat(5,minmax(120px,.7fr));gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fbfcfe}.filter-table thead .table-filter-row th{padding:8px 10px;background:#fbfcfe}.filter-table thead .table-filter-row input,.filter-table thead .table-filter-row select{width:100%;min-width:0;height:34px;padding:0 10px;font-size:12px}.table-filter-stack{display:grid;gap:8px}.weekday{padding:10px;border-bottom:1px solid var(--line);color:#344054;font-size:13px;font-weight:900;text-align:center}.weekday.weekend{color:#c43333}.day-cell{position:relative;min-height:104px;padding:12px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:#222b3d;background:#fff;text-align:left}.day-cell:nth-child(7n+7){border-right:0}.calendar-grid.weekdays-only .day-cell:nth-child(7n+7){border-right:1px solid var(--line)}.calendar-grid.weekdays-only .day-cell:nth-child(5n+5){border-right:0}.day-cell strong,.day-cell span{display:block}.day-cell strong{font-size:16px}.date-line{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.holiday-name{color:#c43333;font-size:12px;font-weight:900}.dispatch-tags{display:grid;gap:4px;margin-top:9px}.dispatch-tags .dispatch-tag,.dispatch-tags small{overflow:hidden;padding:4px 6px;border-radius:6px;color:#6c4d00;background:#fff0bd;font-size:12px;font-weight:900;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.dispatch-tag{display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:4px;cursor:pointer}.dispatch-tag>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-tag button{display:grid;place-items:center;width:18px;height:18px;padding:0;border:1px solid #e5bd57;border-radius:999px;color:#8a5a00;background:#fff8df}.dispatch-tag button:hover{color:#b42318;border-color:#f5a3a3;background:#fff0f0}.dispatch-tag.reschedule{color:#8b1e3f;background:#ffe4ef}.dispatch-tag.reschedule button{color:#8b1e3f;border-color:#f6a9c2;background:#fff4f8}.dispatch-tag.confirmed{border:1px solid #f1cf6a;background:#ffefb5}.dispatch-tag.confirmed:hover{background:#ffe89a}.dispatch-tag.draft{color:#8a5a00;background:#fff7d8;border:1px dashed #d6a923}.dispatch-tag.draft:hover{background:#ffefbd}.dispatch-tag.active{border-color:#8a8f98;background:#ffe08a;box-shadow:inset 0 0 0 1px #8a8f98}.dispatch-tag.draft.active{border-style:solid;background:#ffe7a3}.dispatch-tag.review-meeting{grid-template-columns:minmax(0,1fr);color:#175cd3;border:1px solid #b7d4ff;background:#eff6ff}.dispatch-tag.review-meeting:hover{background:#dbeafe}.row-actions{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:5px;width:100%}.schedule-table{table-layout:fixed}.schedule-table th,.schedule-table td{vertical-align:top}.schedule-col-date{width:116px}.schedule-col-area{width:138px}.schedule-col-category{width:86px}.schedule-col-status{width:104px}.schedule-col-people{width:60px}.schedule-col-counselor,.schedule-col-specialist{width:110px}.schedule-col-sync{width:156px}.schedule-col-actions{width:200px}.schedule-col-itinerary{min-width:0}.itinerary-summary-cell{max-width:0}.itinerary-summary-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;line-height:1.5;word-break:break-word}.sync-cell{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;white-space:nowrap}.action-icon-button{width:30px;height:30px;border-radius:999px;border:1px solid #cfd8e7;background:#fff;color:#31527c;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.action-icon-button:hover{background:#f2f7ff;border-color:#97b4da;color:#173f74}.action-icon-button.line-icon-button{color:#1f8b4c;border-color:#9dd9b3;background:#f5fff8}.action-icon-button.line-icon-button:hover{background:#e9faee;border-color:#67c28a;color:#0b6b32}.schedule-table .attention-label{white-space:normal;text-align:center}.column-toggle-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.column-toggle-group label{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;color:#344054;background:#fff;font-size:12px;font-weight:900;white-space:nowrap}.column-toggle-group input{width:14px;height:14px}.column-dialog{width:min(560px,calc(100% - 32px))}.column-toggle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.column-toggle-grid label{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#24324a;font-size:13px;font-weight:900}.column-toggle-grid input{width:15px;height:15px}.stacked-filter{display:grid;gap:6px}.day-cell.outside{color:#98a2b3;background:#fbfcfe}.day-cell.holiday-date strong{color:#c43333}.day-cell.some-booked{background:#fff9e8}.day-cell.today-cell{background:linear-gradient(180deg,#fff06a 0 34px,#fff 34px)}.day-cell.today-cell.some-booked{background:linear-gradient(180deg,#fff06a 0 34px,#fff9e8 34px)}.day-cell.staff-tight{background:#fff3df}.day-cell.today-cell.staff-tight{background:linear-gradient(180deg,#fff06a 0 34px,#fff3df 34px)}.day-cell.staff-full{background:#fff7f7}.day-cell.today-cell.staff-full{background:linear-gradient(180deg,#fff06a 0 34px,#fff7f7 34px)}.full-day-label{display:inline-flex;align-items:center;max-width:100%;min-height:22px;margin-top:6px;padding:0 7px;border:1px solid #f1a3a3;border-radius:999px;color:#b42318;background:#fff0f0;font-size:11px;font-weight:900;line-height:1.45}.day-cell.selected{box-shadow:inset 0 0 0 2px var(--accent);background:#f1fbfd}.day-cell.selected.some-booked{background:#fff9e8}.day-cell.selected.staff-tight{background:#fff3df}.day-cell.selected.staff-full{background:#fff7f7}.day-cell.selected.today-cell{background:linear-gradient(180deg,#fff06a 0 34px,#f1fbfd 34px)}.day-cell.selected.today-cell.some-booked{background:linear-gradient(180deg,#fff06a 0 34px,#fff9e8 34px)}.day-cell.selected.today-cell.staff-tight{background:linear-gradient(180deg,#fff06a 0 34px,#fff3df 34px)}.day-cell.selected.today-cell.staff-full{background:linear-gradient(180deg,#fff06a 0 34px,#fff7f7 34px)}.legend{display:flex;flex-wrap:wrap;gap:16px;padding:12px 16px 16px;color:#475467;font-size:12px;font-weight:700}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:9px;height:9px;border-radius:50%}.availability-note{display:flex;flex-wrap:wrap;gap:10px 16px;padding:0 16px 16px;color:#475467;font-size:12px;font-weight:700}.availability-note strong{color:#1f2937}.ok{background:var(--ok)}.warn{background:var(--warn)}.danger{background:var(--danger)}.today{background:var(--accent)}.holiday{background:#bc2f50}.dispatch-bg{background:#fff0bd;border:1px solid #e2bf51}.available-bg{background:#fff;border:1px solid var(--line-strong)}.some-booked-bg{background:#fff9e8;border:1px solid #f3d681}.tight-bg{background:#fff3df;border:1px solid #f0b46d}.full-bg{background:#fff7f7;border:1px solid #f3a6a6}table{width:100%;border-collapse:collapse}th,td{padding:13px 12px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:middle}th{color:#344054;background:#f8fafc;font-weight:900}tfoot td{border-bottom:0;font-size:15px;font-weight:900}td input[type=checkbox]{width:16px;height:16px;padding:0}.table-check{display:inline-flex;align-items:center;gap:8px;font-weight:800}.compact-search{max-width:320px}.status{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:900}.status.ok{color:#08734b;background:#e8f7ef}.status.warn{color:#99610b;background:#fff3df}.status.danger{color:#b42318;background:#fff0f0}.status.visit{color:#8a5a00;background:#fff0bd}.status.review{color:#b42318;background:#fff0f0}.status.acceptance{color:#175cd3;background:#eff6ff}.mini-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:24px;padding:0 9px;border:1px solid var(--line-strong);border-radius:999px;color:var(--accent);background:#fff;font-size:12px;font-weight:900}.danger-mini-button{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 9px;border:1px solid #fecaca;border-radius:999px;color:#b42318;background:#fff7f7;font-size:12px;font-weight:900}.danger-mini-button.compact-icon{min-width:24px;width:24px;padding:0}.report-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap}.report-select-col{width:42px;min-width:42px;text-align:center}.assessment-download-button{min-width:104px}.review-result-reminder{margin:14px 16px 0;padding:10px 12px;border:1px solid #f2d38f;border-radius:8px;color:#8a5b00;background:#fff8e6;font-size:13px;font-weight:900;line-height:1.5}.upload-mini-button{cursor:pointer}.upload-mini-button input{display:none}.icon-only-mini{width:26px;min-width:26px;padding:0}.line-button{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 9px;border:1px solid #b7e4cf;border-radius:999px;color:#08734b;background:#f2fbf7;font-size:12px;font-weight:900}.muted-text{color:var(--muted);font-size:12px;font-weight:800}.attention-label{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:900;line-height:1;white-space:nowrap}.attention-label.unassigned{color:#8a5b00;background:#fff4d8;border-color:#f2d38f}.attention-label.upload{color:#b13f53;background:#ffe6ea;border-color:#f5b7c3}.attention-label.unfinished{color:#6c45d9;background:#f0e9ff;border-color:#d7c8ff}.attention-label.done{color:#0b7a4c;background:#e4f8ee;border-color:#b4e4ca}.attention-label.neutral{color:#52617a;background:#eef3f8;border-color:#d4dde7}.review-date-label{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.review-date-label.self-approved{color:#7a3e00;background:#fff2cc;border:1px solid #f0c36b}.review-date-editor,.compact-text-editor{display:inline-flex;align-items:center;width:100%;max-width:150px}.review-date-editor input,.compact-text-editor input{width:100%;min-width:0;height:30px;padding:4px 8px;border:1px solid #c8d6e6;border-radius:7px;font-size:12px;font-weight:800}.compact-text-editor{max-width:120px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f8fbfd}.support-intro{padding:0 16px 16px;color:#344054;line-height:1.7}.support-intro p{margin:0 0 6px}.support-form{display:grid;gap:12px;padding:0 16px 16px;border-bottom:1px solid var(--line)}.support-form textarea,.support-reply-form textarea{width:100%;min-height:96px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:7px;resize:vertical;font:inherit}.support-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.support-file-list{display:flex;flex-wrap:wrap;gap:8px}.support-file-chip{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#f8fafc}.support-thread-list{display:grid;gap:14px;padding:16px}.support-thread{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.support-thread-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.support-thread-header strong,.support-thread-header span,.support-thread-header small{display:block}.support-thread-header span,.support-thread-header small{color:var(--muted);font-size:12px}.support-thread-message,.support-reply p{margin:0;line-height:1.7;white-space:pre-wrap}.support-image-list{display:flex;flex-wrap:wrap;gap:10px}.support-image-link{display:grid;gap:8px;width:180px;padding:10px;border:1px solid var(--line);border-radius:8px;color:inherit;background:#fbfcfe;text-decoration:none}.support-image-link img{width:100%;height:120px;object-fit:cover;border-radius:6px;background:#eef2f7}.support-image-link span{font-size:12px;font-weight:800;word-break:break-word}.support-replies{display:grid;gap:10px}.support-reply{padding:10px 12px;border-radius:8px;background:#f8fafc}.support-reply strong,.support-reply small{display:block}.support-reply small{margin-bottom:4px;color:var(--muted);font-size:12px}.support-reply-form{display:grid;gap:10px}.dashboard-stats-grid{display:grid;gap:16px}.dashboard-summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.dashboard-summary-card{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#fff}.dashboard-summary-card span{font-size:14px;font-weight:900}.dashboard-summary-card strong{font-size:24px;line-height:1}.dashboard-stat-card{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.dashboard-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:14px 16px;border-bottom:1px solid var(--line)}.dashboard-stat-card h3{margin:0;font-size:16px}.dashboard-tone-0{background:#f8fbff;border-color:#cfe1ff}.dashboard-tone-1{background:#f7fff9;border-color:#cdebd6}.dashboard-tone-2{background:#fffaf2;border-color:#f4d7a5}.dashboard-tone-3{background:#fff7f8;border-color:#f5cbd3}.dashboard-tone-4{background:#fbf8ff;border-color:#dbcdf7}.dashboard-tone-5{background:#f7fcfc;border-color:#c9e6e6}.dashboard-stat-card table{background:#ffffffad}.dashboard-chart-card{border:1px solid #cfe1ff;border-radius:8px;background:#f8fbff;overflow:hidden}.dashboard-chart-card small{color:var(--muted);font-size:12px}.dashboard-chart-scroll{overflow-x:auto;padding:14px 16px 18px;background:#ffffffb8}.dashboard-chart-scroll svg{display:block;min-width:680px;width:100%;height:auto}.chart-grid-line{stroke:#dbe6f4;stroke-width:1}.chart-axis-label{fill:#667085;font-size:11px;font-weight:800}.chart-value-label{fill:#075f73;font-size:12px;font-weight:900}.chart-area{fill:#087d951f}.chart-line{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.chart-point{fill:#fff;stroke:var(--accent);stroke-width:3}.detail-panel{align-self:start;min-width:0}.detail-heading{align-items:flex-start}.detail-heading p{display:flex;align-items:center;gap:12px;margin:10px 0 0;color:var(--muted);font-size:13px}.detail-section{padding:16px;border-bottom:1px solid var(--line)}.detail-section:last-child{border-bottom:0}.detail-section h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:15px}.detail-section p{margin:0;color:#344054;line-height:1.6}.chip-list,.committee-strip{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:7px;color:#344054;background:#f8fafc;font-size:13px;font-weight:800}.chip.action{color:var(--accent);background:#fff}.compact-table th,.compact-table td{padding:11px 9px}.compact-table th:first-child,.compact-table td:first-child,.compact-table th:last-child,.compact-table td:last-child{text-align:center}.total-row{display:flex;justify-content:space-between;margin-top:12px;color:#344054;font-weight:900}.total-row strong{color:var(--accent);font-size:18px}.file-list{display:grid;gap:8px}.file-row{display:grid;grid-template-columns:22px minmax(0,1fr) 68px 88px 36px;align-items:center;gap:8px;min-height:48px;padding:0 10px;border:1px solid var(--line);border-radius:7px}.file-row span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:800}.file-row small{color:var(--muted)}.empty-file{padding:16px;border:1px dashed var(--line-strong);border-radius:7px;color:var(--muted);text-align:center}.training-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding:16px}.training-video-card{display:grid;gap:12px;align-content:start;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}.training-video-head{display:flex;align-items:flex-start;gap:10px}.training-video-head svg{flex:0 0 auto;margin-top:2px;color:var(--accent)}.training-video-head h3{margin:0;font-size:17px}.training-video-head small,.training-video-card p,.panel-header small{color:var(--muted)}.training-video-card p{margin:0;font-size:14px;line-height:1.6}.training-video-frame{overflow:hidden;aspect-ratio:16 / 9;border:1px solid var(--line);border-radius:8px;background:#0f172a}.training-video-frame iframe{display:block;width:100%;height:100%;border:0}.training-video-link{justify-self:start;text-decoration:none}.training-video-settings{display:grid;gap:14px;padding:16px}.training-video-setting-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(240px,1.4fr) minmax(180px,1fr) minmax(220px,.9fr);gap:12px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.audience-checks{display:flex;flex-wrap:wrap;gap:8px}.audience-checks label{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:800}.audience-checks input{width:auto;height:auto;padding:0}.upload-zone{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:12px;border:1px dashed #a8b7c7;border-radius:7px;color:var(--accent);background:#fbfdff;font-weight:900}.upload-zone input{display:none}.modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#0f172a38;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dispatch-detail-dialog{display:flex;flex-direction:column;width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:hidden}.dispatch-detail-dialog .modal-header{position:sticky;top:0;z-index:2;flex:0 0 auto;background:#fff}.dispatch-detail-dialog .confirm-body{flex:1 1 auto;min-height:0;overflow:auto}.dispatch-detail-dialog .modal-actions{flex:0 0 auto;background:#fff}.app-dialog-backdrop{z-index:1100}.processing-backdrop{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:24px;background:#0f172a61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.processing-panel{display:grid;justify-items:center;gap:10px;width:min(460px,100%);padding:26px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);text-align:center}.processing-panel strong{font-size:18px}.processing-panel span{color:var(--muted);font-size:13px;font-weight:800}.processing-spinner{width:38px;height:38px;border:4px solid #d7eef3;border-top-color:var(--accent);border-radius:50%;animation:processing-spin .8s linear infinite}.upload-progress-list{display:grid;gap:12px;width:100%;margin-top:6px;text-align:left}.upload-progress-row{display:grid;gap:6px;min-width:0}.upload-progress-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;color:#344054;font-size:13px;font-weight:800}.upload-progress-meta span{overflow:hidden;color:#344054;text-overflow:ellipsis;white-space:nowrap}.upload-progress-meta strong{color:var(--accent);font-size:13px;tab-size:4}.upload-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#dbeafe}.upload-progress-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b8793,#22c55e);transition:width .2s ease}@keyframes processing-spin{to{transform:rotate(360deg)}}.dispatch-modal{width:min(620px,100%);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.confirm-dialog{width:min(760px,calc(100% - 32px));overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.confirm-body{display:grid;gap:12px;padding:18px}.confirm-body p{margin:0;color:#344054;font-size:14px;line-height:1.6}.dialog-message{white-space:pre-line}.confirm-body pre{max-height:360px;overflow:auto;margin:0;padding:14px;border:1px solid var(--line);border-radius:8px;color:#1f2937;background:#f8fafc;font-family:Consolas,Microsoft JhengHei,monospace;font-size:13px;line-height:1.65;white-space:pre-wrap}.summary-only{display:grid;gap:8px;padding:14px;border:1px solid #f6d98b;border-radius:8px;color:#6c4d00;background:#fff8df}.summary-only p{color:#7a5d18;font-size:13px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-grid div{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.detail-grid span,.detail-grid strong{display:block}.detail-grid span{margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:800}.detail-subtitle{margin:4px 0 10px;font-size:15px}.detail-list{display:grid;gap:8px}.detail-list-row{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.detail-list-row span{color:#475467;font-size:13px}.wide-modal{width:min(1040px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow:auto}.modal-header h2{font-size:18px}.dispatch-modal-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.dispatch-date-switch{display:inline-flex;align-items:center;gap:4px}.dispatch-date-picker{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:4px 10px;border:1px solid #f0b4b4;border-radius:7px;background:#fff8f8;box-shadow:0 1px #b91c1c14;cursor:pointer}.dispatch-date-picker svg{color:#c92a2a}.dispatch-date-picker:hover{border-color:#d94848;background:#fff1f1}.dispatch-date-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dispatch-date-picker.disabled{cursor:not-allowed;opacity:.62}.dispatch-date-picker.disabled input{cursor:not-allowed}.modal-header span{color:var(--muted);font-size:15px}.modal-header .modal-date-red{color:#c92a2a;font-weight:900}.form-grid{display:grid;grid-template-columns:minmax(160px,.55fr) repeat(2,minmax(0,1fr));gap:16px;padding:18px}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid #cbd7e6;border-radius:8px;background:#f8fbff}.segmented-control button{min-height:34px;border:0;border-radius:6px;background:transparent;color:#344054;cursor:pointer;font-weight:900}.segmented-control button.active{background:var(--accent);color:#fff;box-shadow:0 1px 4px #0b879338}.field-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.inline-checkbox{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.inline-checkbox input{width:14px;height:14px;margin:0}.compact-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 0 0}.officer-details{margin:0 18px 18px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.officer-details summary{cursor:pointer;color:#344054;font-size:14px;font-weight:900}.inline-inputs input{min-width:0}.inline-inputs em{color:var(--muted);font-style:normal}.committee-strip{padding:0 18px 18px}.check-chip{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:7px;color:#344054;background:#f8fafc;font-size:13px;font-weight:800}.check-chip input{width:14px;height:14px;padding:0}.check-chip-group{display:flex;flex-wrap:wrap;gap:8px}.settings-plan-box{display:grid;gap:8px}.visit-order-header{display:flex;align-items:center;justify-content:space-between;padding:0 18px 12px}.visit-order-header h3{margin:0;font-size:16px}.visit-order-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.visit-order-list{display:grid;gap:10px;padding:0 18px 18px}.visit-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.visit-row-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0}.row-case-details{container-type:inline-size;padding:10px;border:1px solid var(--line);border-radius:7px;background:#fff}.row-case-details summary{cursor:pointer;color:#344054;font-size:14px;font-weight:900}.row-case-fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;padding-top:10px;min-width:0;align-items:end}.middle-age-case-fields{grid-template-columns:repeat(12,minmax(0,1fr))}.row-case-fields>*{min-width:0}.row-case-fields label,.row-case-fields input,.row-case-fields select{min-width:0;width:100%}.visit-row-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,.45fr);gap:10px;min-width:0}.unit-pair{grid-template-columns:minmax(0,1fr);grid-column:span 4}.disability-name-pair{grid-template-columns:minmax(120px,1fr) minmax(120px,.9fr);grid-column:span 4}.disability-pair{grid-template-columns:minmax(84px,1fr) 56px;grid-column:span 2}.disability-custom-field{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.disability-custom-field span{margin-bottom:1px}.people-only-pair{grid-template-columns:minmax(150px,1fr) 56px;grid-column:span 2}.middle-age-case-fields .people-only-pair{grid-template-columns:minmax(86px,1fr) 58px}.middle-age-case-fields .address-note-pair{grid-template-columns:minmax(150px,1fr) 86px minmax(88px,.7fr)}.address-note-pair{grid-template-columns:minmax(140px,1fr) 88px minmax(82px,.58fr);grid-column:span 4}.address-note-pair input[type=time]{min-width:0}.address-note-pair label:last-child input{min-width:0}.visit-row input[inputmode=numeric]::-webkit-outer-spin-button,.visit-row input[inputmode=numeric]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.visit-row input[inputmode=numeric]{appearance:textfield;-moz-appearance:textfield}.split-inputs{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}.row-upload-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;height:36px;margin:0;border:1px dashed #a8b7c7;border-radius:7px;color:var(--accent);background:#fff;font-size:13px;font-weight:900}.row-file-actions{display:grid;grid-template-columns:minmax(48px,1fr) 36px;grid-column:span 2;gap:6px;align-items:end}.row-delete-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;border:1px solid var(--line);border-radius:7px;color:#475467;background:#fff}@container (max-width: 920px){.disability-name-pair,.unit-pair{grid-column:span 6}.disability-pair,.people-only-pair,.row-file-actions{grid-column:span 3}.address-note-pair{grid-column:span 12}}@container (max-width: 640px){.disability-name-pair,.unit-pair,.disability-pair,.people-only-pair,.address-note-pair,.row-file-actions{grid-column:span 12}.address-note-pair{grid-template-columns:1fr}}.row-delete-button:hover{color:#b42318;border-color:#f0b0aa;background:#fff5f5}.row-upload-button span{margin:0;color:inherit;font-size:13px;font-weight:900}.row-upload-button input{display:none}.upload-modal-backdrop{z-index:1200}.upload-dialog{width:min(560px,calc(100vw - 32px))}.upload-dialog-body{display:grid;gap:14px;padding:16px 18px 18px}.upload-dialog-body p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}.external-link-panel{display:grid;gap:10px;padding:12px;border:1px solid #d8e3ef;border-radius:8px;background:#f8fbff}.external-link-panel strong{display:block;color:var(--text);font-size:14px;margin-bottom:4px}.external-link-panel small{color:var(--muted);line-height:1.5}.upload-test-panel{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px;border:1px dashed #b8c8da;border-radius:8px;background:#fbfdff}.upload-test-panel strong{display:block;font-size:14px;color:var(--text);margin-bottom:4px}.upload-test-panel small{color:var(--muted);line-height:1.5}@media(max-width:720px){.upload-test-panel{align-items:stretch;flex-direction:column}}.external-link-grid{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(180px,1.4fr) auto;gap:8px;align-items:center}.external-link-grid input{min-width:0}@media(max-width:720px){.external-link-grid{grid-template-columns:1fr}}.quick-fill-dialog{width:min(900px,calc(100% - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column}.quick-fill-body{display:grid;gap:12px;padding:18px;overflow:auto}.quick-fill-body textarea{width:100%;min-height:180px;resize:vertical;line-height:1.7}.quick-fill-hint{margin:0;color:#b42318;font-size:14px;font-weight:900;line-height:1.7}.quick-fill-preview{display:grid;gap:8px;max-height:280px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.quick-fill-preview h3{margin:0 0 4px;font-size:14px}.quick-fill-preview-row{display:grid;grid-template-columns:34px minmax(110px,.95fr) minmax(90px,.8fr) minmax(86px,.6fr) minmax(160px,1.25fr) minmax(120px,.9fr);gap:4px;align-items:end;padding:9px 10px;border:1px solid #d5e3ef;border-radius:7px;background:#fff}.quick-fill-preview-row.middle-age{grid-template-columns:34px minmax(160px,1.3fr) minmax(86px,.55fr) minmax(180px,1.2fr) minmax(120px,.85fr)}.quick-fill-preview-row strong{align-self:center;color:var(--accent);font-size:15px}.quick-fill-preview-row label{display:grid;gap:4px;min-width:0}.quick-fill-preview-row label span{color:var(--muted);font-size:12px;font-weight:900}.quick-fill-preview-row input,.quick-fill-preview-row select{min-width:0;width:100%;height:34px;padding:7px 9px;font-size:13px}.upload-drop-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px dashed #9fb3c8;border-radius:8px;background:#f8fbff;color:var(--accent);cursor:pointer;font-weight:900}.upload-drop-button input{display:none}.upload-file-list{display:grid;gap:8px}.upload-file-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto 34px;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#fff}.upload-file-row.uploaded{background:#f8fcff;border-color:#cfe0f2}.upload-file-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.upload-file-row small{color:var(--muted);white-space:nowrap}.share-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f4f7fb}.share-card{width:min(560px,100%);border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.share-card-header{display:grid;gap:6px;padding:22px 24px 18px;border-bottom:1px solid var(--line)}.share-card-header h1{margin:0;font-size:24px}.share-card-header span{color:var(--muted);font-size:14px;font-weight:800}.share-form,.share-file-panel,.share-message{display:grid;gap:14px;padding:24px}.share-form p,.share-file-panel p,.share-message p{margin:0;color:#344054;line-height:1.6}.share-form input{width:100%;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:8px}.share-file-list{display:grid;gap:10px}.share-file-button{display:grid;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe;color:#1f2937;text-align:left;font-size:14px;font-weight:800}.share-file-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-message.danger{color:#b42318;background:#fff7f7}.attendance-section{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;padding:0 18px 18px}.attendance-section.single-attendance{grid-template-columns:1fr}.attendance-group{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.review-selection{display:grid;gap:12px;padding:0 18px 18px}.review-selection-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-selection-header h3{margin:0;font-size:16px}.review-selection-header span{color:var(--muted);font-size:12px;font-weight:800}.review-selection-header .review-selection-status{color:#b42318}.review-search-field{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--muted)}.review-search-field input{width:100%;border:0;padding:0;font-size:14px;font-weight:800;outline:0}.review-check-list{display:grid;gap:8px;max-height:320px;overflow:auto;padding:2px}.review-check{display:grid;grid-template-columns:18px 92px minmax(145px,.32fr) minmax(220px,1fr) auto;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.review-check.selected{border-color:#8a8f98;background:#fff8df;box-shadow:inset 0 0 0 1px #8a8f98}.review-check input{width:15px;height:15px;padding:0}.review-check strong,.review-check span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-check span{color:var(--muted);font-size:12px;font-weight:800}.review-owner-cell{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%}.review-owner-cell em{display:inline-flex;align-items:center;flex:0 0 auto;min-height:20px;padding:0 5px;border:1px solid #f0c36b;border-radius:999px;background:#fff7dc;color:#925900;font-size:10px;font-style:normal;font-weight:900;white-space:nowrap}.review-location-form{display:grid;gap:16px;padding:16px}.review-location-group{display:grid;gap:8px}.review-location-title,.review-location-row{display:flex;align-items:center;gap:10px}.review-location-title{justify-content:space-between}.review-location-title span{margin:0;color:#344054;font-size:13px;font-weight:900}.review-location-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.review-location-row input{min-width:0}.review-location-officers{display:grid;gap:8px}.review-location-officers>span{color:#52617a;font-size:12px;font-weight:900}.review-location-actions{display:flex;justify-content:flex-end}.review-collaboration-form{display:grid;gap:12px;padding:0 16px 16px}.review-collaboration-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.review-collaboration-card-header{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:center}.attendance-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.attendance-title h3{margin:0;font-size:15px}.attendance-title span{color:var(--muted);font-size:12px;font-weight:800}.editable-chip-list,.selected-attendees{display:flex;flex-wrap:wrap;gap:8px}.committee-select-list{display:grid;gap:8px}.committee-select-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(110px,1fr) 36px;gap:8px;align-items:center}.committee-select-row:not(:has(input)){grid-template-columns:minmax(120px,1fr) 36px}.empty-sync-box{min-height:48px;padding:14px;border:1px dashed #a8b7c7;border-radius:8px;color:var(--muted);background:#fff;font-size:13px;font-weight:800;line-height:1.6}.editable-chip{display:inline-grid;grid-template-columns:minmax(96px,1fr) 24px;align-items:center;min-height:32px;overflow:hidden;border:1px solid var(--line-strong);border-radius:7px;background:#fff}.editable-chip input{height:30px;border:0;background:transparent}.editable-chip button{display:grid;place-items:center;width:24px;height:30px;border:0;color:var(--muted);background:transparent}.committee-strip.compact{padding:0;margin-bottom:12px}.row-order-controls{display:grid;grid-template-columns:1fr;align-items:center;gap:4px;align-content:start;justify-items:center;min-height:100%;color:var(--muted)}.row-order-controls strong{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;background:var(--accent);font-size:13px}.row-order-controls button{width:28px;height:22px;border:1px solid var(--line);border-radius:6px;color:#344054;background:#fff}.settings-form{display:grid;grid-template-columns:minmax(120px,1fr) 110px minmax(120px,1fr) minmax(160px,1fr) minmax(160px,1fr) auto auto;gap:10px;padding:16px;border-bottom:1px solid var(--line)}.settings-form .settings-plan-box{grid-column:1 / -1}.compact-ghost{min-height:36px;padding:0 12px}.editing-row td{background:#fff9e8}.settings-inline-form{display:grid;grid-template-columns:minmax(180px,320px) auto;gap:10px;padding:16px}.share-settings-form,.share-create-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;gap:12px;padding:16px;align-items:end}.share-warning{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px;padding:12px 14px;border:1px solid #f2c56b;border-radius:8px;background:#fff7e6;color:#7a4b00;font-size:14px;font-weight:800;line-height:1.6}.share-warning span{min-width:0}.danger-text{color:#dc2626;font-weight:900}.backup-dialog{width:min(760px,calc(100vw - 32px))}.backup-dialog .modal-body{padding:0}.backup-dialog-actions{padding:16px 16px 0}.backup-file-list{display:grid;gap:8px;padding:16px}.backup-file-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.backup-file-item span{display:grid;gap:4px;min-width:0}.backup-file-item small{color:var(--muted);font-weight:700}.share-settings-form label{display:grid;gap:7px;color:#344054;font-size:13px;font-weight:800}.share-create-row{grid-template-columns:minmax(0,1fr) auto}.share-edit-row,.row-action-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.share-edit-row input{min-width:150px}.share-edit-row select{width:96px}.share-file-upload{cursor:pointer}.share-file-upload input{display:none}.share-manage-dialog{width:min(680px,calc(100vw - 32px))}.share-dialog-form{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:16px}.share-dialog-form label{display:grid;gap:7px;color:#344054;font-size:13px;font-weight:800}.share-dialog-upload{width:fit-content;margin:16px 16px 0;cursor:pointer}.share-dialog-upload input{display:none}.share-file-list{display:grid;gap:8px;padding:16px}.share-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.share-file-row a{min-width:0;overflow:hidden;color:#0f766e;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.expired-share-row{background:#fff7f7;color:#8a1f1f}.table-muted{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:700}.share-table td{vertical-align:middle}.specialist-settings-form{grid-template-columns:minmax(160px,260px) minmax(220px,340px) auto auto}.database-note{padding:12px 16px;border-bottom:1px solid var(--line);color:#475467;background:#fbfcfe;font-size:13px;font-weight:700}.database-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fffdf7}.database-toolbar label:not(.check-chip){display:grid;gap:5px;min-width:180px}.database-toolbar .check-chip{height:36px;margin-bottom:0}.import-panel{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}.import-panel strong,.import-panel span{display:block}.import-panel strong{margin-bottom:4px}.import-panel span{color:var(--muted);font-size:12px;line-height:1.5}.import-panel input[type=file]{display:none}.raw-data-table code{color:#344054;font-size:12px}.raw-data-table .draft-row{background:#fff9e8}.raw-data-table .duplicate-raw-row{background:#fff3f3}.raw-data-table input[type=checkbox]{width:16px;height:16px;padding:0}.duplicate-dialog{width:min(1120px,calc(100vw - 32px))}.duplicate-dialog-body{display:grid;gap:12px;max-height:62vh;overflow:auto}.duplicate-dialog-filter{display:flex;align-items:end;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.duplicate-dialog-filter label{display:grid;gap:5px;min-width:180px}.duplicate-dialog-filter small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.5}.duplicate-group-card{border:1px solid #ffd8d8;border-radius:8px;background:snow;overflow:hidden}.duplicate-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #ffe2e2}.duplicate-group-header strong{color:#9f2f2f}.duplicate-group-header span{color:var(--muted);font-size:12px;font-weight:800}.duplicate-group-card table{width:100%}.duplicate-group-card code{font-size:11px}.raw-json summary{cursor:pointer;color:var(--accent);font-weight:900}.raw-json pre{max-width:420px;max-height:220px;overflow:auto;margin:8px 0 0;padding:10px;border:1px solid var(--line);border-radius:7px;color:#1f2937;background:#f8fafc;font-family:Consolas,Microsoft JhengHei,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap}.wide-field{min-width:0}.modal-upload{width:calc(100% - 36px);margin:0 18px 18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:#fbfcfe}.dispatch-admin-entry-panel{display:grid;grid-template-columns:minmax(150px,.5fr) minmax(240px,1fr) minmax(260px,1.2fr);gap:12px;align-items:end;padding:14px 18px;border-bottom:1px solid var(--line);background:#f8fcfd}.dispatch-admin-entry-panel small{align-self:center;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:1180px){.app-shell{grid-template-columns:82px 1fr}.brand span,.nav-item{font-size:0}.brand,.nav-item{justify-content:center;padding:0}.sidebar-footer{display:none}.content-grid,.page-content{grid-template-columns:1fr}.visit-row{grid-template-columns:44px minmax(0,1fr)}.visit-row-fields,.attendance-section{grid-template-columns:1fr}.dispatch-admin-entry-panel{grid-template-columns:1fr 1fr}.dispatch-admin-entry-panel small{grid-column:1 / -1}.training-video-setting-row{grid-template-columns:1fr 1fr}}@media(max-width:760px){.modal-backdrop{align-items:start;padding:10px}.dispatch-detail-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:90;display:flex;width:min(286px,86vw);transform:translate(-105%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.sidebar.open .brand{justify-content:flex-start;padding:0 18px}.sidebar.open .brand span,.sidebar.open .nav-item{font-size:initial}.sidebar.open .nav-item{justify-content:flex-start;padding:0 16px}.mobile-menu-scrim{position:fixed;inset:0;z-index:85;display:block;background:#0f172a5c}.panel-header,.detail-heading{align-items:stretch;flex-direction:column;height:auto;gap:12px}.topbar{display:grid;grid-template-columns:1fr auto;gap:10px;height:auto;padding:10px 14px}.topbar-title{min-width:0}.topbar h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:contents}.notification,.account-button{grid-row:1}.notification{grid-column:2;justify-self:end;transform:translate(-112px)}.account-button{grid-column:2;justify-self:end;width:108px;padding:0 8px;overflow:hidden}.dispatch-admin-entry-panel{grid-template-columns:1fr;padding:12px 14px}.training-video-grid,.training-video-settings{padding:12px}.training-video-setting-row{grid-template-columns:1fr}.account-button .google-dot{flex:0 0 auto}.search-box{grid-column:1 / -1;width:100%}.mobile-hidden-control{display:none}.calendar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calendar-actions .primary-button,.calendar-actions .soft-button{width:100%}.month-control{justify-content:center}.month-control .today-button{display:none}.month-control h2{font-size:22px}.month-control .icon-button{display:inline-flex;flex:0 0 auto}.content-grid,.page-content{padding:12px}.schedule-table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.schedule-table thead,.schedule-table tbody{display:table;width:1100px;table-layout:fixed}.schedule-table td,.schedule-table th{white-space:normal}.itinerary-summary-text{-webkit-line-clamp:3}.calendar-grid{padding:0 10px}.day-cell{min-height:76px;padding:8px}.form-grid{grid-template-columns:1fr}.visit-row{grid-template-columns:1fr}.visit-order-header{align-items:stretch;flex-direction:column;gap:10px}.visit-order-actions{justify-content:flex-start}.quick-fill-preview-row,.quick-fill-preview-row.middle-age,.visit-row-fields,.visit-row-pair,.disability-pair,.people-only-pair,.address-note-pair,.row-file-actions,.row-case-fields,.committee-select-row,.case-filter-form,.settings-form,.settings-inline-form{grid-template-columns:1fr}.modal-backdrop{align-items:stretch;padding:0}.dispatch-modal.wide-modal{width:100%;max-height:100dvh;border-radius:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-header,.modal-actions{position:sticky;z-index:2;background:#fff}.modal-header{top:0}.modal-actions{bottom:0}.file-row{grid-template-columns:22px minmax(0,1fr) 36px}.file-row small,.file-row .status{display:none}}
