:root{--sidebar:228px}
*{box-sizing:border-box}
body{margin:0;background:var(--ui-canvas,#f9f9f7);color:var(--ui-ink,#242421);font-family:var(--ui-font);font-size:var(--type-body);line-height:1.65}
a{color:inherit;text-decoration:none}
a:hover{color:var(--ui-accent)}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{touch-action:manipulation}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--ui-accent);outline-offset:3px}
button:disabled{opacity:.5;cursor:wait}
[hidden]{display:none!important}
h1,h2,h3,p{margin-top:0}
h1{font-size:var(--type-display);font-weight:600;letter-spacing:normal;line-height:1.35;margin-bottom:var(--space-12)}
h2{font-size:var(--type-title);line-height:1.5;margin-bottom:var(--space-12);font-weight:600}
h3{font-size:var(--type-body);margin-bottom:var(--space-12)}
small{display:block;font-size:var(--type-caption);line-height:1.65;color:var(--ui-muted);font-weight:400}
p{margin-bottom:var(--space-16)}
b{font-weight:600}
.muted{color:var(--ui-muted)}
.help{font-size:var(--type-small);color:var(--ui-muted);margin-top:var(--space-12)}
.eyebrow{display:block;color:var(--ui-muted);font-size:var(--type-caption);letter-spacing:1.3px;margin-bottom:var(--space-12)}
.shell{display:flex;min-height:100dvh}
.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;padding:var(--space-32) var(--space-20) var(--space-20);border-right:1px solid var(--ui-line);display:flex;flex-direction:column;background:#f3f2ef;z-index:5}
.brand{display:flex;align-items:center;gap:var(--space-12);font-size:var(--type-subtitle);font-weight:600;white-space:nowrap}
.brand-icon{display:grid;place-items:center;border-radius:var(--ui-radius-control);width:40px;height:40px;background:var(--ui-action);color:white;font-size:var(--type-title);font-weight:500}
.brand small{font-size:var(--type-caption);letter-spacing:.8px;margin-top:var(--space-4)}
.sidebar .brand{margin:0 var(--space-12) var(--space-40)}


