@keyframes ds-fade-in{0%{opacity:0}}@keyframes ds-fade-out{to{opacity:0}}@keyframes ds-sheet-in{0%{transform:translateY(calc(100% + var(--space-8)))}}@keyframes ds-sheet-out{0%{transform:translateY(var(--ds-from,var(--ds-y)))}to{transform:translateY(calc(100% + var(--space-8)))}}@keyframes ds-pop-in{0%{opacity:0;transform:translateY(var(--space-4)) scale(.97)}}@keyframes ds-pop-out{to{opacity:0;transform:translateY(var(--space-2)) scale(.98)}}@keyframes ds-side-in{0%{transform:translate(100%)}}@keyframes ds-side-out{to{transform:translate(100%)}}@keyframes ds-menu-in{0%{opacity:0;transform:scale(.96)}}@keyframes ds-toast-in{0%{opacity:0;transform:translateY(var(--space-3)) scale(.96)}}.ds-icon-btn{justify-content:center;align-items:center;gap:var(--space-1);min-width:var(--target);min-height:var(--target);padding:0 var(--space-2);border-radius:var(--radius-capsule);color:var(--accent);font:inherit;font-weight:var(--weight-medium);cursor:pointer;touch-action:manipulation;transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-quick) var(--ease-out);background:0 0;border:0;display:inline-flex}.ds-icon-btn:active{transform:scale(var(--press-scale));background:var(--fill-press)}.ds-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ds-icon-btn svg{width:var(--space-6);height:var(--space-6)}.ds-muted{color:var(--ink-2)}.ds-num{font-variant-numeric:tabular-nums}.ds-scrim{z-index:60;background:var(--scrim);animation:ds-fade-in var(--dur-sheet) var(--ease-out) backwards;position:fixed;inset:0}.ds-scrim[data-closing]{animation:ds-fade-out var(--dur-exit) var(--ease-out) forwards}.ds-sheet{--ds-top:calc(env(safe-area-inset-top) + var(--space-2));--ds-bottom:max(var(--space-2), env(safe-area-inset-bottom));--ds-offset:calc(100dvh - var(--ds-top) - var(--ds-bottom) - 50dvh);--ds-y:0px;z-index:61;left:var(--space-2);right:var(--space-2);top:var(--ds-top);bottom:var(--ds-bottom);color:var(--ink);background:var(--surface);border-radius:var(--radius-sheet);box-shadow:var(--shadow-3);transform:translateY(var(--ds-y));transition:transform var(--dur-sheet) var(--ease-spring);animation:ds-sheet-in var(--dur-sheet) var(--ease-spring) backwards;outline:none;flex-direction:column;display:flex;position:fixed;overflow:hidden}.ds-sheet[data-detent=half]{--ds-y:var(--ds-offset)}.ds-sheet[data-dragging]{transition:none}.ds-sheet[data-closing]{animation:ds-sheet-out var(--dur-exit) var(--ease-out) forwards}.ds-sheet-bar{z-index:1;align-items:center;gap:var(--space-2);min-height:calc(var(--target) + var(--space-4));padding:var(--space-4) var(--space-2) 0;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:inset 0 calc(var(--hairline-w) * -1) 0 var(--glass-edge);flex:none;grid-template-columns:1fr auto 1fr;display:grid;position:relative}.ds-sheet-grab{width:var(--target);height:var(--space-4);margin-left:calc(var(--target) / -2);cursor:grab;background:0 0;border:0;padding:0;position:absolute;top:0;left:50%}.ds-sheet-grab:before{content:"";top:var(--space-2);width:var(--space-8);height:var(--space-1);margin-left:calc(var(--space-8) / -2);border-radius:var(--radius-capsule);background:var(--ink-3);position:absolute;left:50%}.ds-sheet-grab:after{content:"";inset:0 0 calc(var(--space-3) * -1);position:absolute}.ds-sheet-title{font-size:var(--text-headline);font-weight:var(--weight-semibold);text-align:center;line-height:var(--leading-tight);overflow-wrap:anywhere;min-width:0;margin:0}.ds-sheet-lead{justify-self:start}.ds-sheet-trail{justify-self:end}.ds-sheet-body{overscroll-behavior:contain;background:var(--surface);min-height:0;padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--ds-pad,0px));flex:1;overflow-y:auto}.ds-sheet[data-detent=half] .ds-sheet-body{--ds-pad:var(--ds-offset)}@media (min-width:1024px){.ds-sheet{--ds-y:0px;--ds-pad:0px;width:min(560px, calc(100vw - var(--space-16)));height:fit-content;max-height:min(80dvh,720px);animation-name:ds-pop-in;animation-timing-function:var(--ease-out);margin:auto;transition:none;inset:0;transform:none}.ds-sheet[data-detent=half]{--ds-y:0px}.ds-sheet[data-closing]{animation-name:ds-pop-out}.ds-sheet[data-detent=half] .ds-sheet-body{--ds-pad:0px}.ds-sheet[data-side]{border-radius:var(--radius-sheet) 0 0 var(--radius-sheet);width:min(420px,100vw);height:auto;max-height:none;animation-name:ds-side-in;animation-timing-function:var(--ease-spring);margin:0;inset:0 0 0 auto}.ds-sheet[data-side][data-closing]{animation-name:ds-side-out;animation-timing-function:var(--ease-out)}.ds-sheet-grab{display:none}.ds-sheet-bar{padding-top:var(--space-2);min-height:calc(var(--target) + var(--space-2));touch-action:auto}}.ds-cm{-webkit-touch-callout:none;position:relative}.ds-cm-menu{z-index:70;min-width:12rem;max-width:calc(100vw - var(--space-4));max-height:calc(100dvh - var(--space-4));padding:var(--space-1);border-radius:var(--radius-list);background:var(--surface);box-shadow:var(--shadow-hairline-3);animation:ds-menu-in var(--dur-quick) var(--ease-out) backwards;transform-origin:0 0;outline:none;position:fixed;overflow-y:auto}.ds-cm-item{align-items:center;gap:var(--space-3);width:100%;min-height:var(--target);padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--ink);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;display:flex}.ds-cm-item svg{width:var(--space-5);height:var(--space-5);flex:none}.ds-cm-item:focus-visible,.ds-cm-item:active{background:var(--fill-press);outline:none}.ds-cm-item[data-destructive]{color:var(--danger)}.ds-cm-item[aria-disabled=true]{opacity:.4;cursor:not-allowed}@media (hover:hover) and (pointer:fine){.ds-cm-item:hover:not([aria-disabled=true]){background:var(--fill-press)}}.ds-toolbar{align-items:center;gap:var(--space-2);min-height:var(--nav-h);padding:0 var(--space-2);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--radius-capsule);box-shadow:var(--shadow-edge-2);grid-template-columns:1fr auto 1fr;display:grid}.ds-toolbar-group{align-items:center;gap:var(--space-1);min-width:0;display:flex}.ds-toolbar-group[data-end]{justify-content:flex-end}.ds-toolbar-title{font-size:var(--text-headline);font-weight:var(--weight-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.ds-toolbar .btn{white-space:nowrap}.ds-toast-host{z-index:80;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--space-5) + env(safe-area-inset-bottom));padding:0 var(--space-4);pointer-events:none;justify-content:center;display:flex;position:fixed}.ds-toast{pointer-events:auto;align-items:center;gap:var(--space-2);max-width:min(32rem,100%);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-5);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--radius-capsule);box-shadow:var(--shadow-edge-3);color:var(--ink);animation:ds-toast-in var(--dur-sheet) var(--ease-spring) backwards;display:flex}.ds-toast-msg{min-width:0;font-weight:var(--weight-medium);flex:1}.ds-field{display:block}.ds-field-label{margin-bottom:var(--space-2);font-weight:var(--weight-semibold);display:block}.ds-field-hint{margin:var(--space-2) 0 0;font-size:var(--text-subhead);color:var(--ink-2)}.ds-field-error{margin:var(--space-2) 0 0;gap:var(--space-2);font-size:var(--text-subhead);font-weight:var(--weight-medium);color:var(--danger);align-items:flex-start;display:flex}.ds-field-error svg{width:var(--space-5);height:var(--space-5);flex:none}.ds-field input[aria-invalid=true]{box-shadow:0 0 0 var(--ring-w) var(--danger)}.ds-chips{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.ds-chip{min-height:var(--target);padding:0 var(--space-4);border-radius:var(--radius-capsule);background:var(--accent-dim);color:var(--accent);font:inherit;font-weight:var(--weight-medium);cursor:pointer;touch-action:manipulation;transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-quick) var(--ease-out);border:0;align-items:center;display:inline-flex}.ds-chip:active{transform:scale(var(--press-scale))}.ds-chip[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.ds-rows{margin:var(--space-2) 0 0;border-radius:var(--radius-list);background:var(--surface-2);padding:0;list-style:none;overflow:hidden}.ds-row{align-items:center;gap:var(--space-3);min-height:calc(var(--target) + var(--space-2));padding:var(--space-2) var(--space-4);cursor:pointer;display:flex;position:relative}.ds-rows>li+li{box-shadow:inset 0 var(--hairline-w) 0 var(--separator)}.ds-row input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.ds-row:has(input:checked){background:var(--accent-dim)}.ds-row:has(input:focus-visible){outline:3px solid var(--focus-ring);outline-offset:-3px}.ds-row-main{flex:1;min-width:0}.ds-row-title{font-weight:var(--weight-medium);overflow-wrap:anywhere;display:block}.ds-row-note{font-size:var(--text-subhead);color:var(--ink-2);display:block}.ds-row-mark{width:var(--space-6);height:var(--space-6);color:var(--accent);flex:none}.ds-row-mark svg{width:100%;height:100%}.ds-hymn-num{min-width:var(--space-11);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;text-align:right;flex:none}.ds-tag{padding:0 var(--space-2);border-radius:var(--radius-capsule);background:var(--accent-dim);color:var(--accent);font-size:var(--text-caption);font-weight:var(--weight-semibold);align-items:center;display:inline-flex}.ds-group-label{margin:var(--space-5) 0 0;padding:0 var(--space-4);font-size:var(--text-subhead);font-weight:var(--weight-semibold);color:var(--ink-2)}.ds-add{gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-list);background:var(--surface-2);display:grid}.ds-add-pair{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.ds-count{margin:var(--space-2) 0 0;font-size:var(--text-footnote);color:var(--ink-2)}@media (prefers-reduced-motion:reduce){.ds-sheet,.ds-sheet[data-side],.ds-sheet[data-closing],.ds-sheet[data-side][data-closing]{transition:none;animation-name:ds-fade-in}.ds-sheet[data-closing],.ds-sheet[data-side][data-closing]{animation-name:ds-fade-out}.ds-sheet,.ds-scrim,.ds-cm-menu,.ds-toast{animation-duration:var(--dur-quick)!important}}
