body.app{min-height:100dvh;background:var(--bg-sunken);overflow-x:hidden}body.is-locked{overflow:hidden}.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:.85rem;height:56px;padding-inline:clamp(1rem,3vw,1.5rem);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-sunken) 80%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.topbar .brand{display:flex;align-items:center;gap:.55rem;font-weight:600;font-size:.9375rem;letter-spacing:-.02em}.topbar .brand img{width:auto;height:17px}.topbar-sep{width:1px;height:22px;background:var(--border);flex:none}.topbar-right{margin-inline-start:auto;display:flex;align-items:center;gap:.4rem}.icon-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-full);border:1px solid transparent;background:transparent;color:var(--text-muted);transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.icon-btn:hover{background:var(--surface);color:var(--text)}.icon-btn svg{width:17px;height:17px}.icon-btn-avatar{width:36px;height:36px;padding:0;border-width:0;overflow:hidden}.icon-btn-avatar:hover,.icon-btn-avatar:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}.account-avatar{width:100%;height:100%;border-radius:var(--r-full);object-fit:cover}.guild-switch{display:flex;align-items:center;gap:.55rem;padding:.28rem .7rem .28rem .3rem;border-radius:var(--r-full);border:1px solid var(--border);background:transparent;font-size:.8125rem;font-weight:500;max-width:260px;transition:background var(--t-fast) var(--ease-out)}.guild-switch:hover{background:var(--surface)}.guild-switch>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guild-switch svg{color:var(--text-faint);flex:none}.guild-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:none;background:var(--surface-strong)}.guild-initial{display:grid;place-items:center;font-size:.7rem;font-weight:600;color:var(--text-soft);letter-spacing:0}.menu{position:absolute;top:calc(100% + 6px);min-width:240px;padding:.35rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);z-index:70;opacity:0;transform:translateY(-4px);transform-origin:top;pointer-events:none;transition:opacity var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}.menu.is-open{opacity:1;transform:none;pointer-events:auto}.menu-right{inset-inline-end:0}.menu-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .65rem;border-radius:var(--r-sm);font-size:.875rem;color:var(--text-soft);text-align:start;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.menu-item:hover{background:var(--surface);color:var(--text)}.menu-item.is-current{color:var(--accent-ink)}.menu-item small{margin-inline-start:auto;color:var(--text-faint);font-size:.72rem}.menu-sep{height:1px;margin:.3rem .35rem;background:var(--border)}.menu-title{padding:.5rem .65rem .3rem;font-size:.72rem;font-weight:500;color:var(--text-faint)}.menu-scroll{max-height:320px;overflow-y:auto}.gate-corner{position:fixed;top:.85rem;inset-inline-end:1rem;z-index:20}.topbar-right .lang{margin-inline-end:.15rem}.topbar-right .lang-menu{z-index:60}@media(max-width:560px){.topbar-right .lang-current{display:none}.topbar-right .lang-button{padding:0 .4rem}}.app-body{display:grid;grid-template-columns:236px minmax(0,1fr);align-items:start;max-width:1440px;margin-inline:auto}.sidebar{position:sticky;top:56px;height:calc(100dvh - 56px);overflow-y:auto;padding:1.15rem .8rem 5rem;border-inline-end:1px solid var(--border)}.nav-back{display:flex;align-items:center;gap:.5rem;padding:.45rem .7rem;border-radius:var(--r-sm);font-size:.8125rem;color:var(--text-faint);transition:color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.nav-back svg{flex:none;opacity:.7}.nav-back:hover{color:var(--text);background:var(--surface)}.nav-sep{height:1px;margin:.75rem .35rem 1.1rem;background:var(--border)}.nav-group{margin-bottom:1.25rem}.nav-group h3{padding:0 .7rem .45rem;font-size:.72rem;font-weight:500;letter-spacing:0;color:var(--text-faint)}.nav-item{display:flex;align-items:center;gap:.65rem;padding:.5rem .7rem;border-radius:var(--r-sm);font-size:.8625rem;font-weight:400;color:var(--text-muted);transition:color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.nav-item svg{flex:none;opacity:.7}.nav-item:hover{color:var(--text);background:var(--surface)}.nav-item.is-active{color:var(--text);font-weight:500;background:var(--surface-strong)}.nav-item.is-active svg{opacity:1}.nav-item .nav-badge{margin-inline-start:auto;font-size:.65rem;font-weight:500;letter-spacing:.02em;color:var(--text-faint)}.nav-item .nav-badge.on{color:var(--success)}.content{min-width:0;padding:clamp(1.25rem,3vw,2rem) clamp(1rem,3vw,2rem) 7rem}.view{animation:view-in .32s var(--ease-out)}@keyframes view-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.view-head{margin-bottom:1.6rem}.view-head h1{font-size:clamp(1.4rem,3vw,1.85rem);margin-bottom:.35rem}.view-head p{color:var(--text-muted);font-size:.9375rem;max-width:46rem}.view-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.panel{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-elevated);margin-bottom:1rem;overflow:hidden}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.05rem 1.3rem;border-bottom:1px solid var(--border)}.panel-head h2{font-size:1rem}.panel-head p{margin-top:.2rem;font-size:.8125rem;color:var(--text-muted);max-width:44rem}.panel-actions{display:flex;gap:.5rem;flex:none;align-items:center}.panel-head:last-child{border-bottom:0}.panel-actions .picker{width:15rem}.panel-body{padding:.35rem 1.3rem}.module-switch{display:flex;align-items:center;gap:.6rem}@media(max-width:720px){.panel-head:has(.panel-actions .picker){flex-wrap:wrap}.panel-head:has(.panel-actions .picker) .panel-actions{flex:1 1 100%}.panel-actions .picker{width:100%}}.field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:1.5rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border)}.field[hidden]{display:none}.input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.panel-body>.field:not(:has(~*:not([hidden]))),.panel-body>*:last-child .field:not(:has(~*:not([hidden]))){border-bottom:0}.field-stacked{grid-template-columns:1fr;gap:.7rem;align-items:stretch}.field-label label{display:block;font-size:.9375rem;font-weight:500}.field-label p{margin-top:.2rem;font-size:.8125rem;color:var(--text-muted);line-height:1.5}.field-control{display:flex;justify-content:flex-end;min-width:0}.field-stacked .field-control{justify-content:stretch}.field-control>*{min-width:0;width:100%}.field-control>.switch-wrap{width:auto}.input{width:100%;padding:.55rem .8rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem;transition:border-color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out)}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--border-strong)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:90px;line-height:1.55;font-family:inherit}.textarea-wrap{position:relative;width:100%}.counter{position:absolute;inset-inline-end:.6rem;bottom:.45rem;font-size:.7rem;color:var(--text-faint);font-variant-numeric:tabular-nums;pointer-events:none}.counter.is-near{color:var(--warning)}.input-number{max-width:100%;font-variant-numeric:tabular-nums}.input-affix{display:flex;align-items:center;gap:.6rem;width:100%}.input-affix span{font-size:.8125rem;color:var(--text-muted);white-space:nowrap}.switch-wrap{display:inline-flex;cursor:pointer;flex:none}.switch-input{position:absolute;opacity:0;width:0;height:0}.switch{position:relative;display:block;width:46px;height:27px;border-radius:var(--r-full);background:var(--surface-strong);transition:background var(--t-base) var(--ease-out)}.switch-knob{position:absolute;top:2px;inset-inline-start:2px;width:23px;height:23px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--t-base) var(--ease-out)}.switch-input:checked+.switch{background:var(--accent)}.switch-input:checked+.switch .switch-knob{transform:translate(19px)}.switch-input:focus-visible+.switch{box-shadow:0 0 0 3px var(--accent-soft)}.segmented{display:inline-flex;padding:2px;border-radius:var(--r-full);background:var(--track);gap:2px;width:100%}.segment{flex:1;padding:.4rem .85rem;border-radius:var(--r-full);font-size:.8125rem;font-weight:500;color:var(--text-muted);white-space:nowrap;transition:background var(--t-base) var(--ease-out),color var(--t-base) var(--ease-out)}.segment:hover{color:var(--text)}.segment[aria-pressed=true]{color:var(--text);background:var(--thumb);box-shadow:var(--shadow-sm)}.color-field{display:flex;align-items:center;gap:.6rem;width:100%}.color-swatch{width:42px;height:36px;padding:0;border-radius:var(--r-sm);border:1px solid var(--border);cursor:pointer;flex:none;transition:transform var(--t-fast) var(--ease-out)}.color-swatch:hover{transform:scale(1.04)}.cp{display:flex;flex-direction:column;gap:.85rem;min-width:min(320px,100%)}.cp-area{position:relative;height:170px;border-radius:var(--r-md);border:1px solid var(--border);cursor:crosshair;touch-action:none;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,hsl(var(--cp-hue, 235) 100% 50%));background-origin:border-box}.cp-hue{position:relative;height:14px;border-radius:var(--r-full);border:1px solid var(--border);cursor:ew-resize;touch-action:none;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);background-origin:border-box}.cp-thumb{position:absolute;top:50%;left:0;width:16px;height:16px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000059,var(--shadow-sm);pointer-events:none}.cp-hue:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}.cp-row{display:flex;align-items:center;gap:.6rem}.cp-preview{width:42px;height:36px;flex:none;border-radius:var(--r-sm);border:1px solid var(--border)}.cp-hex{flex:1;text-transform:uppercase}.cp-presets-label{font-size:.78rem;color:var(--text-muted)}.color-hex{max-width:120px;text-transform:uppercase}.picker{position:relative;width:100%}.picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.55rem .7rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);font-size:.875rem;text-align:start;transition:border-color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out)}.picker-trigger:hover{border-color:var(--border-strong)}.picker.is-open .picker-trigger{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.picker-trigger svg{flex:none;color:var(--text-faint);transition:transform var(--t-base) var(--ease-out)}.picker.is-open .picker-trigger svg{transform:rotate(180deg)}.picker-label{display:flex;align-items:center;gap:.5rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.picker-label>span:last-child{overflow:hidden;text-overflow:ellipsis}.picker-placeholder{color:var(--text-faint)}.picker-prefix{color:var(--text-faint);flex:none}.picker-menu{position:fixed;z-index:160;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);overflow:hidden;opacity:0;transform:translateY(-4px);transform-origin:top;pointer-events:none;transition:opacity var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}.picker-menu.is-up{transform:translateY(4px);transform-origin:bottom}.picker-menu.is-open{opacity:1;transform:none;pointer-events:auto}.picker-search-wrap{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;border-bottom:1px solid var(--border);color:var(--text-faint)}.picker-search{flex:1;background:none;border:0;outline:none;font-size:.85rem;color:var(--text);min-width:0}.picker-list{max-height:260px;overflow-y:auto;padding:.3rem}.picker-group{padding:.5rem .6rem .25rem;font-size:.72rem;font-weight:500;color:var(--text-faint)}.picker-option{display:flex;align-items:center;gap:.55rem;padding:.45rem .6rem;border-radius:var(--r-xs);font-size:.865rem;cursor:pointer;color:var(--text-soft)}.picker-option.is-active{background:var(--surface);color:var(--text)}.picker-option.is-selected{color:var(--accent-ink);font-weight:500}.picker-option.is-muted{color:var(--text-faint);font-style:italic}.picker-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-option small{margin-inline-start:auto;color:var(--text-faint);font-size:.72rem}.picker-option svg{margin-inline-start:auto;flex:none}.picker-empty{padding:1rem .75rem;text-align:center;font-size:.82rem;color:var(--text-faint)}.role-dot{width:9px;height:9px;border-radius:50%;flex:none}.multi-picker{display:flex;flex-direction:column;gap:.55rem;width:100%}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chips-empty{font-size:.8125rem;color:var(--text-faint);font-style:italic}.mention-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.mention-row .picker{width:auto;min-width:210px}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .35rem .25rem .65rem;border-radius:var(--r-full);border:1px solid var(--border);font-size:.8rem}.chip-x{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:var(--text-faint);transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.chip-x:hover{background:var(--surface-strong);color:var(--danger)}.hero-card{display:flex;align-items:center;gap:1.2rem;padding:1.4rem 1.5rem;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-elevated);margin-bottom:1rem}.hero-card .guild-avatar{width:56px;height:56px;font-size:1.35rem}.hero-card h1{font-size:clamp(1.3rem,3vw,1.75rem)}.hero-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.6rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,175px),1fr));gap:.8rem;margin-bottom:1rem}.stat-card{padding:1.05rem 1.15rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated)}.stat-card .k{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);margin-bottom:.45rem}.stat-card .v{font-size:1.6rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-card .s{font-size:.75rem;color:var(--text-faint);margin-top:.1rem}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,215px),1fr));gap:.7rem}.module-card{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);transition:border-color var(--t-fast) var(--ease-out)}.module-card:hover{border-color:var(--border-strong)}.module-card .m-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-sm);background:var(--surface);color:var(--text-soft);flex:none}.module-card .m-name{font-size:.9rem;font-weight:500}.module-card .m-state{font-size:.75rem;color:var(--text-faint)}.module-card .m-state.on{color:var(--success)}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table-wrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated)}.table th{padding:.65rem 1rem;text-align:start;font-size:.72rem;font-weight:500;color:var(--text-faint);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:.7rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--t-fast) var(--ease-out)}.table tbody tr:hover{background:var(--surface)}.user-cell{display:flex;align-items:center;gap:.6rem;min-width:0}.user-cell img,.user-cell-blank{width:28px;height:28px;border-radius:50%;flex:none;background:var(--surface-strong)}.user-cell b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-cell small{display:block;color:var(--text-faint);font-size:.7rem;font-family:var(--font-mono)}.rank-badge{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:var(--surface);color:var(--text-muted);font-weight:600;font-size:.8rem;font-variant-numeric:tabular-nums}.rank-badge.top1{background:color-mix(in srgb,#c9a227 22%,transparent);color:#c9a227}.rank-badge.top2{background:var(--surface-strong);color:var(--text-soft)}.rank-badge.top3{background:color-mix(in srgb,#a9713c 22%,transparent);color:#a9713c}.xp-bar{position:relative;height:5px;border-radius:var(--r-full);background:var(--surface-strong);overflow:hidden;min-width:90px}.xp-bar i{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--accent);transform-origin:left;animation:bar-in .6s var(--ease-out)}@keyframes bar-in{0%{transform:scaleX(0)}}.rewards{display:flex;flex-direction:column;gap:.55rem}.reward-row{display:grid;grid-template-columns:minmax(96px,132px) auto minmax(0,1fr) auto;align-items:end;gap:.7rem;padding:.7rem .8rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elevated)}.reward-row.is-duplicate{border-color:var(--danger)}.reward-level,.reward-role{display:flex;flex-direction:column;gap:.3rem;min-width:0}.reward-label{font-size:.75rem;font-weight:500;color:var(--text-muted)}.reward-arrow{display:flex;align-items:center;justify-content:center;padding-bottom:.5rem;color:var(--text-faint);transform:rotate(-90deg)}.rewards-empty{margin:0;padding:1.1rem 0;text-align:center;color:var(--text-muted);font-size:.875rem}.rewards-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;padding:.8rem 0 .2rem}.rewards-count{font-size:.8125rem;color:var(--text-faint)}@media(max-width:640px){.reward-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"level  remove" "arrow  arrow" "role   role";align-items:center}.reward-level{grid-area:level}.reward-arrow{grid-area:arrow;transform:none;padding:0;justify-content:flex-start}.reward-role{grid-area:role}.reward-row>.icon-action{grid-area:remove}}.type-badge{display:inline-flex;align-items:center;padding:.14rem .55rem;border-radius:var(--r-full);font-size:.72rem;font-weight:500;border:1px solid transparent}.type-ban{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.type-kick{color:#d9822b;border-color:#d9822b59}.type-timeout{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 35%,transparent)}.type-warn{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 25%,transparent)}.type-unban,.type-unwarn{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,transparent)}.log-cat{border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);margin-bottom:.65rem;overflow:hidden}.log-cat-head{display:flex;align-items:center;gap:.8rem;width:100%;padding:.9rem 1.05rem;text-align:start;transition:background var(--t-fast) var(--ease-out)}.log-cat-head:hover{background:var(--surface)}.log-cat-head .emoji{font-size:1.1rem}.log-cat-head b{font-size:.9375rem;font-weight:500}.log-cat-head small{display:block;font-size:.78rem;color:var(--text-muted);font-weight:400}.log-cat-head .count{margin-inline-start:auto;font-size:.75rem;color:var(--text-faint);font-variant-numeric:tabular-nums}.log-cat-head .count.on{color:var(--success)}.log-cat-head>svg:last-child{color:var(--text-faint);transition:transform var(--t-base) var(--ease-out)}.log-cat.is-open .log-cat-head>svg:last-child{transform:rotate(180deg)}.log-cat-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--t-slow) var(--ease-out)}.log-cat.is-open .log-cat-body{grid-template-rows:1fr}.log-cat-body>div{overflow:hidden}.log-event{display:grid;grid-template-columns:1fr 220px auto;gap:.85rem;align-items:center;padding:.65rem 1.05rem;border-top:1px solid var(--border);font-size:.875rem}.log-event.is-off{opacity:1;pointer-events:auto}.log-event.is-off>span,.log-event.is-off .picker-trigger{opacity:.5}.log-event.is-off .picker-trigger:hover,.log-event.is-off .picker.is-open .picker-trigger{opacity:1}.log-bulk{display:flex;gap:.5rem;padding:.7rem 1.05rem;border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.savebar{position:fixed;left:50%;bottom:1.5rem;z-index:80;display:flex;align-items:center;gap:1rem;padding:.6rem .6rem .6rem 1.15rem;border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);transform:translate(-50%,130%);opacity:0;pointer-events:none;transition:transform var(--t-slow) var(--ease-out),opacity var(--t-base) var(--ease-out)}.savebar.is-visible{transform:translate(-50%);opacity:1;pointer-events:auto}.savebar span{font-size:.875rem;font-weight:500;white-space:nowrap}.savebar-actions{display:flex;gap:.5rem}.toasts{position:fixed;top:70px;inset-inline-end:1.25rem;z-index:200;display:flex;flex-direction:column;gap:.55rem;max-width:min(400px,calc(100vw - 2.5rem));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);font-size:.875rem;cursor:pointer;pointer-events:auto;animation:toast-in .3s var(--ease-out)}.toast svg{flex:none;margin-top:2px}.toast-success svg{color:var(--success)}.toast-error svg{color:var(--danger)}.toast-info svg{color:var(--info)}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.toast.is-leaving{animation:toast-out .24s var(--ease-out) forwards}@keyframes toast-out{to{opacity:0;transform:translate(24px)}}.overlay{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:1.25rem;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .2s var(--ease-out)}@keyframes fade{0%{opacity:0}}.overlay.is-leaving{animation:fade .2s var(--ease-out) reverse forwards}.modal{width:min(520px,100%);max-height:min(84dvh,760px);display:flex;flex-direction:column;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);animation:modal-in .28s var(--ease-out)}.modal-wide{width:min(760px,100%)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.3rem;border-bottom:1px solid var(--border)}.modal-head h2{font-size:1rem}.modal-body{padding:1.2rem 1.3rem;overflow-y:auto}.modal-text{color:var(--text-soft);font-size:.9375rem}.modal-foot{display:flex;justify-content:flex-end;gap:.55rem;padding:.95rem 1.3rem;border-top:1px solid var(--border)}.modal .field{grid-template-columns:1fr;gap:.5rem;padding:.75rem 0}.modal .field-control{justify-content:stretch}.skeleton{display:flex;flex-direction:column;gap:.7rem;padding:.5rem 0}.skeleton-row{height:52px;border-radius:var(--r-md);background:var(--surface);animation:pulse 1.6s var(--ease-in-out) infinite}@keyframes pulse{50%{opacity:.45}}.empty{padding:3rem 1.5rem;text-align:center}.empty-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 1rem;border-radius:var(--r-md);border:1px solid var(--border);color:var(--text-faint)}.empty h3{font-size:1.0625rem;margin-bottom:.4rem}.empty p{color:var(--text-muted);font-size:.9rem;max-width:30rem;margin:0 auto 1.25rem}.notice{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem .95rem;margin:.85rem 0;border-radius:var(--r-sm);font-size:.85rem;line-height:1.5;border:1px solid var(--border);color:var(--text-soft)}.notice svg{flex:none;margin-top:2px;color:var(--text-faint)}.notice-warn{border-color:color-mix(in srgb,var(--warning) 35%,transparent)}.notice-warn svg{color:var(--warning)}.gate{min-height:100dvh;display:grid;place-items:center;padding:2rem 1.25rem;text-align:center}.gate-card{width:min(420px,100%);padding:2.5rem 2rem;border-radius:var(--r-xl);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-md);animation:modal-in .42s var(--ease-out)}.gate-card img{width:auto;height:38px;margin:0 auto 1.5rem}.gate-mark{display:block;width:auto;height:38px;margin:0 auto 1.5rem}.gate-mark .sat-still{display:none}@media(prefers-reduced-motion:reduce){.gate-mark .sat-orbit{display:none}.gate-mark .sat-still{display:block}}.gate-card h1{font-size:1.4rem;margin-bottom:.6rem}.gate-card p{color:var(--text-muted);font-size:.9375rem;margin-bottom:1.6rem}.guild-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:.8rem}.guild-card{display:flex;align-items:center;gap:.8rem;padding:.95rem 1rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);text-align:start;transition:border-color var(--t-fast) var(--ease-out)}.guild-card:hover{border-color:var(--border-strong)}.guild-card .guild-avatar{width:40px;height:40px;font-size:.95rem}.guild-card b{display:block;font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guild-card small{font-size:.75rem;color:var(--text-faint)}.guild-card.is-missing{opacity:.7}.guild-card.is-missing:hover{opacity:1}.bk-back{display:inline-flex;align-items:center;gap:.3rem;margin-bottom:.9rem;font-size:.8125rem;color:var(--text-muted);transition:color var(--t-fast) var(--ease-out)}.bk-back:hover{color:var(--text)}.bk-back svg{flex:none}.bk-layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:1.1rem;align-items:start}@media(max-width:1240px){.bk-layout{grid-template-columns:1fr}}.bk-list{display:flex;flex-direction:column;gap:.6rem}.bk-card{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem .95rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);text-align:start;transition:border-color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.bk-card:hover{border-color:var(--border-strong)}.bk-card.is-selected{border-color:var(--accent);background:var(--accent-soft)}.bk-card-icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);border:1px solid var(--border);font-size:.8rem;font-weight:600;color:var(--text-muted)}.bk-card-text{min-width:0}.bk-card b{display:block;font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-card small{display:block;margin-top:.1rem;font-size:.75rem;color:var(--text-faint)}.bk-card-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.55rem}.bk-code{padding:.1rem .35rem;border-radius:var(--r-xs);background:var(--surface);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--text-soft)}.bk-card-count{font-size:.72rem;color:var(--text-faint)}.bk-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.bk-preview-head .btn{flex:none}.row-actions{display:flex;gap:.3rem;justify-content:flex-end}.icon-action{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-xs);color:var(--text-faint);transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.icon-action:hover{background:var(--surface-strong);color:var(--text)}.icon-action.danger:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.pager{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem 0 0;font-size:.85rem;color:var(--text-muted)}.filters{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem}.filters .picker,.filters .input{width:auto;min-width:190px}.member-filter{display:flex;flex-direction:column;gap:.3rem}.member-filter-note{max-width:240px;font-size:.72rem;line-height:1.4;color:var(--text-faint)}.list-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1.05rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);margin-bottom:.55rem;transition:border-color var(--t-fast) var(--ease-out)}.list-card:hover{border-color:var(--border-strong)}.drag-grip{position:relative;width:24px;height:32px;flex:none;padding:0;border:0;background:none;cursor:grab;color:var(--text-faint);border-radius:var(--r-xs);touch-action:none;transition:color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.drag-grip:before{content:"";position:absolute;top:50%;left:50%;width:3px;height:3px;border-radius:50%;background:currentColor;margin:-6.5px 0 0 -4.5px;box-shadow:6px 0 currentColor,0 5px currentColor,6px 5px currentColor,0 10px currentColor,6px 10px currentColor}.drag-grip:hover{color:var(--text);background:var(--surface)}.drag-grip:active{cursor:grabbing}.is-reordering .list-card{transition:transform .18s var(--ease-out);-webkit-user-select:none;user-select:none}.is-reordering .list-card.is-dragging{transition:none;position:relative;z-index:2;border-color:var(--accent);box-shadow:var(--shadow-md);cursor:grabbing}.is-reordering .list-card:not(.is-dragging){pointer-events:none}@media(prefers-reduced-motion:reduce){.is-reordering .list-card{transition:none}}.list-card .l-emoji{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface);font-size:1.05rem;flex:none}.list-card .l-main{min-width:0;flex:1}.list-card b{display:block;font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-card .segmented{width:auto;flex:none}.list-card .segmented .segment{min-width:42px;padding-inline:.75rem}.list-card small{color:var(--text-muted);font-size:.8rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:.65rem;padding:1rem 0}.cmd-level{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;border-radius:var(--r-sm);border:1px solid var(--border)}.cmd-level code{font-family:var(--font-mono);font-size:.82rem;color:var(--text-soft);flex:1}.cmd-level .segmented{width:auto;flex:none}.cmd-level .segment{padding:.25rem .6rem;font-size:.75rem}.cmd-level.is-custom{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.segmented.tabs{width:auto;max-width:420px}.segmented.tabs .segment{padding:.5rem 1.2rem;font-size:.875rem}.field-sep{height:.7rem}.embed-counter{margin-top:.35rem;text-align:end;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--text-muted)}.embed-counter.is-warn{color:var(--warning)}.embed-counter.is-over{color:var(--danger);font-weight:600}.is-off{opacity:.45;pointer-events:none}.preview-head{margin-bottom:.7rem}.preview-head h2{font-size:.9375rem;margin-bottom:.15rem}.preview-head p{font-size:.8125rem;color:var(--text-muted)}.preview-sticky .notice{margin-top:.85rem}.duration-row{display:flex;flex-wrap:wrap;gap:.35rem;width:100%}.duration-btn{flex:1 1 auto;min-width:62px;padding:.4rem .8rem;border-radius:var(--r-full);border:1px solid var(--border);font-size:.8125rem;font-weight:500;color:var(--text-muted);transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.duration-btn:hover{color:var(--text)}.duration-btn[aria-pressed=true]{color:var(--on-accent);border-color:transparent;background:var(--accent)}.gw-summary{font-size:.82rem;color:var(--text-muted)}.rr-roles{display:flex;flex-direction:column;gap:.5rem}.rr-role{display:grid;grid-template-columns:auto minmax(84px,1fr) 88px minmax(110px,1.2fr) 112px auto;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:var(--r-sm);border:1px solid var(--border)}.rr-role-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500}.rr-role .input,.rr-role .picker-trigger{padding:.4rem .6rem;font-size:.82rem}@media(max-width:720px){.rr-role{grid-template-columns:auto 1fr auto}.rr-role .input,.rr-role .picker{grid-column:2 / -1}}.publish-status{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding:1rem 0 .4rem;font-size:.85rem;color:var(--text-muted)}.publish-status span:last-child{flex:1;min-width:220px}.publish-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.9rem 0 .3rem}.preview-typebar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.9rem .5rem .2rem;font-size:.78rem;color:var(--text-muted)}.preview-typebtn{padding:.22rem .7rem;border-radius:var(--r-full);border:1px solid var(--border);font-size:.78rem;font-weight:500;color:var(--text-muted);transition:color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.preview-typebtn[aria-pressed=true]{color:var(--text);border-color:var(--border-strong)}.templates{padding:.9rem 0 .4rem}.templates-label{margin-bottom:.5rem;font-size:.8125rem;font-weight:500;color:var(--text-soft)}.template-row{display:flex;flex-wrap:wrap;gap:.45rem}.template{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;border-radius:var(--r-full);border:1px solid var(--border);font-size:.8125rem;font-weight:500;color:var(--text-soft);transition:border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.template:hover{color:var(--text);border-color:var(--border-strong)}.template-emoji{font-size:1rem;line-height:1}.chip-action{cursor:pointer;transition:border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.chip-action:hover{color:var(--text);border-color:var(--border-strong)}.chip-action svg{opacity:.55}.color-stack{display:flex;flex-direction:column;gap:.55rem;width:100%}.color-presets{display:flex;flex-wrap:wrap;gap:.4rem}.color-dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--border);transition:transform var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.color-dot:hover{transform:scale(1.1)}.color-dot[aria-pressed=true]{border-color:var(--text)}.sidebar-backdrop{display:none}@media(max-width:1000px){.app-body{grid-template-columns:1fr}.sidebar{position:fixed;top:56px;inset-inline-start:0;bottom:0;width:264px;z-index:65;background:var(--bg-elevated);transform:translate(-100%);transition:transform var(--t-slow) var(--ease-out)}.sidebar.is-open{transform:none;box-shadow:var(--shadow-lg)}.sidebar-backdrop{display:block;position:fixed;inset:56px 0 0;z-index:64;background:#00000073;opacity:0;pointer-events:none;transition:opacity var(--t-base) var(--ease-out)}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.field{grid-template-columns:1fr;gap:.7rem}.field-control{justify-content:stretch}.log-event{grid-template-columns:1fr auto}.log-event .picker{grid-column:1 / -1}}@media(min-width:1001px){.topbar-burger{display:none}}@media(max-width:560px){.savebar{inset-inline-start:1rem;inset-inline-end:1rem;bottom:1rem;transform:translateY(130%);justify-content:space-between;padding-inline-start:1rem}.savebar.is-visible{transform:none}.savebar span{font-size:.8125rem}.hero-card{flex-direction:column;text-align:center}.hero-meta{justify-content:center}}.segmented.tabs-sub{max-width:340px;margin-bottom:1rem}.segmented.tabs-sub .segment{padding:.4rem .9rem;font-size:.8125rem}.card-editor{display:flex;flex-direction:column;gap:1.1rem}.card-stage{position:relative;width:100%;border-radius:var(--r-md);outline:none;background-image:linear-gradient(45deg,var(--bg-sunken) 25%,transparent 25%),linear-gradient(-45deg,var(--bg-sunken) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--bg-sunken) 75%),linear-gradient(-45deg,transparent 75%,var(--bg-sunken) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;cursor:grab;touch-action:none}.card-stage:focus-visible{box-shadow:0 0 0 2px var(--accent)}.card-stage:active{cursor:grabbing}.card-canvas,.card-overlay{display:block;width:100%;height:auto}.card-overlay{position:absolute;inset:0;pointer-events:none}.card-controls{display:flex;flex-direction:column;gap:1.1rem}.card-group{display:flex;flex-direction:column;gap:.7rem;padding:.9rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken)}.card-group>h4{display:flex;align-items:center;gap:.45rem;margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.card-group>h4 svg{color:var(--text-faint)}.card-stack{display:flex;flex-direction:column;gap:.7rem}.card-stack>.notice{margin:0}.card-row,.card-slider{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.card-row>label,.card-slider>label{flex:0 0 auto;font-size:.8125rem;color:var(--text-soft)}.card-row-controls{display:flex;align-items:center;gap:.5rem}.font-trigger{display:flex;flex:1 1 auto;align-items:center;gap:.6rem;min-width:0;padding:.4rem .6rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);cursor:pointer;text-align:start;transition:border-color var(--t-fast) var(--ease-out)}.font-trigger:hover{border-color:var(--border-strong)}.font-trigger-sample{flex:1 1 auto;min-width:0;font-size:.95rem;line-height:1.4;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-trigger-name{flex:none;font-family:var(--font);font-size:.75rem;font-weight:500;color:var(--text-muted)}.font-trigger svg{flex:none;color:var(--text-faint);transform:rotate(90deg)}.font-list{display:flex;flex-direction:column;gap:.3rem;max-height:min(60vh,520px);overflow-y:auto;padding-inline-end:.2rem}.font-option{display:flex;align-items:center;gap:.8rem;padding:.6rem .75rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);cursor:pointer;text-align:start;transition:border-color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.font-option:hover{border-color:var(--border-strong);background:var(--surface)}.font-option[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.font-option-sample{flex:1 1 auto;min-width:0;font-size:1.35rem;line-height:1.35;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-option-meta{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:.1rem;max-width:45%;font-family:var(--font)}.font-option-name{font-size:.8125rem;font-weight:500;color:var(--text)}.font-option-hint{font-size:.7rem;line-height:1.35;color:var(--text-muted);text-align:end}.font-option[aria-pressed=true] .font-option-name{color:var(--accent-ink)}.font-option>svg{flex:none;color:var(--accent-ink)}@media(max-width:560px){.font-option-hint{display:none}}.card-slider>div{display:flex;flex:1 1 auto;align-items:center;gap:.6rem;justify-content:flex-end}.card-range{flex:1 1 auto;max-width:190px;accent-color:var(--accent)}.card-readout{flex:0 0 auto;min-width:3.4rem;font-family:var(--font-mono);font-size:.75rem;text-align:end;color:var(--text-muted)}.card-layers{display:flex;flex-direction:column;gap:.3rem}.card-layer-item.is-open{border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--surface)}.card-layer{display:flex;align-items:center;gap:.45rem;width:100%;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-soft);font-size:.8125rem;text-align:start;cursor:pointer;transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.card-layer:hover{background:var(--surface-hover)}.card-layer.is-on{border-color:transparent;border-radius:var(--r-sm) var(--r-sm) 0 0;color:var(--text)}.card-layer svg{flex:none;color:var(--text-faint);transition:transform var(--t-fast) var(--ease-out)}.card-layer.is-on svg{transform:rotate(90deg);color:var(--accent-ink)}.card-layer-text{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-layer-drawer{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows var(--t-base) var(--ease-out)}.card-layer-drawer.is-open{grid-template-rows:1fr}.card-layer-drawer>.card-layer-drawer-inner{min-height:0;overflow:hidden}.card-layer-panel{display:flex;flex-direction:column;gap:.7rem;padding:.2rem .6rem .7rem;opacity:0;transition:opacity var(--t-fast) var(--ease-out)}.card-layer-drawer.is-open .card-layer-panel{opacity:1;transition-delay:60ms}.card-upload{display:flex;flex-wrap:wrap;gap:.5rem}.chips-tight{gap:.3rem}.dc-banner-canvas{display:block;width:100%;height:auto;border-radius:var(--r-sm)}@media(max-width:720px){.card-row,.card-slider{flex-direction:column;align-items:stretch;gap:.4rem}.card-slider>div{justify-content:space-between}.card-range{max-width:none}}.stat-row{padding:.9rem 1rem .7rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elevated)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 1rem}.stat-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid var(--border);margin-top:.4rem}.type-badge.appeal-pending{background:color-mix(in srgb,var(--warning) 16%,transparent);color:var(--warning)}.type-badge.appeal-accepted{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}.type-badge.appeal-denied{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.setup-banner{display:flex;align-items:center;gap:.9rem;padding:.95rem 1.1rem;margin-bottom:1.1rem;border:1px solid var(--accent);border-radius:var(--r-lg);background:var(--accent-soft);color:var(--text);transition:background var(--t-fast) var(--ease-out)}.setup-banner:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)}.setup-banner b{display:block;font-size:.9375rem}.setup-banner span{display:block;font-size:.8125rem;color:var(--text-muted)}.setup-banner>svg:last-child{margin-inline-start:auto;color:var(--accent-ink);flex:none}.setup-banner-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:var(--r-full);background:var(--accent);color:var(--on-accent)}.view-narrow{max-width:720px}.setup-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.4rem 0 1.1rem}.setup-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-full);border:1px solid var(--border);font-size:.8125rem;font-weight:600;color:var(--text-faint)}.setup-dot.is-current{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.setup-dot.is-done{border-color:var(--accent);color:var(--accent-ink)}.setup-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding-top:1rem}.setup-count{font-size:.8125rem;color:var(--text-faint)}
