/* 颜色变量集中管理，保持后台在桌面和移动端的视觉一致。 */
:root{--ink:#172033;--muted:#697386;--line:#e5e9f0;--bg:#f6f8fb;--panel:#fff;--brand:#2878f0;--brand-dark:#1d5fca;--success:#1b9a68;--warning:#b97910;--danger:#c73b4d;--shadow:0 12px 30px rgba(31,48,82,.06)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}code,pre{font-family:Consolas,"SFMono-Regular",monospace}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center;padding:22px;background:#f4f7fb}.login-card{width:min(390px,100%);background:#fff;border:1px solid var(--line);border-radius:9px;padding:30px;box-shadow:var(--shadow)}.login-brand{padding:0 0 28px}.login-card h1{font-size:24px;margin:0 0 7px}.login-form{display:grid;gap:16px;margin-top:24px}.login-form .primary-button{width:100%;min-height:42px}.login-form .form-status{min-height:18px;margin:0;color:var(--danger)}
.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;flex:0 0 238px;background:#111a2c;color:#dbe5f6;display:flex;flex-direction:column;padding:24px 14px}.brand{display:flex;align-items:center;gap:11px;padding:2px 12px 28px}.brand strong,.brand small{display:block}.brand strong{font-size:17px;color:#fff}.brand small{font-size:11px;color:#8fa1bf;margin-top:3px}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#4d9bff,#2561d2);font-weight:700}.nav-list{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#aab8d0;border-radius:7px;text-align:left;padding:12px 13px;font-size:14px;display:flex;align-items:center;gap:12px}.nav-item span{font-size:17px;width:20px;text-align:center;color:#91a5c7}.nav-item:hover{background:#1a2943;color:#fff}.nav-item.is-active{background:#2878f0;color:#fff}.nav-item.is-active span{color:#fff}.sidebar-foot{margin-top:auto;padding:16px 12px 0;font-size:12px;color:#91a5c7;display:flex;align-items:center;gap:7px}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#f0ab3d}.status-dot.online{background:#27bd7e}.status-dot.offline{background:#e05a69}
.main-content{min-width:0;flex:1;padding:0 34px 48px}.topbar{min-height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:28px}.eyebrow{font-size:11px;color:var(--muted);margin:0 0 3px}.topbar h1{font-size:25px;margin:0;letter-spacing:0}.topbar-actions{display:flex;align-items:center;gap:13px}.server-badge,.hint-chip{font-size:12px;display:flex;gap:7px;align-items:center;color:var(--muted);background:#fff;border:1px solid var(--line);padding:8px 11px;border-radius:5px}.icon-button{border:1px solid var(--line);color:var(--muted);background:#fff;width:34px;height:34px;border-radius:5px;font-size:18px}.icon-button:hover{color:var(--brand);border-color:#b6cdf4}.mobile-menu{display:none;border:0;background:transparent;font-size:22px;margin-right:10px;color:var(--ink)}
.view{display:none;animation:fade-in .18s ease-out}.view.is-visible{display:block}@keyframes fade-in{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}.welcome-row,.section-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.welcome-row h2,.section-intro h2{font-size:19px;margin:0 0 5px}.muted{color:var(--muted);font-size:13px;margin:0;line-height:1.65}.small{font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:19px 20px;border-radius:7px}.metric-card span,.metric-card small{display:block;color:var(--muted);font-size:12px}.metric-card strong{display:block;font-size:27px;line-height:1.25;margin:9px 0 4px}.content-grid{display:grid;gap:18px}.two-columns{grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-heading h3{font-size:15px;margin:0}.text-button{border:0;background:transparent;color:var(--brand);font-size:12px;padding:3px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;min-width:500px}th{text-align:left;color:var(--muted);font-weight:500;background:#fafbfc}th,td{padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:last-child td{border-bottom:0}.empty-cell{text-align:center;color:var(--muted);padding:30px 12px}.task-list{display:grid;gap:11px}.task-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:11px}.task-row:last-child{border:0;padding-bottom:0}.task-main{min-width:0}.task-main strong,.task-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-main strong{font-size:13px;font-weight:600}.task-main small{color:var(--muted);font-size:11px;margin-top:3px}.status-label{font-size:11px;padding:4px 7px;border-radius:4px}.status-label.success{color:var(--success);background:#e8f7f0}.status-label.pending{color:var(--warning);background:#fff5e3}.status-label.failed{color:var(--danger);background:#ffedf0}
.primary-button,.secondary-button{border-radius:5px;padding:9px 14px;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.primary-button{border:1px solid var(--brand);background:var(--brand);color:#fff}.primary-button:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.secondary-button:hover{border-color:#a9c7f4;color:var(--brand)}.section-intro{margin-bottom:24px}.toolbar{display:flex;gap:10px;margin-bottom:14px}.toolbar select,.toolbar input,.field-group input,.field-group select,.field-group textarea{border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);outline:0}.toolbar select,.field-group select,.field-group input{height:38px;padding:0 11px}.toolbar select{min-width:125px}.search-box{flex:1;max-width:360px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:5px;padding:0 11px;color:var(--muted)}.search-box input{border:0!important;outline:0;flex:1;height:36px;padding:0}.voice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.voice-card{border:1px solid var(--line);border-radius:7px;background:#fff;padding:16px;min-height:150px;display:flex;flex-direction:column}.voice-card:hover{border-color:#9ec0f4;box-shadow:var(--shadow)}.voice-card-head{display:flex;justify-content:space-between;gap:8px}.voice-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:var(--brand);font-size:19px}.voice-card h3{font-size:14px;margin:11px 0 4px}.voice-card p{font-size:11px;color:var(--muted);margin:0}.voice-card-actions{margin-top:auto;padding-top:14px;display:flex;gap:7px}.voice-card-actions button{font-size:11px;padding:5px 8px;border:1px solid var(--line);background:#fff;border-radius:4px;color:var(--muted)}.voice-card-actions button:hover{color:var(--brand);border-color:#a9c7f4}.table-panel{padding:8px 12px}.callout{border:1px solid #cfe0fa;background:#f1f6ff;border-radius:7px;padding:15px 17px;display:flex;gap:12px;color:#365a8c}.callout-icon{width:21px;height:21px;border:1px solid #73a2e8;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-size:12px}.callout strong{font-size:13px}.callout p{font-size:12px;margin:5px 0 0;line-height:1.7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field-group{display:flex;flex-direction:column;gap:7px}.field-group.full{margin-bottom:16px}.field-group label{font-size:12px;font-weight:600}.field-group textarea{resize:vertical;padding:11px;line-height:1.7}.field-group input:focus,.field-group select:focus,.field-group textarea:focus{border-color:#73a2e8;box-shadow:0 0 0 3px rgba(40,120,240,.09)}.field-foot{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:20px}.form-status{font-size:12px;color:var(--muted);margin-right:auto}.result-panel audio{width:100%;height:38px}.result-meta{font-size:12px;color:var(--muted);margin-top:12px}.hidden{display:none!important}.endpoint-row{display:flex;gap:8px;align-items:center;margin:5px 0 10px}.endpoint-row code{display:block;flex:1;border:1px solid var(--line);background:#f7f9fc;border-radius:5px;padding:11px;color:#2d5a98;font-size:13px}.code-block{margin:0;background:#111a2c;color:#dbe5f6;border-radius:5px;padding:16px;overflow:auto;font-size:12px;line-height:1.7}.token-list{display:grid;gap:8px}.token-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}.token-row:last-child{border-bottom:0}.token-row code{color:#365a8c;font-size:12px;flex:1}.token-row small{color:var(--muted)}.empty-state{text-align:center;border:1px dashed #d2d9e4;color:var(--muted);padding:43px 20px;border-radius:5px;font-size:13px}.empty-state.compact{border:0;padding:22px 0}.hint-chip{color:#356aa9;background:#eef5ff;border-color:#d4e4fb}.toast{position:fixed;right:24px;bottom:24px;z-index:20;background:#172033;color:#fff;border-radius:5px;padding:11px 15px;font-size:13px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.modal{border:0;padding:0;background:transparent}.modal::backdrop{background:rgba(12,21,38,.46)}.modal-card{width:min(500px,calc(100vw - 28px));background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:0 18px 60px rgba(12,21,38,.2)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-heading h2{font-size:18px;margin:0}
@media (max-width:900px){.sidebar{width:210px;flex-basis:210px}.main-content{padding-left:23px;padding-right:23px}.metric-grid{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}}
@media (max-width:640px){.sidebar{position:fixed;z-index:10;inset:0 auto 0 0;width:248px;transform:translateX(-100%);transition:transform .2s;box-shadow:14px 0 30px rgba(16,28,50,.14)}.sidebar.is-open{transform:none}.main-content{padding:0 15px 35px}.topbar{min-height:72px;margin-bottom:22px}.mobile-menu{display:block}.topbar h1{font-size:20px}.server-badge{padding:6px 8px}.server-badge #health-label{display:none}.logout-button{padding:7px 9px;font-size:11px}.welcome-row,.section-intro{align-items:flex-start;flex-direction:column}.welcome-row .primary-button,.section-intro .primary-button,.section-intro .secondary-button{width:100%}.metric-grid{gap:9px}.metric-card{padding:14px}.metric-card strong{font-size:22px}.form-grid{grid-template-columns:1fr}.panel{padding:15px;min-width:0}.toolbar{flex-direction:column}.search-box{max-width:none}.toolbar select{width:100%}.form-actions{flex-wrap:wrap}.form-status{width:100%;flex-basis:100%;margin:0}.form-actions button{flex:1}.content-grid{gap:10px}.content-grid>*{min-width:0}.table-wrap{max-width:100%;overflow-x:auto}.callout{padding:13px}.login-card{padding:24px 20px}.toast{left:15px;right:15px;bottom:15px;text-align:center}}
/* 项目列表和令牌标识较长时允许换行，避免窄屏内容溢出。 */
.endpoint-row input{flex:1;min-width:0;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:5px}.token-row small{display:block;margin-top:4px}
.voice-id-row{display:flex;align-items:center;gap:7px;margin-top:12px;min-width:0}.voice-id-row code{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--muted);font-size:10px;line-height:1.45}.voice-id-row .icon-button{flex:0 0 34px}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:14px 4px 6px}.pagination-summary{margin-right:auto;color:var(--muted);font-size:12px}.page-size-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.page-size-control select{height:34px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink)}.pagination button{padding:7px 11px}.pagination button:disabled{cursor:not-allowed;opacity:.45}
@media(max-width:640px){.pagination{justify-content:space-between;flex-wrap:wrap}.pagination-summary{width:100%;margin:0}.pagination .page-size-control{margin-right:auto}.pagination button{flex:0 0 auto}}
/* 首页的项目与合成入口并排展示，说明文字占据剩余空间。 */
.welcome-row{display:flex;align-items:center;gap:10px;margin-bottom:22px}.welcome-row>div{flex:1}.welcome-row h2{font-size:19px;margin:0 0 5px}.welcome-row p{margin:0}.welcome-row .primary-button,.welcome-row .secondary-button{flex:0 0 auto}
/* 手机窄屏将首页入口改为整行按钮。 */
@media(max-width:640px){.welcome-row .secondary-button{width:100%}}
/* 移动端项目列表允许密钥换行，避免撑破视口。 */
@media(max-width:640px){.welcome-row{align-items:stretch}.welcome-row>div{width:100%}.token-row{flex-wrap:wrap;align-items:flex-start}.token-row>div{flex:1 1 100%;min-width:0}.token-row code{min-width:0;overflow-wrap:anywhere}}
/* 项目管理用完整列表呈现凭证，固定列宽并允许长 ID、密钥和名称断行。 */
.projects-panel{min-width:0}.projects-panel .panel-heading{align-items:flex-start}.projects-panel .panel-heading p{margin-top:6px}.project-count{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:10px;background:#edf3fe;color:var(--brand);font-size:11px;font-weight:500}.projects-table{min-width:0;table-layout:fixed}.projects-table .project-name-col{width:16%}.projects-table .project-id-col{width:23%}.projects-table .project-key-col{width:25%}.projects-table .project-time-col{width:16%}.projects-table .project-actions-col{width:20%}.projects-table th,.projects-table td{padding:16px 12px;white-space:normal;vertical-align:top;line-height:1.65;overflow-wrap:anywhere}.project-name{display:block;font-size:13px;font-weight:600}.project-access-label,.project-key-hint{display:block;font-size:11px;color:var(--muted);margin-top:5px}.project-credential{display:flex;align-items:flex-start;gap:7px;min-width:0}.project-credential code{flex:1;min-width:0;color:#365a8c;font-size:11px;overflow-wrap:anywhere;user-select:all}.project-credential .icon-button{flex:0 0 28px;width:28px;height:28px;font-size:15px}.project-time{color:var(--muted);font-size:11px}.project-row-actions{display:flex;flex-wrap:wrap;gap:7px}.project-row-actions .secondary-button{font-size:11px;padding:6px 9px;white-space:nowrap}
/* 项目弹窗在小屏内滚动，结果凭证保持可选中，复制按钮不被长文本挤出。 */
.project-modal{max-width:calc(100vw - 28px);max-height:calc(100dvh - 32px)}.project-modal .modal-card{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 36px);overflow-y:auto}.project-modal .modal-heading{margin-bottom:12px;gap:14px}.project-modal .modal-heading .icon-button{flex:0 0 34px}.project-modal-description{margin-bottom:20px}.project-confirmation{display:grid;gap:7px;padding:14px 16px;border:1px solid #d7e5fb;border-radius:6px;background:#f5f8fe;overflow-wrap:anywhere}.project-confirmation strong{font-size:14px}.project-confirmation code{font-size:12px;color:#365a8c}.project-result{display:grid;gap:16px}.project-result-value{display:flex;align-items:center;gap:8px;min-width:0}.project-result-value input{min-width:0;width:100%;flex:1;font-family:Consolas,monospace;font-size:12px;background:#f8faff}.project-result-value .icon-button{flex:0 0 34px}.project-modal-status{margin:16px 0 0;line-height:1.65;overflow-wrap:anywhere}.project-modal button:disabled{opacity:.5;cursor:wait}
/* 平板和手机将表格各行转为带字段标签的卡片，避免需要横向拖动。 */
@media(max-width:1050px){.projects-table colgroup,.projects-table thead{display:none}.projects-table,.projects-table tbody,.projects-table tr,.projects-table td{display:block;width:100%}.projects-table tr{padding:15px 0;border-top:1px solid var(--line)}.projects-table tr:first-child{border-top:0;padding-top:0}.projects-table tr:last-child{padding-bottom:0}.projects-table td{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;border:0!important;padding:7px 0}.projects-table td::before{content:attr(data-label);color:var(--muted);font-size:12px}.projects-table td .project-key-hint{grid-column:2;margin-top:-4px}.projects-table td:first-child{display:block;padding-bottom:10px}.projects-table td:first-child::before{display:none}.projects-table td:first-child .project-name{font-size:15px}.projects-table td.empty-cell{display:block;padding:24px 8px}.projects-table td.empty-cell::before{display:none}.project-credential code{font-size:12px}.project-row-actions .secondary-button{font-size:12px;padding:7px 12px}}
@media(max-width:640px){.projects-panel .panel-heading{gap:10px}.projects-panel .panel-heading .secondary-button{flex-shrink:0;font-size:12px;padding:8px 10px}.projects-table td{grid-template-columns:68px minmax(0,1fr);gap:8px}.project-modal .modal-card{padding:20px}.project-modal .form-actions{flex-wrap:nowrap}.project-modal .form-actions button{min-height:40px}}
/* 凭证操作使用清晰的完整按钮名称；桌面纵排、窄屏自动折行，避免被长凭证挤走。 */
.project-row-actions{display:grid;gap:8px}.project-row-actions .secondary-button{min-height:36px;padding:7px 10px;border-color:#c4d8f7;background:#edf4ff;color:#215fae;font-size:12px;font-weight:600}.project-row-actions .secondary-button:hover{border-color:var(--brand);background:#dfeaff}.project-list-status{margin:0 0 14px;padding:10px 12px;border:1px solid #f2ced4;border-radius:5px;color:var(--danger);background:#fff5f6;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
@media(max-width:1050px){.project-row-actions{display:flex;flex-wrap:wrap}.project-row-actions .secondary-button{flex:0 1 auto}}
/* 初次登录凭证提示只在后端允许时显示；强制设置屏幕独立于业务导航。 */
.bootstrap-login-hint{padding:12px 14px;margin:18px 0 0;border:1px solid #d4e2fa;border-radius:6px;background:#f1f6ff;color:#365a8c;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.bootstrap-login-hint code{font-size:12px}.credential-card{width:min(480px,100%)}.credential-card h1{font-size:23px}.credential-card .login-form{gap:14px}.credential-card .field-group input{width:100%;min-width:0}.nav-item:disabled{opacity:.45;cursor:not-allowed}.nav-item:disabled:hover{background:transparent;color:#aab8d0}
/* 设置页按功能分组，数据库连接占整行；所有表单在窄屏自动合为一列。 */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.settings-grid>.panel{margin:0;min-width:0}.settings-database-panel{grid-column:1/-1}.settings-section-description{margin-bottom:18px}.settings-form{display:grid;gap:16px}.settings-form .field-group input,.settings-fields .field-group input{width:100%;min-width:0}.settings-form .form-actions{margin-top:0}.settings-fields{min-width:0;border:0;padding:0;margin:0}.settings-fields:disabled input{background:#f3f5f8;color:var(--muted);cursor:not-allowed}.settings-full-width{grid-column:1/-1}.settings-data-warning{margin-top:15px}.settings-notice{border:1px solid #efdaad;border-radius:6px;background:#fff9ec;color:#87611a;padding:12px 14px;font-size:12px;line-height:1.7;margin:0 0 16px}.settings-onboarding{margin-bottom:20px}.settings-form-status{margin:0;min-height:18px;line-height:1.7;overflow-wrap:anywhere}.settings-form-status.is-error,.credential-card .form-status.is-error{color:var(--danger)}.settings-page-status{border:1px solid #f2ced4;border-radius:6px;background:#fff5f6;color:var(--danger);font-size:13px;line-height:1.7;padding:12px 14px;margin:0 0 18px}.settings-secret-mask{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;margin-bottom:18px;background:#f6f8fc;border:1px solid var(--line);border-radius:6px}.settings-secret-mask code{min-width:0;overflow-wrap:anywhere;color:var(--muted);font-size:13px;letter-spacing:1px}.settings-form button:disabled,#database-settings-form button:disabled{opacity:.5;cursor:not-allowed}.settings-form .field-group small,.settings-fields .field-group small,.credential-card .field-group small{font-size:11px;line-height:1.65}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-database-panel{grid-column:auto}}
@media(max-width:640px){.settings-grid{gap:14px}.settings-form .form-actions button,#database-settings-form .form-actions button{min-height:40px}.settings-secret-mask code{font-size:11px;letter-spacing:0}.credential-card .login-form{gap:13px}.settings-notice{padding:11px 12px}.settings-fields .form-grid{gap:14px}}
/* 音色按语言与类型分组，过滤控件在窄屏下自动换行。 */
.voice-toolbar{display:grid;grid-template-columns:minmax(180px,1.7fr) repeat(4,minmax(120px,1fr));align-items:center}.voice-toolbar .search-box{max-width:none;min-width:0}.voice-toolbar select{min-width:0;width:100%}.voice-section{margin:18px 0 24px}.voice-section-title{display:flex;align-items:center;gap:8px;margin:0 0 11px;font-size:14px}.voice-section-title span{color:var(--muted);font-size:11px;font-weight:400}
@media(max-width:900px){.voice-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-toolbar .search-box{grid-column:1/-1}}
@media(max-width:520px){.voice-toolbar{grid-template-columns:minmax(0,1fr)}.voice-toolbar .search-box{grid-column:auto}}
.voice-section-actions{display:flex;gap:9px;flex-wrap:wrap}.preset-import-description{margin-bottom:18px}.preset-preview{border:1px solid var(--line);border-radius:6px;background:#f8faff;max-height:270px;overflow:auto;padding:12px 14px}.preset-preview-heading{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px}.preset-preview ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}.preset-preview li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #e9eef7;padding:6px 0;font-size:12px}.preset-preview li code{color:var(--muted);font-size:10px}.checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;gap:7px;font-size:12px!important;font-weight:400!important}.checkbox-label input{width:auto!important;height:auto!important}.modal-card.preset-import-card{width:min(560px,calc(100vw - 28px))}
@media(max-width:640px){.voice-section-actions{width:100%}.voice-section-actions button{flex:1}.preset-preview ul{grid-template-columns:1fr}}
/* 项目表新增额度列后固定各列比例，避免桌面表格挤压操作区。 */
.projects-table .project-name-col{width:14%}.projects-table .project-id-col{width:20%}.projects-table .project-key-col{width:22%}.projects-table .project-balance-col{width:14%}.projects-table .project-time-col{width:13%}.projects-table .project-actions-col{width:17%}
@media(max-width:1050px){.projects-table td .project-row-actions{grid-column:2}}
