:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16161d;--surface:#1f1f29;--surface-2:#2a2a37;--border:#363645;--text:#f2f2f7;--muted:#9b9bb0;--accent:#ea580c;--accent-text:#fff;--danger:#ef4444;--ok:#22c55e;--warn:#f59e0b;--radius:14px;--shadow:0 1px 2px #0000004d, 0 4px 12px #00000040;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:light){:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f7;--surface:#fff;--surface-2:#ececf2;--border:#d9d9e3;--text:#17171f;--muted:#62627a;--shadow:0 1px 2px #00000014, 0 4px 12px #00000014}}*{box-sizing:border-box}body{min-height:100dvh;margin:0}h1,h2{margin:0;line-height:1.2}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:.4em;min-height:40px;padding:.45rem .9rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.08)}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-block{width:100%}.btn-link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.btn[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.icon-btn{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:9px;place-items:center;width:36px;height:36px;display:inline-grid}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn-danger:hover{border-color:var(--danger)}.app{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.topbar{z-index:10;padding:.6rem max(1rem, env(safe-area-inset-left));padding-top:max(.6rem, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.brand img{border-radius:8px}.topbar-actions{gap:.5rem;margin-left:auto;display:flex}@media (width<=720px){.brand span,.topbar-actions .label{display:none}}.sync-badge{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;min-width:0;padding:.25rem .7rem;font-size:.85rem;display:inline-flex}.sync-label{text-overflow:ellipsis;overflow:hidden}@media (width<=480px){.sync-badge.tone-ok .sync-label,.sync-badge.tone-busy .sync-label{display:none}.sync-badge.tone-ok,.sync-badge.tone-busy{padding:.55rem}}.sync-badge .dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.sync-badge.tone-ok .dot{background:var(--ok)}.sync-badge.tone-warn .dot{background:var(--warn)}.sync-badge.tone-warn{color:var(--warn)}.sync-badge.tone-error .dot{background:var(--danger)}.sync-badge.tone-error{color:var(--danger)}.sync-badge .dot.is-running{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.menu-panel{inset:auto;top:calc(max(.6rem, env(safe-area-inset-top)) + 48px);right:max(1rem, env(safe-area-inset-right));width:220px;color:var(--text);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;margin:0;padding:.75rem;position:fixed}.menu-user{color:var(--muted);overflow-wrap:anywhere;margin:0 0 .6rem;font-size:.9rem}.banner,.toolbar{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;max-width:1200px;margin:1rem auto 0;padding:.75rem 1rem;display:flex}.banner{border-color:var(--warn);margin-inline:1rem}@media (width>=1232px){.banner{margin-inline:auto}}.toolbar{margin-inline:1rem}@media (width>=1232px){.toolbar{margin-inline:auto}}.hint{color:var(--muted);font-size:.875rem}.board{gap:1.5rem;max-width:1200px;margin:0 auto;padding:1rem;display:grid}.group{border-radius:var(--radius);outline-offset:6px;outline:2px dashed #0000;transition:outline-color .15s}.group.is-drop-target{outline-color:var(--accent)}.group-header{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.group-toggle{cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;min-width:0;padding:.25rem 0;display:flex}.group-toggle h2{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.chevron{color:var(--muted);transition:transform .15s;display:inline-block}.group-toggle[aria-expanded=true] .chevron{transform:rotate(90deg)}.count{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:0 .5rem;font-size:.8rem}.group-actions{gap:.35rem;margin-left:auto;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}@media (width<=480px){.grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:.6rem}}.group-empty{color:var(--muted);grid-column:1/-1;margin:0;font-size:.9rem}.sound{aspect-ratio:4/3;border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.75rem;font-size:1rem;font-weight:650;transition:transform 80ms ease-out,box-shadow .15s;display:flex;position:relative;overflow:hidden}.sound:active{transform:scale(.96)}.sound-name{overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sound.is-playing{box-shadow:0 0 0 3px var(--bg), 0 0 0 6px var(--text)}.sound-progress{opacity:.75;transform-origin:0;background:currentColor;width:100%;height:5px;position:absolute;bottom:0;left:0}.sound.is-loading{opacity:.55;cursor:progress}.sound-status{opacity:.85;font-size:.75rem;font-weight:500}.sound.is-editing{cursor:grab}.sound-edit-icon{opacity:.8;font-size:.9rem;position:absolute;top:.4rem;right:.55rem}.sound.drop-before:before{content:"";background:var(--text);border-radius:3px;width:5px;position:absolute;top:8%;bottom:8%;left:0}.sound-add{border:2px dashed var(--border);box-shadow:none;color:var(--muted);background:0 0}.sound-add span:first-child{font-size:1.6rem;line-height:1}.empty{border:2px dashed var(--border);text-align:center;border-radius:20px;justify-items:center;gap:.75rem;margin-top:8vh;padding:2.5rem 1.5rem;display:grid}.empty.is-drop-target{border-color:var(--accent)}.empty p{max-width:28rem;color:var(--muted);margin:0}.empty-icon{font-size:2.5rem}.empty-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem;display:flex}.modal{border:1px solid var(--border);background:var(--surface);width:min(480px,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);border-radius:18px;padding:0;box-shadow:0 20px 60px #00000073}.modal::backdrop{background:#0000008c}.modal-body{padding:1.25rem}.modal-body h2{margin-bottom:1rem;font-size:1.2rem}.form{gap:1rem;display:grid}.field{gap:.35rem;display:grid}.field>span,.field>label{color:var(--muted);font-size:.875rem;font-weight:600}.field input:not([type=color]),.field select{border:1px solid var(--border);background:var(--bg);border-radius:10px;width:100%;min-height:42px;padding:.5rem .7rem}.field input[type=file]{padding:.45rem}.link-row{gap:.5rem;display:flex}.link-row input{flex:1;min-width:0}.audio-source{overflow-wrap:anywhere;margin:0;font-size:.875rem}.preview{width:100%;height:40px}.form-actions{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.spacer{flex:1}.error{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger);border-radius:10px;margin:0;padding:.6rem .8rem;font-size:.9rem}.notice{background:color-mix(in srgb, var(--warn) 15%, transparent);border-radius:10px;margin:0;padding:.6rem .8rem;font-size:.9rem}.color-picker{flex-wrap:wrap;gap:.45rem;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:34px;height:34px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #00000026}.swatch[aria-checked=true],.swatch-custom.is-selected{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}.swatch-custom{border:2px dashed var(--border);place-items:center;display:grid;overflow:hidden}.swatch-custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.swatch-custom-preview{width:100%;height:100%;color:var(--muted);pointer-events:none;place-items:center;font-weight:700;display:grid}.swatch-custom.is-selected .swatch-custom-preview{color:#0000}.login{place-items:center;min-height:100dvh;padding:1rem;display:grid}.login-card{border:1px solid var(--border);background:var(--surface);width:min(380px,100%);box-shadow:var(--shadow);border-radius:20px;gap:1rem;padding:1.75rem;display:grid}.login-card img{border-radius:14px;justify-self:center}.login-card h1{text-align:center;font-size:1.5rem}.tabs{background:var(--surface-2);border-radius:12px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.tabs button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;font-weight:600}.tabs button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.toast,.update-notice{left:50%;bottom:max(1rem, env(safe-area-inset-bottom));z-index:20;border:1px solid var(--border);background:var(--surface);width:max-content;max-width:calc(100vw - 2rem);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex;position:fixed;transform:translate(-50%)}.update-notice{bottom:calc(max(1rem, env(safe-area-inset-bottom)) + 4rem)}.loading{place-items:center;min-height:100dvh;display:grid}.loading:after{content:"";border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
