/* 보따리움 관리자 — 모양 (2026-09-10 새 판 · 옛 admin.html 의 금색·검정을 잇는다) */
:root{--ink:#1b1b1b;--gold:#b88a2a;--gold-d:#8a6512;--line:#e7e7e7;--soft:#f6f6f4;--red:#d23b30;--ok:#1f9d57;--blue:#2f6fd6;--bg:#eceae5}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Pretendard',-apple-system,'Segoe UI','Malgun Gothic',sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;font-size:14px}
button{font-family:inherit;cursor:pointer;font-size:13px}
input,textarea,select{font-family:inherit;font-size:14px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
textarea{resize:vertical;min-height:74px;line-height:1.55}
label{display:block;font-size:12.5px;font-weight:700;margin:12px 0 6px;color:#444}
label:first-child{margin-top:0}
.muted{color:#888;font-weight:500}
.hint{font-size:12px;color:#888;margin-top:8px;line-height:1.6}
.tiny{font-size:11.5px;color:#999;margin-top:14px}
.warn{color:var(--red);font-weight:700;font-size:12.5px;margin:6px 0}
code{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;background:var(--soft);padding:2px 6px;border-radius:6px;word-break:break-all}
hr{border:0;border-top:1px solid var(--line);margin:22px 0}
h4{font-size:14px;font-weight:900;margin-bottom:8px}

/* 문 */
.gate{position:fixed;inset:0;z-index:100;background:#1b1b1b;display:flex;align-items:center;justify-content:center;padding:20px}
.gate .box{background:#fff;border-radius:18px;padding:30px 28px;width:min(400px,100%);box-shadow:0 30px 80px rgba(0,0,0,.4)}
.gate h1{font-size:19px;font-weight:900;letter-spacing:-.4px;text-align:center;margin-bottom:16px}
.gate h1 b,.brand b{color:var(--gold)}
.gate p{font-size:13px;color:#666;margin-bottom:10px}
.gate .err{color:var(--red);font-size:12.5px;font-weight:700;margin-top:10px;min-height:16px}
.primary{margin-top:14px;width:100%;height:46px;border:0;border-radius:11px;background:var(--ink);color:#fff;font-weight:800;font-size:15px}
.primary:disabled{opacity:.5;cursor:default}
.b-ghost{background:transparent;color:#bbb;border:1px solid #444;border-radius:9px;padding:8px 12px;font-weight:800}
.b-ghost.sm{color:#666;border-color:var(--line);padding:6px 10px;font-size:12.5px}
.b-danger{background:#fbecea;color:var(--red);border:0;border-radius:10px;padding:11px 16px;font-weight:800;margin-top:10px}
.b-add{background:var(--ink);color:#fff;border:0;border-radius:8px;padding:7px 11px;font-size:12.5px;font-weight:800}

/* 위 줄 · 메뉴 */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#1b1b1b;color:#fff;padding:10px 18px}
.top .brand{font-weight:900;letter-spacing:-.3px;white-space:nowrap}
.top .sp{flex:1}
.top .who{font-size:12.5px;color:#bbb}
.menu{display:flex;gap:4px;flex-wrap:wrap}
.menu button{background:transparent;color:#ccc;border:0;border-radius:8px;padding:8px 12px;font-weight:800}
.menu button.on{background:#33312c;color:#fff}
.menu button:hover{color:#fff}

/* 판·표 */
.view{max-width:1240px;margin:18px auto;padding:0 16px}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:16px}
.panel.narrow{max-width:760px}
.ph{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ph h2{font-size:15px;font-weight:900}
.ph .cnt{color:#999;font-weight:700;font-size:13px;margin-left:6px}
.tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tools input,.tools select{width:auto;min-width:160px;padding:7px 10px;font-size:13px}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th,.tbl td{padding:8px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}
.tbl th{font-size:11.5px;color:#888;font-weight:800}
.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:var(--soft)}
.tbl .id{font-family:ui-monospace,Consolas,monospace;font-weight:700}
.tblwrap{overflow-x:auto}
.pager{display:flex;gap:6px;justify-content:center;margin-top:10px}
.pager button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 10px}
.pager button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.st{display:inline-block;font-size:11px;font-weight:800;border-radius:20px;padding:2px 9px;color:#fff;background:#888}
.st.pending{background:#c9971c}.st.paid{background:var(--blue)}.st.preparing{background:#7b5fd6}.st.shipping{background:#1f9d9d}.st.done{background:var(--ok)}
.st.cancelled,.st.expired{background:#999}.st.refunded{background:#b35b8c}.st.mismatch{background:var(--red)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.card .k{font-size:12px;color:#888;font-weight:700}
.card .v{font-size:22px;font-weight:900;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.card .s{font-size:12px;color:#666;margin-top:2px}
.card.warn{border-color:#f0c9c6;background:#fff8f7}
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px}
.kv dt{color:#888;font-weight:700}
.kv dd{font-variant-numeric:tabular-nums;word-break:break-all}

/* 겹판 */
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:30px 12px;overflow:auto}
.mbox{background:#fff;border-radius:16px;width:min(560px,100%);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.mbox.wide{width:min(900px,100%)}
.mh{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.mh h3{font-size:15px;font-weight:900}
.mh .x{border:0;background:transparent;font-size:22px;line-height:1;color:#888}
.mb{padding:16px 18px}
.mb .sec{margin-bottom:16px}
.mb h4{font-size:13px;font-weight:900;color:#555;margin-bottom:6px}
.items{width:100%;border-collapse:collapse;font-size:13px}
.items td{padding:6px 4px;border-bottom:1px solid var(--line)}
.items td.r{text-align:right;font-variant-numeric:tabular-nums}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.log{font-size:12px;color:#777;line-height:1.7}

/* 제품 */
.wrap2{display:grid;grid-template-columns:330px 1fr;gap:16px}
.leftcol{display:flex;flex-direction:column;gap:14px}
.cat-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cat-hd h2{font-size:14px;font-weight:900}
.crow{display:flex;align-items:center;gap:6px;margin-top:8px}
.crow .cdot{width:11px;height:11px;border-radius:50%;flex:none}
.crow .cn{flex:1.2;min-width:0;padding:7px 9px;font-size:12.5px;font-weight:700}
.crow .ce{flex:1;min-width:0;padding:7px 9px;font-size:11.5px;color:#777}
.crow .ccnt{font-size:11px;color:#999;font-weight:700;flex:none;white-space:nowrap}
.crow .cmv{display:flex;gap:2px;flex:none}
.crow .cmv button,.ord button{width:22px;height:26px;border:1px solid var(--line);background:#fafafa;border-radius:6px;color:#666;font-size:10px;padding:0}
.crow .cdel,.drow .x{flex:none;width:26px;height:26px;border:0;background:#fbecea;color:var(--red);border-radius:6px;font-weight:900;font-size:12px}
.cd{margin:5px 0 4px 18px;width:calc(100% - 18px);padding:6px 9px;font-size:11.5px;color:#888;background:var(--soft)}
.c0{background:#b88a2a!important}.c1{background:#5b6b7a!important}.c2{background:#3f8f6b!important}.c3{background:#a8557c!important}.c4{background:#5566a8!important}.c5{background:#b5642e!important}
.plist{max-height:60vh;overflow:auto}
.pitem{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;cursor:pointer}
.pitem:hover{background:var(--soft)}
.pitem.sel{background:#f3ecdd;outline:1px solid #e4d4a8}
.pitem .th{width:42px;height:42px;border-radius:8px;object-fit:cover;background:var(--soft);flex:none;border:1px solid var(--line)}
.pitem .meta{min-width:0;flex:1}
.pitem .nm{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pitem .tag{font-size:10.5px;font-weight:700;color:#fff;border-radius:20px;padding:1px 8px;display:inline-block;margin-top:2px;background:#888}
.pitem .off{font-size:10.5px;font-weight:700;color:#999;margin-left:6px}
.ord{display:flex;flex-direction:column;gap:2px}
.form{padding:4px 2px}
.form .empty{color:#999;text-align:center;padding:60px 0;font-weight:600}
.grid2f{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.preview-card{display:flex;gap:14px;align-items:center;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}
.preview-card img{width:64px;height:64px;border-radius:9px;object-fit:cover;border:1px solid var(--line);background:#fff;flex:none}
.preview-card .pc-nm{font-weight:800;font-size:14px}
.preview-card .pc-pr{font-size:13px;margin-top:3px}
.preview-card .pc-pr .w{color:#aaa;text-decoration:line-through;margin-right:6px}
.preview-card .pc-pr .n{font-weight:900;color:var(--red)}
.imgbox img{max-width:160px;border-radius:9px;border:1px solid var(--line);display:block;margin-bottom:8px}
.filebtn{display:inline-block;background:var(--ink);color:#fff;border-radius:8px;padding:8px 12px;font-size:12.5px;font-weight:800;cursor:pointer}
.filebtn input{display:none}
.dlist{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.drow{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:7px 9px;background:#fff}
.drow img{width:46px;height:60px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none;background:var(--soft)}
.drow .u{flex:1;font-size:11.5px;color:#888;word-break:break-all;max-height:40px;overflow:hidden}
.drow .mv{display:flex;gap:3px}
.drow .mv button{width:26px;height:30px;border:1px solid var(--line);background:#fafafa;border-radius:6px;color:#666}
.row-actions{display:flex;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line);flex-wrap:wrap}
.row-actions .del{background:#fbecea;color:var(--red);border:0;border-radius:10px;padding:11px 16px;font-weight:800}
.row-actions .dup,.b-line{background:var(--soft);color:#444;border:1px solid var(--line);border-radius:10px;padding:11px 16px;font-weight:800}
.row-actions .save{background:var(--gold);color:#241a05;border:0;border-radius:10px;padding:11px 18px;font-weight:900;margin-left:auto}
.chk{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin:12px 0 4px}
.chk input{width:auto}
.qrbox{width:200px;height:200px;margin:10px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.qrbox canvas{width:100%;height:100%;display:block}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);opacity:0;background:#1b1b1b;color:#fff;padding:12px 20px;border-radius:30px;font-weight:700;font-size:13.5px;transition:.3s;z-index:60;pointer-events:none;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:900px){.wrap2,.grid2{grid-template-columns:1fr}.grid2f,.row2{grid-template-columns:1fr}.tbl{font-size:12px}.view{padding:0 10px}}

[hidden]{display:none!important}.wallet-address{width:100%}.wallet-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.wallet-link{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.wallet-msg{line-height:1.6}.table-scroll{overflow-x:auto}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e4e8ee;padding:18px 0}.admin-row code{display:block;overflow-wrap:anywhere;margin:8px 0}.panel>p,.panel>h2,.panel>h3{margin:18px}.gate .box{max-width:560px}.panel>.tools{padding:18px}.primary{display:inline-block;text-decoration:none}.tbl{display:block;overflow-x:auto;width:100%}.tbl tbody{width:100%}.modal .mbox{max-height:90dvh;overflow-y:auto}@media(max-width:600px){.top{position:static;flex-wrap:wrap;padding:12px}.menu{display:flex;overflow-x:auto;max-width:100%;order:3}.view{padding:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.wrap2,.row2{display:block}.card .v{font-size:21px}.tools{flex-wrap:wrap}.tools input{min-width:0!important;max-width:100%}.panel{min-width:0}.tbl{font-size:12px}.gate{padding:16px}.admin-row{display:block}.wallet-link canvas{max-width:160px}.brand{font-size:20px}}

#adminAddress{min-width:0;flex:2}#adminName{min-width:0;flex:1}@media(max-width:600px){#view-admins .tools{display:flex;flex-direction:column;align-items:stretch}#adminAddress,#adminName{width:100%;box-sizing:border-box}}

.report-warning{margin:18px;padding:14px;border:1px solid #d9a332;background:#fff5d9;border-radius:12px;line-height:1.6}.report-warning p{margin:0 0 10px}.report-warning .tools{display:flex;gap:8px;flex-wrap:wrap}.report-warning button{max-width:100%;overflow-wrap:anywhere;white-space:normal}.card .v{overflow-wrap:anywhere}#reportStatus:empty{display:none}
