:root{--bg:#f4f1ea;--panel:#fff;--ink:#1c1c1c;--muted:#6b6256;--line:#e0d9cc;--accent:#3f6b46;--accent-ink:#fff;--warn:#b8502f;font-family:Oswald,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}button{cursor:pointer;font-family:inherit}code{background:#eee;border-radius:3px;padding:0 4px;font-size:.85em}.center{text-align:center;place-content:center;gap:12px;min-height:100vh;padding:24px;display:grid}.brand{letter-spacing:4px;text-transform:uppercase;margin:0;font-weight:800}.brand--sm{letter-spacing:3px;font-size:22px}.tagline{color:var(--muted);margin:0}.signin__form{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:16px}.input:focus{outline:2px solid var(--accent)}.btn{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:600}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn--sm{padding:6px 10px;font-size:13px}.btn:disabled{opacity:.45;cursor:not-allowed}.linkbtn{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:10;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.topbar__right{align-items:center;gap:14px;display:flex}.demo{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.demo select{border:1px solid var(--line);border-radius:6px;padding:4px;font-family:inherit}.app__main{max-width:1100px;margin:0 auto;padding:24px}.section{letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:32px 0 12px;font-size:16px}.notice{border:1px solid var(--line);color:var(--muted);background:#eef3ee;border-radius:8px;padding:10px 14px}.notice--warn{color:var(--warn);background:#fbeee9;border-color:#f0d6cc}.form{grid-template-columns:1fr 360px;align-items:start;gap:28px;display:grid}.form__controls{gap:16px;display:grid}.field{gap:6px;display:grid}.field--row{grid-template-columns:1fr 1fr;gap:16px}.field__label{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:14px;display:inline-flex}.chip--on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip .dot{border-radius:50%;width:12px;height:12px;display:inline-block}.chip .glyph{font-size:15px}.actions{gap:10px;margin-top:8px;display:flex}.form__preview{gap:10px;display:grid;position:sticky;top:80px}.preview-card,.card__art{aspect-ratio:1;border:1px solid var(--line);background:#ece7df;border-radius:14px;width:100%;overflow:hidden}.preview-hint{color:var(--muted);margin:0;font-size:13px}.gallery{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.gallery-empty{color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.card__art--muted{opacity:.92}.card__bar{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.card__title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.card--failed .fail{color:var(--warn);flex:1;font-size:14px}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.form{grid-template-columns:1fr}.form__preview{position:static}}
