.toolbar{grid-template-columns:1fr auto}.source-bar{display:flex;align-items:center;gap:16px;padding:22px 32px;border-bottom:1px solid var(--line);min-height:100px}.source-bar img{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:10px;border:1px solid var(--line)}.source-info{flex:1;min-width:0}.source-info h1{font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-info p{margin:6px 0 0;color:var(--muted);font-size:.6875rem}.source-info p[data-state="error"]{color:var(--error)}.preview-panel{height:calc(100dvh - 165px);min-height:480px}.compare-controls{display:flex;gap:4px;padding:3px;border-radius:8px;background:var(--field)}.compare-button{border:0;background:transparent;border-radius:6px;color:var(--muted);padding:6px 14px;font-size:.75rem}.compare-button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000012}.beautify-stage{position:relative;min-height:0;display:grid}.beautify-stage>.preview-box{grid-area:1/1;min-height:0}.empty-upload{grid-area:1/1;z-index:1;align-self:center;justify-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:min(340px,80%);min-height:260px;border:1px dashed var(--line);border-radius:24px;background:var(--surface);color:var(--text);font-size:.9375rem;box-shadow:0 8px 32px #00000005}.empty-upload .upload-glyph{display:block;width:44px;height:44px;color:var(--muted)}.empty-upload small{color:var(--muted);font-size:.75rem}.beautify-stage:has(.empty-upload:not([hidden])) #genprev{visibility:hidden}.beautify-stage.drag-over{outline:2px solid var(--accent);outline-offset:-12px;border-radius:24px}.source-bar .secondary{white-space:nowrap}.source-bar[aria-busy="true"] #source-thumbnail{opacity:.5}
@media(max-width:900px){.toolbar{grid-template-columns:1fr auto}.source-bar{padding:18px 20px;gap:12px;min-height:92px}.source-bar img{width:40px;height:40px}.preview-panel{height:auto;min-height:0;grid-template-rows:auto 300px auto auto}.empty-upload{min-height:230px;width:calc(100% - 48px)}.source-info h1{font-size:.8125rem}.source-info p{font-size:.625rem}.source-bar .secondary{padding:9px 12px}.canvas-heading{padding-top:16px;padding-bottom:12px}}
.toolbar-actions{display:flex;align-items:center;gap:1.25rem;justify-self:end}
.auth-gate{min-height:calc(100dvh - 64px);display:grid;place-items:center;padding:2rem 1.25rem}
.auth-card{width:min(100%,360px);padding:2.5rem 2rem 1.5rem;border-radius:24px;background:var(--material);border:1px solid var(--line);box-shadow:0 16px 48px #00000008;text-align:center}
.auth-brand{width:52px;height:52px;margin:0 auto 1.5rem}
.auth-card h1{font-size:1.5rem;line-height:1.2;font-weight:650;letter-spacing:-.025em}
.auth-subtitle{color:var(--muted);margin:.75rem 0 1.75rem;font-size:.875rem}
.auth-password{width:100%;min-height:48px;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:1rem}
.auth-password[aria-invalid="true"]{border-color:var(--error)}
.auth-remember{display:flex;align-items:center;gap:.5rem;text-align:left;margin:1rem 0 1.5rem;font-size:.8125rem;color:var(--muted);cursor:pointer}
.auth-remember input{accent-color:var(--accent);width:16px;height:16px;margin:0}
.auth-submit{width:100%;min-height:44px;font-size:.9375rem}
.auth-submit:active{transform:scale(.98)}
.auth-status{min-height:2.5rem;padding-top:1rem;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}
.auth-status[data-state="error"]{color:var(--error)}
@media(prefers-reduced-motion:reduce){.auth-submit:active{transform:none}}
@media(max-width:900px){.auth-gate{min-height:calc(100dvh - 60px)}.auth-card{padding:2rem 1.5rem 1rem}.toolbar-actions{gap:1rem}}
.brand-copy{display:flex;align-items:baseline;gap:.875rem;min-width:0}
.brand-account{font-size:.6875rem;font-weight:400;letter-spacing:0;color:var(--muted);white-space:nowrap}
.auth-account{margin-top:.875rem;font-size:.75rem;color:var(--muted)}
@media(max-width:900px){.brand-copy{flex-direction:column;gap:0}.brand-account{font-size:.625rem}}
