:root{--bg-base: #131009;--bg-surface: #1c1710;--bg-raised: #25201a;--bg-hover: #2e2820;--border: #3a3028;--border-focus: #c07828;--accent: #c07828;--accent-light: #e08c38;--accent-dim: rgba(192, 120, 40, .14);--accent-glow: rgba(192, 120, 40, .22);--text-primary: #ede3d5;--text-secondary: #9a8c7c;--text-muted: #5a5048;--success: #5a9e4a;--success-bg: rgba(90, 158, 74, .1);--error: #b84838;--error-bg: rgba(184, 72, 56, .1);--radius-sm: 5px;--radius: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.45);--shadow: 0 4px 14px rgba(0,0,0,.55);--shadow-lg: 0 8px 28px rgba(0,0,0,.65);--font-display: "Playfair Display", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:.9375rem;line-height:1.6;min-height:100dvh}button{font-family:inherit;cursor:pointer;border:none;background:none}input{font-family:inherit}a{color:inherit}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2.5rem 1.5rem;border:1.5px dashed var(--border);border-radius:var(--radius);background:var(--bg-raised);cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s;outline:none;text-align:center;user-select:none}.dropzone:focus-visible{box-shadow:0 0 0 2px var(--accent)}.dropzone:hover:not(.dropzone--disabled),.dropzone--drag{border-color:var(--accent);background:var(--bg-hover);box-shadow:0 0 0 3px var(--accent-dim),inset 0 0 24px var(--accent-glow)}.dropzone--selected{border-color:var(--border-focus);border-style:solid}.dropzone--error{border-color:var(--error)}.dropzone--disabled{cursor:default;opacity:.5}.dz-icon{width:2.25rem;height:2.25rem;color:var(--accent);flex-shrink:0}.dz-body{display:flex;flex-direction:column;gap:.2rem}.dz-primary{font-size:1rem;font-weight:500;color:var(--text-primary)}.dz-secondary{font-size:.8125rem;color:var(--text-secondary)}.dz-filename{font-size:.9375rem;font-weight:500;color:var(--text-primary);word-break:break-all}.dz-meta{font-size:.8125rem;color:var(--text-secondary)}.dz-error{margin-top:.25rem;font-size:.8125rem;color:var(--error)}.result-panel{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem;background:var(--success-bg);border:1px solid rgba(90,158,74,.35);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);border-radius:var(--radius)}.rp-header{display:flex;align-items:center;gap:.5rem}.rp-check{width:1.25rem;height:1.25rem;color:var(--success);flex-shrink:0}.rp-title{font-size:.9375rem;font-weight:500;color:var(--success)}.rp-stats{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.stat-block{display:flex;flex-direction:column;gap:.1rem}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.0625rem;font-weight:600;color:var(--text-primary)}.stat-arrow{width:1.25rem;height:1.25rem;color:var(--text-muted);flex-shrink:0}.stat-badge{padding:.2rem .55rem;border-radius:999px;font-size:.8125rem;font-weight:600}.stat-badge--good{background:var(--success-bg);color:var(--success);border:1px solid rgba(90,158,74,.3);border:1px solid color-mix(in srgb,var(--success) 30%,transparent)}.stat-badge--neutral{background:var(--bg-raised);color:var(--text-secondary);border:1px solid var(--border)}.rp-previews{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.preview{display:flex;flex-direction:column;gap:.3rem}.preview-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.preview-canvas{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;overflow:hidden}.preview-canvas img{max-width:100%;max-height:100%;object-fit:contain}.rp-actions{display:flex;flex-direction:column;gap:.6rem}.btn-download{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.25rem;background:var(--accent);color:#fff;font-size:.9375rem;font-weight:600;border-radius:var(--radius-sm);text-decoration:none;transition:background .15s}.btn-download:hover{background:var(--accent-light)}.btn-download svg{width:1.1rem;height:1.1rem;flex-shrink:0}.btn-reset{padding:.6rem 1rem;color:var(--text-secondary);font-size:.875rem;border-radius:var(--radius-sm);transition:color .15s}.btn-reset:hover{color:var(--text-primary)}.app{display:flex;flex-direction:column;min-height:100dvh}.app-header{background:var(--bg-surface);border-bottom:1px solid var(--border)}.app-header-inner{max-width:540px;margin:0 auto;padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.logo{display:flex;align-items:center;gap:.5rem}.logo-icon{width:1.4rem;height:1.4rem;color:var(--accent);flex-shrink:0}.logo-name{font-family:var(--font-display);font-size:1.375rem;font-weight:500;color:var(--text-primary);letter-spacing:-.01em}.logo-tagline{font-size:.8125rem;color:var(--text-secondary);font-weight:400}.app-main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1rem}.card{width:100%;max-width:540px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow-lg)}.adv-toggle{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--text-secondary);padding:0;transition:color .15s}.adv-toggle:hover{color:var(--text-primary)}.adv-chevron{width:1rem;height:1rem;transition:transform .18s;flex-shrink:0}.adv-chevron--open{transform:rotate(180deg)}.adv-body{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.6rem;max-height:300px;overflow:hidden;opacity:1;transition:max-height .22s ease,opacity .18s ease,margin-top .18s ease}.adv-body--collapsed{max-height:0;opacity:0;margin-top:0;pointer-events:none}.field{display:flex;flex-direction:column;gap:.3rem}.field-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.field-input{padding:.45rem .7rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .15s,box-shadow .15s}.field-input::placeholder{color:var(--text-muted)}.field-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-dim)}.field-input--invalid{border-color:var(--error)}.field-input--invalid:focus{box-shadow:0 0 0 2px #b8483826}.field-input:disabled{opacity:.45;cursor:not-allowed}.field-hint{font-size:.75rem;color:var(--error)}.actions{display:flex;flex-direction:column;gap:.6rem}.btn-optimize{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;border-radius:var(--radius-sm);transition:background .15s,opacity .15s}.btn-optimize:hover:not(:disabled){background:var(--accent-light)}.btn-optimize:disabled{opacity:.4;cursor:not-allowed}.spinner{width:1.1rem;height:1.1rem;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.progress-wrap{display:flex;flex-direction:column;gap:.35rem}.progress-track{height:4px;background:var(--bg-raised);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .25s ease;will-change:width}.progress-label{font-size:.75rem;color:var(--text-secondary);text-align:right}.app-error{font-size:.875rem;color:var(--error);background:var(--error-bg);border:1px solid rgba(184,72,56,.25);border:1px solid color-mix(in srgb,var(--error) 25%,transparent);border-radius:var(--radius-sm);padding:.6rem .85rem}.app-footer{text-align:center;padding:1.25rem;font-size:.8125rem;color:var(--text-muted)}.app-footer a{color:var(--accent);text-decoration:none}.app-footer a:hover{text-decoration:underline}@media(max-width:480px){.card{padding:1.25rem;border-radius:var(--radius)}.adv-body{grid-template-columns:1fr;max-height:400px}.app-main{padding:1.5rem .75rem;align-items:stretch}}
