:root{--so-tabbar-height:56px;--so-actionbar-height:76px}.so-shell{min-height:100dvh}.so-shell [hidden]{display:none!important}.so-shell[data-tabbar=on]{padding-bottom:calc(var(--so-tabbar-height) + env(safe-area-inset-bottom))}.so-shell[data-tabbar=on] .osl-toast-region{bottom:calc(var(--so-tabbar-height) + env(safe-area-inset-bottom));padding-bottom:var(--space-3)}.so-shell[data-actionbar=on] .osl-toast-region,.so-has-actionbar .osl-toast-region{bottom:calc(var(--so-tabbar-height) + var(--so-actionbar-height) + env(safe-area-inset-bottom))}.so-page{gap:var(--space-4);padding-top:var(--space-4);flex-direction:column;display:flex}.so-page--narrow{max-width:calc(440px + 2 * var(--gutter))}.so-tabbar{z-index:30;background:color-mix(in srgb, var(--color-paper) 94%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);border-top:1px solid var(--color-hairline);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.so-tabbar__row{max-width:calc(var(--max-content-width) + 2 * var(--gutter));padding-inline:max(var(--space-2), env(safe-area-inset-left)) max(var(--space-2), env(safe-area-inset-right));grid-template-columns:repeat(5,minmax(0,1fr));margin-inline:auto;display:grid}.so-tab{min-height:var(--so-tabbar-height);color:var(--color-muted);letter-spacing:.1px;-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.so-tab[aria-current=page]{color:var(--color-leaf)}.so-tab svg{width:24px;height:24px}.so-actionbar{left:0;right:0;bottom:calc(var(--so-tabbar-height) + env(safe-area-inset-bottom));z-index:25;background:color-mix(in srgb, var(--color-paper) 94%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);border-top:1px solid var(--color-hairline);position:fixed}.so-actionbar__inner{gap:var(--space-3);max-width:calc(var(--max-content-width) + 2 * var(--gutter));padding:var(--space-3) max(var(--gutter), env(safe-area-inset-right)) var(--space-3) max(var(--gutter), env(safe-area-inset-left));margin-inline:auto;display:flex}.so-actionbar-spacer{height:var(--so-actionbar-height);flex:none}.so-muted{color:var(--color-muted)}.so-small{font-size:var(--type-footnote-size);line-height:var(--type-footnote-line)}.so-sub{font-size:var(--type-subheadline-size);line-height:var(--type-subheadline-line)}.so-large-title{font-family:var(--font-rounded);font-size:var(--type-large-title-size);line-height:var(--type-large-title-line);letter-spacing:-.6px;font-weight:800}.so-section-title{font-family:var(--font-rounded);font-size:var(--type-title3-size);line-height:var(--type-title3-line);margin-top:var(--space-2);font-weight:700}.so-eyebrow{font-size:var(--type-footnote-size);color:var(--color-muted);text-transform:none;font-weight:600}.so-mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--type-footnote-size);overflow-wrap:anywhere}.so-pre{white-space:pre-wrap;overflow-wrap:anywhere}.so-card{gap:var(--space-3);padding:var(--space-4);background:var(--color-card);border:1px solid var(--color-hairline);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.so-card--tight{gap:var(--space-2);padding:var(--space-3)}.so-card__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.so-card__title{font-size:var(--type-headline-size);line-height:var(--type-headline-line);font-weight:var(--type-headline-weight)}.so-divider{background:var(--color-hairline);border:0;height:1px;margin:0}.so-list{gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.so-row{align-items:center;gap:var(--space-3);min-height:100px;padding:var(--space-3);background:var(--color-card);border:1px solid var(--color-hairline);border-radius:var(--radius-card);color:inherit;box-shadow:var(--shadow-card);-webkit-tap-highlight-color:transparent;text-decoration:none;display:flex}a.so-row:active{opacity:.85}.so-row--compact{min-height:76px}.so-row__body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.so-row__title{font-size:var(--type-headline-size);line-height:var(--type-headline-line);font-weight:var(--type-headline-weight);overflow-wrap:anywhere}.so-row__meta{font-size:var(--type-subheadline-size);line-height:var(--type-subheadline-line);color:var(--color-muted)}.so-row__pills{flex-wrap:wrap;gap:6px;display:flex}.so-chevron{color:var(--color-muted);flex:none;font-size:22px;line-height:1}.so-thumb{background:var(--color-hairline);object-fit:cover;border-radius:14px;flex:none;width:76px;height:76px;overflow:hidden}.so-batch{background:var(--color-card);border:1px solid var(--color-hairline);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.so-batch>.so-row{box-shadow:none;border:0;border-radius:0}.so-sharebar{border-top:1px solid var(--color-hairline);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.so-sharebar button,.so-sharebar a{min-height:44px;padding:0 var(--space-2);color:var(--color-leaf);font-size:var(--type-subheadline-size);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.so-sharebar>*+*{border-left:1px solid var(--color-hairline)}.so-sharebar button:disabled{color:var(--color-muted)}.so-field .osl-field__input{font-family:var(--font-text);font-size:var(--type-body-size);font-weight:400}.so-field__prefix{color:var(--color-muted);font-size:var(--type-body-size);white-space:nowrap;text-overflow:ellipsis;flex:none;max-width:55%;overflow:hidden}.so-hint[data-tone=good]{color:var(--color-good)}.so-hint[data-tone=alert]{color:var(--color-alert)}.so-textarea{width:100%;min-height:96px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-card);font-size:var(--type-body-size);line-height:var(--type-body-line);resize:vertical}.so-textarea:focus{border-color:var(--color-leaf);box-shadow:0 0 0 1px var(--color-leaf);outline:0}.so-readonly{min-height:var(--control-field-height);padding:0 var(--space-4);border:1px dashed var(--color-hairline);border-radius:var(--radius-sm);color:var(--color-ink);overflow-wrap:anywhere;align-items:center;font-weight:600;display:flex}.so-group{background:var(--color-card);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);flex-direction:column;display:flex}.so-group__inset{padding:0 var(--space-4) var(--space-4)}.so-group__text{padding:var(--space-3) var(--space-4);font-size:var(--type-subheadline-size)}.so-switch-row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4);display:flex}.so-switch-row__label{min-height:44px;font-size:var(--type-body-size);cursor:pointer;flex-direction:column;flex:1;justify-content:center;gap:2px;display:flex}.so-switch-row__hint{font-size:var(--type-footnote-size);line-height:var(--type-footnote-line);color:var(--color-muted)}.so-switch{appearance:none;background:var(--color-hairline);cursor:pointer;width:51px;height:31px;transition:background-color var(--motion-fast);border-radius:999px;flex:none;margin:0;position:relative}.so-switch:before{content:"";width:27px;height:27px;transition:transform var(--motion-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.so-switch:checked{background:var(--color-good)}.so-switch:checked:before{transform:translate(20px)}.so-switch:disabled{opacity:.45}.so-switch:after{content:"";position:absolute;inset:-7px -4px}.so-segmented{background:var(--color-hairline);border-radius:12px;gap:2px;padding:2px;display:grid}.so-seg{min-height:44px;padding:0 var(--space-2);color:var(--color-ink);font-size:var(--type-subheadline-size);white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.so-seg[aria-current=page],.so-seg[aria-checked=true]{background:var(--color-card);box-shadow:0 1px 3px #080f1c1f}.so-seg__badge{background:var(--color-forest);min-width:20px;height:20px;color:var(--color-sprout);font-family:var(--font-rounded);text-align:center;border-radius:999px;padding:0 6px;font-size:12px;font-weight:800;line-height:20px}.so-notice{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-hairline);color:var(--color-ink);font-size:var(--type-subheadline-size);line-height:var(--type-subheadline-line);display:flex}.so-notice__text{flex:1;min-width:0}.so-notice__action{flex:none}.so-notice[data-tone=good]{background:var(--color-good-fill);color:var(--color-good)}.so-notice[data-tone=caution]{background:var(--color-caution-fill);color:var(--color-caution)}.so-notice[data-tone=alert]{background:var(--color-alert-fill);color:var(--color-alert)}.so-notice ul{margin:4px 0 0;padding-left:18px}.so-skeleton{border-radius:var(--radius-card);background:linear-gradient(90deg, var(--color-hairline) 0%, color-mix(in srgb, var(--color-hairline) 55%, var(--color-card)) 50%, var(--color-hairline) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite so-shimmer}.so-skeleton--title{border-radius:10px;width:60%;height:34px}.so-skeleton--row{height:100px}.so-skeleton--block{height:180px}@keyframes so-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.so-confirm{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-card);border:1px solid var(--color-hairline);background:var(--color-card);flex-direction:column;display:flex}.so-confirm[data-tone=alert]{border-color:color-mix(in srgb, var(--color-alert) 45%, var(--color-hairline));background:var(--color-alert-fill)}.so-confirm__title{font-weight:700}.so-buttons{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.so-preview{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-paper);border:1px solid var(--color-hairline);flex-direction:column;display:flex}.so-preview__title{font-size:var(--type-footnote-size);color:var(--color-muted);font-weight:700}.so-preview .osl-policy{color:var(--color-ink)}.so-steps{gap:6px;padding:0;list-style:none;display:flex}.so-steps li{background:var(--color-hairline);border-radius:2px;flex:1;height:4px}.so-steps li[data-done=true]{background:var(--color-leaf)}.so-code{width:100%;min-height:64px;padding:0 var(--space-4);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-card);font-family:var(--font-rounded);letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.so-code:focus{border-color:var(--color-leaf);box-shadow:0 0 0 1px var(--color-leaf);outline:0}.so-code[aria-invalid=true]{border-color:var(--color-alert);box-shadow:0 0 0 1px var(--color-alert)}.so-group-label{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-family:var(--font-rounded);font-size:var(--type-headline-size);font-weight:800;display:flex}.so-group-label__dot{background:var(--color-leaf);border-radius:50%;width:12px;height:12px}.so-piece{align-items:center;gap:var(--space-3);min-height:88px;padding:var(--space-2) var(--space-3);background:var(--color-card);border:1px solid var(--color-hairline);border-radius:var(--radius-card);cursor:pointer;-webkit-tap-highlight-color:transparent;display:flex}.so-piece[data-picked=true]{border-color:color-mix(in srgb, var(--color-good) 55%, var(--color-hairline));background:color-mix(in srgb, var(--color-good-fill) 55%, var(--color-card))}.so-piece[data-refunded=true]{opacity:.6;cursor:default}.so-piece__media{background:var(--color-hairline);border-radius:12px;flex:none;width:72px;height:72px;position:relative;overflow:hidden}.so-piece__media img{object-fit:cover;width:100%;height:100%}.so-piece__media .osl-badge{--osl-badge-size:24px;position:absolute;top:4px;left:4px}.so-piece__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.so-piece__label{font-family:var(--font-rounded);font-size:var(--type-headline-size);font-variant-numeric:tabular-nums;font-weight:800}.so-piece__title{font-size:var(--type-subheadline-size);color:var(--color-muted);overflow-wrap:anywhere}.so-piece__price{font-family:var(--font-rounded);font-weight:700}.so-check{appearance:none;border:2px solid var(--color-muted);background:var(--color-card);cursor:pointer;border-radius:9px;flex:none;width:30px;height:30px;margin:7px;position:relative}.so-check:checked{border-color:var(--color-good);background:var(--color-good)}.so-check:checked:before{content:"";border:solid var(--color-card);border-width:0 3px 3px 0;width:8px;height:15px;position:absolute;top:3px;left:8px;transform:rotate(45deg)}.so-check:disabled{opacity:.5}.so-layout{border-radius:var(--radius-card);background:var(--color-hairline);width:100%;position:relative;overflow:hidden;container-type:inline-size}.so-layout__img{object-fit:cover;width:100%;height:100%;display:block}.so-layout__shade{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.so-kv{gap:6px var(--space-3);font-size:var(--type-subheadline-size);grid-template-columns:1fr auto;margin:0;display:grid}.so-kv dt{color:var(--color-muted)}.so-kv dd{text-align:right;font-family:var(--font-rounded);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.so-meter{background:var(--color-hairline);border-radius:4px;height:8px;overflow:hidden}.so-meter>span{background:var(--color-leaf);border-radius:4px;height:100%;display:block}.so-meter[data-tone=alert]>span{background:var(--color-alert)}.so-choice{align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-card);cursor:pointer;display:flex}.so-choice:has(input:checked){border-color:var(--color-leaf);box-shadow:0 0 0 1px var(--color-leaf)}.so-choice input[type=radio],.so-choice input[type=checkbox]{width:22px;height:22px;accent-color:var(--color-leaf);flex:none;margin:0}.so-choice__body{flex-direction:column;flex:1;min-width:0;display:flex}.so-choice__amount{font-family:var(--font-rounded);font-variant-numeric:tabular-nums;font-weight:700}.so-total{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--color-hairline);display:flex}.so-total__amount{font-family:var(--font-rounded);font-size:var(--type-price-large-size);line-height:var(--type-price-large-line);font-weight:var(--type-price-large-weight);font-variant-numeric:tabular-nums}.so-avatar{align-items:center;gap:var(--space-4);display:flex}.so-avatar__img{object-fit:cover;background:var(--color-hairline);width:72px;height:72px;font-family:var(--font-rounded);color:var(--color-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:28px;font-weight:800;display:flex}.so-file{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.so-links{flex-direction:column;padding:0;list-style:none;display:flex}.so-links a{min-height:48px;color:var(--color-ink);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.so-links li+li{border-top:1px solid var(--color-hairline)}@media (min-width:768px){.so-page{padding-top:var(--space-6)}}.so-draftbar{gap:var(--space-2);border-top:1px solid var(--color-hairline);flex-direction:column;display:flex}.so-draftbar>button{min-height:44px;padding:0 var(--space-3);color:var(--color-alert);font-size:var(--type-subheadline-size);background:0 0;border:0;font-weight:600}.so-draftbar--confirm{padding:var(--space-3)}.so-draftbar--confirm p{font-size:var(--type-subheadline-size);line-height:var(--type-subheadline-line)}.so-draftbar__buttons{gap:var(--space-3);display:flex}.so-draftbar__buttons>*{flex:1}
