:root{--bg:#eef3f6;--bg-card:#fff;--bg-sidebar:#102331;--bg-input:#fff;--bg-hover:#f5f8fa;--text:#17202a;--text-secondary:#687885;--text-sidebar:#f8fbfc;--text-sidebar-muted:#b9cad3;--border:#dbe4e8;--border-input:#cbd7de;--primary:#0e7c66;--primary-light:#e8f6f1;--primary-border:#82cdb7;--accent:#0b7a75;--tag-bg:#f0faf7;--tag-text:#0e6755;--tag-border:#cde2dd;--notice-bg:#ebf8f4;--notice-text:#185d52;--shadow:rgba(16,35,49,.05);--skeleton:#e2e8f0;--skeleton-shine:#f1f5f9;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:geometricprecision;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}[data-theme=dark]{--bg:#0f172a;--bg-card:#1e293b;--bg-sidebar:#0b1120;--bg-input:#334155;--bg-hover:#1e293b;--text:#e2e8f0;--text-secondary:#94a3b8;--text-sidebar:#e2e8f0;--text-sidebar-muted:#64748b;--border:#334155;--border-input:#475569;--primary:#2dd4bf;--primary-light:#134e4a;--primary-border:#115e59;--accent:#2dd4bf;--tag-bg:#134e4a;--tag-text:#5eead4;--tag-border:#115e59;--notice-bg:#134e4a;--notice-text:#99f6e4;--shadow:rgba(0,0,0,.3);--skeleton:#334155;--skeleton-shine:#475569}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{grid-template-columns:260px minmax(0,1fr);max-width:1600px;min-height:100vh;margin:0 auto;display:grid}.sidebar{background:var(--bg-sidebar);color:var(--text-sidebar);flex-direction:column;gap:22px;padding:22px 18px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:#24a47a;border-radius:8px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.brand h1{letter-spacing:0;margin:0;font-size:18px}.brand small{color:var(--text-sidebar-muted);font-size:11px;display:block}.brand p,.eyebrow,.case-header p,.media-body p,.sidebar-panel p{margin:0}.brand p,.sidebar-panel p{color:var(--text-sidebar-muted);font-size:13px;line-height:1.5}.role-stack{gap:8px;display:grid}.role-button,.icon-text,.primary,.secondary,.case-item{cursor:pointer;border:0;text-decoration:none}.role-button{color:#d7e5ea;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:10px;min-height:42px;padding:10px 12px;display:flex}.role-button.active,.role-button:hover{color:#fff;background:#1f3a4a}.sidebar-panel{border:1px solid #26485b;border-radius:8px;gap:10px;margin-top:auto;padding:14px;display:grid}.workspace{min-width:0;max-width:1100px;margin:0 auto;padding:18px}.topbar{justify-content:space-between;align-items:center;gap:16px;min-height:56px;margin-bottom:18px;padding:0 2px;display:flex}.topbar h2{letter-spacing:0;color:var(--text);margin:4px 0 0;font-size:28px}.eyebrow{color:var(--accent);font-size:12px;font-weight:700}.layout-grid{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:12px;max-width:780px;margin:0 auto;display:grid}.right-column{grid-column:2}.patient-column,.panel,.case-header,.upload-panel,.timeline,.notice-band,.action-band{background:var(--bg-card);border:1px solid var(--border);box-shadow:0 10px 24px var(--shadow);border-radius:8px}.patient-column,.panel,.timeline{padding:14px}.section-title{color:var(--text);align-items:center;gap:8px;margin-bottom:12px;font-weight:800;display:flex}.case-list{gap:8px;display:grid}.case-item{text-align:left;background:var(--bg-hover);width:100%;color:var(--text);cursor:pointer;border:1px solid transparent;border-radius:8px;gap:6px;padding:14px 12px;transition:border-color .15s,background .15s,transform .1s;display:grid}.case-item:hover{background:var(--bg-input);border-color:var(--border)}.case-item.active{background:var(--primary-light);border-color:var(--primary-border)}.case-item .case-name{font-size:14px;font-weight:700}.case-item .case-meta{justify-content:space-between;align-items:center;display:flex}.case-item span,.case-item small,.media-body span,.note-item span,.audit-item span,.audit-item small{color:var(--text-secondary);font-size:12px}.patient-count{background:var(--primary-light);color:var(--primary);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:700}.new-patient{margin-top:14px}.compact-form,.note-form{gap:8px;margin-top:10px;display:grid}.two{grid-template-columns:1fr 1fr;gap:8px;display:grid}input,select,textarea{border:1px solid var(--border-input);background:var(--bg-input);width:100%;color:var(--text);border-radius:6px;min-height:40px;padding:10px 11px}textarea{resize:vertical;min-height:82px;line-height:1.5}.main-column,.right-column{gap:16px;display:grid}.case-header{gap:14px;padding:20px;display:grid}.case-header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.case-header-info{flex:1;min-width:200px}.case-header h3{color:var(--text);margin:6px 0 8px;font-size:24px}.case-header .case-diagnosis{color:var(--text-secondary);margin:0;line-height:1.6}.case-admission-info{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:12px;display:flex}.team-tag{border:1px solid var(--primary-border)!important;background:var(--primary-light)!important;color:var(--primary)!important}.status-pill{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.status-pill.discharged{background:var(--bg-hover);color:var(--text-secondary)}.metric-row,.tag-row,.action-band,.notice-band,.upload-fields{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.metric-row span{color:var(--text);align-items:center;gap:6px;font-size:13px;display:inline-flex}.tag-row span{border:1px solid var(--tag-border);color:var(--tag-text);background:var(--tag-bg);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;transition:transform .15s}.tag-row span:hover{transform:translateY(-1px)}.tag-row .tag-risk-high{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.tag-row .tag-risk-medium{color:#d97706;background:#fffbeb;border-color:#fcd34d}.tag-row .tag-risk-low{color:#16a34a;background:#f0fdf4;border-color:#86efac}.action-band,.notice-band{border-radius:10px;padding:14px 16px}.notice-band{color:var(--notice-text);background:var(--notice-bg)}.primary,.secondary,.icon-text{border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 14px;font-weight:800;display:inline-flex}.primary{background:var(--primary);color:#fff}.secondary,.icon-text{background:var(--bg-hover);color:var(--text)}.full{width:100%}.theme-toggle{border:1px solid var(--border);background:0 0;border-radius:6px;padding:8px}.upload-panel{gap:12px;padding:14px;display:grid}.file-drop{background:var(--bg-hover);min-height:94px;color:var(--text-secondary);cursor:pointer;text-align:center;border:1px dashed #9fb2bf;border-radius:8px;place-items:center;gap:6px;padding:14px;display:grid}.file-drop input{display:none}.file-list{flex-wrap:wrap;gap:4px;display:flex}.file-tag{background:var(--primary-light);color:var(--primary);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:200px;padding:2px 8px;font-size:11px;overflow:hidden}.upload-fields>*{flex:145px}.progress-bar{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:var(--primary);height:100%;transition:width .3s}.progress-bar-track{background:var(--border);border-radius:4px;height:8px;margin:12px 0;overflow:hidden}.progress-bar-fill{background:var(--primary);border-radius:4px;height:100%;transition:width .3s}.progress-label{text-align:center;color:var(--text-secondary);font-size:13px}.media-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.media-card{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;transition:border-color .2s;overflow:hidden}.media-card.compared{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.media-preview{aspect-ratio:4/3;background:var(--bg-hover);color:var(--text-secondary);place-items:center;display:grid;position:relative}.media-preview img{object-fit:cover;width:100%;height:100%}.compare-btn{color:#fff;cursor:pointer;opacity:0;background:rgba(0,0,0,.5);border:0;border-radius:4px;align-items:center;padding:4px 6px;transition:opacity .2s;display:flex;position:absolute;top:8px;right:8px}.media-preview:hover .compare-btn{opacity:1}.media-body{gap:6px;padding:12px;display:grid}.media-body p{color:var(--text-secondary);min-height:20px;font-size:13px;line-height:1.5}.download-link{color:var(--primary);align-items:center;gap:5px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.media-actions{gap:8px;margin-top:2px;display:flex}.media-action-btn{border:1px solid var(--border);background:var(--bg-hover);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.media-action-btn:hover{background:var(--bg-input);border-color:var(--primary)}.media-action-btn.danger{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.media-action-btn.danger:hover{background:#fee2e2}.media-action-btn:disabled{opacity:.6;cursor:not-allowed}.note-list,.audit-list{gap:10px;max-height:470px;margin-top:12px;display:grid;overflow:auto}.note-item,.audit-item{background:var(--bg-hover);border-radius:6px;gap:4px;padding:10px;display:grid}.note-item p{color:var(--text);margin:0;font-size:13px;line-height:1.5}.toast{z-index:100;background:var(--bg-sidebar);color:#fff;cursor:pointer;border-radius:8px;max-width:360px;padding:12px 14px;position:fixed;top:18px;right:18px;box-shadow:0 14px 30px rgba(16,35,49,.24)}.empty-state{color:var(--text-secondary);text-align:center;padding:30px}.skeleton-card{border:1px solid var(--border);border-radius:8px;padding:0;overflow:hidden}.skeleton-list{gap:10px;display:grid}.skeleton-row{background:var(--bg-card);border-radius:6px;gap:6px;padding:10px;display:grid}.skeleton-box{background:linear-gradient(90deg, var(--skeleton) 25%, var(--skeleton-shine) 50%, var(--skeleton) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-overlay{z-index:50;background:rgba(0,0,0,.5);place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal-content{background:var(--bg-card);width:100%;max-width:420px;box-shadow:0 20px 40px var(--shadow);border-radius:12px;gap:16px;padding:24px;display:grid}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-header h3{color:var(--text);align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.modal-content form{gap:10px;display:grid}.form-error{color:#dc2626;background:#fef2f2;border-radius:6px;padding:8px 12px;font-size:13px}.modal-hint{color:var(--text-secondary);text-align:center;margin:0;font-size:12px}.compare-modal{background:var(--bg-card);width:100%;max-width:900px;max-height:90vh;box-shadow:0 20px 40px var(--shadow);border-radius:12px;overflow:auto}.compare-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.compare-header h3{color:var(--text);margin:0}.compare-selectors{border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:16px;padding:12px 20px;display:flex}.compare-select{background:var(--bg-hover);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.compare-select button{cursor:pointer;color:var(--text);background:0 0;border:0;padding:2px}.compare-select span{color:var(--text);text-align:center;min-width:120px;font-size:13px}.compare-vs{color:var(--primary);font-weight:800}.compare-container{aspect-ratio:16/10;cursor:col-resize;user-select:none;width:100%;position:relative;overflow:hidden}.compare-image{position:absolute;top:0;bottom:0;left:0;right:0}.compare-image img{object-fit:contain;background:#000;width:100%;height:100%}.compare-left{z-index:2}.compare-right{z-index:1}.compare-slider{z-index:3;background:#fff;width:3px;position:absolute;top:0;bottom:0;transform:translate(-50%);box-shadow:0 0 8px rgba(0,0,0,.5)}.compare-handle{border:3px solid var(--primary);background:#fff;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.compare-label{z-index:4;color:#fff;background:rgba(0,0,0,.7);border-radius:4px;padding:4px 10px;font-size:12px;position:absolute;bottom:12px}.left-label{left:12px}.right-label{right:12px}.batch-modal{max-width:680px;max-height:85vh;overflow-y:auto}.model-selector{background:var(--bg-hover);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;font-size:12px;display:flex}.model-label{color:var(--text-secondary);font-weight:600}.model-options{flex-wrap:wrap;gap:6px;display:flex}.model-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:12px;transition:all .15s;display:flex}.model-btn:hover{border-color:var(--primary);background:var(--primary-light)}.model-btn.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.model-speed{border-radius:4px;padding:1px 5px;font-size:10px;font-weight:600}.model-speed.vision{color:#16a34a;background:#dcfce7}.model-speed.fast{color:#d97706;background:#fef3c7}.modal-container{background:var(--bg-card);border-radius:12px;gap:16px;padding:24px;display:grid}.modal-container .modal-header{justify-content:space-between;align-items:flex-start;display:flex}.modal-container .modal-header h3{color:var(--text);align-items:center;gap:8px;margin:0 0 4px;font-size:20px;display:flex}.steps-bar{justify-content:center;align-items:center;gap:0;padding:8px 0 16px;display:flex}.step-dot{color:var(--text-secondary);flex-direction:column;align-items:center;gap:4px;display:flex}.step-num{background:var(--border);width:32px;height:32px;color:var(--text-secondary);border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.step-dot.active .step-num{background:var(--primary);color:#fff}.step-dot.done .step-num{background:var(--primary-light);color:var(--primary)}.step-dot small{font-size:11px}.step-line{background:var(--border);width:40px;height:2px;margin:0 4px}.batch-upload-body,.review-body,.scanning-body,.done-body{gap:16px;display:grid}.camera-view{gap:12px;display:grid}.camera-preview{object-fit:contain;background:#000;border-radius:8px;width:100%;max-height:300px}.camera-actions{justify-content:center;gap:12px;display:flex}.capture-btn{padding:12px 32px;font-size:16px}.upload-options{gap:10px;display:grid}.batch-drop{place-items:center;gap:6px;min-height:120px;display:grid}.batch-preview-strip{gap:8px;display:grid}.preview-grid{gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.preview-item{flex-shrink:0;gap:4px;width:100px;display:grid;position:relative}.preview-item img{aspect-ratio:3/4;object-fit:cover;border-radius:6px;width:100%}.preview-item small{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.preview-remove{background:var(--bg-card);color:#dc2626;cursor:pointer;border:0;border-radius:50%;padding:0;position:absolute;top:-6px;right:-6px}.batch-actions{justify-content:flex-end;gap:10px;padding-top:8px;display:flex}.scanning-body{text-align:center;padding:24px}.scanning-animation{place-items:center;gap:12px;display:grid}.scanning-animation h4{color:var(--text);margin:0}.scanning-animation p{color:var(--text-secondary);margin:0}.spin{color:var(--primary);animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.review-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.selected-hint{background:var(--primary-light);color:var(--primary);border-radius:999px;margin-left:auto;padding:2px 10px;font-size:12px}.review-list{gap:10px;max-height:400px;display:grid;overflow-y:auto}.review-card{border:1px solid var(--border);border-radius:8px;gap:8px;padding:12px;display:grid}.review-card.selected{border-color:var(--primary);background:var(--primary-light)}.review-card.editing{border-color:var(--accent)}.review-card-header{justify-content:space-between;align-items:center;display:flex}.check-label{align-items:center;gap:8px;display:flex}.check-label input[type=checkbox]{width:auto;min-height:auto}.confidence-badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.confidence-badge.high{color:#166534;background:#dcfce7}.confidence-badge.medium{color:#854d0e;background:#fef9c3}.confidence-badge.low{color:#991b1b;background:#fee2e2}.review-edit-form{gap:8px;display:grid}.review-edit-form label{color:var(--text-secondary);gap:3px;font-size:12px;display:grid}.review-edit-form input,.review-edit-form select,.review-edit-form textarea{min-height:auto;padding:6px 8px}.review-card-summary{gap:3px;display:grid}.review-card-summary strong{color:var(--text)}.review-card-summary .diag-line{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.done-body{text-align:center;place-items:center;gap:12px;padding:32px 16px;display:grid}.done-body h4{color:var(--text);margin:0;font-size:20px}.done-body p{color:var(--text-secondary);margin:0}@media (min-width:1440px){.workspace{padding:24px 28px}.layout-grid{gap:16px;max-width:840px}.media-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (max-width:1180px){.layout-grid{max-width:100%}}@media (max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:3;padding:12px;position:sticky;top:0}.brand{align-items:center}.role-stack{grid-template-columns:repeat(3,1fr)}.role-button{justify-content:center;padding:10px 6px}.role-button span,.sidebar-panel{display:none}.workspace{padding:14px}.topbar h2{font-size:22px}.layout-grid,.right-column{grid-template-columns:1fr}.layout-grid{max-width:100%}.right-column{grid-column:auto}.patient-column{order:1}.main-column{order:2}.right-column{order:3}.compare-selectors{flex-direction:column;gap:8px}}@media (max-width:540px){.topbar{flex-direction:column;align-items:flex-start}.metric-row,.action-band,.notice-band,.upload-fields{flex-direction:column;align-items:stretch}.primary,.secondary,.icon-text{width:100%}.media-grid{grid-template-columns:1fr}}.admin-shell{background:var(--bg);grid-template-columns:230px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{color:#fff;background:#102331;flex-direction:column;gap:16px;padding:20px 14px;display:flex}.admin-brand{border-bottom:1px solid #1e3a4a;align-items:center;gap:10px;padding-bottom:16px;display:flex}.admin-nav{flex-direction:column;flex:1;gap:4px;display:flex}.admin-nav-btn{color:#b9cad3;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.admin-nav-btn:hover,.admin-nav-btn.active{color:#fff;background:#1f3a4a}.admin-nav-btn.admin-exit{color:#94a3b8;border-top:1px solid #1e3a4a;margin-top:auto;padding-top:14px}.admin-main{padding:22px;overflow:auto}.admin-topbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.admin-topbar h2{color:var(--text);margin:0;font-size:22px}.admin-badge{color:#fff;background:#7c3aed;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.admin-content{background:var(--bg-card);border:1px solid var(--border);box-shadow:0 10px 24px var(--shadow);border-radius:8px;padding:20px}.admin-loading{text-align:center;color:var(--text-secondary);padding:40px}.stat-cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card{background:var(--bg-hover);border:1px solid var(--border);border-radius:8px;padding:16px}.stat-label{color:var(--text-secondary);margin:0 0 8px;font-size:12px}.stat-value{color:var(--text);font-size:28px}.admin-section{margin-bottom:20px}.admin-section h3{color:var(--text);margin:0 0 12px;font-size:15px}.dept-bars{gap:8px;display:grid}.dept-bar-row{align-items:center;gap:10px;display:flex}.dept-name{width:80px;color:var(--text);text-align:right;font-size:13px}.dept-bar-track{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.dept-bar-fill{background:var(--primary);border-radius:4px;height:100%;transition:width .5s}.dept-count{width:30px;color:var(--text-secondary);font-size:12px}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.admin-tabs{gap:4px;display:flex}.admin-tab{border:1px solid var(--border);background:var(--bg-hover);cursor:pointer;color:var(--text-secondary);border-radius:6px;padding:8px 16px;font-size:13px}.admin-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.admin-search{width:200px}.admin-filters{gap:8px;display:flex}.admin-table th{text-align:left;border-bottom:2px solid var(--border);color:var(--text-secondary);white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:700}.admin-table td{border-bottom:1px solid var(--border);color:var(--text);padding:10px 12px}.admin-table th:last-child,.admin-table td:last-child{text-align:right;white-space:nowrap}.admin-actions{justify-content:flex-end;gap:4px;display:flex}.role-tag{background:var(--primary-light);color:var(--primary);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.role-tag.role-admin{color:#5b21b6;background:#ede9fe}.role-tag.role-doctor{background:var(--primary-light);color:var(--primary)}.role-tag.role-nurse{color:#92400e;background:#fef3c7}.role-tag.role-patient{color:#9d174d;background:#fce7f3}.admin-pagination{justify-content:center;align-items:center;gap:12px;padding:16px 0;display:flex}.admin-pagination button{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;color:var(--text);border-radius:6px;padding:6px 14px}.admin-pagination button:disabled{opacity:.4;cursor:default}.config-card{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:14px}.config-card-header h4{color:var(--text);margin:0}.config-card-header p{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.config-switch{align-items:center;gap:8px;margin:10px 0;font-size:13px;display:flex}.config-switch input[type=checkbox]{width:auto;min-height:auto}.config-fields{gap:8px;display:grid}.config-fields label{color:var(--text-secondary);gap:3px;font-size:12px;display:grid}.config-fields label span{font-weight:600}.config-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.config-row label{color:var(--text-secondary);gap:3px;font-size:12px;display:grid}.config-row label span{font-weight:600}.branding-layout{grid-template-columns:1fr 300px;gap:24px;display:grid}.branding-form{gap:16px;display:grid}.branding-form label{gap:4px;font-size:13px;display:grid}.branding-form label span{color:var(--text-secondary);font-weight:600}.branding-form textarea{min-height:60px}.theme-presets{flex-wrap:wrap;gap:8px;display:flex}.theme-preset-btn{border:2px solid var(--border);background:var(--bg-card);cursor:pointer;color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.theme-preset-btn.active{border-color:var(--primary);background:var(--primary-light)}.theme-swatch{border:1px solid rgba(0,0,0,.1);border-radius:6px;width:24px;height:24px}.color-pick-row{align-items:center;gap:8px;display:flex}.color-pick-row input[type=color]{width:40px;height:36px;min-height:auto;padding:2px}.color-pick-row input[type=text]{flex:1}.branding-preview h4{color:var(--text);margin:0 0 10px;font-size:14px}.phone-frame{border:3px solid #374151;border-radius:20px;width:100%;max-width:260px;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.2)}.phone-statusbar{color:#fff;text-align:center;padding:8px 14px;font-size:11px;font-weight:700}.phone-content{gap:10px;padding:16px;display:grid}.phone-card{padding:14px}.phone-card-title{border-radius:4px;height:8px}.phone-card-text{background:#d1d5db;border-radius:3px;height:6px}.admin-entry.active{background:#1f3a4a!important;border:1px solid #7c3aed!important}@media (max-width:820px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{z-index:5;flex-direction:row;align-items:center;gap:8px;padding:10px 14px;position:sticky;top:0;overflow-x:auto}.admin-brand{display:none}.admin-nav{flex-direction:row}.admin-nav-btn span,.admin-nav-btn.admin-exit{display:none}.branding-layout{grid-template-columns:1fr}.stat-cards{grid-template-columns:repeat(2,1fr)}}.app-standalone{--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom)}.app-standalone .sidebar{padding-top:calc(22px + var(--safe-area-top))}.app-standalone .workspace{padding-bottom:calc(22px + var(--safe-area-bottom))}@media (max-width:820px){.app-standalone .sidebar{z-index:10;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--bg-sidebar);flex-direction:row;justify-content:space-between;align-items:center;display:flex;position:fixed;top:auto;bottom:0;left:0;right:0}.app-standalone .sidebar .brand,.app-standalone .sidebar .role-stack,.app-standalone .sidebar .sidebar-panel{display:none}.app-standalone .sidebar:after{content:"糖尿病足MDT · 移动版";color:#fff;font-size:14px;font-weight:700}.app-standalone .workspace{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}}@media (display-mode:standalone){.app-shell{min-height:100dvh}}@media (pointer:coarse){.role-button,.case-item,.primary,.secondary,.icon-text{min-height:48px}input,select,textarea{min-height:48px;font-size:16px}}.search-box{background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;align-items:center;gap:6px;margin-bottom:10px;padding:6px 10px;display:flex}.search-box input{background:0 0;border:none;outline:none;flex:1;min-height:auto;padding:4px 0;font-size:13px}.status-tabs{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.status-tabs .tab-btn{border:1px solid var(--border);background:var(--bg-hover);color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:8px 6px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:flex}.status-tabs .tab-btn.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary-border)}.case-item{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.case-item-main{flex-direction:column;gap:4px;display:flex}.case-item-main .case-name{font-size:14px;font-weight:700}.case-item-main .case-meta{justify-content:space-between;align-items:center;display:flex}.case-item-main .mrn-badge{color:var(--primary);font-size:11px;font-weight:600}.case-item-main small{color:var(--text-secondary);font-size:11px}.case-item-meta{flex-shrink:0;align-items:center;gap:6px;display:flex}.case-item-meta>span{color:var(--text-secondary);white-space:nowrap;font-size:12px}.case-item-meta .chevron{color:var(--text-secondary);flex-shrink:0}.status-toggle{cursor:pointer;background:var(--bg-hover);color:var(--text-secondary);border:1px solid;border-color:var(--border);border-radius:12px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.status-toggle.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary-border)}.status-toggle:disabled{opacity:.5;cursor:not-allowed}.empty-hint{text-align:center;color:var(--text-secondary);padding:24px 8px;font-size:13px}.pagination{justify-content:center;align-items:center;gap:10px;padding:10px 0 6px;display:flex}.pagination .page-btn{border:1px solid var(--border);background:var(--bg-hover);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;transition:all .15s}.pagination .page-btn:disabled{opacity:.4;cursor:not-allowed}.pagination .page-btn:not(:disabled):hover{background:var(--primary-light);color:var(--primary)}.pagination .page-info{color:var(--text-secondary);font-size:12px;font-weight:600}.patient-detail-layer{gap:12px;display:grid}.detail-topbar{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.detail-topbar .text-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:600}.status-pill{border-radius:12px;align-items:center;gap:3px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill.inpatient{color:#0e7c66;background:#e8f6f1}.status-pill.discharged{color:#92400e;background:#fef3c7}@media (prefers-color-scheme:dark){.status-pill.inpatient{color:#2dd4bf;background:#134e4a}.status-pill.discharged{color:#fbbf24;background:#451a03}}.detail-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow);border-radius:8px;padding:14px}.patient-info-card h2{color:var(--text);margin:4px 0 8px;font-size:18px}.patient-info-card p{color:var(--text-secondary);margin:4px 0;font-size:13px;line-height:1.5}.patient-info-card .admission-date{color:var(--text-secondary);font-size:12px}.patient-info-card .tag-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.patient-info-card .tag-row span{background:var(--primary-light);color:var(--primary);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.detail-row{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.detail-row+.detail-row{border-top:1px solid var(--border)}.detail-row span{color:var(--text-secondary);font-size:13px}.detail-row strong{color:var(--text);font-size:13px}.detail-actions{gap:8px;display:grid}.mobile-detail-tabs{margin-top:16px}.mobile-detail-tabs .tab-bar{gap:4px;margin-bottom:12px;display:flex;overflow-x:auto}.mobile-detail-tabs .tab-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:8px;flex:1;padding:10px 6px;font-size:13px;font-weight:600}.mobile-detail-tabs .tab-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.mobile-detail-tabs .tab-panel{min-height:120px}.mobile-photo-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.mobile-photo-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:10px;padding:10px;transition:transform .15s,box-shadow .15s;position:relative}.mobile-photo-card.photo-selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary);background:var(--bg-input)}.mobile-photo-card .photo-thumb-img{margin-bottom:6px;display:block}.mobile-photo-card .photo-thumb{margin-bottom:6px;font-size:36px}.mobile-photo-card small{font-size:12px;display:block}.photo-toolbar{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:10px;padding:8px 0;display:flex}.photo-toggle-select{color:var(--text);cursor:pointer;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.photo-toggle-select input{width:18px;height:18px;accent-color:var(--primary)}.photo-select-count{color:var(--primary);font-size:12px;font-weight:600}.photo-batch-bar{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.photo-check-label{z-index:2;cursor:pointer;background:rgba(255,255,255,.85);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 1px 4px rgba(0,0,0,.2)}.photo-checkbox{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;margin:0}.photo-card-info{flex-direction:column;gap:2px;display:flex}.photo-category{font-size:13px;font-weight:600}.photo-date{color:var(--text-secondary);font-size:11px}.photo-note-preview{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-style:italic;overflow:hidden}.mobile-upload{padding:8px 0}.mobile-action-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-top:12px;overflow:hidden}.mobile-action-card .action-card-header{color:var(--text-secondary);background:var(--bg-input);border-bottom:1px solid var(--border);padding:10px 14px;font-size:13px;font-weight:600}.mobile-action-card .action-card-body{padding:0}.mobile-action-card .action-section{border-bottom:1px solid var(--border)}.mobile-action-card .action-section:last-child{border-bottom:none}.mobile-action-card .action-toggle{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.mobile-action-card .action-toggle:active{background:var(--bg-input)}.mobile-action-card .action-toggle .toggle-arrow{color:var(--text-secondary);font-size:10px}.mobile-action-card .action-content{padding:0 14px 14px}.mobile-file-list{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.mobile-file-tag{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:8px;align-items:center;gap:6px;max-width:100%;padding:6px 10px;font-size:12px;display:inline-flex}.mobile-file-tag .file-tag-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.mobile-file-tag .file-tag-remove{color:#ef4444;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.mobile-file-tag .file-tag-remove:disabled{opacity:.3;cursor:not-allowed}.auth-modal .form-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.5}.text-link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.approval-list{gap:14px;display:grid}.approval-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px;transition:border-color .15s,box-shadow .15s;display:flex}.approval-card:hover{border-color:#d97706;box-shadow:0 2px 12px rgba(217,119,6,.08)}.approval-card-info{flex:1;min-width:0}.approval-card-actions{flex-shrink:0;gap:8px;display:flex}.admin-table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px}.admin-table th{background:var(--bg-hover);color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.admin-table tbody tr:hover{background:var(--bg-hover)}.admin-table td{color:var(--text-secondary)}
