.ui-btn{font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.ui-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.6;cursor:not-allowed}.ui-btn--primary{background:var(--accent);color:#fff}.ui-btn--primary:not(:disabled):hover{background:var(--accent2);box-shadow:0 0 0 3px var(--accent-glow)}.ui-btn--dark{background:var(--ink);color:#fff}.ui-btn--dark:not(:disabled):hover{background:var(--ink2)}.ui-btn--secondary{background:var(--bg2);color:var(--ink)}.ui-btn--secondary:not(:disabled):hover{background:var(--bg3)}.ui-btn--outline{border-color:var(--line);color:var(--ink);background:0 0}.ui-btn--outline:not(:disabled):hover{background:var(--bg2)}.ui-btn--outline.ui-btn--accent{border-color:var(--accent);color:var(--accent)}.ui-btn--outline.ui-btn--accent:not(:disabled):hover{background:var(--accent-light)}.ui-btn--ghost{color:var(--ink2);background:0 0}.ui-btn--ghost:not(:disabled):hover{background:var(--bg2);color:var(--ink)}.ui-btn--danger{background:var(--red);color:#fff}.ui-btn--danger:not(:disabled):hover{box-shadow:0 0 0 3px var(--red-light)}.ui-btn--outline.ui-btn--tone-danger{border-color:var(--red);color:var(--red)}.ui-btn--outline.ui-btn--tone-danger:not(:disabled):hover{background:var(--red-light)}.ui-btn--link{color:var(--accent);background:0 0;border-radius:0;padding:0;font-weight:500;text-decoration:underline}.ui-btn--link:not(:disabled):hover{color:var(--accent2)}.ui-btn--dashed{border:1px dashed var(--line);color:var(--ink2);background:0 0}.ui-btn--dashed:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.ui-btn.ui-btn--pressed,.ui-btn.ui-btn--pressed:not(:disabled):hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.ui-btn--sm{border-radius:6px;padding:6px 12px;font-size:13px}.ui-btn--lg{border-radius:10px;padding:13px 24px;font-size:15px}.ui-btn--block{width:100%;display:flex}.ui-btn--pill{border-radius:999px}.ui-btn--icon{gap:0;padding:8px}.ui-btn--icon.ui-btn--sm{padding:5px}.ui-btn--icon.ui-btn--lg{padding:11px}.ui-btn__icon{flex-shrink:0;display:inline-flex}.ui-spinner{flex-shrink:0;animation:.8s linear infinite spin;display:inline-block}.ui-spinner--ring{box-sizing:border-box;border:2.5px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;animation-duration:.6s}.ui-spinner--muted{color:var(--ink3)}.ui-spinner--accent{color:var(--accent)}.ui-spinner--inverse{color:#fff}.ui-spinner--ring.ui-spinner--accent{border-color:var(--line);border-top-color:var(--accent)}.ui-empty{color:var(--ink3);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;font-size:14px;line-height:1.55;display:flex}.ui-empty--start{text-align:left;align-items:flex-start}.ui-empty--sm{gap:6px;padding:16px 12px;font-size:13px}.ui-empty--boxed{border:1px dashed var(--line-strong);background:var(--bg);border-radius:12px}.ui-empty__icon{color:var(--ink3);display:inline-flex}.ui-empty__title{color:var(--ink2);margin:0;font-weight:500}.ui-empty:has(.ui-empty__desc) .ui-empty__title{font-weight:600}.ui-empty__desc{max-width:48ch;margin:0}.ui-empty__action{margin-top:6px}.ui-pick-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.ui-pick-tile{aspect-ratio:9/16;border:2px solid var(--line);background:var(--bg2);cursor:pointer;border-radius:12px;padding:0;position:relative;overflow:hidden}.ui-pick-tile img,.ui-pick-tile-empty{object-fit:cover;width:100%;height:100%;display:block}.ui-pick-tile.is-on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.ui-pick-tile:disabled{opacity:.45;cursor:not-allowed}.ui-pick-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-pick-tile-check{width:22px;height:22px;color:var(--accent-ink);border:1px solid var(--line);background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;right:6px}.ui-pick-tile.is-on .ui-pick-tile-check{background:var(--accent);color:#fff;border-color:var(--accent)}.ui-pick-tile-label{color:#fff;text-shadow:0 1px 2px #0009;white-space:nowrap;text-overflow:ellipsis;text-align:left;font-size:10.5px;font-weight:800;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}