/* 매홍엘앤에프 원가관리 시스템 */
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --navy: #1f3a52; --navy-d: #16293b; --accent: #2e7d6e; --accent-l: #e8f3f1;
  --bg: #f4f6f8; --card: #ffffff; --line: #e2e8ee; --txt: #24313f; --dim: #7b8794;
  --red: #c0392b; --red-bg: #fdeeec; --blue: #2563a8; --blue-bg: #eaf2fa;
  --green: #1e7e4c; --green-bg: #e9f6ef; --amber: #b7791f; --amber-bg: #fdf6e7;
}
html, body { height: 100%; }
body { font-family: 'Malgun Gothic', 'Segoe UI', sans-serif; background: var(--bg); color: var(--txt); font-size: 14px; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 13px; padding: 7px 9px; border: 1px solid var(--line);
  border-radius: 6px; background: #fff; color: var(--txt); }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(46,125,110,.35); border-color: var(--accent); }
a { color: var(--blue); text-decoration: none; }

/* 레이아웃 */
#layout { display: flex; height: 100vh; }
#sidebar { width: 216px; background: var(--navy); color: #dfe8f0; display: flex; flex-direction: column; flex-shrink: 0; }
#sidebar .logo { padding: 20px 18px 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
#sidebar .logo b { font-size: 16px; color: #fff; display: block; }
#sidebar .logo span { font-size: 11px; color: #9fb2c4; }
#nav { flex: 1; overflow-y: auto; padding: 10px 0; }
#nav a { display: flex; align-items: center; gap: 9px; padding: 10px 18px; color: #c7d4e0; font-size: 13.5px; }
#nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
#nav a.active { background: var(--accent); color: #fff; font-weight: 600; }
#nav .sect { padding: 14px 18px 4px; font-size: 11px; color: #8296a9; letter-spacing: .05em; }
#userbox { padding: 13px 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12.5px; }
#userbox .nm { color: #fff; font-weight: 600; }
#userbox button { background: none; border: 1px solid rgba(255,255,255,.25); color: #c7d4e0; border-radius: 5px;
  padding: 3px 9px; font-size: 11.5px; margin-top: 7px; margin-right: 5px; }
#userbox button:hover { background: rgba(255,255,255,.1); }

