:root{color:#26262c;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f5f5;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,textarea,select{font:inherit}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-boot{background:#fff;min-height:100vh}.auth-page{background:#f5f5f5;place-items:center;min-height:100vh;padding:32px 20px;display:grid;position:relative}.auth-panel{background:#fff;border-radius:8px;width:min(400px,100%);padding:40px;box-shadow:0 4px 16px #00000014}.auth-brand-block{justify-items:center;gap:12px;margin-bottom:32px;display:grid}.auth-brand,.admin-brand{align-items:center;gap:12px;font-weight:700;display:flex}.auth-brand{color:#26262c;font-size:30px;line-height:43px}.auth-brand-mark,.admin-brand-mark{color:#1677ff;flex:none}.auth-brand-mark{width:36px;height:36px}.auth-slogan{color:#8c8c8c;font-size:14px}.auth-form{gap:24px;display:grid}.auth-form .ant-form-item{margin-bottom:0}.auth-form .ant-input-affix-wrapper{border-radius:6px;height:40px;padding-inline:12px}.auth-form .ant-btn{height:40px;font-size:16px}.auth-error{margin-bottom:20px}.remember-row{margin-bottom:0}.auth-hint{text-align:center;margin-top:20px;font-size:13px;display:block}.auth-footer{color:#bfbfbf;font-size:12px;position:absolute;bottom:20px}.admin-shell{min-height:100vh}.admin-sider{z-index:10;inset:0 auto 0 0;overflow:auto;background:#001529!important;position:fixed!important}.admin-brand{color:#fff;height:64px;padding:0 24px;font-size:18px}.admin-brand-mark{width:24px;height:24px}.admin-menu{padding:8px 0;background:#001529!important;border-inline-end:0!important}.admin-menu .ant-menu-submenu-title,.admin-menu .ant-menu-item{border-radius:0;width:100%;height:40px;margin:2px 0;font-weight:400}.admin-menu .ant-menu-sub.ant-menu-inline{background:#001529!important}.admin-main{min-width:0;margin-left:208px}.admin-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;height:64px;display:flex;padding:0 24px!important;line-height:normal!important}.admin-breadcrumb{align-items:center;gap:8px;font-size:14px;display:flex}.admin-breadcrumb span{color:#8c8c8c}.admin-breadcrumb i{color:#bfbfbf;font-style:normal}.admin-breadcrumb strong{color:#26262c;font-weight:400}.admin-user{align-items:center;gap:16px;display:flex}.admin-notification{color:#8c8c8c;font-size:18px}.admin-user-trigger{color:#26262c;cursor:pointer;background:0 0;border:0;align-items:center;gap:16px;padding:0;display:flex}.admin-user-trigger:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #1677ff}.admin-avatar{background:#1677ff}.admin-user-name{color:#26262c}.admin-content{min-width:0;padding:24px;overflow:auto}.route-placeholder{min-height:calc(100vh - 120px)}.route-placeholder h1{margin:0;font-size:24px;line-height:1.4}.route-loading{color:#667085;background:#fff;place-items:center;min-height:100vh;display:grid}.management-page{min-width:0;position:relative}.management-heading{height:0;min-height:0;margin:0;overflow:visible}.management-heading>div{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.management-heading>.ant-btn{z-index:2;position:absolute;top:24px;right:24px}.management-surface{background:#fff;border-radius:8px;min-width:0;min-height:calc(100vh - 112px);padding:24px}.management-toolbar{grid-template-columns:300px 150px 150px auto;gap:12px;margin-bottom:16px;padding-right:132px;display:grid}.management-toolbar>.ant-btn:last-child{justify-self:start;width:76px}.management-toolbar>.ant-input-group-wrapper,.management-toolbar>.ant-input-affix-wrapper,.management-toolbar>.ant-select,.management-search{width:100%}.data-table-state{min-height:320px;padding:22px 4px}.data-table-state.ant-alert{min-height:auto;margin:28px 0}.data-table-scroll{outline-offset:3px;max-width:100%;overflow-x:auto}.data-table-scroll .ant-table{font-size:14px}.data-table-scroll .ant-table-thead>tr>th{color:#26262c;background:#fafafa;height:44px;padding:12px;font-weight:500}.data-table-scroll .ant-table-tbody>tr>td{height:54px;padding:12px}.data-table-pagination{color:#8c8c8c;justify-content:flex-end;align-items:center;gap:18px;min-height:48px;margin-top:16px;display:flex}.form-grid{grid-template-columns:1fr 1fr;column-gap:18px;display:grid}.native-select{color:#1f2633;background:#fff;border:1px solid #d9d9d9;border-radius:6px;outline:none;width:100%;height:38px;padding:0 11px}.native-select:hover{border-color:#6993ee}.native-select:focus-visible{border-color:#356ae6;box-shadow:0 0 0 2px #356ae61f}.native-select:disabled{color:#98a2b3;background:#f5f5f5}.doctor-picker{gap:8px;display:grid}.doctor-options-error{margin:-4px 0 18px}.form-api-error,.form-plan-hint{margin-bottom:18px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.inline-error{color:#d92d20}.muted,.song-preview-hint{color:#8c8c8c;font-size:13px}.song-preview-hint{margin:16px 0 10px}.song-list-error{margin-bottom:16px}.song-analysis-cell{gap:6px;display:grid}.song-analysis-cell .ant-alert{padding:6px 8px}.song-artifacts{align-items:center;gap:6px;display:flex}.song-artifact-icons{align-items:center;gap:8px;display:inline-flex}.song-artifact-icon{color:#cfd3da;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:30px;display:inline-flex}.song-artifact-icon.is-ready{color:#344054}.song-artifact-icon svg{width:24px;height:24px}.song-artifact-icon:focus-visible{outline-offset:3px;outline:2px solid #1677ff}.song-artifacts .song-artifacts-preview{padding-inline:4px;font-size:13px}.song-analysis-mock{justify-self:start}.song-page{gap:16px;display:grid}.song-upload-card{background:#fff;border-radius:8px;height:168px;padding:24px}.song-upload-zone{color:#26262c;cursor:pointer;background:#fafafa;border:1px dashed #d9d9d9;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:120px;display:flex}.song-upload-zone:hover{color:#1677ff;border-color:#1677ff}.song-upload-zone>.anticon{color:#1677ff;font-size:28px}.song-upload-zone small{color:#bfbfbf;font-size:12px}.song-table-surface{min-height:calc(100vh - 296px)}.songs-toolbar{grid-template-columns:minmax(0,1fr) auto;padding-right:0}.songs-toolbar>.ant-select,.songs-toolbar>.ant-btn{display:none}.songs-search-actions{align-items:center;gap:12px;min-width:0;display:flex}.songs-search-actions .management-search{width:312px;max-width:100%}.song-count{color:#8c8c8c;place-self:center end}.song-row-icon{color:#1677ff}.song-resource-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;margin-bottom:16px;display:grid}.song-resource-field{gap:8px;display:grid}.song-resource-field label{font-weight:500}.song-resource-picker{align-items:center;gap:12px;min-width:0;display:flex}.song-resource-filename{min-width:0;max-width:100%}.song-duration-status{margin:0 0 18px}.ant-modal audio{width:100%;margin-top:16px}.patient-data-error,.media-playback-error{margin:16px 0}.patient-data-page{gap:16px;display:grid}.patient-profile-card,.patient-history-card{background:#fff;border-radius:8px;padding:24px}.patient-profile-card{min-height:164px}.patient-profile-header{align-items:center;min-height:49px;display:flex}.patient-profile-avatar{color:#1677ff;background:#e6f4ff;border-radius:50%;place-items:center;width:48px;height:48px;margin-right:16px;font-size:20px;display:grid}.patient-profile-name{gap:4px;min-width:0;margin-right:10px;display:grid}.patient-profile-name strong{font-size:18px;line-height:26px}.patient-profile-name span{color:#8c8c8c;font-size:13px}.patient-profile-header>.ant-tag{margin-left:2px}.patient-profile-header>.ant-btn{margin-left:auto}.patient-profile-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:20px;display:grid}.patient-profile-metrics>div{gap:6px;display:grid}.patient-profile-metrics span{color:#8c8c8c;font-size:13px}.patient-profile-metrics strong{color:#26262c;font-size:15px;font-weight:500}.patient-history-card{min-height:calc(100vh - 292px)}.patient-history-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.patient-history-header h2{margin:0;font-size:16px;line-height:23px}.singing-summary{color:#595959;flex-wrap:wrap;gap:8px 18px;margin:18px 0;display:flex}.patient-date-filter{grid-template-columns:150px auto 150px;align-items:center;gap:8px;display:grid}.patient-history-table,.waveform-scroll{max-width:100%;overflow-x:auto}.patient-history-table .ant-table-thead>tr>th{background:#fafafa;height:44px;padding:12px}.patient-history-table .ant-table-tbody>tr>td{height:54px;padding:12px}.singing-detail-page{gap:16px;display:grid}.singing-summary-card{background:#fff;border-radius:8px;align-items:center;min-height:107px;padding:20px 24px;display:flex}.singing-back{width:30px;margin-right:0;padding:0!important}.singing-summary-copy{gap:4px;display:grid}.singing-summary-copy h2{color:#26262c;margin:0;font-size:18px;line-height:26px}.singing-summary-copy p,.singing-summary-copy small{color:#8c8c8c;margin:0;font-size:13px}.singing-summary-copy small{color:#bfbfbf}.singing-score{justify-items:center;gap:2px;min-width:101px;margin-left:auto;padding-inline:24px;display:grid}.singing-score strong{color:#52c41a;font-size:32px;line-height:46px}.singing-score span{color:#8c8c8c;font-size:13px}.singing-detail-content{gap:16px;display:grid}.waveform-player,.media-preview-layout{grid-template-columns:minmax(0,2.24fr) minmax(300px,1fr);gap:16px;min-width:0;display:grid}.audio-workspace{align-content:start;gap:16px;min-width:0;display:grid}.playback-card,.spectrum-card,.video-card{background:#fff;border-radius:8px;min-width:0;padding:24px}.playback-card{min-height:188px}.spectrum-card{min-height:239px}.playback-card h2,.spectrum-card h2,.video-card h2{color:#26262c;margin:0 0 16px;font-size:16px;line-height:23px}.media-prepare{color:#595959;background:#fff;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-height:188px;margin:0;display:flex}.playback-card .media-prepare{background:0 0;min-height:96px}.waveform-placeholder{background:#fafbfc;border-radius:6px;justify-content:center;align-items:center;gap:5px;height:120px;padding:12px;display:flex}.waveform-placeholder i{opacity:.85;background:#1677ff;border-radius:3px;width:6px;height:42px}.waveform-placeholder i:nth-child(3n+1){height:72px}.waveform-placeholder i:nth-child(3n+2){height:96px}.waveform-player audio{display:none}.waveform-player video,.waveform-player canvas{max-width:100%;display:block}.spectrum-card canvas{background:#fafbfc;border-radius:6px;width:100%;height:80px;margin-bottom:12px}.spectrum-card [role=tablist]{gap:8px;margin-bottom:10px;display:flex}.spectrum-card [role=tab]{color:#8c8c8c;cursor:pointer;background:#fafafa;border:0;border-radius:14px;padding:4px 12px}.spectrum-card [role=tab][aria-selected=true]{color:#1677ff;background:#e6f4ff}.spectrum-card [role=tab]:disabled{opacity:.45;cursor:not-allowed}.spectrum-card>p{color:#8c8c8c;margin:8px 0;font-size:12px}.video-card{min-height:600px}.video-card video,.video-placeholder{background:#1f1f1f;border-radius:8px;width:100%;min-height:430px}.video-card video{object-fit:contain}.video-placeholder{color:#ffffffb3;text-align:center;align-content:center;place-items:center;gap:12px;padding:24px;display:grid}.video-placeholder>.anticon{color:#fff;opacity:.4;font-size:56px}.video-placeholder p{margin:0;font-size:13px}.waveform{min-width:520px}.metric-panel{color:#91caff;background:#0b1220;border-radius:8px;grid-template-columns:repeat(5,minmax(90px,1fr));gap:12px;width:calc(100% - 376px);min-height:230px;margin:0;padding:20px;display:grid}.audio-workspace>.metric-panel{width:100%;min-height:260px}.metric-panel h2{color:#fff;grid-column:1/-1;margin:0;font-size:16px}.metric-panel p{color:#91caff;background:#111c2e;border-radius:6px;margin:0;padding:12px}.analytics-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.analytics-card{border-radius:8px;min-width:0;border:0!important}.analytics-card .ant-card-body{align-content:center;gap:4px;min-height:119px;padding:20px 20px 20px 84px;display:grid;position:relative}.analytics-card-icon{color:#1677ff;background:#e6f4ff;border-radius:8px;place-items:center;width:48px;height:48px;font-size:22px;display:grid;position:absolute;top:36px;left:20px}.analytics-card-icon.is-cyan{color:#13c2c2;background:#e6fffb}.analytics-card-icon.is-green{color:#52c41a;background:#f6ffed}.analytics-card-icon.is-gold{color:#faad14;background:#fffbe6}.analytics-card-label,.analytics-meta,.analytics-list-meta{color:#8c8c8c;font-size:13px}.analytics-card strong{overflow-wrap:anywhere;font-size:26px;line-height:1.2}.analytics-meta{display:none}.analytics-dashboard-error,.export-status,.analytics-export-error{margin-bottom:16px}.export-status{gap:10px;display:grid}.analytics-page .management-surface{min-height:auto}.analytics-toolbar{grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.analytics-toolbar .ant-select{width:100%}.analytics-export-bar{color:#475467;background:#f8fafc;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:2px 0 16px;padding:12px;display:flex}.analytics-list-meta{padding:10px 0 14px}@media (width<=899px){.admin-main{margin-left:0}.admin-header{padding:0 14px!important}.admin-content{padding:22px 16px}.admin-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.management-toolbar{grid-template-columns:minmax(220px,1fr) minmax(150px,.7fr);padding-right:0}.patient-profile-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.waveform-player,.media-preview-layout{grid-template-columns:1fr}.metric-panel{width:100%}.video-card{min-height:auto}.ant-drawer-title .admin-brand{color:#26262c}}@media (width<=520px){.auth-panel{box-shadow:none;border-radius:6px;padding:28px 22px}.auth-page{background:#fff;padding:0 16px}.admin-user-name{display:none}.management-heading{align-items:center}.management-heading h1{font-size:22px}.management-heading p{display:none}.management-surface{border-inline:0;border-radius:0;margin-inline:-16px;padding:16px 16px 0}.management-toolbar{grid-template-columns:1fr;gap:10px}.form-grid{grid-template-columns:1fr}.data-table-pagination{flex-direction:column;align-items:flex-end;padding:14px 0}.metric-panel{grid-template-columns:1fr 1fr}.patient-profile-header{flex-wrap:wrap;gap:10px}.patient-profile-header>.ant-btn{width:100%;margin-left:0}.patient-profile-metrics{grid-template-columns:1fr 1fr}.patient-history-header{flex-direction:column;align-items:flex-start;gap:12px}.patient-date-filter{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%}.song-upload-card{height:148px;padding:16px}.song-upload-zone{text-align:center;height:116px;padding:12px}.songs-toolbar{grid-template-columns:1fr}.songs-search-actions{flex-wrap:wrap}.song-resource-fields{grid-template-columns:1fr}.song-count{justify-self:start}.analytics-cards{grid-template-columns:1fr 1fr;gap:10px}.analytics-toolbar{grid-template-columns:1fr}.analytics-card .ant-card-body{min-height:92px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.live-voice-board{color:#e7edf8;background:#081425;border-radius:12px;margin-top:18px;padding:24px}.voice-board-heading,.voice-plot-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.voice-board-heading h2{color:#eef5ff;margin:0 0 20px;font-size:18px}.voice-live{color:#ff646a;background:#42222d;border-radius:24px;padding:6px 12px}.voice-paused{color:#9caec5;font-size:13px}.voice-board-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.voice-board-metrics>div{background:#171f30;border-radius:8px;min-width:0;padding:14px}.voice-board-metrics span{color:#91a3bb;margin-bottom:8px;font-size:13px;display:block}.voice-board-metrics strong{overflow-wrap:anywhere;font-size:20px}.voice-volume{color:#34d2cb}.voice-pitch{color:#3e91ff}.voice-snr{color:#aa65ee}.voice-burps{color:#ffb713}.voice-board-plots{grid-template-columns:1fr 1fr;gap:16px;display:grid}.voice-board-plots>div{background:#111b2d;border-radius:8px;min-width:0;padding:14px}.voice-plot-title h3{color:#e5edf9;margin:0 0 12px;font-size:15px}.voice-plot-title span{color:#68829f;font-size:12px}.voice-board-plots canvas{background:#0b1725;width:100%;height:auto;display:block}.singing-detail-toast{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.spectrum-card [role=tab]{cursor:pointer;min-height:48px}.spectrum-card [role=tab]:disabled{cursor:default}@media (width<=1000px){.voice-board-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-board-plots{grid-template-columns:1fr}}
