/* 관리자 전용 스타일 */
.admin-tabs{display:flex;gap:8px;padding:16px 20px 0;background:#fff;border-bottom:1px solid var(--line);}
.admin-tabs .tab{border:none;background:transparent;padding:12px 18px;font-size:15px;font-weight:800;color:var(--muted);border-bottom:3px solid transparent;border-radius:0;}
.admin-tabs .tab.active{color:var(--brand);border-bottom-color:var(--brand);}
.tab-panel{padding:22px;}

.stat-row{display:flex;gap:14px;margin-bottom:18px;}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 22px;min-width:140px;}
.sc-num{font-size:30px;font-weight:900;color:var(--brand);}
.sc-lbl{font-size:13px;color:var(--muted);font-weight:700;margin-top:2px;}

.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:16px;}
.filter-bar select,.filter-bar input{border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;font-size:14px;font-family:inherit;}

.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto;}
.admin-table{width:100%;border-collapse:collapse;font-size:14px;}
.admin-table th,.admin-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;}
.admin-table thead th{background:#faf9fd;color:var(--muted);font-weight:800;font-size:13px;position:sticky;top:0;}
.admin-table tbody tr:hover{background:#faf9fd;}
.admin-table .empty{text-align:center;color:var(--muted);padding:30px;}
.chip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:800;color:#fff;}
.chip-당근{background:#ff7e36;} .chip-카페{background:#03c75a;} .chip-플친{background:#f7c600;color:#3a2b00;}
.view-btn{color:var(--brand);font-weight:800;cursor:pointer;background:none;border:none;font-size:14px;}

.panel-desc{color:var(--muted);font-size:14px;margin-bottom:16px;}
.region-block{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:16px;}
.region-block h3{margin:0 0 12px;font-size:18px;color:var(--brand);}
.region-block h3 small{color:var(--muted);font-weight:700;font-size:13px;margin-left:8px;}
.reg-table{width:100%;border-collapse:collapse;font-size:13px;}
.reg-table th,.reg-table td{border:1px solid var(--line);padding:7px 9px;text-align:center;}
.reg-table th{background:#faf9fd;color:var(--muted);font-weight:800;}
.reg-table td.model{text-align:left;font-weight:800;color:var(--ink);white-space:nowrap;}
.reg-table .avg{font-weight:900;color:var(--brand);}
.reg-table .rng{color:var(--muted);font-size:11px;}

/* 매장 관리 */
.store-add-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px;}
.store-add-card h3{margin:0 0 12px;font-size:16px;}
.store-add-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.store-add-form input{border:1.5px solid var(--line);border-radius:9px;padding:9px 11px;font-size:14px;font-family:inherit;}
.store-add-form #nsName{flex:1.4;min-width:160px;}
.store-add-form #nsRegion,.store-add-form #nsCenter{flex:1;min-width:110px;}
.store-add-form #nsPin{width:110px;text-align:center;letter-spacing:3px;}
.ns-msg{margin-top:10px;font-size:14px;font-weight:700;min-height:18px;}
.sm-count{color:var(--muted);font-size:13px;font-weight:700;}
.admin-table input.cell-edit{border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:13px;width:100%;font-family:inherit;}
.admin-table input.pin-edit{width:70px;text-align:center;letter-spacing:2px;}
.badge-on{color:#0b7e6b;font-weight:800;} .badge-off{color:#b02456;font-weight:800;}
.mini-btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 9px;font-size:12px;font-weight:700;cursor:pointer;margin-left:4px;}
.mini-btn:hover{border-color:var(--brand-l);}

/* 지도(시·도 타일 카토그램) */
.map-layout{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;}
.map-col{background:#f7f9fc;border:1px solid var(--line);border-radius:16px;padding:16px;}
.korea-map{position:relative;}
.km-grid{position:relative;margin:0 auto;}
.km-tile{position:absolute;border:none;border-radius:12px;cursor:pointer;padding:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.08);transition:transform .1s;overflow:hidden;}
.km-tile:hover{transform:scale(1.06);z-index:2;box-shadow:0 6px 16px rgba(0,0,0,.2);}
.km-name{font-size:14px;font-weight:800;opacity:.95;}
.km-val{font-size:22px;font-weight:900;line-height:1.1;margin-top:2px;}
.km-val .km-w{font-size:12px;font-weight:700;margin-left:1px;}
.km-sub{font-size:11px;font-weight:700;opacity:.85;}
.map-legend{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12px;color:var(--muted);font-weight:700;justify-content:center;flex-wrap:wrap;}
.map-legend .lg-bar{width:120px;height:10px;border-radius:5px;background:linear-gradient(90deg,hsl(130,68%,45%),hsl(65,68%,45%),hsl(0,68%,45%));}
.map-legend .lg-note{color:var(--brand);}

/* 상세 패널 */
.reg-detail{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;min-height:300px;}
.rd-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:2px solid var(--line);padding-bottom:10px;margin-bottom:12px;}
.rd-head h3{margin:0;font-size:22px;color:var(--brand);}
.rd-head span{color:var(--muted);font-size:13px;font-weight:700;}
.rd-avg{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;}
.rd-avg b{font-size:30px;font-weight:900;color:var(--ink);}
.rd-avg span{font-size:12px;color:var(--muted);font-weight:700;}
.rd-avg.rd-none{color:var(--muted);font-size:14px;}
.rd-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:6px;}
.rd-table th,.rd-table td{border-bottom:1px solid var(--line);padding:7px 9px;text-align:left;}
.rd-table th{background:#faf9fd;color:var(--muted);font-weight:800;font-size:12px;}
.rd-table .rd-v{text-align:right;font-weight:800;color:var(--ink);}
.rd-table .rd-reg{color:var(--muted);}
.rd-table tr.rd-ex td{color:#b9bdc9;text-decoration:line-through;}
.rd-hint{font-size:11px;color:var(--muted);margin:4px 0 14px;}
.rd-mt-t{font-size:13px;font-weight:800;color:var(--ink);margin-bottom:6px;}

@media (max-width:900px){ .map-layout{grid-template-columns:1fr;} }

/* 모달 */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;}
.modal.hidden{display:none;}
.modal-back{position:absolute;inset:0;background:rgba(20,15,40,.6);}
.modal-body{position:relative;z-index:2;background:#fff;border-radius:16px;padding:16px;max-height:92vh;max-width:640px;overflow:auto;}
.modal-close{position:absolute;top:10px;right:12px;z-index:3;border:none;background:#eee;border-radius:50%;width:34px;height:34px;font-size:16px;cursor:pointer;}
.modal-scale{transform-origin:top center;}
