:root{--ink:#1d1b19;--sub:#6f6a64;--line:#e8e3dc;--bg:#faf8f5;--card:#fff;--accent:#9c2b1f;--accent2:#c9a227;--ok:#2f7d4f;--warn:#b26b00;--bad:#b3261e}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR",sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.55;display:flex;min-height:100vh}
a{color:var(--accent);text-decoration:none}
.side{width:210px;flex:none;background:#1d1b19;color:#d9d3cb;padding:22px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{font-size:12px;letter-spacing:.12em;color:#fff;margin:0 8px 22px}.brand b{font-size:15px}.brand span{background:var(--accent);color:#fff;font-size:10px;padding:1px 6px;border-radius:3px;margin-left:4px;vertical-align:2px}
.side nav a,.side nav .soon{display:block;color:#d9d3cb;padding:7px 10px;border-radius:6px;margin:1px 0}
.side nav a:hover{background:#2e2b28}.side nav a.on{background:var(--accent);color:#fff}
.side .grp{font-size:11px;color:#8a837b;margin:16px 10px 4px}
.side .soon{color:#6b655e;font-size:13px}
.main{flex:1;padding:28px 34px;max-width:1280px}.main.solo{margin:80px auto;max-width:380px}
h1{font-size:22px;margin:0 0 18px}h2{font-size:16px;margin:26px 0 10px}
.muted{color:var(--sub)}.small{font-size:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:16px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:1fr 1fr}
@media(max-width:900px){.g4,.g3,.g2{grid-template-columns:1fr 1fr}.side{display:none}.main{padding:16px}}
.kpi .n{font-size:26px;font-weight:700}.kpi .l{color:var(--sub);font-size:12px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left;vertical-align:top}
th{font-size:12px;color:var(--sub);font-weight:600;background:#f6f3ee}
.btn,button{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 12px;border-radius:7px;cursor:pointer;font-size:13px;font-family:inherit}
.btn.p,button.p{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.s,button.s{padding:4px 9px;font-size:12px}
input[type=text],input[type=number],input[type=password],input[type=tel],select,textarea{border:1px solid #d8d2c9;border-radius:7px;padding:7px 9px;font:inherit;background:#fff;width:100%}
textarea{min-height:70px}
form.inline{display:inline}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:140px}
label{font-size:12px;color:var(--sub);display:block;margin-bottom:3px}
label.check{display:inline-flex;gap:6px;align-items:center;color:var(--ink);font-size:13px}
.field{margin-bottom:12px}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px}.flash.ok{background:#e7f4ec;color:var(--ok)}.flash.error{background:#fbe9e7;color:var(--bad)}
.tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:10px;background:#efebe5;color:#5b554e;white-space:nowrap}
.tag.smartstore{background:#e5f5ea;color:#1d7a3d}.tag.cafe24{background:#e8eefc;color:#2a4fb0}.tag.crema{background:#f6ecfa;color:#7a3d99}
.tag.posted,.tag.sent,.tag.paid,.tag.ok{background:#e7f4ec;color:var(--ok)}.tag.failed,.tag.error{background:#fbe9e7;color:var(--bad)}.tag.pending,.tag.scheduled{background:#fff4e0;color:var(--warn)}
.stars{color:var(--accent2);letter-spacing:1px}
.rv{display:grid;grid-template-columns:1fr 340px;gap:16px}
@media(max-width:1100px){.rv{grid-template-columns:1fr}}
.thumbs img{width:64px;height:64px;object-fit:cover;border-radius:6px;margin:4px 4px 0 0;border:1px solid var(--line)}
.reply{background:#f6f3ee;border-radius:8px;padding:8px 10px;margin-top:8px;font-size:13px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters a{padding:5px 11px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);font-size:12px}.filters a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.bar{height:8px;background:#efebe5;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.steps li{margin-bottom:6px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot.ok{background:var(--ok)}.dot.no{background:#c9c2b8}.dot.error{background:var(--bad)}
.pager{margin-top:12px;display:flex;gap:8px;align-items:center}
code{background:#f1ede7;padding:1px 5px;border-radius:4px;font-size:12px}
.rhead{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
