:root{color:#1f2933;background:#f4f7f9;font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--blue-900: #083f6c;--blue-700: #075a9c;--blue-100: #e6f2fa;--green-700: #187660;--green-100: #e4f4ee;--red-700: #b83a3a;--red-100: #fff0f0;--amber-700: #8b5d11;--amber-100: #fff6dc;--ink: #1f2933;--muted: #5f6d79;--line: #d9e1e7;--surface: #ffffff;--background: #f4f7f9;--shadow: 0 14px 34px rgba(24, 50, 72, .1)}*{box-sizing:border-box;letter-spacing:0}html{min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0;color:var(--ink);background:var(--background)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.58}.is-spinning{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}.page-width{width:min(100% - 40px,1040px);margin-inline:auto}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 14px;color:#fff;background:var(--blue-900);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.brand-mark{display:grid;flex:0 0 44px;width:44px;height:44px;place-items:center;border-radius:6px;color:#fff;background:var(--blue-700)}.brand-mark svg{width:26px;height:26px;stroke-width:1.8}.brand-mark--large{width:54px;height:54px;margin-bottom:24px}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:9px;padding:10px 18px;border:1px solid transparent;border-radius:6px;color:var(--ink);background:var(--surface);font-weight:700;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.button svg{width:19px;height:19px}.button:focus-visible,.icon-button:focus-visible,input:focus-visible{outline:3px solid rgba(7,90,156,.22);outline-offset:2px}.button--primary{color:#fff;border-color:var(--blue-700);background:var(--blue-700);box-shadow:0 6px 16px #075a9c33}.button--primary:hover:not(:disabled){background:var(--blue-900)}.button--large{width:100%;min-height:54px;font-size:17px}.button--quiet{border-color:var(--line);color:#3d4b56;background:#fff}.button--quiet:hover:not(:disabled){background:#edf2f5}.button--danger{color:#fff;background:var(--red-700)}.button--call{min-width:112px;color:#fff;background:var(--blue-700)}.button--recall{min-width:112px;color:var(--green-700);border-color:#98cbbb;background:#fff}.icon-button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:1px solid var(--line);border-radius:6px;color:#40515f;background:#fff}.icon-button:hover:not(:disabled){border-color:#a7bac7;background:#edf3f6}.icon-button svg{width:20px;height:20px}.patient-page{display:flex;min-height:100vh;flex-direction:column}.patient-header{border-bottom:1px solid var(--line);background:var(--surface)}.patient-header__inner{display:flex;min-height:82px;align-items:center;gap:14px}.organization,.department,.login-kicker,.success-kicker,.workspace-brand p{margin:0}.organization{color:var(--blue-900);font-size:17px;font-weight:800}.department{margin-top:3px;color:var(--muted);font-size:13px}.patient-main{display:grid;flex:1;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:clamp(48px,8vw,108px);align-items:center;padding-block:70px}.availability-badge{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border:1px solid #d8b765;border-radius:5px;color:var(--amber-700);background:var(--amber-100);font-size:13px;font-weight:800}.patient-intro h1{margin:22px 0 18px;color:var(--blue-900);font-size:52px;line-height:1.14}.intro-copy{max-width:390px;margin:0;color:var(--muted);font-size:18px;line-height:1.8}.checkin-panel{padding:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.rules{display:grid;gap:1px;margin-bottom:28px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--line)}.rule{display:flex;min-height:54px;align-items:center;gap:12px;padding:12px 14px;color:#3c4c58;background:#f9fbfc;font-size:14px;line-height:1.55}.rule svg{flex:0 0 20px;width:20px;height:20px;color:var(--blue-700)}.rule--important{color:#7a322d;background:var(--red-100);font-weight:700}.rule--important svg{color:var(--red-700)}label{display:block;margin-bottom:9px;color:#2e3b45;font-size:15px;font-weight:800}.input-wrap{position:relative}.input-wrap>svg{position:absolute;top:50%;left:16px;width:20px;height:20px;color:#7a8994;transform:translateY(-50%);pointer-events:none}.input-wrap input,.date-control input{width:100%;min-height:52px;border:1px solid #bac7d0;border-radius:6px;color:var(--ink);background:#fff}.input-wrap input{padding:12px 16px 12px 48px;font-size:17px}.input-wrap input::placeholder{color:#8a98a3}.input-wrap input[aria-invalid=true]{border-color:var(--red-700);background:snow}.form-message{min-height:22px;margin:8px 0 11px;color:var(--red-700);font-size:14px;line-height:1.5}.patient-footer{padding:20px;border-top:1px solid var(--line);color:#74838e;background:#fff;text-align:center;font-size:12px}.success-page{display:grid;min-height:100vh;place-items:center;background:#f1f7f4}.success-main{max-width:560px;padding-block:48px;text-align:center}.success-symbol{display:grid;width:74px;height:74px;margin:0 auto 24px;place-items:center;border-radius:50%;color:var(--green-700);background:var(--green-100)}.success-symbol svg{width:42px;height:42px;stroke-width:1.8}.success-kicker,.login-kicker{color:var(--blue-700);font-size:14px;font-weight:800}.success-main h1{margin:10px 0 8px;color:#155c4b;font-size:38px}.success-lead{margin:0 0 32px;color:var(--muted);font-size:17px}.receipt{margin:0;border-block:1px solid #cfded7}.receipt>div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:18px 4px;text-align:left}.receipt>div+div{border-top:1px solid #dce7e2}.receipt dt{color:var(--muted);font-size:14px}.receipt dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:18px;font-weight:800}.waiting-notice{display:flex;align-items:center;gap:14px;margin-top:28px;padding:18px;border:1px solid #d8b765;border-radius:6px;color:#724c0b;background:var(--amber-100);text-align:left}.waiting-notice>svg{flex:0 0 26px;width:26px;height:26px}.waiting-notice p{margin:0}.waiting-notice strong,.waiting-notice span{display:block}.waiting-notice span{margin-top:4px;font-size:14px}.login-view{display:grid;min-height:100vh;place-items:center;padding:28px 20px;background:#eef3f6}.login-panel{width:min(100%,420px);padding:38px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.login-panel h1{margin:7px 0 32px;color:var(--blue-900);font-size:28px}.workspace-view{min-height:100vh}.workspace-header{position:sticky;z-index:20;top:0;border-bottom:1px solid var(--line);background:#fffffff7}.workspace-header__inner,.workspace-main{width:min(100% - 40px,1240px);margin-inline:auto}.workspace-header__inner{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:24px}.workspace-brand{display:flex;min-width:0;align-items:center;gap:13px}.workspace-brand p{color:var(--muted);font-size:12px}.workspace-brand h1{margin:3px 0 0;color:var(--blue-900);font-size:19px}.header-actions{display:flex;align-items:center;gap:8px}.workspace-main{padding-block:28px 56px}.queue-toolbar{display:grid;grid-template-columns:minmax(180px,250px) 1fr auto;gap:28px;align-items:end;padding-bottom:24px;border-bottom:1px solid var(--line)}.date-control label{margin-bottom:6px;font-size:13px}.date-control input{min-height:44px;padding:8px 12px}.queue-summary{display:flex;align-items:center;gap:42px}.queue-summary div{display:flex;align-items:baseline;gap:9px}.queue-summary strong{color:var(--blue-900);font-size:28px}.queue-summary span{color:var(--muted);font-size:13px}.sync-status{display:flex;min-height:44px;align-items:center;gap:7px;margin:0;color:var(--green-700);font-size:13px}.sync-status svg{width:17px;height:17px}.workspace-message{min-height:24px;margin:12px 0 0;color:var(--red-700);font-size:14px}.queue-section{margin-top:30px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.section-heading>div{display:flex;align-items:center;gap:10px}.section-heading h2{margin:0;color:#2a3741;font-size:18px}.status-dot{width:9px;height:9px;border-radius:50%}.status-dot--waiting{background:#d69421}.status-dot--called{background:var(--green-700)}.section-count{color:var(--muted);font-size:13px}.queue-list{display:grid;gap:8px}.queue-item{display:grid;min-height:76px;grid-template-columns:minmax(160px,1fr) minmax(190px,.8fr) minmax(100px,.55fr) auto;gap:24px;align-items:center;padding:13px 16px 13px 20px;border:1px solid var(--line);border-left:4px solid #d69421;border-radius:6px;background:#fff}.queue-item--called{border-left-color:var(--green-700)}.patient-name{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:19px;font-weight:800}.patient-meta,.call-meta{margin:3px 0 0;color:var(--muted);font-size:12px}.queue-time{color:#465561;font-size:14px}.queue-time span{display:block}.queue-status{color:var(--amber-700);font-size:14px;font-weight:700}.queue-item--called .queue-status{color:var(--green-700)}.row-actions{display:flex;align-items:center;gap:8px}.remove-button{color:#7d4b4b}.empty-state{display:flex;min-height:112px;align-items:center;justify-content:center;gap:10px;border:1px dashed #c5d0d7;border-radius:6px;color:#71808b;background:#ffffff80;font-size:14px}.empty-state svg{width:20px;height:20px}.confirm-dialog{width:min(calc(100% - 32px),420px);padding:0;border:0;border-radius:8px;color:var(--ink);background:#fff;box-shadow:0 24px 60px #14222c3d}.confirm-dialog::backdrop{background:#0f1c268a}.confirm-dialog form{padding:28px}.dialog-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;color:var(--red-700);background:var(--red-100)}.dialog-icon svg{width:22px;height:22px}.confirm-dialog h2{margin:18px 0 8px;font-size:20px}.confirm-dialog p{margin:0;color:var(--muted);line-height:1.7}.confirm-dialog strong{color:var(--ink)}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:26px}@media(max-width:820px){.patient-main{grid-template-columns:1fr;gap:34px;align-items:start;padding-block:40px 54px}.patient-intro h1{margin-top:16px;font-size:42px}.intro-copy{font-size:16px}.queue-toolbar{grid-template-columns:1fr auto}.sync-status{grid-column:1 / -1}.queue-item{grid-template-columns:minmax(130px,1fr) minmax(150px,.8fr) auto;gap:16px}.queue-status{display:none}}@media(max-width:600px){.page-width,.workspace-header__inner,.workspace-main{width:min(100% - 28px,1040px)}.patient-header__inner{min-height:74px}.organization{font-size:15px}.patient-main{padding-block:30px 42px}.patient-intro h1{font-size:36px}.checkin-panel{padding:20px}.rule{align-items:flex-start}.success-main{padding-block:34px}.success-main h1{font-size:32px}.receipt>div{grid-template-columns:82px 1fr;gap:12px}.login-panel{padding:28px 22px}.workspace-header__inner{min-height:70px}.workspace-brand p,.header-actions .button span{display:none}.workspace-brand h1{font-size:16px}.header-actions .button{width:44px;padding:0}.brand-mark{flex-basis:40px;width:40px;height:40px}.queue-toolbar{grid-template-columns:1fr;gap:18px;align-items:start}.queue-summary{justify-content:space-between;gap:18px}.queue-summary strong{font-size:24px}.sync-status{grid-column:auto;min-height:auto}.queue-section{margin-top:26px}.queue-item{grid-template-columns:minmax(0,1fr) auto;gap:11px 14px;padding:15px 13px}.queue-time{grid-column:1;grid-row:2;font-size:13px}.row-actions{grid-column:2;grid-row:1 / 3}.button--call,.button--recall{min-width:90px;padding-inline:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
