:root{--bg:#f6f8fa;--surface:#fff;--fg:#1a1f2b;--muted:#5f6b7a;--border:#e4e8ed;--border-light:#eef1f5;--accent:#1a9c7a;--accent-light:#eaf8f4;--accent-hover:#148066;--accent2:#2563eb;--accent2-light:#eef4ff;--success:#16a34a;--success-light:#edf9f1;--warn:#ea580c;--warn-light:#fff6ed;--danger:#dc2626;--danger-light:#fef2f2;--info:#2563eb;--info-light:#eef4ff;--font-display:-apple-system, BlinkMacSystemFont, "Inter", "SF Pro Display", system-ui, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Inter", "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:36px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--radius-sm:4px;--radius:6px;--radius-lg:8px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 28px #0000001a;--sidebar-w:240px;--topbar-h:52px;--max-content:1320px;--ease:cubic-bezier(.4, 0, .2, 1);--dur:.16s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.55}button,input{font:inherit}button{cursor:pointer}.login-screen,.auth-loading-screen{background:var(--bg);min-height:100vh;padding:var(--sp-6);place-items:center;display:grid}.login-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,380px);box-shadow:var(--shadow-md);padding:var(--sp-6)}.login-brand{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);display:flex}.login-brand-icon{border-radius:var(--radius);background:var(--accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:17px;font-weight:700;display:flex}.login-brand h1{color:var(--fg);font-size:var(--fs-lg);letter-spacing:0;font-weight:600}.login-brand p{color:var(--muted);font-size:var(--fs-sm);margin-top:1px}.login-form{gap:var(--sp-4);flex-direction:column;display:flex}.login-form label{gap:var(--sp-2);color:var(--fg);font-size:var(--fs-sm);flex-direction:column;font-weight:600;display:flex}.login-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;height:38px;color:var(--fg);font-size:var(--fs-base);padding:0 var(--sp-3);transition:border var(--dur);outline:none}.login-form input:focus{border-color:var(--accent)}.login-error{align-items:center;gap:var(--sp-2);border-radius:var(--radius);background:var(--danger-light);color:var(--danger);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);border:1px solid #fecaca;display:flex}.login-submit{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius);background:var(--accent);color:#fff;height:38px;font-size:var(--fs-sm);transition:background var(--dur);border:0;font-weight:600;display:inline-flex}.login-submit:hover{background:var(--accent-hover)}.login-submit:disabled{cursor:default;opacity:.72}.sidebar{z-index:100;width:var(--sidebar-w);border-right:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);transition:width var(--dur) var(--ease), transform var(--dur) var(--ease);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.sidebar-brand{height:var(--topbar-h);align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border-light);padding:0 var(--sp-5);flex-shrink:0;display:flex}.sidebar-brand-icon{border-radius:var(--radius);background:var(--accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;font-weight:700;display:flex}.sidebar-brand-text{color:var(--fg);font-size:var(--fs-md);letter-spacing:0;white-space:nowrap;font-weight:600;overflow:hidden}.sidebar-nav{padding:var(--sp-3) var(--sp-2);flex-direction:column;flex:1;gap:1px;display:flex;overflow-y:auto}.sidebar-section-label{padding:var(--sp-3) var(--sp-3) var(--sp-1);color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;white-space:nowrap;font-size:10px;overflow:hidden}.sidebar-item{align-items:center;gap:var(--sp-3);border-radius:var(--radius);width:100%;min-height:34px;color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);text-align:left;transition:background var(--dur), color var(--dur);white-space:nowrap;background:0 0;border:0;font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar-item:hover{background:var(--accent-light);color:var(--accent)}.sidebar-item.active{background:var(--accent);color:#fff}.sidebar-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.sidebar-item-badge{background:var(--danger);color:#fff;min-width:20px;font-family:var(--font-mono);text-align:center;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:10px;font-weight:600}.sidebar-footer{align-items:center;gap:var(--sp-3);border-top:1px solid var(--border-light);padding:var(--sp-3) var(--sp-4);display:flex}.sidebar-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:600;display:flex}.topbar-avatar{width:28px;height:28px;font-size:12px}.sidebar-user-info{white-space:nowrap;overflow:hidden}.sidebar-user-name{color:var(--fg);font-size:var(--fs-sm);font-weight:600;line-height:1.2}.sidebar-user-role{color:var(--muted);font-size:11px;line-height:1.2}.sidebar-logout{border-radius:var(--radius);width:30px;height:30px;color:var(--muted);transition:background var(--dur), color var(--dur);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.sidebar-logout:hover{background:var(--danger-light);color:var(--danger)}.sidebar-logout:disabled{cursor:default;opacity:.55}.sidebar-overlay{display:none}.topbar{top:0;right:0;left:var(--sidebar-w);z-index:90;min-width:0;height:var(--topbar-h);align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);padding:0 var(--sp-6);transition:left var(--dur) var(--ease);display:flex;position:fixed}.topbar-menu-btn{border-radius:var(--radius);width:34px;height:34px;color:var(--muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:none}.topbar-title{min-width:0;font-size:var(--fs-md);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.topbar-search{width:240px;position:relative}.topbar-search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;height:34px;font-size:var(--fs-sm);padding:0 var(--sp-4) 0 34px;transition:border var(--dur);outline:none}.topbar-search input:focus{border-color:var(--accent)}.topbar-search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.topbar-actions{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.topbar-btn,.topbar-user{border-radius:var(--radius);color:var(--muted);transition:background var(--dur), color var(--dur);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.topbar-btn{width:34px;height:34px;position:relative}.topbar-btn:hover,.topbar-user:hover{background:var(--bg);color:var(--fg)}.topbar-btn-dot{background:var(--danger);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.topbar-user{gap:var(--sp-2);padding:var(--sp-1) var(--sp-3)}.main{width:calc(100% - var(--sidebar-w));max-width:calc(var(--max-content) + var(--sp-6) * 2);min-height:calc(100vh - var(--topbar-h));min-width:0;margin-top:var(--topbar-h);margin-left:var(--sidebar-w);padding:var(--sp-6);transition:margin-left var(--dur) var(--ease)}.page-header{margin-bottom:var(--sp-6)}.page-header h1{color:var(--fg);font-size:var(--fs-2xl);letter-spacing:0;font-weight:600}.page-header p{margin-top:var(--sp-1);color:var(--muted);font-size:var(--fs-base)}.date-tag{margin-top:var(--sp-1);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0}.stat-grid{gap:var(--sp-4);margin-bottom:var(--sp-6);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat-card{gap:var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);padding:var(--sp-5);transition:box-shadow var(--dur);flex-direction:column;display:flex}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card-header{justify-content:space-between;align-items:center;min-width:0;display:flex}.stat-card-label{min-width:0;color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.stat-card-icon{border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.stat-card-icon.messages{background:var(--info-light);color:var(--info)}.stat-card-icon.scales{background:var(--accent-light);color:var(--accent)}.stat-card-icon.alerts{background:var(--warn-light);color:var(--warn)}.stat-card-icon.devices{background:var(--accent2-light);color:var(--accent2)}.stat-card-value{font-family:var(--font-display);font-size:var(--fs-3xl);letter-spacing:0;font-weight:700;line-height:1}.stat-card-sub{min-width:0;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;overflow-wrap:anywhere}.stat-card-sub strong{color:var(--danger);font-weight:600}.trend-up{color:var(--success)!important}.dash-grid{gap:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dash-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.dash-panel.full{grid-column:1/-1}.dash-panel-header{border-bottom:1px solid var(--border-light);padding:var(--sp-4) var(--sp-5);justify-content:space-between;align-items:center;display:flex}.dash-panel-title{align-items:center;gap:var(--sp-2);min-width:0;font-size:var(--fs-base);letter-spacing:0;font-weight:600;display:inline-flex}.dash-panel-link,.alert-action{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;white-space:nowrap;background:0 0;border:0;align-items:center;gap:3px;font-weight:500;display:inline-flex}.dash-panel-link:hover,.alert-action:hover{color:var(--accent-hover)}.dash-panel-link.is-static,.dash-panel-link.is-static:hover{color:var(--muted);cursor:default}.dash-panel-body{padding:var(--sp-2) var(--sp-5) var(--sp-4)}.compact-list{flex-direction:column;display:flex}.compact-item{align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border-light);padding:var(--sp-3) 0;display:flex}.compact-item:last-child{border-bottom:0}.compact-item-avatar{background:var(--accent-light);width:34px;height:34px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.avatar-danger{background:var(--danger-light);color:var(--danger)}.avatar-success{background:var(--success-light);color:var(--success)}.compact-item-info{flex:1;min-width:0}.compact-item-title{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.compact-item-meta{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0}.compact-item-right{text-align:right;flex-shrink:0}.badge{font-family:var(--font-mono);letter-spacing:0;white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:2px 10px;font-size:10px;font-weight:600;line-height:20px;display:inline-flex}.badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-pending{background:var(--warn-light);color:var(--warn)}.badge-pending .badge-dot{background:var(--warn)}.badge-done{background:var(--success-light);color:var(--success)}.badge-done .badge-dot{background:var(--success)}.badge-urgent{background:var(--danger-light);color:var(--danger)}.device-status-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.device-status-chip{border-radius:var(--radius);background:var(--bg);min-width:90px;padding:var(--sp-3);text-align:center;flex:1}.device-status-chip .count{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:0;font-weight:700;line-height:1}.device-status-chip .label{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;margin-top:3px;font-size:10px}.chip-idle .count{color:var(--success)}.chip-active .count{color:var(--info)}.chip-fault .count{color:var(--danger)}.chip-repair .count{color:var(--warn)}.chip-retired .count{color:var(--muted)}.device-status-total{justify-content:center;align-items:center;gap:var(--sp-2);min-width:120px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;flex:1;display:flex}.device-status-total strong{color:var(--fg);font-size:var(--fs-lg)}.alert-list{gap:var(--sp-2);flex-direction:column;display:flex}.alert-row{align-items:center;gap:var(--sp-3);border-radius:var(--radius);background:var(--warn-light);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4);display:flex}.alert-row.danger{background:var(--danger-light)}.alert-row.warn{background:var(--warn-light)}.alert-row.caution{background:#fffbeb}.alert-row.danger .alert-icon{color:var(--danger)}.alert-row.warn .alert-icon{color:var(--warn)}.alert-row.caution .alert-icon{color:#ca8a04}.alert-icon{flex-shrink:0}.alert-text{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:500}.toast{z-index:999;background:var(--fg);max-width:min(480px,100vw - 32px);box-shadow:var(--shadow-lg);color:#fff;font-size:var(--fs-sm);text-align:center;border-radius:99px;padding:10px 24px;font-weight:500;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.page-header-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);display:flex}.page-action,.primary-link,.back-link{border-radius:var(--radius);font-size:var(--fs-sm);align-items:center;gap:var(--sp-2);letter-spacing:0;white-space:nowrap;font-weight:600;text-decoration:none;display:inline-flex}.page-action,.primary-link{background:var(--accent);color:#fff;border:1px solid #0000;padding:9px 14px}button.page-action,button.primary-link{font-family:inherit;line-height:1}.page-action:hover,.primary-link:hover{background:var(--accent-hover)}.back-link{margin-bottom:var(--sp-2);color:var(--accent)}.back-link:hover{color:var(--accent-hover)}.overview-grid{gap:var(--sp-4);margin-bottom:var(--sp-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.overview-card{align-items:center;gap:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);padding:var(--sp-5);display:flex}.overview-card svg{color:var(--accent);flex-shrink:0}.overview-card div{justify-content:space-between;align-items:center;gap:var(--sp-3);flex:1;min-width:0;display:flex}.overview-card span{min-width:0;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overview-card strong{color:var(--fg);font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:0;line-height:1}.stat-mini-row{gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.stat-mini{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:140px;box-shadow:var(--shadow-sm);padding:var(--sp-4);flex:1}.stat-mini-label{margin-bottom:var(--sp-1);color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;font-size:10px}.stat-mini-value{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:0;font-weight:700;line-height:1}.stat-mini-value.danger{color:var(--danger)}.stat-mini-sub{color:var(--muted);font-size:var(--fs-xs);margin-top:2px}.stat-mini-sub strong{color:var(--danger)}.filter-bar{align-items:flex-end;gap:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-4);padding:var(--sp-4) var(--sp-5);flex-wrap:wrap;display:flex}.filter-group label{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;font-size:10px}.filter-group select,.filter-group input:not([type=checkbox]):not([type=radio]){border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:110px;height:32px;color:var(--fg);font-size:var(--fs-sm);padding:0 var(--sp-3);transition:border var(--dur);outline:none}input[type=checkbox]{accent-color:var(--accent)}.filter-group input[type=checkbox],.dv-checkbox-row input[type=checkbox]{flex:none;width:16px;min-width:16px;height:16px;padding:0}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:32px;color:var(--fg);font-size:var(--fs-sm);transition:all var(--dur);white-space:nowrap;justify-content:center;align-items:center;gap:5px;padding:0 14px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.btn-primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn-primary:hover{border-color:var(--accent-hover);background:var(--accent-hover);color:#fff}.btn-secondary{border-color:var(--accent2-light);background:var(--accent2-light);color:var(--accent2)}.btn-secondary:hover{border-color:var(--accent2);color:var(--accent2)}.btn-sm{border-radius:var(--radius-sm);height:28px;font-size:var(--fs-xs);padding:0 10px}.btn-xs{border-radius:var(--radius-sm);height:24px;padding:0 8px;font-size:10px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.table-wrap table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.scale-result-table{overflow-x:auto}.scale-result-table table{min-width:860px}.table-wrap thead{background:var(--bg)}.table-wrap th{border-bottom:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);letter-spacing:0;padding:var(--sp-3) var(--sp-4);text-align:left;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:600}.table-wrap td{border-bottom:1px solid var(--border-light);padding:var(--sp-3) var(--sp-4);vertical-align:middle}.table-wrap tbody tr{transition:background var(--dur)}.table-wrap tbody tr:hover{background:var(--accent-light)}.table-wrap tbody tr:last-child td{border-bottom:0}.table-mono{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0}.muted,.table-muted-text{color:var(--muted)}.table-scale-code{color:var(--accent2);font-family:var(--font-mono);letter-spacing:0;white-space:nowrap;font-weight:700}.table-score{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:0;white-space:nowrap;font-weight:700}.table-score.tone-normal{color:var(--success)}.table-score.tone-attention{color:var(--warn)}.table-score.tone-urgent,.table-score.tone-critical{color:var(--danger)}.badge-severity-normal{background:var(--success-light);color:var(--success)}.badge-severity-normal .badge-dot{background:var(--success)}.badge-severity-moderate{background:var(--warn-light);color:var(--warn)}.badge-severity-moderate .badge-dot{background:var(--warn)}.badge-severity-severe{background:var(--danger-light);color:var(--danger)}.badge-severity-severe .badge-dot{background:var(--danger)}.badge-new{background:var(--info-light);color:var(--info)}.pagination{justify-content:space-between;align-items:center;gap:var(--sp-3);border-top:1px solid var(--border-light);padding:var(--sp-3) var(--sp-4);display:flex}.pagination-info{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0}.pagination-pages a{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:30px;height:30px;color:var(--fg);font-family:var(--font-mono);font-size:var(--fs-sm);transition:all var(--dur);justify-content:center;align-items:center;text-decoration:none;display:flex}.pagination-pages a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.pagination-pages a.active{border-color:var(--accent);background:var(--accent);color:#fff}.scale-detail-layout{gap:var(--sp-5);grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);align-items:start;display:grid}.scale-detail-side,.scale-detail-main,.detail-result-list{gap:var(--sp-4);flex-direction:column;min-width:0;display:flex}.drawer-patient-card{border-radius:var(--radius-lg);background:var(--bg);padding:var(--sp-4);margin-bottom:0}.drawer-patient-card .row{gap:var(--sp-4);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.drawer-patient-card .row .col{flex-direction:column;gap:2px;min-width:88px;display:flex}.drawer-patient-card .label,.summary-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;font-size:10px}.drawer-patient-card .value{color:var(--fg);overflow-wrap:anywhere;font-weight:500}.detail-card-title{align-items:center;gap:var(--sp-2);color:var(--fg);font-size:var(--fs-sm);margin-bottom:var(--sp-3);font-weight:600;display:flex}.detail-card-title svg{color:var(--accent)}.drawer-score-summary{justify-content:space-between;align-items:center;gap:var(--sp-4);border-radius:var(--radius);background:var(--accent-light);padding:var(--sp-4);margin-bottom:0;display:flex}.drawer-score-summary .total{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:0;font-weight:700;line-height:1}.summary-right{text-align:right}.summary-right strong{font-size:var(--fs-lg);display:block}.detail-result-card{align-items:center;gap:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:var(--sp-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.detail-result-card>div:first-child{min-width:0}.detail-result-card strong,.detail-result-card span:not(.badge){display:block}.detail-result-card span:not(.badge){color:var(--muted);font-size:var(--fs-xs);overflow-wrap:anywhere}.detail-result-card>.badge{grid-column:1/-1;justify-self:start}.scale-detail-main{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:var(--sp-5)}.detail-section-title,.detail-scale-header{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.detail-section-title{border-bottom:1px solid var(--border-light);margin:calc(var(--sp-5) * -1) calc(var(--sp-5) * -1) 0;padding:var(--sp-4) var(--sp-5)}.detail-section-title h2{font-size:var(--fs-base);font-weight:600}.detail-section-title span,.detail-scale-header p{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0}.detail-scale-section{padding-top:var(--sp-5)}.detail-scale-section+.detail-scale-section{border-top:1px solid var(--border-light);margin-top:var(--sp-5)}.detail-scale-header{margin-bottom:var(--sp-3)}.detail-scale-header h3{font-size:var(--fs-base);font-weight:600}.drawer-answer-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:var(--sp-2);padding:var(--sp-4)}.drawer-answer-card .q-num{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;margin-bottom:var(--sp-1)}.drawer-answer-card .q-text{font-size:var(--fs-base);margin-bottom:var(--sp-2);font-weight:500}.drawer-answer-card .a-text{color:var(--accent);font-size:var(--fs-sm);font-weight:600}.table-panel,.detail-panel,.answer-panel,.form-panel,.result-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm)}.table-panel-header,.detail-panel-header,.answer-panel-header,.form-panel-header{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border-light);min-width:0;padding:var(--sp-4) var(--sp-5);display:flex}.table-panel-header h2,.detail-panel-header h2,.answer-panel-header h2,.form-panel-header h2{font-size:var(--fs-base);letter-spacing:0;font-weight:600}.table-panel-header span,.answer-panel-header span{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0}.submission-list{padding:var(--sp-2) var(--sp-5);flex-direction:column;display:flex}.submission-row{align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border-light);min-width:0;color:inherit;padding:var(--sp-3) 0;grid-template-columns:38px minmax(180px,1fr) minmax(220px,auto) auto;text-decoration:none;display:grid}.submission-row:last-child{border-bottom:0}.submission-row:hover .submission-title strong{color:var(--accent)}.submission-avatar{background:var(--accent-light);width:36px;height:36px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex}.submission-avatar.tone-attention{background:var(--warn-light);color:var(--warn)}.submission-avatar.tone-urgent,.submission-avatar.tone-critical{background:var(--danger-light);color:var(--danger)}.submission-main{min-width:0}.submission-title{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.submission-title strong{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.submission-title span,.submission-meta{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.submission-scores{justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.score-pill{background:var(--success-light);color:var(--success);font-family:var(--font-mono);letter-spacing:0;white-space:nowrap;border-radius:99px;align-items:center;padding:6px 9px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.score-pill.tone-attention{background:var(--warn-light);color:var(--warn)}.score-pill.tone-urgent,.score-pill.tone-critical{background:var(--danger-light);color:var(--danger)}.empty-state{color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-5);text-align:center}.empty-state.compact{border-radius:var(--radius);background:var(--bg);padding:var(--sp-3)}.critical-banner{align-items:flex-start;gap:var(--sp-3);border-radius:var(--radius-lg);background:var(--danger-light);color:var(--danger);margin-bottom:var(--sp-5);padding:var(--sp-4) var(--sp-5);border:1px solid #fecaca;display:flex}.critical-banner svg{flex-shrink:0}.critical-banner div{flex-direction:column;gap:2px;min-width:0;display:flex}.critical-banner span{color:#7f1d1d;overflow-wrap:anywhere}.detail-grid{gap:var(--sp-5);margin-bottom:var(--sp-5);grid-template-columns:minmax(280px,.9fr) minmax(0,1.4fr);display:grid}.detail-panel-header{justify-content:flex-start}.detail-panel-header svg,.form-panel-header svg{color:var(--accent);flex-shrink:0}.info-list{gap:var(--sp-3);padding:var(--sp-5);display:grid}.info-list div{justify-content:space-between;gap:var(--sp-4);min-width:0;display:flex}.info-list dt{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0}.info-list dd{overflow-wrap:anywhere;text-align:right;min-width:0}.detail-score-list{gap:var(--sp-3);padding:var(--sp-5);flex-direction:column;display:flex}.detail-score-row{align-items:center;gap:var(--sp-3);border-radius:var(--radius);background:var(--bg);padding:var(--sp-3);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.detail-score-row>div:first-child{min-width:0}.detail-score-row strong{font-size:var(--fs-sm);display:block}.detail-score-row span:not(.badge){color:var(--muted);font-size:var(--fs-xs)}.detail-score-value{color:var(--fg);font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:0;white-space:nowrap;font-weight:700}.answer-panel{overflow:hidden}.answer-scale-list{gap:var(--sp-5);padding:var(--sp-5);display:grid}.answer-scale{border:1px solid var(--border-light);border-radius:var(--radius);min-width:0;overflow:hidden}.answer-scale-header{justify-content:space-between;align-items:center;gap:var(--sp-3);background:var(--bg);padding:var(--sp-3) var(--sp-4);display:flex}.answer-scale-header h3{font-size:var(--fs-base);letter-spacing:0}.answer-scale-header p{color:var(--muted);font-size:var(--fs-xs)}.answer-list{flex-direction:column;display:flex}.answer-row{align-items:center;gap:var(--sp-3);border-top:1px solid var(--border-light);padding:var(--sp-3) var(--sp-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.answer-row:first-child{border-top:0}.answer-question{align-items:center;gap:var(--sp-2);overflow-wrap:anywhere;min-width:0;display:flex}.answer-question span{background:var(--accent-light);width:22px;height:22px;color:var(--accent);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.answer-value{align-items:center;gap:var(--sp-2);color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;display:inline-flex}.answer-value strong{color:var(--fg);font-family:var(--font-mono)}.patient-page{background:var(--bg);justify-content:center;align-items:center;width:100%;min-height:100dvh;display:flex;overflow-x:hidden}.scale-container{--fs-xs:13px;--fs-sm:15px;--fs-base:16px;--fs-md:18px;--fs-lg:22px;--fs-xl:28px;--sp-8:32px;--sp-10:40px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--accent-ring:#1a9c7a40;background:var(--surface);width:100%;max-width:100%;min-height:100dvh;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}.screen{flex-direction:column;flex:1;min-height:0;display:none}.screen.active{display:flex}.screen-form{flex-direction:column;flex:1;min-height:0;display:flex}.scale-topbar{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-light);align-items:center;gap:var(--sp-3);background:var(--surface);flex-shrink:0;display:flex}.scale-topbar-back{width:36px;height:36px;color:var(--muted);transition:background var(--dur);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.scale-topbar-back:hover{background:var(--bg)}.scale-topbar-info{flex:1;min-width:0}.scale-topbar-title{font-size:var(--fs-md);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.scale-topbar-sub{color:var(--muted);font-size:var(--fs-xs)}.progress-wrap{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-light);flex-shrink:0}.progress-info{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.progress-label{color:var(--muted);font-size:var(--fs-sm);font-weight:500}.progress-count{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;font-weight:600}.progress-bar{background:var(--border-light);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);height:100%;transition:width .35s var(--ease);border-radius:3px}.scale-content{min-height:0;padding:var(--sp-5);gap:var(--sp-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.scale-section-label{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;text-transform:uppercase;font-weight:600}.info-heading{color:var(--fg);font-size:var(--fs-lg);letter-spacing:0;font-weight:600}.info-copy{color:var(--muted);font-size:var(--fs-sm);margin-top:calc(var(--sp-3) * -1)}.scale-container .info-form{gap:var(--sp-4);flex-direction:column;display:flex}.scale-container .info-form label{gap:var(--sp-2);color:var(--fg);font-size:var(--fs-sm);flex-direction:column;font-weight:600;display:flex}.scale-container .info-form input,.scale-container .info-form select{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;height:48px;color:var(--fg);font-size:var(--fs-base);padding:0 var(--sp-4);transition:border var(--dur), box-shadow var(--dur);outline:none}.scale-container .info-form input:focus,.scale-container .info-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.scale-container .info-form input::placeholder{color:#b0b8c1}.scale-container .info-form .form-row{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.scale-container .info-form .form-row label{min-width:0}.scale-switcher{gap:var(--sp-2);padding-bottom:var(--sp-2);scrollbar-width:none;display:flex;overflow-x:auto}.scale-switcher::-webkit-scrollbar{display:none}.scale-switch{border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:160px;max-width:180px;color:var(--fg);padding:var(--sp-3);text-align:left;transition:border var(--dur), background var(--dur), box-shadow var(--dur);flex-direction:column;gap:3px;display:flex}.scale-switch:hover,.scale-switch.active{border-color:var(--accent);background:var(--accent-light)}.scale-switch.active{box-shadow:0 0 0 3px var(--accent-ring)}.scale-switch.complete{border-color:var(--success)}.scale-switch span{font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.35;overflow:hidden}.scale-switch strong{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;font-size:11px}.question-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5)}.question-number{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;margin-bottom:var(--sp-2)}.question-text{color:var(--fg);font-size:var(--fs-lg);letter-spacing:0;font-weight:600;line-height:1.4}.question-hint{color:var(--muted);font-size:var(--fs-sm);margin-top:var(--sp-2)}.options-list{gap:var(--sp-2);margin-top:var(--sp-4);flex-direction:column;display:flex}.option-btn{align-items:center;gap:var(--sp-3);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;min-height:52px;color:var(--fg);cursor:pointer;font-size:var(--fs-base);padding:var(--sp-4);text-align:left;transition:all var(--dur);font-weight:500;display:flex}.option-btn:hover{border-color:var(--accent);background:var(--accent-light)}.option-btn:active{transform:scale(.985)}.option-btn.selected{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 3px var(--accent-ring)}.option-radio{border:2px solid var(--border);width:24px;height:24px;transition:all var(--dur);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.option-btn.selected .option-radio{border-color:var(--accent);background:var(--accent)}.option-btn.selected .option-radio:after{content:"";background:#fff;border-radius:50%;width:8px;height:8px}.scale-actions{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-light);gap:var(--sp-3);background:var(--surface);flex-shrink:0;display:flex}.scale-actions.in-content{border-top:0;padding:0}.btn-prev{border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:50px;min-width:50px;height:50px;color:var(--muted);transition:all var(--dur);justify-content:center;align-items:center;font-size:18px;display:flex}.btn-prev:hover{border-color:var(--muted);background:var(--bg)}.btn-next,.btn-submit-scale{border-radius:var(--radius-lg);height:50px;font-size:var(--fs-md);letter-spacing:0;transition:all var(--dur);border:0;justify-content:center;align-items:center;font-weight:600;display:flex}.btn-next{background:var(--accent);color:#fff;flex:1}.btn-submit-scale{background:var(--fg);color:#fff;min-width:76px;padding:0 var(--sp-4)}.btn-next:hover{background:var(--accent-hover)}.btn-next:active,.btn-submit-scale:active{transform:scale(.98)}.btn-next:disabled,.btn-submit-scale:disabled,.btn-prev:disabled{cursor:not-allowed;opacity:.72}.btn-next:disabled{background:var(--border);color:#b0b8c1}.confirm-overlay{z-index:300;animation:fadeIn .18s var(--ease);background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--surface);width:100%;max-width:420px;padding:var(--sp-6);animation:slideUp .25s var(--ease)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.confirm-sheet h3{font-size:var(--fs-lg);margin-bottom:var(--sp-2);font-weight:600}.confirm-summary{color:var(--muted);font-size:var(--fs-sm);margin-bottom:var(--sp-5);overflow-wrap:anywhere}.confirm-summary strong{color:var(--fg)}.confirm-actions{gap:var(--sp-3);display:flex}.confirm-actions .btn-cancel,.confirm-actions .btn-submit{border-radius:var(--radius-lg);height:48px;font-size:var(--fs-base);font-weight:600}.confirm-actions .btn-cancel{border:1.5px solid var(--border);background:var(--surface);color:var(--fg);flex:1}.confirm-actions .btn-submit{background:var(--accent);color:#fff;border:0;flex:2}.completion-screen{padding:var(--sp-8) var(--sp-6);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.completion-icon{background:var(--success-light);width:80px;height:80px;color:var(--success);margin-bottom:var(--sp-6);border-radius:50%;justify-content:center;align-items:center;font-size:40px;display:flex}.completion-screen h2{font-size:var(--fs-xl);letter-spacing:0;margin-bottom:var(--sp-3);font-weight:700}.completion-screen p{color:var(--muted);font-size:var(--fs-base);margin-bottom:var(--sp-2);line-height:1.6}.completion-meta{margin-top:var(--sp-4);border-radius:var(--radius-lg);background:var(--bg);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;padding:var(--sp-3) var(--sp-5)}.completion-action{width:min(280px,100%);margin-top:var(--sp-8);flex:none}@media (min-width:760px){.scale-container{width:min(420px,100vw - 32px);min-height:640px;margin:var(--sp-6) auto;border:1px solid var(--border);border-radius:var(--radius-xl)}.confirm-overlay{align-items:center}.confirm-sheet{border-radius:var(--radius-xl)}}@media (max-width:480px){.scale-container .info-form .form-row{grid-template-columns:minmax(0,1fr)}.scale-topbar,.scale-content,.scale-actions{padding-left:var(--sp-4);padding-right:var(--sp-4)}}.patient-header{border-bottom:1px solid var(--border);background:var(--surface);padding:var(--sp-5) max(var(--sp-4), calc((100vw - 760px) / 2))}.patient-brand{align-items:center;gap:var(--sp-2);color:var(--muted);font-size:var(--fs-sm);font-weight:600;display:flex}.patient-brand-mark{border-radius:var(--radius);background:var(--accent);color:#fff;justify-content:center;align-items:center;width:26px;height:26px;font-weight:700;display:inline-flex}.patient-header h1{margin-top:var(--sp-4);font-size:var(--fs-2xl);letter-spacing:0;font-weight:650}.patient-main{gap:var(--sp-5);width:min(760px,100%);padding:var(--sp-5) var(--sp-4) var(--sp-6);margin:0 auto;display:grid}.scale-form{gap:var(--sp-5);display:grid}.scale-progress-panel{gap:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:var(--sp-5);display:grid}.progress-summary{gap:var(--sp-3);display:grid}.progress-summary div:first-child{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.progress-summary span{color:var(--muted);font-size:var(--fs-sm);font-weight:600}.progress-summary strong{color:var(--fg);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0}.progress-track{background:var(--border-light);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--accent);height:100%;transition:width var(--dur) var(--ease);display:block}.scale-step-list{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.scale-step{align-items:center;gap:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);min-width:0;color:var(--muted);padding:var(--sp-2) var(--sp-3);text-align:left;background:#fff;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.scale-step:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.scale-step.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.scale-step.complete .scale-step-index{background:var(--success);color:#fff}.scale-step:disabled{cursor:not-allowed;opacity:.55}.scale-step-index{background:var(--bg);width:22px;height:22px;color:var(--muted);font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.scale-step-text{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.scale-step-count{color:inherit;font-family:var(--font-mono);letter-spacing:0;white-space:nowrap;font-size:10px}.form-panel{overflow:hidden}.form-panel-header{justify-content:flex-start}.field-grid{gap:var(--sp-4);padding:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.field{gap:var(--sp-2);min-width:0;display:grid}.field span{color:var(--muted);font-size:var(--fs-sm);font-weight:500}.field input,.field select{border:1px solid var(--border);border-radius:var(--radius);width:100%;min-width:0;height:40px;color:var(--fg);padding:0 var(--sp-3);transition:border var(--dur), box-shadow var(--dur);background:#fff;outline:none}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a9c7a1f}.scale-section-title{justify-content:space-between;align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--border-light);padding:var(--sp-4) var(--sp-5);display:flex}.scale-section-title h2{font-size:var(--fs-lg);letter-spacing:0}.scale-section-title p,.scale-section-title span{color:var(--muted);font-size:var(--fs-sm)}.scale-section-title span{font-family:var(--font-mono);letter-spacing:0;white-space:nowrap}.scale-local-progress{border-bottom:1px solid var(--border-light);padding:0 var(--sp-5) var(--sp-4)}.question-list{flex-direction:column;display:flex}.question-row{gap:var(--sp-3);border:0;border-bottom:1px solid var(--border-light);padding:var(--sp-4) var(--sp-5);display:grid}.question-row:last-child{border-bottom:0}.question-row legend{align-items:center;gap:var(--sp-2);overflow-wrap:anywhere;min-width:0;font-weight:600;display:flex}.question-row legend span{background:var(--accent-light);width:22px;height:22px;color:var(--accent);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.scale-options{gap:var(--sp-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.scale-option{justify-content:space-between;align-items:center;gap:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);min-width:0;min-height:40px;color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);transition:border var(--dur), background var(--dur), color var(--dur);background:#fff;display:flex}.scale-option:hover{border-color:var(--accent)}.scale-option.selected{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.scale-option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.option-marker{border:1px solid var(--border);width:18px;height:18px;transition:background var(--dur), border var(--dur), box-shadow var(--dur);background:#fff;border-radius:50%;flex-shrink:0;display:block}.scale-option.selected .option-marker{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 4px #fff}.form-error{border-radius:var(--radius);background:var(--danger-light);color:var(--danger);padding:var(--sp-3) var(--sp-4);font-weight:600}.scale-navigation{align-items:center;gap:var(--sp-3);grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);display:grid}.scale-navigation-status{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0;text-align:center;white-space:nowrap}.submit-button,.secondary-button{border-radius:var(--radius);justify-content:center;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-5);border:1px solid #0000;font-weight:650;display:inline-flex}.submit-button{background:var(--accent);color:#fff}.submit-button:hover{background:var(--accent-hover)}.secondary-button{background:var(--surface);border-color:var(--border);color:var(--muted)}.secondary-button:hover{border-color:var(--accent);color:var(--accent)}.submit-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.72}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.result-panel{gap:var(--sp-4);padding:var(--sp-5);display:grid}.result-panel-heading{align-items:center;gap:var(--sp-3);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.result-panel-heading svg{color:var(--success)}.result-panel-heading h2{font-size:var(--fs-lg);letter-spacing:0}.result-panel-heading p{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:0}.result-grid{gap:var(--sp-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.result-chip{border-radius:var(--radius);background:var(--success-light);min-width:0;padding:var(--sp-3)}.result-chip.tone-attention{background:var(--warn-light)}.result-chip.tone-urgent,.result-chip.tone-critical{background:var(--danger-light)}.result-chip-label{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0}.result-chip-score{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:0;margin-top:2px;font-weight:700}.result-chip-meta{color:var(--muted);font-size:var(--fs-xs);overflow-wrap:anywhere;margin-top:2px}.submitted-summary{justify-content:center;gap:var(--sp-3);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;position:absolute;overflow:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width:1023px){:root{--sidebar-w:64px}.sidebar-brand-text,.sidebar-section-label,.sidebar-user-info,.sidebar-item span:not(.sidebar-item-icon){display:none}.sidebar-item{padding:var(--sp-2);justify-content:center}.sidebar-item-badge{min-width:16px;padding:1px 4px;font-size:9px;position:absolute;top:2px;right:2px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:minmax(0,1fr)}.topbar-search{width:180px}.detail-grid,.scale-detail-layout{grid-template-columns:minmax(0,1fr)}.submission-row{grid-template-columns:38px minmax(0,1fr) auto}.submission-scores{grid-area:2/2/auto/-1;justify-content:flex-start}.submission-row>.badge{grid-area:1/3;justify-self:flex-end}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:639px){:root{--sidebar-w:0px}html,body{width:100%;max-width:100%;overflow-x:hidden}.sidebar{width:260px;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar.open .sidebar-brand-text,.sidebar.open .sidebar-section-label,.sidebar.open .sidebar-user-info,.sidebar.open .sidebar-item span{display:inline-flex}.sidebar.open .sidebar-item{padding:var(--sp-2) var(--sp-3);justify-content:flex-start}.sidebar-overlay.show{z-index:99;background:#00000059;border:0;display:block;position:fixed;inset:0}.topbar{gap:var(--sp-2);padding:0 var(--sp-3);left:0}.topbar-menu-btn{display:flex}.topbar-actions{display:none}.main{width:100vw;max-width:100vw;padding:var(--sp-4);margin-left:0}.page-header h1{font-size:var(--fs-xl)}.stat-grid,.dash-grid{width:100%;max-width:100%;overflow:hidden}.stat-grid{gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}.stat-card,.dash-panel{width:100%;max-width:100%;overflow:hidden}.stat-card{padding:var(--sp-3) var(--sp-4)}.stat-card-icon{display:none}.stat-card-value{font-size:var(--fs-2xl)}.topbar-search{display:none}.topbar-title{font-size:var(--fs-base)}.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-panel-header{padding:var(--sp-4)}.dash-panel-body{padding:var(--sp-2) var(--sp-4) var(--sp-4)}.alert-row{align-items:flex-start}.page-header-row{flex-direction:column}.page-action,.primary-link{justify-content:center;width:100%}.stat-mini-row{gap:var(--sp-2)}.stat-mini{min-width:calc(50% - var(--sp-2));padding:var(--sp-3)}.filter-bar{gap:var(--sp-2);padding:var(--sp-4)}.filter-group,.filter-group select,.filter-group input{width:100%;min-width:0}.filter-spacer{display:none}.filter-bar .btn{min-width:calc(50% - var(--sp-2));flex:1}.pagination{flex-direction:column;align-items:flex-start}.pagination-pages{flex-wrap:wrap;max-width:100%}.scale-detail-main{padding:var(--sp-4)}.detail-section-title{margin:calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) 0;padding:var(--sp-4)}.detail-scale-header{flex-direction:column;align-items:flex-start}.overview-grid,.field-grid,.result-grid{grid-template-columns:minmax(0,1fr)}.overview-card,.submission-list,.answer-scale-list,.info-list,.detail-score-list,.field-grid{padding:var(--sp-4)}.submission-row{grid-template-columns:36px minmax(0,1fr);align-items:flex-start}.submission-scores,.submission-row>.badge{grid-area:auto/2/auto/-1;justify-self:flex-start}.submission-title{flex-direction:column;align-items:flex-start;gap:2px}.detail-score-row,.answer-row{grid-template-columns:minmax(0,1fr)}.detail-score-row>.badge,.detail-score-value,.answer-value{justify-self:flex-start}.answer-value{white-space:normal}.patient-header{padding:var(--sp-4)}.patient-header h1{font-size:var(--fs-xl)}.scale-section-title,.table-panel-header,.detail-panel-header,.answer-panel-header,.form-panel-header,.scale-progress-panel{padding:var(--sp-4)}.scale-step-list{grid-template-columns:minmax(0,1fr)}.question-row{padding:var(--sp-4)}.scale-options{grid-template-columns:repeat(2,minmax(0,1fr))}.scale-option{min-height:42px}.scale-local-progress{padding:0 var(--sp-4) var(--sp-4)}.scale-navigation{grid-template-columns:minmax(0,1fr)}.scale-navigation-status{order:-1}.result-panel-heading{grid-template-columns:auto minmax(0,1fr)}.result-panel-heading .badge{grid-column:1/-1;justify-self:flex-start}}.msg-app-container{background:var(--surface);width:100%;max-width:100%;min-height:100dvh;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}.msg-app-topbar{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-light);align-items:center;gap:var(--sp-3);background:var(--surface);flex-shrink:0;display:flex}.msg-app-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:17px;font-weight:600;display:flex}.msg-app-status{font-size:var(--fs-xs);color:var(--success);flex-shrink:0;align-items:center;gap:6px;display:flex}.msg-app-status:before{content:"";background:var(--success);border-radius:50%;width:8px;height:8px}.msg-conv-tabs{gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-light);scrollbar-width:none;flex-shrink:0;display:flex;overflow-x:auto}.msg-conv-tabs::-webkit-scrollbar{display:none}.msg-conv-tab{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);background:var(--surface);font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;transition:all var(--dur);border-radius:99px;font-weight:500;display:flex}.msg-conv-tab:hover{border-color:var(--accent);color:var(--accent)}.msg-conv-tab.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.msg-conv-dot{background:var(--warn);border-radius:50%;width:6px;height:6px}.msg-chat-area{padding:var(--sp-4);gap:var(--sp-3);background:var(--bg);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.msg-date-divider{text-align:center;margin:var(--sp-2) 0}.msg-date-divider span{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono);background:var(--bg);border-radius:99px;padding:2px 12px}.msg-row{gap:var(--sp-2);max-width:88%;display:flex}.msg-row.patient{flex-direction:row-reverse;align-self:flex-end}.msg-row.doctor{align-self:flex-start}.msg-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:4px;font-size:13px;font-weight:600;display:flex}.msg-row.patient .msg-avatar{background:var(--accent);color:#fff}.msg-row.doctor .msg-avatar{background:var(--info-light);color:var(--info)}.msg-bubble{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);font-size:var(--fs-base);word-break:break-word;line-height:1.55}.msg-row.patient .msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:var(--radius)}.msg-row.doctor .msg-bubble{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:var(--radius)}.msg-time{font-size:var(--fs-xs);color:#fff9;margin-top:var(--sp-1)}.msg-row.doctor .msg-time{color:var(--muted)}.msg-author{font-size:var(--fs-xs);color:var(--info);margin-bottom:2px;font-weight:600}.msg-status-pill{font-size:11px;font-weight:600;font-family:var(--font-mono);letter-spacing:0;border-radius:99px;align-self:center;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.msg-status-pill.replied{background:var(--success-light);color:var(--success)}.msg-status-pill.pending{background:var(--warn-light);color:var(--warn)}.msg-status-pill.closed{color:#6b7280;background:#f3f4f6}.msg-compose{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.msg-compose.closed{background:var(--bg);text-align:center;padding:var(--sp-5)}.msg-compose-closed-text{color:var(--muted);font-size:var(--fs-sm)}.compose-row{gap:var(--sp-2);align-items:flex-end;display:flex}.compose-input{min-height:44px;max-height:120px;padding:var(--sp-3) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius-full);font-size:var(--fs-base);color:var(--fg);background:var(--bg);resize:none;transition:border var(--dur);outline:none;flex:1;font-family:inherit;line-height:1.4}.compose-input:focus{border-color:var(--accent)}.compose-send{background:var(--accent);color:#fff;width:44px;height:44px;transition:all var(--dur);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.compose-send:hover{background:var(--accent-hover)}.compose-send:active{transform:scale(.94)}.compose-send:disabled{background:var(--border);color:#b0b8c1;cursor:not-allowed}.compose-hint{font-size:var(--fs-xs);color:var(--muted);margin-top:var(--sp-2)}.empty-chat{text-align:center;padding:var(--sp-6);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.empty-chat-icon{margin-bottom:var(--sp-3);opacity:.5;font-size:40px}.empty-chat h3{font-size:var(--fs-lg);color:var(--fg);margin-bottom:var(--sp-2);font-weight:600}.empty-chat p{font-size:var(--fs-sm)}.msg-stat-mini-row{gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.msg-stat-mini{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:120px;padding:var(--sp-4);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--dur);font-family:inherit;font-size:inherit;text-align:left;color:inherit;flex:1}.msg-stat-mini:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.msg-stat-mini.active{border-color:var(--accent);background:var(--accent-light)}.msg-stat-mini-label{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0;color:var(--muted);margin-bottom:var(--sp-1)}.msg-stat-mini-value{font-size:var(--fs-2xl);font-weight:700;font-family:var(--font-display);letter-spacing:0;line-height:1}.msg-filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-sm);gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end;display:flex}.filter-group{flex-direction:column;gap:4px;display:flex}.filter-group label{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0;color:var(--muted)}.filter-group select,.filter-group input:not([type=checkbox]):not([type=radio]){height:32px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--fg);background:var(--surface);min-width:110px;transition:border var(--dur);outline:none;font-family:inherit}.filter-group select:focus,.filter-group input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--accent)}.filter-group input:not([type=checkbox]):not([type=radio]){min-width:160px}.filter-spacer{flex:1}.btn{border-radius:var(--radius);height:32px;font-size:var(--fs-sm);border:1px solid var(--border);background:var(--surface);color:var(--fg);transition:all var(--dur);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;padding:0 14px;font-family:inherit;font-weight:500;line-height:1;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-sm{height:28px;font-size:var(--fs-xs);border-radius:var(--radius-sm);padding:0 10px}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg);color:var(--fg)}.btn:disabled{cursor:not-allowed;opacity:.6}.msg-list{padding:var(--sp-2) var(--sp-5);flex-direction:column;display:flex}.msg-card{gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px solid var(--border-light);cursor:pointer;transition:all var(--dur);font-family:inherit;font-size:inherit;color:inherit;text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;width:100%;display:flex}.msg-card:last-child{border-bottom:0}.msg-card:hover{color:inherit}.msg-card:hover .msg-card-patient{color:var(--accent)}.msg-card.urgent{border-left:3px solid var(--danger);padding-left:var(--sp-3)}.msg-card-avatar{background:var(--accent-light);width:40px;height:40px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.msg-card-body{flex:1;min-width:0}.msg-card-head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.msg-card-patient{font-size:var(--fs-md);transition:color var(--dur);font-weight:600}.msg-card-meta{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono);letter-spacing:0}.msg-card-preview{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:var(--sp-2);overflow:hidden}.msg-card-foot{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.msg-card-assignee{font-size:var(--fs-xs);align-items:center;gap:4px;display:flex}.msg-card-assignee.assigned{color:var(--info)}.msg-card-assignee.unassigned{color:var(--warn)}.badge-closed{color:#6b7280;background:#f3f4f6}.badge-closed .badge-dot{background:#9ca3af}.badge-overdue{background:var(--danger-light);color:var(--danger)}.badge-overdue .badge-dot{background:var(--danger)}.msg-pagination{padding:var(--sp-4) 0;justify-content:space-between;align-items:center;display:flex}.pagination-info{font-size:var(--fs-sm);color:var(--muted);font-family:var(--font-mono)}.pagination-pages{gap:2px;display:flex}.pagination-pages button{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:30px;height:30px;font-size:var(--fs-sm);font-family:var(--font-mono);color:var(--fg);transition:all var(--dur);cursor:pointer;justify-content:center;align-items:center;display:flex}.pagination-pages button:hover{border-color:var(--accent);color:var(--accent)}.pagination-pages button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.msg-drawer-overlay{z-index:200;animation:fadeIn .15s var(--ease);background:#0000004d;position:fixed;inset:0}.msg-drawer{z-index:210;background:var(--surface);width:520px;max-width:100vw;box-shadow:var(--shadow-lg);transition:transform .25s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.msg-drawer.show{transform:translate(0)}.msg-drawer-header{padding:var(--sp-5);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.msg-drawer-header h3{font-size:var(--fs-lg);font-weight:600}.drawer-header-actions{gap:var(--sp-2);align-items:center;display:flex}.msg-drawer-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.msg-drawer-close:hover{background:var(--bg);color:var(--fg)}.msg-drawer-body{padding:var(--sp-5);flex:1;overflow-y:auto}.msg-drawer-patient-card{background:var(--bg);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-4)}.msg-drawer-patient-row{gap:var(--sp-4);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.msg-drawer-patient-col{flex-direction:column;gap:2px;display:flex}.msg-drawer-patient-col .label{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0;color:var(--muted)}.msg-drawer-patient-col .value{color:var(--fg);font-weight:500}.msg-drawer-patient-meta{margin-top:var(--sp-2);align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.msg-drawer-patient-meta .label{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono)}.msg-drawer-time{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono);margin-left:auto}.msg-drawer-chat{gap:var(--sp-3);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.msg-drawer-bubble{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);font-size:var(--fs-sm);max-width:88%;line-height:1.55}.msg-drawer-bubble.patient{background:var(--accent);color:#fff;border-bottom-right-radius:var(--radius);align-self:flex-end}.msg-drawer-bubble.doctor{background:var(--bg);border:1px solid var(--border);border-bottom-left-radius:var(--radius);align-self:flex-start}.msg-drawer-bubble-author{font-size:var(--fs-sm);color:var(--info)}.msg-drawer-bubble-meta{color:var(--muted);font-size:10px;font-family:var(--font-mono);letter-spacing:0;margin-top:var(--sp-1)}.msg-drawer-bubble.patient .msg-drawer-bubble-meta{color:#fff9}.msg-drawer-compose{border-top:1px solid var(--border-light);padding:var(--sp-4);flex-shrink:0}.msg-drawer-compose.closed{background:var(--bg);text-align:center;padding:var(--sp-5);color:var(--muted);font-size:var(--fs-sm)}.msg-drawer-compose textarea{width:100%;min-height:80px;max-height:160px;padding:var(--sp-3) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--fg);background:var(--bg);resize:vertical;transition:border var(--dur);outline:none;font-family:inherit;line-height:1.5}.msg-drawer-compose textarea:focus{border-color:var(--accent)}.msg-drawer-compose-actions{margin-top:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.msg-drawer-compose-select{font-size:var(--fs-sm)}.msg-drawer-compose-select select{height:32px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--fg);background:var(--surface);margin-left:var(--sp-2);transition:border var(--dur);outline:none;font-family:inherit}.msg-drawer-compose-select select:focus{border-color:var(--accent)}.msg-drawer-compose-btns{gap:var(--sp-2);display:flex}@media (min-width:421px){.msg-app-container{width:min(420px,100vw - 32px);min-height:640px;max-height:90vh;margin:var(--sp-6) auto;border:1px solid var(--border);border-radius:var(--radius-xl)}.msg-chat-area{min-height:0}}@media (max-width:639px){.msg-drawer{width:100vw}.msg-card{gap:var(--sp-3)}.msg-card-avatar{width:36px;height:36px;font-size:14px}.msg-card-head{flex-wrap:wrap}.msg-filter-bar{gap:var(--sp-2);padding:var(--sp-4)}.msg-filter-bar .filter-group,.msg-filter-bar .filter-group select,.msg-filter-bar .filter-group input{width:100%;min-width:0}.msg-filter-bar .filter-spacer{display:none}.msg-stat-mini{min-width:calc(50% - 6px);padding:var(--sp-3)}.msg-pagination{align-items:flex-start;gap:var(--sp-2);flex-direction:column}}.dv-stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.dv-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 24px}.dv-stat-card.tone-accent{border-left:3px solid var(--accent)}.dv-stat-card.tone-info{border-left:3px solid var(--info)}.dv-stat-card.tone-success{border-left:3px solid var(--success)}.dv-stat-card.tone-urgent{border-left:3px solid var(--danger)}.dv-stat-card.tone-warn{border-left:3px solid var(--warn)}.dv-stat-label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:500;line-height:1}.dv-stat-value{font-family:var(--font-display);font-size:32px;font-weight:600;line-height:1}.dv-stat-sub{color:var(--muted);font-size:var(--fs-sm);margin-top:6px;line-height:1.4}.dv-page-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.dv-scan-zone{gap:20px;margin-bottom:24px;display:flex}.dv-scan-input-card{border:2px dashed var(--border);background:var(--surface);min-height:238px;box-shadow:var(--shadow-sm);transition:border-color var(--dur), box-shadow var(--dur);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:32px;display:flex}.dv-scan-input-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #1a9c7a14, var(--shadow-sm)}.dv-scan-icon{width:48px;height:48px;color:var(--muted);flex-shrink:0}.dv-scan-label{color:var(--muted);font-size:var(--fs-base);line-height:1}.dv-scan-form{width:min(420px,100%)}.dv-scan-input-card input{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);width:100%;height:48px;color:var(--fg);font-family:var(--font-mono);letter-spacing:.04em;padding:0 var(--sp-4);text-align:center;transition:border-color var(--dur);outline:none;font-size:18px}.dv-scan-input-card input:focus{border-color:var(--accent)}.dv-scan-result-card{border:1px solid var(--border);background:var(--surface);width:340px;min-height:238px;box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;padding:20px;display:flex}.dv-scan-result-title{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-weight:600;line-height:1}.dv-scan-hint{color:var(--muted);font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:.04em;line-height:1}.dv-scan-result-device{flex-direction:column;flex:1;gap:10px;display:flex}.dv-scan-device-name{color:var(--fg);font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg);line-height:1.2}.dv-result-row{justify-content:space-between;align-items:center;gap:var(--sp-3);color:var(--muted);font-size:var(--fs-base);line-height:1.4;display:flex}.dv-result-row strong{color:var(--fg);font-size:var(--fs-sm);text-align:right;font-weight:500}.dv-scan-msg{color:var(--warn);font-size:var(--fs-sm)}.dv-scan-empty{color:var(--muted);font-size:var(--fs-base);flex:1;justify-content:center;align-items:center;display:flex}.dv-section-title{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-weight:600;line-height:1}.dv-recent-scan-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.dv-recent-scan-table{border-collapse:collapse;width:100%;font-size:var(--fs-base);line-height:1.5}.dv-recent-scan-table th{border-bottom:1px solid var(--border);background:var(--bg);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:12px 16px;font-weight:600}.dv-recent-scan-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 16px}.dv-recent-scan-table tr:last-child td{border-bottom:0}.dv-recent-scan-table tbody tr:hover{background:var(--bg)}.dv-recent-empty{height:84px;color:var(--muted);text-align:center}.dv-filter-chips{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.dv-filter-chip{align-items:center;gap:var(--sp-2);border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-1) var(--sp-3);cursor:pointer;transition:all var(--dur);border-radius:99px;font-weight:500;display:inline-flex}.dv-filter-chip:hover{border-color:var(--accent);color:var(--accent)}.dv-filter-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.dv-filter-chip span{font-family:var(--font-mono);font-size:var(--fs-xs)}.dv-table-wrap{padding:var(--sp-2) var(--sp-5) var(--sp-4);overflow-x:auto}.dv-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.dv-table th{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:2px solid var(--border);white-space:nowrap}.dv-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-light);white-space:nowrap}.dv-table tr:hover td{background:var(--accent-light)}.dv-deleted-row td{color:var(--muted);text-decoration-line:line-through}.dv-deleted-row td .dv-link{color:var(--muted)}.dv-th-sel{width:36px}.dv-link{color:var(--accent);cursor:pointer;background:0 0;border:0;font-weight:600}.dv-link:hover{text-decoration:underline}.dv-sort-btn{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:0}.dv-sort-btn:hover{color:var(--accent)}.dv-detail-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);display:flex}.dv-info-grid{gap:var(--sp-3);padding:var(--sp-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dv-info-item{min-width:0}.dv-info-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase}.dv-info-value{overflow-wrap:anywhere;font-weight:500}.dv-section-icon{color:var(--accent);align-items:center;display:flex}.dv-side-actions{gap:var(--sp-2);padding:var(--sp-4);flex-direction:column;display:flex}.dv-timeline{gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);flex-direction:column;display:flex}.dv-timeline-entry{border-left:2px solid var(--border);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm)}.dv-timeline-entry:last-child{border-left-color:var(--accent)}.dv-repair-list{gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);flex-direction:column;display:flex}.dv-repair-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);border:1px solid var(--border-light);border-radius:var(--radius);padding:var(--sp-3);display:flex}.dv-repair-row strong{font-size:var(--fs-sm)}.dv-repair-row p{font-size:var(--fs-sm);color:var(--muted);margin:var(--sp-1) 0}.dv-audit-list{padding:12px}.dv-modal{border-radius:var(--radius-lg);background:var(--surface);width:min(540px,100vw - 48px);max-height:85vh;box-shadow:var(--shadow-lg);animation:slideUp .25s var(--ease);overflow-y:auto}.dv-modal-wide{width:min(640px,100vw - 48px)}.dv-modal-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.dv-modal-header h3{font-size:var(--fs-lg);font-weight:600}.dv-form-grid{gap:var(--sp-3);padding:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dv-form-rows{gap:var(--sp-3);padding:var(--sp-5);flex-direction:column;display:flex}.dv-field{gap:var(--sp-1);flex-direction:column;display:flex}.dv-field span{font-size:var(--fs-sm);color:var(--fg);font-weight:500}.dv-field input,.dv-field select,.dv-field textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);background:var(--surface);transition:border var(--dur);outline:none;font-family:inherit}.dv-field input:focus,.dv-field select:focus,.dv-field textarea:focus{border-color:var(--accent)}.dv-field textarea{resize:vertical;min-height:72px}.dv-col-span-2{grid-column:1/-1}.dv-modal-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.dv-analytics-grid{gap:var(--sp-5);margin-bottom:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.dv-bar-list{gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);flex-direction:column;display:flex}.dv-bar-row{align-items:center;gap:var(--sp-3);grid-template-columns:minmax(140px,180px) minmax(0,1fr) minmax(88px,max-content);display:grid}.dv-bar-label{min-width:0;overflow:hidden}.dv-bar-label span{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.dv-bar-label span:last-child{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.dv-bar-track{background:var(--border-light);border-radius:4px;width:100%;height:18px;overflow:hidden}.dv-bar-fill{min-width:4px;height:100%;transition:width .4s var(--ease);border-radius:4px}.dv-bar-urgent{background:var(--danger)}.dv-bar-warn{background:var(--warn)}.dv-bar-accent{background:var(--accent)}.dv-bar-info{background:var(--info)}.dv-bar-row strong{font-size:var(--fs-sm);white-space:nowrap;justify-self:end}.compact{padding:var(--sp-1) var(--sp-2)!important}.hint{color:var(--muted);font-size:var(--fs-xs);text-align:center}.mono{font-family:var(--font-mono);letter-spacing:0}.btn.icon{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px;display:flex}.btn.icon:hover{background:var(--bg);color:var(--fg)}.muted{color:var(--muted)}.full{width:100%}@media (max-width:1023px){.dv-stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}.dv-scan-zone{flex-direction:column}.dv-scan-result-card{width:100%}.dv-analytics-grid{grid-template-columns:minmax(0,1fr)}.dv-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:639px){.dv-stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dv-info-grid,.dv-bar-row{grid-template-columns:minmax(0,1fr)}.dv-bar-track{grid-row:2}.dv-bar-row strong{justify-self:start}.dv-page-actions{flex-direction:column}}
