.ui-btn{font-family:var(--font-display,"Fredoka", "Nunito", system-ui, sans-serif);font-weight:min(600 + var(--font-display-boost,0), 800);cursor:pointer;white-space:nowrap;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;line-height:1;text-decoration:none;transition:transform .12s,background-color .12s,border-color .12s,color .12s;display:inline-flex}.ui-btn:active:not(:disabled){transform:translateY(1px)}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.ui-btn svg{flex-shrink:0}.ui-btn--primary{background:var(--brand-fill);color:var(--on-brand);box-shadow:0 3px 0 var(--brand-fill-edge)}.ui-btn--primary:hover:not(:disabled){background:var(--brand-fill-hover);color:var(--on-brand)}.ui-btn--secondary{background:var(--surface-raised);color:var(--ink);border-color:var(--line-strong)}.ui-btn--secondary:hover:not(:disabled){border-color:var(--ink-muted);color:var(--ink)}.ui-btn--ghost{color:var(--ink);background:0 0}.ui-btn--ghost:hover:not(:disabled){background:var(--bg-soft);color:var(--ink)}.ui-btn--danger{color:var(--danger);border-color:var(--danger);background:0 0}.ui-btn--danger:hover:not(:disabled){background:var(--danger);color:var(--on-brand)}.ui-btn--size-sm{padding:.45rem .9rem;font-size:.9rem}.ui-btn--size-md{padding:.7rem 1.3rem;font-size:1rem}.ui-btn--size-lg{padding:.95rem 1.7rem;font-size:1.1rem}.ui-btn--size-xl{gap:.75rem;padding:1.15rem 2.6rem;font-size:1.45rem}.ui-btn--size-icon{border-radius:999px;padding:.5rem}@media (pointer:coarse){.ui-btn--size-sm{min-height:2.5rem}.ui-btn--size-icon{min-width:2.5rem;min-height:2.5rem}}.ui-badge{letter-spacing:.02em;white-space:nowrap;border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink-muted);border-radius:999px;align-items:center;gap:.3em;padding:.15em .6em;font-family:Pixelify Sans,Fredoka,monospace;font-size:.78rem;line-height:1.5;display:inline-flex}.ui-badge--brand{background:var(--brand-soft);color:var(--brand-ink);border-color:#0000}.ui-badge--leaf{background:color-mix(in srgb, var(--leaf) 18%, transparent);color:var(--leaf-strong);border-color:#0000}.ui-badge--sky{background:color-mix(in srgb, var(--sky) 20%, transparent);color:var(--ink);border-color:#0000}.ui-badge--plum{background:color-mix(in srgb, var(--plum) 22%, transparent);color:var(--ink);border-color:#0000}.link-button{color:var(--brand-text);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.link-button:hover:not(:disabled){color:var(--brand-ink)}.link-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.link-button:disabled{opacity:.55;cursor:not-allowed}.ui-field{flex-direction:column;gap:.25rem;display:flex}.ui-field__label{font-size:.95rem;font-weight:700}.ui-field__hint{color:var(--ink-muted);text-wrap:pretty;font-size:.85rem}.ui-field__error{color:var(--danger);text-wrap:pretty;font-size:.88rem;font-weight:600}.ui-input{border:2px solid var(--line-input);background:var(--surface-raised);width:100%;color:var(--ink);border-radius:14px;padding:.65rem .85rem;transition:border-color .12s}.ui-input:hover{border-color:var(--ink-muted)}.ui-input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 25%, transparent);outline:none}.ui-input[aria-invalid=true]{border-color:var(--danger)}.ui-input::placeholder{color:var(--ink-muted);opacity:.8}textarea.ui-input{resize:vertical;min-height:6rem;line-height:1.5}.ui-check{cursor:pointer;text-wrap:pretty;align-items:flex-start;gap:.5rem;display:inline-flex}.ui-check>input[type=checkbox]{margin-top:.175rem;margin-top:calc(.5lh - .625rem)}.ui-dialog-overlay{z-index:50;background:var(--overlay);animation:.15s ui-fade;position:fixed;inset:0}.ui-dialog-content{z-index:51;background:var(--surface);border:1px solid var(--line);width:min(92vw,520px);max-height:88vh;box-shadow:var(--shadow-md);border-radius:22px;padding:1.5rem;animation:.16s ui-pop;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.ui-dialog-content--wide{width:min(96vw,1200px);padding:.75rem}.ui-dialog-content h2{font-size:1.35rem}.ui-dialog-content--closable>h2{padding-right:2.75rem}.ui-dialog-close{position:absolute;top:.75rem;right:.75rem}.ui-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.ui-spinner{vertical-align:-.15em;border:2.5px solid;border-right-color:#0000;border-radius:50%;width:1.1em;height:1.1em;animation:.7s linear infinite ui-spin;display:inline-block}@keyframes ui-spin{to{transform:rotate(360deg)}}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-pop{0%{opacity:0;transform:translate(-50%,-48%)scale(.97)}}