#main { flex: 1; overflow-y: auto; padding: 26px 30px 60px; }
.pagehead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; flex-wrap: wrap; gap: 10px; }
.pagehead h1 { font-size: 21px; }
.pagehead .sub { color: var(--dim); font-size: 12.5px; margin-top: 3px; }
.toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* 카드/버튼/테이블 */
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 18px; margin-bottom: 16px; }
.card h3 { font-size: 14.5px; margin-bottom: 12px; }
.btn { background: var(--accent); color: #fff; border: none; border-radius: 6px; padding: 8px 15px; font-size: 13px; font-weight: 600; }
.btn:hover { filter: brightness(1.08); }
.btn.gray { background: #fff; color: var(--txt); border: 1px solid var(--line); font-weight: 500; }
.btn.gray:hover { background: #f2f5f7; filter: none; }
.btn.danger { background: var(--red); }
.btn.sm { padding: 4px 10px; font-size: 12px; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

table.grid { width: 100%; border-collapse: collapse; background: #fff; font-size: 12.8px; }
table.grid th { background: #eef2f5; text-align: left; padding: 8px 10px; border-bottom: 2px solid var(--line);
  font-size: 12px; color: #46586a; white-space: nowrap; position: sticky; top: 0; }
table.grid td { padding: 7px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
table.grid tr.click { cursor: pointer; }
table.grid tr.click:hover { background: var(--accent-l); }
.tblwrap { overflow: auto; max-height: calc(100vh - 250px); border: 1px solid var(--line); border-radius: 8px; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }

.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.tag.green { background: var(--green-bg); color: var(--green); }
.tag.red { background: var(--red-bg); color: var(--red); }
.tag.blue { background: var(--blue-bg); color: var(--blue); }
.tag.amber { background: var(--amber-bg); color: var(--amber); }
.tag.gray { background: #eef1f4; color: var(--dim); }
.pos { color: var(--green); } .neg { color: var(--red); font-weight: 600; }

/* 대시보드 */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; }
.stat { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 15px 17px; }
.stat .v { font-size: 24px; font-weight: 700; margin-top: 3px; }
.stat .l { font-size: 12px; color: var(--dim); }
.twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1100px) { .twocol { grid-template-columns: 1fr; } }

/* 폼 */
.formgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 11px; }
.field label { display: block; font-size: 11.5px; color: var(--dim); margin-bottom: 4px; font-weight: 600; }
.field input, .field select { width: 100%; }
.fieldset { border: 1px solid var(--line); border-radius: 9px; padding: 14px; margin-bottom: 13px; background: #fff; }
.fieldset > legend, .fieldset > .lg { font-size: 12.5px; font-weight: 700; color: var(--accent); padding: 0 4px; }

/* 계산 결과 패널 */
.calcpanel { position: sticky; top: 0; }
.calcrow { display: flex; justify-content: space-between; padding: 5px 2px; font-size: 13px; border-bottom: 1px dashed #edf1f4; }
.calcrow.total { font-weight: 700; font-size: 14px; border-bottom: 2px solid var(--line); }
.calcrow .k { color: var(--dim); }
.calcrow.expandable { cursor: pointer; }
.calcrow.expandable:hover { background: var(--accent-l); }
.calcexp { display: none; font-size: 12px; color: #46586a; background: #f2f6f9; padding: 6px 10px;
  border-radius: 6px; margin: 3px 0 5px; line-height: 1.55; border-left: 3px solid var(--accent); }
.calcexp.show { display: block; }
.srcbox { margin-top: 6px; padding: 6px 8px; background: #fff; border: 1px solid var(--line);
  border-radius: 6px; line-height: 1.7; }
.srct { font-weight: 700; color: var(--accent); font-size: 11.5px; margin-bottom: 2px; }
.srct2 { font-weight: 600; color: #46586a; font-size: 11.5px; margin-top: 6px; }
.codechip { display: inline-block; background: var(--blue-bg); color: var(--blue); border-radius: 4px;
  padding: 0 5px; font-size: 11px; font-weight: 700; cursor: pointer; vertical-align: 1px; }
.codechip.sure { background: var(--green-bg); color: var(--green); }
.codechip:hover { text-decoration: underline; }

/* 모달 */
#modalback { position: fixed; inset: 0; background: rgba(20,30,40,.45); display: none; z-index: 50;
  align-items: flex-start; justify-content: center; overflow-y: auto; padding: 40px 16px; }
#modalback.show { display: flex; }
#modal { background: #fff; border-radius: 12px; padding: 22px 24px; width: 100%; max-width: 640px;
  box-shadow: 0 12px 40px rgba(0,0,0,.2); }
#modal.wide { max-width: 1000px; }
#modal h2 { font-size: 17px; margin-bottom: 14px; }
.modalbtns { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }

/* 트리 */
.tree { font-size: 13px; }
.tree .tnode { padding: 4px 0 4px 0; }
.tree .trow { display: flex; align-items: center; gap: 8px; padding: 3px 6px; border-radius: 5px; }
.tree .trow:hover { background: var(--accent-l); }
.tree .tcode { font-weight: 600; color: var(--navy); }
.tree .tqty { color: var(--dim); font-size: 12px; }
.tree .tamt { margin-left: auto; font-variant-numeric: tabular-nums; }
.tree .tkids { margin-left: 22px; border-left: 2px solid var(--line); padding-left: 10px; }

/* 알림 토스트 */
#toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: var(--navy-d);
  color: #fff; padding: 11px 22px; border-radius: 8px; font-size: 13.5px; display: none; z-index: 99;
  box-shadow: 0 6px 18px rgba(0,0,0,.25); }
#toast.err { background: var(--red); }
#toast.show { display: block; }

/* 로그인 */
.loginwrap { height: 100vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1f3a52 0%, #2e7d6e 100%); }
.loginbox { background: #fff; border-radius: 14px; padding: 38px 36px; width: 360px; box-shadow: 0 18px 50px rgba(0,0,0,.3); }
.loginbox h1 { font-size: 20px; margin-bottom: 4px; }
.loginbox .sub { color: var(--dim); font-size: 12.5px; margin-bottom: 22px; }
.loginbox .field { margin-bottom: 13px; }
.loginbox .btn { width: 100%; padding: 11px; font-size: 14.5px; margin-top: 6px; }
.loginerr { color: var(--red); font-size: 12.5px; margin-top: 10px; min-height: 17px; }

/* 상세 서랍 */
.detailgrid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 16px; }
.detailgrid > * { min-width: 0; }                       /* 긴 사유·메모 때문에 열이 늘어나 계산 패널이 모달 밖으로 밀리지 않게 */
.detailgrid .kv > * { min-width: 0; overflow-wrap: anywhere; }
.detailgrid table.grid td:last-child { white-space: normal; overflow-wrap: anywhere; min-width: 220px; }   /* 사유 열만 줄바꿈 */
#modal { overflow: hidden; }
@media (max-width: 1100px) { .detailgrid { grid-template-columns: 1fr; } }
.kv { display: grid; grid-template-columns: 110px 1fr; gap: 4px 10px; font-size: 13px; }
.kv .k { color: var(--dim); }
.sparkline { width: 100%; height: 120px; }
.subtabs { display: flex; gap: 4px; margin-bottom: 12px; border-bottom: 2px solid var(--line); }
.subtabs button { background: none; border: none; padding: 8px 14px; font-size: 13px; color: var(--dim);
  border-bottom: 2px solid transparent; margin-bottom: -2px; }
.subtabs button.on { color: var(--accent); border-color: var(--accent); font-weight: 700; }
/* 통합 원가표 버전 탭 (실측반영 / 기존) */
.tabs { display: flex; gap: 6px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.tabs .tab { background: var(--card); border: 1px solid var(--line); border-radius: 8px;
  padding: 7px 14px; font-size: 13px; color: var(--dim); font-weight: 600; cursor: pointer; }
.tabs .tab:hover { border-color: var(--accent); }
.tabs .tab.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.tabs .tab .cnt { display: inline-block; margin-left: 5px; padding: 1px 7px; border-radius: 9px;
  background: rgba(0,0,0,.08); font-size: 11px; }
.tabs .tab.on .cnt { background: rgba(255,255,255,.25); }
.tabs .tab.link { border: none; background: none; color: var(--blue); font-weight: 600;
  text-decoration: none; margin-left: auto; }
.tabs .tab.link:hover { text-decoration: underline; }

.hint { font-size: 12px; color: var(--dim); }
.tlink { cursor: pointer; color: var(--blue); }
.tlink:hover { text-decoration: underline; }
.searchbox { min-width: 230px; }

/* 개선 어드바이스 */
.advitem { border: 1px solid var(--line); border-left: 3px solid var(--amber); border-radius: 8px;
  padding: 11px 13px; margin-bottom: 9px; background: var(--card); }
.advtitle { font-weight: 700; font-size: 13px; margin-bottom: 4px; }
.advdetail { font-size: 12.5px; color: var(--dim); line-height: 1.55; }

/* CFO 브리핑 */
.brief { border: 1px solid var(--line); border-left: 4px solid var(--dim); border-radius: 8px;
  padding: 10px 13px; margin: 8px 0; background: var(--card); }
.brief.danger { border-left-color: var(--red); background: var(--red-bg); }
.brief.warn { border-left-color: var(--amber); background: var(--amber-bg); }
.brief.info { border-left-color: var(--blue); }
.brief.good { border-left-color: var(--green); background: var(--green-bg); }
.brieft { font-weight: 700; font-size: 13px; }
.briefb { font-size: 12.5px; color: var(--txt); margin-top: 3px; line-height: 1.55; }

/* BEP 게이지 */
.bepbar { height: 14px; background: #e8edf2; border-radius: 7px; margin: 8px 0 6px; overflow: hidden; }
.bepfill { height: 100%; background: linear-gradient(90deg, #d9822b, #e6b34d); border-radius: 7px;
  transition: width .4s; }
.bepfill.over { background: linear-gradient(90deg, #1e7e4c, #38a169); }

/* ---------- 엑셀 통합양식 그리드 (원가 시트 편집기 · 엑셀 보기) ---------- */
.xlwrap { overflow: auto; border: 1px solid #b7c3cf; border-radius: 6px; background: #fff; max-height: 62vh; position: relative; }
.xlwrap.tall { max-height: calc(100vh - 230px); }
table.xl { border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12px; font-family: "Malgun Gothic", "맑은 고딕", Segoe UI, sans-serif; }
table.xl th, table.xl td { border-right: 1px solid #c9d1d9; border-bottom: 1px solid #c9d1d9; padding: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; box-sizing: border-box; }
table.xl thead th { position: sticky; background: #f3f5f8; z-index: 3; font-weight: 600; color: #333; text-align: center; padding: 3px 4px; white-space: normal; line-height: 1.25; }
table.xl thead th.stk, table.xl thead th.rh { z-index: 5; }
table.xl tr.xl-letters th { background: #e6e9ee; color: #667; font-size: 10.5px; font-weight: 500; padding: 1px 0; }
table.xl tr.xl-group th { background: #dfe6ef; font-size: 12.5px; font-weight: 700; color: #1f2d3d; }
table.xl tr.xl-sub th { background: #eaeff5; font-size: 11.5px; }
table.xl tr.xl-sub th.blank { background: #f3f5f8; }
table.xl tr.xl-title th { font-size: 11.5px; height: 48px; vertical-align: middle; word-break: keep-all; }
table.xl tr.xl-hint th { background: #fafbfc; color: #7a8590; font-size: 10.5px; font-weight: 400; font-style: italic; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 2px 3px; }
table.xl th.rh { width: 44px; text-align: center; color: #667; background: #e6e9ee; }
table.xl th.sp, table.xl td.sp { background: #fff !important; border-right: none; border-bottom: none; width: 8px; min-width: 8px; }
table.xl td.xc { height: 30px; padding: 0 5px; vertical-align: middle; color: #222; }
table.xl td.xc.num { text-align: right; font-variant-numeric: tabular-nums; }
table.xl td.xc.b { font-weight: 700; }
table.xl td.xc.neg { color: var(--red); font-weight: 700; }
table.xl td.xc.ro { color: #1a1a1a; }
table.xl tr.xl-ro td.xc.ro:not(.num) { text-align: left; }
table.xl td.stk, table.xl th.stk { position: sticky; z-index: 2; }
table.xl tbody th.rh { position: sticky; left: 0; z-index: 4; background: #eef1f4; font-weight: 500; text-align: center; color: #556; }
.xlwrap.scrolled table.xl td.stk:nth-last-of-type(1) { box-shadow: none; }
table.xl tr.xl-edit td.xc { background-clip: padding-box; }
table.xl td.in { padding: 0; position: relative; }
table.xl td.in.stk { position: sticky; }
table.xl td.in input, table.xl td.in select { width: 100%; height: 30px; border: none; border-radius: 0; background: transparent; padding: 0 5px; font-size: 12px; color: #0000ff; font-weight: 500; font-family: inherit; }
table.xl td.in input[type=number] { text-align: right; -moz-appearance: textfield; }
table.xl td.in input[type=number]::-webkit-outer-spin-button, table.xl td.in input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
table.xl td.in input:focus, table.xl td.in select:focus { outline: 2px solid #217346; outline-offset: -2px; background: #fff; }
table.xl td.in input.ovr { color: #b7791f; }
table.xl td.in input.ovr::placeholder { color: #333; font-weight: 400; }
table.xl td.in .pctwrap { display: flex; align-items: center; }
table.xl td.in .pctwrap input { flex: 1; min-width: 0; padding-right: 2px; }
table.xl td.in .pctwrap i { font-style: normal; color: #667; font-size: 11px; padding-right: 4px; }
table.xl td.in .mini { position: absolute; right: 2px; top: 6px; height: 18px; width: 18px; border: 1px solid #b7c3cf; border-radius: 4px; background: #fff; font-size: 11px; line-height: 1; padding: 0; cursor: pointer; color: #2563a8; }
table.xl td.in .mini:hover { background: #eaf2fa; }
table.xl td.in:has(.mini) input { padding-right: 22px; }
table.xl tr.refrow td.xc { background-image: linear-gradient(rgba(255,255,255,.55), rgba(255,255,255,.55)); color: #444; }
table.xl tr.xl-sep td { background: #f0f4f8; font-weight: 700; padding: 5px 8px; color: #1f2d3d; position: sticky; left: 44px; border-bottom: 1px solid #c9d1d9; }
table.xl tr.click { cursor: pointer; }
table.xl tr.click:hover td.xc { filter: brightness(.96); }
.xl-legend { margin-left: 8px; }
.xl-legend i { font-style: normal; padding: 0 4px; border-radius: 3px; margin: 0 2px; }

/* 편집기 v2: 수식 배지 · 자동완성 · 벤치마크 */
table.xl td.in .fxv { position: absolute; right: 3px; bottom: 0; font-style: normal; font-size: 9.5px; color: #8a6d1d; background: rgba(255,255,255,.85); padding: 0 3px; border-radius: 3px; pointer-events: none; line-height: 12px; }
table.xl td.in:has(.mini) .fxv { right: 22px; }
table.xl td.in.bad input { outline: 2px solid var(--red); outline-offset: -2px; background: #fdeeec; }
table.xl th.rh .xdel { margin-left: 4px; color: #b55; font-weight: 700; }
table.xl th.rh .new { font-style: normal; font-size: 9px; color: #fff; background: var(--accent); border-radius: 3px; padding: 0 3px; margin-left: 2px; vertical-align: top; }
table.xl tr.cmprow th.rh { background: #fff6e0; }
.xlac { position: fixed; z-index: 500; display: none; width: 620px; max-width: calc(100vw - 40px); max-height: 300px; overflow: auto; background: #fff; border: 1px solid #b7c3cf; border-radius: 6px; box-shadow: 0 8px 22px rgba(0,0,0,.14); font-size: 12px; }
.xlac-h { padding: 5px 9px; background: #f3f5f8; color: #556; font-size: 11px; border-bottom: 1px solid var(--line); position: sticky; top: 0; }
.xlac-i { padding: 5px 9px; cursor: pointer; display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid #f0f2f4; }
.xlac-i:hover, .xlac-i.on { background: var(--accent-l, #eaf5f2); }
.xlac-i .v { font-weight: 600; color: #1a1a1a; white-space: nowrap; flex: 0 0 auto; }
.xlac-i .s { color: #556; font-size: 11.5px; white-space: normal; text-align: right; }
.bsec { font-weight: 700; font-size: 12.5px; color: var(--accent); margin: 10px 0 4px; }
.bline { display: grid; grid-template-columns: 150px 110px 1fr; gap: 8px; padding: 4px 0; border-bottom: 1px dashed var(--line); font-size: 12.5px; align-items: baseline; }
.bline .k { color: var(--dim); } .bline .v { text-align: right; } .bline .r { color: #445; font-size: 12px; }

/* 편집 행 아래 고정 (틀고정) */
table.xl tr.xl-edit td.stb, table.xl tr.xl-edit th.stb { position: sticky; z-index: 2; box-shadow: inset 0 1px 0 #9aa8b5; }
table.xl tr.xl-edit td.stk.stb, table.xl tr.xl-edit th.rh.stb { z-index: 4; }
.tbsep { display:inline-block; width:1px; height:22px; background:var(--line); margin:0 4px; }

/* 참고 행 세부 내역: 근거가 있는 칸은 점선 밑줄, 클릭하면 세부 내역 */
table.xl tr.refrow td.ro.why { cursor: help; text-decoration: underline dotted #8a6d3b; text-underline-offset: 3px; }
table.xl tr.refrow td.ro[onclick] { cursor: copy; }
table.xl tr.refrow td.ro[onclick]:hover { outline: 2px solid #1d4ed8; outline-offset: -2px; }
table.xl td.in input.flash { background: #d1fae5 !important; transition: background .6s; }
.tlink.xinfo { color: #1d4ed8; margin-left: 4px; }
table.grid tr.hl td { background: #fff3bf; }

/* 칸별 메모: 엑셀 셀 메모처럼 오른쪽 위 빨간 삼각 */
table.xl td.noted { position: relative; }
table.xl td.noted::after { content: ""; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 9px 9px 0; border-color: transparent #d9480f transparent transparent; pointer-events: none; }
table.xl td.stk.noted { position: sticky; }
.xlnote { position: fixed; z-index: 600; display: none; width: 360px; background: #fffbe6; border: 1px solid #e0c060; border-radius: 6px; box-shadow: 0 8px 22px rgba(0,0,0,.18); padding: 8px 10px; font-size: 12.5px; }
.xlnote-h { font-weight: 700; margin-bottom: 6px; }
.xlnote textarea { width: 100%; font: inherit; }
.notechip { display: inline-block; background: #fff3bf; border: 1px solid #f0d878; border-radius: 4px; padding: 1px 6px; margin: 2px 4px 2px 0; cursor: pointer; color: #333; }
.notechip:hover { background: #ffe58f; }

/* 방금 저장한 시트 강조 (목록) */
tr.lastsaved td, table.xl tr.lastsaved td.xc { outline: 2px solid #1d4ed8; outline-offset: -2px; animation: lastsavedFade 6s forwards; }
@keyframes lastsavedFade { 0% { box-shadow: inset 0 0 0 999px rgba(59,130,246,.18); } 100% { box-shadow: none; } }

table.xl td.rodate, table.xl span.rodate { font-size: 11px; color: #555; white-space: nowrap; cursor: help; }

/* 표 정렬·필터 */
.tblbar { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
.tblbar .tblq { width: 280px; max-width: 60vw; padding: 4px 8px; border: 1px solid var(--line); border-radius: 5px; font-size: 12.5px; }
.tblbar .tblcount { font-size: 12px; color: var(--accent); font-weight: 600; }
.tblbar .hint { font-size: 11.5px; }
table.grid th.sortable, table.xl th.sortable { cursor: pointer; user-select: none; position: relative; }
table.grid th.sortable:hover, table.xl th.sortable:hover { background: #eef3f8; }
table.grid th.sortable::after, table.xl th.sortable::after { content: "⇅"; opacity: .28; margin-left: 3px; font-size: 10px; }
table.grid th.sorted-asc::after, table.xl th.sorted-asc::after { content: "▲"; opacity: 1; color: var(--accent); }
table.grid th.sorted-desc::after, table.xl th.sorted-desc::after { content: "▼"; opacity: 1; color: var(--accent); }

/* 로그인 화면 하단 (가입 신청 안내) */
.loginfoot { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line);
  font-size: 12.5px; color: var(--dim); text-align: center; }
.loginfoot a { color: var(--accent); font-weight: 600; }
.loginbox select { padding: 8px; border: 1px solid var(--line); border-radius: 6px; font-size: 13.5px; }
