:root{--color-primary: #e8a849;--color-primary-dark: #d4952e;--color-primary-light: #f0b85a;--color-primary-bg: rgba(232, 168, 73, .08);--color-accent-glow: rgba(232, 168, 73, .15);--color-accent-border: rgba(232, 168, 73, .2);--color-accent-focus: rgba(232, 168, 73, .3);--color-bg: #0f1419;--color-surface: #1a2028;--color-surface-hover: #222a34;--color-navbar: #0a0d11;--color-text: #e8e6e3;--color-text-muted: #8b8d91;--color-border: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .15);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .1);--color-success: #34d399;--color-success-bg: rgba(52, 211, 153, .1);--color-warning: #f59e0b;--radius: 10px;--radius-sm: 6px;--radius-lg: 16px;--spacing: 24px;--header-height: 56px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", Roboto, sans-serif;--font-display: "Outfit", "Inter", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button{cursor:pointer;border:none;background:none;font:inherit}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}html,body{font-size:16px}body{display:flex;flex-direction:column;min-height:100dvh}#app{flex:1;display:flex;flex-direction:column}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:var(--radius);font-size:16px;font-weight:600;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--color-bg)}.btn-primary:active{transform:scale(.98);background:var(--color-primary-dark)}.btn-secondary{background:#ffffff0f;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn:disabled{opacity:.4;pointer-events:none}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:32px 24px;gap:12px;text-align:center}.landing-logo{color:#fff;margin-bottom:4px}.landing-logo svg{height:40px;width:auto}.landing-title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--color-text);margin:0}.landing-device{font-size:.9rem;color:var(--color-text-muted);margin:0}.landing-hint{font-size:.78rem;color:var(--color-text-muted);opacity:.7;margin:0}.btn-text{color:var(--color-primary);padding:10px 16px;min-height:44px;border-radius:var(--radius-sm);font-size:.9rem;transition:opacity .15s}.btn-text:hover{opacity:.7}.btn-text:active{opacity:.45}.loading{display:flex;align-items:center;justify-content:center;min-height:100dvh}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.expired,.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;text-align:center;padding:32px 24px;gap:16px;color:var(--color-text-muted)}.crop-view{display:flex;flex-direction:column;height:100dvh}.crop-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.crop-title{font-weight:600;font-size:1rem;color:var(--color-text)}.crop-container{flex:1;overflow:hidden;background:#0a0c0f;display:flex;align-items:center;justify-content:center}.crop-container img{max-width:100%;display:block}.crop-footer{padding:12px 16px;background:var(--color-surface);border-top:1px solid var(--color-border)}.crop-footer .btn-primary{width:100%}.style-view{display:flex;flex-direction:column;height:100dvh}.style-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.style-title{font-weight:600;font-size:1rem;color:var(--color-text)}.preview-container{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:12px;background:#0a0c0f}.preview-container canvas{max-width:100%;max-height:100%;border-radius:4px;box-shadow:0 2px 12px #0006}.style-selector{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;background:var(--color-surface)}.style-btn{flex:1;min-width:0;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius);background:#ffffff0a;color:var(--color-text-muted);font-size:.85rem;cursor:pointer;transition:all .15s;white-space:nowrap}.style-btn.selected{border-color:var(--color-accent-focus);background:var(--color-accent-glow);color:var(--color-primary);font-weight:600}.exif-info{padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px;font-size:.75rem;color:var(--color-text-muted);background:var(--color-surface)}.exif-info span{background:#ffffff0f;padding:4px 8px;border-radius:4px}.style-footer{padding:12px 16px;background:var(--color-surface);border-top:1px solid var(--color-border)}.style-footer .btn-primary{width:100%}.sending-view{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;gap:16px}.spinner-large{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.sending-text{color:var(--color-text-muted);font-size:1rem}.success-view{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;text-align:center;padding:24px}.success-check{width:64px;height:64px;border-radius:50%;background:var(--color-accent-glow);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;margin-bottom:16px;animation:popIn .4s ease-out}@keyframes popIn{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.success-title{color:var(--color-primary);font-size:1.5rem;margin:0 0 8px}.success-hint{color:var(--color-text-muted);font-size:.9rem;margin:0}.error-view{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;text-align:center;padding:24px;gap:16px}.error-icon{width:56px;height:56px;border-radius:50%;background:var(--color-error-bg);color:var(--color-error);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700}.error-message{color:var(--color-text-muted);font-size:.95rem;margin:0}.error-view .btn-primary{min-width:120px}
