:root{
  --paper:#f4eee2;
  --paper-2:#eadfca;
  --surface:#fffdf9;
  --surface-2:#fbf5ea;
  --ink:#23201b;
  --ink-soft:#564f44;
  --muted:#8a8273;
  --line:#e6dcc6;
  --line-2:#d9cbac;
  --garnet:#8d2a2f;
  --garnet-deep:#6f1f24;
  --gold:#a8801f;
  --legion1:#2b5a82;
  --legion1-bg:#e8f0f7;
  --legion2:#9a5a2b;
  --legion2-bg:#f6ece0;
  --good:#2f7d4f;
  --shadow:0 1px 2px rgba(60,40,20,.04), 0 8px 24px rgba(80,50,20,.06);
}

*{box-sizing:border-box;}
html,body{margin:0;}
body{
  color:var(--ink);
  font-family:'Gothic A1',-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;
  font-size:14px;
  line-height:1.55;
  background:
    radial-gradient(1100px 560px at 50% -12%, rgba(141,42,47,.055), transparent 60%),
    radial-gradient(820px 460px at 102% -4%, rgba(168,128,31,.07), transparent 55%),
    linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
  background-attachment:fixed;
  min-height:100vh;
}

.wrap{max-width:1040px;margin:0 auto;padding:0 18px;}

/* top accent line */
.topline{height:4px;background:linear-gradient(90deg,var(--garnet),var(--gold) 55%,var(--garnet-deep));}

/* header */
header.site{padding:20px 0 14px;border-bottom:1px solid var(--line);}
header.site .head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:13px;}
.emblem{
  font-size:26px;line-height:1;width:46px;height:46px;flex:none;
  display:grid;place-items:center;border-radius:12px;
  color:var(--garnet);
  background:var(--surface);
  border:1px solid var(--line-2);
  box-shadow:var(--shadow);
}
.title{font-family:'Gowun Batang',serif;font-weight:700;font-size:23px;letter-spacing:.01em;color:var(--garnet);}
.kicker{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;}
nav.nav{display:flex;gap:6px;flex-wrap:wrap;}
nav.nav a{
  text-decoration:none;color:var(--ink-soft);font-weight:600;font-size:13px;
  padding:7px 13px;border-radius:9px;border:1px solid transparent;
}
nav.nav a:hover{color:var(--garnet);background:var(--surface);border-color:var(--line);}

main.wrap{padding-top:22px;padding-bottom:48px;}
footer.foot{padding:20px 18px 42px;color:var(--muted);font-size:12px;text-align:center;}

/* bars & pills */
.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.bar form{display:flex;gap:8px;align-items:center;}
.pill{
  background:var(--surface);border:1px solid var(--line-2);border-radius:999px;
  padding:6px 13px;font-size:13px;color:var(--ink-soft);font-weight:600;
}
.pill.lead{color:var(--garnet);}

label.lbl{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.04em;}

select,input[type=text],input[type=password]{
  background:var(--surface);color:var(--ink);
  border:1px solid var(--line-2);border-radius:9px;
  padding:8px 11px;font-size:14px;font-family:inherit;
  transition:border-color .12s, box-shadow .12s;
}
select:focus,input:focus{
  outline:none;border-color:var(--garnet);
  box-shadow:0 0 0 3px rgba(141,42,47,.13);
}

.btn{
  background:var(--garnet);color:#fdf6ee;border:1px solid var(--garnet-deep);
  border-radius:10px;padding:9px 18px;font-size:14px;font-weight:700;
  cursor:pointer;font-family:inherit;box-shadow:var(--shadow);
  transition:background .12s, transform .04s;
}
.btn:hover{background:var(--garnet-deep);}
.btn:active{transform:translateY(1px);}
.btn-ghost{
  background:var(--surface);color:var(--garnet);border:1px solid var(--line-2);
  border-radius:10px;padding:9px 16px;font-size:14px;font-weight:700;
  cursor:pointer;font-family:inherit;text-decoration:none;display:inline-block;
}
.btn-ghost:hover{border-color:var(--garnet);}

/* panel + table */
.panel{
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);overflow:hidden;
}
.tablewrap{overflow-x:auto;}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:14px;}
th,td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;}
thead th{
  background:var(--surface-2);color:var(--muted);font-weight:700;
  font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;
  position:sticky;top:0;border-bottom:1px solid var(--line-2);
}
tbody tr:hover{background:var(--surface-2);}
tbody tr:last-child td{border-bottom:none;}
td.num{font-variant-numeric:tabular-nums;}
td.r{color:var(--muted);font-variant-numeric:tabular-nums;}
td.nick{font-weight:600;}
td.sword{font-weight:700;color:var(--garnet);font-variant-numeric:tabular-nums;}

.rankbadge{
  display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;
  border-radius:7px;font-size:12px;font-weight:700;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--line);
}
.rankbadge.top{color:#fff;background:var(--garnet);border-color:var(--garnet-deep);}

/* chips */
.chip{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line-2);font-weight:600;}
.t-am{color:var(--legion1);} .t-pm{color:var(--legion2);} .t-nu{color:var(--muted);}
.leg{font-size:12px;padding:3px 10px;border-radius:999px;font-weight:700;border:1px solid transparent;}
.leg1{color:var(--legion1);background:var(--legion1-bg);border-color:#cadcec;}
.leg2{color:var(--legion2);background:var(--legion2-bg);border-color:#e7d3bd;}
.leg-none{color:var(--muted);background:var(--surface-2);border-color:var(--line);}

/* admin inputs in table */
input.pwr{width:130px;text-align:right;font-variant-numeric:tabular-nums;}
select.legion{width:118px;}

/* weight slider */
.weightform{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:13px 16px;box-shadow:var(--shadow);
}
.weightform .hint{color:var(--muted);font-size:12px;}
input[type=range]{width:200px;accent-color:var(--garnet);cursor:pointer;}

/* sticky save bar */
.savebar{
  position:sticky;bottom:0;margin-top:14px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line-2);border-radius:14px;
  padding:12px 16px;box-shadow:0 -2px 16px rgba(80,50,20,.07);
}
.savebar .hint{color:var(--muted);font-size:12.5px;}

/* toast */
.toast{
  background:#eaf5ee;border:1px solid #bfe0cb;color:var(--good);
  border-radius:999px;padding:6px 14px;font-size:13px;font-weight:700;
}

/* notes */
.note{margin-top:16px;color:var(--muted);font-size:12.5px;line-height:1.7;}
.note code{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--ink-soft);}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:12.5px;}
.legend b{color:var(--ink-soft);}

.empty{padding:48px 20px;text-align:center;color:var(--muted);}
.empty .big{font-size:18px;color:var(--ink-soft);font-family:'Gowun Batang',serif;margin-bottom:6px;}

/* login */
.login{max-width:380px;margin:6vh auto 0;}
.login .card{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow);padding:30px 28px;
}
.login h2{font-family:'Gowun Batang',serif;color:var(--garnet);margin:0 0 4px;font-size:22px;}
.login p.sub{color:var(--muted);font-size:13px;margin:0 0 20px;}
.login .field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.login .field input{width:100%;}
.login .err{background:#fbe9e9;border:1px solid #eccaca;color:var(--garnet);
  border-radius:10px;padding:9px 13px;font-size:13px;margin-bottom:14px;}
.login .btn{width:100%;}