nav>a{display:flex;gap:var(--space-12);align-items:center;padding:var(--space-12) var(--space-16);border-radius:var(--ui-radius-control);margin:var(--space-4) 0;color:#5c5b55}
nav>a>span{font-size:inherit;min-width:0}
nav>a:hover{background:#eae9e5;color:var(--ui-ink)}
nav>a[aria-current=page]{background:white;color:var(--ui-ink);box-shadow:0 2px 5px #25241f06}



.workspace{margin-left:var(--sidebar);flex:1;min-width:0}
.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-48);border-bottom:1px solid var(--ui-line)}
.topbar>.muted{font-size:var(--type-caption)}
.account{display:flex;align-items:center;gap:var(--space-12);font-size:var(--type-small)}
.avatar{display:grid;place-items:center;background:#e7e6e0;width:36px;height:36px;border-radius:50%;font-size:var(--type-small)}
.account small{font-size:var(--type-caption)}
.text-button{border:0;background:none;color:var(--ui-muted);font-size:var(--type-caption);padding:var(--space-8)}
.main{padding:var(--space-24) var(--space-48) var(--space-48);max-width:1600px;margin:auto}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-24);margin:var(--space-20) 0 var(--space-32)}
.page-heading p{margin-bottom:0}
.button{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-20);min-height:46px;padding:var(--space-12) var(--space-24);border:1px solid transparent;border-radius:var(--ui-radius-control);background:var(--ui-action);color:white;font-weight:500;font-size:var(--type-small);line-height:1.5;white-space:normal;transition:background .16s,transform .16s}
.button:hover{background:var(--ui-action-hover);color:white}
.button:active{transform:scale(.98)}
.button.secondary{background:var(--ui-fill);color:var(--ui-ink);border-color:var(--ui-line)}
.button.secondary:hover{background:#e5e4df}
.button.full{width:100%}
.panel{padding:var(--space-24) var(--space-32);border:1px solid var(--ui-line);border-radius:var(--ui-radius-panel);background:white;margin-bottom:var(--space-24);min-width:0}
.section-head{display:flex;justify-content:space-between;gap:var(--space-20);align-items:center;margin-bottom:var(--space-20)}
.section-head h2{margin-bottom:var(--space-4)}
.section-head p{font-size:var(--type-caption);margin:0}






.danger-text{color:var(--ui-danger)!important}
.text-link{font-size:var(--type-small);text-decoration:none;white-space:nowrap}
.text-link:hover{text-decoration:underline}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:var(--type-small);text-align:left;white-space:normal}
th{font-weight:400;font-size:var(--type-caption);color:var(--ui-muted);background:#f7f6f3;padding:var(--space-12) var(--space-12);white-space:nowrap}
th:first-child{border-radius:var(--ui-radius-sm) 0 0 var(--ui-radius-sm)}
th:last-child{border-radius:0 var(--ui-radius-sm) var(--ui-radius-sm) 0}
td{padding:var(--space-16) var(--space-12);border-bottom:1px solid #eeede9;vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fcfbf9}
td small{font-size:var(--type-caption);margin-top:var(--space-4);max-width:230px}
td>b{font-size:var(--type-small)}
.badge,.tag{display:inline-flex;align-items:center;border-radius:var(--ui-radius-sm);background:#eeeee9;padding:var(--space-4) var(--space-8);font-size:var(--type-caption);white-space:nowrap;font-weight:400}
.badge.overdue,.badge.late_visit{background:var(--ui-danger-soft);color:var(--ui-danger)}
.badge.on_time{background:var(--ui-success-soft);color:var(--ui-success)}
.badge.due,.badge.late_entry{background:var(--ui-warning-soft);color:var(--ui-warning)}
.badge.upcoming{background:#eef0f6;color:#5c6683}
.row-action{display:flex;gap:var(--space-12);white-space:nowrap}


.empty{text-align:center;padding:var(--space-48) var(--space-16);color:var(--ui-muted)}
.empty>span{font-size:var(--type-heading-small);display:block;margin-bottom:var(--space-12)}
.empty h3{color:var(--ui-ink)}
.empty p{font-size:var(--type-small);margin:0}
.notice{padding:var(--space-12) var(--space-16);border-radius:var(--ui-radius-control);font-size:var(--type-small);line-height:1.6;margin-bottom:var(--space-20)}
.notice.error{background:var(--ui-danger-soft);color:var(--ui-danger)}
.notice.success{background:var(--ui-success-soft);color:var(--ui-success)}
.notice.warning{background:var(--ui-warning-soft);color:var(--ui-warning)}
.notice ul{padding-left:var(--space-20);margin:0}
.filters{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-12);margin-bottom:var(--space-20)}
.filters label{font-size:var(--type-caption);margin:0;flex:1 1 130px}
.filters .search-label{flex:2 1 240px}
.filters input,.filters select{height:44px;font-size:var(--type-small);border-radius:var(--ui-radius-control)}
.filters .button{min-height:44px}
.table-caption{color:var(--ui-muted);font-size:var(--type-caption);margin-bottom:var(--space-16)}
.pagination{display:flex;justify-content:center;gap:var(--space-20);font-size:var(--type-small);margin-top:var(--space-20)}
.pagination a{text-decoration:underline}
label{display:block;color:#55544f;font-size:var(--type-small);margin-bottom:var(--space-20)}
input:not([type=checkbox]),select,textarea{display:block;width:100%;border:1px solid #d4d3cc;background:#fff;color:var(--ui-ink);border-radius:var(--ui-radius-control);min-height:46px;padding:var(--space-12) var(--space-12);margin-top:var(--space-8);font-size:var(--type-body);line-height:1.5;max-width:100%}
textarea{resize:vertical;min-height:100px}
input::placeholder{color:#89887e}
input[type=file]{background:#f8f7f4;padding:var(--space-16)}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--ui-action);flex:none;margin:0}
.check{display:flex;align-items:center;gap:var(--space-12);font-size:var(--type-small)}
.checks{display:flex;gap:var(--space-24);flex-wrap:wrap}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-20)}
.field-grid label{margin:0}
.field{min-width:0}
.field label{margin-bottom:0}
.field.wide{grid-column:1/-1}
.field small{margin-top:var(--space-8)}
.checkbox-field{display:flex;align-items:center;gap:var(--space-12);align-self:center;flex-direction:row-reverse;justify-content:flex-end;padding-top:var(--space-24)}
.field-error{color:var(--ui-danger);font-size:var(--type-caption)}
.back-link{display:inline-block;font-size:var(--type-caption);color:var(--ui-muted);margin-top:var(--space-2)}
.title-tag{font-size:var(--type-body);letter-spacing:0;color:var(--ui-muted);font-weight:400}




dt{color:var(--ui-muted);font-size:var(--type-caption)}
dd{margin:var(--space-2) 0 var(--space-12);overflow-wrap:anywhere}

.timeline{border-left:1px solid var(--ui-line);margin:var(--space-20) 0 var(--space-20) var(--space-4);padding-left:var(--space-16)}
.timeline a{display:block;position:relative;margin-bottom:var(--space-20)}
.timeline a:before{position:absolute;content:"";width:7px;height:7px;background:#b8b8af;border-radius:50%;left:-20px;top:8px}
.timeline a[aria-current]{color:var(--ui-ink)}
.timeline a[aria-current]:before{background:var(--ui-success)}
.timeline b{font-size:var(--type-small)}
.timeline span{display:block;font-size:var(--type-caption);color:var(--ui-muted)}
.timeline small{font-size:var(--type-caption)}
.divider{height:1px;background:var(--ui-line);margin:var(--space-24) 0}
.form-section{padding:var(--space-32)}
.actions{display:flex;justify-content:flex-end;gap:var(--space-12);flex-wrap:wrap}
.answer-list{margin-bottom:0}
.answer-list>div{border-bottom:1px solid #f1f0ec;padding:var(--space-12) 0}
.answer-list>div:last-child{border:0}
.answer-list dd{font-size:var(--type-small);margin:var(--space-4) 0}
.review-panel{border-color:#dad5c8;background:#fffefa}
.review-panel blockquote{margin:var(--space-16) 0;padding:var(--space-12) var(--space-16);background:#f1efe6;border-radius:var(--ui-radius-sm);font-size:var(--type-small)}
.close-review{margin-top:var(--space-16)}
.contact-item{border-bottom:1px solid var(--ui-line);padding:var(--space-16) 0;font-size:var(--type-small)}
.contact-item:last-child{border-bottom:0}
.contact-item p{margin:var(--space-8) 0}
.contact-item small{font-size:var(--type-caption)}
details{font-size:var(--type-small)}
summary{cursor:pointer;padding:var(--space-12) 0;font-weight:500}
details>form,details>dl{margin-top:var(--space-16)}
dialog{border:1px solid var(--ui-line);border-radius:var(--ui-radius-panel);max-width:680px;width:calc(100% - 32px);max-height:85dvh;padding:var(--space-32);color:var(--ui-ink)}
dialog::backdrop{background:#25241e60}
.dialog-heading{display:flex;justify-content:space-between;align-items:center}
#confirm-content{max-height:50dvh;overflow:auto;margin-bottom:var(--space-20)}
.narrow{max-width:530px;margin:var(--space-40) auto}
.narrow.left{margin-left:0}
.narrow h1{font-size:var(--type-heading)}
.qr{width:220px;height:220px;display:block;margin:var(--space-20) auto}
.import-upload{text-align:center;padding:var(--space-40) var(--space-24);background:#f1f0ec}
.upload-icon{font-size:var(--type-display);display:grid;place-items:center;background:#fff;width:65px;height:65px;border-radius:var(--ui-radius-panel);margin:0 auto var(--space-24)}
.import-upload p{font-size:var(--type-small);color:var(--ui-muted)}
.import-upload form{max-width:520px;margin:var(--space-24) auto}
.assignment-row{padding:var(--space-20) 0;border-bottom:1px solid var(--ui-line);display:grid;grid-template-columns:1fr minmax(200px,350px);gap:var(--space-32)}
.assignment-row p{font-size:var(--type-caption);margin:var(--space-4) 0}
.compact-form{min-width:230px}
.compact-form label{font-size:var(--type-caption);margin-bottom:var(--space-12)}
.compact-form input,.compact-form select{font-size:var(--type-small);min-height:40px}
.mono{font-family:var(--ui-font);font-size:var(--type-caption)}
.guest{max-width:1240px;margin:auto;padding:var(--space-32) var(--space-32)}
.guest>.brand{margin-left:var(--space-24)}
.guest .main{padding:66px var(--space-24)}




.skip{position:absolute;top:-100px;left:15px;background:white;padding:var(--space-12);z-index:30}
.skip:focus{top:10px}

@media(min-width:1600px){.main{padding-top:var(--space-32)}
}
@media(max-width:1150px){:root{--sidebar:190px}
.main{padding:var(--space-24) var(--space-24) var(--space-40)}
.topbar{padding:0 var(--space-24)}
.sidebar{padding-left:var(--space-12);padding-right:var(--space-12)}
.sidebar .brand{margin-left:var(--space-8)}
.brand{font-size:var(--type-body)}
.brand small{font-size:var(--type-caption)}



.guest .main{padding-top:var(--space-32)}
}

@media(max-width:880px){.sidebar{position:static;width:auto;padding:var(--space-16) var(--space-24);border-right:0;border-bottom:1px solid var(--ui-line)}
.shell{display:block}
.sidebar .brand{margin:0}
.sidebar nav{display:flex;overflow-x:auto;margin-top:var(--space-16);gap:var(--space-4)}
.sidebar nav>a{white-space:nowrap;padding:var(--space-8) var(--space-12);font-size:var(--type-caption)}

.workspace{margin:0}
.topbar{height:64px}
.main{padding:var(--space-20) var(--space-24) var(--space-32)}



.timeline{display:flex;gap:var(--space-32);border-left:0;border-top:1px solid var(--ui-line);padding:var(--space-16) 0 0;margin:var(--space-20) 0 0}
.timeline a:before{top:-19px;left:0}

.guest{padding:var(--space-24) var(--space-20)}
.guest .main{padding:var(--space-32) var(--space-4)}
.guest>.brand{margin-left:var(--space-4)}

}

@media(max-width:650px){body{font-size:var(--type-body)}
.main{padding:var(--space-16) var(--space-16) var(--space-32)}
.sidebar{padding:var(--space-16) var(--space-16)}
.topbar{padding:0 var(--space-16)}
.topbar>.muted{font-size:var(--type-caption)}
.account{gap:var(--space-8)}
.account .avatar{display:none}
.page-heading{margin:var(--space-16) 0 var(--space-24);align-items:flex-start;gap:var(--space-16)}
.page-heading>.button,.page-heading>form .button{padding:var(--space-8) var(--space-16);font-size:var(--type-caption);min-height:40px}
h1{font-size:var(--type-heading);letter-spacing:normal}
.eyebrow{font-size:var(--type-caption)}
.page-heading p{font-size:var(--type-caption)}




.panel{padding:var(--space-20) var(--space-16);border-radius:var(--ui-radius-panel);margin-bottom:var(--space-20)}
.section-head{align-items:flex-start}
.section-head h2{font-size:var(--type-subtitle)}
.section-head p{font-size:var(--type-caption)}
.section-head .text-link{font-size:var(--type-caption)}
.table-wrap{margin:0 calc(-1 * var(--space-4))}
table{min-width:740px}
.filters{gap:var(--space-12)}
.filters label{flex:1 1 130px}
.filters .search-label{flex-basis:100%}
.field-grid{grid-template-columns:1fr;gap:var(--space-20)}
.field.wide{grid-column:auto}
.checkbox-field{padding-top:0}


.timeline{gap:var(--space-48)}
.title-tag{display:block;margin-top:var(--space-4);font-size:var(--type-small)}
.assignment-row{grid-template-columns:1fr;gap:var(--space-8)}
.guest{padding:var(--space-24) var(--space-20)}
.guest>.brand{margin-left:0}
.guest .main{padding:var(--space-32) 0}

.narrow{margin-top:var(--space-20)}

.detail-main{min-width:0}
dialog{padding:var(--space-24)}
.dialog-heading h2{font-size:var(--type-subtitle)}
}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}
}

/* 术前与随访变化、问卷配置 */
.sidebar{overflow-y:auto}

.detail-main{min-width:0}

.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16)}

.comparison-side{background:var(--ui-bg,#f5f4f0);border-radius:var(--ui-radius-control);padding:var(--space-16);min-width:0}

.comparison-side h3{margin:0 0 var(--space-12)}
.comparison-side label{display:block;margin-bottom:var(--space-12)}

.medication-row{border:1px solid #dfdfd8;border-radius:var(--ui-radius-control);padding:var(--space-20);margin:var(--space-12) 0 var(--space-20);min-width:0}

.medication-row legend{padding:0 var(--space-8);font-weight:600}
.medication-summary,.change-preview{display:block;padding:var(--space-12);background:#edf2ed;border-radius:var(--ui-radius-sm);color:#344b39;font-size:var(--type-small);overflow-wrap:anywhere}

.medication-editor{min-width:0}
.medication-editor[hidden],[data-med-other][hidden],[data-med-details][hidden],[data-choice-options][hidden],[data-number-options][hidden]{display:none!important}

.trend-table{min-width:850px}
.trend-table td{white-space:normal;min-width:130px;vertical-align:top}
.trend-table td:nth-child(3){min-width:250px}
.trend-table small{display:block;margin-top:var(--space-4)}

.question-card{margin-bottom:var(--space-12)}
.question-card summary{font-weight:600;padding:var(--space-8) 0;cursor:pointer}
.question-card[open] summary{margin-bottom:var(--space-20)}

.option-row{display:flex;align-items:center;gap:var(--space-12);margin:var(--space-8) 0}
.option-row input{min-width:0}
.option-row button{flex-shrink:0}

.publish-panel{margin-top:var(--space-24)}
.question-card .actions{margin-top:var(--space-16)}
.question-card .field-grid label{min-width:0}

@media(max-width:640px){.comparison-grid{grid-template-columns:1fr}
.medication-row{padding:var(--space-12)}
.comparison-side{padding:var(--space-12)}
.question-card .actions{gap:var(--space-8);flex-wrap:wrap}
}

@media(max-width:880px){.timeline{flex-wrap:wrap;gap:var(--space-16) var(--space-24)}
.sidebar{overflow-y:visible}

}

/* 电话随访的移动输入与导入基线 */
select{appearance:none;-webkit-appearance:none;background-color:#fff;background-image:url("select-chevron.baa63789127e.svg");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;padding-right:var(--space-40)}

.task-filters>summary{display:block;min-height:44px;font-size:var(--type-small)}
.task-filters>summary small{display:inline;margin-left:var(--space-8)}
.task-filters[open]>summary{margin-bottom:var(--space-12)}

.baseline-summary>summary,.saved-summary>summary,.trend-summary>summary{display:block}

html{scroll-padding-top:90px;scroll-padding-bottom:calc(var(--dock-height,90px) + 24px)}

.baseline-summary summary,.saved-summary summary,.trend-summary summary{font-size:var(--type-subtitle);min-height:44px}

.baseline-summary summary .tag,.saved-summary summary .tag,.trend-summary summary .tag{margin-left:var(--space-8)}

.import-baseline{min-width:220px;max-width:380px}
.import-baseline dd{font-size:var(--type-small);white-space:pre-line}

.form-jump{position:sticky;top:8px;z-index:3;display:flex;align-items:center;gap:var(--space-16);padding:var(--space-12) var(--space-16);border:1px solid var(--ui-line);border-radius:var(--ui-radius-control);background:#fff;margin-bottom:var(--space-16)}

.form-jump label{flex-shrink:0;margin:0;font-size:var(--type-small)}
.form-jump select{margin:0;min-height:44px;font-size:var(--type-body)}

.form-jump:has(select:empty){display:none}
.form-section{scroll-margin-top:88px}
.followup-form{padding-bottom:var(--space-20)}

.followup-form input,.followup-form select,.followup-form textarea{scroll-margin-top:96px;scroll-margin-bottom:calc(var(--dock-height,90px) + 24px)}

.field [aria-invalid=true]{border-color:var(--ui-danger);box-shadow:0 0 0 1px var(--ui-danger)}

[data-client-error]{display:block;margin-top:var(--space-8);color:var(--ui-danger);font-size:var(--type-small)}
#form-errors{white-space:pre-line;scroll-margin-top:90px}

#confirm-dialog{max-height:calc(var(--visible-height,100dvh) - 24px)}

#confirm-content{max-height:max(100px,calc(var(--visible-height,100dvh) - 230px));overscroll-behavior:contain}

#confirm-dialog>.actions{position:sticky;bottom:0;background:#fff;padding-top:var(--space-12)}

html[data-keyboard-open] .form-jump{position:static}

html[data-keyboard-open]{scroll-padding-top:16px;scroll-padding-bottom:24px}

@media(pointer:coarse){.text-button,summary,.row-action,.text-link,.pagination a,nav>a{min-height:44px;display:inline-flex;align-items:center}
.sidebar nav>a{display:flex;min-height:44px}
.text-button{font-size:var(--type-small)}
.checkbox-field>label{min-height:44px;display:flex;align-items:center}
.check{min-height:44px}
.check input,input[type=checkbox]{width:22px;height:22px}
.option-row .text-button{min-width:44px}
}

@media(max-width:1180px){



}

@media(min-width:701px) and (max-width:1180px){.detail-main .field-grid{gap:var(--space-20) var(--space-24)}
.comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.comparison-side .field-grid{gap:var(--space-12)}


}

@media(max-width:700px){
  .main{padding-left:max(var(--space-16),env(safe-area-inset-left));padding-right:max(var(--space-16),env(safe-area-inset-right));padding-bottom:max(var(--space-32),env(safe-area-inset-bottom))}

  .sidebar nav>a{min-height:44px;font-size:var(--type-small)}
.topbar{height:64px}
.text-button{min-height:44px;font-size:var(--type-small)}
.row-action,.text-link,summary{min-height:44px}
.section-head .text-link{font-size:var(--type-small);display:flex;align-items:center}

  .page-heading{flex-wrap:wrap;gap:var(--space-12)}
.page-heading h1{font-size:var(--type-heading)}
.page-heading>.button,.page-heading>form .button{min-height:44px;font-size:var(--type-small)}
.title-tag{font-size:var(--type-body)}
.eyebrow{letter-spacing:.4px}

  .field-grid,.comparison-grid{grid-template-columns:minmax(0,1fr)}
.field.wide{grid-column:auto}
.field label{font-size:var(--type-small)}
.checkbox-field{padding-top:0}
.checkbox-field>label{min-height:44px;display:flex;align-items:center}

  .medication-row{padding:var(--space-16) var(--space-12)}
.medication-row legend{font-size:var(--type-body)}
.medication-editor .text-button,.medication-editor .button{min-height:44px;font-size:var(--type-small)}
.medication-editor [data-add-medication]{width:100%;margin-top:var(--space-8)}
.comparison-side{padding:var(--space-16) var(--space-12)}
.comparison-side label{font-size:var(--type-small)}
.medication-summary{line-height:1.8}

  .form-jump{top:4px;gap:var(--space-12);padding:var(--space-8) var(--space-12)}
.form-jump label{font-size:var(--type-small)}
.form-jump select{min-width:0;border-radius:var(--ui-radius-sm)}
.form-section{scroll-margin-top:82px}


  


.baseline-summary small{font-size:var(--type-caption)}
.saved-summary .tag,.trend-summary .tag{white-space:normal;font-size:var(--type-caption)}

  .task-table,.trend-table{min-width:0;width:100%;display:block}
.task-table thead,.trend-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.task-table tbody,.trend-table tbody{display:block}

  .task-table tr,.trend-table tr{display:block;padding:var(--space-16) 0;border-bottom:1px solid var(--ui-line)}
.task-table tr:last-child,.trend-table tr:last-child{border-bottom:0}

  .task-table td,.trend-table td,.trend-table td:nth-child(3){display:grid;grid-template-columns:90px minmax(0,1fr);gap:var(--space-8);min-width:0;border:0;padding:var(--space-8) var(--space-4);font-size:var(--type-small);overflow-wrap:anywhere}
.task-table td:before,.trend-table td:before{content:attr(data-label);color:#66655e;font-size:var(--type-small)}

  .task-table td.task-identity{display:block;margin-bottom:var(--space-8)}
.task-table td.task-identity:before,.task-table td.task-action:before,.task-table td[colspan]:before{display:none}
.task-table td.task-identity b{font-size:var(--type-subtitle)}
.task-table td.task-identity small{font-size:var(--type-caption);max-width:none}
.task-table td.task-action,.task-table td[colspan]{display:block}
.task-table .row-action{display:flex;justify-content:center;align-items:center;min-height:46px;margin-top:var(--space-8);background:var(--ui-fill);border-radius:var(--ui-radius-sm);font-size:var(--type-body)}
.task-table .tag,.task-table .badge{justify-self:start;font-size:var(--type-caption)}
.task-table td>small{grid-column:2;margin-top:0}

  .trend-table td>small{grid-column:2}
.trend-table td small{max-width:none;font-size:var(--type-caption)}
.table-wrap:has(.task-table),.table-wrap:has(.trend-table){overflow:visible;margin:0}

  .task-table td[data-label="状态"]{align-items:center}
.filters label{font-size:var(--type-small)}
.filters .button,.filters .text-link{min-height:44px}
.filters input,.filters select{font-size:var(--type-body);min-height:46px}
.pagination a{min-height:44px;display:inline-flex;align-items:center}
.empty{padding:var(--space-24) var(--space-8)}

}


/* 操作栏始终以视口为定位基准，避免长表单内 sticky 的滚动位移。 */
.form-dock{position:fixed;inset:auto 0 0 var(--sidebar);margin:0;border:0;border-top:1px solid var(--ui-line);border-radius:0;box-shadow:none;padding:var(--space-12) max(var(--space-24),env(safe-area-inset-right)) max(var(--space-12),env(safe-area-inset-bottom));background:#fff;display:block;z-index:10}

.form-dock-inner{max-width:1512px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);min-width:0}

.form-dock-inner>span{font-size:var(--type-caption);color:var(--ui-muted)}

.form-dock .actions{flex:none;flex-wrap:nowrap}
.form-dock .button{min-height:48px}

.main:has(#followup-form){padding-bottom:calc(var(--dock-height,100px) + var(--space-32))}

html[data-keyboard-open] .form-dock{visibility:hidden;pointer-events:none}

.baseline-summary .section-head{margin-bottom:0;align-items:center}
.baseline-summary .text-link{display:inline-flex;align-items:center;min-height:44px}

.baseline-form{max-width:1000px}
.baseline-form .field-grid>div{min-width:0}
.baseline-actions{margin:var(--space-20) 0}
.baseline-changes{padding-left:var(--space-20);overflow-wrap:anywhere}

[data-baseline-only] .comparison-grid{grid-template-columns:minmax(0,1fr)}

[data-baseline-only] .medication-baseline>h3{display:none}

@media(max-width:880px),(pointer:coarse) and (max-width:1180px){.form-dock{left:0}
}

@media(max-width:700px){
  .form-dock{padding:var(--space-12) max(var(--space-16),env(safe-area-inset-right)) max(var(--space-12),env(safe-area-inset-bottom)) max(var(--space-16),env(safe-area-inset-left))}

  .form-dock-inner{flex-direction:column;align-items:stretch;gap:var(--space-8)}

  .form-dock .actions{display:grid;gap:var(--space-12);width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}

  .form-dock .button{min-width:0;min-height:48px;font-size:var(--type-body);padding:var(--space-12) var(--space-8);border-radius:var(--ui-radius-control)}

  .baseline-actions{display:grid;grid-template-columns:1fr 1fr}
.baseline-actions .button{padding-inline:var(--space-12)}

  .comparison-side .field-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-12)}

}

@media print{.form-dock,.form-jump{display:none}
.main:has(#followup-form){padding-bottom:0}
}




@media(min-width:701px) and (max-width:1180px){.form-dock .button{min-width:150px}
}


/* 统一应用导航、触摸反馈和选择面板。 */
:where([data-ui]){--ui-accent:#405647;--ui-accent-soft:#edf1ed;--motion-fast:140ms;--motion-page:200ms}

html{background:var(--ui-canvas);scrollbar-gutter:stable;overscroll-behavior-y:contain}

body{min-height:100dvh}
::selection{background:#dce5dc;color:#20251f}

:is(a,button,input,select,textarea,summary){-webkit-tap-highlight-color:transparent}

:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}

html[data-input-mode=pointer] :is(a,button,input,select,textarea,summary):focus{outline:none}

input:focus,textarea:focus{border-color:#65746a;box-shadow:none;caret-color:var(--ui-ink)}

#main:focus{outline:none}
.button,.text-button,.icon-button,.choice-trigger{transition:background-color var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast)}

.button:active,.icon-button:active,.choice-trigger:active{transform:scale(.985)}

input[type=number]{appearance:textfield;-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

input[type=checkbox]{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:20px;height:20px;border:1.5px solid #777e75;border-radius:var(--ui-radius-check);background:#fff;cursor:pointer}

input[type=checkbox]:checked{background:var(--ui-action);border-color:var(--ui-action)}

input[type=checkbox]:checked:after{content:"";width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}

.check{min-height:44px}
.icon{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}

.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:var(--space-12);border:0;border-radius:var(--ui-radius-control);background:transparent;color:var(--ui-ink)}

.icon-button:active{background:var(--ui-fill)}
.mobile-brand,.mobile-tabs{display:none}

.sidebar nav{margin-top:var(--space-12)}
.sidebar nav>a{min-height:46px}
.sidebar nav>a>svg{width:22px;height:22px}

.choice-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;clip-path:inset(50%);opacity:0;pointer-events:none}

.choice-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);width:100%;min-width:0;min-height:48px;padding:var(--space-12) var(--space-12);margin-top:var(--space-8);border:1px solid #d4d3cc;border-radius:var(--ui-radius-control);background:white;color:var(--ui-ink);text-align:left;font-size:var(--type-body);line-height:1.5}

.choice-trigger>span:first-child{min-width:0;overflow-wrap:anywhere}
.choice-trigger.is-placeholder{color:#65645f}

.choice-trigger[aria-invalid=true]{border-color:var(--ui-danger)}
.choice-trigger:disabled{background:var(--ui-fill);cursor:default;opacity:.6}

.choice-chevron{width:8px;height:8px;flex:none;margin-right:var(--space-4);border:solid #62685f;border-width:0 1.8px 1.8px 0;transform:translateY(-2px) rotate(45deg)}

.app-sheet{width:min(560px,calc(100% - 32px));padding:var(--space-24);border:1px solid var(--ui-line);border-radius:var(--ui-radius-panel);max-height:min(84dvh,calc(var(--sheet-height,100dvh) - 24px));color:var(--ui-ink);background:#fff}

.app-sheet[open]{display:flex;flex-direction:column;gap:var(--space-16)}
.app-sheet::backdrop,dialog::backdrop{background:#171b174d}

.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);flex:none}
.sheet-head h2{margin:0;font-size:var(--type-title)}
.sheet-head .text-button{font-size:var(--type-body);min-width:52px;min-height:44px;color:var(--ui-ink)}

.choice-sheet .choice-search input{margin:0;flex:none;background:var(--ui-fill);border-color:transparent}

.choice-search{display:flex;align-items:center;gap:var(--space-8);flex:none}
.choice-search input{flex:1;min-width:0}
.choice-search .text-button{min-width:44px;min-height:44px;font-size:var(--type-small);color:var(--ui-ink)}

input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}

.choice-options{overflow-y:auto;overscroll-behavior:contain;min-height:0;max-height:60dvh;padding:var(--space-2)}

.choice-option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);min-height:50px;width:100%;padding:var(--space-12) var(--space-16);border:0;border-radius:var(--ui-radius-sm);background:transparent;color:var(--ui-ink);text-align:left;font-size:var(--type-body);line-height:1.5}

.choice-option[aria-selected=true]{background:var(--ui-accent-soft);color:#2c4333;font-weight:500}

.choice-option[aria-selected=true]:after{content:"";width:6px;height:12px;flex:none;margin-right:var(--space-4);border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg)}

.choice-option:active{background:#e6eae3}
.choice-empty{padding:var(--space-12) var(--space-16);margin:0;color:var(--ui-muted)}

.account-links{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-8);overflow-y:auto;overscroll-behavior:contain}

.account-links>a{font-size:var(--type-body);min-height:50px;padding:var(--space-12) var(--space-8);margin:0;border-radius:var(--ui-radius-sm);display:flex;align-items:center;gap:var(--space-12);color:var(--ui-ink)}

.leave-sheet{max-width:420px}
.leave-sheet h2{margin:0;font-size:var(--type-title)}
.leave-actions{display:grid;gap:var(--space-12)}
.leave-actions .text-button{font-size:var(--type-small);min-height:44px}

html:has(dialog[open]){overflow:hidden}

.navigation-snapshot{position:fixed!important;top:0;height:100dvh;margin:0!important;pointer-events:none;z-index:25;background:var(--ui-canvas);overflow:hidden;contain:paint}

.nav-progress{position:fixed;z-index:100;left:0;top:0;width:100%;height:3px;background:transparent;pointer-events:none;overflow:hidden}

.nav-progress:before{content:"";display:block;width:35%;height:100%;background:#607363;animation:nav-progress 1.1s ease-in-out infinite}

@keyframes nav-progress{from{transform:translateX(-100%)}
to{transform:translateX(390%)}
}

.navigation-notice{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:80;max-width:min(500px,calc(100vw - 32px));padding:var(--space-12) var(--space-20);border-radius:var(--ui-radius-control);background:#28352c;color:#fff;font-size:var(--type-small);box-shadow:0 8px 24px #18291d18}

.navigation-notice .text-button{color:white;text-decoration:underline;font-size:var(--type-small);margin-left:var(--space-12)}

@media(max-width:880px),(pointer:coarse) and (max-width:1180px){
  .sidebar{display:none}
.workspace{margin-left:0}
.desktop-date,.desktop-account{display:none}

  .topbar{position:sticky;top:0;z-index:40;height:58px;padding:0 var(--space-16);background:var(--ui-canvas);border-bottom:1px solid var(--ui-line)}

  .mobile-brand{display:block;font-size:var(--type-body);font-weight:600}

  .mobile-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;z-index:40;inset:auto 0 0;padding:var(--space-8) max(var(--space-12),env(safe-area-inset-right)) max(var(--space-8),env(safe-area-inset-bottom));background:var(--ui-canvas);border-top:1px solid var(--ui-line)}

  .mobile-tabs>a,.mobile-tabs>button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:52px;font-size:var(--type-caption);color:#65685f;border-radius:var(--ui-radius-control);padding:var(--space-8) var(--space-2)}

  .mobile-tabs [aria-current=page]{color:#25372b;background:#e8ede7}
.mobile-tabs>a:active,.mobile-tabs>button:active{background:#e8ede7}

  .mobile-tabs>a>span,.mobile-tabs>button>span{width:auto;font-size:var(--type-caption);line-height:1.3;white-space:nowrap}

  .main{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
.has-editor .mobile-tabs{display:none}

  .has-editor .main{padding-bottom:calc(var(--dock-height,100px) + var(--space-32))}

  .has-editor .back-link{min-height:44px;display:inline-flex;align-items:center}

}

@media(max-width:700px){
  dialog,.app-sheet{position:fixed;inset:auto 0 0;width:100%;max-width:none;margin:0;border-radius:var(--ui-radius-panel) var(--ui-radius-panel) 0 0;border:0;padding:var(--space-20) var(--space-20) max(var(--space-20),env(safe-area-inset-bottom));max-height:min(90dvh,calc(var(--sheet-height,100dvh) - 16px))}

  .app-sheet[open]{gap:var(--space-12)}
.choice-options{max-height:none}
.choice-sheet{overflow:hidden}
.choice-trigger{min-height:48px}

  .account-links{grid-template-columns:minmax(0,1fr)}
.account-links>a{font-size:var(--type-small)}

  #confirm-dialog{border-radius:var(--ui-radius-panel) var(--ui-radius-panel) 0 0}
#confirm-content{max-height:calc(var(--visible-height,100dvh) - 240px)}

  .guest{padding:var(--space-24) var(--space-16)}
.guest .main{padding-top:var(--space-32)}

}

@media(hover:none){a:hover{color:inherit}
.button:hover{background:var(--ui-action)}
.button.secondary:hover{background:var(--ui-fill)}
nav>a:hover{background:transparent}
.choice-option:hover{background:transparent}
.choice-option[aria-selected=true]:hover{background:var(--ui-accent-soft)}
}

@media(prefers-reduced-motion:reduce){:root{--motion-fast:0ms}
.button:active,.icon-button:active,.choice-trigger:active{transform:none}
.nav-progress:before{animation:none;width:100%;opacity:.5}
}

@media(forced-colors:active){input[type=checkbox]{appearance:auto}
.choice-trigger,.choice-option{border:1px solid ButtonText}
}

@media print{.mobile-tabs,.topbar,.navigation-notice,.nav-progress,.choice-sheet{display:none}
}

.page-heading>div{min-width:0}
h1,.sheet-head h2{overflow-wrap:anywhere}


/* 患者页以当前工作为中心，资料作为覆盖层，不改变正文列宽。 */
.patient-heading{margin-top:var(--space-8);margin-bottom:var(--space-20);align-items:flex-start}

.patient-heading h1{font-size:var(--type-heading);margin:var(--space-4) 0 var(--space-8)}
.patient-identity{font-size:var(--type-caption);color:var(--ui-muted)}

.patient-heading-actions{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap;justify-content:flex-end}

.patient-heading-actions .button{padding:var(--space-8) var(--space-16);min-height:44px;font-size:var(--type-small)}

.patient-workspace{min-height:calc(100dvh - 300px)}

.patient-tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--ui-line);margin-bottom:var(--space-20)}

.patient-tabs>a{position:relative;display:flex;justify-content:center;align-items:center;gap:var(--space-8);min-height:48px;min-width:120px;padding:var(--space-12) var(--space-16);margin:0;border-radius:var(--ui-radius-sm) var(--ui-radius-sm) 0 0;color:var(--ui-muted);font-size:var(--type-body)}

.patient-tabs>a[aria-selected=true]{color:var(--ui-ink);background:var(--ui-fill)}

.patient-tabs>a[aria-selected=true]:after{content:"";position:absolute;bottom:-1px;height:2px;left:16px;right:16px;background:var(--ui-accent);border-radius:2px}

.patient-tabs .tab-status{font-size:var(--type-caption);line-height:1.3;min-width:0;width:auto;color:var(--ui-warning)}

.patient-panel{min-height:40dvh}
.patient-panel[hidden]{display:none!important}

.patient-panel .saved-summary .answer-list{max-height:min(60dvh,640px);overflow-y:auto;overscroll-behavior:contain;padding-right:var(--space-8);scrollbar-gutter:stable}

.patient-panel .trend-summary>.table-wrap{max-height:65dvh;overflow:auto;overscroll-behavior:contain}

.form-jump .choice-trigger{margin:0;min-height:44px;min-width:0;flex:1}
.form-jump .text-button{flex:none;padding:var(--space-8) var(--space-4)}

.patient-sheet{padding:var(--space-24);width:470px;max-width:min(470px,calc(100vw - 40px));height:100dvh;max-height:100dvh;inset:0 0 0 auto;margin:0;border-radius:var(--ui-radius-panel) 0 0 var(--ui-radius-panel);border-width:0 0 0 1px}

.patient-sheet .sheet-head{padding-bottom:var(--space-16);border-bottom:1px solid var(--ui-line)}

.patient-context-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 var(--space-2) var(--space-20)}

.patient-context-section h3{font-size:var(--type-body);margin:0 0 var(--space-16)}
.patient-context-section dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:var(--space-12) var(--space-16);margin:0}

.patient-context-section dt,.patient-context-section dd{margin:0;font-size:var(--type-small);overflow-wrap:anywhere}

.patient-context-section dd small{font-size:var(--type-caption)}
.patient-context-section .timeline{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);border:0;padding:0;margin:var(--space-12) 0 var(--space-20)}

.patient-context-section .timeline a{padding:var(--space-12) var(--space-12);margin:0;background:var(--ui-fill);border-radius:var(--ui-radius-sm);min-height:70px}

.patient-context-section .timeline a:before{display:none}
.patient-context-section .timeline a[aria-current]{background:var(--ui-accent-soft);outline:1px solid #bbc8bd}

.patient-context-body .baseline-summary{border:0;border-top:1px solid var(--ui-line);border-radius:0;padding:var(--space-20) 0 0;margin:var(--space-20) 0 0}

.patient-context-body .section-head{flex-wrap:wrap;gap:0 var(--space-12)}
.patient-context-body .section-head .actions{gap:var(--space-16)}

.disclosure-moving{overflow:clip;overflow-anchor:none}

dialog[open]::backdrop{animation:dialog-shade-in 220ms ease-out both}
dialog[data-closing]::backdrop{animation:dialog-shade-out 140ms ease-out both}

@keyframes dialog-shade-in{from{background:#171b1700}
to{background:#171b174d}
}

@keyframes dialog-shade-out{from{background:#171b174d}
to{background:#171b1700}
}

@media(max-width:880px),(pointer:coarse) and (max-width:1180px){.form-jump{top:64px}
.form-section{scroll-margin-top:148px}
.followup-form input,.followup-form textarea{scroll-margin-top:152px}
.patient-heading h1{font-size:var(--type-heading-small)}
}

@media(max-width:700px){
  .patient-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-12)}

  .patient-heading-actions{flex-direction:column;gap:var(--space-8);align-items:flex-end}

  .patient-heading .title-tag{font-size:var(--type-small)}
.patient-heading p{margin:0}
.patient-heading-actions .button{padding:var(--space-8) var(--space-12);white-space:nowrap}

  .patient-tabs>a{flex:1;min-width:0;padding:var(--space-12) var(--space-8);font-size:var(--type-body)}
.patient-tabs{margin-bottom:var(--space-16)}

  .patient-sheet{inset:auto 0 0;max-width:none;width:100%;height:90dvh;max-height:calc(var(--sheet-height,100dvh) - 16px);border:0;border-radius:var(--ui-radius-panel) var(--ui-radius-panel) 0 0;padding:var(--space-20) var(--space-20) max(var(--space-20),env(safe-area-inset-bottom))}

  .patient-context-section dl{grid-template-columns:100px minmax(0,1fr);gap:var(--space-12)}
.patient-context-body .timeline{gap:var(--space-8)}

}

@media(prefers-reduced-motion:reduce){dialog[open]::backdrop,dialog[data-closing]::backdrop{animation:none}
}

@media print{.patient-tabs,.patient-heading-actions{display:none}
.patient-panel[hidden]{display:block!important}
}


/* 可用宽度驱动折叠/展开；软键盘只改变垂直可见范围。 */
input,select,textarea,.field-grid>*{min-inline-size:0}

.medication-editor{container-type:inline-size}
.medication-row legend{max-width:100%;overflow-wrap:anywhere}

.medication-count{font-size:var(--type-small);margin:0 0 var(--space-12);color:var(--ui-muted)}

.medication-extra{border-top:1px solid var(--ui-line);margin-top:var(--space-12);padding-top:var(--space-4)}

.medication-extra summary{font-size:var(--type-small);min-height:44px}
.medication-extra label{margin:var(--space-8) 0 var(--space-12)}
.medication-extra textarea{min-height:80px}

@container(max-width:620px){.medication-row .comparison-grid{grid-template-columns:minmax(0,1fr)}
}

@container(min-width:621px){.medication-row .comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@container(max-width:250px){.comparison-side .field-grid{grid-template-columns:minmax(0,1fr)}
}

[data-med-key$="_unit"]+.choice-trigger>span:first-child{white-space:nowrap;overflow-wrap:normal}

.patient-top-context{display:none;min-width:0;max-width:calc(100% - 56px);border:0;background:none;color:var(--ui-ink);text-align:left;padding:var(--space-4) 0}

.patient-top-context>span,.patient-top-context>small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

.patient-top-context>span{font-size:var(--type-body);line-height:1.4;font-weight:600}
.patient-top-context>small{font-size:var(--type-caption);line-height:1.5}

@media(max-width:880px),(pointer:coarse) and (max-width:1180px){.patient-top-context{display:block}
.topbar{gap:var(--space-12);flex-wrap:nowrap}
.account-menu-button{flex:none}
.mobile-brand{min-width:0}
}

@media(pointer:coarse),(max-width:700px){.compact-form input,.compact-form select,.compact-form textarea,.filters input,.filters select,.choice-sheet input{font-size:var(--type-body)}
}

html[data-keyboard-open] .mobile-tabs,html[data-input-compact] .mobile-tabs,html[data-input-compact] .form-dock{visibility:hidden;pointer-events:none}

html[data-keyboard-open] .form-jump,html[data-input-compact] .form-jump{position:static}

html[data-keyboard-open] dialog[open],html[data-input-compact] dialog[open]{top:calc(var(--visual-top,0px) + 8px);bottom:auto;margin-block:0;max-height:calc(var(--visible-height,100dvh) - 16px)}

html[data-keyboard-open] .patient-sheet,html[data-input-compact] .patient-sheet{height:calc(var(--visible-height,100dvh) - 16px)}

html[data-keyboard-open] #confirm-content,html[data-input-compact] #confirm-content{max-height:max(80px,calc(var(--visible-height,100dvh) - 200px))}

@media(max-height:480px) and (orientation:landscape){.topbar{height:50px}
.main{padding-top:var(--space-12)}
.patient-heading{margin-bottom:var(--space-12)}
.patient-heading h1{font-size:var(--type-heading-small)}
.form-jump{top:54px}
.patient-sheet{max-height:calc(var(--visible-height,100dvh) - 12px)}
}

@media print{.patient-top-context{display:none}
.medication-extra{display:block}
}

.keyboard-tools{display:none;position:fixed;z-index:120;right:max(12px,env(safe-area-inset-right));bottom:calc(var(--visual-bottom,0px) + 8px)}

.keyboard-tools .button{min-height:42px;padding:var(--space-8) var(--space-16);font-size:var(--type-small);background:#f3f2ee}

html[data-keyboard-open] .keyboard-tools{display:block}

html:has(dialog[open]) .keyboard-tools{display:none}

.sheet-head>div{min-width:0;overflow-wrap:anywhere}
.sheet-head>.icon-button{flex:none}

#app-view:after{content:"";display:block;height:var(--keyboard-scroll-space,0px);pointer-events:none}

html[data-input-tiny] .topbar{position:static}

html[data-input-tiny] textarea:focus{min-height:44px;height:min(100px,max(44px,calc(var(--visible-height,100dvh) - 84px)))}

html[data-input-tiny] .choice-sheet{padding:var(--space-12);gap:var(--space-8)}

html[data-input-tiny] .choice-sheet .sheet-head{display:contents}

html[data-input-tiny] .choice-sheet .sheet-head h2{display:none}

html[data-input-tiny] .choice-sheet .sheet-head>.text-button{position:absolute;top:12px;right:12px;min-width:44px}

html[data-input-tiny] .choice-search{padding-right:var(--space-48)}

@media print{.keyboard-tools{display:none!important}
}

input[type=checkbox]{transition:background-color var(--motion-fast),border-color var(--motion-fast)}

@media(max-width:700px){
  .mobile-table{display:block;min-width:0;width:100%}
.mobile-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

  .mobile-table tbody{display:block}
.mobile-table tr{display:block;border-bottom:1px solid var(--ui-line);padding:var(--space-16) 0}
.mobile-table tr:last-child{border-bottom:0}

  .mobile-table td{display:grid;grid-template-columns:94px minmax(0,1fr);gap:var(--space-12);border:0;padding:var(--space-8) 0;min-width:0;overflow-wrap:anywhere}

  .mobile-table td:before{content:attr(data-label);font-size:var(--type-small);color:var(--ui-muted)}
.mobile-table td:empty{display:none}

  .mobile-table td.mobile-cell-wide{display:block}
.mobile-table .mobile-cell-wide:before{display:block;margin-bottom:var(--space-8)}

  .mobile-table td>small{grid-column:2;max-width:none}
.mobile-table .mobile-cell-wide[data-label=""]:before{display:none}

  .mobile-table .compact-form{min-width:0}
.table-wrap:has(.mobile-table){overflow:visible;margin:0}

}


.required-mark{color:var(--ui-muted,#6c6c65);font-weight:600}
.password-reminder{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8)}
.password-reminder a{font-weight:600}

.role-controls{display:none;min-width:0;border:1px solid var(--ui-line);border-radius:var(--ui-radius-sm);padding:var(--space-12)}

form:has(select[name=action] option[value=roles]:checked) .role-controls{display:block}


/* 导航只承载目的地；账号面板只承载个人操作。 */
.topbar-account{display:flex;align-items:center;gap:var(--space-16);min-width:0}
.account-menu-button{flex:none}
.account-sheet{max-width:420px}
[data-primary-navigation] .nav-text{font-size:inherit}
.sidebar .nav-text{width:auto;text-align:left}
.management-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-24);align-items:start}
.management-group{margin:0;padding:var(--space-24)}
.management-group h2{margin-bottom:var(--space-12)}
.management-list>a{display:flex;align-items:center;gap:var(--space-12);min-height:56px;padding:var(--space-12) 0;margin:0;border-radius:0;border-bottom:1px solid var(--ui-line);font-size:var(--type-body);color:var(--ui-ink)}
.management-list>a:last-child{border-bottom:0}
.management-list>a>span{flex:1;font-size:var(--type-body);width:auto}
.management-list>a>.icon:last-child{width:16px;height:16px;transform:rotate(180deg);color:var(--ui-muted)}
.management-list>a:hover{color:var(--ui-accent);background:transparent}
.management-list>a:active{background:var(--ui-fill)}
@media(max-width:700px){
  .management-groups{grid-template-columns:minmax(0,1fr);gap:var(--space-16)}
  .management-group{padding:var(--space-16)}
  .account-sheet{max-width:none}
  .dashboard .page-heading{flex-wrap:wrap}
}
