:root{--el-color-primary:#2d6b55;--el-color-primary-light-3:#5a927c;--el-color-primary-light-5:#7fae9b;--el-color-primary-light-7:#a5cbbc;--el-color-primary-light-8:#c2dbd0;--el-color-primary-light-9:#edf5f0;--el-color-primary-dark-2:#245a47;--el-color-success:#2d6b55;--el-color-success-light-3:#5a927c;--el-color-success-light-9:#edf5f0;--el-color-warning:#d6a639;--el-color-warning-light-3:#e0bf63;--el-color-warning-light-9:#fdf5e4;--el-color-danger:#d4553a;--el-color-danger-light-3:#e07a66;--el-color-danger-light-9:#fdf0ed;--el-color-error:#d4553a;--el-color-info:#3a6a9a;--el-color-info-light-3:#6a8ab5;--el-color-info-light-9:#e8f0fa;--el-font-family:Noto Sans SC, PingFang SC, Microsoft YaHei, sans-serif;--el-border-radius-base:8px;--el-border-radius-small:4px;--el-border-radius-round:9999px;--el-border-color:#dce5df;--el-border-color-light:#dce5df;--el-border-color-lighter:#dce5df99;--el-bg-color-page:#faf9f6;--el-bg-color:#fff;--el-bg-color-overlay:#fff;--el-fill-color-blank:#fff;--el-fill-color-light:#edf5f0;--el-fill-color-lighter:#f5f3ef;--el-text-color-primary:#1a2e28;--el-text-color-regular:#3d4f49;--el-text-color-secondary:#6b7d76;--el-text-color-placeholder:#94a39d;--el-text-color-disabled:#94a39d;--el-box-shadow-light:0 1px 3px #0000000f;--el-box-shadow:0 4px 12px #00000014}.el-button--primary:not(.is-plain):not(.is-text):not(.is-link){background-color:#2d6b55;border-color:#2d6b55}.el-button--primary:not(.is-plain):not(.is-text):not(.is-link):hover,.el-button--primary:not(.is-plain):not(.is-text):not(.is-link):focus{background-color:#245a47;border-color:#245a47}.el-table{--el-table-header-bg-color:#edf5f0;--el-table-row-hover-bg-color:#f5f3ef;--el-table-border-color:#dce5df}.el-table th.el-table__cell{color:#1a2e28;font-weight:600}.el-tabs__active-bar{background-color:#2d6b55}.el-tabs__item.is-active{color:#2d6b55}.el-tabs__item:hover{color:#245a47}.el-dialog{border-radius:16px}.el-dialog__header{border-bottom:1px solid #dce5df;padding-bottom:16px}.el-dialog__title{font-family:Noto Serif SC,STSong,SimSun,serif;font-weight:600}.el-date-editor,.el-input__wrapper{border-radius:8px}.el-card{--el-card-border-radius:12px;--el-card-border-color:#dce5df99;box-shadow:0 1px 3px #0000000f}.el-pagination{--el-pagination-button-color:#3d4f49;--el-pagination-hover-color:#2d6b55}.el-tag{border-radius:9999px;font-weight:500}.el-dropdown-menu{border-radius:8px;box-shadow:0 4px 12px #0000001f}.page-enter{animation:.25s ease-out forwards pageEnter}@keyframes pageEnter{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.kpi-card{background:#fff;border:1px solid #dce5df99;border-radius:16px;padding:20px;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000f}.kpi-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.kpi-card--green:before{background:linear-gradient(90deg,#2d6b55,#3a8a6a)}.kpi-card--gold:before{background:linear-gradient(90deg,#d6a639,#e8c84a)}.kpi-card--coral:before{background:linear-gradient(90deg,#d4553a,#e87a65)}.kpi-card--blue:before{background:linear-gradient(90deg,#3a6a9a,#5a8abf)}.kpi-card--teal:before{background:linear-gradient(90deg,#3a7a6a,#3a8a6a)}.kpi-card .kpi-value{font-variant-numeric:tabular-nums;color:#1a2e28;font-family:DM Sans,Roboto Mono,monospace;font-size:28px;font-weight:700;line-height:1.2}.kpi-card .kpi-label{color:#6b7d76;margin-bottom:4px;font-size:13px}.kpi-card .kpi-change{font-family:DM Sans,Roboto Mono,monospace;font-size:13px}.kpi-card .kpi-change--up{color:#2d6b55}.kpi-card .kpi-change--down{color:#d4553a}.status-badge{white-space:nowrap;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-badge--success{color:#245a47;background:#edf5f0;border:1px solid #b0d4bf}.status-badge--warning{color:#8a6d3b;background:#faf5ed;border:1px solid #e8d5a8}.status-badge--danger{color:#d4553a;background:#fdf0ed;border:1px solid #e8b0a0}.status-badge--info{color:#3a6a9a;background:#e8f0fa;border:1px solid #b0c8e0}.status-badge--vip{color:#8a6d3b;background:#fdf5e4;border:1px solid #e0c88a}.status-badge--muted{color:#6b7d76;background:#f5f3ef;border:1px solid #dce5df}.status-badge--active{color:#245a47;background:#edf5f0;border:1px solid #b0d4bf}.vip-badge{border-radius:9999px;align-items:center;gap:2px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.vip-badge--5{color:#e8d5a8;background:#1a1a2e}.vip-badge--4{color:#4a4a6a;background:#e8e8f0}.vip-badge--3{color:#8a6d3b;background:#fff3cd}.vip-badge--2{color:#6a6a6a;background:#f0f0f0}.pref-chip{border:1px solid;border-radius:9999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:500;display:inline-flex}.pref-chip--tea{color:#276749;background:#f0fff4;border-color:#b2dfdb}.pref-chip--lang{color:#1560a0;background:#e8f4ff;border-color:#b8d4f0}.pref-chip--comm{color:#7a4f00;background:#fdf5e4;border-color:#f0d49a}.pref-chip--skin{color:#880e4f;background:#fce4ec;border-color:#f8bbd0}.wait-badge{font-variant-numeric:tabular-nums;font-family:DM Sans,Roboto Mono,monospace;font-weight:600}.wait-badge--normal{color:#2d6b55}.wait-badge--long{color:#c08a30}.wait-badge--overdue{color:#d4553a}.num-font{font-variant-numeric:tabular-nums;font-family:DM Sans,Roboto Mono,monospace}.table-row-hover:hover{background:#f2f5f3}.ai-badge{color:#3a8a6a;background:linear-gradient(135deg,#0d2b2a,#1f5545);border:1px solid #1f5545;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.patient-card{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:12px;padding:16px;transition:all .2s;position:relative}.patient-card:hover{box-shadow:0 4px 12px #00000014}.patient-card:before{content:"";border-radius:12px 0 0 12px;width:3px;position:absolute;top:0;bottom:0;left:0}.patient-card--vip:before{background:#d6a639}.patient-card--active:before{background:#2d6b55}.patient-card--overdue:before{background:#d4553a}.patient-card--calling:before{background:#3a6a9a}.patient-card--wait-warn{background:#faf5ed;border-color:#e8d5a8}.patient-card--wait-danger{background:#fdf0ed;border-color:#d4553a}.patient-card--faded{opacity:.5}.queue-number{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-family:DM Sans,Roboto Mono,monospace;font-size:13px;font-weight:600;display:flex}.queue-number--waiting{color:#2d6b55;background:#2d6b551a}.queue-number--calling{color:#3a6a9a;background:#3a6a9a1a;animation:1.5s infinite pulse}.queue-number--progress{color:#2d6b55;background:#2d6b551a}.queue-number--scheduled{color:#94a39d;background:#94a39d1a}.queue-number--no-show{color:#d4553a;background:#d4553a1a}.queue-number--completed{color:#2d6b55;background:#2d6b551a}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}.role-badge{border-radius:9999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.role-badge--director{color:#d4553a;background:#fdf0ed}.role-badge--dept_mgr{color:#7a4f00;background:#fdf5e4}.role-badge--consultant{color:#1560a0;background:#e8f0fa}.role-badge--doctor{color:#2d6b55;background:#edf5f0}.role-badge--nurse{color:#6a3d9a;background:#f3edf7}.role-badge--reception{color:#666;background:#f0f0f0}.role-badge--finance{color:#8a6d3b;background:#fdf5e4}.role-badge--operations{color:#3a6a9a;background:#e8f0fa}.load-bar{background:#e8ede9;border-radius:2px;height:4px;overflow:hidden}.load-bar__fill{border-radius:2px;height:100%;transition:width .2s}.load-bar--low .load-bar__fill{background:#2d6b55}.load-bar--mid .load-bar__fill{background:#d6a639}.load-bar--high .load-bar__fill{background:#d4553a}.perm-disabled{opacity:.4;pointer-events:none;cursor:not-allowed!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{color:#1a2e28;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#faf9f6;height:100%;margin:0;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}#app{height:100%}h1,h2,h3,h4,h5,h6{font-family:Noto Serif SC,STSong,SimSun,serif;font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c0ccc4;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a0b0a5}.page-container{max-width:1440px;margin:0 auto;padding:24px}.page-header{margin-bottom:24px}.page-header__title{color:#1a2e28;font-family:Noto Serif SC,STSong,SimSun,serif;font-size:20px;font-weight:600}.page-header__subtitle{color:#6b7d76;margin-top:4px;font-size:13px}:root{--clinic-primary:#3d7a4a;--clinic-primary-dark:#2d5032;--clinic-primary-light:#5a9e68;--clinic-primary-gradient:linear-gradient(135deg, #3d7a4a, #5a9e68);--clinic-primary-gradient-active:linear-gradient(135deg, #2d5032, #3d7a4a);--clinic-surface:#fff;--clinic-surface-sunken:#fafcfa;--clinic-surface-muted:#f3f5f4;--clinic-surface-accent:#f5faf6;--clinic-surface-accent-bold:#f0f7f1;--clinic-banner-from:#f0f7f1;--clinic-banner-to:#e6f0e7;--clinic-border:#dde5de;--clinic-border-strong:#c8deca;--clinic-border-subtle:#e8efe9;--clinic-border-hover:#a0c8a4;--clinic-divider:#eaf0eb;--clinic-text:#1a2e1d;--clinic-text-strong:#2d5032;--clinic-text-body:#3a4a3c;--clinic-text-muted:#8a9a8d;--clinic-text-placeholder:#b0b8b2;--clinic-text-label:#5a7a5e;--clinic-danger:#cf4545;--clinic-danger-bg:#fdecea;--clinic-warning:#c49030;--clinic-shadow-card:0 3px 10px #3d7a4a40;--clinic-shadow-dropdown:0 8px 24px #1e3c231a;--clinic-shadow-submit-hover:0 4px 16px #3d7a4a4d;--clinic-ring-focus:0 0 0 3px #3d7a4a14;--clinic-radius-input:10px;--clinic-radius-card:12px;--clinic-radius-pill:20px;--clinic-radius-chip:20px;--clinic-gap-field:14px;--clinic-gap-row:16px;--clinic-gap-section:20px;--clinic-font:"Noto Sans SC", "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}@keyframes clinic-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes clinic-fade-in{0%{opacity:0}to{opacity:1}}.clinic-input{border-radius:var(--clinic-radius-input);border:1px solid var(--clinic-border);background:var(--clinic-surface-sunken);align-items:center;gap:8px;padding:9px 12px;transition:border-color .2s,box-shadow .2s;display:flex}.clinic-input:focus-within{border-color:var(--clinic-primary);box-shadow:var(--clinic-ring-focus)}.clinic-input input,.clinic-input textarea{color:var(--clinic-text);background:0 0;border:none;flex:1;width:100%;font-family:inherit;font-size:14px}.clinic-input input:focus,.clinic-input textarea:focus{outline:none}.clinic-label{color:var(--clinic-text-body);letter-spacing:.2px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.clinic-label__required{color:var(--clinic-danger);margin-left:4px}
