.category-tree[data-v-67b19691]{align-items:start}.category-group[data-v-67b19691]{align-self:start}.category-row[data-v-67b19691]{gap:10px}.category-main[data-v-67b19691]{min-height:62px}.category-row small[data-v-67b19691]{color:var(--muted);margin-left:8px}.category-row .row-actions[data-v-67b19691]{margin-left:auto}.category-content[data-v-67b19691]{min-height:48px;padding-left:66px}.category-content.deep[data-v-67b19691]{padding-left:104px}.category-content .button[data-v-67b19691]{margin-left:auto}.category-branch[data-v-67b19691]{border-top:1px solid var(--line)}.cover-preview[data-v-967f16ea]{width:min(320px,100%);aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line)}.rich-editor[data-v-967f16ea]{border:1px solid var(--line);background:#fff}.rich-toolbar[data-v-967f16ea]{height:44px;padding:0 8px;display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);background:#f6f3eb}.rich-toolbar button[data-v-967f16ea]{width:34px;height:32px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink)}.rich-toolbar button[data-v-967f16ea]:hover{background:#e8e1d3}.rich-content[data-v-967f16ea]{min-height:300px;padding:24px;outline:0;color:#34423d;line-height:1.8}.rich-content[data-v-967f16ea]:empty:before{content:attr(data-placeholder);color:#9a9d97}.rich-content[data-v-967f16ea] img{max-width:100%;height:auto;display:block;margin:20px auto}.rich-content[data-v-967f16ea] h2{font-size:24px}.rich-content[data-v-967f16ea] blockquote{margin-left:0;padding-left:16px;border-left:3px solid var(--gold);color:var(--muted)}.generated-panel[data-v-f6207a52]{min-width:0}.generated-panel .toolbar[data-v-f6207a52]{align-items:flex-start}.generated-panel p[data-v-f6207a52]{margin:-7px 0 0;color:var(--muted);font-size:12px}.full-code[data-v-f6207a52]{display:flex;align-items:center;gap:7px}.full-code code[data-v-f6207a52]{min-width:176px;color:var(--ink);font-family:Consolas,monospace;font-size:13px;letter-spacing:0}.copy-code[data-v-f6207a52]{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted)}.copy-code[data-v-f6207a52]:hover{color:var(--ink);background:var(--paper-2)}.legacy-note[data-v-f6207a52]{display:block;max-width:250px;margin-top:5px;color:var(--muted);font-size:10px;white-space:normal}.toast-message[data-v-f6207a52]{position:fixed;z-index:50;top:20px;right:26px;margin:0;padding:10px 14px;border:1px solid #b8ccb9;background:#e2ece2;color:#315b3d;box-shadow:var(--shadow)}@media(max-width:900px){.code-toolbar[data-v-f6207a52],.code-toolbar .toolbar-group[data-v-f6207a52]{align-items:stretch;flex-direction:column}}.fingering-modal[data-v-b0a24004]{max-width:820px}.fingering-preview[data-v-b0a24004]{width:160px;height:120px;object-fit:contain;border:1px solid var(--line);background:#f6f3eb}.import-message[data-v-b0a24004]{margin:0 0 8px;color:var(--ok);font-size:13px}.import-hint[data-v-b0a24004]{margin:0 0 14px;color:var(--muted);font-size:13px}.fingering-search[data-v-b0a24004]{flex:1;min-width:260px}.fingering-search input[data-v-b0a24004]{min-width:0}.fingering-actions .button[data-v-b0a24004]{min-width:auto;padding:0 12px;white-space:nowrap}.rich-editor[data-v-b0a24004]{border:1px solid var(--line);background:#fff}.rich-toolbar[data-v-b0a24004]{height:42px;padding:0 8px;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);background:#f6f3eb}.rich-toolbar button[data-v-b0a24004]{width:32px;height:30px;border:0;background:transparent;color:var(--ink)}.rich-content[data-v-b0a24004]{min-height:190px;padding:18px;outline:0;line-height:1.8}.rich-content[data-v-b0a24004]:empty:before{content:attr(data-placeholder);color:#9a9d97}@media(max-width:760px){.fingering-toolbar[data-v-b0a24004]{align-items:stretch;flex-direction:column}.fingering-actions[data-v-b0a24004]{justify-content:flex-end;flex-wrap:wrap}}.audit-time[data-v-ef772577]{color:var(--muted);font-size:12px}.audit-description[data-v-ef772577]{min-width:360px;white-space:normal;line-height:1.55}.actor[data-v-ef772577],.entity-badge[data-v-ef772577]{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid var(--line);border-radius:3px;font-size:11px}.actor[data-v-ef772577]{color:var(--ink);background:#ffffff6b}.actor.user[data-v-ef772577]{color:#315b3d;border-color:#b8ccb9;background:#e2ece2}.entity-badge[data-v-ef772577]{color:var(--muted);background:#e8dfcd7a}@media(max-width:760px){.audit-toolbar[data-v-ef772577],.audit-toolbar .toolbar-group[data-v-ef772577]{align-items:stretch;flex-direction:column}.audit-description[data-v-ef772577]{min-width:240px}}.feedback-list[data-v-a736de01]{display:grid;gap:12px}.feedback-card header[data-v-a736de01],.feedback-card footer[data-v-a736de01]{display:flex;align-items:center;justify-content:space-between;gap:16px}.feedback-card header>div[data-v-a736de01]{display:flex;flex-direction:column;gap:5px}.feedback-card small[data-v-a736de01]{color:var(--muted)}.feedback-card>p[data-v-a736de01]{margin:18px 0;line-height:1.75}.feedback-reply[data-v-a736de01]{padding:14px 16px;border-left:3px solid var(--gold);background:#f6f2e8}.feedback-reply p[data-v-a736de01]{margin:7px 0 0;white-space:pre-wrap}.feedback-original[data-v-a736de01]{padding:14px;background:#f3efe6;line-height:1.7}.storage-grid[data-v-222f785f]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.storage-panel[data-v-222f785f]{padding:22px}.storage-panel header[data-v-222f785f]{display:flex;align-items:center;gap:12px;margin-bottom:22px}.storage-panel header>div[data-v-222f785f]:nth-child(2){flex:1}.storage-panel h2[data-v-222f785f]{margin:0;font-size:20px}.storage-panel header small[data-v-222f785f]{display:block;margin-top:5px;color:var(--muted)}.storage-icon[data-v-222f785f]{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);color:var(--red)}.secret-field[data-v-222f785f]{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff}.secret-field svg[data-v-222f785f]{margin-left:12px;color:var(--muted)}.secret-field input[data-v-222f785f]{border:0}.storage-source[data-v-222f785f]{display:flex;align-items:center;gap:5px;color:var(--muted)}.storage-source a[data-v-222f785f]{display:inline-flex;align-items:center;gap:3px;color:var(--red)}.storage-message[data-v-222f785f]{margin-top:16px}.object-key[data-v-222f785f]{max-width:420px;white-space:normal;overflow-wrap:anywhere}.success[data-v-222f785f]{color:#35614f}.error[data-v-222f785f]{color:#a43b2d}@media(max-width:900px){.storage-grid[data-v-222f785f]{grid-template-columns:1fr}}.account-setting-head[data-v-df0def96]{display:flex;align-items:center;gap:14px;margin-bottom:16px}.account-setting-head>div[data-v-df0def96]:nth-child(2){display:flex;flex-direction:column;gap:5px}.account-setting-head small[data-v-df0def96],.account-tip[data-v-df0def96]{color:var(--muted)}.account-icon[data-v-df0def96]{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);color:var(--red)}.input-icon[data-v-df0def96]{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff}.input-icon svg[data-v-df0def96]{margin-left:12px;color:var(--muted)}.input-icon input[data-v-df0def96]{border:0}.account-tip[data-v-df0def96]{display:flex;align-items:center;gap:6px;margin-top:16px;font-size:13px}.result-count[data-v-8aec380f]{color:var(--muted);font-size:12px}.user-row[data-v-8aec380f]{cursor:pointer}.user-row[data-v-8aec380f]:hover{background:#ffffff7a}.user-cell[data-v-8aec380f],.user-title[data-v-8aec380f]{display:flex;align-items:center;gap:10px}.user-cell img[data-v-8aec380f],.user-title img[data-v-8aec380f],.avatar-fallback[data-v-8aec380f]{width:36px;height:36px;border-radius:50%;object-fit:cover}.avatar-fallback[data-v-8aec380f]{display:grid;place-items:center;background:var(--paper-2);color:var(--ink);font-family:STKaiti,KaiTi,serif;font-size:18px}.avatar-fallback.large[data-v-8aec380f],.user-title img[data-v-8aec380f]{width:46px;height:46px}.user-cell strong[data-v-8aec380f],.user-cell small[data-v-8aec380f]{display:block}.user-cell small[data-v-8aec380f],.user-title p[data-v-8aec380f]{margin:3px 0 0;color:var(--muted);font-size:11px}.user-modal[data-v-8aec380f]{width:min(1040px,calc(100vw - 32px));max-width:1040px}.user-title h2[data-v-8aec380f]{margin:0}.detail-loading[data-v-8aec380f]{padding:60px;text-align:center;color:var(--muted)}.user-detail[data-v-8aec380f]{padding:0 22px 24px}.user-metrics[data-v-8aec380f]{margin:0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.user-metrics div[data-v-8aec380f]{padding:15px 18px;border-right:1px solid var(--line)}.user-metrics div[data-v-8aec380f]:last-child{border-right:0}.user-metrics dt[data-v-8aec380f]{color:var(--muted);font-size:11px}.user-metrics dd[data-v-8aec380f]{margin:6px 0 0;font-family:Georgia,serif;font-size:22px}.detail-tabs[data-v-8aec380f]{margin-top:18px;display:flex;border-bottom:1px solid var(--line)}.detail-tabs button[data-v-8aec380f]{min-height:38px;padding:0 16px;display:inline-flex;align-items:center;gap:7px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted)}.detail-tabs button.active[data-v-8aec380f]{border-bottom-color:var(--red);color:var(--ink)}.detail-list article[data-v-8aec380f]{min-height:66px;padding:13px 4px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.detail-list strong[data-v-8aec380f],.detail-list small[data-v-8aec380f]{display:block}.detail-list small[data-v-8aec380f],.detail-list time[data-v-8aec380f]{margin-top:5px;color:var(--muted);font-size:11px}.note-list article[data-v-8aec380f]{align-items:flex-start}.note-list p[data-v-8aec380f]{max-width:680px;margin:7px 0 0;color:var(--ink-2);line-height:1.65;white-space:normal}@media(max-width:720px){.user-metrics[data-v-8aec380f]{grid-template-columns:repeat(2,1fr)}.user-metrics div[data-v-8aec380f]:nth-child(2){border-right:0}.detail-tabs[data-v-8aec380f]{overflow-x:auto}.detail-tabs button[data-v-8aec380f]{white-space:nowrap}}:root{--paper:#f3edde;--paper-2:#e8dfcd;--surface:#fffdf8;--ink:#17352c;--ink-2:#315047;--muted:#70766f;--line:#cdc2ae;--red:#a43b2d;--gold:#9b7a3b;--ok:#3f704d;--danger:#9c3328;--shadow:0 12px 34px rgba(20,39,31,.14);font-family:Microsoft YaHei,PingFang SC,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);letter-spacing:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}a{color:inherit;text-decoration:none}.admin-shell{min-height:100vh}.side-nav{position:fixed;inset:0 auto 0 0;z-index:20;width:232px;padding:22px 16px 18px;display:flex;flex-direction:column;background:#142e25;color:#fff}.brand{min-height:62px;padding:0 8px 20px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(255,255,255,.14)}.brand-seal{width:38px;height:38px;display:grid;place-items:center;border:1px solid #cf9487;color:#e4b2a7;font-family:STKaiti,KaiTi,serif;font-size:21px}.brand strong,.brand small{display:block}.brand strong{font-family:STKaiti,KaiTi,serif;font-size:19px;font-weight:500}.brand small{margin-top:2px;color:#ffffff7a;font-size:11px}.side-nav nav{margin-top:20px;display:flex;flex-direction:column;gap:4px}.side-nav nav a{min-height:42px;padding:0 12px;display:flex;align-items:center;gap:11px;border-radius:3px;color:#ffffffa8;font-size:13px}.side-nav nav a:hover,.side-nav nav a.router-link-active{background:#ffffff17;color:#fff}.side-nav nav a.router-link-active{box-shadow:inset 3px 0 var(--red)}.logout{margin-top:auto;min-height:40px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.16);border-radius:3px;background:transparent;color:#ffffffa3}.mobile-close,.mobile-menu{display:none}.admin-main{margin-left:232px;padding:0 32px 52px}.page-header{min-height:90px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.page-header h1{margin:0;font-family:STKaiti,KaiTi,serif;font-size:27px;font-weight:500}.page-header p{margin:5px 0 0;color:var(--muted);font-size:11px}.page-content{padding-top:26px}.toolbar{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.toolbar-group{display:flex;align-items:center;gap:8px}.search-control{min-width:260px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);background:#fff9}.search-control input{min-height:36px;padding:6px 0;border:0;background:transparent;box-shadow:none}.search-input{min-width:240px}.button:hover,.icon-button:hover{border-color:var(--gold);background:#ffffff80}.button.primary:hover{background:var(--ink-2);color:#fff}.icon-button.danger{color:var(--danger)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid rgba(155,122,59,.45);outline-offset:2px}.button{min-height:36px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink)}.button.primary{border-color:var(--ink);background:var(--ink);color:#fff}.button.danger{color:var(--danger)}.button.small{min-height:30px;padding:0 9px;font-size:12px}.button:disabled{opacity:.45;cursor:not-allowed}.icon-button{width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink)}.panel{border:1px solid var(--line);background:#ffffff47}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.metric{min-height:112px;padding:22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.metric:nth-child(4n){border-right:0}.metric strong{display:block;font-family:Georgia,serif;font-size:31px;font-weight:500}.metric span{display:block;margin-top:7px;color:var(--muted);font-size:12px}.section{margin-top:26px}.section-title{margin:0 0 13px;font-family:STKaiti,KaiTi,serif;font-size:20px;font-weight:500}.table-wrap{overflow:auto;border:1px solid var(--line);background:#ffffff42}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}th{background:#e8dfcdb8;color:var(--muted);font-size:11px;font-weight:500}tbody tr:last-child td{border-bottom:0}.cell-title{font-weight:600}.cell-sub{display:block;margin-top:4px;color:var(--muted);font-size:11px}.row-actions{display:flex;gap:6px}.status{display:inline-flex;padding:4px 8px;border-radius:2px;font-size:11px}.status.PUBLISHED{background:#dce8dd;color:#315b3d}.status.DRAFT{background:#e9e0ce;color:#755f32}.status.OFFLINE{background:#e7d8d4;color:#853b30}.status.ACTIVE{background:#dce8dd;color:#315b3d}.status.EXHAUSTED{background:#e9e0ce;color:#755f32}.status.EXPIRED,.status.DISABLED{background:#e7d8d4;color:#853b30}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px}.field.full{grid-column:1/-1}input,select,textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:3px;background:#fff9;color:var(--ink);outline:none}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px #9b7a3b1f}input[type=checkbox]{width:18px;min-height:18px;padding:0;accent-color:var(--ink)}.switch-control{min-height:38px;display:flex;align-items:center;gap:10px;color:var(--ink)}.switch-control input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:42px;height:22px;padding:2px;display:block;border-radius:11px;background:#b9b5aa;transition:background .2s}.switch-track:after{content:"";width:18px;height:18px;display:block;border-radius:50%;background:#fff;transition:transform .2s}.switch-control input:checked+.switch-track{background:var(--ok)}.switch-control input:checked+.switch-track:after{transform:translate(20px)}.form-actions{grid-column:1/-1;padding-top:6px;display:flex;justify-content:flex-end;gap:8px}.edit-panel{max-width:900px;padding:22px}.empty{padding:56px 20px;color:var(--muted);text-align:center}.category-tree{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.category-group{border:1px solid var(--line);background:#ffffff40}.category-row{min-height:54px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.category-row:last-child{border-bottom:0}.category-child{padding-left:32px;color:var(--ink-2)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;padding:24px;display:grid;place-items:center;background:#0c1b16a3}.modal{width:min(720px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow)}.modal-head{position:sticky;top:0;z-index:2;min-height:60px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper)}.modal-head h2{margin:0;font-family:STKaiti,KaiTi,serif;font-size:22px;font-weight:500}.modal-body{padding:20px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:370px;padding:38px 34px;border:1px solid var(--line);background:#fffdf8b3;box-shadow:var(--shadow)}.login-seal{width:52px;height:52px;margin:auto;display:grid;place-items:center;border:2px solid var(--red);color:var(--red);font-family:STKaiti,KaiTi,serif;font-size:19px}.login-panel h1{margin:12px 0 28px;text-align:center;font-family:STKaiti,KaiTi,serif;font-size:30px;font-weight:500}.error{color:var(--red);font-size:12px}.login-panel .button{width:100%;margin-top:20px}.split{display:grid;grid-template-columns:330px 1fr;gap:20px}.code-output{height:390px;font-family:Consolas,monospace;line-height:1.7}.batch-list{display:flex;flex-direction:column}.batch-row{min-height:60px;padding:10px 14px;display:grid;grid-template-columns:1fr 100px 100px 130px;align-items:center;border-bottom:1px solid var(--line)}.upload-drop{min-height:180px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed var(--gold);background:#fff3;text-align:center}.upload-drop input{max-width:420px}.progress-track{height:8px;margin-top:14px;background:var(--paper-2)}.progress-fill{height:100%;background:var(--red);transition:width .2s}.provider-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.provider-switch button{height:38px;border:0;background:transparent;color:var(--muted)}.provider-switch button.active{background:var(--ink);color:#fff}.banner-thumb{width:110px;height:58px;object-fit:cover;border-radius:2px}.banner-guidance{padding:12px;border:1px solid var(--line);background:#e8dfcd61;line-height:1.6}.banner-guidance strong,.banner-guidance span{display:block}.banner-guidance em{color:var(--red);font-style:normal}.banner-preview{grid-column:1/-1;width:100%;max-height:260px;object-fit:cover;object-position:center;border:1px solid var(--line);background:var(--paper-2)}.note-content{max-width:420px;white-space:normal;line-height:1.6}.audit-detail{max-width:360px;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;z-index:60;max-width:360px;padding:12px 16px;border-radius:3px;background:var(--ink);color:#fff;box-shadow:var(--shadow)}.nav-mask{display:none}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2n){border-right:0}.split,.category-tree{grid-template-columns:1fr}}@media(max-width:720px){.side-nav{transform:translate(-100%);transition:transform .2s}.side-nav.open{transform:translate(0)}.admin-main{margin-left:0;padding:0 14px 38px}.mobile-menu{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);background:transparent}.mobile-close{display:grid;place-items:center;margin-left:auto;border:0;background:transparent;color:#fff}.nav-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:block;background:#00000059}.form-grid{grid-template-columns:1fr}.field.full,.form-actions{grid-column:1}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{align-items:flex-start;flex-direction:column}.toolbar-group{width:100%;flex-wrap:wrap}.table-wrap{max-width:calc(100vw - 28px)}}
