:root{--red:#e2382b;--ink:#1d1d1f;--muted:#6b6b70;--line:#e5e5ea;--bg:#f5f5f7;--green:#1c8b4a}
*{box-sizing:border-box}
body.admin{margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--red)}
.abar{display:flex;align-items:center;gap:24px;padding:10px 24px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.abrand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:700}
.abar nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-left:auto}
.abar nav a,.abar nav .linkbtn{padding:6px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:14px;background:none;border:0;cursor:pointer;font-family:inherit}
.abar nav a.on{background:var(--bg);font-weight:600}
.awrap{max-width:1100px;margin:0 auto;padding:24px 16px 80px}
h1{font-size:26px;margin:0 0 12px}h1 .muted{font-size:15px;font-weight:400}
h2{font-size:18px;margin:0 0 8px}
.muted{color:var(--muted)}.nowrap{white-space:nowrap}
.help{color:var(--muted);margin:0 0 16px}
.flash{padding:12px 16px;border-radius:10px;margin:0 0 16px}.flash.ok{background:#e4f6ea;color:#155c31}.flash.err{background:#fdeceb;color:#8e1e14}.flash ul{margin:0;padding-left:18px}
.btn{display:inline-block;background:var(--red);color:#fff;border:0;border-radius:10px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn.sm{padding:6px 12px;font-size:13px}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost.red{color:var(--red);border-color:var(--red)}
.toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.toolbar h1{margin:0;flex:1}
.search{display:flex;gap:6px}.search input{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
table.list{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.list th,.list td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.list th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.list .r{text-align:right}.list td.thumb{width:64px;padding:6px}.list td.thumb img{width:52px;height:40px;object-fit:cover;border-radius:6px;display:block}
.list a.name{color:var(--ink);font-weight:600;text-decoration:none}.list tr.sold td{opacity:.6}.list tr.trashed td{opacity:.45}
.list td.actions{white-space:nowrap;text-align:right}.list td.actions form{display:inline}.list td.actions>*{margin-left:4px}
.tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600}.tag.red{background:#fdeceb;color:var(--red)}.tag.green{background:#e4f6ea;color:var(--green)}.tag.gray{background:#eee;color:#555}
.card{background:#fff;border-radius:12px;padding:20px;margin:0 0 20px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.form label{display:block;font-weight:600;font-size:13px;margin:0 0 12px}
.form input:not([type=checkbox]),.form textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-weight:400}
.form label.check{display:flex;align-items:center;gap:8px;font-weight:400;padding:10px;background:var(--bg);border-radius:8px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.row4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:700px){.row2,.row4{grid-template-columns:1fr}}
#editor{min-height:180px;background:#fff;font-size:15px;margin-bottom:12px}.ql-toolbar.ql-snow,.ql-container.ql-snow{border-color:var(--line)}.ql-toolbar.ql-snow{border-radius:8px 8px 0 0}.ql-container.ql-snow{border-radius:0 0 8px 8px}
.form .actions{display:flex;gap:10px;align-items:center}
.photos{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.photos figure{margin:0;position:relative;width:140px;height:105px;cursor:grab;border-radius:8px;overflow:hidden;border:2px solid transparent}
.photos figure:first-child{border-color:var(--red)}.photos figure.dragging{opacity:.4}
.photos img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.photos .del{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:16px;line-height:1}
.upload{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.upload label{font-size:13px;font-weight:600}.upload input{display:block;margin-top:4px}
.danger{margin-top:30px}
.crumbs{margin:0 0 6px}.crumbs a{text-decoration:none}
.revs .changes{margin:4px 0 0;padding-left:18px;font-size:13px}.revs .changes s{color:var(--muted)}
.pagination{display:flex;gap:6px;list-style:none;padding:0}
body.login{display:flex;min-height:100vh;align-items:center;justify-content:center}
.loginbox{background:#fff;padding:32px;border-radius:14px;width:340px;box-shadow:0 2px 10px rgba(0,0,0,.06)}.loginbox h1{margin:12px 0 16px}
.loginbox label{display:block;font-weight:600;font-size:13px;margin-bottom:12px}.loginbox input{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
.loginbox .btn{width:100%;margin-top:6px}

.photos figure .stockflag { position: absolute; left: 6px; bottom: 6px; margin: 0; }
.photos figure .stockflag button { border: 0; cursor: pointer; font: 700 11px/1 inherit; padding: 5px 8px; border-radius: 6px; background: rgba(255,255,255,.9); color: #333; }
.photos figure .stockflag button.on { background: #f7c400; color: #17191c; }
