.badge[data-v-31d0ce63]{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.6;white-space:nowrap}.badge--struck[data-v-31d0ce63]{text-decoration:line-through}.badge--outline[data-v-31d0ce63]{background:transparent;border:1px solid currentColor}.badge--neutral[data-v-31d0ce63]{color:var(--badge-neutral-fg)}.badge--neutral.badge--solid[data-v-31d0ce63]{background:var(--badge-neutral-bg)}.badge--green[data-v-31d0ce63]{color:var(--badge-green-fg)}.badge--green.badge--solid[data-v-31d0ce63]{background:var(--badge-green-bg)}.badge--blue[data-v-31d0ce63]{color:var(--badge-blue-fg)}.badge--blue.badge--solid[data-v-31d0ce63]{background:var(--badge-blue-bg)}.badge--orange[data-v-31d0ce63]{color:var(--badge-orange-fg)}.badge--orange.badge--solid[data-v-31d0ce63]{background:var(--badge-orange-bg)}.badge--red[data-v-31d0ce63]{color:var(--badge-red-fg)}.badge--red.badge--solid[data-v-31d0ce63]{background:var(--badge-red-bg)}.btn[data-v-5276044d]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--space-5);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-bold);line-height:1.2;transition:background-color var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.btn--sm[data-v-5276044d]{padding:0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium)}.btn--block[data-v-5276044d]{display:flex;width:100%}.btn[data-v-5276044d]:disabled{opacity:.45;cursor:not-allowed}.btn--primary[data-v-5276044d]{background:var(--color-action);color:var(--color-action-ink)}.btn--primary[data-v-5276044d]:active:not(:disabled){background:var(--color-action-pressed)}.btn--accent[data-v-5276044d]{background:var(--color-accent);color:var(--color-text-inverse)}.btn--secondary[data-v-5276044d]{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong)}.btn--secondary[data-v-5276044d]:active:not(:disabled){background:var(--tint-pressed)}.btn--ghost[data-v-5276044d]{background:transparent;color:var(--color-text-muted)}.btn--ghost[data-v-5276044d]:active:not(:disabled){background:var(--tint-pressed)}.btn--danger[data-v-5276044d]{background:var(--color-danger);color:var(--color-text-inverse)}.btn__spinner[data-v-5276044d]{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-pill);animation:btn-spin-5276044d .7s linear infinite}@keyframes btn-spin-5276044d{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.btn__spinner[data-v-5276044d]{animation-duration:2s}}.card[data-v-9af64d74]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card)}.card--interactive[data-v-9af64d74]{min-height:var(--tap-min);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.card--interactive[data-v-9af64d74]:active{background:var(--tint-pressed)}.card--highlighted[data-v-9af64d74]{border-color:var(--color-action);box-shadow:0 0 0 1px var(--color-action),var(--shadow-card)}.card--muted[data-v-9af64d74]{background:var(--color-surface-alt);box-shadow:none}.sheet[data-v-b6cc648e]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);display:flex;flex-direction:column;justify-content:flex-end}.sheet__backdrop[data-v-b6cc648e]{position:absolute;top:0;right:0;bottom:0;left:0;background:#15181c73}.sheet__panel[data-v-b6cc648e]{position:relative;max-height:88vh;display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-sheet);padding-bottom:var(--safe-bottom);outline:none}.sheet__header[data-v-b6cc648e]{padding:var(--space-4) var(--gutter) var(--space-2)}.sheet__title[data-v-b6cc648e]{font-size:var(--text-lg)}.sheet__body[data-v-b6cc648e]{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-2) var(--gutter) var(--space-4)}.sheet__footer[data-v-b6cc648e]{display:flex;gap:var(--space-2);padding:var(--space-3) var(--gutter);border-top:1px solid var(--color-border)}.sheet-enter-active[data-v-b6cc648e],.sheet-leave-active[data-v-b6cc648e]{transition:opacity var(--duration-base) var(--ease-out)}.sheet-enter-active .sheet__panel[data-v-b6cc648e],.sheet-leave-active .sheet__panel[data-v-b6cc648e]{transition:transform var(--duration-base) var(--ease-out)}.sheet-enter-from[data-v-b6cc648e],.sheet-leave-to[data-v-b6cc648e]{opacity:0}.sheet-enter-from .sheet__panel[data-v-b6cc648e],.sheet-leave-to .sheet__panel[data-v-b6cc648e]{transform:translateY(12%)}.empty[data-v-d3f181a2]{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center}.empty__icon[data-v-d3f181a2]{color:var(--color-text-muted);opacity:.6}.empty__title[data-v-d3f181a2]{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text)}.empty__description[data-v-d3f181a2]{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed);max-width:22em}.empty__action[data-v-d3f181a2]{margin-top:var(--space-2)}.usage-panel[data-v-e6b9269c]{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.usage-panel__head[data-v-e6b9269c]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.usage-panel__head--sub[data-v-e6b9269c]{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.usage-panel__title[data-v-e6b9269c]{font-size:var(--text-md);font-weight:var(--weight-bold)}.usage-panel__note[data-v-e6b9269c]{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.usage-panel__note--error[data-v-e6b9269c]{color:var(--color-danger)}.usage-panel__error[data-v-e6b9269c]{font-size:var(--text-xs);color:var(--color-danger)}.usage-panel__group[data-v-e6b9269c]{display:flex;flex-direction:column;gap:var(--space-2)}.usage-panel__group-title[data-v-e6b9269c]{font-size:var(--text-sm);color:var(--color-text-muted)}.avail[data-v-e6b9269c]{display:flex;flex-direction:column}.avail__row[data-v-e6b9269c]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.avail__no[data-v-e6b9269c]{margin-left:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs)}.avail__name[data-v-e6b9269c]{min-width:0;font-size:var(--text-sm)}.avail__figures[data-v-e6b9269c]{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-muted)}.avail__registered[data-v-e6b9269c]{color:var(--color-text)}.usages[data-v-e6b9269c]{display:flex;flex-direction:column;gap:var(--space-3)}.usage[data-v-e6b9269c]{display:flex;flex-direction:column;gap:var(--space-1)}.usage__head[data-v-e6b9269c]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.usage__name[data-v-e6b9269c]{font-size:var(--text-sm)}.usage__remove[data-v-e6b9269c]{flex-shrink:0;min-height:var(--tap-min);padding:0 var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.usage__row[data-v-e6b9269c]{display:flex;align-items:center;gap:var(--space-2)}.usage__input[data-v-e6b9269c]{width:6.5em;min-height:var(--tap-min);padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-base);text-align:right}.usage__unit[data-v-e6b9269c],.usage__available[data-v-e6b9269c]{font-size:var(--text-xs);color:var(--color-text-muted)}.usage__available--over[data-v-e6b9269c]{color:var(--color-danger);font-weight:var(--weight-bold)}.picker-groups[data-v-e6b9269c]{display:flex;flex-direction:column;gap:var(--space-4)}.picker-groups__title[data-v-e6b9269c]{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.picker[data-v-e6b9269c]{display:flex;flex-direction:column}.picker__item[data-v-e6b9269c]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-height:var(--tap-min);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);text-align:left}.picker__stock[data-v-e6b9269c]{flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-muted)}.dots[data-v-25d66134]{display:inline-flex;align-items:center;gap:var(--space-1)}.dots__dot[data-v-25d66134]{width:10px;height:10px;border-radius:var(--radius-pill);border:1.5px solid var(--color-border-strong);background:transparent}.dots--sm .dots__dot[data-v-25d66134]{width:8px;height:8px}.dots__dot--shot[data-v-25d66134]{background:var(--color-success);border-color:var(--color-success)}.tabbar[data-v-635474ff]{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-tabbar);display:grid;grid-template-columns:repeat(3,1fr);background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:var(--safe-bottom)}.tabbar__item[data-v-635474ff]{display:flex;align-items:center;justify-content:center;min-height:var(--tap-min);height:var(--bottom-bar-height);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.tabbar__item--active[data-v-635474ff]{color:var(--color-action-text);font-weight:var(--weight-bold);box-shadow:inset 0 2px 0 var(--color-action)}.toasts[data-v-1431fb0e]{position:fixed;top:calc(var(--safe-top) * 2 + var(--header-height) + var(--space-2));left:var(--gutter);right:var(--gutter);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast[data-v-1431fb0e]{pointer-events:auto;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--palette-ink);color:var(--color-text-inverse);box-shadow:var(--shadow-raised);font-size:var(--text-sm)}.toast--success[data-v-1431fb0e]{background:var(--color-success)}.toast--warning[data-v-1431fb0e]{background:var(--color-warning)}.toast--error[data-v-1431fb0e]{background:var(--color-danger)}.toast__message[data-v-1431fb0e]{font-weight:var(--weight-medium);line-height:var(--leading-normal)}.toast__details[data-v-1431fb0e]{margin-top:var(--space-2);padding-left:var(--space-3);display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs);opacity:.92}.toast__details li[data-v-1431fb0e]{list-style:disc}.toast-enter-active[data-v-1431fb0e],.toast-leave-active[data-v-1431fb0e]{transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.toast-enter-from[data-v-1431fb0e],.toast-leave-to[data-v-1431fb0e]{opacity:0;transform:translateY(-8px)}.app[data-v-ce2f3452]{min-height:100%}.app__state[data-v-ce2f3452]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:100vh;padding:var(--space-6);text-align:center}.app__state-title[data-v-ce2f3452]{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-bold)}.app__state-text[data-v-ce2f3452]{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.app__spinner[data-v-ce2f3452]{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-action);border-radius:var(--radius-pill);animation:app-spin-ce2f3452 .8s linear infinite}@keyframes app-spin-ce2f3452{to{transform:rotate(360deg)}}:root{--palette-primary: #1b5fa8;--palette-line-green: #06c755;--palette-sidebar: #1b2128;--palette-ink: #15181c;--palette-success: #166534;--palette-warning: #c2410c;--palette-danger: #dc2626;--palette-watermark: #ffd400;--palette-border: #cfd4da;--palette-muted: #69727d;--palette-surface-alt: #eef1f4;--palette-canvas: #f7f8fa;--palette-white: #ffffff;--tint-primary-soft: rgba(27, 95, 168, .1);--tint-success-soft: rgba(22, 101, 52, .1);--tint-warning-soft: rgba(194, 65, 12, .1);--tint-danger-soft: rgba(220, 38, 38, .1);--tint-muted-soft: rgba(105, 114, 125, .12);--tint-line-green-soft: rgba(6, 199, 85, .12);--tint-pressed: rgba(21, 24, 28, .06);--color-canvas: var(--palette-canvas);--color-surface: var(--palette-white);--color-surface-alt: var(--palette-surface-alt);--color-border: var(--palette-border);--color-border-strong: #b6bec7;--color-text: var(--palette-ink);--color-text-muted: var(--palette-muted);--color-text-inverse: var(--palette-white);--color-action: var(--palette-line-green);--color-action-pressed: #05a648;--color-action-ink: var(--palette-white);--color-action-text: #04833a;--color-accent: var(--palette-primary);--color-success: var(--palette-success);--color-warning: var(--palette-warning);--color-danger: var(--palette-danger);--badge-neutral-fg: var(--palette-muted);--badge-neutral-bg: var(--tint-muted-soft);--badge-green-fg: var(--palette-success);--badge-green-bg: var(--tint-success-soft);--badge-blue-fg: var(--palette-primary);--badge-blue-bg: var(--tint-primary-soft);--badge-orange-fg: var(--palette-warning);--badge-orange-bg: var(--tint-warning-soft);--badge-red-fg: var(--palette-danger);--badge-red-bg: var(--tint-danger-soft);--font-serif: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;--font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", "Helvetica Neue", sans-serif;--font-mono: "Roboto Mono", "SFMono-Regular", Menlo, Consolas, monospace;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 16px;--text-lg: 18px;--text-xl: 21px;--text-2xl: 26px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.7;--weight-regular: 400;--weight-medium: 500;--weight-bold: 700;--weight-black: 900;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--gutter: var(--space-4);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(21, 24, 28, .06), 0 1px 8px rgba(21, 24, 28, .04);--shadow-raised: 0 4px 16px rgba(21, 24, 28, .12);--shadow-sheet: 0 -8px 32px rgba(21, 24, 28, .18);--tap-min: 44px;--bottom-bar-height: 56px;--header-height: 52px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--z-sticky: 10;--z-header: 20;--z-tabbar: 30;--z-sheet: 40;--z-toast: 50;--duration-fast: .12s;--duration-base: .2s;--ease-out: cubic-bezier(.2, .8, .3, 1)}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-base: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-family:var(--font-serif);font-weight:var(--weight-bold);line-height:var(--leading-tight)}ul,ol{margin:0;padding:0;list-style:none}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{border:none;background:none;padding:0;cursor:pointer}a{color:var(--color-accent);text-decoration:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.u-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.u-muted{color:var(--color-text-muted)}.u-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen{display:flex;flex-direction:column;min-height:100%;padding-top:var(--safe-top)}.screen__body{flex:1;padding:var(--space-4) var(--gutter);padding-bottom:calc(var(--space-6) + var(--safe-bottom))}.screen--tabbed .screen__body{padding-bottom:calc(var(--bottom-bar-height) + var(--space-6) + var(--safe-bottom))}.screen__footer{position:sticky;bottom:0;z-index:var(--z-sticky);padding:var(--space-3) var(--gutter);padding-bottom:calc(var(--space-3) + var(--safe-bottom));background:var(--color-surface);border-top:1px solid var(--color-border)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.row{display:flex;align-items:center;gap:var(--space-2)}
