/* 리니지 3.8 서버 관리 — 공통 테마 (Bootstrap 5.3 위에 얹는 덮어쓰기) */
@font-face{font-family:"Pretendard";src:url("PretendardVariable.woff2") format("woff2-variations");font-weight:45 920;font-display:swap}

:root{
  --bs-font-sans-serif:"Pretendard",-apple-system,"Segoe UI","Malgun Gothic",system-ui,sans-serif;
  --bs-body-font-size:.925rem;
  --adm-accent:#f0a33a;          /* 포인트(주황) */
  --adm-accent-rgb:240,163,58;
  --adm-ok:#43c67a; --adm-warn:#f3b73a; --adm-bad:#ef5b5b; --adm-info:#4ea1ff;
  --adm-side-w:232px; --adm-top-h:56px;
}
[data-bs-theme=dark]{
  --bs-body-bg:#0f1115; --bs-body-color:#d7dbe3;
  --bs-tertiary-bg:#161920; --bs-secondary-bg:#1b1f27;
  --bs-border-color:#262b35; --bs-secondary-color:#8d95a5;
  --adm-card:#171a21; --adm-side:#13161c; --adm-top:#13161c;
  --bs-link-color:#8fc2ff; --bs-link-hover-color:#b5d7ff;
}
[data-bs-theme=light]{
  --bs-body-bg:#f3f5f8; --bs-body-color:#1f2430;
  --bs-tertiary-bg:#ffffff; --bs-secondary-bg:#eef1f5;
  --bs-border-color:#dde2ea; --bs-secondary-color:#6b7484;
  --adm-card:#ffffff; --adm-side:#ffffff; --adm-top:#ffffff;
}
body{font-family:var(--bs-font-sans-serif);letter-spacing:-.01em}

/* 상단 고정 바 */
.adm-top{position:fixed;top:0;left:0;right:0;height:var(--adm-top-h);z-index:1040;background:var(--adm-top);border-bottom:1px solid var(--bs-border-color);display:flex;align-items:center;gap:14px;padding:0 14px}
.adm-top .brand{font-weight:700;font-size:1.02rem;white-space:nowrap;display:flex;align-items:center;gap:8px}
.adm-top .brand .bi{color:var(--adm-accent)}
.adm-state{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:999px;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);font-weight:600;white-space:nowrap}
.adm-state .dot{width:9px;height:9px;border-radius:50%;background:var(--adm-ok);box-shadow:0 0 0 3px rgba(67,198,122,.18)}
.adm-state.off .dot{background:var(--adm-bad);box-shadow:0 0 0 3px rgba(239,91,91,.18)}
.adm-state .up{color:var(--bs-secondary-color);font-weight:500}
.adm-top .ctl .btn{padding:.3rem .7rem;font-weight:600}
.adm-top .spacer{flex:1}
.adm-top .me{display:flex;align-items:center;gap:8px;color:var(--bs-secondary-color);white-space:nowrap}
.adm-top .me .avatar{width:28px;height:28px;border-radius:50%;background:rgba(var(--adm-accent-rgb),.18);color:var(--adm-accent);display:grid;place-items:center;font-weight:700;font-size:.8rem}

/* 왼쪽 메뉴 */
.adm-side{position:fixed;top:var(--adm-top-h);bottom:0;left:0;width:var(--adm-side-w);background:var(--adm-side);border-right:1px solid var(--bs-border-color);overflow-y:auto;padding:10px 10px 20px;z-index:1030}
.adm-side .grp{margin-top:8px}
.adm-side .grp>a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--bs-body-color);text-decoration:none;font-weight:600}
.adm-side .grp>a .bi{width:18px;text-align:center;color:var(--bs-secondary-color)}
.adm-side .grp>a .chev{margin-left:auto;font-size:.75rem;color:var(--bs-secondary-color);transition:transform .15s}
.adm-side .grp.open>a .chev{transform:rotate(90deg)}
.adm-side .grp>a:hover{background:var(--bs-secondary-bg)}
.adm-side .sub{display:none;padding:2px 0 4px 26px}
.adm-side .grp.open .sub{display:block}
.adm-side .sub a{display:block;padding:6px 10px;border-radius:7px;color:var(--bs-secondary-color);text-decoration:none;font-size:.9rem}
.adm-side .sub a:hover{color:var(--bs-body-color);background:var(--bs-secondary-bg)}
.adm-side .sub a.active,.adm-side .grp>a.active{color:var(--adm-accent);background:rgba(var(--adm-accent-rgb),.10)}
.adm-side .grp>a.active .bi{color:var(--adm-accent)}
.adm-side .mini{font-size:.72rem;color:var(--bs-secondary-color);padding:14px 10px 2px;letter-spacing:.08em;text-transform:uppercase}

