[hidden]{display:none!important}:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#18324a;background:#f3f7fa;font-synthesis:none;--blue:#2878d4;--ink:#18324a;--muted:#6f8192;--line:#dfe8ef;--soft:#edf6ff;--green:#2f9673}*{box-sizing:border-box}body{margin:0;min-width:1120px;background:#f3f7fa}button,input,select,textarea{font:inherit}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700}.brand small{padding:4px 8px;border-radius:7px;background:#e9f4ff;color:var(--blue);font-size:11px}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:11px;background:var(--blue);color:#fff}.eyebrow{margin:0 0 10px;color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.login-shell{display:grid;min-height:100vh;grid-template-columns:1.25fr .75fr;background:linear-gradient(135deg,#eaf5ff,#f7fbff 58%,#ecf8f4)}.login-intro{display:flex;padding:8vh 9vw;flex-direction:column;justify-content:center}.login-intro .brand{position:absolute;top:42px}.login-intro h1{margin:0;max-width:720px;font-size:58px;line-height:1.16;letter-spacing:-.04em}.login-lead{max-width:650px;margin:28px 0;color:var(--muted);font-size:19px;line-height:1.8}.feature-row{display:flex;gap:12px}.feature-row span{padding:9px 14px;border:1px solid #cce1f1;border-radius:99px;background:#fff;color:#456176;font-size:13px}.login-card{display:flex;margin:7vh 6vw 7vh 0;align-items:center;justify-content:center;border:1px solid rgba(210,225,236,.8);border-radius:30px;background:rgba(255,255,255,.88);box-shadow:0 24px 70px rgba(35,74,107,.13)}#qrPanel{text-align:center}#qrPanel h2{margin:0;font-size:25px}#qrPanel p{max-width:320px;color:var(--muted);line-height:1.7}.login-state{color:var(--muted)}.qr-frame{display:inline-grid;margin:22px 0 15px;padding:14px;place-items:center;border:1px solid var(--line);border-radius:22px;background:#fff}.qr-frame img{display:block;width:236px;height:236px}.qr-status{color:var(--green);font-size:14px}.text-button{margin-top:16px;border:0;background:none;color:var(--blue);cursor:pointer}.app-shell{min-height:100vh}.topbar{display:flex;height:66px;padding:0 28px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff}.topbar-actions{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:13px}.workspace{display:grid;height:calc(100vh - 66px);grid-template-columns:310px 1fr}.sidebar{overflow:auto;padding:26px 20px;border-right:1px solid var(--line);background:#fff}.sidebar-head{display:flex;align-items:flex-end;justify-content:space-between}.sidebar h2{margin:0;font-size:24px}.search-box{display:flex;margin:22px 0 15px;padding:0 13px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.search-box input{width:100%;height:42px;border:0;outline:0;background:transparent}.patient-list{display:flex;flex-direction:column;gap:7px}.patient-card{padding:14px;border:1px solid transparent;border-radius:13px;cursor:pointer}.patient-card:hover,.patient-card.active{border-color:#cfe4f6;background:#edf7ff}.patient-card strong{display:block;margin-bottom:5px}.patient-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.content{overflow:auto;padding:34px 42px 110px}.empty-state{display:flex;height:70vh;align-items:center;justify-content:center;flex-direction:column;text-align:center}.empty-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:22px;background:#e9f5ff;color:var(--blue);font-size:32px}.empty-state h2{margin:18px 0 4px}.empty-state p{margin:0 0 24px;color:var(--muted)}.content-head{display:flex;margin-bottom:24px;align-items:center;justify-content:space-between}.content-head h1{margin:0;font-size:30px}.step-indicator{display:flex;align-items:center;gap:10px;color:#93a1ae;font-size:12px}.step-indicator span.active{color:var(--blue);font-weight:700}.step-indicator i{width:28px;height:1px;background:#ccd8e1}.panel{margin-bottom:18px;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 24px rgba(39,72,101,.04)}.panel-title{display:flex;margin-bottom:20px;align-items:flex-start;justify-content:space-between}.panel-title h3{margin:0 0 6px;font-size:18px}.panel-title p{margin:0;color:var(--muted);font-size:13px}.upload-panel{border-color:#cfe1ee;background:linear-gradient(135deg,#fff,#f7fbff)}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.drop-zone{display:flex;min-height:115px;padding:22px;align-items:center;justify-content:center;flex-direction:column;border:1.5px dashed #9abbd3;border-radius:14px;background:#f5faff;cursor:pointer}.drop-zone.optional{border-color:#b8c9d5;background:#fafcfd}.drop-zone span{margin-top:8px;color:var(--muted);font-size:12px}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.file-summary{margin-top:12px;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid label>span{display:block;margin-bottom:8px;color:#53697c;font-size:12px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:10px 12px;border:1px solid #d8e2e9;border-radius:9px;outline:none;background:#fff}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#6da9dc;box-shadow:0 0 0 3px #e6f3ff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{padding:8px;color:#748696;font-size:11px;font-weight:600;text-align:left}td{padding:6px}td input,td select{width:100%;min-width:90px;padding:9px;border:1px solid #dbe4ea;border-radius:8px}.row-remove{border:0;background:none;color:#a0acb5;cursor:pointer}.check-row{display:flex;margin-top:15px;align-items:center;gap:8px;color:#53697c;font-size:13px}.submit-bar{position:fixed;right:0;bottom:0;left:310px;z-index:5;display:flex;height:78px;padding:0 42px;align-items:center;justify-content:flex-end;gap:24px;border-top:1px solid var(--line);background:rgba(255,255,255,.95);backdrop-filter:blur(14px)}.submit-bar span{color:var(--muted);font-size:13px}.primary-button,.ghost-button{display:inline-flex;min-height:38px;padding:0 17px;align-items:center;justify-content:center;border-radius:10px;cursor:pointer;text-decoration:none}.primary-button{border:1px solid var(--blue);background:var(--blue);color:#fff}.primary-button:hover{background:#1f69bd}.primary-button:disabled{opacity:.55;cursor:wait}.primary-button.compact{min-height:34px;padding:0 12px;font-size:12px}.primary-button.large{min-height:46px;padding:0 25px}.ghost-button{border:1px solid #d6e1e9;background:#fff;color:#486175}.report-actions{display:flex;gap:10px}.report-frame{height:calc(100vh - 160px);padding:12px;border:1px solid var(--line);border-radius:18px;background:#dce5eb}.report-frame iframe{width:100%;height:100%;border:0;border-radius:10px;background:#fff}.toast{position:fixed;right:28px;bottom:28px;z-index:20;max-width:420px;padding:14px 18px;border-radius:12px;background:#17324d;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.2);font-size:13px}@media(max-width:1200px){.content{padding-right:26px;padding-left:26px}.form-grid{grid-template-columns:repeat(3,1fr)}}

