:root{--bg:#f6f5f1;--tile:#ecebe5;--white:#fff;--ink:#141413;--t1:#141413;--t2:#5a5750;--t3:#8e8a82;--border:#e4e1da;--pop:#5b3df5;--pop-hover:#4526e0;--pop-dim:rgba(91,61,245,0.1);--pop-border:rgba(91,61,245,0.28);--lime:#d4ff3a;--green:#1f8a5a;--green-dim:rgba(31,138,90,0.12);--red:#c0392b;--red-dim:rgba(192,57,43,0.1);--amber:#b7791f;--amber-dim:rgba(183,121,31,0.12);--r-sm:12px;--r-md:16px;--r-pill:100px;--sh-sm:0 2px 8px rgba(0,0,0,0.06);--sh-md:0 4px 20px rgba(0,0,0,0.1);--font-display:Georgia,"Times New Roman",serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{width:100%;min-height:100dvh;background:var(--bg);font-family:var(--font-body);color:var(--t1);-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}img{display:block;max-width:100%}.display{font-family:var(--font-display);font-weight:400;letter-spacing:-.3px}.display em{font-style:italic;color:var(--pop)}.marker{background:linear-gradient(transparent 62%,var(--lime) 62%)}.app-shell{width:100%;min-height:100dvh;display:flex;flex-direction:column;position:relative;background:var(--bg)}@media (min-width:768px){body{background:linear-gradient(135deg,#efece6,#f5f3ee)}.app-shell{max-width:520px;margin:0 auto;box-shadow:0 0 60px rgba(0,0,0,.06)}}.screen{flex:1 1;padding:18px 16px calc(20px + env(safe-area-inset-bottom))}.screen-title{font-family:var(--font-display);font-size:30px;margin:6px 0 14px}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}@media (min-width:420px){.grid{grid-template-columns:repeat(3,1fr)}}.tile{position:relative;background:var(--tile);border-radius:var(--r-sm);overflow:hidden;aspect-ratio:3/4;text-decoration:none;color:inherit}.tile img{width:100%;height:100%;object-fit:cover}.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:22px 8px 7px;font-size:11px;line-height:1.25;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}.tile .state{position:absolute;top:6px;left:6px;font-size:10px;font-weight:600;padding:3px 8px;border-radius:var(--r-pill);background:rgba(255,255,255,.9);color:var(--t2)}.tile .state.cataloguing{color:var(--pop)}.tile .state.error,.tile .state.rejected{color:var(--red)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:7px 12px;border-radius:var(--r-pill);border:1.5px solid var(--border);background:#fff;color:var(--t1);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.chip.on{border-color:var(--pop);background:var(--pop);color:#fff}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.8px}.field input,.field select,.field textarea{padding:12px 14px;border-radius:var(--r-sm);border:1.5px solid var(--border);background:#fff;font-family:var(--font-body);font-size:15px;color:var(--t1);outline:none;width:100%}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--pop)}.banner{padding:10px 14px;border-radius:var(--r-sm);font-size:13px;line-height:1.5;margin-bottom:14px}.banner.warn{background:var(--amber-dim);color:var(--amber)}.banner.error{background:var(--red-dim);color:var(--red)}.banner.info{background:var(--pop-dim);color:var(--pop)}.banner.ok{background:var(--green-dim);color:var(--green)}.card{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:16px;margin-bottom:14px}.muted{color:var(--t3);font-size:13px}.row{display:flex;gap:10px;align-items:center}.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--pop-border);border-top-color:var(--pop);border-radius:50%;animation:omSpin .8s linear infinite}@keyframes omSpin{to{transform:rotate(1turn)}}@keyframes omFadeIn{0%{opacity:0}to{opacity:1}}