/* 본문 */
.adm-main{margin-left:var(--adm-side-w);padding:calc(var(--adm-top-h) + 18px) 22px 40px}
.adm-main.nosb{margin-left:0}
.page-h{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.page-h h1{font-size:1.25rem;font-weight:700;margin:0}
.page-h .desc{color:var(--bs-secondary-color);font-size:.88rem}

/* 카드 */
.card{background:var(--adm-card);border:1px solid var(--bs-border-color);border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.card .card-body{padding:14px 16px}
.stat .k{font-size:.78rem;color:var(--bs-secondary-color);font-weight:600;letter-spacing:.02em;display:flex;align-items:center;gap:6px}
.stat .v{font-size:1.65rem;font-weight:750;line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums}
.stat .v small{font-size:.85rem;font-weight:500;color:var(--bs-secondary-color);margin-left:4px}
.stat .sub{font-size:.8rem;color:var(--bs-secondary-color);margin-top:4px}
.stat .pill{font-size:.74rem;padding:2px 8px;border-radius:999px;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);font-weight:600}
.pill.user{color:var(--adm-info);border-color:rgba(78,161,255,.35);background:rgba(78,161,255,.1)}
.pill.bot{color:#b28cff;border-color:rgba(178,140,255,.35);background:rgba(178,140,255,.1)}
.gauge{position:relative;height:96px}
.gauge .c{position:absolute;left:0;right:0;bottom:4px;text-align:center}
.gauge .c b{font-size:1.5rem;font-weight:750;font-variant-numeric:tabular-nums}
.gauge .c span{display:block;font-size:.76rem;color:var(--bs-secondary-color)}
.chart-wrap{position:relative;height:200px}
.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.card-title-row h6{margin:0;font-weight:700;font-size:.9rem}
.card-title-row .opts .btn{padding:.1rem .5rem;font-size:.76rem}
.alert-list .it{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--bs-border-color)}
.alert-list .it:first-child{border-top:0}
.alert-list .ico{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;flex:0 0 auto}
.alert-list .ico.warn{background:rgba(243,183,58,.15);color:var(--adm-warn)}
.alert-list .ico.bad{background:rgba(239,91,91,.15);color:var(--adm-bad)}
.alert-list .ico.info{background:rgba(78,161,255,.15);color:var(--adm-info)}
.alert-list .t{font-size:.88rem}
.alert-list .w{font-size:.76rem;color:var(--bs-secondary-color)}
.table{--bs-table-bg:transparent;font-size:.87rem;margin:0}
.table>:not(caption)>*>*{padding:.5rem .6rem;border-bottom-color:var(--bs-border-color)}
.table thead th{color:var(--bs-secondary-color);font-weight:600;font-size:.78rem;letter-spacing:.03em;border-bottom:1px solid var(--bs-border-color)}
.num{font-variant-numeric:tabular-nums;text-align:right}
.badge.user{background:rgba(78,161,255,.15);color:var(--adm-info)}
.badge.bot{background:rgba(178,140,255,.15);color:#b28cff}
.badge.gm{background:rgba(var(--adm-accent-rgb),.18);color:var(--adm-accent)}
.btn-accent{background:var(--adm-accent);border-color:var(--adm-accent);color:#1a1200;font-weight:700}
.btn-accent:hover{background:#ffb44d;border-color:#ffb44d;color:#1a1200}
.text-accent{color:var(--adm-accent)!important}

/* 상단 드롭다운 메뉴(시안 B) */
.adm-nav .nav-link{font-weight:600;color:var(--bs-body-color);padding:.45rem .7rem;border-radius:8px}
.adm-nav .nav-link:hover,.adm-nav .nav-link.show{background:var(--bs-secondary-bg)}
.adm-nav .nav-link.active{color:var(--adm-accent);background:rgba(var(--adm-accent-rgb),.12)}
.adm-nav .dropdown-menu{border-radius:10px;border-color:var(--bs-border-color);padding:6px}
.adm-nav .dropdown-item{border-radius:6px;padding:.4rem .7rem;font-size:.9rem}

/* 모바일 */
@media (max-width: 991.98px){
  .adm-side{transform:translateX(-100%);transition:transform .2s}
  .adm-side.show{transform:none;box-shadow:0 0 0 100vw rgba(0,0,0,.45)}
  .adm-main{margin-left:0;padding:calc(var(--adm-top-h) + 12px) 12px 30px}
  .adm-top .brand span{display:none}
  .adm-top .me .name{display:none}
  .stat .v{font-size:1.4rem}
}
@media (max-width: 575.98px){
  .adm-top{gap:8px;padding:0 8px}
  .adm-state .up{display:none}
  .adm-top .ctl .btn{padding:.3rem .5rem}
  .adm-top .ctl .btn .t{display:none}
  .adm-top .me>span:not(.avatar){display:none}
}

/* 그림·찾기 창·카드 그리드 */
img.ic{image-rendering:pixelated;vertical-align:middle;border-radius:4px;background:rgba(255,255,255,.03)}
.ic.none{display:inline-block;vertical-align:middle;border-radius:4px;background:var(--bs-secondary-bg)}
img.mon{vertical-align:middle;image-rendering:auto}
.mon.none{display:inline-block;width:40px;background:var(--bs-secondary-bg);border-radius:6px;vertical-align:middle}
.pk-list{max-height:60vh;overflow:auto}
.pk-row{display:flex;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;cursor:pointer}
.pk-row:hover{background:var(--bs-secondary-bg)}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
.gcard{background:var(--adm-card);border:1px solid var(--bs-border-color);border-radius:12px;padding:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;transition:transform .08s,border-color .08s;min-height:120px;justify-content:center}
.gcard:hover{border-color:var(--adm-accent);transform:translateY(-2px)}
.gcard .nm{font-weight:600;font-size:.86rem;line-height:1.25;word-break:keep-all}
.gcard .sb{font-size:.74rem;color:var(--bs-secondary-color)}
.gcard img.ic{width:44px;height:44px}
.gcard img.mon{max-height:72px}
.gcard.off{opacity:.45}
.hero{display:flex;gap:16px;align-items:center;margin-bottom:12px}
.hero .pic{width:96px;height:96px;display:grid;place-items:center;background:var(--bs-secondary-bg);border-radius:14px;border:1px solid var(--bs-border-color)}
.hero .pic img.ic{width:64px;height:64px}.hero .pic img.mon{max-height:90px;max-width:90px}
.hero h4{margin:0;font-weight:800}
.hero .meta{color:var(--bs-secondary-color);font-size:.86rem}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);font-size:.76rem;font-weight:600}
.chip.acc{color:var(--adm-accent);border-color:rgba(var(--adm-accent-rgb),.4);background:rgba(var(--adm-accent-rgb),.1)}
.sec-h{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-weight:700;font-size:.95rem}
.sec-h .n{color:var(--bs-secondary-color);font-weight:500;font-size:.82rem}
.subtabs .btn{border-radius:999px;padding:.25rem .8rem;font-size:.84rem}
.dirty{outline:2px solid var(--adm-warn);outline-offset:-2px}
.form-control-xs{padding:.15rem .4rem;font-size:.82rem;height:auto}
.code{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;color:var(--bs-secondary-color);margin-left:4px}
.diff{color:var(--adm-warn)}
.split{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:14px}
.split3{display:grid;grid-template-columns:260px minmax(300px,1fr) minmax(360px,1.2fr);gap:14px}
@media(max-width:991.98px){.split,.split3{grid-template-columns:1fr}}
.list-col{max-height:calc(100vh - 220px);overflow:auto}
.lrow{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;cursor:pointer;border-bottom:1px solid var(--bs-border-color)}
.lrow:hover,.lrow.sel{background:rgba(var(--adm-accent-rgb),.12)}
.lrow .nm{font-weight:600;font-size:.88rem}.lrow .sb{font-size:.74rem;color:var(--bs-secondary-color)}
.copy{cursor:copy}
.gcard,.gcard:hover{text-decoration:none;color:inherit}
/* 상자 편집: 색 견본·미리보기 */
.sw{display:inline-block;width:22px;height:22px;border-radius:6px;border:2px solid transparent;cursor:pointer}
.sw.on{border-color:#fff;box-shadow:0 0 0 2px var(--adm-accent)}
.sw.unk{border-style:dashed;border-color:var(--bs-secondary-color)}
.bx-preview{background:#000;border-radius:10px;padding:10px 14px;font-family:"Malgun Gothic",sans-serif;font-size:13px}
.bx-preview .scr{text-align:center;font-weight:700;font-size:15px;padding:8px 0;min-height:1.6em}
.bx-preview .chat{border-top:1px solid #333;padding-top:6px;min-height:1.4em}
.opacity-50{opacity:.5}

/* 작은 단추·목록 보조 (2026-11-06 제작 편집 이식) */
.btn-xs{--bs-btn-padding-y:.1rem;--bs-btn-padding-x:.4rem;--bs-btn-font-size:.72rem;line-height:1.3}
.min-w-0{min-width:0}
.lrow.drag{opacity:.4}.lrow.over{outline:2px dashed var(--adm-accent);outline-offset:-2px}
.lrow img.mon{max-width:48px}

/* 대시보드 새 판 (2026-11-06): 큰 숫자 타일·잔물결·계기판·피드·보스 예정 */
.hero-tile{position:relative;overflow:hidden;border:1px solid var(--bs-border-color)}
.hero-tile:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0%,var(--tile-glow,rgba(var(--adm-accent-rgb),.18)),transparent 55%);pointer-events:none}
.hero-tile.t-on{--tile-glow:rgba(78,161,255,.2)}.hero-tile.t-pkt{--tile-glow:rgba(240,163,58,.2)}.hero-tile.t-mem{--tile-glow:rgba(67,198,122,.16)}.hero-tile.t-sys{--tile-glow:rgba(178,140,255,.18)}
.hero-tile .card-body{position:relative;padding-bottom:6px}
.hero-tile .k{font-size:.78rem;color:var(--bs-secondary-color);font-weight:600;letter-spacing:.02em;display:flex;align-items:center;gap:6px}
.hero-tile .v{font-size:2rem;font-weight:800;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.hero-tile .v small{font-size:.85rem;font-weight:500;color:var(--bs-secondary-color);margin-left:2px}
.hero-tile .sub{font-size:.76rem;color:var(--bs-secondary-color);margin-top:4px}
.hero-tile .pill{font-size:.74rem;padding:2px 8px;border-radius:999px;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color)}
.hero-tile .spark{position:relative;height:44px;margin:6px -8px -2px}
.hero-tile .gauge{height:92px}
.hero-tile .gauge .c b{font-size:1.35rem}
.kv-grid .kv{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--bs-border-color);font-size:.84rem}
.kv-grid .kv:last-child{border-bottom:0}.kv-grid .kv span{color:var(--bs-secondary-color)}.kv-grid .kv b{font-weight:650;text-align:right}
.feed{max-height:330px;overflow:auto;font-size:.82rem}
.feed .fd{display:flex;gap:6px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--bs-border-color);flex-wrap:wrap}
.feed .fd .t{color:var(--bs-secondary-color);font-variant-numeric:tabular-nums;font-size:.74rem}
.feed .fd .badge{font-size:.66rem;padding:2px 6px}
.feed .fd .x{flex-basis:100%;color:var(--bs-body-color);word-break:break-all;padding-left:2px}
.timeline .tl-row{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bs-border-color);color:inherit;text-decoration:none}
.timeline .tl-row:last-child{border-bottom:0}.timeline .tl-row:hover{background:rgba(var(--adm-accent-rgb),.06)}
.timeline .tl-row.soon{background:rgba(243,183,58,.08)}
.timeline .nm{font-weight:600;font-size:.86rem}.timeline .sb{font-size:.74rem;color:var(--bs-secondary-color)}
.timeline .when{text-align:right;font-weight:700;font-size:.84rem;white-space:nowrap}.timeline .when small{display:block;font-weight:400;color:var(--bs-secondary-color);font-size:.72rem}
.timeline img.mon{max-width:44px}
.gauge2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gauge2 .gauge{min-width:0}.gauge2 .gauge .c b{font-size:1.15rem}