.patient-profile{display:flex;align-items:center;gap:24px}.patient-avatar{display:grid;width:70px;height:70px;flex:0 0 70px;place-items:center;border-radius:22px;background:linear-gradient(135deg,#2878d4,#51a4e9);color:#fff;font-size:26px;font-weight:700}.profile-fields{display:grid;width:100%;grid-template-columns:repeat(4,1fr);gap:22px}.profile-fields span,.detail-field span{display:block;margin-bottom:7px;color:var(--muted);font-size:12px}.profile-fields strong{font-size:15px}.artifact-toolbar{display:flex;margin:30px 0 14px;align-items:flex-end;justify-content:space-between}.artifact-toolbar h2{margin:0 0 6px}.artifact-toolbar p{margin:0;color:var(--muted);font-size:13px}.artifact-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}.artifact-section{margin:0;padding:0;overflow:hidden}.artifact-heading{display:flex;padding:20px 22px 14px;align-items:center;gap:10px}.artifact-heading h3{margin:0;font-size:17px}.artifact-heading small{margin-left:auto;color:var(--muted)}.artifact-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:var(--soft);color:var(--blue);font-size:11px;font-weight:700}.artifact-row{display:flex;width:100%;padding:15px 22px;align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.artifact-row:hover{background:#f8fbfd}.artifact-main{display:block;min-width:0;flex:1}.artifact-main b,.artifact-main small{display:block}.artifact-main small{overflow:hidden;margin-top:5px;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.artifact-row em{padding:4px 8px;border-radius:99px;background:#edf7f2;color:var(--green);font-size:11px;font-style:normal}.artifact-row i{color:#9aabb8;font-size:24px;font-style:normal}.artifact-empty{margin:0;padding:20px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.detail-field p{margin:0;white-space:pre-wrap;line-height:1.65}.simulation-images{display:grid;grid-template-columns:1fr 1fr;gap:18px}.simulation-images figure{margin:0}.simulation-images img{display:block;width:100%;max-height:420px;object-fit:contain;border-radius:14px;background:#eef3f6}.simulation-images figcaption{margin-top:9px;color:var(--muted);text-align:center}.disclaimer{color:var(--muted);font-size:12px;line-height:1.7}.estimate-total{padding:20px 6px 0;text-align:right}.estimate-total b{margin-left:15px;color:var(--blue);font-size:24px}.editor-steps{display:grid;margin:0 0 18px;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}.editor-steps button{padding:15px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer}.editor-steps button:last-child{border:0}.editor-steps button.active{background:#edf6ff;color:var(--blue);font-weight:700}.editor-steps b{display:inline-grid;width:23px;height:23px;margin-right:7px;place-items:center;border-radius:50%;background:#edf1f5}.editor-steps button.active b{background:var(--blue);color:#fff}.form-grid.three{grid-template-columns:repeat(3,1fr)}.treatment-cards{display:flex;flex-direction:column;gap:14px}.treatment-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.treatment-card-head{display:flex;margin-bottom:15px;align-items:center;justify-content:space-between}.treatment-card .form-grid input,.treatment-card .form-grid select,.wide-field textarea{width:100%;padding:10px 12px;border:1px solid #d8e2e9;border-radius:9px;background:#fff}.wide-field{display:block;margin-top:14px}.wide-field>span{display:block;margin-bottom:8px;color:#53697c;font-size:12px}.billing-summary{margin-top:18px;padding:18px;border-radius:14px;background:#f4f8fb}.billing-summary h3{margin:0 0 15px}.muted-line{margin:12px 0 0;color:var(--muted);font-size:13px;text-align:right}.case-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.case-option{display:flex;padding:16px;gap:12px;border:1px solid var(--line);border-radius:13px;cursor:pointer}.case-option input{margin-top:3px}.case-option span,.case-option b,.case-option small{display:block}.case-option small{margin-top:6px;color:var(--muted);line-height:1.5}.share-result.panel{margin-top:18px}@media(max-width:1250px){.artifact-groups{grid-template-columns:1fr}.profile-fields{grid-template-columns:1fr 1fr}.case-options{grid-template-columns:1fr}}

.assistant-view{display:flex;height:calc(100vh - 135px);min-height:620px;flex-direction:column;border:1px solid var(--line);border-radius:20px;background:#f5f8fb;overflow:hidden;box-shadow:0 8px 30px rgba(39,72,101,.06)}.assistant-header{display:grid;padding:16px 20px;grid-template-columns:150px 1fr 280px;align-items:center;border-bottom:1px solid var(--line);background:#fff}.assistant-title{display:flex;align-items:center;justify-content:center;gap:11px}.assistant-title img{width:42px;height:42px;border-radius:12px}.assistant-title p{margin:0;font-weight:700}.assistant-title p em{margin-left:5px;padding:2px 6px;border-radius:6px;background:#e9f4ff;color:var(--blue);font-size:10px;font-style:normal}.assistant-title span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.assistant-patient-badge{display:flex;justify-content:flex-end;align-items:center;gap:10px}.assistant-patient-badge>b{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;background:var(--blue);color:#fff}.assistant-patient-badge span,.assistant-patient-badge strong,.assistant-patient-badge small{display:block}.assistant-patient-badge small{margin-top:3px;color:var(--muted);font-size:11px}.assistant-scope{padding:8px;text-align:center;background:#edf6ff;color:#59758c;font-size:11px}.assistant-messages{flex:1;overflow:auto;padding:28px max(32px,calc((100% - 820px)/2))}.assistant-message{display:flex;margin:0 0 22px;align-items:flex-start;gap:10px}.assistant-message.user{justify-content:flex-end}.assistant-message>img{width:34px;height:34px;border-radius:10px}.assistant-message>div{max-width:72%}.assistant-bubble{padding:13px 16px;border:1px solid var(--line);border-radius:5px 16px 16px;background:#fff;line-height:1.7;font-size:14px}.assistant-message.user .assistant-bubble{border-color:var(--blue);border-radius:16px 5px 16px 16px;background:var(--blue);color:#fff}.assistant-message.failed .assistant-bubble{border-color:#e4bcbc;background:#fff5f5}.assistant-message-actions{margin:6px 4px 0}.assistant-message-actions button{margin-right:10px;padding:0;border:0;background:none;color:#8798a7;font-size:11px;cursor:pointer}.assistant-thinking{display:flex;gap:5px}.assistant-thinking i{width:7px;height:7px;border-radius:50%;background:#8ba3b6;animation:assistantPulse 1s infinite}.assistant-thinking i:nth-child(2){animation-delay:.15s}.assistant-thinking i:nth-child(3){animation-delay:.3s}@keyframes assistantPulse{50%{opacity:.25;transform:translateY(-2px)}}.assistant-starters{display:grid;padding:0 max(32px,calc((100% - 820px)/2)) 15px;grid-template-columns:1fr 1fr;gap:8px}.assistant-starters p{grid-column:1/-1;margin:0 0 4px;color:var(--muted);font-size:12px}.assistant-starters button{display:flex;padding:11px 13px;justify-content:space-between;border:1px solid var(--line);border-radius:11px;background:#fff;color:#476176;cursor:pointer}.assistant-composer-wrap{padding:12px max(32px,calc((100% - 820px)/2)) 14px;border-top:1px solid var(--line);background:#fff}.assistant-materials{display:flex;margin-bottom:10px;align-items:center;gap:8px}.assistant-materials>span{margin-right:3px;color:var(--muted);font-size:12px}.assistant-materials button{display:flex;padding:6px 10px;align-items:center;gap:5px;border:1px solid #cfe1ee;border-radius:99px;background:#f7fbff;color:#456176;cursor:pointer}.assistant-materials button b{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:#e4f2ff;color:var(--blue);font-size:10px}.assistant-composer{display:flex;align-items:flex-end;gap:10px}.assistant-composer textarea{width:100%;max-height:120px;padding:12px 14px;resize:none;border:1px solid #cddbe5;border-radius:13px;outline:none}.assistant-composer textarea:focus{border-color:#6da9dc;box-shadow:0 0 0 3px #e6f3ff}.assistant-composer-wrap>p{margin:8px 0 0;color:#9aa8b4;font-size:10px;text-align:center}@media(max-width:1250px){.assistant-header{grid-template-columns:120px 1fr 240px}.assistant-messages,.assistant-starters,.assistant-composer-wrap{padding-right:30px;padding-left:30px}}

/* PC health-report parity v256 */
.topbar-actions{display:flex;align-items:center;gap:14px}.topbar-actions .primary-button{white-space:nowrap}.sidebar-head{min-height:42px}.sidebar-head h2{margin:4px 0 0}.search-icon{position:relative;width:18px;height:18px;flex:0 0 18px}.search-icon:before{content:"";position:absolute;left:1px;top:1px;width:10px;height:10px;border:2px solid #7890a3;border-radius:50%}.search-icon:after{content:"";position:absolute;left:12px;top:12px;width:6px;height:2px;border-radius:2px;background:#7890a3;transform:rotate(45deg);transform-origin:left center}.secondary-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px}.secondary-head .back-button{justify-self:start}.creation-tabs{display:inline-grid;margin-bottom:16px;padding:4px;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:13px;background:#fff}.creation-tabs button{min-width:150px;padding:10px 18px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.creation-tabs button.active{background:var(--blue);color:#fff;font-weight:700;box-shadow:0 4px 10px rgba(40,120,212,.18)}.ai-description{display:block;margin-bottom:18px}.ai-description>span{display:block;margin-bottom:8px;color:#53697c;font-size:12px}.ai-description textarea{width:100%;padding:12px 14px;resize:vertical;border:1px solid #d8e2e9;border-radius:11px;background:#fff;line-height:1.6}.patient-choice{grid-column:1/-1}.tooth-field{display:flex;align-items:stretch}.tooth-field input{min-width:0;border-radius:9px 0 0 9px!important}.tooth-select-button{padding:0 12px;border:1px solid #cbdce9;border-left:0;border-radius:0 9px 9px 0;background:#edf6ff;color:var(--blue);white-space:nowrap;cursor:pointer}.case-options{display:block}.case-group{margin-bottom:22px}.case-group>h4{display:flex;margin:0 0 10px;align-items:center;gap:8px}.case-group>h4 small{display:inline-grid;min-width:22px;height:22px;place-items:center;border-radius:99px;background:#edf1f5;color:var(--muted);font-weight:500}.case-group .case-option{display:grid;margin-bottom:9px;grid-template-columns:auto 1fr auto;align-items:start}.case-option.selected{border-color:#8bbce4;background:#f3f9ff}.case-option em{align-self:center;padding:4px 9px;border-radius:99px;background:#edf1f5;color:#6f8192;font-size:11px;font-style:normal}.case-option.selected em{background:#dff0ff;color:var(--blue)}.attachment-block{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.attachment-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.attachment-head h4{margin:0 0 5px}.attachment-head p{margin:0;color:var(--muted);font-size:12px}.upload-button{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.attachment-list{display:grid;margin-top:15px;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.attachment-list>.artifact-empty{grid-column:1/-1;border:1px dashed #ccdbe6;border-radius:11px;text-align:center}.attachment-item{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#f7fafc}.attachment-item img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}.attachment-item figcaption{overflow:hidden;padding:8px 9px;color:#53697c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.attachment-item button{position:absolute;top:6px;right:6px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(18,38,54,.78);color:#fff;cursor:pointer}.material-upload{display:flex;align-items:center;gap:8px}.material-upload select{height:38px;padding:0 9px;border:1px solid #d8e2e9;border-radius:9px;background:#fff}.modal-backdrop{position:fixed;z-index:1000;inset:0;display:grid;padding:24px;place-items:center;background:rgba(17,37,53,.45);backdrop-filter:blur(3px)}.modal-backdrop[hidden]{display:none}.tooth-picker{width:min(720px,100%);padding:24px;border-radius:20px;background:#fff;box-shadow:0 24px 80px rgba(14,35,52,.25)}.tooth-picker-head{display:flex;align-items:flex-start;justify-content:space-between}.tooth-picker-head h2{margin:3px 0 18px}.dentition-tabs{display:grid;padding:4px;grid-template-columns:1fr 1fr;border-radius:12px;background:#eff4f7}.dentition-tabs button{padding:9px;border:0;border-radius:9px;background:transparent;color:#667b8c;cursor:pointer}.dentition-tabs button.active{background:#fff;color:var(--blue);font-weight:700;box-shadow:0 2px 8px rgba(38,67,89,.1)}.whole-mouth{width:100%;margin:14px 0 10px;padding:10px;border:1px solid #cbdce9;border-radius:10px;background:#f7fbff;color:#4f6d83;cursor:pointer}.whole-mouth.selected{border-color:var(--blue);background:var(--blue);color:#fff}.tooth-quadrants{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tooth-quadrant{padding:12px;border:1px solid var(--line);border-radius:12px}.tooth-quadrant>span{display:block;margin-bottom:9px;color:#6f8192;font-size:11px}.tooth-quadrant>div{display:flex;flex-wrap:wrap;gap:6px}.tooth-quadrant button{width:32px;height:32px;border:1px solid #cad8e2;border-radius:50%;background:#fff;color:#455d70;cursor:pointer}.tooth-quadrant button.selected{border-color:var(--blue);background:var(--blue);color:#fff}.tooth-picker-actions{display:flex;margin-top:18px;align-items:center;justify-content:space-between;gap:16px}.tooth-picker-actions span{color:#5d7486;font-size:13px}@media(max-width:1100px){.attachment-list{grid-template-columns:repeat(3,1fr)}.secondary-head{grid-template-columns:auto 1fr}.secondary-head .report-actions{grid-column:1/-1;justify-content:flex-end}}

/* Patient workspace with persistent assistant v257 */
.artifact-empty-row{display:flex;min-height:76px;padding:16px 20px;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line)}.artifact-empty-row p{margin:0;color:var(--muted);font-size:13px}.content.assistant-docked{display:grid;grid-template-columns:minmax(540px,1fr) minmax(360px,420px);align-items:start;gap:18px;padding:24px 24px 80px}.content.assistant-docked #patientView{min-width:0}.content.assistant-docked #openPatientAssistant{display:none}.content.assistant-docked .artifact-groups{grid-template-columns:1fr}.content.assistant-docked .profile-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.content.assistant-docked .assistant-view{position:sticky;top:0;height:calc(100vh - 110px);min-height:580px;border-radius:18px}.content.assistant-docked .assistant-header{padding:13px 14px;grid-template-columns:auto minmax(0,1fr);gap:10px}.content.assistant-docked .assistant-header>#backFromAssistant{grid-column:1}.content.assistant-docked .assistant-title{grid-column:2;justify-content:flex-start}.content.assistant-docked .assistant-title img{width:36px;height:36px}.content.assistant-docked .assistant-patient-badge{grid-column:1/-1;padding-top:10px;justify-content:flex-start;border-top:1px solid var(--line)}.content.assistant-docked .assistant-patient-badge>b{width:32px;height:32px}.content.assistant-docked .assistant-messages{padding:18px 14px}.content.assistant-docked .assistant-message>div{max-width:84%}.content.assistant-docked .assistant-bubble{padding:11px 13px;font-size:13px}.content.assistant-docked .assistant-starters{padding:0 14px 12px;grid-template-columns:1fr}.content.assistant-docked .assistant-composer-wrap{padding:10px 12px 12px}.content.assistant-docked .assistant-materials{overflow-x:auto}.content.assistant-docked .assistant-materials button{flex:0 0 auto}.content.assistant-docked .assistant-composer{align-items:stretch;flex-direction:column}.content.assistant-docked .assistant-composer button{align-self:flex-end}@media(max-width:1250px){.content.assistant-docked{grid-template-columns:minmax(460px,1fr) 350px;padding-right:18px;padding-left:18px}.content.assistant-docked .profile-fields{grid-template-columns:1fr}.content.assistant-docked .content-head{align-items:flex-start;gap:12px}}

/* Branded login experience v258 */
.login-brand-page{--login-blue:#2f80ed;--login-blue-dark:#1459b8;--login-green:#2fc59f;--login-ink:#1d2a3a;--login-muted:#647287;--login-line:#dfe8f3;position:relative;display:block;min-height:100vh;overflow:hidden;color:var(--login-ink);background:linear-gradient(112deg,rgba(255,255,255,.98) 0%,rgba(248,251,255,.97) 52%,rgba(232,244,255,.95) 100%),radial-gradient(circle at 80% 20%,#d5eaff,transparent 36%)}.login-brand-page:before{content:"";position:absolute;inset:0;opacity:.42;background-image:radial-gradient(rgba(47,128,237,.18) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to right,transparent,#000 58%,#000)}.login-orb{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}.login-orb-one{top:-180px;right:6%;width:520px;height:520px;background:radial-gradient(circle,rgba(91,156,241,.2),rgba(91,156,241,0) 70%)}.login-orb-two{bottom:-200px;left:18%;width:430px;height:430px;background:radial-gradient(circle,rgba(47,197,159,.13),rgba(47,197,159,0) 70%)}.login-nav{position:relative;z-index:2;display:flex;width:min(1240px,calc(100% - 80px));height:88px;margin:0 auto;align-items:center;justify-content:space-between}.login-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.login-brand .brand-logo{width:42px;height:42px;border-radius:12px;box-shadow:0 8px 20px rgba(47,128,237,.22)}.login-brand span,.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:18px;letter-spacing:.08em}.login-brand small{margin-top:3px;color:#75849a;font-size:9px;letter-spacing:.02em}.login-product-label{padding:9px 14px;border:1px solid rgba(47,128,237,.16);border-radius:999px;background:rgba(255,255,255,.72);color:#52667e;font-size:12px;backdrop-filter:blur(12px)}.login-stage{position:relative;z-index:2;display:grid;width:min(1240px,calc(100% - 80px));min-height:700px;margin:8px auto 0;grid-template-columns:minmax(0,1fr) 390px;align-items:center;gap:70px}.login-hero-copy{min-width:0;padding:34px 0}.login-eyebrow{display:inline-flex;margin-bottom:20px;padding:8px 13px;align-items:center;gap:8px;border:1px solid rgba(47,128,237,.16);border-radius:999px;background:rgba(255,255,255,.74);color:var(--login-blue-dark);font-size:12px;font-weight:700;letter-spacing:.08em}.login-eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--login-green);box-shadow:0 0 0 5px rgba(47,197,159,.12)}.login-hero-copy h1{margin:0;max-width:760px;color:var(--login-ink);font-size:54px;line-height:1.14;letter-spacing:-.045em}.login-hero-copy h1 em{color:var(--login-blue);font-style:normal}.login-brand-page .login-lead{max-width:720px;margin:21px 0 23px;color:var(--login-muted);font-size:17px;line-height:1.75}.login-capabilities{display:grid;max-width:760px;margin-bottom:25px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.login-capabilities article{display:flex;min-width:0;padding:13px 14px;align-items:center;gap:11px;border:1px solid rgba(223,232,243,.95);border-radius:15px;background:rgba(255,255,255,.82);box-shadow:0 10px 28px rgba(29,69,122,.055);backdrop-filter:blur(12px)}.login-capabilities article>div,.login-capabilities b,.login-capabilities small{display:block;min-width:0}.login-capabilities b{font-size:13px}.login-capabilities small{overflow:hidden;margin-top:4px;color:#75849a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.capability-icon{position:relative;display:block;width:36px;height:36px;flex:0 0 36px;border-radius:11px;background:#eaf3ff;color:var(--login-blue)}.patients-icon i{position:absolute;border:2px solid currentColor;border-radius:50%}.patients-icon i:first-child{top:8px;left:8px;width:9px;height:9px}.patients-icon i:last-child{right:7px;bottom:7px;width:13px;height:9px;border-radius:8px 8px 5px 5px}.report-icon i{position:absolute;inset:7px 9px;border:2px solid currentColor;border-radius:3px}.report-icon i:before,.report-icon i:after{content:"";position:absolute;left:3px;width:8px;height:2px;border-radius:2px;background:currentColor}.report-icon i:before{top:5px}.report-icon i:after{top:10px}.assistant-icon{background:#e9f9f5;color:#209d7e}.assistant-icon i{position:absolute;bottom:10px;width:4px;height:4px;border-radius:50%;background:currentColor}.assistant-icon i:first-child{left:9px}.assistant-icon i:nth-child(2){left:16px}.assistant-icon i:last-child{left:23px}.assistant-icon:before{content:"";position:absolute;inset:7px 6px 8px;border:2px solid currentColor;border-radius:9px}.login-product-preview{max-width:790px;overflow:hidden;border:1px solid rgba(207,223,237,.95);border-radius:22px;background:rgba(255,255,255,.9);box-shadow:0 24px 70px rgba(29,69,122,.13);transform:perspective(1200px) rotateX(1deg);transform-origin:center bottom}.preview-bar{display:grid;height:42px;padding:0 15px;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #e5edf5;background:#fbfdff;color:#61748a;font-size:10px}.preview-bar>span{display:flex;gap:5px}.preview-bar>span i{width:7px;height:7px;border-radius:50%;background:#cbd8e3}.preview-bar>span i:first-child{background:#ff9f91}.preview-bar>span i:nth-child(2){background:#ffd272}.preview-bar>span i:last-child{background:#79d6b8}.preview-bar b{font-size:10px}.preview-bar em{justify-self:end;font-style:normal}.preview-body{display:grid;height:245px;grid-template-columns:145px minmax(250px,1fr) 220px;background:#f6f9fd}.preview-patients{padding:14px 11px;border-right:1px solid #e2ebf3;background:#fff}.preview-patients>strong{display:block;margin-bottom:10px;font-size:11px}.preview-search{height:23px;margin-bottom:9px;border:1px solid #e0e8ef;border-radius:7px;background:#f8fafc}.preview-patients>span{display:flex;margin-bottom:5px;padding:7px;align-items:center;gap:7px;border-radius:8px}.preview-patients>span.active{background:#edf6ff}.preview-patients>span>i{display:grid;width:23px;height:23px;flex:0 0 23px;place-items:center;border-radius:7px;background:#dceeff;color:var(--login-blue);font-size:9px;font-style:normal}.preview-patients>span>b,.preview-patients>span small{display:block}.preview-patients>span>b{font-size:9px}.preview-patients>span small{margin-top:2px;color:#8797a7;font-size:7px;font-weight:400}.preview-report{padding:17px}.preview-report>small{color:var(--login-blue);font-size:7px;font-weight:700;letter-spacing:.12em}.preview-report h3{margin:3px 0 10px;font-size:17px}.preview-profile{display:flex;margin-bottom:11px;gap:6px}.preview-profile span{width:54px;height:19px;border-radius:5px;background:#e9eef3}.preview-report-card{display:flex;margin-bottom:7px;padding:10px;align-items:center;gap:9px;border:1px solid #dfe8f3;border-radius:9px;background:#fff}.preview-report-card>i{display:grid;width:29px;height:29px;flex:0 0 29px;place-items:center;border-radius:8px;background:#eaf3ff;color:var(--login-blue);font-size:7px;font-style:normal}.preview-report-card>div{min-width:0;flex:1}.preview-report-card b,.preview-report-card small{display:block}.preview-report-card b{font-size:9px}.preview-report-card small{margin-top:3px;color:#8494a5;font-size:7px}.preview-report-card>em{padding:3px 5px;border-radius:99px;background:#e7f8f2;color:#209d7e;font-size:7px;font-style:normal}.preview-report-card.muted{opacity:.82}.preview-chat{display:flex;padding:14px 12px 11px;flex-direction:column;border-left:1px solid #dfe8f3;background:#f8fafc}.preview-chat-title{display:flex;padding-bottom:10px;align-items:center;gap:7px;border-bottom:1px solid #e3ebf2}.preview-chat-title img{width:26px;height:26px;border-radius:8px}.preview-chat-title span,.preview-chat-title b,.preview-chat-title small{display:block}.preview-chat-title b{font-size:9px}.preview-chat-title small{margin-top:2px;color:#8494a5;font-size:7px}.preview-chat p{margin:12px 0 8px;padding:8px;border:1px solid #e1e9f0;border-radius:4px 9px 9px;background:#fff;color:#52677b;font-size:8px;line-height:1.5}.preview-question{align-self:flex-end;padding:7px 8px;border-radius:9px 4px 9px 9px;background:var(--login-blue);color:#fff;font-size:7px}.preview-composer{display:flex;margin-top:auto;padding:6px 7px;align-items:center;justify-content:space-between;border:1px solid #dce5ed;border-radius:7px;background:#fff;color:#9aa8b5;font-size:7px}.preview-composer b{padding:4px 6px;border-radius:5px;background:var(--login-blue);color:#fff}.login-brand-page .login-card{position:relative;display:flex;min-height:610px;margin:0;padding:38px 34px 30px;align-items:center;justify-content:flex-start;flex-direction:column;border:1px solid rgba(210,225,236,.9);border-radius:28px;background:rgba(255,255,255,.91);box-shadow:0 24px 80px rgba(29,69,122,.14);backdrop-filter:blur(22px);text-align:center}.login-card-badge{position:absolute;top:18px;right:18px;padding:6px 9px;border-radius:999px;background:#e9f9f5;color:#209d7e;font-size:9px;font-weight:700}.login-card-logo{width:52px;height:52px;margin-top:9px;border-radius:15px;box-shadow:0 10px 25px rgba(47,128,237,.22)}.login-brand-page .login-card h2{margin:14px 0 8px;font-size:24px}.login-card-lead{margin:0;color:var(--login-muted);font-size:13px;line-height:1.65}.login-brand-page .login-state{display:flex;min-height:280px;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#728399;font-size:13px}.login-brand-page .login-state small{color:#9aa8b5}.login-spinner{width:30px;height:30px;border:3px solid #dfebf7;border-top-color:var(--login-blue);border-radius:50%;animation:loginSpin .85s linear infinite}@keyframes loginSpin{to{transform:rotate(360deg)}}.login-qr-panel{width:100%;text-align:center}.login-brand-page .qr-frame{display:inline-grid;margin:17px 0 10px;padding:12px;place-items:center;border:1px solid #dfe8f3;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(29,69,122,.08)}.login-brand-page .qr-frame img{display:block;width:220px;height:220px}.login-brand-page .qr-status{color:#209d7e;font-size:13px;font-weight:600}.login-brand-page .text-button{margin-top:11px;color:var(--login-blue);font-size:12px}.login-card-note{display:flex;width:100%;margin-top:auto;padding:12px 13px;align-items:center;gap:10px;border-radius:12px;background:#f6f9fd;color:#74859a;text-align:left;font-size:10px;line-height:1.55}.login-card-note i{display:grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border-radius:50%;background:#e9f9f5;color:#209d7e;font-style:normal;font-weight:700}.login-footer{position:relative;z-index:2;display:flex;height:52px;align-items:center;justify-content:center;gap:15px;color:#718197;font-size:11px}.login-footer i{width:4px;height:4px;border-radius:50%;background:var(--login-green)}@media(max-width:1280px){.login-stage{width:calc(100% - 56px);grid-template-columns:minmax(0,1fr) 360px;gap:38px}.login-nav{width:calc(100% - 56px)}.login-hero-copy h1{font-size:47px}.login-capabilities small{display:none}.preview-body{grid-template-columns:125px minmax(230px,1fr) 190px}.login-brand-page .login-card{min-height:580px;padding-right:26px;padding-left:26px}.login-brand-page .qr-frame img{width:204px;height:204px}}@media(max-height:820px){.login-stage{min-height:620px;align-items:start}.login-hero-copy{padding-top:20px}.login-hero-copy h1{font-size:44px}.login-brand-page .login-lead{margin:15px 0;font-size:15px}.login-capabilities{margin-bottom:16px}.login-product-preview .preview-body{height:210px}.login-brand-page .login-card{min-height:565px}.login-footer{height:40px}}

/* Mini Program icon parity v259 */
.login-capabilities .capability-icon{display:grid;place-items:center;background:#eef6ff;color:#2f80ed}.login-capabilities .capability-icon img{display:block;width:28px;height:28px;object-fit:contain}

/* Align product preview with capability cards v260 */
.login-product-preview{width:100%;max-width:760px}


/* Searchable patient combobox v261 */
.patient-combobox{position:relative;z-index:12}
.patient-combobox>label{display:block}
.patient-combobox input[role="combobox"]{padding-right:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23758a9b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat right 12px center}
.patient-combobox input[aria-expanded="true"]{border-color:#6da9dc;box-shadow:0 0 0 3px #e6f3ff}
.patient-dropdown{position:absolute;z-index:40;top:calc(100% + 7px);right:0;left:0;max-height:310px;overflow:auto;border:1px solid #d7e3ec;border-radius:13px;background:#fff;box-shadow:0 18px 45px rgba(28,60,86,.16)}
.patient-option{display:grid;width:100%;padding:11px 13px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;border-bottom:1px solid #edf1f4;background:#fff;color:var(--ink);text-align:left;cursor:pointer}
.patient-option:last-child{border-bottom:0}.patient-option:hover,.patient-option:focus{outline:0;background:#f2f8ff}
.patient-option-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:11px;background:#e7f2ff;color:var(--blue);font-size:13px;font-weight:700}
.patient-option>span:nth-child(2),.patient-option b,.patient-option small{display:block;min-width:0}
.patient-option b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.patient-option small{overflow:hidden;margin-top:4px;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.patient-option em{padding:4px 8px;border-radius:999px;background:#f0f5f8;color:#728697;font-size:10px;font-style:normal;white-space:nowrap}
.patient-option-new{background:#f8fbff}.patient-option-new .patient-option-avatar{background:#e8f8f3;color:var(--green);font-size:18px}
.patient-option-empty{margin:0;padding:17px;color:var(--muted);font-size:12px;text-align:center}


/* Align QR card bottom with product preview v262 */
.login-brand-page .login-card{align-self:stretch;min-height:0;margin:34px 0}


/* Always-open fixed patient assistant v263 */
.content.assistant-docked{height:100%;min-height:0;overflow:hidden;padding-bottom:24px}
.content.assistant-docked #patientView{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:6px}
.content.assistant-docked .assistant-view{position:relative;top:auto;height:100%;min-height:0}
.content.assistant-docked .assistant-header{grid-template-columns:minmax(0,1fr)}
.content.assistant-docked .assistant-title{grid-column:1;justify-content:flex-start}

/* Patient profile, compact assistant composer, and estimate detail v264 */
.patient-profile{position:relative;padding-right:126px}.patient-edit-button{position:absolute;top:22px;right:22px;min-height:34px;font-size:12px}
.patient-profile-modal{width:min(650px,100%);padding:26px;border-radius:20px;background:#fff;box-shadow:0 24px 80px rgba(14,35,52,.25)}.patient-profile-modal-head{display:flex;margin-bottom:24px;align-items:flex-start;justify-content:space-between;gap:24px}.patient-profile-modal-head h2{margin:0 0 7px}.patient-profile-modal-head span{color:var(--muted);font-size:12px}.patient-profile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.patient-profile-form-grid label>span{display:block;margin-bottom:8px;color:#53697c;font-size:12px}.patient-profile-form-grid input,.patient-profile-form-grid select{width:100%;height:43px;padding:0 12px;border:1px solid #d8e2e9;border-radius:9px;outline:0;background:#fff}.patient-profile-form-grid input:focus,.patient-profile-form-grid select:focus{border-color:#6da9dc;box-shadow:0 0 0 3px #e6f3ff}.patient-age-preview{margin-top:15px;padding:11px 13px;border-radius:10px;background:#f3f8fc;color:#5c7285;font-size:12px}.patient-profile-modal-actions{display:flex;margin-top:22px;justify-content:flex-end;gap:10px}
.content.assistant-docked .assistant-header{display:flex;min-height:64px;align-items:center}.content.assistant-docked .assistant-title{grid-column:auto}.content.assistant-docked .assistant-title p{font-size:15px}.content.assistant-docked .assistant-patient-badge,.assistant-materials{display:none!important}.assistant-composer-wrap{padding-top:12px}.content.assistant-docked .assistant-composer{position:relative;display:block}.content.assistant-docked .assistant-composer textarea{display:block;min-height:92px;padding:13px 68px 42px 13px;resize:none}.content.assistant-docked .assistant-composer button{position:absolute;right:8px;bottom:8px;min-width:52px;min-height:30px;padding:0 12px;border-radius:8px;font-size:12px}.content.assistant-docked .assistant-composer-wrap>p{padding-right:64px;text-align:left}
.estimate-detail{display:flex;flex-direction:column;gap:18px}.estimate-hero{display:flex;padding:26px 28px;align-items:center;justify-content:space-between;gap:30px;border-radius:20px;background:linear-gradient(135deg,#163a5b,#245f91);color:#fff;box-shadow:0 14px 34px rgba(28,72,108,.16)}.estimate-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.14);font-size:10px}.estimate-hero h2{margin:13px 0 8px;font-size:24px}.estimate-hero p{margin:0;color:rgba(255,255,255,.72);font-size:12px}.estimate-hero-total{min-width:210px;text-align:right}.estimate-hero-total span,.estimate-hero-total small{display:block;color:rgba(255,255,255,.7);font-size:11px}.estimate-hero-total strong{display:block;margin:5px 0 7px;font-size:32px;letter-spacing:-.03em}.estimate-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px}.estimate-items-panel,.estimate-summary,.estimate-note{border:1px solid var(--line);border-radius:18px;background:#fff}.estimate-section-head{padding:21px 22px 16px;border-bottom:1px solid var(--line)}.estimate-section-head h3,.estimate-summary h3{margin:0 0 5px;font-size:16px}.estimate-section-head p{margin:0;color:var(--muted);font-size:11px}.estimate-item{display:grid;padding:17px 20px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:13px;border-bottom:1px solid #edf1f4}.estimate-item:last-child{border-bottom:0}.estimate-item-index{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#edf6ff;color:var(--blue);font-size:10px;font-weight:700}.estimate-item-title{display:flex;align-items:center;gap:8px}.estimate-item-title b{font-size:14px}.estimate-item-title span{padding:3px 7px;border-radius:999px;background:#f0f4f7;color:#667b8c;font-size:10px}.estimate-item-main p{margin:5px 0 0;color:var(--muted);font-size:11px}.estimate-item-price{display:flex;min-width:110px;align-items:flex-end;flex-direction:column}.estimate-item-price small{color:#94a1ac;font-size:10px;text-decoration:line-through}.estimate-item-price em{margin:3px 0;padding:2px 6px;border-radius:99px;background:#eaf8f3;color:var(--green);font-size:9px;font-style:normal}.estimate-item-price strong{font-size:16px}.estimate-empty{margin:0;padding:30px;color:var(--muted);text-align:center}.estimate-summary{position:sticky;top:0;padding:22px}.estimate-summary dl{margin:18px 0}.estimate-summary dl>div{display:flex;padding:8px 0;justify-content:space-between;color:#5c7081;font-size:12px}.estimate-summary dd{margin:0;color:var(--ink);font-weight:600}.estimate-summary dd.discount{color:var(--green)}.estimate-payable{display:flex;padding:16px 0 12px;align-items:flex-end;justify-content:space-between;border-top:1px solid var(--line)}.estimate-payable span{font-size:12px}.estimate-payable strong{color:var(--blue);font-size:24px}.estimate-summary>p{margin:6px 0 0;color:#96a3ae;font-size:10px;line-height:1.6}.estimate-note{padding:18px 22px}.estimate-note span{display:block;margin-bottom:7px;color:var(--muted);font-size:11px}.estimate-note p{margin:0;white-space:pre-wrap;line-height:1.7}@media(max-width:1250px){.estimate-layout{grid-template-columns:1fr}.estimate-summary{position:relative}.patient-profile-form-grid{grid-template-columns:1fr}}


/* Combined birth information field v268 */
.patient-birth-field{grid-column:1/-1}.patient-birth-field>span{display:block;margin-bottom:8px;color:#53697c;font-size:12px}.patient-birth-control{display:grid;grid-template-columns:minmax(0,1fr) auto;overflow:hidden;border:1px solid #d8e2e9;border-radius:10px;background:#fff}.patient-birth-control:focus-within{border-color:#6da9dc;box-shadow:0 0 0 3px #e6f3ff}.patient-profile-form-grid .patient-birth-control>input{height:43px;border:0;border-radius:0;box-shadow:none}.patient-birth-date{display:flex;min-width:176px;align-items:center;border-left:1px solid #e1e8ee;background:#f7fbff}.patient-profile-form-grid .patient-birth-date input{display:block;width:176px;height:43px;padding:0 12px;border:0;border-radius:0;outline:0;background:transparent;color:var(--blue);font-size:12px;cursor:pointer}.patient-profile-form-grid .patient-birth-date input:focus{border:0;box-shadow:none}.patient-birth-field .patient-age-preview{display:block;margin-top:9px;padding:0;background:none;color:#718596;font-size:11px}.patient-profile-modal-actions .primary-button{min-width:126px}

/* Shared birth information control in report editor v272 */
.report-birth-field{grid-column:span 2}.form-grid .report-birth-field .patient-birth-control>input{width:100%;height:43px;padding:0 12px;border:0;border-radius:0;box-shadow:none}.form-grid .report-birth-field .patient-birth-date input{display:block;width:176px;height:43px;padding:0 12px;border:0;border-radius:0;outline:0;background:transparent;color:var(--blue);font-size:12px;cursor:pointer}.form-grid .report-birth-field .patient-birth-date input:focus{border:0;box-shadow:none}


/* Clipboard image paste targets v269 */
[data-paste-target]{outline:none;transition:border-color .16s,box-shadow .16s,background .16s}.upload-source.paste-target-active .drop-zone,.paste-attachment-zone.paste-target-active{border-color:#66a8dd;box-shadow:0 0 0 3px rgba(40,120,212,.1);background:#f3f9ff}.paste-attachment-zone{padding:16px;border:1.5px dashed transparent;border-radius:14px}.paste-attachment-zone:focus-visible{border-color:#66a8dd}.drop-zone span:after,.paste-attachment-zone .attachment-head p:after{content:"  ·  支持 Ctrl/Cmd + V";color:var(--blue)}

/* Image thumbnails, preview, and removal v270 */
.upload-source{min-width:0}.local-file-preview{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.attachment-item .attachment-preview-button{position:static;display:block;width:100%;height:auto;padding:0;border:0;border-radius:0;background:transparent;color:inherit;cursor:zoom-in}.attachment-item .attachment-preview-button img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}.attachment-item .attachment-remove-button{position:absolute;z-index:2;top:6px;right:6px;width:24px;height:24px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(18,38,54,.82);color:#fff;font-size:17px;line-height:20px;cursor:pointer}.image-preview-modal{z-index:1200;background:rgba(8,19,29,.82);cursor:zoom-out}.image-preview-modal img{display:block;max-width:min(92vw,1440px);max-height:88vh;border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.45);object-fit:contain;cursor:default}.image-preview-close{position:fixed;z-index:2;top:24px;right:28px;width:42px;height:42px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(10,25,38,.65);color:#fff;font-size:28px;line-height:36px;cursor:pointer}

/* Keep report navigation in document flow so it never covers fields v273 */
#reportForm .submit-bar{position:sticky;right:auto;bottom:0;left:auto;width:100%;margin-top:18px;padding:0 24px;border:1px solid var(--line);border-radius:16px;box-shadow:0 -8px 24px rgba(31,65,92,.06)}

/* Unified visit-material recognition and select carets v275 */
.single-upload-grid{grid-template-columns:minmax(0,1fr)}.single-upload-grid .drop-zone{min-height:148px}.recognition-actions{display:flex;margin-top:16px;justify-content:flex-end}.treatment-header-actions{display:flex;align-items:center;gap:10px}.form-grid select,.material-upload select,.patient-profile-form-grid select{-webkit-appearance:none;appearance:none;padding-right:38px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236f8192' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 14px}

/* Previsit and simulation detail redesign v276 */
.record-detail{display:flex;flex-direction:column;gap:18px}.record-hero{display:flex;min-height:150px;padding:26px 28px;align-items:center;justify-content:space-between;gap:30px;border-radius:20px;color:#fff;box-shadow:0 14px 34px rgba(28,72,108,.16)}.previsit-hero{background:linear-gradient(135deg,#173d61,#296fa7)}.simulation-hero{background:linear-gradient(135deg,#17495a,#23809a)}.record-hero-main{min-width:0}.record-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.14);font-size:10px}.record-hero-main>small{display:block;margin-top:14px;color:rgba(255,255,255,.68);font-size:11px}.record-hero h2{max-width:780px;margin:5px 0 8px;font-size:24px;line-height:1.35}.record-hero p{margin:0;color:rgba(255,255,255,.72);font-size:12px}.record-hero-side{min-width:210px;text-align:right}.record-hero-side span,.record-hero-side small{display:block;color:rgba(255,255,255,.7);font-size:11px}.record-hero-side strong{display:block;max-width:280px;margin:7px 0 9px;font-size:28px;line-height:1.25}.record-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px}.record-main-column{display:flex;min-width:0;flex-direction:column;gap:18px}.record-main-panel,.record-summary,.simulation-disclaimer{border:1px solid var(--line);border-radius:18px;background:#fff}.record-section-head{padding:21px 22px 16px;border-bottom:1px solid var(--line)}.record-section-head h3,.record-summary h3{margin:0 0 5px;font-size:16px}.record-section-head p{margin:0;color:var(--muted);font-size:11px}.record-field-grid{display:grid;padding:10px 22px 20px;grid-template-columns:1fr 1fr;gap:0 24px}.record-field{min-width:0;padding:15px 0;border-bottom:1px solid #edf1f4}.record-field.wide{grid-column:1/-1}.record-field span{display:block;margin-bottom:7px;color:var(--muted);font-size:11px}.record-field p{margin:0;color:var(--ink);font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.record-summary{position:sticky;top:0;padding:22px}.record-summary dl{margin:18px 0}.record-summary dl>div{display:flex;padding:9px 0;align-items:flex-start;justify-content:space-between;gap:16px;color:#5c7081;font-size:12px}.record-summary dt{flex:0 0 auto}.record-summary dd{max-width:165px;margin:0;color:var(--ink);font-weight:600;text-align:right;overflow-wrap:anywhere}.record-summary>p{margin:12px 0 0;padding-top:15px;border-top:1px solid var(--line);color:#96a3ae;font-size:10px;line-height:1.65}.simulation-compare{display:grid;padding:20px 22px 22px;grid-template-columns:1fr 1fr;gap:16px}.simulation-image-card{min-width:0;overflow:hidden;border:1px solid #e1e9ef;border-radius:16px;background:#f7fafc}.simulation-image-head{display:flex;padding:14px 15px 12px;align-items:center;justify-content:space-between;gap:12px}.simulation-image-head span{font-size:13px;font-weight:700}.simulation-image-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.simulation-image-head em{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#eaf5ff;color:var(--blue);font-size:9px;font-style:normal}.simulation-image-button{position:relative;display:block;width:100%;height:310px;padding:0;overflow:hidden;border:0;border-top:1px solid #e1e9ef;background:#edf3f6;cursor:zoom-in}.simulation-image-button img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .2s ease}.simulation-image-button:hover img{transform:scale(1.015)}.simulation-image-button>span{position:absolute;right:12px;bottom:12px;padding:6px 9px;border-radius:999px;background:rgba(17,42,64,.72);color:#fff;font-size:10px;opacity:0;transition:opacity .2s ease}.simulation-image-button:hover>span{opacity:1}.simulation-image-missing{display:grid;height:310px;place-items:center;border-top:1px solid #e1e9ef;color:var(--muted);font-size:12px}.record-note{padding:20px 22px}.record-note p{margin:0;white-space:pre-wrap;line-height:1.75}.simulation-disclaimer{display:flex;padding:16px 20px;align-items:flex-start;gap:13px;background:#f4fafb;border-color:#d9ebee}.simulation-disclaimer span{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#dff2f4;color:#24758a;font-size:10px;font-weight:700}.simulation-disclaimer p{margin:1px 0 0;color:#607786;font-size:11px;line-height:1.7}@media(max-width:1250px){.record-detail-layout{grid-template-columns:1fr}.record-summary{position:relative}}@media(max-width:760px){.record-hero{align-items:flex-start;flex-direction:column}.record-hero-side{min-width:0;text-align:left}.record-field-grid,.simulation-compare{grid-template-columns:1fr}.record-field.wide{grid-column:auto}.simulation-image-button,.simulation-image-missing{height:240px}}

/* Structured health report detail v278 */
.health-detail{display:flex;flex-direction:column;gap:18px}.health-hero{display:flex;min-height:160px;padding:27px 29px;align-items:center;justify-content:space-between;gap:30px;border-radius:20px;background:linear-gradient(135deg,#163b5c,#246f99 72%,#258fa2);color:#fff;box-shadow:0 14px 34px rgba(28,72,108,.16)}.health-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.14);font-size:10px}.health-hero>div>small{display:block;margin-top:14px;color:rgba(255,255,255,.68);font-size:11px}.health-hero h2{margin:5px 0 8px;font-size:27px}.health-hero p{margin:0;color:rgba(255,255,255,.72);font-size:12px}.health-hero-side{min-width:210px;text-align:right}.health-hero-side span,.health-hero-side small{display:block;color:rgba(255,255,255,.7);font-size:11px}.health-hero-side strong{display:block;margin:7px 0 9px;font-size:30px}.health-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px}.health-main{display:flex;min-width:0;flex-direction:column;gap:18px}.health-section,.health-summary{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}.health-section-head{padding:21px 22px 16px;border-bottom:1px solid var(--line)}.health-section-head h3,.health-summary h3{margin:0 0 5px;font-size:16px}.health-section-head p{margin:0;color:var(--muted);font-size:11px}.health-treatment{display:grid;padding:17px 20px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:13px;border-bottom:1px solid #edf1f4}.health-treatment:last-child{border-bottom:0}.health-treatment-index{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#edf6ff;color:var(--blue);font-size:10px;font-weight:700}.health-treatment-title{display:flex;align-items:center;gap:8px}.health-treatment-title b{font-size:14px}.health-treatment-title em{padding:3px 7px;border-radius:999px;background:#f0f4f7;color:#667b8c;font-size:10px;font-style:normal}.health-treatment p{margin:5px 0 0;color:var(--muted);font-size:11px}.health-treatment small{display:block;margin-top:6px;color:#657b8c;line-height:1.55}.health-treatment>strong{padding:4px 8px;border-radius:999px;background:#eaf8f3;color:var(--green);font-size:10px}.health-care-grid{display:grid;padding:10px 22px 20px;grid-template-columns:1fr 1fr;gap:0 24px}.health-empty{margin:0;padding:28px 22px;color:var(--muted);font-size:12px;text-align:center}.health-attachment-grid{display:grid;padding:20px 22px 22px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.health-attachment-grid button{padding:0;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#f7fafc;text-align:left;cursor:zoom-in}.health-attachment-grid img{display:block;width:100%;aspect-ratio:1.3;object-fit:cover}.health-attachment-grid span{display:block;padding:9px 10px;overflow:hidden;color:#526a7d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.health-case-list{display:grid;padding:20px 22px 22px;grid-template-columns:1fr 1fr;gap:12px}.health-case{display:flex;min-width:0;padding:12px;align-items:center;gap:12px;border:1px solid #e4ebf0;border-radius:13px;background:#fbfdfe}.health-case img{width:60px;height:60px;flex:0 0 60px;border-radius:10px;object-fit:cover}.health-case div{min-width:0}.health-case b{font-size:12px}.health-case p{display:-webkit-box;margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.health-summary{position:sticky;top:0;padding:22px}.health-summary dl{margin:18px 0}.health-summary dl>div{display:flex;padding:9px 0;align-items:flex-start;justify-content:space-between;gap:14px;color:#5c7081;font-size:12px}.health-summary dd{max-width:170px;margin:0;color:var(--ink);font-weight:600;text-align:right}.health-billing{padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.health-billing span,.health-billing small{display:block;color:var(--muted);font-size:10px}.health-billing strong{display:block;margin:5px 0;color:var(--blue);font-size:24px}.health-timeline{margin-top:18px}.health-timeline h4{margin:0 0 8px;font-size:12px}.health-visit{position:relative;padding:9px 34px 9px 13px;border-left:2px solid #dceaf4}.health-visit span{color:#728698;font-size:10px}.health-visit p{margin:4px 0 0;color:var(--ink);font-size:11px;line-height:1.5}.health-visit em{position:absolute;top:10px;right:0;color:var(--blue);font-size:9px;font-style:normal}.health-summary>p{margin:15px 0 0;padding-top:15px;border-top:1px solid var(--line);color:#96a3ae;font-size:10px;line-height:1.65}@media(max-width:1250px){.health-layout{grid-template-columns:1fr}.health-summary{position:relative}}@media(max-width:800px){.health-hero{align-items:flex-start;flex-direction:column}.health-hero-side{text-align:left}.health-care-grid,.health-case-list{grid-template-columns:1fr}.health-attachment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Report deletion actions v279 */
.danger-button{border-color:#f0c9c9!important;color:#c44444!important;background:#fffafa!important}.danger-button:hover{border-color:#e9aaaa!important;background:#fff3f3!important}.danger-button:disabled{opacity:.55;cursor:not-allowed}

/* Blocking recognition dialog aligned with mini program v280 */
body.recognition-blocking-active{overflow:hidden}.recognition-blocking-mask{position:fixed;z-index:1500;inset:0;display:flex;padding:32px;align-items:center;justify-content:center;background:rgba(31,42,55,.46);backdrop-filter:blur(2px)}.recognition-blocking-dialog{width:min(390px,100%);padding:30px 28px 26px;border-radius:18px;background:#fff;box-shadow:0 18px 56px rgba(31,42,55,.22);text-align:center}.recognition-blocking-spinner{width:32px;height:32px;margin:0 auto 18px;border:4px solid #e6eaf0;border-top-color:#2f80ed;border-radius:50%;animation:recognition-blocking-spin .9s linear infinite}@keyframes recognition-blocking-spin{to{transform:rotate(360deg)}}.recognition-blocking-dialog h2{margin:0;color:#1f2a37;font-size:20px;font-weight:650}.recognition-blocking-dialog>p{margin:9px 0 0;color:#6b7280;font-size:13px;line-height:1.6}.recognition-blocking-steps{display:flex;margin-top:28px;align-items:flex-start}.recognition-blocking-step{width:112px;color:#9ca3af;text-align:center}.recognition-blocking-step>span{display:flex;width:30px;height:30px;margin:0 auto 8px;align-items:center;justify-content:center;border:1px solid #d7dde6;border-radius:50%;background:#fff;color:#9ca3af;font-size:12px}.recognition-blocking-step>b{display:block;color:#1f2a37;font-size:12px;font-weight:600}.recognition-blocking-step>small{display:block;margin-top:4px;font-size:10px}.recognition-blocking-step.active>span{border-color:#2f80ed;background:#2f80ed;color:#fff}.recognition-blocking-step.active>small{color:#2f80ed}.recognition-blocking-step.done>span{border-color:#27ae60;background:#eaf7ef;color:#238c4e}.recognition-blocking-steps>i{height:1px;flex:1;margin-top:15px;background:#e6eaf0}.recognition-blocking-steps>i.done{background:#27ae60}.recognition-blocking-progress{height:5px;margin-top:24px;overflow:hidden;border-radius:99px;background:#e6eaf0}.recognition-blocking-progress i{display:block;height:100%;border-radius:inherit;background:#2f80ed;transition:width .18s ease}.recognition-blocking-mask[data-stage="recognizing"] .recognition-blocking-progress{position:relative;background:linear-gradient(90deg,#e6eaf0 0,#d9ebff 45%,#e6eaf0 100%);background-size:220% 100%;animation:recognition-blocking-flow 1.3s ease-in-out infinite}.recognition-blocking-mask[data-stage="recognizing"] .recognition-blocking-progress i{display:none}@keyframes recognition-blocking-flow{to{background-position:-220% 0}}.recognition-blocking-dialog .recognition-blocking-hint{margin-top:18px;color:#9ca3af;font-size:11px}

/* Side-by-side recognition inputs v281 */
.recognition-input-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px}.recognition-input-grid .ai-description{display:flex;margin:0;min-width:0;flex-direction:column}.recognition-input-grid .ai-description>span,.recognition-field-head{min-height:18px;margin-bottom:8px}.recognition-input-grid .ai-description textarea{height:148px;min-height:148px;resize:none}.recognition-upload-field{min-width:0}.recognition-field-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#53697c;font-size:12px}.recognition-field-head>span{flex:0 0 auto}.recognition-field-head>small{overflow:hidden;color:var(--muted);font-size:10px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.recognition-input-grid .single-upload-grid .drop-zone{min-height:148px}.recognition-upload-field .file-summary{margin-top:10px}@media(max-width:900px){.recognition-input-grid{grid-template-columns:1fr}.recognition-field-head>small{white-space:normal}}

/* Keep report actions fixed above all editor content v282 */
#editorView{padding-bottom:96px}#reportForm .submit-bar{position:fixed;right:0;bottom:0;left:310px;z-index:1100;width:auto;height:78px;margin:0;padding:0 42px;border:0;border-top:1px solid var(--line);border-radius:0;background:#fff;box-shadow:0 -10px 28px rgba(31,65,92,.08);backdrop-filter:none}#reportForm .submit-bar:after{position:absolute;top:100%;right:0;left:0;height:24px;background:#fff;content:""}@media(max-width:1200px){#reportForm .submit-bar{padding-right:26px;padding-left:26px}}
