:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f7f7f5;--bg-elevated:#fff;--fg:#1a1a1a;--fg-muted:#5c5c57;--border:#d9d9d3;--accent:#1a1a1a;--accent-fg:#f7f7f5;--danger:#a32020;--focus:#0b57d0;--radius:6px;--font-sans:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#121212;--bg-elevated:#1c1c1c;--fg:#f2f2f0;--fg-muted:#a8a8a0;--border:#33332e;--accent:#f2f2f0;--accent-fg:#121212;--danger:#ff8a80;--focus:#8ab4f8}}:root[data-theme=dark]{--bg:#121212;--bg-elevated:#1c1c1c;--fg:#f2f2f0;--fg-muted:#a8a8a0;--border:#33332e;--accent:#f2f2f0;--accent-fg:#121212;--danger:#ff8a80;--focus:#8ab4f8}:root[data-theme=light]{--bg:#f7f7f5;--bg-elevated:#fff;--fg:#1a1a1a;--fg-muted:#5c5c57;--border:#d9d9d3;--accent:#1a1a1a;--accent-fg:#f7f7f5}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;line-height:1.4}button,input,select{font:inherit;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(240px,280px) 1fr minmax(260px,320px);gap:0;height:100%;display:grid}.app-header{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);background:var(--bg-elevated);grid-column:1/-1;justify-content:space-between;align-items:baseline;display:flex}.app-header h1{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:600}.app-header p{color:var(--fg-muted);margin:0;font-size:.85rem}.app-panel{padding:var(--space-4);background:var(--bg-elevated);overflow:auto}.app-panel-left{border-right:1px solid var(--border)}.app-panel-right{border-left:1px solid var(--border)}.app-panel-center{background:var(--bg);flex-direction:column;min-width:0;display:flex}.panel-title{margin:0 0 var(--space-3);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);font-size:.75rem}.stack{gap:var(--space-3);flex-direction:column;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}label.field{gap:var(--space-1);color:var(--fg-muted);flex-direction:column;font-size:.85rem;display:flex}label.field>:is(input,select){padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg)}.btn{appearance:none;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer}.btn:hover{border-color:var(--fg-muted)}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.banner{padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);font-size:.85rem}.banner-error{border-color:var(--danger);color:var(--danger)}.banner-status{color:var(--fg-muted)}.dropzone{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-5);text-align:center;color:var(--fg-muted);cursor:pointer;background:var(--bg)}.dropzone:hover,.dropzone.active{border-color:var(--fg-muted)}.photo-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.photo-list-item{gap:var(--space-2);align-items:stretch;display:flex}.photo-list-item>button:first-child{text-align:left;border:1px solid var(--border);background:var(--bg);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;flex:1}.photo-list-item>button:first-child.selected{border-color:var(--fg)}.photo-delete{flex-shrink:0;align-self:stretch}.preview-wrap{padding:var(--space-4);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow:auto}.preview-canvas{max-width:100%;height:auto;box-shadow:0 1px 0 var(--border), 0 8px 24px #00000014;background:#fff}.disclaimer{color:var(--fg-muted);font-size:.75rem}.accordion{border-bottom:1px solid var(--border);padding-bottom:var(--space-3);margin-bottom:var(--space-3)}.accordion>summary.panel-title{cursor:pointer;margin-bottom:var(--space-2);list-style:none}.accordion>summary::-webkit-details-marker{display:none}.accordion-body{padding-top:var(--space-1)}.crop-pad{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-5);text-align:center;color:var(--fg-muted);touch-action:none;-webkit-user-select:none;user-select:none;background:var(--bg);cursor:grab;font-size:.85rem}.crop-pad:active{cursor:grabbing}.empty-state{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.empty-state strong{margin-bottom:var(--space-1);display:block}.progress{gap:var(--space-1);flex-direction:column;display:flex}.progress-track{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:var(--fg-muted);width:40%;height:100%;animation:1.2s ease-in-out infinite progress-pulse}@media (prefers-reduced-motion:reduce){.progress-fill{width:100%;animation:none}}@keyframes progress-pulse{0%{transform:translate(-100%)}to{transform:translate(250%)}}.btn{transition:border-color .12s,transform 80ms}.btn:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active{transform:none}}.quick-actions{display:none}@media (width<=800px){.app-shell{grid-template-rows:auto auto auto auto auto;grid-template-columns:1fr;padding-bottom:72px}.app-panel-left,.app-panel-right{border:none;border-bottom:1px solid var(--border)}.app-panel-center{min-height:50vh}.quick-actions{gap:var(--space-2);z-index:20;padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border-top:1px solid var(--border);grid-column:1/-1;display:flex;position:sticky;bottom:0}.quick-actions .btn{flex:1}}