/* ===== 3차 공통 틀 (2026-11-06 저녁) — 머리글·스탯 타일·구역·카드 격자·실시간 목록 ===== */
.hero.v3{display:flex;gap:18px;align-items:center;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,rgba(var(--adm-accent-rgb),.10),transparent 60%),var(--adm-card);border:1px solid var(--bs-border-color);margin-bottom:14px}
.hero.v3 .pic{width:104px;height:104px;flex:none;display:grid;place-items:center;border-radius:14px;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.07),transparent 70%),var(--bs-secondary-bg);border:1px solid var(--bs-border-color);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.hero.v3 .pic img.ic{width:72px;height:72px;image-rendering:pixelated}.hero.v3 .pic img.mon{max-height:96px;max-width:96px}
.hero.v3 h4{font-weight:800;font-size:1.35rem;letter-spacing:-.01em}
.hero.v3 .meta{color:var(--bs-secondary-color);font-size:.86rem;margin-top:2px}
.hero.v3 .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-self:flex-start}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip .l{color:var(--bs-secondary-color);font-weight:500;margin-right:4px}.chip b{font-weight:700}
.chip.ok{color:var(--adm-ok);border-color:rgba(67,198,122,.4);background:rgba(67,198,122,.1)}.chip.bad{color:var(--adm-bad);border-color:rgba(239,91,91,.4);background:rgba(239,91,91,.1)}.chip.warn{color:var(--adm-warn);border-color:rgba(243,183,58,.4);background:rgba(243,183,58,.1)}.chip.info{color:var(--adm-info);border-color:rgba(78,161,255,.4);background:rgba(78,161,255,.1)}
.chip.link{cursor:pointer}.chip.link:hover{border-color:var(--adm-accent)}
.stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.st{flex:1 1 110px;max-width:260px;min-width:104px}.st .v{white-space:nowrap}.hero.v3 .acts .btn{white-space:nowrap}
.hero.v3 .pic img.mapthumb{width:100px;height:100px;object-fit:cover;border-radius:10px}
.st{background:var(--adm-card);border:1px solid var(--bs-border-color);border-radius:12px;padding:8px 10px;position:relative;overflow:hidden}
.st:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--st-c,var(--bs-border-color))}
.st.ok{--st-c:var(--adm-ok)}.st.bad{--st-c:var(--adm-bad)}.st.warn{--st-c:var(--adm-warn)}.st.info{--st-c:var(--adm-info)}.st.acc{--st-c:var(--adm-accent)}
.st .k{font-size:.72rem;color:var(--bs-secondary-color);font-weight:600;letter-spacing:.02em}.st .v{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2;margin-top:2px}.st .s{font-size:.72rem;color:var(--bs-secondary-color)}
.sec.v3{background:var(--adm-card);border:1px solid var(--bs-border-color);border-radius:14px;margin-bottom:12px;overflow:hidden;transition:box-shadow .3s}
.sec.v3.flash{box-shadow:0 0 0 2px var(--adm-accent)}
.sec.v3>.sec-h{margin:0;padding:10px 14px;cursor:pointer;user-select:none;background:rgba(255,255,255,.015);border-bottom:1px solid var(--bs-border-color);display:flex;align-items:center;gap:8px;font-size:.92rem}
.sec.v3>.sec-h .chev{transition:transform .15s;color:var(--bs-secondary-color);font-size:.8rem}.sec.v3.closed>.sec-h .chev{transform:rotate(-90deg)}
.sec.v3>.sec-h .ico{color:var(--adm-accent)}.sec.v3>.sec-h .n{color:var(--bs-secondary-color);font-weight:500;font-size:.8rem}.sec.v3>.sec-h .note{color:var(--bs-secondary-color);font-weight:400;font-size:.78rem}
.sec.v3>.sec-b{padding:12px 14px}.sec.v3.closed>.sec-b{display:none}.sec.v3.closed>.sec-h{border-bottom:0}
.sec.v3 .table{margin-bottom:0}.sec.v3 .table-responsive{width:auto;max-width:100%;display:inline-block;vertical-align:top}.sec.v3 .table th{white-space:nowrap;font-size:.78rem;color:var(--bs-secondary-color);font-weight:600}
.empty{color:var(--bs-secondary-color);font-size:.84rem;padding:10px 4px}
.cards.v3{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cards.v3.sm{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.cards.v3.lg{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.cards.v3 .gc{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:10px 8px 8px;border-radius:12px;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);color:inherit;text-decoration:none;transition:transform .08s,border-color .08s;min-width:0}
.cards.v3 .gc:hover{border-color:var(--adm-accent);transform:translateY(-2px);text-decoration:none;color:inherit}.cards.v3 .gc.sel{border-color:var(--adm-accent);box-shadow:0 0 0 1px var(--adm-accent) inset}.cards.v3 .gc.off{opacity:.45}
.cards.v3 .gc .pic{position:relative;height:56px;display:grid;place-items:center}.cards.v3.sm .gc .pic{height:44px}.cards.v3.lg .gc .pic{height:80px}
.cards.v3 .gc .pic img.ic{width:44px;height:44px;image-rendering:pixelated}.cards.v3.sm .gc .pic img.ic{width:36px;height:36px}.cards.v3 .gc .pic img.mon{max-height:56px;max-width:80px}.cards.v3.lg .gc .pic img.mon{max-height:80px;max-width:120px}
.cards.v3 .gc .corner{position:absolute;right:-8px;top:-6px;font-size:.66rem;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--adm-accent);color:#000}
.cards.v3 .gc .t{font-weight:650;font-size:.84rem;line-height:1.25;word-break:keep-all;width:100%}.cards.v3 .gc .s{font-size:.72rem;color:var(--bs-secondary-color);line-height:1.3;width:100%}.cards.v3 .gc .tag{font-size:.7rem;font-weight:700;color:var(--adm-accent)}
.idt{font-size:.72rem;color:var(--bs-secondary-color);font-weight:500;margin-left:4px;font-variant-numeric:tabular-nums}
.lrow.v3{border-bottom:1px solid var(--bs-border-color);text-decoration:none;color:inherit}.lrow.v3:hover{color:inherit}.lrow.v3 .rt{font-size:.8rem;text-align:right;white-space:nowrap;color:var(--bs-secondary-color)}.lrow.v3 img.ic{width:32px;height:32px;flex:none;image-rendering:pixelated}.lrow.v3 img.mon{max-width:40px;max-height:40px;flex:none}
.live-q{position:relative;margin-bottom:8px;display:flex;align-items:center;gap:8px}.live-q>i{position:absolute;left:10px;color:var(--bs-secondary-color);font-size:.85rem}.live-q input{padding-left:30px}.live-q .cnt{white-space:nowrap}
.live-l{min-height:60px;transition:opacity .15s}.live-l.loading{opacity:.5}
.split.narrow{grid-template-columns:300px minmax(0,1fr)}.split.wide{grid-template-columns:360px minmax(0,1fr)}
@media(max-width:991.98px){.split.narrow,.split.wide{grid-template-columns:1fr}.hero.v3{flex-wrap:wrap}.hero.v3 .acts{width:100%;justify-content:flex-start}}
.kv-grid.v3 .kv{padding:7px 0}.kv-grid.v3 .kv b{font-variant-numeric:tabular-nums}
.dirty{box-shadow:0 0 0 2px rgba(243,183,58,.45)!important}
/* 장비창(게임 창 모양) */
.equip-grid{display:grid;grid-template-columns:repeat(3,64px);gap:6px;padding:10px;border-radius:12px;background:#111317;border:1px solid var(--bs-border-color);width:max-content}
[data-bs-theme=light] .equip-grid{background:#e9ecf2}
.equip-grid .sl{width:64px;height:64px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--bs-border-color);display:grid;place-items:center;position:relative;cursor:default}
.equip-grid .sl img.ic{width:48px;height:48px;image-rendering:pixelated}.equip-grid .sl .en{position:absolute;right:3px;bottom:2px;font-size:.68rem;font-weight:700;color:#ffd45a;text-shadow:0 0 3px #000}
.equip-grid .sl .lbl{position:absolute;left:4px;top:2px;font-size:.6rem;color:var(--bs-secondary-color)}.equip-grid .sl.has{border-color:rgba(var(--adm-accent-rgb),.5);background:rgba(var(--adm-accent-rgb),.08)}.equip-grid .sl.sel{outline:2px solid var(--adm-accent)}
/* 지도 보기 */
.mapv{position:relative;overflow:hidden;background:#07090d;border-radius:14px;border:1px solid var(--bs-border-color);height:calc(100vh - 230px);min-height:420px;user-select:none;touch-action:none}
.mapv .world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.mapv .world img.bg{display:block;pointer-events:none;image-rendering:auto}
.mapv .mk{position:absolute;transform:translate(-50%,-100%);cursor:grab;display:flex;flex-direction:column;align-items:center;pointer-events:auto}
.mapv .mk:active{cursor:grabbing}.mapv .mk img.mon{max-height:48px;max-width:64px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.8))}.mapv .mk .dotm{width:12px;height:12px;border-radius:50%;background:var(--adm-accent);border:2px solid #fff;box-shadow:0 0 0 2px rgba(0,0,0,.5)}
.mapv .mk .lb{font-size:11px;font-weight:700;color:#fff;text-shadow:0 0 3px #000,0 0 6px #000;white-space:nowrap;line-height:1.1;margin-top:1px}.mapv .mk .lb small{display:block;font-weight:500;color:#ffd45a}
.mapv .mk.sel img.mon,.mapv .mk.sel .dotm{filter:drop-shadow(0 0 6px var(--adm-accent)) drop-shadow(0 2px 3px rgba(0,0,0,.8))}
.mapv .mk.user .dotm{background:#4ea1ff}.mapv .mk.bot .dotm{background:#b28cff}.mapv .mk.gm .dotm{background:#f0a33a}.mapv .mk.boss img.mon{max-height:64px;max-width:80px}
.mapv .mk .ring{position:absolute;border:1px dashed rgba(240,163,58,.6);border-radius:50%;pointer-events:none;transform:translate(0,0)}
.mapv .hud{position:absolute;left:10px;top:10px;display:flex;gap:6px;z-index:5}.mapv .hud .btn{backdrop-filter:blur(6px)}
.mapv .coord{position:absolute;right:10px;bottom:8px;font-size:.74rem;color:#fff;background:rgba(0,0,0,.5);padding:2px 8px;border-radius:6px;font-variant-numeric:tabular-nums;z-index:5}
.mapv.dropping{outline:2px dashed var(--adm-accent);outline-offset:-4px}
.mapv .nomap{position:absolute;inset:0;display:grid;place-items:center;color:var(--bs-secondary-color)}
.drag-src{cursor:grab}.drag-src:active{cursor:grabbing}
.drag-ghost{position:fixed;z-index:3000;pointer-events:none;transform:translate(-50%,-50%);opacity:.9}
.avatar2{display:inline-grid;place-items:center;border-radius:50%;border:2px solid var(--bs-border-color);font-weight:800;font-size:1rem;flex:none;background:var(--bs-secondary-bg)}
.lrow.v3.eqrow{cursor:default}
.gm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px}
.gmc{padding:8px 10px;border-radius:10px;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);cursor:pointer}.gmc:hover{border-color:var(--adm-accent)}.gmc .c{font-weight:700;font-size:.86rem}.gmc .a{color:var(--adm-accent);font-weight:500;font-size:.78rem}.gmc .d{font-size:.76rem;color:var(--bs-secondary-color);margin-top:2px}
/* 지도 화면 틀 */
.mapv-wrap{display:grid;grid-template-columns:290px minmax(0,1fr) 300px;gap:12px;align-items:start}
.mapv-wrap .mv-side{height:calc(100vh - 150px);min-height:420px}.mapv-wrap .mv-side .card-body{height:100%}
.mapv-wrap .mv-right{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 150px);min-height:0}.mapv-wrap .mv-right>.card{min-height:0;overflow:auto}
@media(max-width:1199.98px){.mapv-wrap{grid-template-columns:290px minmax(0,1fr)}.mapv-wrap .mv-right{grid-column:1 / span 2;flex-direction:row;max-height:none}.mapv-wrap .mv-right>.card{flex:1}}
@media(max-width:991.98px){.mapv-wrap{grid-template-columns:1fr}.mapv-wrap .mv-side{height:auto}.mapv-wrap .mv-right{grid-column:1;flex-direction:column}.mapv{height:60vh}}
.mapdot{width:40px;height:40px;border-radius:8px;overflow:hidden;background:var(--bs-secondary-bg);flex:none;display:block}.mapdot img{width:100%;height:100%;object-fit:cover}
.dotm2{width:12px;height:12px;border-radius:50%;display:inline-block;flex:none;margin:0 8px}.dotm2.user{background:#4ea1ff}.dotm2.bot{background:#b28cff}.dotm2.gm{background:#f0a33a}
#mvLegend .lg{display:inline-block;width:10px;height:10px;border-radius:50%;margin:0 3px 0 8px;vertical-align:middle}#mvLegend .lg.user{background:#4ea1ff}#mvLegend .lg.bot{background:#b28cff}#mvLegend .lg.gm{background:#f0a33a}
.mapv .mk.off{opacity:.5}
#mvMaps .live-l{overflow:auto}#mvPanel .live-l{max-height:none}
/* 옵션 강화별 표: +0~+15 칸 구분 */
.io-lv th.lv,.io-lv td.lv{border-left:1px solid var(--bs-border-color);text-align:center;padding:3px 2px}
.io-lv th.lv.g1,.io-lv td.lv.g1{background:rgba(255,255,255,.03)}
[data-bs-theme=light] .io-lv th.lv.g1,[data-bs-theme=light] .io-lv td.lv.g1{background:rgba(0,0,0,.035)}
.io-lv th.lv{font-weight:800;color:var(--adm-accent)}
.io-lv td.lv input.lvin{border-color:transparent;background:transparent;font-weight:700}
.io-lv td.lv input.lvin.inh{color:var(--bs-secondary-color);font-weight:400}
.io-lv td.lv input.lvin:not(.inh){background:rgba(var(--adm-accent-rgb),.12);border-color:rgba(var(--adm-accent-rgb),.35);color:var(--adm-accent)}
.io-lv td.lv input.lvin:focus{background:var(--bs-body-bg);border-color:var(--adm-accent)}
/* 진영 게이지 */
.fgauge{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.fgauge .side .nm{font-weight:800;font-size:1rem}.fgauge .side.h{text-align:right}.fgauge .side .rd{font-size:.74rem;color:var(--bs-secondary-color);font-weight:600}
.fgauge .bar{position:relative;height:18px;border-radius:9px;background:var(--bs-secondary-bg);overflow:hidden;margin:6px 0 4px;border:1px solid var(--bs-border-color)}
.fgauge .bar span{position:absolute;top:0;bottom:0;left:0;border-radius:9px;background:linear-gradient(90deg,#2d6fd6,#4ea1ff);transition:width .6s}
.fgauge .side.h .bar span{left:auto;right:0;background:linear-gradient(270deg,#b03a3a,#ef5b5b)}
.fgauge .bar b{position:absolute;left:0;right:0;top:0;bottom:0;display:grid;place-items:center;font-size:.72rem;color:#fff;text-shadow:0 0 3px #000}
.fgauge .pt{font-size:.76rem;color:var(--bs-secondary-color)}
.fgauge .vs{font-weight:900;font-size:1.1rem;color:var(--bs-secondary-color);text-align:center}.fgauge .vs small{display:block;font-size:.66rem;font-weight:600;color:var(--adm-bad)}
.fgauge.big .bar{height:28px;border-radius:14px}.fgauge.big .bar b{font-size:.9rem}.fgauge.big .side .nm{font-size:1.3rem}
.rankno{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--bs-secondary-bg);font-weight:800;font-size:.84rem;flex:none}.rankno.top{background:rgba(var(--adm-accent-rgb),.2);color:var(--adm-accent)}
.stars{color:#ffd45a;font-size:.72rem;letter-spacing:-1px}
.mapv.mini{height:200px;min-height:160px;border-radius:10px}.mapv.mini .mk .dotm{width:8px;height:8px;border-width:1px}.mapv.mini .coord{display:none}
/* 설정 파일·로그 */
.cf-form{max-height:70vh;overflow:auto;padding-right:4px}.cf-row{display:grid;grid-template-columns:220px 1fr;gap:8px;align-items:center;margin:3px 0}.cf-row .k{font-size:.8rem;color:var(--adm-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-c{font-size:.74rem;color:var(--bs-secondary-color);white-space:pre-wrap;padding:2px 0}.cf-gap{height:8px}
.logbox{background:#0b0d11;color:#cfd5e1;font-size:.76rem;padding:10px;border-radius:10px;max-height:70vh;overflow:auto;white-space:pre-wrap;word-break:break-all;border:1px solid var(--bs-border-color)}[data-bs-theme=light] .logbox{background:#f3f5f9;color:#222}
/* 지도 맵 목록 묶음(층별) */
#mvMaps .live-l{max-height:calc(100vh - 260px)}
.mgrp{border-bottom:1px solid var(--bs-border-color)}.mgrp .mghd{display:flex;align-items:center;gap:8px;padding:7px 6px;cursor:pointer;user-select:none}.mgrp .mghd:hover{background:rgba(255,255,255,.04)}
.mgrp .mghd>i{transition:transform .15s;color:var(--bs-secondary-color);font-size:.8rem}.mgrp.open .mghd>i{transform:rotate(90deg)}
.mgrp .mghd .nm{font-weight:600}.mgrp .mghd .sb{font-size:.78rem;color:var(--bs-secondary-color);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgrp .mgbody{display:none;padding-left:10px}.mgrp.open .mgbody{display:block}.mgrp .mgbody .lrow.v3:last-child{border-bottom:0}
.onl{font-size:.78rem;color:var(--accent);white-space:nowrap}.onl i{margin-right:2px}
.pointer{cursor:pointer}
/* 강화별 옵션 — 구간 편집 + 값 띠 */
.ench-list{display:flex;flex-direction:column;gap:8px}
.ench-row{border:1px solid var(--bs-border-color);border-radius:10px;padding:8px 10px;background:rgba(255,255,255,.02)}.ench-row.new{border-color:rgba(var(--adm-accent-rgb),.5)}.ench-row.locked{opacity:.75}
.ench-row .eh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.ench-row .eh>select{width:170px}
.ench-row .segs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ench-row .seg{display:inline-flex;align-items:center;gap:3px;background:rgba(var(--adm-accent-rgb),.1);border:1px solid rgba(var(--adm-accent-rgb),.3);border-radius:8px;padding:2px 4px}
.ench-row .seg input{width:52px;padding:1px 4px;text-align:center;font-weight:700;background:transparent;border-color:transparent}.ench-row .seg input.val{width:62px;color:var(--adm-accent)}.ench-row .seg input:focus{background:var(--bs-body-bg);border-color:var(--adm-accent)}
.ench-row .seg .t{font-size:.75rem;color:var(--bs-secondary-color)}.ench-row .seg .x{border:0;background:transparent;color:var(--bs-secondary-color);font-size:.7rem;padding:0 2px}.ench-row .seg .x:hover{color:#f66}
.ench-row .strip{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:2px}
.ench-row .strip .cell{text-align:center;border-radius:6px;padding:2px 2px 3px;background:rgba(255,255,255,.03);line-height:1.1}
.ench-row .strip .cell .e{display:block;font-size:.65rem;color:var(--bs-secondary-color);margin-bottom:1px}.ench-row .strip .cell .v{display:block;font-size:.85rem;font-weight:600;color:var(--bs-secondary-color);padding:3px 0}
.ench-row .strip .cell input{width:100%;text-align:center;padding:2px 0;font-weight:500;background:transparent;border-color:transparent;color:var(--bs-secondary-color)}
.ench-row .strip .cell input::placeholder{color:var(--bs-secondary-color);opacity:.6}
.ench-row .strip .cell.set input{background:rgba(var(--adm-accent-rgb),.14);border-color:rgba(var(--adm-accent-rgb),.45);color:var(--adm-accent);font-weight:800}
.ench-row .strip .cell input:focus{background:var(--bs-body-bg);border-color:var(--adm-accent);color:var(--bs-body-color)}
.ench-row.locked .strip .cell.chg .v{color:var(--bs-body-color)}
.row-new td{background:rgba(var(--adm-accent-rgb),.08)!important;box-shadow:inset 3px 0 0 var(--adm-accent)}
/* (2026-11-07) 기초데이터 상세 사용/미사용 스위치 */
.hero .acts .use-sw{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .5rem;border:1px solid var(--bs-border-color);border-radius:.375rem;min-height:31px}
.hero .acts .use-sw .form-check-input{margin:0;cursor:pointer}
.hero .acts .use-sw .form-check-label{font-size:.85rem;font-weight:600;cursor:pointer}
