:root{--bg:#f7f5f1;--card:#fff;--ink:#1c1c1e;--mut:#6d6a65;--acc:#6b1e2e;--acc-ink:#fff;--bd:#e4dfd6;--soft:#efe9df;--ok:#2e7d4f;--err:#b3261e;--r:14px;--sh:0 6px 22px rgba(0,0,0,.07);box-sizing:border-box}
@media (prefers-color-scheme:dark){:root{--bg:#141312;--card:#1e1c1a;--ink:#f1ede6;--mut:#a29b90;--acc:#c0566b;--bd:#35312b;--soft:#2a2723;--sh:0 6px 22px rgba(0,0,0,.4)}}
*{box-sizing:border-box}html{scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 "Helvetica Neue",Arial,sans-serif}
h1,h2,h3,.brand{font-family:Georgia,"Times New Roman",serif;letter-spacing:.01em}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
header.top{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--bd)}
.bar{display:flex;align-items:center;gap:16px;height:62px}
.brand{font-size:1.45rem;font-weight:700;letter-spacing:.14em}
.search{flex:1;max-width:380px;position:relative}
.search input{width:100%;padding:9px 14px;border:1px solid var(--bd);border-radius:99px;background:var(--bg);color:var(--ink)}
.sug{position:absolute;top:44px;inset-inline:0;background:var(--card);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sh);overflow:hidden}
.sug a{display:block;padding:9px 14px}.sug a:hover{background:var(--soft)}
nav.cats{display:flex;gap:4px;overflow-x:auto;padding-bottom:8px}
nav.cats a{padding:6px 14px;border-radius:99px;white-space:nowrap;color:var(--mut);font-size:.93rem}
nav.cats a:hover,nav.cats a.on{background:var(--soft);color:var(--ink)}
.icons{display:flex;gap:6px;margin-inline-start:auto}
.ib{background:none;border:1px solid var(--bd);border-radius:99px;padding:7px 13px;color:var(--ink)}
.ib b{background:var(--acc);color:var(--acc-ink);border-radius:99px;padding:0 7px;margin-inline-start:4px;font-size:.8rem}
.hero{margin:20px 0;border-radius:22px;padding:56px 34px;color:#f5f1ea;background:linear-gradient(120deg,#2b1218,#6b1e2e 60%,#8a3a4a)}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);margin:0 0 10px;line-height:1.1}.hero p{max-width:520px;opacity:.9;margin:0 0 22px}
.btn{display:inline-block;background:var(--acc);color:var(--acc-ink);border:0;border-radius:99px;padding:12px 24px;font-weight:600}
.btn.alt{background:transparent;color:var(--ink);border:1px solid var(--ink)}.hero .btn{background:#f5f1ea;color:#2b1218}
.btn:disabled{opacity:.45;cursor:not-allowed}.btn.full{width:100%;text-align:center}
section.blk{margin:34px 0}.blk>h2{margin:0 0 14px;font-size:1.5rem;display:flex;justify-content:space-between;align-items:baseline}
.blk>h2 a{font:.9rem Arial;color:var(--acc)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s;position:relative;display:block}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.card img{width:100%;aspect-ratio:5/6;object-fit:cover;display:block;background:var(--soft)}
.card .bd{padding:12px 14px 14px}.card .cat{font-size:.78rem;color:var(--mut);text-transform:uppercase;letter-spacing:.08em}
.card .nm{font-weight:600;margin:2px 0 6px}.price b{font-size:1.05rem}.price s{color:var(--mut);margin-inline-start:8px;font-size:.9rem}
.badge{position:absolute;top:10px;inset-inline-start:10px;background:var(--acc);color:var(--acc-ink);border-radius:99px;padding:2px 10px;font-size:.78rem;font-weight:700}
.dots{display:flex;gap:5px;margin:6px 0}.dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--bd)}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;align-items:center}
.filters select,.filters input,.f select,.f input,.f textarea{padding:9px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--card);color:var(--ink);font:inherit}
.filters input[type=number]{width:104px}
.pager{display:flex;gap:8px;justify-content:center;margin:26px 0}.pager button{padding:8px 14px;border-radius:10px;border:1px solid var(--bd);background:var(--card);color:var(--ink)}.pager button.on{background:var(--acc);color:var(--acc-ink)}
.pd{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin:26px 0}.pd img{width:100%;border-radius:var(--r);border:1px solid var(--bd)}
@media(max-width:760px){.pd{grid-template-columns:1fr}.hero{padding:36px 22px}.search{display:none}}
.opts{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
.opt{border:1px solid var(--bd);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:10px}.opt.on{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc)}.opt:disabled{opacity:.35;text-decoration:line-through}
.sw{width:34px;height:34px;border-radius:50%;padding:0}
.qty{display:inline-flex;border:1px solid var(--bd);border-radius:10px;overflow:hidden;background:var(--card)}.qty button{background:none;border:0;padding:8px 14px;color:var(--ink)}.qty span{padding:8px 14px;min-width:46px;text-align:center}
.row{display:flex;gap:12px;flex-wrap:wrap}
.panel{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:20px;margin:18px 0}
.f label{display:block;font-weight:600;margin:12px 0 4px;font-size:.92rem}.f input,.f textarea,.f select{width:100%}
.line{display:flex;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--bd)}.line img{width:64px;height:76px;object-fit:cover;border-radius:8px}.line .g{flex:1}
.tot{display:flex;justify-content:space-between;font-size:1.2rem;font-weight:700;margin-top:14px}
.msg{padding:10px 14px;border-radius:10px;margin:12px 0}.msg.err{background:#fde8e6;color:var(--err)}.msg.ok{background:#e4f3ea;color:var(--ok)}
@media(prefers-color-scheme:dark){.msg.err{background:#3a1d1a}.msg.ok{background:#17301f}}
.mut{color:var(--mut)}.center{text-align:center}.empty{padding:50px 0;text-align:center;color:var(--mut)}
.spin{padding:50px;text-align:center;color:var(--mut)}
footer{margin-top:60px;padding:30px 0;border-top:1px solid var(--bd);color:var(--mut);font-size:.9rem}
/* chat */
body.chat{height:100vh;height:100dvh;display:flex;flex-direction:column}
.chead{display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--card);border-bottom:1px solid var(--bd)}
.chead h1{font-size:1.1rem;margin:0}.chead .sp{flex:1}
.state{font-size:.82rem;padding:3px 10px;border-radius:99px;background:var(--soft)}.state.ok{color:var(--ok)}.state.warn{color:var(--err)}
#log{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:8px;max-width:760px;width:100%;margin:0 auto}
.m{max-width:80%;background:var(--soft);padding:8px 13px;border-radius:14px;word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap}
.m b{display:block;font-size:.76rem;color:var(--mut);font-weight:600}.m small{color:var(--mut);font-size:.7rem;margin-inline-start:6px}
.m.me{align-self:flex-end;background:var(--acc);color:var(--acc-ink)}.m.me b,.m.me small{color:inherit;opacity:.8}.m.del{opacity:.5;font-style:italic}
.cform{display:flex;gap:8px;padding:12px 18px;background:var(--card);border-top:1px solid var(--bd);max-width:760px;width:100%;margin:0 auto}
.cform input{flex:1;padding:12px 14px;border:1px solid var(--bd);border-radius:99px;background:var(--bg);color:var(--ink);font:inherit}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:start;padding:8px 10px;border-bottom:1px solid var(--bd);vertical-align:top}
.tabs{display:flex;gap:6px;margin:16px 0;flex-wrap:wrap}.tabs button{padding:8px 16px;border-radius:99px;border:1px solid var(--bd);background:var(--card);color:var(--ink)}.tabs button.on{background:var(--acc);color:var(--acc-ink)}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.stat{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px}.stat b{font-size:1.5rem;display:block}
.sm{padding:5px 10px;font-size:.85rem}.in{width:90px;padding:5px 8px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--ink)}
/* chat media */
.cform .iconbtn{width:44px;height:44px;border-radius:50%;border:1px solid var(--bd);background:var(--card);color:var(--ink);font-size:1.15rem;flex:none}
.cform .iconbtn:disabled{opacity:.4;cursor:not-allowed}.iconbtn.rec{background:var(--err);color:#fff;border-color:var(--err);animation:pulse 1.2s infinite}
@keyframes pulse{50%{opacity:.6}}
.tray{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 18px;background:var(--card);border-top:1px solid var(--bd);max-width:760px;width:100%;margin:0 auto}
.tray img.pv{height:72px;max-width:120px;object-fit:cover;border-radius:10px}.tray audio{height:38px;max-width:100%}.tray .g{flex:1;min-width:140px}.tray .t{font-variant-numeric:tabular-nums;font-weight:700}
.tray .dotrec{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--err);margin-inline-end:8px;animation:pulse 1.2s infinite}
.m img.att{display:block;max-width:min(260px,100%);max-height:260px;border-radius:10px;cursor:zoom-in;margin-top:4px;background:var(--soft)}
.m audio{display:block;width:min(260px,100%);height:40px;margin-top:4px}.m .na{opacity:.7;font-style:italic}
dialog#lb{border:0;border-radius:var(--r);padding:12px;background:var(--card);color:var(--ink);max-width:94vw;max-height:94vh}dialog#lb::backdrop{background:rgba(0,0,0,.75)}
dialog#lb img{display:block;max-width:88vw;max-height:80vh;margin:0 auto 10px;border-radius:8px}dialog#lb button{display:block;margin:0 auto}
@media(max-width:520px){.m{max-width:92%}.tray{padding:8px 12px}}
/* admin */
.atabs{display:flex;gap:6px;margin:14px 0;flex-wrap:wrap;overflow-x:auto}.atabs button{padding:8px 16px;border-radius:99px;border:1px solid var(--bd);background:var(--card);color:var(--ink);white-space:nowrap}.atabs button.on{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
.fbar{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.fbar label{font-size:.8rem;color:var(--mut);display:block}.fbar input,.fbar select{padding:8px 10px;border:1px solid var(--bd);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;max-width:170px}
.tw{overflow-x:auto}.pill{display:inline-block;padding:1px 10px;border-radius:99px;background:var(--soft);font-size:.8rem}.pill.active,.pill.delivered,.pill.confirmed{color:var(--ok)}.pill.revoked,.pill.cancelled,.pill.disabled,.pill.suspended{color:var(--err)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}.kv dt{color:var(--mut)}.kv dd{margin:0}
.warn{color:var(--err)}.okc{color:var(--ok)}
dialog.dl{border:1px solid var(--bd);border-radius:var(--r);padding:20px;background:var(--card);color:var(--ink);max-width:min(560px,94vw);width:100%}dialog.dl::backdrop{background:rgba(0,0,0,.6)}
dialog.dl img{max-width:100%;border-radius:8px}dialog.dl audio{width:100%}
.ctx .m{max-width:100%;margin:4px 0}.ctx .t{outline:2px solid var(--acc)}
@media(max-width:640px){.fbar input,.fbar select{max-width:100%;flex:1 1 130px}th,td{padding:6px}}
.tray[hidden]{display:none}
