.nav-bar{padding:var(--space-4) 0;margin-bottom:var(--space-8);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.nav-left{align-items:center;gap:var(--space-6);display:flex}.nav-links{align-items:center;gap:var(--space-1);display:flex}.nav-logo{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--text-primary);letter-spacing:var(--tracking-tight);transition:color var(--duration-fast) var(--ease-out);font-style:italic;text-decoration:none}.nav-logo:hover{color:var(--color-primary)}.nav-right{align-items:center;gap:var(--space-3);display:flex}.nav-balance{padding:var(--space-1) var(--space-4);background:var(--color-accent-subtle);color:var(--color-accent-hover);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:var(--radius-full);transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;letter-spacing:var(--tracking-wide);border:1px solid #c49a6c33;align-items:center;text-decoration:none;display:inline-flex}.nav-balance:hover{color:var(--color-accent-hover);background:#c49a6c2e;border-color:#c49a6c59}.nav-link{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);text-decoration:none;position:relative}.nav-link:hover{color:var(--text-primary);background:var(--border-subtle)}.nav-link.active{color:var(--color-primary);background:var(--color-primary-subtle)}.nav-link--accent{color:var(--color-primary);font-weight:var(--weight-semibold);background:var(--color-primary-subtle);border:1px solid var(--color-primary-muted)}.nav-link--accent:hover{background:var(--color-primary);color:var(--text-on-primary);border-color:var(--color-primary)}.nav-btn{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);border:1px solid var(--border-default);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0}.nav-btn:hover{color:var(--color-error);border-color:var(--color-error);background:var(--color-error-subtle)}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.nav-skeleton{background:linear-gradient(90deg, var(--border-default) 25%, var(--border-subtle) 50%, var(--border-default) 75%);border-radius:var(--radius-sm);background-size:200% 100%;width:120px;height:32px;animation:1.5s infinite shimmer}.upload-section{gap:var(--space-5);margin-bottom:var(--space-6);animation:fadeIn var(--duration-slow) var(--ease-out);grid-template-columns:1fr 1fr;display:grid}.url-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;transition:border-color var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out)}.url-card:hover{border-color:var(--color-primary-muted);box-shadow:var(--shadow-sm)}.url-card h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-1);color:var(--text-primary)}.url-card .hint{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4);line-height:var(--leading-relaxed)}.url-preview-img{object-fit:contain;border-radius:var(--radius-md);width:100%;max-height:200px;margin-top:var(--space-4);border:1px solid var(--border-subtle)}.furniture-card{text-align:left}.drop-zone{justify-content:center;align-items:center;gap:var(--space-2);border:2px dashed var(--border-default);border-radius:var(--radius-md);cursor:pointer;min-height:160px;color:var(--text-muted);font-size:var(--text-sm);transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.drop-zone:hover{border-color:var(--color-primary-muted);color:var(--text-secondary);background:var(--color-primary-subtle)}.drop-zone-active{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary)}.drop-zone-icon{font-size:var(--text-2xl);opacity:.5}.furniture-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(90px,1fr));display:grid}.furniture-thumb{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--border-default);animation:fadeIn var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.furniture-thumb img{object-fit:cover;width:100%;height:100%}.furniture-thumb-delete{border-radius:var(--radius-full);color:#fff;cursor:pointer;opacity:0;width:22px;height:22px;transition:opacity var(--duration-fast) var(--ease-out);background:#0000008c;border:none;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex;position:absolute;top:4px;right:4px}.furniture-thumb:hover .furniture-thumb-delete{opacity:1}.furniture-add{border:2px dashed var(--border-default);cursor:pointer;color:var(--text-muted);font-size:var(--text-xl);transition:all var(--duration-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;display:flex}.furniture-add:hover{border-color:var(--color-primary-muted);color:var(--color-primary);background:var(--color-primary-subtle)}.file-preview{position:relative}.clear-btn{margin-top:var(--space-2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);background:var(--color-error-subtle);color:var(--color-error);font-size:var(--text-sm);font-family:var(--font-body);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:none;align-items:center;display:inline-flex}.clear-btn:hover{background:#c4342d26}.settings-section{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);animation:fadeIn var(--duration-slow) var(--ease-out) 50ms both}.settings-section h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-4)}.settings-section h4{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary);margin-top:var(--space-5);margin-bottom:var(--space-3)}.styles-grid{gap:var(--space-2);flex-wrap:wrap;display:flex}.style-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1.5px solid var(--border-default);border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;background:var(--surface-card);display:inline-flex}.style-chip:hover{border-color:var(--color-primary-muted);color:var(--text-primary);background:var(--surface-ground)}.style-chip.active{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary);font-weight:var(--weight-semibold)}.style-chip input{display:none}.prompt-input{border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;min-height:80px;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-body);color:var(--text-primary);line-height:var(--leading-relaxed);resize:vertical;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.prompt-input::placeholder{color:var(--text-muted)}.prompt-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.generate-btn{width:100%;padding:var(--space-4) var(--space-6);background:var(--color-primary);color:var(--text-on-primary);border-radius:var(--radius-lg);font-size:var(--text-md);font-weight:var(--weight-semibold);font-family:var(--font-body);letter-spacing:var(--tracking-wide);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);margin-bottom:var(--space-6);animation:fadeIn var(--duration-slow) var(--ease-out) .2s both;border:none;position:relative;overflow:hidden}.generate-btn:before{content:"";opacity:0;transition:opacity var(--duration-fast) var(--ease-out);background:linear-gradient(135deg,#ffffff1a 0%,#0000 50%,#0000000d 100%);position:absolute;inset:0}.generate-btn:hover:not(:disabled):before{opacity:1}.generate-btn:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.generate-btn:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.generate-btn:disabled{opacity:.4;cursor:not-allowed}.generate-btn.loading{background:var(--color-primary-hover);animation:none}.generate-btn.loading:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:100%;height:100%;animation:2s infinite btnShimmer;position:absolute;top:0;left:-100%}@keyframes btnShimmer{to{left:100%}}.result-section{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;animation:fadeIn var(--duration-slow) var(--ease-out) .25s both}.result-section h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-4)}.result-img{object-fit:contain;border-radius:var(--radius-md);width:100%;max-height:512px;box-shadow:var(--shadow-md);animation:fadeInScale var(--duration-slow) var(--ease-out)}.error-msg{background:var(--color-error-subtle);color:var(--color-error);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border-left:3px solid var(--color-error);font-size:var(--text-sm);line-height:var(--leading-normal);margin-bottom:var(--space-4);animation:slideDown var(--duration-normal) var(--ease-out);white-space:pre-line}.error-msg:focus{outline:2px solid var(--color-error);outline-offset:2px}.auth-page{padding-top:var(--space-10);animation:fadeIn var(--duration-slow) var(--ease-out);justify-content:center;display:flex}.auth-form{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-lg)}.auth-form h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-6);text-align:center;letter-spacing:var(--tracking-tight)}.auth-fieldset{border:none;min-inline-size:0;margin:0;padding:0}.auth-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-5);color:var(--text-primary);letter-spacing:var(--tracking-wide);display:block}.auth-input{width:100%;margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-body);color:var(--text-primary);background:var(--surface-card);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:block}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.auth-input.invalid{border-color:var(--color-error)}.auth-input.invalid:focus{border-color:var(--color-error);box-shadow:var(--shadow-error-focus)}.auth-submit{width:100%;padding:var(--space-3) var(--space-4);margin-top:var(--space-3);background:var(--color-primary);color:var(--text-on-primary);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-semibold);font-family:var(--font-body);letter-spacing:var(--tracking-wide);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none}.auth-submit:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-submit--danger{background:var(--color-error)}.auth-submit--danger:hover:not(:disabled){background:var(--color-error-hover)}.auth-footer{margin-top:var(--space-5);text-align:center;font-size:var(--text-sm);color:var(--text-secondary)}.auth-footer a{color:var(--color-primary);font-weight:var(--weight-semibold);text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-hint{font-weight:var(--weight-normal);color:var(--text-muted);font-size:var(--text-sm)}.auth-forgot{color:var(--text-secondary);font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.auth-forgot:hover{color:var(--color-primary);text-decoration:underline}.auth-divider{align-items:center;gap:var(--space-4);margin:var(--space-5) 0;color:var(--text-muted);font-size:var(--text-sm);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border-default);flex:1;height:1px}.oauth-buttons{gap:var(--space-3);flex-direction:column;display:flex}.oauth-btn{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-body);color:var(--text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:var(--surface-card);text-decoration:none;display:flex}.oauth-btn:hover{border-color:var(--color-primary-muted);background:var(--surface-ground);box-shadow:var(--shadow-sm)}.password-wrapper{margin-top:var(--space-2);position:relative}.password-wrapper .auth-input{margin-top:0;padding-right:44px}.password-toggle{right:var(--space-2);cursor:pointer;padding:var(--space-1);color:var(--text-muted);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.password-toggle:hover{color:var(--text-primary)}.field-error{color:var(--color-error);font-size:var(--text-sm);margin-top:var(--space-1);animation:slideDown var(--duration-fast) var(--ease-out);display:block}.profile-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:480px;padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-lg)}.profile-card h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-6);letter-spacing:var(--tracking-tight)}.profile-info{margin-bottom:var(--space-6)}.profile-row{padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.profile-row:last-child{border-bottom:none}.profile-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.profile-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.profile-balance-link{color:var(--color-accent-hover);font-weight:var(--weight-bold);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.profile-balance-link:hover{color:var(--color-accent);text-decoration:underline}.wallet-page{max-width:640px;animation:fadeIn var(--duration-slow) var(--ease-out);margin:0 auto}.wallet-balance-card{background:radial-gradient(ellipse at 25% 15%, #c49a6c1f 0%, transparent 55%), linear-gradient(145deg, var(--color-primary-hover) 0%, var(--color-primary-active) 100%);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);text-align:center;color:var(--text-on-primary);margin-bottom:var(--space-6);position:relative;overflow:hidden;box-shadow:0 8px 32px #3d6b5040}.wallet-balance-card:before{content:"";pointer-events:none;background:radial-gradient(#ffffff0a 0%,#0000 70%);width:70%;height:200%;position:absolute;top:-50%;right:-30%}.wallet-balance-label{font-size:var(--text-sm);font-weight:var(--weight-medium);opacity:.8;margin-bottom:var(--space-2);letter-spacing:var(--tracking-wider);text-transform:uppercase}.wallet-balance-amount{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-6);line-height:var(--leading-tight)}.wallet-balance-amount .wallet-currency{font-family:var(--font-body);font-size:var(--text-xl);font-weight:var(--weight-normal);opacity:.7;margin-left:var(--space-1)}.wallet-topup-toggle{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);color:var(--text-on-primary);font-size:var(--text-base);font-weight:var(--weight-medium);font-family:var(--font-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:var(--tracking-wide);background:#ffffff1f;border:1px solid #ffffff38;display:inline-flex}.wallet-topup-toggle:hover{background:#fff3;border-color:#ffffff59}.wallet-topup-form{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);animation:slideDown var(--duration-normal) var(--ease-out)}.wallet-topup-form h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-4)}.wallet-presets{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.wallet-preset-btn{padding:var(--space-2) var(--space-5);border:1.5px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.wallet-preset-btn:hover{border-color:var(--color-primary-muted);color:var(--color-primary)}.wallet-preset-btn.active{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary);font-weight:var(--weight-semibold)}.wallet-custom-amount{gap:var(--space-3);align-items:center;display:flex}.wallet-custom-amount input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-md);font-family:var(--font-body);color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);flex:1}.wallet-custom-amount input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.wallet-pay-btn{padding:var(--space-3) var(--space-6);background:var(--color-success);color:var(--text-on-primary);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-semibold);font-family:var(--font-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;letter-spacing:var(--tracking-wide);border:none}.wallet-pay-btn:hover:not(:disabled){box-shadow:var(--shadow-sm);background:#247040;transform:translateY(-1px)}.wallet-pay-btn:disabled{opacity:.5;cursor:not-allowed}.wallet-transactions{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6)}.wallet-transactions h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-4)}.wallet-tx-list{list-style:none}.wallet-tx-item{padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-3);transition:background var(--duration-fast) var(--ease-out);display:flex}.wallet-tx-item:last-child{border-bottom:none}.wallet-tx-left{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.wallet-tx-badge{padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);width:fit-content;letter-spacing:var(--tracking-wide);display:inline-block}.wallet-tx-badge--top_up{background:var(--color-success-subtle);color:var(--color-success)}.wallet-tx-badge--charge{background:var(--color-error-subtle);color:var(--color-error)}.wallet-tx-badge--refund{background:var(--color-primary-subtle);color:var(--color-primary)}.wallet-tx-desc{font-size:var(--text-sm);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wallet-tx-right{text-align:right;flex-shrink:0}.wallet-tx-amount{font-size:var(--text-base);font-weight:var(--weight-semibold)}.wallet-tx-amount--plus{color:var(--color-success)}.wallet-tx-amount--minus{color:var(--color-error)}.wallet-tx-date{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.wallet-load-more{width:100%;padding:var(--space-3);margin-top:var(--space-4);border:1.5px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-body);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0}.wallet-load-more:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.wallet-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-muted);font-size:var(--text-sm)}.history-page{animation:fadeIn var(--duration-slow) var(--ease-out)}.history-page h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-6);letter-spacing:var(--tracking-tight)}.history-grid{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.history-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);transition:all var(--duration-normal) var(--ease-out);overflow:hidden}.history-card:hover{border-color:var(--color-primary-muted);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.history-card-image{aspect-ratio:4/3;background:var(--surface-ground);width:100%;position:relative;overflow:hidden}.history-card-image img{object-fit:cover;cursor:pointer;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-out)}.history-card-image img:hover{transform:scale(1.05)}.history-card-placeholder{width:100%;height:100%;color:var(--text-muted);font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.history-card-badge{top:var(--space-2);right:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:11px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.4px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:absolute}.history-card-badge--completed{color:#fff;background:#2d7a4fe0}.history-card-badge--processing{color:#fff;background:#c48a1ae0;animation:2s infinite pulse}.history-card-badge--pending,.history-card-badge--uploading{color:#fff;background:#8a857fd9}.history-card-badge--failed{color:#fff;background:#c4342de0}.history-card-body{padding:var(--space-4) var(--space-4) var(--space-5)}.history-card-prompt{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-snug);-webkit-line-clamp:2;margin-bottom:var(--space-2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.history-card-meta{font-size:var(--text-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.history-card-style{padding:2px var(--space-2);background:var(--color-primary-subtle);color:var(--color-primary);border-radius:var(--radius-sm);font-size:11px;font-weight:var(--weight-semibold);display:inline-block}.history-card-cost{font-weight:var(--weight-semibold);color:var(--text-primary)}.history-card-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1)}.history-empty{text-align:center;padding:var(--space-16) var(--space-5);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.history-empty-icon{margin-bottom:var(--space-4);opacity:.4;font-size:48px}.history-empty p{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-4)}.history-empty a{color:var(--color-primary);font-weight:var(--weight-semibold);text-decoration:none}.history-empty a:hover{text-decoration:underline}.history-load-more{width:100%;padding:var(--space-3);border:1.5px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-body);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0;display:block}.history-load-more:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.lightbox-overlay{z-index:var(--z-modal);padding:var(--space-6);animation:fadeIn var(--duration-normal) var(--ease-out);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1a1816d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-content{max-width:90vw;max-height:90vh;position:relative}.lightbox-content img{object-fit:contain;border-radius:var(--radius-md);max-width:90vw;max-height:85vh;animation:fadeInScale var(--duration-normal) var(--ease-out);box-shadow:0 24px 64px #0006}.lightbox-close{border-radius:var(--radius-full);color:#fff;cursor:pointer;width:36px;height:36px;transition:background var(--duration-fast) var(--ease-out);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:none;justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;top:-44px;right:0}.lightbox-close:hover{background:#ffffff38}.skeleton-line{background:linear-gradient(90deg, var(--border-default) 25%, var(--border-subtle) 50%, var(--border-default) 75%);border-radius:var(--radius-sm);height:16px;margin-bottom:var(--space-3);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton-line:nth-child(2){width:75%}.skeleton-line:nth-child(3){width:85%}.site-footer{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-6) 0 var(--space-4);margin-top:var(--space-8);border-top:1px solid var(--border-default);flex-wrap:wrap;display:flex}.footer-link{font-size:var(--text-xs);color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.footer-link:hover{color:var(--color-primary)}.footer-sep{color:var(--border-default);font-size:var(--text-xs);-webkit-user-select:none;user-select:none}.legal-page{max-width:720px;animation:fadeIn var(--duration-slow) var(--ease-out);margin:0 auto}.legal-page h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-8);letter-spacing:var(--tracking-tight)}.legal-section{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5)}.legal-section h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);margin-bottom:var(--space-4);color:var(--text-primary)}.legal-section h3{font-size:var(--text-base);font-weight:var(--weight-semibold);margin-top:var(--space-5);margin-bottom:var(--space-2);color:var(--text-primary)}.legal-section p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-3)}.legal-section ul{margin:var(--space-2) 0 var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}.legal-section ul li{margin-bottom:var(--space-1)}.legal-note{font-style:italic;font-size:var(--text-xs)!important;color:var(--text-muted)!important}.legal-table{border-collapse:collapse;width:100%;margin:var(--space-3) 0;font-size:var(--text-sm)}.legal-table th,.legal-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-subtle)}.legal-table th{font-weight:var(--weight-semibold);color:var(--text-primary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.legal-table td{color:var(--text-secondary)}.legal-contacts{gap:var(--space-1);flex-direction:column;display:flex}.legal-contact-row{padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.legal-contact-row:last-child{border-bottom:none}.legal-contact-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium)}.legal-contact-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.legal-contact-value a{color:var(--color-primary);text-decoration:none}.legal-contact-value a:hover{text-decoration:underline}@media (width<=768px){.history-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){#root{padding:var(--space-4) var(--space-4)}.nav-bar{gap:var(--space-2);flex-wrap:wrap}.nav-left{gap:var(--space-3)}.nav-links{gap:0}.nav-link{padding:var(--space-2) var(--space-2);font-size:var(--text-sm)}.nav-right{gap:var(--space-2)}.upload-section{grid-template-columns:1fr}.wallet-balance-amount{font-size:var(--text-3xl)}.wallet-presets{gap:var(--space-2)}.wallet-custom-amount{flex-direction:column}.wallet-pay-btn{width:100%}.auth-form{padding:var(--space-8) var(--space-6)}}@media (width<=480px){.history-grid{grid-template-columns:1fr}.nav-logo{font-size:var(--text-lg)}}:root{--surface-ground:#f7f5f2;--surface-card:#fff;--surface-elevated:#fff;--surface-overlay:#1a18168c;--color-primary:#3d6b50;--color-primary-hover:#2f5640;--color-primary-active:#264832;--color-primary-subtle:#edf5f0;--color-primary-muted:#8fb69d;--color-accent:#c49a6c;--color-accent-hover:#b08654;--color-accent-subtle:#fdf6ee;--color-success:#2d7a4f;--color-success-subtle:#e6f5ed;--color-error:#c4342d;--color-error-hover:#a52a24;--color-error-subtle:#fceeed;--color-warning:#c48a1a;--color-warning-subtle:#fef8ec;--text-primary:#2c2a27;--text-secondary:#8a857f;--text-muted:#b5b0aa;--text-on-primary:#fff;--text-on-dark:#f0ede9;--border-default:#e8e4df;--border-subtle:#f0ede9;--border-focus:var(--color-primary);--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:3rem;--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.025em;--tracking-wider:.06em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--shadow-xs:0 1px 2px #1a181608;--shadow-sm:0 1px 4px #1a18160d, 0 1px 2px #1a181608;--shadow-md:0 4px 16px #1a18160f, 0 2px 4px #1a181608;--shadow-lg:0 12px 32px #1a181612, 0 4px 8px #1a181608;--shadow-xl:0 20px 48px #1a181617, 0 8px 16px #1a18160a;--shadow-focus:0 0 0 3px #3d6b5026;--shadow-error-focus:0 0 0 3px #c4342d26;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-full:9999px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-overlay:500;--z-modal:1000;--border:var(--border-default);--bg:var(--surface-ground);--card:var(--surface-card);--primary:var(--color-primary);--primary-light:var(--color-primary-subtle);--text:var(--text-primary);--text-secondary-compat:var(--text-secondary)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--text-primary);background:radial-gradient(ellipse at 15% 0%, #c49a6c0a 0%, transparent 55%), radial-gradient(ellipse at 85% 100%, #3d6b5008 0%, transparent 55%), var(--surface-ground);min-height:100vh}#root{max-width:1000px;padding:var(--space-6) var(--space-5);margin:0 auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-primary);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}a{color:var(--color-primary);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--color-primary-hover)}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}::selection{color:var(--text-primary);background:#3d6b5026}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
