.install-banner[data-v-cdf056c6]{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem 1rem;background:var(--color-brand-primary);color:var(--color-brand-primary-contrast);font-size:.9rem;box-shadow:var(--shadow-sm)}@media (hover: hover) and (pointer: fine){.install-banner[data-v-cdf056c6]{display:none}}.install-banner.ios[data-v-cdf056c6]{background:var(--color-bg-surface);color:var(--color-text-primary)}.install-text[data-v-cdf056c6]{flex:1;line-height:1.3}.install-actions[data-v-cdf056c6]{display:flex;gap:.5rem;align-items:center}.install-primary[data-v-cdf056c6]{font:inherit;padding:.375rem .875rem;border-radius:var(--radius-sm);border:0;background:#ffffff26;color:inherit;font-weight:600;cursor:pointer}.install-primary[data-v-cdf056c6]:hover{background:#ffffff40}.install-dismiss[data-v-cdf056c6]{font:inherit;font-size:1.25rem;line-height:1;padding:0 .5rem;background:transparent;border:0;color:inherit;cursor:pointer;opacity:.8}.install-dismiss[data-v-cdf056c6]:hover{opacity:1}.pwa-update-banner[data-v-110b88a0]{position:fixed;top:env(safe-area-inset-top,0);left:0;right:0;z-index:60;background:var(--color-brand-primary, #7c3aed);color:var(--color-brand-primary-contrast, #fff);padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-shadow:0 2px 8px #0003;font-size:.9rem}.pwa-update-text[data-v-110b88a0]{flex:1;font-weight:600;line-height:1.3}.pwa-update-actions[data-v-110b88a0]{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.pwa-update-btn[data-v-110b88a0]{background:#fff;color:var(--color-brand-primary, #7c3aed);border:0;padding:.5rem 1rem;border-radius:var(--radius-sm, 4px);font-weight:700;cursor:pointer;font:inherit}.pwa-update-btn[data-v-110b88a0]:hover,.pwa-update-btn[data-v-110b88a0]:focus-visible{opacity:.92}.pwa-dismiss-btn[data-v-110b88a0]{background:transparent;border:0;color:currentColor;font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem;opacity:.8}.pwa-dismiss-btn[data-v-110b88a0]:hover,.pwa-dismiss-btn[data-v-110b88a0]:focus-visible{opacity:1}.site-header[data-v-1d9eb315]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.8rem 1rem .9rem;padding-top:calc(.8rem + env(safe-area-inset-top,0));padding-right:calc(1rem + env(safe-area-inset-right,0));padding-left:calc(1rem + env(safe-area-inset-left,0));color:#fff;background:radial-gradient(ellipse 90% 140% at 85% 50%,rgba(168,85,247,.55),transparent 65%),linear-gradient(135deg,#3b1d75,#5b21b6,#7c3aed);position:sticky;top:0;z-index:30;box-shadow:0 2px 12px #4c1d9540}[data-theme=light] .site-header[data-v-1d9eb315]{background:radial-gradient(ellipse 90% 140% at 85% 50%,rgba(196,181,253,.6),transparent 65%),linear-gradient(135deg,#ddd6fe,#c4b5fd,#a78bfa);color:#1a0b2e;box-shadow:0 1px 6px #7c3aed38}.site-header__logo[data-v-1d9eb315]{display:flex;flex-direction:column;gap:.15rem;color:inherit;text-decoration:none;min-width:0;letter-spacing:-.02em;transition:transform .16s ease;flex:1 1 auto}.site-header__logo[data-v-1d9eb315]:hover{transform:translate(2px)}.logo-row[data-v-1d9eb315]{display:flex;flex-wrap:wrap;gap:.3rem;font-weight:900;font-size:clamp(.9rem,3.2vw,1.12rem);text-transform:uppercase;line-height:1}.logo-word[data-v-1d9eb315]{display:inline-block}.logo-suffix[data-v-1d9eb315]{font-size:clamp(.68rem,2vw,.8rem);font-style:italic;font-weight:400;opacity:.78;text-transform:none;letter-spacing:0}.site-header__tools[data-v-1d9eb315]{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.tool-pill[data-v-1d9eb315]{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem .3rem .5rem;border:1px solid rgba(255,255,255,.25);background:#ffffff26;border-radius:999px;color:inherit;text-decoration:none;font-size:.82rem;font-weight:600;max-width:min(35vw,12rem);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color .14s ease}.tool-pill[data-v-1d9eb315]:hover{background:#ffffff47}[data-theme=light] .tool-pill[data-v-1d9eb315]{background:#ffffff80;border-color:#7c3aed4d}.user-dot[data-v-1d9eb315]{font-size:.7rem;color:var(--color-kinetic, #d4ff3a);flex-shrink:0}.user-name[data-v-1d9eb315]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-btn[data-v-1d9eb315]{font:inherit;font-size:.92rem;padding:.35rem .55rem;border-radius:var(--radius-sm, 6px);border:1px solid rgba(255,255,255,.25);background:#ffffff26;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-width:2.1rem;min-height:2rem;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color .14s ease,border-color .14s ease;text-decoration:none}.tool-btn[data-v-1d9eb315]:hover{background:#ffffff40;border-color:#ffffff80}[data-theme=light] .tool-btn[data-v-1d9eb315]{background:#ffffff80;border-color:#7c3aed4d}[data-theme=light] .tool-btn[data-v-1d9eb315]:hover{background:#ffffffbf;border-color:#7c3aed99}.tool-btn--lang[data-v-1d9eb315]{min-width:2.4rem;font-variant:all-small-caps;letter-spacing:.04em;font-weight:600}.tool-btn--admin[data-v-1d9eb315]{background:#d4ff3a40;border-color:#d4ff3a8c}.tool-btn--admin[data-v-1d9eb315]:hover{background:#d4ff3a66}[data-theme=light] .tool-btn--admin[data-v-1d9eb315]{background:#7c3aed38;border-color:#7c3aed8c;color:#4c1d95}.tool-btn--logout[data-v-1d9eb315]{opacity:.78}.tool-btn--logout[data-v-1d9eb315]:hover{opacity:1}@media (max-width: 540px){.logo-row[data-v-1d9eb315]{font-size:.82rem;gap:.22rem}.logo-suffix[data-v-1d9eb315]{font-size:.66rem}.tool-pill[data-v-1d9eb315]{max-width:30vw;font-size:.74rem;padding-right:.5rem}.user-name[data-v-1d9eb315]{max-width:6rem}.tool-btn[data-v-1d9eb315]{padding:.3rem .45rem;font-size:.82rem;min-width:1.9rem}}@media (max-width: 380px){.tool-pill[data-v-1d9eb315]{display:none}}:root{--color-bg-base: #ffffff;--color-bg-surface: #f5f5f7;--color-text-primary: #0f0f14;--color-text-secondary: #555563;--color-brand-primary: #7c3aed;--color-brand-primary-contrast: #ffffff;--color-accent: #a855f7;--color-success: #16a34a;--color-warning: #d97706;--color-danger: #dc2626;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--font-sans: system-ui, -apple-system, "Segoe UI", "Inter", sans-serif;--color-bg-canvas: #f4f0e8;--color-ink: #0f0f14;--color-ink-muted: #6b6558;--color-kinetic: #d4ff3a;--color-pulse: var(--color-brand-primary);--font-display: ui-serif, "Iowan Old Style", "Apple Garamond", Georgia, "Times New Roman", serif;--font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--duration-hero: .6s}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg-base: #0a0a0f;--color-bg-surface: #1a1a22;--color-text-primary: #f5f5f7;--color-text-secondary: #a0a0b0;--color-brand-primary: #a78bfa;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 16px rgba(0, 0, 0, .6);--color-bg-canvas: #0a0a0b;--color-ink: #f4f0e8;--color-ink-muted: #8a8376;--color-pulse: #a78bfa}}[data-theme=dark]{--color-bg-base: #0a0a0f;--color-bg-surface: #1a1a22;--color-text-primary: #f5f5f7;--color-text-secondary: #a0a0b0;--color-brand-primary: #a78bfa;--color-bg-canvas: #0a0a0b;--color-ink: #f4f0e8;--color-ink-muted: #8a8376;--color-pulse: #a78bfa}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg-base);color:var(--color-text-primary);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh}a{color:var(--color-brand-primary);text-decoration:none}a:hover{text-decoration:underline}.view-fullscreen-mobile{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media (min-width: 768px){.view-fullscreen-mobile{min-height:auto;padding:0}}.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}.btn{font:inherit;font-size:.9rem;font-weight:600;padding:.65rem 1.1rem;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;line-height:1.2;min-height:2.4rem;transition:background-color .14s ease,border-color .14s ease,transform .12s ease;text-decoration:none;user-select:none}.btn:disabled{opacity:.45;cursor:default}.btn:focus-visible{outline:2px solid var(--color-brand-primary);outline-offset:2px}.btn--primary{background:var(--color-brand-primary);color:#fff;border-color:var(--color-brand-primary);letter-spacing:.01em}.btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-brand-primary) 86%,black);border-color:color-mix(in srgb,var(--color-brand-primary) 86%,black)}.btn--ghost{background:color-mix(in srgb,var(--color-brand-primary) 10%,transparent);color:var(--color-brand-primary);border-color:color-mix(in srgb,var(--color-brand-primary) 40%,transparent)}.btn--ghost:hover:not(:disabled){background:color-mix(in srgb,var(--color-brand-primary) 20%,transparent);border-color:var(--color-brand-primary)}.btn--ghost-link{background:transparent;color:color-mix(in srgb,var(--color-text-primary) 72%,transparent);border-color:color-mix(in srgb,var(--color-text-primary) 22%,transparent)}.btn--ghost-link:hover:not(:disabled){color:#b91c1c;border-color:color-mix(in srgb,#f87171 55%,transparent);background:color-mix(in srgb,#f87171 10%,transparent)}[data-theme=dark] .btn--ghost-link:hover:not(:disabled){color:#fecaca}.btn--sm{font-size:.82rem;padding:.45rem .85rem;min-height:2.1rem}@media (max-width: 640px){.btn{min-height:2.75rem;padding:.75rem 1.15rem;font-size:.95rem;width:100%}.btn--sm{min-height:2.6rem;padding:.6rem 1rem;font-size:.88rem}.card-row__actions .btn,.admin-view__head .btn{width:auto;flex:1 1 auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
