.visit-panel-container{background:var(--color-bg-primary);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.visit-panel-header{padding:var(--spacing-md)var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.visit-panel-patient-info{gap:var(--spacing-xs);flex-direction:column;display:flex}.visit-panel-patient-row{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.visit-panel-patient-main{align-items:center;gap:var(--spacing-sm);flex:1;display:flex}.visit-panel-patient-name{font-size:var(--font-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.visit-panel-patient-name.is-clickable{cursor:pointer;transition:color var(--transition-fast)}.visit-panel-patient-name.is-clickable:hover{color:var(--color-blue-600);text-decoration:underline}.visit-panel-patient-meta{font-size:var(--font-sm);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:2px 8px}.visit-panel-patient-phone{font-size:var(--font-sm);color:var(--color-text-secondary)}.visit-panel-patient-stats{font-size:var(--font-sm);color:var(--color-text-tertiary)}.visit-panel-patient-count,.visit-panel-patient-date{font-size:var(--font-sm);color:var(--color-text-primary);font-weight:var(--font-medium)}.visit-panel-notes{font-size:var(--font-sm);color:var(--color-warning);background:var(--color-warning-faint);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm)}.visit-panel-close-btn{padding:var(--spacing-xs);cursor:pointer;opacity:.6;transition:opacity var(--transition-fast);background:0 0;border:none;font-size:16px}.visit-panel-close-btn:hover{opacity:1}.visit-panel-status{padding:0 var(--spacing-lg);flex-shrink:0}.visit-panel-clear-btn{border-radius:var(--radius-full);border:1px solid var(--color-border-light);background:var(--color-bg-tertiary);width:28px;height:28px}.visit-panel-tabs{gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-light);flex-shrink:0;display:flex}.visit-panel-tab{padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none}.visit-panel-tab:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.visit-panel-tab.active,.visit-panel-tab[data-active=true]{color:var(--color-accent);background:var(--color-accent-light)}.visit-panel-content{min-height:0;padding:var(--spacing-md)var(--spacing-lg);flex:1;overflow-y:auto}.visit-panel-content.visit-panel-content-chat{flex-direction:column;padding:0;display:flex;overflow:hidden}.visit-panel-container .visit-card{border-color:var(--color-border-light);box-shadow:var(--shadow-soft)}.visit-panel-container .mobile-card,.visit-panel-container .visit-card,.visit-panel-container .mobile-list-item,.visit-panel-container .project-card,.visit-panel-container .message-tab-thread{border-radius:var(--radius-md)}.visit-mirror-header{color:var(--color-text-tertiary);align-items:center;gap:6px;margin:12px 0 8px;padding-left:4px;font-size:12px;display:flex}.visit-mirror-card{text-align:left;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-tertiary);width:100%;transition:border-color var(--transition-fast),background var(--transition-fast);align-items:center;gap:12px;margin-bottom:4px;padding:8px 12px;display:flex}.visit-mirror-card:hover:not(:disabled){border-color:var(--color-accent)}.visit-mirror-card.is-active{border-color:var(--color-accent);background:var(--color-accent-light)}.visit-mirror-type{color:var(--color-text-primary);font-size:13px}.visit-mirror-time{color:var(--color-text-secondary);font-size:12px}.visit-mirror-arrow{color:var(--color-text-tertiary);margin-left:auto}.visit-panel-container .visit-card-proxy-label{color:#9ca3af;white-space:nowrap;background:0 0;border:none;border-radius:0;align-items:center;gap:3px;max-width:100%;min-height:auto;margin-left:auto;padding:0;font-size:12px;font-weight:400;line-height:1.2;display:inline-flex}.visit-panel-container .visit-card-proxy-label>svg{flex:none;display:block}.visit-panel-container .visit-card-proxy-label span{min-width:0;font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (max-width:768px){.visit-panel-container .visit-card-actions{justify-content:flex-end;width:100%;margin-left:0}.visit-panel-header{padding:12px 14px}.visit-panel-status{padding:0 14px}.visit-panel-tabs{scrollbar-width:none;padding:8px 10px;overflow-x:auto}.visit-panel-tabs::-webkit-scrollbar{height:0}.visit-panel-tab{flex-shrink:0;padding:8px 10px;font-size:13px}.visit-panel-content{padding:12px 14px}}.visit-record-tab{flex-direction:column;display:flex}.visit-record-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.visit-record-card{padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:border-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.visit-record-card:hover{border-color:var(--color-accent)}.visit-record-info{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;flex:1;min-width:0;display:flex}.visit-record-date{font-size:var(--font-sm);color:var(--color-text-primary);font-weight:var(--font-medium)}.visit-record-status{font-size:var(--font-xs);border-radius:var(--radius-full);font-weight:var(--font-medium);padding:2px 8px}.visit-record-status[data-status=completed]{background:var(--color-success-soft);color:var(--color-green-600)}.visit-record-status[data-status=no_show]{background:var(--color-error-soft);color:var(--color-red-600)}.visit-record-type{font-size:var(--font-sm);color:var(--color-text-secondary)}.visit-record-complaint{font-size:var(--font-sm);color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.visit-record-actions{gap:var(--spacing-xs);flex-shrink:0;display:flex}.visit-record-table-web .patient-detail-table-header,.visit-record-table-web .visit-record-table-row{grid-template-columns:minmax(136px,1.1fr) minmax(180px,1.5fr) minmax(220px,1.9fr) auto;align-items:center;column-gap:20px;display:grid}.visit-record-table-web .patient-detail-table-header{padding:12px 16px}.visit-record-table-web .visit-record-table-row{padding:14px 16px}.visit-record-table-web .visit-record-cell{min-width:0}.visit-record-table-web .visit-record-cell-time{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.visit-record-table-web .visit-record-cell-type{text-align:left;white-space:nowrap;text-overflow:ellipsis;line-height:1.5;overflow:hidden}.visit-record-table-web .visit-record-cell-diagnosis{line-height:1.5}.visit-record-table-web .visit-record-cell-actions{justify-self:end}.visit-record-btn{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:4px;display:flex}.visit-record-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.visit-record-btn.has-data{border-color:var(--color-green-500);color:var(--color-green-600)}.visit-record-btn.no-data{opacity:.5;cursor:not-allowed}.visit-record-btn:disabled{opacity:.4;cursor:not-allowed}.message-tab{gap:var(--spacing-sm);height:100%;min-height:0;padding:var(--spacing-md);flex-direction:column;display:flex}.message-tab-header{flex-shrink:0}.message-tab-title{font-size:var(--font-md);font-weight:var(--font-semibold);color:var(--color-text-primary)}.message-tab-subtitle{font-size:var(--font-xs);color:var(--color-text-tertiary);margin-top:4px}.message-tab-thread{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.message-tab-thread .pc-thread-view{flex:1;min-height:0}.log-tab{flex-direction:column;justify-content:center;align-items:center;min-height:200px;display:flex}.project-tab-container{gap:var(--spacing-md);flex-direction:column;display:flex}.project-tab-header{justify-content:space-between;align-items:center;display:flex}.project-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.project-card{padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:all var(--transition-fast)}.project-card:hover{border-color:var(--color-accent)}.project-card.active,.project-card[data-active=true]{border-color:var(--color-accent);background:var(--color-accent-light)}.project-card-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.project-name{font-weight:var(--font-semibold);color:var(--color-text-primary)}.project-type-badge{font-size:var(--font-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-full);color:var(--color-text-secondary);padding:2px 8px}.project-status{font-size:var(--font-xs);border-radius:var(--radius-full);font-weight:var(--font-medium);margin-left:auto;padding:2px 8px}.status-badge-active{background:var(--color-info-light);color:var(--color-blue-600)}.status-badge-completed{background:var(--color-success-soft);color:var(--color-green-600)}.status-badge-paused{background:var(--color-warning-soft);color:var(--color-amber-600)}.status-badge-cancelled{background:var(--color-bg-tertiary);color:var(--color-gray-500)}.status-badge-planning{background:var(--color-purple-soft);color:var(--color-purple-600)}.project-progress{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.progress-bar{background:var(--color-bg-tertiary);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--color-accent)0%,var(--color-accent-hover)100%);border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal)}.progress-text{font-size:var(--font-xs);color:var(--color-text-secondary);white-space:nowrap}.project-status-selector{display:inline-block}.project-status-selector select{appearance:none;font-size:var(--font-xs);border-radius:var(--radius-full);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 4px center no-repeat;border:none;padding:2px 20px 2px 8px}.project-status-selector select:hover{filter:brightness(.95)}.project-status-selector select:focus{outline:2px solid var(--color-accent);outline-offset:1px}.phase-controls{align-items:center;gap:var(--spacing-xs);display:flex}.phase-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);width:24px;height:24px;color:var(--color-text-secondary);font-size:14px;font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.phase-btn:hover:not(:disabled){background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.phase-btn:disabled{opacity:.4;cursor:not-allowed}.linked-item.clickable{cursor:pointer}.linked-item.clickable:hover{background:var(--color-accent-light)}.project-card-footer{align-items:center;gap:var(--spacing-md);font-size:var(--font-sm);color:var(--color-text-secondary);display:flex}.project-finance,.project-appointments{align-items:center;gap:4px;display:flex}.project-card-footer .btn-ghost{margin-left:auto}.empty-icon{margin-bottom:var(--spacing-sm);opacity:.5;font-size:48px}.empty-hint{font-size:var(--font-sm);color:var(--color-text-tertiary);margin-top:var(--spacing-xs)}.appointment-select-list{gap:var(--spacing-xs);flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.appointment-select-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.appointment-select-item:hover:not(.disabled){border-color:var(--color-accent)}.appointment-select-item.selected{border-color:var(--color-accent);background:var(--color-accent-light)}.appointment-select-item.disabled{opacity:.6;cursor:not-allowed}.appointment-select-item.linked-this{border-color:var(--color-green-500);background:var(--color-success-faint)}.appointment-select-item.linked-this .select-checkbox{border-color:var(--color-green-500);color:var(--color-green-500)}.select-checkbox{border:2px solid var(--color-border);border-radius:var(--radius-sm);width:20px;height:20px;color:var(--color-accent);justify-content:center;align-items:center;display:flex}.appointment-select-item.selected .select-checkbox{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.appointment-info{align-items:center;gap:var(--spacing-md);flex:1;display:flex}.apt-date{font-weight:var(--font-medium);color:var(--color-text-primary)}.apt-type{font-size:var(--font-sm);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:2px 8px}.apt-status{font-size:var(--font-sm);color:var(--color-text-tertiary)}.project-detail-body{gap:var(--spacing-lg);flex-direction:column;max-height:60vh;display:flex;overflow-y:auto}.detail-section{gap:var(--spacing-sm);flex-direction:column;display:flex}.detail-section-title{align-items:center;gap:var(--spacing-xs);font-size:var(--font-md);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0;display:flex}.detail-section-title-row{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.detail-card{padding:var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.detail-card-header{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.finance-cards{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.finance-card{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);white-space:nowrap;flex-direction:row;flex:calc(25% - 6px);justify-content:center;align-items:baseline;gap:4px;min-width:75px;padding:6px 10px;display:flex}.finance-label{color:var(--color-text-tertiary);font-size:12px}.finance-value{font-size:var(--font-base);font-weight:var(--font-semibold);color:var(--color-text-primary)}.linked-list{gap:var(--spacing-xs);flex-direction:column;display:flex}.linked-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:var(--font-sm);display:flex}.linked-date{font-weight:var(--font-medium);color:var(--color-text-primary);min-width:120px}.linked-type{color:var(--color-text-secondary);background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:2px 8px}.linked-status{color:var(--color-text-tertiary)}.linked-amount{font-weight:var(--font-medium);color:var(--color-text-primary)}.linked-doctor{color:var(--color-text-secondary);margin-left:auto}.reminder-badge-overdue{border-radius:var(--radius-sm);background:var(--color-error-light);color:var(--color-error-dark);font-size:var(--font-xs);font-weight:var(--font-medium);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.reminder-badge-soon{border-radius:var(--radius-sm);background:var(--color-warning-light);color:var(--color-amber-600);font-size:var(--font-xs);font-weight:var(--font-medium);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.stepper-container{width:100%;padding:var(--spacing-sm)0;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;scroll-snap-type:x mandatory;overflow-x:auto}.stepper-container::-webkit-scrollbar{display:none}.stepper-list{padding:0 var(--spacing-md);align-items:flex-start;min-width:max-content;display:flex}.stepper-item{scroll-snap-align:center;flex-direction:column;align-items:center;width:120px;display:flex;position:relative}.stepper-item.is-clickable{cursor:pointer}.stepper-item:not(:last-child):after{content:"";background-color:var(--color-border);z-index:0;width:100%;height:2px;position:absolute;top:12px;left:50%}.stepper-item.phase-completed:not(:last-child):after{background-color:var(--color-success)}.stepper-item.phase-current:not(:last-child):after{background-color:var(--color-border)}.stepper-node{background-color:var(--color-bg-secondary);border:2px solid var(--color-bg-primary);width:24px;height:24px;color:var(--color-text-tertiary);font-size:var(--font-xs);font-weight:var(--font-medium);z-index:1;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.phase-completed .stepper-node{background-color:var(--color-success);color:var(--color-text-inverse)}.phase-current .stepper-node{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 0 0 4px var(--glow-border-color);transform:scale(1.2)}.stepper-label{margin-top:var(--spacing-md);text-align:center;font-size:var(--font-sm);color:var(--color-text-secondary);width:100%;padding:0 var(--spacing-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.phase-current .stepper-label{color:var(--color-primary);font-weight:var(--font-medium)}.phase-editor-toggle{flex:none}.phase-editor-panel{gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);flex-direction:column;display:flex}.phase-editor-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.phase-editor-count-group,.phase-editor-actions{align-items:center;gap:var(--spacing-sm);display:flex}.phase-editor-label{font-size:var(--font-sm);color:var(--color-text-secondary)}.phase-editor-count-controls{align-items:center;gap:var(--spacing-xs);display:flex}.phase-editor-count-badge{border-radius:var(--radius-full);background:var(--color-accent-light);min-width:36px;min-height:24px;font-size:var(--font-xs);font-weight:var(--font-semibold);color:var(--color-accent);justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.phase-editor-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.phase-editor-row{flex-direction:column;gap:6px;display:flex}.phase-editor-row-label{font-size:var(--font-sm);color:var(--color-text-secondary)}.stepper-input{margin-top:var(--spacing-xs);text-align:center;width:90%;font-size:var(--font-sm);border:1px solid var(--color-primary);border-radius:var(--radius-sm);outline:none;padding:2px 4px}.label-editable{cursor:pointer;border-radius:var(--radius-sm);padding:2px 4px}.label-editable:hover{background-color:var(--color-bg-secondary)}.project-detail-title{min-width:0}.project-detail-title-row{align-items:center;gap:var(--spacing-sm);min-width:0;display:flex}.project-detail-title-text{font-size:var(--font-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.dropdown-overlay{z-index:99;cursor:default;width:100vw;height:100vh;position:fixed;top:0;left:0}.header-actions{align-items:center;gap:var(--spacing-sm);display:flex}.header-actions .dropdown-wrapper{align-items:center;display:flex;position:relative}.header-actions .btn-ghost{color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.header-actions .btn-ghost:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.header-actions .dropdown-menu{z-index:100;border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:var(--radius-md);background:var(--color-bg-secondary);min-width:140px;margin-top:4px;padding:4px;position:absolute;top:100%;right:0}.header-actions .dropdown-item{text-align:left;cursor:pointer;width:100%;color:var(--color-text-primary);background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.header-actions .dropdown-item:hover{background:var(--color-bg-tertiary)}.header-actions .dropdown-item.text-danger{color:var(--color-error)}.header-actions .dropdown-item.text-danger:hover{background:var(--color-error-light)}