.mobile-install{display:none}
@media screen and (max-width:720px){
 :root{font-size:15px}html,body{max-width:100%;overflow-x:clip}button{min-height:44px}input,select,textarea{font-size:16px!important}input[type=checkbox],input[type=radio]{min-width:22px;min-height:22px;width:22px;vertical-align:middle}input[type=date],input[type=datetime-local]{min-width:0;max-width:100%}
 .shell{min-height:100dvh}.sidebar{padding-top:max(12px,env(safe-area-inset-top));height:auto}.main{padding:0 12px calc(90px + env(safe-area-inset-bottom))}.topbar{margin-bottom:15px}.topbar>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.topbar button{padding:7px 10px}.pagehead{gap:10px;flex-wrap:wrap}.pagehead h1{font-size:23px}.pagehead>.actions{width:100%}.card{padding:14px}.grid,.grid.three{grid-template-columns:minmax(0,1fr)!important;gap:12px}.toolbar{gap:8px}.toolbar input,.toolbar select{min-width:0!important;max-width:100%;flex:1 1 135px}.metrics,.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:12px}.metric strong{font-size:24px}.tablewrap{max-width:100%;overflow:auto;overscroll-behavior-x:contain}.tablewrap table{min-width:580px}.tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.tabs button{flex:0 0 auto}.mobile-bottom{padding-bottom:env(safe-area-inset-bottom);height:auto;min-height:64px;z-index:8}.mobile-bottom button{min-height:58px;flex:1;padding:8px 4px}.mobile-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-menu button{min-height:52px}
 dialog,dialog.billing-dialog,dialog.permissions-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:16px 12px calc(20px + env(safe-area-inset-bottom));overflow:auto}dialog #modal-form>.actions{position:sticky;bottom:0;background:#fff;padding:10px 0;margin-top:14px;z-index:5}dialog #modal-form>.actions button{min-width:90px;min-height:46px}dialog h2{font-size:21px}.savebar{flex-wrap:wrap;gap:8px;bottom:calc(64px + env(safe-area-inset-bottom))}.login{margin:8vh 12px;padding:24px 18px}
 .billing-composer{display:block;height:auto}.billing-picker-column,.billing-editor-column{min-width:0;overflow:visible;padding:8px 0}.billing-composer .billing-results{max-height:290px;overflow:auto}.billing-catalog-filters{display:grid;grid-template-columns:1fr 1fr!important;gap:6px}.billing-catalog-filters select{max-width:100%}.billing-catalog-filters select:last-child{grid-column:1/-1}.billing-result button{min-height:44px;min-width:64px}.billing-composer .billing-tablewrap{max-height:none;border:0}.billing-composer .billing-table{display:block;min-width:0;width:100%;table-layout:auto}.billing-table thead{display:none}.billing-table tbody{display:block}.billing-table tr{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;margin:12px 0;background:white;border:1px solid var(--line);border-radius:10px}.billing-table td{display:block;width:auto!important;padding:0!important;border:0;min-width:0}.billing-table td:first-child{grid-column:1/-1}.billing-table td:nth-child(2)::before{content:'数量'}.billing-table td:nth-child(3)::before{content:'技术单价（元）'}.billing-table td:nth-child(4)::before{content:'材料单价（元）'}.billing-table td:nth-child(5)::before{content:'优惠（元）'}.billing-table td:nth-child(6)::before{content:'应收（元）'}.billing-table td::before{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.billing-table td button{min-height:44px}.billing-tier-tools{width:100%;flex-wrap:wrap}.payment-entry-row{grid-template-columns:1fr!important}.billing-payment{padding:12px}.billing-payment .actions{gap:7px}.billing-lines-heading{flex-wrap:wrap}.billing-summary{display:block}.billing-summary strong{display:block;margin-top:8px}.charge-summary{grid-template-columns:1fr 1fr!important}.mobile-install{display:block;margin:16px 0}.mobile-install button{width:100%}
 #receipt-summary .tablewrap table{min-width:440px}.permission-groups,.permission-role-grid{grid-template-columns:1fr}.oral-workspace,.patient-layout{max-width:100%}#toast{bottom:calc(80px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:none}.mobile-connect-state{padding:9px 12px;background:#fff2e9;color:#834421;font-size:14px}.mobile-connect-state[hidden]{display:none}
}
@media print{.mobile-install,.mobile-connect-state{display:none!important}}
/* 0.4.70: phone workspace, full-screen patient picking and calendar drawer. */
.mobile-only{display:none}
@media screen and (max-width:720px){
 .mobile-only{display:block}.main{background:#f6f8fa;padding:0 12px calc(90px + env(safe-area-inset-bottom))}.sidebar{display:none!important}.topbar{min-height:52px;padding:8px 0;margin:0;background:#f6f8fa}.topbar>small{display:none}.topbar>div{width:100%;justify-content:flex-end;font-size:12px}.topbar #open-host-status{margin-right:auto}.pagehead h1{font-size:20px}.pagehead .subtle{font-size:12px}.mobile-home{background:#fff;border-radius:12px;padding:16px;margin:12px 0}.mobile-home h2{font-size:16px;margin:0 0 12px}.mobile-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mobile-feature-grid button{background:#eaf7f8;border:0;min-height:64px;color:#176773;font-size:14px}.reception-tasks{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.reception-toolbar .toolbar{flex-wrap:wrap}.reception-workbench .pagehead>.actions{flex-wrap:wrap}.reception-workbench .reception-board{padding:10px}.reception-workbench .reception-patient-row{min-width:0}
 .patient-workspace .patient-center{display:block}.patient-workspace .patient-groups{display:flex;overflow-x:auto;gap:6px;padding:8px 0}.patient-groups button{width:auto!important;flex-shrink:0}.patient-group-heading,.patient-groups>p{display:none}.patient-workspace .patient-searchbar{flex-wrap:wrap}.patient-workspace .patient-searchbar input{flex-basis:100%;min-width:0}.patient-workspace .patient-searchbar select{max-width:none}.mobile-patient-card{position:relative;border-bottom:1px solid #e6edf0;padding:12px 0;background:white}.mobile-patient-select{position:absolute;right:0;top:15px}.mobile-patient-main{display:block;width:100%;padding:0 30px 8px 0;text-align:left;border:0;background:transparent;color:#556b74}.mobile-patient-main strong{display:block;color:#243c46;font-size:17px;margin:0 0 8px}.mobile-patient-main strong small{font-size:13px;font-weight:400}.mobile-patient-main span{display:block;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.patient-workspace .patient-row-actions{justify-content:flex-end;gap:8px;flex-wrap:wrap}.patient-workspace .patient-row-actions>button,.patient-workspace .patient-row-more summary{font-size:14px;padding:8px 14px;border:1px solid #e0eaed;border-radius:20px;min-height:44px;box-sizing:border-box}.patient-workspace .patient-row-more>div button{font-size:14px;min-height:44px}.patient-batch-footer{font-size:13px}.patient-profile-summary{background:white;line-height:1.8}.mobile-profile-home>.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));white-space:normal;border:0;background:#fff;padding:10px;gap:8px}.mobile-profile-home>.tabs button{min-height:64px;border:0;background:#eff8f9;color:#216777;font-size:14px;white-space:normal}.mobile-profile-home>.tabs [data-tab=overview]{display:none}.mobile-profile-expand{width:100%;text-align:left;margin:6px 0 12px;background:#fff;min-height:52px}.mobile-contact{display:flex;gap:10px;margin:16px 0}.mobile-contact>*{flex:1;text-align:center;background:#fff;padding:12px;border:1px solid #e0eaed;border-radius:8px;color:#176773;text-decoration:none}.mobile-profile-home #patient-body[hidden]{display:none}
 .mobile-record-card{background:white;border:1px solid #e5edf0;border-radius:10px;padding:12px;margin:12px 0}.mobile-record-card>button{display:block;background:transparent;border:0;text-align:left;width:100%;padding:0;color:#405963}.mobile-record-card strong,.mobile-record-card span{display:block;margin-bottom:8px}.mobile-record-card span{font-size:14px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.6}.mobile-record-card .actions{flex-wrap:wrap}.mobile-record-reader{background:white;border-radius:10px;padding:0 12px 18px}.mobile-record-reader header{position:sticky;top:0;background:white;z-index:3;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4edef}.mobile-record-reader h1{font-size:18px}.mobile-record-reader header button{border:0;color:#148494}.mobile-record-meta{padding:14px 0;font-size:14px}.mobile-record-meta p{margin:8px 0}.mobile-record-meta>.badge{float:right}.mobile-clinical-section{padding:14px 0;border-top:1px solid #eaf0f2}.mobile-clinical-section h2{font-size:15px;margin:0 0 10px;color:#415c66}.mobile-clinical-section p{font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;color:#506670}.mobile-clinical-entry{border:1px solid #e7eff1;border-radius:8px;padding:12px;margin:8px 0}.mobile-clinical-entry .tooth-notation{display:block;width:100%;box-sizing:border-box}.mobile-clinical-entry .notation-cross{width:100%;box-sizing:border-box}.mobile-clinical-entry .notation-caption{display:none}.clinical-fields{display:block!important}.clinical-field{margin-bottom:18px}.clinical-row{max-width:100%}.visit-reference{margin-top:20px}
 .appointment-workspace{position:relative;padding:8px!important}.appointment-layout{display:block!important}.appointment-sidebar{display:none!important}.appointment-board-main{min-width:0}.appointment-workspace .appointment-filter-body{display:none!important}.appointment-filter-toggle{display:block!important;position:absolute;right:8px;top:8px;min-height:44px;font-size:13px;padding:6px 10px}.schedule-mode-tabs{padding-right:100px;overflow:auto;white-space:nowrap}.schedule-mode-tabs button{font-size:13px}.schedule-mode-tabs #schedule-followup{display:none}.calendar-range{flex-wrap:wrap;gap:6px}.calendar-navigation{display:flex;flex-wrap:wrap;gap:4px}.calendar-navigation button{font-size:13px;padding:6px 8px}.appointment-range-title h2{font-size:16px}#ap-week-strip{display:block!important}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.week-strip button{padding:6px 0;min-width:0;min-height:70px}.week-strip button.selected,.month-picker-grid button.selected{background:#13a5b6;color:white;border-color:#13a5b6}.month-picker-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.month-picker-grid button{padding:5px 0;min-width:0}.calendar-legend{display:none}.appointment-status-strip{overflow:auto;flex-wrap:nowrap!important}.appointment-status-strip button{flex-shrink:0;font-size:12px}.calendar-help{font-size:12px}.schedule-scroll{max-height:65dvh}.schedule-combined .schedule-grid{min-width:0!important;grid-template-columns:44px minmax(0,1fr)!important}.schedule-event{min-height:0!important;padding:3px!important;font-size:11px!important;border-radius:3px!important}.schedule-event strong{font-size:12px}.schedule-event small,.event-purpose,.event-time{font-size:10px!important}.schedule-event .event-doctor{display:none}#new-appointment{position:fixed;right:18px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:6;border-radius:25px;box-shadow:0 4px 12px #123e4533;font-size:14px}
 dialog.mobile-filter-drawer{left:auto;right:0;top:0;width:88vw;max-width:400px;height:100dvh;margin:0 0 0 auto;border-radius:14px 0 0 14px}dialog.mobile-filter-drawer::backdrop{background:#0005}.mobile-filter-group{border:0;padding:10px 0 20px;border-bottom:1px solid #e8eef0;min-width:0}.mobile-filter-group legend{font-size:15px;font-weight:600;margin-bottom:10px}.mobile-filter-group>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.mobile-filter-group button{font-size:13px;padding:8px 4px;background:#f5f7f9;white-space:normal}.mobile-filter-group button[aria-pressed=true]{background:#e1f7fa;color:#067b8c;border-color:#17a8b9}
 dialog.appointment-dialog .appointment-form-layout,dialog.appointment-dialog .appointment-entry{display:block!important}.appointment-entry>label{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #edf1f3}.appointment-entry>label input,.appointment-entry>label select{min-width:0;width:100%;box-sizing:border-box}.appointment-entry>.mobile-native-patient{display:none!important}.mobile-select-patient{display:block;width:100%;text-align:left;padding:16px 10px;background:#effafb;color:#138696;border:0;margin:0 0 12px;font-size:16px}.appointment-duration{margin:12px 0}.appointment-duration>div{display:flex;flex-wrap:wrap;gap:5px}.appointment-new-patient{margin:12px 0}.appointment-new-patient [hidden]{display:none}.appointment-suggestions{padding:12px 0}.appointment-project-grid{display:block!important}.appointment-project-grid>div{margin:10px 0}.appointment-project-grid button{margin:3px}.mobile-patient-picker{z-index:20}.mobile-patient-picker header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:white;padding:8px 0}.mobile-patient-picker header h2{font-size:18px;margin:0}.mobile-patient-picker header button{padding:8px;border:0;color:#078897}.mobile-patient-picker [data-picker-list]>button{display:block;width:100%;text-align:left;padding:16px 5px;border:0;border-bottom:1px solid #e5edef;border-radius:0}.mobile-patient-picker strong,.mobile-patient-picker span{display:block;line-height:1.8}.mobile-patient-picker span{font-size:13px;color:#657e89}.mobile-patient-picker input{width:100%;box-sizing:border-box}.mobile-quick-toggle{display:flex;align-items:center;gap:8px;background:#eff8f9;padding:10px;border-radius:8px;margin:10px 0}.mobile-quick-field[hidden]{display:none!important}
}
@media screen and (max-width:720px){.mobile-record-filters{border-bottom:1px solid #e4edef;margin:8px 0}.mobile-record-filters summary{padding:12px 4px;cursor:pointer;color:#247886}.mobile-record-filters .toolbar{padding:12px 0}.patient-profile:not(.mobile-profile-home)>.patient-profile-summary{display:none}.patient-profile:not(.mobile-profile-home)>.pagehead #edit-patient,.patient-profile:not(.mobile-profile-home)>.pagehead #patient-rebook,.patient-profile:not(.mobile-profile-home)>.pagehead #search-patient-records{display:none}}
