:root{font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;color:#302d38;background:#f7f6f8;font-synthesis:none;font-size:15px;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button-link{border:1px solid #d8d4de;border-radius:9px;padding:9px 16px;cursor:pointer;background:#fff;color:#302d38;text-decoration:none;min-height:42px;white-space:nowrap}button:hover:not(:disabled){background:#f2edf6}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#705294;color:#fff;border-color:#705294}button.primary:hover:not(:disabled){background:#5c407e}.danger{color:#a3334c;border-color:#e9b2bd}.text-button{border:0;background:none;padding-left:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9b78b9;outline-offset:3px}input,select,textarea{border:1px solid #d8d4de;border-radius:8px;background:#fff;padding:10px 12px;width:100%;min-width:0;color:inherit}label{display:grid;gap:6px;font-weight:500;margin-bottom:14px}fieldset{border:0;padding:0;margin:0;min-width:0}h1,h2,p{margin-top:0}h1{font-size:30px;line-height:1.25;margin-bottom:10px}h2{font-size:20px;margin-bottom:14px}p{color:#686271}small{font-size:13px}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.shell>aside{padding:30px 20px;background:#fff;border-right:1px solid #e9e5ed;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin-bottom:40px;font-size:23px}.brand small{display:block;font-size:13px;color:#756b80;font-weight:500}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eee5f5;color:#705294}.shell nav{display:grid;gap:8px}.shell nav a{padding:12px 16px;border-radius:10px;color:#686271;text-decoration:none}.shell nav a.active{background:#efe6f5;color:#654887;font-weight:650}.shell footer{display:grid;gap:8px;margin-top:auto;font-size:13px;color:#756b80}.shell main{padding:40px;max-width:1700px;width:100%;min-width:0}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.page-heading p{margin-bottom:0}.eyebrow{font-size:12px;letter-spacing:.12em;color:#85679c;font-weight:650;margin-bottom:10px}.panel{background:#fff;border:1px solid #e7e2ea;border-radius:16px;padding:26px;margin-bottom:22px;min-width:0}.section-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}.section-heading h2{margin:0}.badge{display:inline-block;font-size:12px;border-radius:6px;background:#f1edf4;color:#75647e;padding:3px 8px;margin:0 8px}.badge.good{background:#e5f2e9;color:#286741}.stats{display:grid;grid-template-columns:1fr 1fr .7fr 1.8fr;gap:24px;padding:24px 0}.stats span{display:block;font-size:13px;color:#756b80}.stats strong{display:block;font-size:24px}.stats .small-value{font-size:16px;margin-top:6px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compact{gap:6px}.compact button{padding:6px 10px}.hint{font-size:13px;margin:14px 0 0}.notice{padding:13px 16px;background:#f0eaf6;border-radius:9px;color:#5b4770;margin-bottom:20px;overflow-wrap:anywhere}.notice.error{background:#fff0f2;color:#9a2b44;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.current-song{font-size:24px;color:#302d38;overflow-wrap:anywhere}.toolbar{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.toolbar label{margin:0}.toolbar .search{display:flex;align-items:end;gap:8px;flex:1;min-width:220px}.search label{flex:1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:13px;color:#756b80;font-weight:550;background:#f8f6fa}td,th{padding:14px 12px;border-bottom:1px solid #efeaf2}td{vertical-align:middle;max-width:360px;overflow-wrap:anywhere}td small{display:block;color:#756b80}.song-title{background:none;border:0;padding:0;text-align:left;white-space:normal;font-weight:600}.tags{display:flex;flex-wrap:wrap;gap:4px}.tags span{font-size:12px;background:#f3eef7;padding:2px 7px;border-radius:5px}.pagination{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:20px}.pagination span{margin-right:auto;color:#756b80}.empty{padding:24px 0;color:#84798e}.current{display:flex;justify-content:space-between;gap:20px;align-items:center}.current h2{font-size:25px;overflow-wrap:anywhere}.queue-list{padding:0;list-style:none;margin:0;max-height:580px;overflow-y:auto}.queue-list li{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid #eee8f2}.queue-list li>div:first-child{min-width:0;overflow-wrap:anywhere}.queue-list p{margin:6px 0 0;font-size:13px}.queue-list strong{font-size:18px}.history-list{padding:0;list-style:none}.history-list li{display:flex;gap:20px;padding:12px 0;border-bottom:1px solid #eee8f2;flex-wrap:wrap}.history-list strong{flex:1;overflow-wrap:anywhere}.history-list small{color:#84798e}dialog{border:1px solid #e3dbe9;border-radius:16px;padding:28px;width:min(650px,calc(100vw - 32px));max-height:85vh;color:inherit}dialog::backdrop{background:#2b203c66}dialog>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}dialog>header h2{margin:0}dialog>header button{font-size:24px;border:0;padding:2px 12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.details{display:grid;grid-template-columns:90px 1fr;gap:12px}.details dt{color:#756b80}.details dd{margin:0;overflow-wrap:anywhere}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-form{background:#fff;padding:36px;border-radius:16px;border:1px solid #e7e2ea;width:min(440px,100%)}.auth-form h1{font-size:24px}.auth-form .button{width:100%;background:#705294;color:#fff}.skip{position:fixed;left:12px;top:-100px;background:#fff;padding:12px;z-index:10}.skip:focus{top:12px}@media(max-width:1000px){.shell{grid-template-columns:180px minmax(0,1fr)}.shell main{padding:24px}.stats{grid-template-columns:1fr 1fr}.two-columns{grid-template-columns:1fr;gap:0}}@media(max-width:600px){.shell{display:block}.shell>aside{position:static;height:auto;padding:16px}.brand{margin-bottom:16px;font-size:20px}.shell nav{display:flex}.shell footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.shell main{padding:20px 16px}.page-heading{align-items:start;flex-wrap:wrap}h1{font-size:25px}.panel{padding:20px}.current{flex-wrap:wrap}.queue-list li{align-items:start;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.pagination{flex-wrap:wrap}.stats{gap:16px}.history-list li{gap:8px}.toolbar .search{min-width:0;flex-basis:100%}th,td{padding:10px 8px}button{min-height:44px}}.connection-status{font-size:1.25rem;font-weight:600}.form-row,.gift-rule{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.form-row>label,.gift-rule>label{flex:1;min-width:130px}.check{display:flex;align-items:center;gap:10px}.check input{width:20px;height:20px}.mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0}.mapping-grid small{display:block;overflow-wrap:anywhere}.import-errors{max-height:200px;overflow:auto;color:#a43232}.skin-options{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px}.skin-preview{display:flex;flex-direction:column;align-items:start;gap:12px;min-width:220px;padding:24px;border:2px solid transparent}.skin-preview.selected{border-color:#68528d}.skin-preview.paper{background:#faf7ff;color:#322944}.skin-preview.night{background:#24223a;color:#fff}.table-scroll{overflow:auto}fieldset{min-width:0}.panel h3{margin-top:28px}.panel fieldset>.check{margin:18px 0}.rule-preview{padding:18px;border:1px solid #d8c8ee;border-radius:12px;background:#faf6ff;margin-bottom:24px}.rule-preview p{font-size:16px;line-height:1.6}.rule-preview small{line-height:1.5;color:#665b73}.skin-options .skin-preview{padding:12px;text-align:left;background:#f8f6f1;color:#243047;overflow:hidden}.skin-options .skin-preview:hover{background:#efede8;color:#243047}.skin-preview img{display:block;width:100%;aspect-ratio:8/3;object-fit:contain;margin-bottom:12px}.skin-preview.selected{outline:2px solid #7657a1;outline-offset:2px}.skin-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.skin-options .skin-preview{min-width:0;width:100%}.skin-preview img{min-width:0}@media(max-width:700px){.skin-options{grid-template-columns:minmax(0,1fr)}}.policy-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;padding-bottom:95px}.policy-layout .panel{min-width:0}.rule-summary{position:sticky;top:20px}.rule-summary li{margin-bottom:14px;line-height:1.65;overflow-wrap:anywhere}.preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.preset-grid button{text-align:left;min-height:52px}.view-switch{display:flex;gap:8px}.view-switch [aria-pressed=true]{background:#f2edf6;border-color:#705294;color:#4d3268}.free-card{border:1px solid #d8d4de;border-radius:12px;padding:18px;margin:16px 0;background:#fcfaff}.free-card h4{margin:0}.rule-actions{display:flex;gap:6px;flex-wrap:wrap}.identity-fields{margin-top:14px}.policy-save{position:sticky;bottom:0;z-index:5;padding:16px 20px;background:#fff;border:1px solid #d8d4de;box-shadow:0 -4px 16px #302d3810;display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:12px}.policy-save>div{display:flex;gap:10px}.policy-layout button,.policy-save button,.policy-layout input,.policy-layout select{min-height:44px}.policy-layout input[type=checkbox]{min-height:18px}.policy-layout .form-row{flex-wrap:wrap}.policy-layout .gift-rule{grid-template-columns:repeat(2,minmax(0,1fr))}.policy-layout .section-heading{flex-wrap:wrap;gap:12px}@media(max-width:1150px){.policy-layout{grid-template-columns:minmax(0,1fr)}.rule-summary{position:static;grid-row:1}.policy-save{flex-wrap:wrap}}@media(max-width:600px){.preset-grid{grid-template-columns:1fr}.view-switch{flex-wrap:wrap}.policy-save>div{width:100%}.policy-save button{flex:1}.policy-layout .gift-rule{grid-template-columns:1fr}}.environment-note{font-size:14px;color:#665b73;margin:0 0 20px}.policy-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:16px 20px;margin-bottom:24px;border:1px solid #d8d4de;border-radius:12px;background:#faf8fc}.policy-status>span{color:#665b73}.policy-status details{flex-basis:100%}.policy-status .hint{margin:0}.policy-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.6fr);gap:24px;padding-bottom:24px}.policy-layout .hint{font-size:14px;color:#655b70;line-height:1.65}.policy-layout input[type=checkbox]{accent-color:#705294}.preset-grid [aria-pressed=true]{background:#eee5f8;border:2px solid #705294;color:#4d3268;font-weight:600}.preset-grid [aria-pressed=false]:hover{background:#faf8fc;border-color:#b4a5c5}.simple-fields{margin:16px 0}.simple-fields>.section-heading:empty{display:none}.policy-simulator>summary{font-size:18px;font-weight:600}.policy-simulator[open]>summary{margin-bottom:20px}.operation-options{margin-top:20px}.operation-options[open]>summary{margin-bottom:16px}.policy-save{margin-bottom:24px}.policy-layout input,.policy-layout select{scroll-margin-block:100px}html{scroll-padding-bottom:110px}@media(max-width:1150px){.policy-layout{grid-template-columns:minmax(0,1fr)}}.obs-preview{margin-top:24px;background:repeating-conic-gradient(#d7d2df 0 25%,#ece8f1 0 50%) 0/24px 24px;overflow:auto;border-radius:12px}.obs-preview iframe{border:0;width:800px;height:700px;display:block}.queue-list li>div:first-child{min-width:0;flex:1}.queue-list li strong,.queue-list li p{overflow-wrap:anywhere}.queue-list li .actions{flex-shrink:0}@media(max-width:1150px){.queue-list li{flex-wrap:wrap;gap:16px}}.obs-settings input[type=range]{accent-color:#705294;min-height:44px}.obs-settings input[type=color]{height:44px;padding:6px}.obs-preview iframe{width:100%;max-width:800px}.view-switch,.rule-actions,.policy-save>div{flex-wrap:wrap;align-items:center}button,.button-link{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.4;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.form-row>label{min-width:min(180px,100%)}.section-heading{flex-wrap:wrap;gap:12px}.obs-preview iframe{max-width:100%;height:360px}.obs-preview{width:fit-content;max-width:100%}.policy-save>div{justify-content:flex-end}.rule-actions button{flex:none}@media(max-width:850px){.queue-list li .actions{flex-shrink:1}.policy-save{flex-wrap:wrap}.view-switch{max-width:100%}}
