@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/PlusJakartaSans-Variable.ttf)format("truetype-variations");font-style:normal;font-weight:200 800;font-display:swap}:root{color:#262626;font-synthesis:none;--field-top:#ededed;--field-bottom:#dedede;--text-primary:#262626;--text-secondary:#5e6268;--text-hint:#83878d;--accent:#417995;--accent-strong:#326680;--accent-soft:#4179951f;--surface:#f5f5f5d1;--surface-strong:#f7f7f7f5;--card:#e7e7e7db;--card-strong:#eeeeeef5;--line:#26262624;--line-strong:#2626263d;--lift:0 7px 18px #0000001a, 0 2px 5px #00000014;--card-lift:0 12px 34px #0000001a;--danger:#a9464d;--danger-soft:#a9464d1a;--success:#34745e;--success-soft:#34745e1c;--warning:#8a6a24;--warning-soft:#8a6a241c;background:#e8e8e8;font-family:Plus Jakarta Sans,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{background:radial-gradient(circle at 16% -8%, #fffffff0 0, transparent 38%), radial-gradient(circle at 88% 4%, #ffffff8a 0, transparent 31%), linear-gradient(180deg, var(--field-top) 0%, var(--field-bottom) 100%);background-attachment:fixed;min-width:320px;min-height:100vh;margin:0}body:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#ffffff14,#26262606);position:fixed;inset:0}button,input,select,textarea{font:inherit}button{color:inherit}button,input,select,textarea{-webkit-tap-highlight-color:transparent}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--text-primary);background:#fafafac7;border-radius:10px;outline:0;padding:11px 13px;transition:border-color .15s,background-color .15s,box-shadow .15s;box-shadow:inset 0 1px 1px #ffffffa6}input::placeholder,textarea::placeholder{color:#92969b}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#fafafaf5}input[readonly]{color:var(--text-hint);background:#e0e0e0b8}textarea{resize:vertical}button:focus-visible{outline-offset:2px;outline:3px solid #41799542}.shell{width:min(1180px,100% - 36px);margin:0 auto;padding:48px 0 34px;position:relative}.topbar,.identity,nav,.credential-bar,.catalog-head,.create-actions,.filters,.type-filters,.item-title,.item-actions,.editor-head,.editor-actions,.actions,footer{align-items:center;display:flex}.topbar{justify-content:space-between;gap:30px;margin-bottom:24px}.identity{gap:17px}.brand{width:54px;height:54px;color:var(--text-primary);background:var(--surface);box-shadow:var(--lift);border:1px solid #ffffffd1;border-radius:14px;place-items:center;display:grid}.brand span{font-family:Plus Jakarta Sans,sans-serif;font-size:28px;font-weight:540;line-height:1}h1,h2,h3,p{margin:0}h1{letter-spacing:-.035em;font-size:clamp(26px,4vw,37px);font-weight:540}h2{margin-top:5px;font-size:24px;font-weight:540}h3{font-size:16px;font-weight:600}.eyebrow,.step{color:var(--accent-strong);letter-spacing:.14em;font:650 10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}nav,.type-filters{background:#e0e0e0c7;border:1px solid #ffffffb8;border-radius:999px;gap:4px;padding:4px;box-shadow:inset 0 1px 2px #0000000d}nav button,.type-filters button{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:9px 17px;transition:color .15s,background-color .15s,box-shadow .15s}nav button:hover,.type-filters button:hover{color:var(--text-primary)}nav button.active,.type-filters button.active{color:var(--text-primary);background:var(--surface-strong);box-shadow:0 3px 9px #0000001a}.credential-bar{background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffffbd;border-radius:14px;gap:14px;margin-bottom:20px;padding:14px 18px;box-shadow:0 5px 18px #00000012}.credential-bar label{flex:1;align-items:center;gap:12px;display:flex}.credential-bar label span{color:var(--text-secondary);flex:none;font-size:12px}.credential-bar input{max-width:360px;padding:9px 11px}.security-note{color:var(--text-hint);margin-left:auto;font:10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.primary,.ghost,.danger,.close,.remove,.switch{cursor:pointer;border:0;transition:transform .15s,opacity .15s,color .15s,background-color .15s,box-shadow .15s}.primary,.ghost,.danger{border-radius:999px}.primary{color:#fff;background:var(--accent);padding:12px 19px;font-weight:650;box-shadow:0 6px 14px #32668038}.primary:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px);box-shadow:0 8px 18px #32668045}.primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 3px 8px #32668033}.ghost,.danger{background:var(--surface);border:1px solid #ffffffd1;padding:10px 14px;box-shadow:0 3px 9px #00000014}.ghost:hover:not(:disabled){background:var(--surface-strong);box-shadow:0 5px 13px #0000001c}.danger{color:var(--danger);background:#f9eff0db}.danger:hover:not(:disabled){background:#f8e5e7}.compact{padding:8px 12px;font-size:12px}button:disabled{cursor:not-allowed;opacity:.42}.notice{border:1px solid #4179952e;border-left:3px solid var(--accent);color:var(--accent-strong);background:var(--accent-soft);border-radius:10px;margin-bottom:18px;padding:12px 15px;font-size:13px}.notice.error{border-color:#a9464d38;border-left-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.notice.success,.notice.success:not(button){border-color:#34745e38;border-left-color:var(--success);color:var(--success);background:var(--success-soft)}.catalog-head{justify-content:space-between;gap:25px;margin:34px 0 24px}.subtle{max-width:670px;color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:1.65}.create-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px}.achievement-import{background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffffb8;border-radius:12px;margin-bottom:14px;padding:18px;box-shadow:0 5px 18px #00000012}.import-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.import-head h3{margin-top:5px}.import-head p:not(.step){color:var(--text-secondary);margin-top:6px;font-size:11px}.import-error{color:var(--danger);margin-top:14px;font-size:12px}.achievement-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:250px;margin-top:15px;display:grid;overflow-y:auto}.achievement-preview>div{background:#f8f8f8b3;border:1px solid #ffffffb8;border-radius:9px;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 12px;display:grid}.achievement-preview code{color:var(--accent-strong);overflow-wrap:anywhere;font-size:10px}.achievement-preview span{color:var(--text-primary);font-size:11px}.achievement-preview small{color:var(--text-hint);grid-column:1/-1;font-size:10px}.achievement-preview>.skipped{opacity:.65;border-style:dashed}.achievement-preview>.skipped code{color:var(--text-hint)}.filters{justify-content:space-between;gap:16px;margin-bottom:12px}.type-filters{gap:3px}.type-filters button{padding:8px 12px;font-size:12px}.type-filters b{opacity:.72;margin-left:5px;font:10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.search{width:min(310px,100%);padding:9px 12px}.catalog-list{gap:9px;display:grid}.catalog-item{background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffffbd;border-radius:12px;grid-template-columns:44px minmax(220px,1.5fr) minmax(230px,1fr) auto;align-items:center;gap:17px;min-height:106px;padding:17px 19px;transition:background-color .15s,box-shadow .15s,transform .15s;display:grid;box-shadow:0 5px 16px #00000012}.catalog-item:hover{background:#edededf0;transform:translateY(-1px);box-shadow:0 8px 22px #00000017}.catalog-item.disabled{opacity:.56}.kind{color:#4f4a2c;background:#e8dca4;border:1px solid #ffffffad;border-radius:10px;place-items:center;width:39px;height:39px;font-weight:750;display:grid;box-shadow:0 3px 8px #0000001a}.kind[data-kind=character]{color:#285b49;background:#b9dfd1}.kind[data-kind=backplate]{color:#4f4261;background:#cfc1dd}.item-main{min-width:0}.item-title{gap:8px}.item-main code{color:var(--accent-strong);overflow-wrap:anywhere;margin:5px 0 7px;font-size:11px;display:block}.item-main p{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.state{color:var(--danger);background:var(--danger-soft);border:1px solid #a9464d40;border-radius:999px;padding:3px 7px;font-size:9px}.rule-cell{gap:4px;min-width:0;display:grid}.rule-cell span{color:var(--text-hint);letter-spacing:.1em;font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.rule-cell strong{color:var(--text-secondary);font-size:12px;font-weight:500}.rule-cell small{color:var(--text-hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item-actions{justify-content:flex-end;gap:7px}.empty-state{text-align:center;border:1px dashed var(--line-strong);background:#eeeeee94;border-radius:12px;place-content:center;gap:8px;min-height:260px;display:grid}.empty-state strong{font-size:17px}.empty-state span{color:var(--text-hint);font-size:12px}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14141447;place-items:center;padding:28px 16px;display:grid;position:fixed;inset:0;overflow-y:auto}.card{background:var(--card-strong);box-shadow:var(--card-lift);border:1px solid #ffffffd1;border-radius:12px}.editor{width:min(920px,100%);max-height:calc(100vh - 56px);padding:28px;overflow-y:auto}.editor-head{justify-content:space-between;margin-bottom:24px}.close{width:42px;height:42px;color:var(--text-secondary);background:0 0;border-radius:50%;font-size:30px}.close:hover{color:var(--text-primary);background:#2626260f}.form-grid{gap:15px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.editor label{color:var(--text-secondary);gap:7px;margin-bottom:15px;font-size:11px;display:grid}.editor label small{color:var(--text-hint);font-size:10px}.local-fields-note{color:var(--text-secondary);background:#7b679417;border-left:3px solid #7b6794;border-radius:8px;margin-bottom:18px;padding:12px 14px;font-size:11px;line-height:1.65}.divider{background:var(--line);height:1px;margin:9px 0 22px}.switch-label{align-content:start}.switch{border:1px solid var(--line);width:100%;color:var(--text-secondary);background:#fafafab8;border-radius:10px;padding:11px}.switch.on{color:var(--success);background:var(--success-soft);border-color:#34745e47}.condition-note{border-left:3px solid var(--success);color:var(--success);background:var(--success-soft);border-radius:8px;gap:4px;margin-bottom:14px;padding:13px 15px;display:grid}.condition-note.sequential{border-color:var(--warning);color:var(--warning);background:var(--warning-soft)}.condition-note strong{font-size:12px}.condition-note span{color:var(--text-secondary);font-size:11px}.editor .check-row{grid-template-columns:auto 1fr;align-items:center}.check-row input{width:auto;accent-color:var(--accent)}.targets{gap:8px;display:grid}.target-row{grid-template-columns:28px minmax(130px,1.2fr) repeat(3,minmax(120px,1fr)) 31px;align-items:center;gap:7px;display:grid}.target-row b{color:var(--accent-strong);font:11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.target-row input,.target-row select{min-width:0;padding:9px;font-size:11px}.remove{height:31px;color:var(--danger);background:0 0;border-radius:50%;font-size:19px}.remove:hover:not(:disabled){background:var(--danger-soft)}.add-target{justify-self:start;margin-top:5px}.song-catalog-state{color:var(--text-hint);font-size:10px}.song-catalog-state.error{color:var(--danger)}.editor-actions{justify-content:flex-end;gap:10px;margin-top:27px}.upload-card{width:min(760px,100%);margin:38px auto 0;padding:clamp(24px,5vw,42px)}.section-title{justify-content:space-between;align-items:end;margin-bottom:25px;display:flex}.limit{color:var(--text-hint);font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.file-input{display:none}.dropzone{border:1px dashed var(--line-strong);width:100%;min-height:250px;color:var(--text-primary);cursor:pointer;background:#f8f8f89e;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;transition:border-color .2s,background-color .2s,box-shadow .2s;display:flex}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--accent-soft);background:#f8f8f8eb}.dropzone.filled{border-style:solid}.dropzone strong{text-overflow:ellipsis;white-space:nowrap;max-width:90%;font-size:16px;overflow:hidden}.dropzone small{color:var(--text-hint)}.upload-icon{width:47px;height:47px;color:var(--accent-strong);background:var(--surface);border:1px solid #ffffffe0;border-radius:50%;place-items:center;margin-bottom:7px;font:24px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid;box-shadow:0 4px 10px #00000017}.progress-wrap{margin-top:24px}.progress-meta{color:var(--text-secondary);justify-content:space-between;margin-bottom:9px;font-size:12px;display:flex}.progress-meta b{color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.progress{background:#2626261a;border-radius:999px;height:5px;overflow:hidden}.progress i{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s;display:block}.actions{justify-content:flex-end;gap:12px;margin-top:26px}footer{color:var(--text-hint);letter-spacing:.08em;justify-content:center;gap:10px;margin-top:28px;font:10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}footer i{background:var(--accent);border-radius:50%;width:3px;height:3px}@media (width<=900px){.catalog-item{grid-template-columns:42px 1fr auto}.rule-cell{grid-column:2/-1}.item-actions{grid-area:1/3}.target-row{grid-template-columns:28px 1fr 1fr 31px}.target-row select:nth-of-type(2),.target-row select:nth-of-type(3){grid-column:span 1}}@media (width<=680px){.shell{padding-top:30px}.topbar,.catalog-head,.filters{flex-direction:column;align-items:stretch}nav{align-self:stretch}nav button{flex:1}.credential-bar{flex-wrap:wrap;align-items:stretch}.credential-bar label{flex-basis:100%}.credential-bar input{max-width:none}.security-note{margin-left:0}.create-actions{grid-template-columns:repeat(3,1fr);display:grid}.create-actions>:first-child,.create-actions>:nth-child(2){grid-column:1/-1}.import-head{flex-direction:column;align-items:stretch}.achievement-preview{grid-template-columns:1fr}.type-filters{overflow-x:auto}.search{width:100%}.catalog-item{grid-template-columns:36px 1fr}.item-actions{grid-area:auto/1/auto/-1;justify-content:stretch}.item-actions button{flex:1}.rule-cell{grid-column:1/-1}.form-grid.two{grid-template-columns:1fr}.editor{padding:22px 18px}.target-row{grid-template-columns:25px 1fr 30px}.target-row input,.target-row select{grid-column:2}.target-row .remove{grid-area:1/3/5}}
