.landing-screen{position:relative;min-height:100dvh;overflow-x:hidden;background-color:var(--color-surface-base);background-image:linear-gradient(180deg,#fffcf8d6,#f7f4eef0),radial-gradient(90% 48% at 50% -4%,rgba(184,149,107,.16),transparent 64%),radial-gradient(54% 30% at 0% 18%,rgba(138,154,123,.07),transparent 70%),radial-gradient(54% 30% at 100% 28%,rgba(184,149,107,.08),transparent 72%)}.landing-content{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px;padding:max(32px,env(safe-area-inset-top)) var(--spacing-gutter) max(28px,env(safe-area-inset-bottom))}.landing-card{position:relative;z-index:2;width:100%;padding:16px 18px 18px;text-align:center;background:var(--color-surface-elevated);border:2px solid var(--color-border-gold);border-radius:var(--rounded-sm);overflow:hidden}.landing-card:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid rgba(184,149,107,.4);border-radius:1px;pointer-events:none}.landing-card--hero:after{content:"";position:absolute;inset:auto 14px 12px;height:1px;background:linear-gradient(90deg,transparent,rgba(184,149,107,.42),transparent);pointer-events:none}.landing-portrait{display:block;width:min(42%,88px);aspect-ratio:1;margin:0 auto 10px;background-color:var(--color-accent-gold);mask:url(/assets/wedding_portre-Syx8_NP9.svg) center / contain no-repeat;-webkit-mask:url(/assets/wedding_portre-Syx8_NP9.svg) center / contain no-repeat}.landing-eyebrow{margin-bottom:6px;font-family:var(--font-body);font-size:.5625rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-secondary)}.landing-names{margin-bottom:6px;font-family:var(--font-display);font-size:clamp(1.125rem,4.5vw,1.375rem);font-weight:700;line-height:1.25;letter-spacing:.01em;color:var(--color-accent-gold)}.landing-date{font-family:var(--font-body);font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-secondary)}.divider-ornament{display:flex;align-items:center;gap:8px;margin:8px auto;width:58%;color:var(--color-accent-gold)}.divider-ornament:before,.divider-ornament:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--color-accent-gold),transparent)}.divider-ornament span{width:4px;height:4px;background:var(--color-accent-gold);transform:rotate(45deg)}.landing-welcome{font-family:var(--font-body);font-size:.75rem;font-weight:400;line-height:1.45;color:var(--color-ink-primary)}.landing-section-title{display:flex;align-items:center;gap:12px;margin-top:4px;color:var(--color-accent-gold)}.landing-section-title:before,.landing-section-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--color-accent-gold-muted, rgba(184, 149, 107, .4)),transparent)}.landing-section-title span{font-family:var(--font-body);font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-secondary)}.landing-action{display:flex;flex-direction:column;gap:14px}.consent-panel{padding:16px;background:var(--color-surface-elevated);border:1px solid var(--color-border-hairline);border-radius:var(--rounded-sm)}.consent-panel-text{font-family:var(--font-body);font-size:.75rem;line-height:1.6;color:var(--color-ink-secondary)}.consent-panel-toggle{display:flex;align-items:center;gap:11px;margin-top:14px;padding-top:14px;border-top:1px solid var(--color-border-hairline);cursor:pointer;-webkit-user-select:none;user-select:none}.consent-panel-toggle input{position:absolute;opacity:0;width:1px;height:1px}.consent-panel-box{flex-shrink:0;width:20px;height:20px;border:1px solid var(--color-border-gold);border-radius:2px;background:var(--color-surface-base);transition:background-color .15s ease,border-color .15s ease}.consent-panel-toggle--on .consent-panel-box{background-color:var(--color-accent-gold);border-color:var(--color-accent-gold);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23FFFCF8' stroke-width='1.8' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:11px 9px}.consent-panel-label{font-family:var(--font-body);font-size:.8125rem;font-weight:600;line-height:1.4;color:var(--color-ink-primary)}.landing-meta{font-size:.75rem;line-height:1.45;text-align:center;color:var(--color-ink-secondary)}.landing-error{font-size:.75rem;line-height:1.45;text-align:center;color:var(--color-status-error)}.landing-upload{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-surface-elevated);border:1px solid var(--color-border-hairline);border-radius:var(--rounded-sm)}.landing-upload-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-shrink:0;padding-bottom:10px;border-bottom:1px solid var(--color-border-hairline)}.landing-upload-title{font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-primary)}.landing-upload-count{font-size:.6875rem;color:var(--color-ink-secondary)}.landing-upload-list{display:flex;flex-direction:column}.landing-upload-list--scroll{max-height:min(420px,48vh);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:4px;scrollbar-gutter:stable}.landing-upload-list--scroll::-webkit-scrollbar{width:6px}.landing-upload-list--scroll::-webkit-scrollbar-track{background:var(--color-progress-track);border-radius:3px}.landing-upload-list--scroll::-webkit-scrollbar-thumb{background:var(--color-accent-gold-muted);border-radius:3px}.landing-upload-footer{flex-shrink:0;padding-top:4px;scroll-margin-bottom:max(24px,env(safe-area-inset-bottom))}.landing-upload-list .file-row--compact{padding:5px 0;border-bottom:1px solid var(--color-border-hairline)}.landing-upload-list .file-row--compact:last-child{border-bottom:none}.landing-upload-list .file-row--compact .file-row-main{font-size:.6875rem;line-height:1.35;gap:8px}.landing-upload-list .file-row--compact .file-row-thumb{width:36px;height:36px}.landing-upload-list .file-row--compact .file-row-name{max-width:66%}.landing-upload-list .file-row--compact .file-row-status{font-size:.625rem;letter-spacing:.04em}.landing-upload-list .file-row--compact .file-row-error{margin-top:2px;font-size:.625rem}.landing-upload-list .file-row--compact .progress-bar--compact{height:3px;margin-top:5px}.landing-upload-list .file-row-retry{margin-top:2px;padding:0;border:none;background:none;font-family:var(--font-body);font-size:.625rem;font-weight:600;color:var(--color-accent-gold);cursor:pointer}.landing-manifesto{margin-top:2px;font-family:var(--font-display);font-size:.9375rem;font-style:italic;text-align:center;color:var(--color-ink-secondary);padding-bottom:4px}.file-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.file-row-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid var(--color-border-hairline);border-radius:50%;background:transparent;color:var(--color-ink-secondary);font-size:.875rem;line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.file-row-remove:hover{background:var(--color-status-error);border-color:var(--color-status-error);color:#fff}[data-theme=dark] .landing-screen{background-color:var(--color-surface-base);background-image:linear-gradient(180deg,#1c1914e6,#16130ff5),radial-gradient(90% 48% at 50% -4%,rgba(201,166,122,.1),transparent 64%),radial-gradient(54% 30% at 0% 18%,rgba(122,138,107,.06),transparent 70%),radial-gradient(54% 30% at 100% 28%,rgba(201,166,122,.07),transparent 72%)}[data-theme=dark] .landing-card,[data-theme=dark] .consent-panel,[data-theme=dark] .landing-upload{background:var(--color-surface-elevated)}.flow-screen{position:relative;min-height:100dvh;overflow-x:hidden;background:var(--color-surface-base);background-image:radial-gradient(ellipse at top,rgba(184,149,107,.06),transparent 55%)}.flow-content{position:relative;z-index:1;display:flex;min-height:100dvh;flex-direction:column;gap:20px;padding:max(48px,env(safe-area-inset-top)) var(--spacing-gutter) max(32px,env(safe-area-inset-bottom))}.flow-heading{font-family:var(--font-body);font-size:.9375rem;font-weight:600;letter-spacing:.04em}.flow-copy{font-family:var(--font-body);font-size:.8125rem;line-height:1.55;color:var(--color-ink-secondary)}.flow-error{font-size:.875rem;color:var(--color-status-error)}.flow-manifesto{margin-top:auto;font-size:.875rem;font-style:italic;text-align:center;color:var(--color-ink-secondary)}.file-list{display:flex;flex-direction:column;border-top:1px solid var(--color-border-hairline)}.file-row{padding:12px 0;border-bottom:1px solid var(--color-border-hairline)}.file-row-main{display:flex;justify-content:space-between;gap:12px;font-size:.875rem}.file-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row-error{margin-top:6px;font-size:.8125rem;color:var(--color-status-error)}.progress-bar{height:6px;margin-top:10px;overflow:hidden;background:var(--color-progress-track);border-radius:var(--rounded-sm)}.upload-counter{font-size:.875rem;font-weight:500;color:var(--color-ink-secondary)}.btn-secondary{color:var(--color-accent-gold);background:transparent}.btn-ghost{width:auto;min-height:auto;padding:8px 0;border:none;color:var(--color-accent-gold);background:transparent;font-size:.875rem;font-weight:600}.rate-limit-screen{display:flex;min-height:100dvh;flex-direction:column;justify-content:center;gap:16px;padding:var(--spacing-gutter);text-align:center}.rate-limit-heading{font-size:1.125rem;font-weight:600}.rate-limit-copy{font-size:.875rem;line-height:1.55;color:var(--color-ink-secondary)}.review-content{justify-content:center;align-items:stretch}.review-checkmark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;border-radius:50%;border:2px solid var(--color-accent-gold);background:var(--color-surface-elevated);color:var(--color-accent-gold);font-size:1.5rem;font-weight:300}.thanks-illustration{display:block;width:min(52%,200px);aspect-ratio:1;margin:0 auto 4px;background-color:var(--color-accent-gold);opacity:.88;mask:url(/assets/thx-DrvdvSRK.svg) center / contain no-repeat;-webkit-mask:url(/assets/thx-DrvdvSRK.svg) center / contain no-repeat}[data-theme=dark] .thanks-illustration{opacity:.92}[data-theme=dark] .flow-screen{background:var(--color-surface-base);background-image:radial-gradient(ellipse at top,rgba(201,166,122,.05),transparent 55%)}.flow-screen--thanks{background-color:var(--color-surface-base);background-image:radial-gradient(ellipse at top,rgba(184,149,107,.08),transparent 55%),radial-gradient(54% 30% at 0% 18%,rgba(138,154,123,.06),transparent 70%),radial-gradient(54% 30% at 100% 28%,rgba(184,149,107,.07),transparent 72%)}.flow-content--thanks{gap:18px}.floral-corner{position:fixed;z-index:0;width:min(42vw,180px);pointer-events:none;opacity:var(--color-floral-opacity)}.floral-corner--tl{top:-20px;left:-30px}.floral-corner--br{right:-40px;bottom:60px;transform:scaleX(-1)}@keyframes thanks-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.thanks-enter{animation:thanks-enter .45s ease-out both}.thanks-enter--delay-1{animation-delay:.12s}.thanks-enter--delay-2{animation-delay:.24s}@media(prefers-reduced-motion:reduce){.thanks-enter{animation:none}.thanks-confetti-piece{animation:none!important;opacity:0!important}}.thanks-card{text-align:center}.thanks-names{margin-bottom:6px;font-family:var(--font-display);font-size:clamp(1.125rem,4.5vw,1.375rem);font-weight:700;line-height:1.25;letter-spacing:.01em;color:var(--color-accent-gold)}.thanks-date{margin-bottom:2px;font-family:var(--font-body);font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-secondary)}.thanks-heading{margin-bottom:10px}.thanks-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:16px 24px;margin:4px 0 2px}.thanks-stat{display:inline-flex;flex-direction:row;align-items:center;gap:8px;color:var(--color-accent-gold)}.thanks-stat-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:24px;height:24px}.thanks-stat-icon svg{width:22px;height:22px}.thanks-stat-text{display:inline-flex;align-items:baseline;gap:.35em;font-family:var(--font-body);line-height:1.2}.thanks-stat-count{font-size:1rem;font-weight:700;color:var(--color-ink-primary)}.thanks-stat-label{font-size:.8125rem;font-weight:500;color:var(--color-ink-secondary)}.thanks-partial-note{margin-top:8px;font-size:.75rem;line-height:1.45;color:var(--color-ink-secondary)}.thanks-manifesto{margin:0;font-size:.8125rem;font-style:italic;line-height:1.55;color:var(--color-ink-secondary)}.thanks-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}.thanks-confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.thanks-confetti-piece{position:absolute;top:-8%;width:6px;height:10px;border-radius:1px;opacity:0;animation:thanks-confetti-fall 2.8s ease-in forwards}.thanks-confetti-piece--0{left:8%;background:var(--color-accent-gold);animation-delay:.1s}.thanks-confetti-piece--1{left:22%;background:var(--color-sage-leaf);animation-delay:.25s}.thanks-confetti-piece--2{left:38%;background:var(--color-accent-gold-hover);animation-delay:.05s}.thanks-confetti-piece--3{left:54%;background:var(--color-accent-gold-muted);animation-delay:.35s}.thanks-confetti-piece--4{left:72%;background:var(--color-sage-leaf);animation-delay:.18s}.thanks-confetti-piece:nth-child(2){left:14%;animation-delay:.42s}.thanks-confetti-piece:nth-child(3){left:31%;animation-delay:.15s}.thanks-confetti-piece:nth-child(4){left:47%;animation-delay:.5s}.thanks-confetti-piece:nth-child(5){left:63%;animation-delay:.08s}.thanks-confetti-piece:nth-child(6){left:81%;animation-delay:.28s}.thanks-confetti-piece:nth-child(7){left:6%;animation-delay:.55s}.thanks-confetti-piece:nth-child(8){left:26%;animation-delay:.33s}.thanks-confetti-piece:nth-child(9){left:44%;animation-delay:.12s}.thanks-confetti-piece:nth-child(10){left:58%;animation-delay:.48s}.thanks-confetti-piece:nth-child(11){left:76%;animation-delay:.22s}.thanks-confetti-piece:nth-child(12){left:90%;animation-delay:.38s}.thanks-confetti-piece:nth-child(13){left:18%;animation-delay:.6s}.thanks-confetti-piece:nth-child(14){left:66%;animation-delay:.04s}@keyframes thanks-confetti-fall{0%{opacity:0;transform:translateZ(0) rotate(0)}12%{opacity:.75}to{opacity:0;transform:translate3d(0,105vh,0) rotate(420deg)}}[data-theme=dark] .flow-screen--thanks{background-color:var(--color-surface-base);background-image:radial-gradient(ellipse at top,rgba(201,166,122,.06),transparent 55%),radial-gradient(54% 30% at 0% 18%,rgba(122,138,107,.05),transparent 70%),radial-gradient(54% 30% at 100% 28%,rgba(201,166,122,.05),transparent 72%)}@font-face{font-family:Libre Baskerville;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-baskerville-latin-400-normal-C42RasBZ.woff2) format("woff2"),url(/assets/libre-baskerville-latin-400-normal-B6A5kCEq.woff) format("woff")}@font-face{font-family:Libre Baskerville;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-baskerville-latin-700-normal-CLGq6Yj4.woff2) format("woff2"),url(/assets/libre-baskerville-latin-700-normal-DFRs2Bxw.woff) format("woff")}:root{--color-surface-base: #f7f4ee;--color-surface-elevated: #fffcf8;--color-ink-primary: #5c5347;--color-ink-secondary: #8a8278;--color-ink-disabled: #b5afa5;--color-ink-on-gold: #fffcf8;--color-accent-gold: #b8956b;--color-accent-gold-hover: #a07f56;--color-accent-gold-muted: rgba(184, 149, 107, .35);--color-border-gold: #b8956b;--color-border-hairline: #e8e2d8;--color-sage-leaf: #8a9a7b;--color-status-success: #6b8f71;--color-status-error: #b85c5c;--color-progress-track: #e8e2d8;--color-progress-fill: #b8956b;--color-floral-opacity: .18;--spacing-gutter: 20px;--spacing-content-max: 420px;--spacing-touch-min: 48px;--rounded-sm: 2px;--font-display: "Libre Baskerville", Georgia, serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif}[data-theme=dark]{--color-surface-base: #1c1914;--color-surface-elevated: #252019;--color-ink-primary: #e4ddd3;--color-ink-secondary: #a09488;--color-ink-disabled: #6a6258;--color-ink-on-gold: #1a1612;--color-accent-gold: #c9a67a;--color-accent-gold-hover: #d4b48a;--color-accent-gold-muted: rgba(201, 166, 122, .28);--color-border-gold: #c9a67a;--color-border-hairline: #38322a;--color-sage-leaf: #7a8a6b;--color-status-success: #6b8f71;--color-status-error: #c87070;--color-progress-track: #38322a;--color-progress-fill: #c9a67a}:root{--surface-pattern-size: 72px 72px;--surface-pattern-tile: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='72'%20height='72'%20viewBox='0%200%2072%2072'%3e%3cpath%20d='M-2%2038%20Q16%2028%2036%2038%20T74%2038'%20fill='none'%20stroke='%238a9a7b'%20stroke-width='0.55'%20opacity='0.18'/%3e%3cg%20fill='none'%20stroke='%23b8956b'%20stroke-width='0.45'%20opacity='0.32'%20transform='translate(18%2014)'%3e%3ccircle%20cx='0'%20cy='0'%20r='2'/%3e%3cpath%20d='M0-5.5%20C2.2-2.5%202.2%200%200%200%20C-2.2%200-2.2-2.5%200-5.5'/%3e%3cpath%20d='M5.5%200%20C2.5%202.2%200%200%200%200%20C0-2.2%202.5-2.2%205.5%200'/%3e%3cpath%20d='M0%205.5%20C-2.2%202.5%200%200%200%200%20C2.2%200%202.2%202.5%200%205.5'/%3e%3cpath%20d='M-5.5%200%20C-2.5-2.2%200%200%200%200%20C0%202.2-2.5%202.2-5.5%200'/%3e%3c/g%3e%3cpath%20d='M44%2056%20C48%2048%2056%2050%2052%2060%20C48%2064%2042%2060%2044%2056'%20fill='none'%20stroke='%238a9a7b'%20stroke-width='0.5'%20opacity='0.22'/%3e%3cpath%20d='M50%2018%20C52%2022%2056%2024%2054%2028'%20fill='none'%20stroke='%23b8956b'%20stroke-width='0.42'%20opacity='0.24'/%3e%3cg%20fill='none'%20stroke='%23b8956b'%20stroke-width='0.4'%20opacity='0.26'%20transform='translate(54%2048)'%3e%3ccircle%20cx='0'%20cy='0'%20r='1.6'/%3e%3cpath%20d='M0-4.2%20L0%200%20M4.2%200%20L0%200%20M0%204.2%20L0%200%20M-4.2%200%20L0%200'/%3e%3c/g%3e%3c/svg%3e")}[data-theme=dark]{--surface-pattern-tile: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='72'%20height='72'%20viewBox='0%200%2072%2072'%3e%3cpath%20d='M-2%2038%20Q16%2028%2036%2038%20T74%2038'%20fill='none'%20stroke='%237a8a6b'%20stroke-width='0.55'%20opacity='0.14'/%3e%3cg%20fill='none'%20stroke='%23c9a67a'%20stroke-width='0.45'%20opacity='0.24'%20transform='translate(18%2014)'%3e%3ccircle%20cx='0'%20cy='0'%20r='2'/%3e%3cpath%20d='M0-5.5%20C2.2-2.5%202.2%200%200%200%20C-2.2%200-2.2-2.5%200-5.5'/%3e%3cpath%20d='M5.5%200%20C2.5%202.2%200%200%200%200%20C0-2.2%202.5-2.2%205.5%200'/%3e%3cpath%20d='M0%205.5%20C-2.2%202.5%200%200%200%200%20C2.2%200%202.2%202.5%200%205.5'/%3e%3cpath%20d='M-5.5%200%20C-2.5-2.2%200%200%200%200%20C0%202.2-2.5%202.2-5.5%200'/%3e%3c/g%3e%3cpath%20d='M44%2056%20C48%2048%2056%2050%2052%2060%20C48%2064%2042%2060%2044%2056'%20fill='none'%20stroke='%237a8a6b'%20stroke-width='0.5'%20opacity='0.16'/%3e%3cpath%20d='M50%2018%20C52%2022%2056%2024%2054%2028'%20fill='none'%20stroke='%23c9a67a'%20stroke-width='0.42'%20opacity='0.18'/%3e%3cg%20fill='none'%20stroke='%23c9a67a'%20stroke-width='0.4'%20opacity='0.2'%20transform='translate(54%2048)'%3e%3ccircle%20cx='0'%20cy='0'%20r='1.6'/%3e%3cpath%20d='M0-4.2%20L0%200%20M4.2%200%20L0%200%20M0%204.2%20L0%200%20M-4.2%200%20L0%200'/%3e%3c/g%3e%3c/svg%3e")}@media(min-width:421px){html{background-color:var(--color-surface-base);background-image:var(--surface-pattern-tile);background-size:var(--surface-pattern-size);background-repeat:repeat;background-attachment:fixed}body,#root{background:transparent}.app-shell{background-color:var(--color-surface-base);box-shadow:-1px 0 #b8956b14,1px 0 #b8956b14}[data-theme=dark] .app-shell{box-shadow:-1px 0 #c9a67a0f,1px 0 #c9a67a0f}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100dvh}body{font-family:var(--font-body);background:var(--color-surface-base);color:var(--color-ink-primary);-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}button:focus-visible{outline:2px solid var(--color-accent-gold);outline-offset:2px}.app-shell{width:100%;max-width:var(--spacing-content-max);margin:0 auto;min-height:100dvh}.status-message{padding:48px var(--spacing-gutter);text-align:center;color:var(--color-ink-secondary)}.btn{width:100%;min-height:var(--spacing-touch-min);border:1px solid var(--color-border-gold);border-radius:var(--rounded-sm);font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.btn:disabled{cursor:not-allowed;color:var(--color-ink-disabled, #b5afa5);background:var(--color-surface-base);border-color:var(--color-border-hairline)}.btn-primary{color:var(--color-ink-on-gold);background:var(--color-accent-gold)}.btn-primary:not(:disabled):hover,.btn-primary:not(:disabled):active{background:var(--color-accent-gold-hover);border-color:var(--color-accent-gold-hover)}.theme-toggle{position:fixed;top:14px;right:14px;z-index:200;width:34px;height:34px;border-radius:50%;border:1px solid var(--color-border-gold);background:var(--color-surface-elevated);color:var(--color-accent-gold);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease,border-color .2s ease;box-shadow:0 1px 6px #0000001f}.theme-toggle svg{width:18px;height:18px;display:block}.theme-toggle:hover{background:var(--color-accent-gold);color:var(--color-ink-on-gold)}.hidden-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-back{min-height:var(--spacing-touch-min);border:none;background:transparent;color:var(--color-accent-gold);font-family:inherit;font-size:.875rem;cursor:pointer}.file-row-main{display:flex;justify-content:space-between;gap:10px;align-items:center}.file-row-thumb{flex-shrink:0;width:40px;height:40px;border-radius:6px;object-fit:cover;border:1px solid var(--color-border-hairline);background:var(--color-surface-elevated)}.file-row-thumb--placeholder{display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--color-ink-secondary)}.file-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row-status{flex-shrink:0;color:var(--color-ink-secondary)}.file-row--uploaded .file-row-status{color:var(--color-status-success)}.file-row--error .file-row-status{color:var(--color-status-error)}.progress-bar{height:6px;overflow:hidden;background:var(--color-progress-track);border-radius:var(--rounded-sm)}.progress-bar--compact{height:2px}.progress-bar-fill{height:100%;background:var(--color-progress-fill)}
