.fade-enter-active[data-v-db089ad1],.fade-leave-active[data-v-db089ad1]{transition:opacity .2s}.fade-enter-from[data-v-db089ad1],.fade-leave-to[data-v-db089ad1]{opacity:0}.toast[data-v-db089ad1]{bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right))}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;min-height:100vh}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:linear-gradient(180deg,#0b1020,#131a36);color:#e5ecff;-webkit-font-smoothing:antialiased}a{color:#7ad7ff;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;background:#7ad7ff;color:#061425;border:0;border-radius:8px;padding:8px 14px;cursor:pointer;transition:filter .15s}button:hover{filter:brightness(1.08)}button[disabled]{opacity:.5;cursor:not-allowed}button.secondary{background:#2a325a;color:#e5ecff}button.danger{background:#ff6680;color:#fff}input,select,textarea{font:inherit;background:#0e1530;color:#e5ecff;border:1px solid #2a325a;border-radius:8px;padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:0;border-color:#7ad7ff}textarea{resize:vertical;min-height:80px}label{display:block;font-size:12px;color:#aab4d5;margin-bottom:4px}hr{border:0;border-top:1px solid #1e2547;margin:16px 0}code{background:#0e1530;padding:1px 4px;border-radius:4px}.app-shell{max-width:960px;margin:0 auto;padding:24px 16px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#0a0f24;border-bottom:1px solid #1e2547;position:sticky;top:0;z-index:10}.topbar .brand{font-weight:600;font-size:18px;color:#7ad7ff}.topbar .user{display:flex;align-items:center;gap:12px;font-size:14px}.card{background:#11173a;border:1px solid #1e2547;border-radius:14px;padding:18px;margin-bottom:16px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row.three{grid-template-columns:1fr 1fr 1fr}@media (max-width: 720px){.row,.row.three{grid-template-columns:1fr}}.muted{color:#aab4d5;font-size:13px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:#1e2547;font-size:12px;color:#cdd6f4}.tag.ok{background:#1d3a2a;color:#7af0a1}.tag.warn{background:#3a2a1d;color:#f0c97a}.tag.bad{background:#3a1d2a;color:#ff8aa1}.tag.run{background:#1d2a3a;color:#7ad7ff}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:360px;padding:28px;background:#11173a;border:1px solid #1e2547;border-radius:16px}.login-card h1{margin:0 0 4px;color:#7ad7ff}.login-card p{margin:0 0 20px;color:#aab4d5;font-size:13px}.form-row{margin-bottom:12px}.modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.module{display:block;padding:16px;background:#0e1530;border:1px solid #1e2547;border-radius:12px;color:inherit;transition:border-color .15s,transform .15s}.module:hover{border-color:#7ad7ff;text-decoration:none;transform:translateY(-2px)}.module h3{margin:0 0 4px;font-size:16px}.module p{margin:0;color:#aab4d5;font-size:13px}.track{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #1e2547;border-radius:12px;margin-bottom:10px;background:#0e1530}.track .cover{width:56px;height:56px;border-radius:8px;background:#1e2547;background-size:cover;background-position:center}.track .meta{min-width:0}.track .meta .title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track .meta .sub{color:#aab4d5;font-size:12px}.track audio{width:100%;margin-top:6px}.track .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.slider{display:flex;align-items:center;gap:10px}.slider input[type=range]{flex:1}.help h2{font-size:18px;color:#7ad7ff;margin-top:0}.help .sec h3{font-size:14px;margin:16px 0 4px}.help .sec p{margin:0;color:#cdd6f4;white-space:pre-wrap}.flex{display:flex;gap:8px;align-items:center}.flex.right{justify-content:flex-end}.space-between{display:flex;justify-content:space-between;align-items:center}.toast{position:fixed;right:16px;bottom:16px;background:#11173a;border:1px solid #2a325a;border-radius:10px;padding:10px 14px;z-index:100}.toast.error{border-color:#ff6680}.toast.ok{border-color:#7af0a1}.empty{padding:24px;text-align:center;color:#aab4d5}.spinner{width:14px;height:14px;border:2px solid #2a325a;border-top-color:#7ad7ff;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus-visible{outline:2px solid #7ad7ff;outline-offset:2px;border-radius:4px}button:focus-visible,a:focus-visible{outline:2px solid #7ad7ff;outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@supports (padding: max(0px)){.topbar{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.app-shell{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(80px,env(safe-area-inset-bottom))}}input,select,textarea{font-size:16px}
