
:root{
  --paper:#FFFFFF; --surface:#FFFFFF; --surface-2:#EFFAFF; --card:#D7F2FF; --rail:#FFFFFF;
  --ink:#111418; --slate:#323A4A; --muted:#5A6776; --faint:#8F9EB1;
  --line:#E3EEF7; --line-soft:#EEF4FA; --line-2:#D2E4F2;
  --accent:#0470FF; --accent-ink:#0353BF; --accent-soft:#E6F0FF; --sky:#00AAFF; --sky-soft:#EAF6FF;
  --purple:#805DFF; --orange:#FF8A00; --green:#22C55E;
  --sev3:#D92D20; --sev3-bg:#FEE4E2; --sev2:#B54708; --sev2-bg:#FEF0C7;
  --sev1:#475467; --sev1-bg:#EAF6FF; --good:#079455; --good-bg:#DCFAE6;
  --shadow:0 1px 2px rgba(4,112,255,.04),0 8px 30px rgba(4,112,255,.07);
  --r-card:18px; --r-ctrl:10px; --r-pill:999px;
  --field:#F3F8FD; --ink2:#4A5666; --accent-mid:#7FB4FF; --zebra:#F7FBFE; --row-line:#DDEAF6;
  --sans:"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --serif:"Pretendard Variable","Pretendard","Noto Sans KR",sans-serif;
  --mono:"IBM Plex Mono","D2Coding",ui-monospace,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0E1420; --surface:#141B29; --surface-2:#182236; --card:#1B2C48; --rail:#0E1420;
  --ink:#E9EEF6; --slate:#C9D3E2; --muted:#93A1B8; --faint:#6F7E96;
  --line:#22304A; --line-soft:#1B2740; --line-2:#2C3D5C;
  --accent:#3D8BFF; --accent-ink:#8BB8FF; --accent-soft:#17305A; --sky:#33BBFF; --sky-soft:#152A44;
  --sev3:#F97066; --sev3-bg:#3A1A18; --sev2:#F5B14C; --sev2-bg:#332614;
  --sev1:#9FB0C8; --sev1-bg:#1B2740; --good:#4ADE80; --good-bg:#14301F;
  --field:#182236; --ink2:#A9B7CC; --accent-mid:#2C5FA8; --zebra:#121A29; --row-line:#243450;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 30px rgba(0,0,0,.35);
}}
:root[data-theme="dark"]{
  --paper:#0E1420; --surface:#141B29; --surface-2:#182236; --card:#1B2C48; --rail:#0E1420;
  --ink:#E9EEF6; --slate:#C9D3E2; --muted:#93A1B8; --faint:#6F7E96;
  --line:#22304A; --line-soft:#1B2740; --line-2:#2C3D5C;
  --accent:#3D8BFF; --accent-ink:#8BB8FF; --accent-soft:#17305A; --sky:#33BBFF; --sky-soft:#152A44;
  --sev3:#F97066; --sev3-bg:#3A1A18; --sev2:#F5B14C; --sev2-bg:#332614;
  --sev1:#9FB0C8; --sev1-bg:#1B2740; --good:#4ADE80; --good-bg:#14301F;
  --field:#182236; --ink2:#A9B7CC; --accent-mid:#2C5FA8; --zebra:#121A29; --row-line:#243450;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.62;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none} a:hover{color:var(--accent-ink);text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.num{font-variant-numeric:tabular-nums;font-family:var(--mono)}
svg.ic{flex:none;vertical-align:middle}

/* ---------- login ---------- */
#gate{position:fixed;inset:0;z-index:200;background:var(--paper);display:grid;grid-template-columns:1fr 1fr}
#gate .side{position:relative;overflow:hidden;background:var(--surface-2);display:flex;flex-direction:column;justify-content:space-between;padding:44px 52px}
#gate .side .glow{position:absolute;left:-120px;bottom:-160px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,var(--card) 0%,rgba(215,242,255,0) 70%)}
#gate .side .bigmark{position:absolute;right:60px;top:110px;opacity:.9}
#gate .side h1{position:relative;font-size:38px;font-weight:900;letter-spacing:-.03em;line-height:1.2;margin:0;max-width:440px;text-wrap:balance}
#gate .side h1 em{font-style:normal;color:var(--accent)}
#gate .side .eyebrow{position:relative;font-family:var(--mono,"IBM Plex Mono",monospace);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:10px}
#gate .side p.def{position:relative;margin:16px 0 0;font-size:16px;color:var(--slate);line-height:1.65;max-width:440px;font-weight:500}
#gate .side p.def b{color:var(--accent);font-weight:800}
#gate .side p.sub{position:relative;margin:10px 0 0;font-size:13.5px;color:var(--muted);line-height:1.7;max-width:440px}
#gate .side .chips{position:relative;margin-top:26px;display:flex;gap:10px;flex-wrap:wrap}
#gate .side .chips span{background:var(--surface);color:var(--accent);border-radius:var(--r-pill);padding:4px 12px;font-size:12px;font-weight:700}
#gate .side .foot{position:relative;font-size:12px;color:var(--faint)}
#gate .form{display:flex;align-items:center;justify-content:center;padding:40px}
#gate .box{width:min(380px,100%)}
#gate h2{font-size:24px;font-weight:900;letter-spacing:-.02em;margin:0}
#gate p.hint{margin:4px 0 0;color:var(--faint);font-size:13px}
#gate label{display:block;font-size:12px;font-weight:700;color:var(--slate);margin:22px 0 6px}
#gate .in{display:flex;align-items:center;gap:10px;padding:0 16px;border:1.5px solid var(--line-2);background:var(--surface);border-radius:var(--r-ctrl);transition:border-color .15s,box-shadow .15s}
#gate .in:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
#gate .in input{flex:1;border:0;background:none;padding:13px 0;font-size:14px;outline:none}
#gate button{width:100%;margin-top:22px;padding:14px;background:var(--accent);color:#fff;border:0;border-radius:var(--r-pill);font-weight:800;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
#gate button:hover{background:var(--accent-ink)}
#gate .err{margin-top:12px;font-size:12.5px;color:var(--sev3)}
#gate .note{margin-top:18px;padding:12px 14px;border-radius:12px;background:var(--surface-2);font-size:12px;color:var(--muted);line-height:1.6;display:flex;gap:10px}
@media (max-width:900px){#gate{grid-template-columns:minmax(0,1fr)}#gate .side{display:none}#gate .form{padding:28px 18px}#gate .box{width:100%;max-width:380px}#gate .in input{min-width:0;width:100%}}

/* ---------- shell ---------- */
#shell{display:none;min-height:100vh}
#shell.on{display:grid;grid-template-columns:232px 1fr}
aside{background:var(--rail);border-right:1px solid var(--line);color:var(--slate);padding:22px 14px 18px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow:auto}
aside .brand{padding:0 4px 16px;margin-bottom:2px;cursor:pointer}
/* ---------- 브랜드 락업 ---------- */
.bmk{display:flex;align-items:center;gap:10px;min-width:0}
.bmk-t{position:relative;display:flex;flex:none;border-radius:12px;box-shadow:0 5px 14px -5px rgba(4,112,255,.5);transition:transform .16s,box-shadow .16s}
.bmk-x{display:flex;flex-direction:column;min-width:0;line-height:1}
.bmk-w{display:flex;align-items:flex-end;gap:4px;font-weight:900;letter-spacing:-.045em;color:var(--ink);line-height:1.06}
.bmk-w i{width:4px;height:4px;border-radius:50%;background:var(--accent);flex:none;margin-bottom:3.5px}
.bmk-s{margin-top:3.5px;font-weight:600;letter-spacing:.015em;color:var(--faint);white-space:nowrap}
aside .brand:hover .bmk-t{transform:translateY(-1px);box-shadow:0 8px 18px -6px rgba(4,112,255,.62)}
aside .brand:hover .bmk-s{color:var(--accent)}
/* 대메뉴(그룹) — 소메뉴와 한눈에 구분되도록 띠 형태로 만들었습니다 */
aside .grp{position:relative;display:flex;align-items:center;gap:7px;margin:12px 0 4px;padding:8px 10px 8px 13px;
  font-size:12px;font-weight:800;letter-spacing:.02em;color:var(--slate);cursor:pointer;user-select:none;
  background:var(--surface-2);border:1px solid var(--line);border-radius:10px;
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s}
aside .grp:first-of-type{margin-top:6px}
aside .grp::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:11px;
  border-radius:0 3px 3px 0;background:var(--accent);opacity:.45;transition:height .16s,opacity .16s}
aside .grp:not(.closed){color:var(--ink)}
aside .grp:not(.closed)::before{height:17px;opacity:1}
aside .grp:hover{background:var(--accent-soft);border-color:var(--accent-line,var(--line-2));color:var(--accent-ink);box-shadow:0 1px 0 rgba(4,112,255,.06)}
aside .grp:hover::before{opacity:1}
aside .grp::after{content:'';width:6px;height:6px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;
  transform:rotate(45deg) translate(-1px,-1px);margin-left:auto;margin-right:4px;transition:transform .16s;opacity:.55}
aside .grp.closed::after{transform:rotate(-45deg) translate(-1px,1px)}
aside .grp .gc{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:0;color:var(--faint);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:0 6px;line-height:16px;transition:color .15s}
aside .grp:hover .gc{color:var(--accent);border-color:var(--accent-line,var(--line-2))}
aside .grp.hasact{background:var(--accent-soft);border-color:var(--accent-line,var(--line-2));color:var(--accent-ink)}
aside .grp.hasact::before{opacity:1;height:17px}
aside .grp.hasact .gc{color:var(--accent);border-color:var(--accent-line,var(--line-2))}
aside .grp+a.nav{margin-top:1px}
aside a.nav.hid{display:none}
aside a.nav.hid.on{display:flex;opacity:.85}
aside a.nav{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-ctrl);color:var(--slate);font-size:13.5px;cursor:pointer;font-weight:500}
aside a.nav svg{color:var(--faint)}
aside a.nav:hover{background:var(--surface-2);text-decoration:none;color:var(--ink)}
aside a.nav.on{background:var(--accent-soft);color:var(--accent);font-weight:700}
aside a.nav.on svg{color:var(--accent)}
aside a.nav .lb{flex:1}
aside a.nav .c{font-family:var(--mono);font-size:11px;color:var(--faint)}
aside a.nav.on .c{color:var(--accent)}
aside a.nav .c.warn{color:var(--orange);font-weight:700}
/* 즐겨찾기 — 많이 쓰는 메뉴만 모아 보기 */
aside .favhd{display:flex;align-items:center;gap:6px;margin:10px 6px 5px 12px;font-size:10px;letter-spacing:.16em;color:var(--faint);font-weight:700;user-select:none}
aside .favhd b{color:var(--accent);letter-spacing:0;font-size:10.5px}
aside .favhd .sw{margin-left:auto;margin-right:4px;font-size:10.5px;letter-spacing:0;color:var(--accent);cursor:pointer;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--accent-soft)}
aside .favhd .sw:hover{background:var(--accent);color:#fff}
aside .favtip{margin:2px 12px 6px;font-size:11px;line-height:1.5;color:var(--faint)}
aside .favtip a{color:var(--accent);font-weight:700}
aside a.nav .st{flex:none;width:20px;height:20px;margin-right:-4px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:12px;line-height:1;color:var(--line-2);opacity:0;transition:opacity .12s,color .12s}
aside a.nav:hover .st{opacity:1}
aside a.nav .st:hover{background:var(--surface-2);color:var(--orange)}
aside a.nav .st.on{opacity:1;color:var(--orange)}
aside a.nav.favmoved{background:var(--field)}
aside a.nav.favmoved:hover{background:var(--surface-2)}
body.favonly aside .grp,body.favonly aside a.nav:not(.favmoved){display:none}
body.favonly aside a.nav.favmoved{display:flex}
aside .who{margin-top:auto;padding:14px 10px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--muted)}
aside .who b{color:var(--ink);display:block;font-size:13px;font-weight:700}
aside .who button{margin-left:auto;background:none;border:1px solid var(--line-2);color:var(--muted);padding:4px 10px;border-radius:var(--r-pill);font-size:11px;cursor:pointer}
aside .who button:hover{border-color:var(--accent);color:var(--accent)}

main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:14px 32px;display:flex;gap:12px;align-items:center}
.search{position:relative;flex:1;max-width:640px}
.search input{width:100%;padding:11px 16px 11px 42px;border:1.5px solid var(--line-2);background:var(--surface);border-radius:var(--r-pill);font-size:13.5px}
.search input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px var(--accent-soft)}
.search .ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--accent);display:flex;pointer-events:none}
.search kbd{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:10.5px;color:var(--faint);border:1px solid var(--line-2);border-radius:6px;padding:1px 7px;background:var(--surface)}
.tbtn{border:1px solid var(--line-2);background:var(--surface);border-radius:var(--r-pill);padding:8px 14px;font-size:12.5px;cursor:pointer;color:var(--slate);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.tbtn:hover{border-color:var(--accent);color:var(--accent)}
.tbtn.dark{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:700}
.tbtn.dark:hover{background:var(--slate);color:#fff}
.tbtn#bell{padding:0;width:34px;justify-content:center;position:relative}
.tbtn#bell.on{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft)}
.tbtn#bell.hasn::after{content:attr(data-n);position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--sev3,#D8443C);color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--paper)}
.page{padding:26px 32px 70px;max-width:1240px;width:100%}

/* ---------- typography ---------- */
h1.pt{font-size:28px;font-weight:900;margin:0 0 4px;letter-spacing:-.02em;line-height:1.2;text-wrap:balance}
p.pd{margin:0 0 22px;color:var(--muted);font-size:13.5px;max-width:72ch}
h2.sec{font-size:17px;font-weight:800;margin:28px 0 12px;display:flex;align-items:baseline;gap:9px;letter-spacing:-.01em}
h2.sec:first-of-type{margin-top:22px}
h2.sec .n{font-size:12px;color:var(--faint);font-weight:500;font-family:var(--sans)}
h2.sec .ed{margin-left:auto}
.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--accent);font-weight:700;margin-bottom:6px}

/* ---------- bits ---------- */
.pill{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:700;border:1px solid transparent;white-space:nowrap;line-height:1.7}
.p-hi{background:var(--sev3-bg);color:var(--sev3)}
.p-md{background:var(--sev2-bg);color:var(--sev2)}
.p-lo{background:var(--sev1-bg);color:var(--sev1)}
.p-ok{background:var(--good-bg);color:var(--good)}
.p-ac{background:var(--accent-soft);color:var(--accent)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 18px 16px}
.kpi .ico{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.kpi b{display:block;font-family:var(--mono);font-size:27px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi span{font-size:13px;font-weight:700;color:var(--slate)}
.kpi .sub{font-size:11.5px;color:var(--faint);font-family:var(--sans);font-weight:400}
.hero{position:relative;overflow:hidden;border-radius:24px;background:var(--surface-2);padding:30px 34px;display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center;margin-bottom:22px}
.hero .glow{position:absolute;right:-60px;top:-80px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,var(--card) 0%,rgba(215,242,255,0) 70%)}
.hero>*{position:relative}
.hero h1{font-size:30px;font-weight:900;letter-spacing:-.025em;line-height:1.2;margin:8px 0 0}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero p{font-size:14px;color:var(--muted);margin:8px 0 0;line-height:1.6}
.hero .acts{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.hero .todo{display:flex;flex-direction:column;gap:8px}
.hero .todo a{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border-radius:14px;color:var(--ink);text-decoration:none}
.hero .todo a:hover{box-shadow:var(--shadow)}
.hero .todo i{width:8px;height:8px;border-radius:50%;flex:none}
.hero .todo b{display:block;font-size:13.5px;font-weight:700}
.hero .todo small{font-size:11.5px;color:var(--faint)}
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--r-pill);font-size:13px;font-weight:700;border:1px solid transparent;cursor:pointer;text-decoration:none!important}
.btn.pri{background:var(--accent);color:#fff}.btn.pri:hover{background:var(--accent-ink);color:#fff}
.btn.ghost{background:var(--surface);color:var(--slate);border-color:var(--line-2)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
.avatar{border-radius:34%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.gauge{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:6px}
.gauge i{display:block;height:100%;border-radius:3px}
.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.metric{background:var(--sky-soft);border-radius:14px;padding:12px 14px}
.metric .l{font-size:11px;color:var(--muted)}
.metric b{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-.02em}
.metric b small{font-size:13px}
table.gr{width:100%;border-collapse:collapse;font-size:13px}
table.gr th{text-align:left;font-size:11px;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:9px 12px;background:var(--surface-2);white-space:nowrap}
table.gr th:first-child{border-radius:12px 0 0 0}table.gr th:last-child{border-radius:0 12px 0 0}
table.gr td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
table.gr tbody tr:hover td{background:var(--sky-soft)}
table.gr td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.tblwrap{border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:var(--surface)}
.scroll{overflow-x:auto}
.tblwrap.scroll{overflow:auto}
.pyn{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.py-c{width:104px;text-align:right;font-variant-numeric:tabular-nums;padding:5px 8px;border:1.5px solid var(--line-2);border-radius:8px;font-size:12.5px;background:var(--bg-1,#fff);color:inherit}
/* 급여도우미 — 패널·머리·표 (글꼴 한 가지, 숫자는 tabular) */
.pycard{background:var(--field);border:1px solid transparent;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.55}
.pycard>.l{font-size:13px;font-weight:800;color:var(--ink);margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;letter-spacing:-.01em}
.pycard>.l .ismall,.pycard>.l .pill{font-weight:600}
.pycard b{font-weight:700;font-variant-numeric:tabular-nums}
.pycard p{margin:6px 0 0}
.pycard .ismall{font-size:12px}
.pyhead{margin-bottom:14px}
.pyhead .row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pyhead h1{margin:0;font-size:24px;font-weight:900;letter-spacing:-.02em}
.pyhead .chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pyhead .chip{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600}
.pyhead .chip b{font-weight:800;font-variant-numeric:tabular-nums}
.pyhead .meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:4px}
table.pytbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}
table.pytbl th{background:var(--surface-2);color:var(--slate);font-size:11.5px;font-weight:700;padding:8px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
table.pytbl th.l,table.pytbl td.l{text-align:left}
table.pytbl tr.grp th{background:var(--accent-soft);color:var(--accent-ink);text-align:center;font-weight:800;letter-spacing:.02em}
table.pytbl tr.grp th.l{text-align:left}
table.pytbl th.hl,table.pytbl td.hl{background:var(--sky-soft)}
table.pytbl th.sum,table.pytbl td.sum{font-weight:700}
table.pytbl td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top;text-align:right;white-space:nowrap}
table.pytbl td.num{min-width:86px;font-size:13px;font-family:inherit}
table.pytbl td.num .py-c{font-family:inherit}
table.pytbl td.hl{font-weight:800;color:var(--accent-ink)}
table.pytbl td .src{display:block;font-size:10.5px;line-height:1.35;margin-top:2px;color:var(--faint);font-weight:400;white-space:normal;max-width:120px;margin-left:auto}
table.pytbl td .src.warn{color:var(--sev2)}
table.pytbl td .src a{color:var(--accent)}
table.pytbl td .nm{font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
table.pytbl td .nm a{color:var(--ink);text-decoration:none}
table.pytbl td .nm a:hover{color:var(--accent)}
table.pytbl td .nm .caret{font-size:11px;color:var(--accent);font-weight:400}
table.pytbl td .meta{font-size:11.5px;color:var(--muted);margin-top:2px;white-space:normal;max-width:220px}
table.pytbl td .meta .acts a{color:var(--accent)}
table.pytbl tr.rep td{opacity:.62}
table.pytbl tfoot td{background:var(--surface-2);font-weight:700;border-top:2px solid var(--line-2);border-bottom:0}
table.pytbl tfoot td.hl{background:var(--accent);color:#fff;border-radius:0 0 8px 0}
table.pytbl .py-c{width:96px;padding:4px 7px;border-color:var(--line-soft);background:var(--paper)}
table.pytbl.mon td{white-space:normal;vertical-align:middle;padding:7px 10px}
table.pytbl.mon tr.cur td{background:var(--sky-soft)}
table.pytbl.mon .mon-l{font-weight:700;font-size:13.5px}
@media(max-width:760px){table.pytbl td .meta{max-width:150px}}
/* 지킴 수업자료 */
.clnext{background:linear-gradient(135deg,var(--accent),var(--sky));color:#fff;border-radius:var(--r-card);padding:18px 22px;margin:0 0 14px}
.clnext .l{font-size:11px;letter-spacing:.12em;opacity:.9;font-weight:700}
.clnext b.big{display:block;font-size:22px;margin-top:4px;letter-spacing:-.02em;line-height:1.3}
.clnext .sub{font-size:12.8px;opacity:.92;margin-top:5px}
.clnext .acts{margin-top:12px}
.clnext .btn{background:#fff;color:var(--accent);border-color:#fff}
table.gr.cltbl td{vertical-align:middle}
table.gr.cltbl .clsub{display:block;font-size:11px;color:var(--faint);font-weight:400;margin-top:1px}
table.gr.cltbl tr.clpast td{opacity:.6}
table.gr.cltbl tr.cltoday td{background:var(--accent-soft)}
table.gr.clnotes td{vertical-align:top}
table.gr.clnotes .clnotetd{max-width:520px;white-space:normal;color:var(--muted);line-height:1.6}
.clhead{margin:0 0 12px}
.clhead .row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.clhead h1{margin:0;font-size:23px;font-weight:900;letter-spacing:-.02em}
.clhead .meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12.8px;margin-top:5px}
.clstage{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start;background:var(--surface-2);border:1px solid var(--line-2);border-radius:14px;padding:12px}
.clstage .clslide{position:relative;width:100%;max-width:100%;background:#0b0f16;border-radius:10px;overflow:hidden;aspect-ratio:16/9}
.clstage canvas{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:100%;max-height:100%;border-radius:8px}
.clload{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,86%);text-align:center;color:#9fb0c8;font-size:12.5px;line-height:1.6}
.clload b{display:block;color:#e6edf7;font-size:14px;font-weight:700;margin-bottom:6px}
.clload .wy{font-size:11.8px;color:#9fb0c8;margin-top:2px}
.clload .wy b{display:inline;font-size:inherit;color:#cfe0f5}
.clload .wy code{font-family:var(--mono);font-size:11px;background:#18202e;padding:1px 5px;border-radius:5px;color:#cfe0f5}
.clload .dv{font-family:var(--mono);font-size:10.5px;color:#6f8099;margin-top:5px;word-break:break-all}
.clload .ax{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:11px 0 3px}
.clload .ax .mini{background:#18202e;border:1px solid #27324a;color:#cfe0f5}
.clload .ax .mini:hover{background:#212b3c;color:#fff}
.clload .ax .mini.pri{background:var(--accent);border-color:var(--accent);color:#fff}
.clstage .clif{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.clnote{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow:auto;max-height:60vh}
.clnote .clnh{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:8px}
.clnote .clnh b{font-size:13.6px;font-weight:800;letter-spacing:-.01em;flex:1;min-width:120px}
.clnote .clk{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:700}
.clnote .cltime{font-family:var(--mono);font-size:11px;color:var(--muted)}
.clnote .clnb p{margin:0 0 8px;font-size:13px;line-height:1.72;color:var(--slate)}
.clbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.clbar b{font-family:var(--mono);font-size:13px;min-width:64px;text-align:center}
.clbar .mini.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.clkeys{margin-top:6px;color:var(--faint)}
.clnav{display:flex;justify-content:space-between;gap:10px;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap}
.clframe{border:1px solid var(--line-2);border-radius:12px;overflow:hidden;background:var(--surface);height:70vh;min-height:420px}
.clframe iframe{width:100%;height:100%;border:0;display:block}
.cldiff{border:1px solid var(--line-2);border-radius:12px;padding:11px 14px;margin-top:10px;background:var(--surface)}
.cldiff>.l{font-size:12.8px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cldiff .clrow{display:flex;gap:10px;margin-top:7px;font-size:12.8px;line-height:1.65}
.cldiff .clrow .k{flex:none;width:42px;font-size:11px;color:var(--faint);font-weight:700;padding-top:2px}
.cldiff .clrow s{color:var(--faint)}
/* 수업 모드 — 전체화면 */
.clstage.on{position:fixed;inset:0;z-index:400;border-radius:0;border:0;background:#05070b;padding:0;grid-template-columns:1fr;gap:0}
.clstage.on .clslide{width:100vw;height:100vh;aspect-ratio:auto;max-width:none;border-radius:0;background:#05070b}
.clstage.on canvas{max-height:100vh;border-radius:0}
.clstage.on .clnote{position:fixed;right:0;bottom:0;top:auto;width:min(420px,40vw);max-height:44vh;border-radius:12px 0 0 0;
  background:rgba(12,18,28,.94);color:#e9eef6;border-color:#22304a;backdrop-filter:blur(6px)}
.clstage.on .clnote .clnh{border-color:#22304a}
.clstage.on .clnote .clnb p{color:#c9d3e2}
@media(max-width:1000px){.clstage{grid-template-columns:1fr}.clnote{max-height:none}}
.pbbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:9px 14px;border-radius:12px;
  background:var(--surface-2);border:1px solid var(--line);font-size:12.6px;min-height:44px}
.pbbar.on{background:var(--accent-soft);border-color:var(--accent-mid,var(--accent))}
.pbbar b{font-size:13.5px;font-weight:800;color:var(--accent-ink)}
.pbbar .l{font-weight:800;color:var(--accent-ink);font-size:13px}
.pbbar .ismall{color:var(--muted)}
.pbprog{flex:1;min-width:160px;height:8px;border-radius:999px;background:var(--surface);overflow:hidden}
.pbprog i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .2s}
td.pbc,th.pbc{width:34px;padding-left:12px;padding-right:0;text-align:center}
td.pbc input,th.pbc input{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}
td.pbc input:disabled{cursor:default;opacity:.3}
/* 재무·세무 정보 — 고정자산 · 차입금 · 비교식 재무제표 */
.fabox{margin:2px 0 10px}
.fahd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 7px;font-size:12.6px}
.fahd b{font-size:13px;font-weight:800;letter-spacing:-.01em}
.fahd .ismall{color:var(--muted)}
.fanote{margin-top:7px;color:var(--faint);line-height:1.65}
table.gr.fatbl td,table.gr.fstbl td{vertical-align:middle}
table.gr.fatbl td.n,table.gr.fstbl td.n{white-space:nowrap}
table.gr.fatbl .fasub{display:block;font-size:10.8px;color:var(--faint);font-weight:400;margin-top:1px}
table.gr.fatbl th .fasub{display:block;font-size:10px;color:var(--faint);font-weight:500}
table.gr.fatbl tbody tr.fadone td{background:var(--surface-2);color:var(--muted)}
table.gr.fatbl tfoot td{background:var(--accent-soft);color:var(--accent-ink);font-weight:800;border-top:1.5px solid var(--accent-mid,var(--accent));border-bottom:0;padding:9px 12px}
table.gr.fstbl th.fsyr{text-align:center;border-left:1px solid var(--line-2);letter-spacing:.02em}
table.gr.fstbl td.pcell{color:var(--faint);font-size:11.8px}
table.gr.fstbl tbody tr.plsum td{background:var(--surface-2);font-weight:700}
table.gr.fstbl tbody tr.bsgrp td{background:var(--accent-soft);color:var(--accent-ink);font-weight:800;font-size:11.5px;letter-spacing:.03em;padding:6px 12px}
table.gr.fstbl tbody tr.bstot td{background:var(--surface-2);font-weight:800;border-top:1px solid var(--line-2)}
table.gr.fstbl tbody tr.bsneg td{background:var(--sev3-bg)}
table.gr.fstbl tbody tr.bsneg td.n{color:var(--sev3);font-weight:700}
.lnrule{background:var(--surface-2);border-radius:10px;padding:9px 13px;margin:10px 0 8px;line-height:1.7;color:var(--slate)}
table.gr tbody tr.isum td{background:var(--sky-soft);font-weight:700}
/* 직원 이력 (수임처 위키) */
.embox>.l{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
table.pytbl.emtbl td{vertical-align:middle;white-space:nowrap}
table.pytbl.emtbl td.l{white-space:normal}
table.pytbl.emtbl tr.emhd td{background:var(--surface-2);font-weight:800;font-size:11.5px;color:var(--slate);text-align:left;letter-spacing:.02em;padding:6px 10px;border-bottom:1px solid var(--line)}
table.pytbl.emtbl tr.emr:hover td{background:var(--zebra)}
table.pytbl.emtbl tr.emr.on td{background:var(--accent-soft)}
table.pytbl.emtbl tr.emr td .meta{max-width:260px}
table.pytbl.emtbl td.emact{white-space:nowrap;width:1%;padding-left:14px}
table.pytbl.emtbl td.emact span{display:block;line-height:1.7}
table.pytbl.emtbl td.l:first-child{min-width:140px}
table.pytbl.emtbl tr.emsub>td{background:var(--surface-2);padding:8px 10px 12px;border-bottom:2px solid var(--line-2)}
.tblwrap.emmon{margin:0;border:1px solid var(--line-2);border-radius:10px;background:var(--paper);overflow:auto;max-height:360px}
.tblwrap.emmon table.pytbl td,.tblwrap.emmon table.pytbl th{padding:6px 9px;font-size:12.2px}
.tblwrap.emmon table.pytbl thead th{position:sticky;top:0;z-index:1}
.tblwrap.emmon table.pytbl td .src{display:inline;margin-left:4px;max-width:none}
/* 급여도우미 근무 달력 */
.pywc-cal{margin-top:8px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:10px 12px}
.pywc-top{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:8px}
.pywc-top b{font-size:12.5px}
.pywc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.pywc-w{border:1px solid var(--line-2);background:var(--surface-2);border-radius:8px;font-size:11.5px;font-weight:700;padding:4px 0;cursor:pointer;color:var(--slate)}
.pywc-w.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.pywc-d{min-height:38px;border:1px solid var(--line-soft);border-radius:8px;font-size:12px;padding:3px 5px;cursor:pointer;display:flex;flex-direction:column;gap:2px;background:var(--paper)}
.pywc-d:hover{border-color:var(--accent)}
.pywc-d.on{background:var(--accent-soft);border-color:var(--accent-mid,var(--accent))}
.pywc-d span{font-weight:700;line-height:1.1}
.pywc-d input{width:100%;font-size:11.5px;padding:1px 4px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface);text-align:right;font-variant-numeric:tabular-nums;color:inherit}
.pywc-sum{margin-top:8px;font-size:12.5px;color:var(--slate)}
.pywc-sum b{color:var(--accent)}
.py-c:focus{border-color:var(--accent);outline:none}
/* 수임처 트리 — 실체 목록 · 관계도 */
.trsplit{display:grid;grid-template-columns:274px minmax(0,1fr);gap:14px;align-items:start;margin-top:10px}
.trsplit>*{min-width:0}
@media (max-width:860px){.trsplit{grid-template-columns:minmax(0,1fr)}}
.trlist{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px;max-height:72vh;overflow:auto}
.trg+.trg{margin-top:12px}
.trgh{display:flex;justify-content:space-between;font-size:11.5px;color:var(--faint);font-weight:700;padding:0 3px 5px;border-bottom:1px solid var(--line)}
.tre{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:9px;border:1px solid transparent;color:inherit;text-decoration:none;margin-top:3px}
.tre:hover{background:var(--line-3,rgba(127,127,127,.08))}
.tre.on{background:var(--accent-bg,rgba(42,120,214,.1));border-color:var(--accent)}
.tre b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.4px;font-weight:600}
.trdot{width:7px;height:7px;border-radius:50%;background:var(--sev3);flex:none}
.trmain{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px}
.trbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px}
.trbar .nm{font-weight:700;font-size:15px}
.trwrap{overflow-x:auto;padding-bottom:8px}
.trwrap svg{display:block;max-width:none}
.trwrap text{font-family:inherit}
.trent{fill:var(--accent-bg,rgba(42,120,214,.1));stroke:var(--accent);stroke-width:1.1;opacity:.95;cursor:pointer}
.trent.on{stroke-width:2.2;opacity:1}
.trentt{fill:var(--ink,currentColor);font-size:14px;font-weight:700;pointer-events:none}
.trents{fill:var(--muted);font-size:11.5px;pointer-events:none}
.trcli{fill:var(--surface);stroke:var(--line-2,var(--line));stroke-width:1}
.trcli.bad{fill:var(--sev3-bg);stroke:var(--sev3)}
.trclit{fill:var(--ink,currentColor);font-size:12.5px;font-weight:600;pointer-events:none}
.trclit.bad{fill:var(--sev3)}
.trclis{fill:var(--faint);font-size:10.5px;pointer-events:none}
.trclis.bad{fill:var(--sev3)}
.trspine{fill:none;stroke:var(--line-2,var(--line));stroke-width:1.1}
.trrel{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-dasharray:5 4;opacity:.8}
.trlab{fill:var(--accent-bg,rgba(42,120,214,.1));stroke:var(--accent);stroke-width:1;cursor:pointer}
.trlabt{fill:var(--accent);font-size:11.5px;font-weight:600;pointer-events:none}
.trpick{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:10px;margin-top:8px}
.trpick .r{display:flex;gap:10px;align-items:center;padding:7px 11px;border-bottom:1px solid var(--line)}
.trpick .r:last-child{border-bottom:0}
.trpick .r span.g{flex:1;min-width:0}
.trfld{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.trfld label{font-size:12px;color:var(--muted);min-width:64px}
.trfld input,.trfld select{font:inherit;font-size:13px;padding:6px 9px;border:1px solid var(--line-2,var(--line));border-radius:8px;background:var(--surface);color:inherit}
.trfld input{flex:1;min-width:140px}
/* 업종 표시 · 수임처 묶음 */
.bk{display:inline-flex;align-items:center;gap:6px;font-size:12.2px;font-weight:600;color:var(--slate);white-space:nowrap;text-decoration:none}
.bk i{width:7px;height:7px;border-radius:50%;background:var(--c,var(--faint));flex:none}
a.bk:hover{color:var(--accent);text-decoration:underline}
h1.pt .bk{font-size:13px;vertical-align:middle}
table.pytbl.grptbl td{white-space:normal;vertical-align:middle}
table.pytbl.grptbl tr.cur td{background:var(--sky-soft)}
table.pytbl.grptbl tr.sumrow td{background:var(--surface-2);border-top:1.5px solid var(--line-2);font-weight:700}
.grptag{display:inline-block;margin-top:3px;font-size:10.5px;font-weight:700;letter-spacing:-.01em;
  color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:1px 8px;text-decoration:none;white-space:nowrap}
.grptag:hover{background:var(--accent);color:#fff}
.pill.sungq{background:transparent;color:var(--sev2);border:1px dashed var(--sev2)}
/* 수임처 관리 — 전체 현황 표 */
.casumhd{display:flex;align-items:center;gap:10px;margin:12px 0 6px;font-size:12.3px}
.casumhd a{font-weight:700;color:var(--accent);text-decoration:none}
.casumhd .ismall{color:var(--faint)}
.casums{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px;margin-bottom:12px}
.casum{background:var(--surface);border:1px solid var(--line-2);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}
.casum>.l{font-size:13px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;letter-spacing:-.01em}
.casum>.l .ismall{color:var(--muted)}
.cascroll{max-height:268px;overflow:auto;border-top:1px solid var(--line)}
.cascroll table.pytbl th{position:sticky;top:0;z-index:1;background:var(--surface-2);font-size:11px;padding:6px 8px}
.cascroll table.pytbl td{padding:5px 8px;font-size:12.3px;border-bottom:1px solid var(--line-soft)}
/* v-124 — 현황표의 숫자 칸은 좁게(다른 표의 86px 를 그대로 쓰면, 줄이 많아 세로 막대가 생길 때 「월 기장료」 칸이 가로로 밀려 잘립니다) */
.cascroll table.pytbl td.num{min-width:48px}
.cascroll table.pytbl tfoot td{position:sticky;bottom:0;background:var(--surface-2);font-weight:800;border-top:1.5px solid var(--line-2)}
.cascroll tr.click{cursor:pointer}
.cascroll tr.click:hover td{background:var(--sky-soft)}
.cascroll tr.cur td{background:var(--accent-soft);font-weight:700}
.cabar{display:block;height:7px;border-radius:4px;background:var(--line-soft);overflow:hidden;min-width:56px}
/* 표 안에서 바로 고치는 칸 — 고르기 상자(팀·기장담당·영업담당)와 금액칸(월 기장료) */
.casel{font-size:12.3px;padding:4px 6px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:inherit;max-width:110px}
.cafee{width:92px;text-align:right;font-size:12.3px;padding:4px 6px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:inherit;font-variant-numeric:tabular-nums}
.cafee::placeholder{color:var(--faint)}
.cafee:focus,.casel:focus{outline:2px solid var(--accent);outline-offset:-1px}
.cabar i{display:block;height:100%;background:var(--accent-mid,var(--accent));border-radius:4px}
@media(max-width:900px){.casums{grid-template-columns:1fr}}
/* 수임도우미 */
.ohform{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.ohform .cf{width:auto}
.obdot.late{border-color:var(--sev3);color:var(--sev3)}
.obdot.late span{background:var(--sev3);color:#fff}
.obstep.late>summary{background:var(--sev3-bg)}
.obstep.late>summary .no{background:var(--sev3);color:#fff}
.phbar.sm{height:6px}
.pyhead .chips a.chip{text-decoration:none}
.pill sup{font-size:9px;vertical-align:super;opacity:.8}
.grpbox .tblwrap{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}

/* ── 수임처 위키 목록 — 줄·칸이 또렷하게 보이도록 ────────────────────────── */
.tblwrap.wiki{border:1px solid var(--line-2);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);overflow:auto}
table.gr.wikitbl{background:transparent;border-collapse:separate;border-spacing:0}
.tblwrap.wiki table.gr.wikitbl th,.tblwrap.scroll table.gr.wikitbl th{
  background:var(--surface-2);color:var(--slate);font-size:10.6px;font-weight:700;letter-spacing:.07em;
  padding:10px 14px;border-bottom:1.5px solid var(--line-2);box-shadow:none}
/* 세로 칸막이는 「이름·업종·담당 / 숫자 / 주제」 세 덩어리 경계에만 */
table.gr.wikitbl th:nth-child(4),table.gr.wikitbl th:nth-child(9),
table.gr.wikitbl td:nth-child(4),table.gr.wikitbl td:nth-child(9){border-left:1px solid var(--line)}
table.gr.wikitbl td{padding:11px 14px;border-bottom:1px solid var(--row-line,var(--line));vertical-align:middle;transition:background .12s}
table.gr.wikitbl tbody tr:nth-child(even)>td{background:var(--zebra)}
table.gr.wikitbl tbody tr:hover>td{background:var(--sky-soft)}
table.gr.wikitbl tbody tr:hover>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
table.gr.wikitbl tbody tr:last-child td{border-bottom:0}
table.gr.wikitbl td.n{color:var(--ink2)}
table.gr.wikitbl td:nth-child(9){white-space:normal;max-width:330px}
table.gr.wikitbl td:nth-child(9) .pill{background:var(--field);color:var(--muted);border:1px solid var(--line)}
/* 묶음 모드에서는 줄무늬 대신 묶음 머리글과 왼쪽 띠로 구분 */
table.gr.wikitbl.grpmode tbody tr:nth-child(even)>td{background:transparent}
table.gr.wikitbl.grpmode tbody tr.grpsub:nth-child(even)>td{background:var(--zebra)}
table.gr tr.grphd>td{background:linear-gradient(var(--accent-soft),var(--accent-soft));border-top:2px solid var(--accent-mid,var(--accent));
  border-bottom:1px solid var(--line-2);padding:8px 16px;white-space:normal}
table.gr tr.grphd .ttl{font-weight:800;font-size:13.2px;color:var(--accent-ink);margin-right:8px;letter-spacing:-.01em}
table.gr tr.grphd .ismall{color:var(--muted);margin-left:8px;font-size:11.6px}
table.gr tr.grpsub>td:first-child{box-shadow:inset 3px 0 0 var(--accent-mid,var(--accent))}
table.gr tr.grpsub.ghost>td{color:var(--faint);background:var(--line-soft)}
table.gr tr.grpsub.ghost>td b{font-weight:600;color:var(--muted)}

.bar{height:10px;background:var(--line);border-radius:5px;overflow:hidden;min-width:70px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--sky));border-radius:5px}
.bar i.warm{background:linear-gradient(90deg,var(--orange),#FFB454)}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.filters select,.filters input{padding:8px 14px;border:1.5px solid var(--line-2);background:var(--surface);border-radius:var(--r-pill);font-size:12.5px;font-weight:600;color:var(--slate)}
.filters .cnt{margin-left:auto;font-size:12px;color:var(--faint);font-family:var(--mono)}
.empty{padding:40px 10px;text-align:center;color:var(--faint);font-size:13px}
.stack{display:flex;flex-direction:column;gap:10px}
.item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:15px 18px}
.item.click{cursor:pointer}
.item.click:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.item h3{margin:0 0 4px;font-size:14.5px;font-weight:800;line-height:1.45}
.item .meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--muted);margin-bottom:7px}
.item p{margin:0;color:var(--muted);font-size:12.8px}
.case{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.case::before{content:"";width:6px;flex:none;background:var(--line-2)}
.case.s3::before{background:var(--sev3)} .case.s2::before{background:var(--sev2)} .case.s1::before{background:var(--sev1)} .case.ok::before{background:var(--good)}
.case>.in{flex:1;min-width:0}
.case .hd{padding:12px 16px;display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;cursor:pointer}
.case .hd .t{font-weight:700;font-size:13.5px;flex:1;min-width:200px}
.case .bd{padding:0 16px 14px;display:none;border-top:1px solid var(--line-soft);margin-top:2px;padding-top:12px}
.case.open .bd{display:block}
.field{margin-bottom:11px}
.field .lb{font-size:10.5px;letter-spacing:.12em;color:var(--faint);font-weight:700;margin-bottom:3px}
.field .vl{font-size:13px;white-space:pre-wrap}
.quote{background:var(--surface-2);border-radius:12px;padding:10px 14px;font-size:12.8px;white-space:pre-wrap}
/* ===== 계약현황 ===== */
.ctgrp{display:flex;gap:4px;flex-wrap:wrap}
table.ct td{white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;font-size:12.3px}
table.ct td .ok{color:var(--good);font-weight:800} table.ct td .no{color:var(--faint)}
table.ct tr.click{cursor:pointer} table.ct tr.click:hover td{background:var(--surface-2)}
.ctmeta{display:grid;grid-template-columns:1.4fr 1fr;gap:16px} .ctmeta>div>b{display:block;font-size:13px;margin-bottom:8px}
.ctmeta table td{font-size:12px}
.ctdl{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:6px 18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 24px}
.ctdl .row{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13px;align-items:baseline}
.ctdl dt{color:var(--faint);font-size:11.5px;min-width:110px} .ctdl dd{margin:0;color:var(--ink);word-break:break-all}
.ctform{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px}
.ctform .cf.wide{grid-column:1/-1} .ctform textarea{padding:8px 10px;border:1.5px solid var(--line-2);border-radius:10px;font-size:13px;font-family:var(--sans);width:100%;box-sizing:border-box}
.ctform .cf input{font-family:var(--sans)}
@media (max-width:1000px){.ctmeta,.ctform{grid-template-columns:1fr}}

/* ===== 계산하기 ===== */
.tabs{display:flex;gap:6px;margin:0 0 18px;border-bottom:1px solid var(--line);padding-bottom:0}
.tab{padding:9px 14px;font-size:13px;font-weight:700;color:var(--muted);text-decoration:none;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.tab.on{color:var(--accent);border-color:var(--accent)}
.calc-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.calc-top select,.calc-top input{padding:8px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);background:var(--surface);font-size:13px}
.cf{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted);min-width:0}
.cf span{display:flex;align-items:center;gap:4px;font-weight:600}
.cf span i{font-style:normal;width:14px;height:14px;border-radius:50%;background:var(--surface-2);color:var(--faint);font-size:10px;display:inline-grid;place-items:center;cursor:help}
.cf input,.cf select{padding:8px 10px;border:1.5px solid var(--line-2);border-radius:10px;background:var(--surface);font-size:13.5px;font-family:var(--mono);color:var(--ink);width:100%;box-sizing:border-box}
.cf input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.cchk{font-size:12px;color:var(--slate);display:inline-flex;align-items:center;gap:5px;margin-right:10px}
.cchks{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 4px;margin-top:2px}
.emp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow)}
.emp-hd{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.emp-hd .no{width:26px;height:26px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px;font-family:var(--mono);margin-bottom:6px}
.emp-hd .cf{width:150px}
.emp-body{display:grid;grid-template-columns:1fr 300px;gap:18px}
.emp-in{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start}
.cres{background:var(--surface-2);border-radius:14px;padding:12px 14px;font-size:12.8px}
.cres.big{padding:16px 18px;font-size:13.5px}
.crow{display:flex;justify-content:space-between;gap:10px;padding:4px 0;color:var(--slate)}
.crow b{font-family:var(--mono);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.crow.dim{color:var(--faint)} .crow.dim b{color:var(--muted);font-weight:500}
.crow.sum{border-top:1px solid var(--line-2);margin-top:4px;padding-top:7px} .crow.sum b{font-weight:800}
.crow.big{background:var(--accent);color:#fff;border-radius:10px;padding:9px 12px;margin:8px -4px 4px;font-weight:700} .crow.big b{color:#fff;font-size:16px;font-weight:800}
.csep{font-size:10.5px;letter-spacing:.1em;color:var(--faint);font-weight:800;margin:10px 0 3px}
.cnote{font-size:11.3px;color:var(--muted);margin-top:9px;line-height:1.6;border-top:1px dashed var(--line-2);padding-top:8px}
.cinfo{grid-column:1/-1;font-size:12.5px;color:var(--slate);background:var(--surface-2);border-radius:10px;padding:8px 12px}
.csec{grid-column:1/-1;font-size:11px;letter-spacing:.1em;color:var(--accent);font-weight:800;margin-top:8px}
.calc2{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}
.calc2 .cin{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--shadow)}
.calc2 .cout{position:sticky;top:74px}
.ratenote{font-size:11.5px;color:var(--faint);margin-top:14px;line-height:1.7}
.rategrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px}
table.ledger td.num{font-family:var(--mono);font-size:12px}
table.ledger tr.tot td{font-weight:800;background:var(--surface-2)}
@media (max-width:1100px){.emp-body,.calc2{grid-template-columns:1fr}.calc2 .cout{position:static}.emp-in,.calc2 .cin{grid-template-columns:repeat(2,1fr)}.rategrid{grid-template-columns:repeat(2,1fr)}}

/* ===== 세무실무가이드 ===== */
.phgrid.gd4{grid-template-columns:repeat(4,1fr)}
.gdchips{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}
.gdchip{background:var(--surface);border:1px solid var(--line-2);border-radius:13px;padding:9px 14px;min-width:120px;box-shadow:var(--shadow)}
.gdchip span{display:block;font-size:10.5px;color:var(--faint);font-weight:700;letter-spacing:.04em}
.gdchip b{display:block;font-size:13.5px;color:var(--ink);margin-top:2px;font-weight:700}
.gdchip.menu{border-color:var(--accent);background:var(--accent-soft)} .gdchip.menu b{color:var(--accent-ink);font-family:var(--mono);font-size:12.5px} .gdchip.menu i{font-style:normal;color:var(--faint);margin:0 4px}
.gdchip.todo{border-style:dashed} .gdchip.todo b{color:var(--sev2)}
table.gdtbl td{vertical-align:top;line-height:1.6;font-size:13px} table.gdtbl td.src{font-size:11.8px;color:var(--muted);font-family:var(--mono)}
table.gdtbl td b{color:var(--ink)}
.menuline{margin-top:6px;font-family:var(--mono);font-size:11.3px;color:var(--accent-ink);background:var(--accent-soft);display:inline-block;padding:2px 9px;border-radius:999px}
.flowrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.flowstep{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:12.4px;color:var(--slate);line-height:1.5;flex:1 1 200px;max-width:320px;display:flex;gap:9px;align-items:flex-start;box-shadow:var(--shadow)}
.flowstep span{flex:none;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;font-family:var(--mono)}
.menumap{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:22px}
.menumap .mg{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 13px}
.menumap .mg>b{display:block;font-size:12.5px;color:var(--ink);margin-bottom:7px;font-weight:800}
.menumap .mi{display:inline-block;font-size:11.5px;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);margin:0 4px 5px 0;text-decoration:none}
.menumap .mi.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
.menumap .mi.on:hover{background:var(--accent);color:#fff}
@media (max-width:1000px){.phgrid.gd4{grid-template-columns:repeat(2,1fr)}}

/* ===== 약국지식창고 ===== */
.phhero{background:linear-gradient(135deg,var(--accent),var(--sky));color:#fff;border-radius:var(--r-card);padding:20px 24px;margin-bottom:20px;display:grid;grid-template-columns:1fr 240px;gap:20px;align-items:center}
.phhero .l{font-size:11px;letter-spacing:.12em;opacity:.85;font-weight:700}
.phhero b.big{font-size:34px;display:block;margin-top:2px;letter-spacing:-.03em;line-height:1.1}
.phhero .sub{font-size:12.5px;opacity:.92;margin-top:4px}
.phbar{height:9px;border-radius:999px;background:rgba(255,255,255,.32);overflow:hidden}
.phbar i{display:block;height:100%;background:#fff;border-radius:999px;transition:width .25s}
.phbar.sm{height:6px;background:var(--surface-2);margin-top:9px}
.phbar.sm i{background:var(--accent)}
.phgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:12px;margin-bottom:8px}
.phcard{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-card);padding:15px 16px 14px;cursor:pointer;transition:.15s;box-shadow:var(--shadow)}
.phcard:hover{border-color:var(--accent);transform:translateY(-2px)}
.phcard.on{border-color:var(--accent);background:var(--surface-2);box-shadow:0 0 0 3px var(--accent-soft)}
.phcard .ic{font-size:24px;line-height:1}
.phcard .no{font-family:var(--mono);font-size:10.5px;color:var(--accent);font-weight:700;letter-spacing:.08em;margin-top:8px}
.phcard b{display:block;font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin-top:2px;line-height:1.35}
.phcard .mt{font-size:11.5px;color:var(--muted);margin-top:5px}
.phhint{font-size:12.5px;color:var(--faint);text-align:center;padding:26px}
.phch{margin-bottom:20px}
.phch .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:9px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.phch .hd .cn{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:700}
.phch .hd b{font-size:14.5px;font-weight:800;color:var(--ink)}
.phch .hd .cnt2{margin-left:auto;font-size:11.5px;color:var(--faint);font-family:var(--mono)}
.item.phdone{opacity:.6}
.numtag{font-size:11px;background:var(--surface-2);border-radius:999px;padding:3px 9px;color:var(--muted)}
.numtag b{font-family:var(--mono);color:var(--accent);font-weight:700}
.whybox{background:var(--sev2-bg);border-radius:14px;padding:14px 18px;margin:0 0 16px;font-size:14px;line-height:1.65;color:var(--sev2);font-weight:600}
.whybox .cap{font-size:10.5px;letter-spacing:.12em;font-weight:800;margin-bottom:5px;font-family:var(--mono);opacity:.85}
.whybox b{font-weight:900}
.phnav{display:flex;gap:8px;align-items:center;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);flex-wrap:wrap}
@media (max-width:760px){.phhero{grid-template-columns:1fr}}

/* ===== 요약 이미지 카드 ===== */
.cardwrap{margin:2px 0}
.cardbox{border:1px solid var(--line-2);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:#fff;line-height:0}
.cardbox canvas{border-radius:15px}
.cardacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.imgpick{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);margin-bottom:10px}
.imgpick .hd{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--slate);margin-bottom:9px}
.imgpick .hd .x{margin-left:auto;font-size:11px;color:var(--faint);cursor:pointer}
.imgpick .hd .x:hover{color:var(--sev3)}
.hasimg{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.imgempty{font-size:12px;color:var(--faint);line-height:1.7}

/* ===== 할 일 ===== */
.tl{display:flex;flex-direction:column;gap:8px}
.tl .ti{display:grid;grid-template-columns:74px 1fr 200px;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow)}
.tl .ti.over{border-color:var(--sev3);background:var(--sev3-bg)}
.tl .ti.soon{border-color:#F5B14C}
.tl .ti.done{opacity:.55}
.dd{font-family:var(--mono);font-weight:700;font-size:15px;color:var(--accent);letter-spacing:-.02em}
.dd small{display:block;font-size:10.5px;color:var(--faint);font-weight:500;margin-top:1px}
.ti.over .dd{color:var(--sev3)} .ti.soon .dd{color:var(--sev2)}
.ti .nm{font-weight:800;font-size:14px;color:var(--ink)} .ti .nm .cat{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);margin-right:6px;vertical-align:middle}
.ti .sb{font-size:11.8px;color:var(--muted);margin-top:2px}
.prog{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.prog .bar{flex:1;height:7px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.prog .bar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.prog.full .bar i{background:var(--green)}
.grid-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow)}
table.chk{border-collapse:separate;border-spacing:0;width:100%;font-size:12.6px}
table.chk th{position:sticky;top:0;background:var(--surface-2);z-index:2;padding:9px 8px;font-size:11.5px;color:var(--slate);text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:bottom}
table.chk th:first-child,table.chk td:first-child{position:sticky;left:0;background:var(--surface);z-index:3;text-align:left;min-width:170px;box-shadow:1px 0 0 var(--line)}
table.chk th:first-child{z-index:4;background:var(--surface-2)}
table.chk td{padding:5px 6px;border-bottom:1px solid var(--line-soft);text-align:center}
table.chk tr.alldone td{opacity:.55}
table.chk td .cn{font-weight:700;color:var(--ink)} table.chk td .cr{font-size:11px;color:var(--faint);margin-left:5px}
table.chk th .p{display:block;font-family:var(--mono);font-weight:600;color:var(--accent);font-size:11px;margin-top:3px}
table.chk th .all{display:block;margin:5px auto 0;font-size:10.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;color:var(--muted)}
table.chk th .all:hover{color:var(--accent);border-color:var(--accent)}
.cell{width:30px;height:30px;border-radius:9px;border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;font-size:14px;line-height:1;display:inline-grid;place-items:center;color:var(--faint);transition:transform .08s}
.cell:hover{transform:scale(1.08);border-color:var(--accent)}
.cell.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cell.na{background:var(--surface-2);border-style:dashed;color:var(--faint)}
.cell.over{border-color:var(--sev3);color:var(--sev3)}
.noedit .cell{pointer-events:none}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11.8px;color:var(--muted);margin-top:10px;align-items:center}
.legend .cell{width:22px;height:22px;font-size:11px;pointer-events:none}
.mnav{display:flex;align-items:center;gap:8px}
.mnav b{font-size:15px;min-width:110px;text-align:center}
.owner{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.owner select{padding:8px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);background:var(--surface);font-size:13px}
.todo-card{background:linear-gradient(135deg,var(--accent),var(--sky));color:#fff;border-radius:var(--r-card);padding:18px 20px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin-bottom:22px}
.todo-card .l{font-size:11px;letter-spacing:.12em;opacity:.85;font-weight:700}
.todo-card b.big{font-size:22px;display:block;margin-top:4px;letter-spacing:-.02em}
.todo-card .sub{font-size:12.5px;opacity:.9;margin-top:4px}
.todo-card .btn{background:#fff;color:var(--accent);border-color:#fff}
.tstat{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.tstat span{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--slate)}
.tstat span b{font-family:var(--mono);color:var(--accent)}
.tstat span.bad b{color:var(--sev3)}
.mini-todo{display:flex;flex-direction:column;gap:6px}
.mini-todo .row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;background:var(--surface-2);font-size:12.6px}
.mini-todo .row .d{font-family:var(--mono);font-size:11px;color:var(--accent);min-width:46px;font-weight:700}
.mini-todo .row.over .d{color:var(--sev3)}

/* ===== 학습카드 구조화 ===== */
.bl{background:linear-gradient(135deg,var(--accent-soft),var(--surface-2));border:1px solid var(--line-2);border-left:5px solid var(--accent);border-radius:16px;padding:17px 20px;margin:2px 0 18px;font-size:16px;font-weight:700;line-height:1.62;color:var(--ink);letter-spacing:-.01em}
.bl .cap{font-size:10.5px;letter-spacing:.14em;color:var(--accent);font-weight:800;margin-bottom:7px;font-family:var(--mono)}
.bl b{font-weight:900;color:var(--accent-ink);background:linear-gradient(transparent 58%,var(--card) 58%);padding:0 2px;border-radius:2px}
.numrow{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 20px}
.numchip{background:var(--surface);border:1px solid var(--line-2);border-radius:13px;padding:9px 15px 8px;min-width:92px;box-shadow:var(--shadow)}
.numchip b{display:block;font-family:var(--mono);font-size:16.5px;font-weight:700;color:var(--accent);letter-spacing:-.02em;line-height:1.25}
.numchip span{display:block;font-size:10.5px;color:var(--faint);margin-top:2px;font-weight:600}
.rules{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:4px 18px;box-shadow:var(--shadow)}
.rules .r{display:flex;gap:11px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:13.6px;line-height:1.68;color:var(--slate)}
.rules .r:last-child{border-bottom:0}
.rules .mk{flex:none;width:21px;height:21px;border-radius:7px;display:grid;place-items:center;font-size:11.5px;font-weight:800;margin-top:2px;font-family:var(--mono)}
.rules b{font-weight:800;color:var(--ink);padding:0 2px;border-radius:2px}
.rl-must .mk{background:var(--accent-soft);color:var(--accent)}
.rl-must b{background:linear-gradient(transparent 58%,var(--card) 58%)}
.rl-no .mk{background:var(--sev3-bg);color:var(--sev3)}
.rl-no b{background:linear-gradient(transparent 58%,var(--sev3-bg) 58%);color:var(--sev3)}
.rl-note .mk{background:var(--surface-2);color:var(--faint)}
.rl-note{opacity:.94}
.rl-note .r{font-size:13px;color:var(--muted)}
.rl-note b{background:linear-gradient(transparent 58%,var(--sev2-bg) 58%)}
.rl-ps .mk{background:var(--sev2-bg);color:var(--sev2);border-radius:50%}
.rl-ps b{background:linear-gradient(transparent 58%,var(--sev2-bg) 58%)}
h2.sec .tag{font-size:11px;font-weight:700;color:var(--faint);letter-spacing:0}
details.raw{margin-top:26px;border-top:1px solid var(--line);padding-top:14px}
details.raw>summary{cursor:pointer;font-size:12.5px;color:var(--muted);font-weight:700;list-style:none;display:flex;align-items:center;gap:6px;user-select:none}
details.raw>summary::-webkit-details-marker{display:none}
details.raw>summary::before{content:"▸";color:var(--faint)}
details.raw[open]>summary::before{content:"▾"}
details.raw>summary:hover{color:var(--accent)}
details.raw .in{margin-top:14px}
.seedbox{background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-card);padding:16px 18px;box-shadow:var(--shadow)}
.seedbox p.warn{margin:0 0 12px;font-size:12.6px;color:var(--sev2);background:var(--sev2-bg);border-radius:10px;padding:9px 13px;line-height:1.6}
@media print{aside,.topbar,.btn,.mini{display:none!important}main{padding:0}}
.stale{background:var(--sev2-bg);color:var(--sev2);border-radius:10px;padding:9px 13px;font-size:12.2px;font-weight:600;margin-bottom:12px}
.fix{background:var(--good-bg);border-radius:12px;padding:10px 14px;font-size:12.8px;white-space:pre-wrap}
.cust{display:grid;grid-template-columns:1fr 316px;gap:28px;align-items:start}
.head{display:flex;align-items:center;gap:14px}
.head .acts{margin-left:auto;display:flex;gap:8px}
.sidecol{position:sticky;top:74px;max-height:calc(100vh - 90px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px;margin:-2px}/* ── 스크롤 막대 — 아카이브 색으로 (2026-09-20) ────────────────────────────────
   기본 회색 막대가 파란 화면에서 혼자 튀었다. 화면이 쓰는 색 토큰을 그대로 쓴다.
   어두운 화면에서는 토큰이 어두운 값으로 바뀌므로 저절로 따라간다.
   화면 오른쪽 큰 막대는 body 가 아니라 html 이 그리므로 html 에도 같이 건다. */
html{scrollbar-width:thin;scrollbar-color:var(--accent-mid) var(--surface-2)}
body *{scrollbar-width:thin}
html::-webkit-scrollbar,body ::-webkit-scrollbar{width:11px;height:11px}
html::-webkit-scrollbar-track,body ::-webkit-scrollbar-track{background:var(--surface-2);border-radius:99px}
html::-webkit-scrollbar-thumb,body ::-webkit-scrollbar-thumb{background:var(--accent-mid);border-radius:99px;
  border:3px solid var(--surface-2)}
html::-webkit-scrollbar-thumb:hover,body ::-webkit-scrollbar-thumb:hover{background:var(--accent)}
html::-webkit-scrollbar-corner,body ::-webkit-scrollbar-corner{background:transparent}
/* 탭 줄은 일부러 막대를 감춰 두었다 — 크롬에서도 감춘다 (scrollbar-width:none 은 크롬에 안 먹는다) */
.tabs::-webkit-scrollbar{display:none}

.infobox{border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}
@media (max-width:1100px){.cust{grid-template-columns:1fr}.sidecol{position:static;max-height:none;overflow:visible}}
.infobox .ih{padding:16px 18px 10px;display:flex;align-items:center;gap:12px}
.infobox .ih b{display:block;font-size:15px;font-weight:800}
.infobox .ih small{display:block;font-size:11.5px;color:var(--faint)}
.infobox dl{margin:0;padding:0 18px 14px}
.infobox .row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.6px;align-items:baseline}
.infobox .row dt{color:var(--faint);font-size:11.5px}
.infobox .row dd{margin:0;font-weight:600;text-align:right;word-break:break-all}
.infobox .sep{display:none}
.prose{white-space:pre-wrap;font-size:14px;line-height:1.8;max-width:68ch;color:var(--slate)}
.tag{display:inline-block;background:var(--sky-soft);border-radius:var(--r-pill);padding:4px 12px;font-size:12px;margin:0 6px 6px 0;color:var(--slate);font-weight:500}
.warnbox{display:flex;gap:14px;align-items:flex-start;background:var(--surface-2);border-radius:var(--r-card);padding:16px 18px;font-size:13.2px;line-height:1.75;white-space:pre-wrap;color:var(--slate)}
.warnbox::before{content:"";width:38px;height:38px;border-radius:12px;background:var(--surface);flex:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230470FF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}
.mini{border:1px solid var(--line-2);background:var(--surface);border-radius:var(--r-pill);padding:4px 12px;font-size:11.5px;cursor:pointer;color:var(--slate);font-weight:600;display:inline-flex;align-items:center;gap:5px}
.mini:hover{border-color:var(--accent);color:var(--accent)}
.mini.pri{background:var(--accent);border-color:var(--accent);color:#fff}
.mini.pri:hover{background:var(--accent-ink);color:#fff}
.edited{border-left:3px solid var(--accent);padding-left:12px;border-radius:3px}
.edmark{font-size:10.5px;color:var(--accent);background:var(--accent-soft);border-radius:9px;padding:0 8px;white-space:nowrap;font-weight:700}
.editor textarea{width:100%;min-height:120px;padding:12px 14px;border:1.5px solid var(--accent);background:var(--surface);border-radius:var(--r-ctrl);font-size:13.3px;line-height:1.7;resize:vertical;box-shadow:0 0 0 4px var(--accent-soft)}
.editor .act{margin-top:8px;display:flex;gap:7px}
.reco{border-radius:var(--r-card);background:linear-gradient(135deg,var(--accent),var(--sky));color:#fff;padding:18px;margin:14px 0 4px}
.reco .l{font-size:12px;opacity:.85}
.reco b{display:block;font-weight:800;font-size:14.5px;margin-top:4px;line-height:1.4}
.reco .a{margin-top:12px;display:flex;gap:8px;align-items:center;font-size:12px}
.reco .a .mini{background:#fff;color:var(--slate);border-color:#fff}
#ov{position:fixed;inset:0;z-index:120;background:rgba(17,20,24,.42);display:none;padding:70px 16px 16px;justify-content:center}
#ov.on{display:flex}
#ov .panel{width:min(760px,100%);max-height:78vh;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 70px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden}
#ov .ph{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}
#ov .ph input{flex:1;border:0;background:none;font-size:16px;outline:none}
#ov .res{overflow:auto;padding:6px 0}
#ov .gh{font-size:10.5px;letter-spacing:.14em;color:var(--faint);padding:10px 18px 4px;font-weight:700}
#ov .r{padding:8px 18px;cursor:pointer;display:flex;gap:10px;align-items:baseline}
#ov .r:hover,#ov .r.sel{background:var(--accent-soft)}
#ov .r .tt{font-size:13.4px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ov .r .ss{font-size:11.5px;color:var(--muted);white-space:nowrap;max-width:36%;overflow:hidden;text-overflow:ellipsis;flex:none}
#ov .pf{border-top:1px solid var(--line);padding:8px 18px;font-size:11px;color:var(--faint);display:flex;gap:14px}
mark{background:var(--accent-soft);color:var(--accent);padding:0 1px;border-radius:3px}
.compose{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.compose textarea{width:100%;min-height:340px;padding:14px 16px;border:1.5px solid var(--line-2);background:var(--surface);border-radius:var(--r-card);font-size:13.4px;line-height:1.7;resize:vertical}
.compose textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px var(--accent-soft)}
.snip{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);margin-bottom:8px}
.snip .q{font-size:13px;font-weight:700;margin-bottom:5px}
.snip .a{font-size:12.4px;color:var(--muted);max-height:52px;overflow:hidden}
.snip .ac{margin-top:8px;display:flex;gap:6px}
.drill .stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:22px 24px;box-shadow:var(--shadow);max-width:780px}
.drill .ans{display:none;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line-2)}
.drill.rev .ans{display:block}
.drill textarea{width:100%;min-height:88px;padding:12px 14px;border:1.5px solid var(--line-2);background:var(--paper);border-radius:var(--r-ctrl);font-size:13px}
.progress{display:flex;gap:10px;align-items:center;margin-bottom:14px;font-size:12px;color:var(--muted)}
.progress .bar{flex:1;max-width:220px}
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:var(--paper);padding:10px 20px;border-radius:var(--r-pill);font-size:13px;z-index:300;transition:transform .22s ease;box-shadow:var(--shadow);font-weight:600}
#toast.on{transform:translateX(-50%) translateY(0)}
#boot{position:fixed;inset:0;display:grid;place-items:center;background:var(--paper);z-index:150;color:var(--muted);font-size:13px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media (max-width:1080px){.cust{grid-template-columns:1fr}.infobox{position:static;order:-1}.compose{grid-template-columns:1fr}.hero{grid-template-columns:1fr}}
/* ===== 모바일 (≤760px): 서랍형 메뉴 + 한 줄 레이아웃 ===== */
#menu-btn{display:none;width:40px;height:40px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);align-items:center;justify-content:center;cursor:pointer;flex:none}
#drawer-bg{display:none;position:fixed;inset:0;background:rgba(17,20,24,.45);z-index:95}
@media (max-width:760px){
  #shell.on{grid-template-columns:1fr}
  :where(#shell)>aside{position:fixed;left:0;top:0;bottom:0;width:min(84vw,300px);height:100dvh;z-index:100;transform:translateX(-104%);transition:transform .22s ease;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:18px 12px 22px}
  body.drawer :where(#shell)>aside{transform:none}
  /* v-169c: 화면 안 aside(업무판 오른쪽 칸 · 수업자료 메모 · 리뷰 옆 칸 · 노무 차례)는 메뉴 서랍이 아님 — 제자리에 펼침(메뉴 모양 바탕 · 테두리 · 높이 100vh 도 뺌) */
  aside:not(:where(#shell)>aside){position:static;top:auto;height:auto;overflow:visible;padding:0;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:inherit}
  body.drawer #drawer-bg{display:block}
  body.drawer{overflow:hidden}
  aside a.nav{padding:11px 12px;font-size:14.5px}
  #menu-btn{display:inline-flex}
  .topbar{padding:8px 12px;gap:8px}
  .search input{padding:10px 12px 10px 38px;font-size:16px}
  .search kbd{display:none}
  .tbtn.dark{padding:0;width:40px;height:40px;justify-content:center}.tbtn.dark .lb{display:none}
  .page{padding:16px 14px 80px}
  h1.pt{font-size:22px}
  .pd{font-size:13px}
  .hero{padding:20px 18px;grid-template-columns:1fr;border-radius:18px}
  .hero h1{font-size:22px}
  .head{flex-wrap:wrap;gap:10px}
  .head .btn{width:100%;justify-content:center}
  .cust{grid-template-columns:minmax(0,1fr);gap:18px}.cust>*{min-width:0}
  .page>*{min-width:0}
  .hero,.calc2,.emp-body,.compose,.todo-card,.ctmeta{grid-template-columns:minmax(0,1fr)}
  .sidecol{position:static;max-height:none;overflow:visible;order:-1}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tblwrap table{min-width:560px}
  .tblwrap.narrow table{min-width:0}
  .filters{gap:6px}
  .filters select,.filters input{flex:1 1 140px;min-width:0;width:auto!important;font-size:14px}
  .filters .cnt{width:100%;margin:0}
  .item{padding:13px 14px}
  .item h3{font-size:14px}
  .phhero{padding:16px 18px;grid-template-columns:1fr}
  .phhero b.big{font-size:28px}
  .phgrid{grid-template-columns:repeat(2,1fr);gap:8px}
  .phgrid.gd4,.phgrid.qz3{grid-template-columns:repeat(2,1fr)}
  .phcard{padding:12px 12px 11px}.phcard b{font-size:13.5px}
  .flowrow{flex-direction:column}
  .menumap{grid-template-columns:1fr}
  .drill .stage,.qz .stage{padding:16px 14px}
  .qzq{font-size:16.5px}
  .qzopt .qzo{padding:11px 12px;font-size:13.5px}
  .qzopts .qzo>span{width:100%}
  .qzstart .btn{width:100%;justify-content:center}
  .calc2,.emp-body{grid-template-columns:1fr}
  .calc2 .cin,.emp-in,.rategrid,.ctform{grid-template-columns:1fr 1fr}
  .cf input,.cf select{font-size:16px}
  .ctmeta{grid-template-columns:1fr}
  .todo-card{grid-template-columns:1fr}
  .compose{grid-template-columns:1fr}.compose>div:first-child{order:2}.compose #cm-list{max-height:360px}
  .phnav{gap:6px}.phnav .btn,.phnav .mini{flex:1 1 auto;justify-content:center}
  #ov{padding:8px}
  #ov .panel{max-height:calc(100dvh - 16px);border-radius:16px}
  #ov .r{flex-direction:column;gap:2px}
  .bl,.whybox{padding:12px 14px;font-size:13.5px}
  .gdchips{flex-direction:column}
  .acts{flex-direction:column}.acts .btn{justify-content:center}
  .tabs{overflow-x:auto;scrollbar-width:none}
  .mini-todo .row{flex-wrap:wrap}
  .tl .ti{grid-template-columns:58px minmax(0,1fr);gap:8px 10px;padding:10px 12px}
  .tl .ti>*:nth-child(3){grid-column:1/-1}
  .ti .nm{font-size:13.5px}
  .grid-wrap{overflow:auto}
  #toast{width:calc(100% - 32px);text-align:center}
  input,select,textarea{font-size:16px!important}
}
@media (max-width:420px){.phgrid,.phgrid.gd4,.phgrid.qz3{grid-template-columns:1fr}.calc2 .cin,.emp-in,.rategrid,.ctform{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}}
/* 지식쌓기 훈련 */
.qzquick{display:flex;gap:8px;flex-wrap:wrap}
.qzchip{border:1.5px solid var(--line-2);background:var(--surface);border-radius:var(--r-pill);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink);display:inline-flex;gap:6px;align-items:center}
.qzchip b{font-family:var(--mono);color:var(--accent);font-weight:700}
.qzchip.on{border-color:var(--accent);background:var(--accent-soft)}
.qzchip.wrong.on{border-color:var(--sev3);background:var(--sev3-bg)}
.qzchip.wrong b{color:var(--sev3)}
.qzchip.sm{padding:5px 11px;font-size:12.5px}
.qzchip:disabled{opacity:.45;cursor:default}
.phgrid.qz3{grid-template-columns:repeat(3,1fr)}
.qzopts{display:flex;flex-direction:column;gap:8px}
.qzopts .qzo{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.qzopts .qzo>span{font-size:12px;color:var(--muted);width:56px;font-weight:700}
.qzstart{display:flex;gap:14px;align-items:center;margin-top:16px;flex-wrap:wrap}
.qz .stage{max-width:820px}
.qzq{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.5;margin:6px 0 16px}
.qzopt{display:flex;flex-direction:column;gap:8px}
.qzopt .qzo{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:12px 14px;border:1.5px solid var(--line-2);background:var(--paper);border-radius:14px;font-size:14px;line-height:1.5;cursor:pointer;color:var(--ink);position:relative}
.qzopt .qzo:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}
.qzopt .qzo .k{font-family:var(--mono);color:var(--accent);font-weight:700;flex:none}
.qzopt .qzo.right{border-color:var(--good);background:var(--good-bg);font-weight:700}
.qzopt .qzo.wrong{border-color:var(--sev3);background:var(--sev3-bg)}
.qzopt .qzo.dim{opacity:.5}
.qzopt .qzo:disabled{cursor:default}
.qzopt .qzo i{font-style:normal;font-size:11px;font-weight:800;margin-left:auto;flex:none;padding:2px 8px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line-2)}
.qzfb{margin-top:16px;padding:14px 16px;border-radius:14px;border:1.5px solid}
.qzfb.ok{border-color:var(--good);background:var(--good-bg)}
.qzfb.bad{border-color:var(--sev3);background:var(--sev3-bg)}
.qzfb .cap{font-size:11px;letter-spacing:.12em;font-weight:800;font-family:var(--mono);margin-bottom:6px}
.qzfb.ok .cap{color:var(--good)}.qzfb.bad .cap{color:var(--sev3)}
.qzfb p{font-size:13.5px;line-height:1.65;margin:0}
.qzlink{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-2);display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}
.qzlink .btn{align-self:flex-start}
@media (max-width:900px){.phgrid.qz3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.phgrid.qz3{grid-template-columns:1fr}}
/* 자료 업데이트 */
.upflow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:8px}
.ups{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.ups span{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:700}
.ups b{font-size:13.5px}.ups small{font-size:11.5px;color:var(--muted);line-height:1.5}
.upkinds{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.upform{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;box-shadow:var(--shadow)}
.upform textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1.5px solid var(--line-2);border-radius:10px;font-size:13px;font-family:var(--sans)}
.updrop{margin-top:12px;border:2px dashed var(--line-2);border-radius:14px;padding:22px;text-align:center;cursor:pointer;background:var(--paper)}
.updrop.on{border-color:var(--accent);background:var(--accent-soft)}
.updrop b{display:block;font-size:13.5px}.updrop small{display:block;color:var(--faint);font-size:11.5px;margin-top:4px}
.upfiles{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.upfiles>div{display:flex;gap:10px;align-items:center;font-size:12.5px;background:var(--surface-2);border-radius:10px;padding:7px 10px;position:relative;overflow:hidden}
.upfiles>div span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upfiles>div small{color:var(--faint)}
.upfiles>div i{position:absolute;left:0;bottom:0;height:3px;background:var(--accent)}
.upagent{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;align-items:start}
.upagent textarea{width:100%;box-sizing:border-box;padding:10px;border:1.5px solid var(--line-2);border-radius:10px;background:var(--paper)}
@media (max-width:900px){.upflow{grid-template-columns:repeat(2,1fr)}.upagent{grid-template-columns:1fr}}
/* 표준서식 */
.phgrid.fm4{grid-template-columns:repeat(3,1fr)}
.fmcard b{font-size:14px}
.fmwrap{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:22px;align-items:start}
.fmleft{display:flex;flex-direction:column;gap:12px}
.fmtools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fmtools select{padding:8px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);background:var(--surface);font-size:13px}
.fmgrp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px;box-shadow:var(--shadow)}
.fmgrp .hd{font-size:11px;letter-spacing:.1em;font-weight:800;color:var(--accent);margin-bottom:8px;font-family:var(--mono)}
.fmgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}
.fmgrid .cf.wide{grid-column:1/-1}
.fmgrid .cf textarea{padding:8px 10px;border:1.5px solid var(--line-2);border-radius:10px;font-size:13px;width:100%;box-sizing:border-box}
.fmright{position:sticky;top:74px}
.fmact{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.paperwrap{background:#e9ecef;border-radius:var(--r-card);padding:18px;max-height:calc(100vh - 150px);overflow:auto;border:1px solid var(--line)}
.paper{background:#fff;color:#111;width:100%;max-width:794px;margin:0 auto;padding:48px 52px;box-shadow:0 6px 30px rgba(0,0,0,.15);font-size:12px;line-height:1.7;box-sizing:border-box;font-family:var(--sans)}
.paper h1{text-align:center;font-size:20px;letter-spacing:.35em;margin:0 0 18px;font-weight:800}.paper h2{font-size:13px;margin:16px 0 4px;font-weight:800}
.paper p{margin:4px 0}.paper u{text-decoration:none;border-bottom:1px solid #333;padding:0 3px;font-weight:600}.paper u.bk{color:#999;font-weight:400}
.paper table{border-collapse:collapse;width:100%;margin:6px 0;font-size:11px}.paper td,.paper th{border:1px solid #555;padding:4px 7px;vertical-align:top}.paper th{background:#f1f3f5;font-weight:700;text-align:left;width:26%}
.paper .sign{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.paper .sign>div{border-top:1px solid #333;padding-top:8px}.paper .sign b{display:block;margin-bottom:4px}
.paper .stamp{text-align:right}.paper .small{font-size:10px;color:#444;line-height:1.55}.paper ol{padding-left:20px;margin:4px 0}.paper li{margin:2px 0}
.paper .center{text-align:center}.paper .date{text-align:center;margin-top:22px;font-weight:700}.paper .box{border:1px solid #555;padding:8px 10px;margin:6px 0}
.paper .num{text-align:right;font-variant-numeric:tabular-nums}.paper .pb{border-top:2px dashed #bbb;margin:26px 0}
@media (max-width:1100px){.fmwrap{grid-template-columns:1fr}.fmright{position:static}.paper{padding:28px 22px}}
@media (max-width:760px){.phgrid.fm4{grid-template-columns:1fr 1fr}.fmgrid{grid-template-columns:1fr}.paperwrap{padding:8px;max-height:none}.paper{padding:18px 14px;font-size:11.5px}.paper .sign{grid-template-columns:1fr}}
/* 개정사항 */
.revba{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:6px}
.revba>div{border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:12.8px;line-height:1.6;color:var(--ink);background:var(--paper)}
.revba>div span{display:block;font-size:10.5px;letter-spacing:.1em;font-weight:800;color:var(--faint);font-family:var(--mono);margin-bottom:3px}
.revba>div.aft{border-color:var(--accent);background:var(--accent-soft)}.revba>div.aft span{color:var(--accent)}
.revcard h3{font-size:15px}
@media (max-width:760px){.revba{grid-template-columns:1fr}}
/* 계약현황 대시보드 */
.ctkpi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:4px 0 16px}.ctk.click{cursor:pointer}.ctk.click:hover{border-color:var(--accent)}
.ctk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px;box-shadow:var(--shadow)}
.ctk .l{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.04em}.ctk b{display:block;font-size:21px;overflow-wrap:anywhere;font-weight:900;letter-spacing:-.02em;margin-top:3px;font-variant-numeric:tabular-nums}.ctk small{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.ctk.hi b{color:var(--accent)}.ctk.ok b{color:var(--good)}.ctk.warn b{color:var(--sev2)}
.ctdash{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px}
.ctpanel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--shadow);min-width:0;overflow-x:auto}
.ctpanel .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.ctpanel .hd b{font-size:14px}.ctpanel .hd span{font-size:11px;color:var(--faint)}
.ctt td,.ctt th{font-size:12.5px}.ctt tr.tot td{font-weight:800;background:var(--surface-2)}.ctt tr.click{cursor:pointer}.ctt tr.click:hover td{background:var(--accent-soft)}
.ctppl{font-size:10.5px;color:var(--faint);font-weight:400;margin-top:2px}
.ctbar{display:inline-block;width:calc(100% - 44px);height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden;vertical-align:middle;margin-right:6px}.ctbar i{display:block;height:100%;border-radius:999px}
.ctyears{display:flex;gap:8px;align-items:flex-end;height:130px;padding:6px 4px 0}
.ctyears>div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;font-size:11px;color:var(--faint)}.ctyears i{display:block;width:70%;background:var(--accent);border-radius:6px 6px 2px 2px}.ctyears b{font-size:12px;color:var(--ink)}
.ctdocs{display:flex;flex-direction:column;gap:6px}.ctdocs>div{display:flex;align-items:center;gap:8px;font-size:12px}.ctdocs>div>span{width:92px;color:var(--muted);flex:none}.ctdocs .ctbar{flex:1;width:auto}.ctdocs b{width:64px;text-align:right;font-variant-numeric:tabular-nums}.ctdocs small{color:var(--faint);font-weight:400}
@media (max-width:1360px){.ctkpi{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1100px){.ctkpi{grid-template-columns:repeat(4,minmax(0,1fr))}.ctdash{grid-template-columns:1fr}}
@media (max-width:760px){.ctkpi{grid-template-columns:repeat(2,minmax(0,1fr))}.ctk b{font-size:18px}}

/* ── 재무·세무 정보 패널 ── */
.incwrap{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface)}
.ihead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.ihead .ib{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.icards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:10px 0}
.icards>*{min-width:0}
.icard{background:var(--field,#f5f7fb);border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.icard .l{font-size:11px;color:var(--muted);margin-bottom:3px}
.icard b{font-size:16px;font-weight:700;display:block;letter-spacing:-.2px;word-break:break-all}
.icard .d{font-size:11px;color:var(--faint);margin-top:2px}
.idet{border-top:1px solid var(--line);margin-top:8px}
.idet>summary{cursor:pointer;padding:10px 2px;font-size:13.2px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:8px;list-style:none}
.idet>summary::-webkit-details-marker{display:none}
.idet>summary::before{content:'▸';color:var(--muted);margin-right:6px;font-size:11px;transition:transform .15s}
.idet[open]>summary::before{content:'▾'}
.idet>summary span{flex:1;min-width:0}
.idet>summary em{font-style:normal;font-size:11.5px;color:var(--muted);font-weight:500;white-space:nowrap}
.ibody{padding:2px 0 12px}
.ibody .tblwrap{margin-bottom:10px}
.ibody table.gr td,.ibody table.gr th{font-size:12.2px}
.isub{display:block;font-size:10.8px;color:var(--faint);font-weight:400}
.ismall{font-size:11.6px;color:var(--muted);line-height:1.55}
.ichg.up{color:var(--sev3,#d03b3b);font-weight:600}
.ichg.dn{color:var(--green,#006300);font-weight:600}
.iop{background:var(--field,#f5f7fb);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:9px 12px;margin:0 0 8px;font-size:12.1px;line-height:1.62;color:var(--ink2,#52514e)}
.iop b{display:block;font-size:11px;color:var(--accent);margin-bottom:3px}
.ilist{margin:0 0 10px 16px;padding:0;font-size:12.2px;line-height:1.7;color:var(--ink2,#52514e)}
.ilist li{margin-bottom:3px}
.idocs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
tr.ipred td{background:var(--brand-soft,#eef4fd);font-weight:600}
tr.isum td{border-top:2px solid var(--line);font-weight:700}
@media(max-width:760px){.icards{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.icard b{font-size:14.5px}}

/* ── 채권관리 ── */
.artbl tr.click{cursor:pointer}.artbl tr.click.on td{background:var(--accent-soft)}
.arup{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--shadow)}
.arprev{margin-top:12px}
.arsel{padding:5px 8px;border:1.5px solid var(--line-2);border-radius:8px;background:var(--surface);font-size:12px;max-width:220px}
/* v-102 — 숫자 카드(누름) · 탭 · 좌우 나눔 · 상세 칸 · 더 보기 · 연결 창 */
.arkpis{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px}.arkpis .kpi{padding:14px 14px 12px}.arkpis .kpi .ico{width:34px;height:34px;border-radius:11px;margin-bottom:8px}.arkpis .kpi b{font-size:23px}.arkpis .kpi span{font-size:12.5px}.arkpis .kpi .sub{font-size:11px}
.arkpis .kpi.click{cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}.arkpis .kpi.click:hover{border-color:var(--accent);transform:translateY(-1px)}
.artabs{margin:2px 0 14px;flex-wrap:wrap}.artabs .tab{display:inline-flex;align-items:center;gap:6px}.artabs .tab .n{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--faint);background:var(--surface-2);border-radius:999px;padding:1px 7px}.artabs .tab.on .n{color:var(--accent);background:var(--accent-soft)}
.arsplit{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);gap:16px;align-items:start}
.arsplit .arl{min-width:0}
.arsplit .arr{position:sticky;top:calc(var(--tbh,74px) + 10px);max-height:calc(100vh - var(--tbh,74px) - 24px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;min-width:0}
.arsplit .arr .incwrap{margin-top:0!important}
.arsplit .arr .ihead .ib b{font-size:14px!important}
.arsplit .arr .icards{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}
#view .arsplit .arr .icard{padding:9px 11px;border-radius:12px}#view .arsplit .arr .icard b{font-size:14.5px!important;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}#view .arsplit .arr .icard .l{font-size:10.5px}
.arsplit .arr table.gr th,.arsplit .arr table.gr td{padding:6px 8px;font-size:12px}.arsplit .arr h3{font-size:12.5px!important}
body.stkon #view .arsplit .arr .tblwrap>table>thead>tr>th{position:static!important}
body.stkon #view .arsplit .arr .tblwrap.stky{max-height:none!important}
.arsh{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px;min-height:26px}
.arph{border:1.5px dashed var(--line-2);border-radius:var(--r-card);padding:28px 20px;color:var(--muted);text-align:center;font-size:13px;line-height:1.6;background:var(--surface)}
.arph .ico{width:44px;height:44px;border-radius:14px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 10px}.arph b{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}.arph p{margin:0}
.armore{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 0;font-size:12px;color:var(--faint)}
.arfl{margin-top:3px;font-size:11px;font-weight:700;color:var(--sev3);line-height:1.35;max-width:230px}
.arsplit .artbl td:first-child{min-width:150px}
.arfailbox{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:var(--surface);font-size:12.5px;line-height:1.55}
.arfailbox.open{border-color:color-mix(in srgb,var(--sev3) 45%,var(--line));background:color-mix(in srgb,var(--sev3-bg) 60%,var(--surface))}
.arfailbox .t{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--sev3);margin-bottom:4px}.arfailbox .t .pill{margin-left:4px}
.arfailbox .b{color:var(--ink)}.arfailbox .a{color:var(--slate);margin-top:2px}.arfailbox .btns{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.arfailbox .arfh{margin-top:6px;font-size:12px;color:var(--muted)}.arfailbox .arfh summary{cursor:pointer;font-weight:600}.arfailbox .arfh div{padding:2px 0 0 8px}
.arlk input{width:100%;box-sizing:border-box;padding:9px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);font-size:13px;margin:6px 0 10px;background:var(--surface);color:var(--ink)}
.arlkrow{display:flex;gap:8px;align-items:center;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:4px;cursor:pointer;font-size:13px;color:var(--ink);font-family:var(--sans)}.arlkrow:hover{border-color:var(--accent);background:var(--accent-soft)}.arlkrow .pill{margin-left:auto}
@media (max-width:1500px){.arsplit .arhc{display:none}}
@media (max-width:1000px){.arsplit{grid-template-columns:1fr}.arsplit .arr{position:static;max-height:none}.arsplit:not(.has) .arr{display:none}}
/* ── 수임절차 ── */
.obbanner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,var(--accent-soft),var(--surface-2));border:1px solid var(--line-2);border-radius:var(--r-card);padding:14px 18px;margin:0 0 16px;text-decoration:none!important;color:var(--ink)}
.obbanner b{font-size:15px;font-weight:800;display:block}.obbanner small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.obtools{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:0 0 14px}
.obtools select{padding:8px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);background:var(--surface);font-size:13px;max-width:320px}
.obflow{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.obdot{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);background:var(--surface);border:1px solid var(--line-2);border-radius:999px;padding:4px 10px 4px 4px;text-decoration:none!important}
.obdot span{width:20px;height:20px;border-radius:50%;background:var(--surface-2);color:var(--muted);display:grid;place-items:center;font-family:var(--mono);font-size:10.5px;font-weight:700}
.obdot.on{border-color:var(--good);color:var(--good)}.obdot.on span{background:var(--good);color:#fff}
.obsteps{display:flex;flex-direction:column;gap:8px}
.obstep{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow)}
.obstep.done{border-color:var(--good)}
.obstep>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:13px 16px;flex-wrap:wrap}
.obstep>summary::-webkit-details-marker{display:none}
.obstep>summary .no{width:28px;height:28px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-weight:800;font-size:12px;flex:none}
.obstep.done>summary .no{background:var(--good)}
.obstep>summary b{font-size:14.5px;flex:1;min-width:200px}
.obstep>summary .meta{font-size:11.5px;color:var(--faint)}
.obbody{padding:0 16px 16px 56px}
.oblist{margin:0 0 10px;padding-left:18px;font-size:13.3px;line-height:1.75;color:var(--slate)}.oblist li{margin-bottom:5px}
.obrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 0}.obrow .lb{font-size:10.5px;letter-spacing:.1em;color:var(--faint);font-weight:800;margin-right:4px}
.obnote{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:10px;font-size:13px;font-family:var(--sans)}
@media(max-width:760px){.obbody{padding-left:16px}.obbanner{flex-direction:column;align-items:flex-start}}
/* ── 증명서 안내 ── */
.ctlist{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.ctcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow)}
.ctcard>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:11px 14px;flex-wrap:wrap}
.ctcard>summary::-webkit-details-marker{display:none}
.ctcard>summary::before{content:'▸';color:var(--muted);font-size:11px;width:10px}
.ctcard[open]>summary::before{content:'▾'}
.ctcard>summary b{font-size:14px;min-width:160px}
.ctcard>summary .meta{font-size:11.5px;color:var(--faint);flex:1;min-width:120px}
.ctbody{padding:0 14px 14px 34px}
.ctrow{display:flex;gap:10px;align-items:flex-start;margin:5px 0;font-size:13px;line-height:1.65;color:var(--slate)}
.ctrow .lb{flex:none;width:64px;font-size:10.5px;letter-spacing:.08em;color:var(--faint);font-weight:800;padding-top:3px}
.ctact{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.ctmsg{margin-top:8px;background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:9px 12px;font-size:12.4px;line-height:1.65;color:var(--slate);white-space:pre-wrap}
.ctsets{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;margin-bottom:8px}
.ctset{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px}
.ctset>b{display:block;font-size:14px;margin-bottom:6px}
.ctset .ctrow{font-size:12.5px}.ctset .ctrow .lb{width:56px}
.obtools .tabs{flex-wrap:wrap}.obtools .tab{white-space:nowrap}
@media(max-width:760px){.ctbody{padding-left:14px}.ctcard>summary b{min-width:0}}
.pplist{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.pprow{display:grid;grid-template-columns:180px 1fr;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px}
.pprow.warn{border-color:var(--sev2)}
.ppimg img{width:100%;border-radius:8px;border:1px solid var(--line);max-height:220px;object-fit:contain;background:#fff}
.ppform{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 10px}
@media(max-width:900px){.pprow{grid-template-columns:1fr}.ppform{grid-template-columns:1fr 1fr}}
table.mc5 td,table.mc5 th{font-size:11.5px}table.mc5 th.off,table.mc5 td.off{background:var(--surface-2);opacity:.6}
@media(max-width:900px){.hmgrid{grid-template-columns:1fr!important}}
/* 고객만족훈련 */
.csp{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:4px}
.csp .c{background:var(--surface-2);border-radius:14px;padding:14px 16px}
.csp .c b{display:block;font-size:13.5px;margin-bottom:4px}.csp .c .n{font-family:var(--mono);color:var(--accent);font-weight:700;font-size:11px;letter-spacing:.1em;margin-bottom:6px}
.csp .c p{margin:0;font-size:12.3px;color:var(--muted);line-height:1.65}.csp .c p b{display:inline;font-size:inherit;margin:0;color:var(--ink)}
.csg{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start}
.csg nav{position:sticky;top:86px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 40px);overflow:auto}
.csg nav a{font-size:12.3px;padding:6px 10px;border-radius:9px;color:var(--slate);text-decoration:none;line-height:1.4}
.csg nav a:hover,.csg nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:700}
.cssec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;margin-bottom:12px;scroll-margin-top:86px}
.cssec h3{margin:0 0 4px;font-size:15px}
.cssec .core{font-size:12.8px;color:var(--muted);margin-bottom:12px;line-height:1.65}
.csdd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.csdd ul{margin:0;padding:0;list-style:none}.csdd li{font-size:12.6px;line-height:1.6;padding:4px 0 4px 20px;position:relative}
.csdd .do li::before{content:"✓";position:absolute;left:2px;color:var(--good);font-weight:800}
.csdd .dont li::before{content:"✕";position:absolute;left:2px;color:var(--sev3);font-weight:800}
.csph{display:flex;flex-direction:column;gap:6px}
.csph .p{display:flex;gap:10px;align-items:flex-start;background:var(--surface-2);border-radius:10px;padding:8px 12px;font-size:12.6px;white-space:pre-wrap;line-height:1.6}
.csph .p span{flex:1;min-width:0}.csph .p .mini{flex:none}
table.csban{width:100%;border-collapse:collapse;font-size:12.5px}
table.csban th,table.csban td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.55}
table.csban th{font-size:11px;color:var(--faint);letter-spacing:.06em}
table.csban td.b{color:var(--sev3);text-decoration:line-through}table.csban td.g{color:var(--good);font-weight:600}
.csck{display:flex;flex-direction:column;gap:5px}
.csck .r{display:flex;gap:9px;align-items:flex-start;font-size:12.6px;padding:7px 10px;border-radius:9px;background:var(--surface-2);line-height:1.5}
.csck .r.ok{background:var(--good-bg)}.csck .r.no{background:var(--sev2-bg)}.csck .r.ban{background:var(--sev3-bg)}
.csck .r>b{min-width:110px;flex:none}.csck .r>span{flex:1;min-width:0}.csck .r input{margin-top:3px}
.csscore{display:flex;align-items:center;gap:12px;margin:12px 0}
.csscore .n{font-family:var(--mono);font-size:28px;font-weight:700;letter-spacing:-.02em}
@media(max-width:900px){.csg{grid-template-columns:1fr}.csg nav{position:static;flex-direction:row;flex-wrap:wrap;max-height:none}.csdd{grid-template-columns:1fr}.csck .r>b{min-width:80px}}
/* 부가가치세 신고하기 */
.vfsteps{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:14px 0 12px;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.vfsteps a{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:10px;font-size:12.6px;font-weight:600;color:var(--slate);text-decoration:none}
.vfsteps a b{width:20px;height:20px;border-radius:50%;background:var(--surface-2);color:var(--muted);display:inline-grid;place-items:center;font-size:11px;font-family:var(--mono)}
.vfsteps a.on{background:var(--accent-soft);color:var(--accent)}.vfsteps a.on b{background:var(--accent);color:#fff}
.vfsteps .vfsum{margin-left:auto;font-size:12.3px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vfgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.vfgrid .cf input,.vfgrid .cf select{font-family:var(--sans)}
.vfnote{margin-top:10px;font-size:12.4px;color:var(--slate);background:var(--surface-2);border-radius:10px;padding:9px 12px;line-height:1.6}
.vfsub{font-size:11px;letter-spacing:.1em;color:var(--accent);font-weight:800;margin:14px 0 6px}
table.vfm td{padding:5px 6px;vertical-align:top}table.vfm th{font-size:10.8px}
table.vfm th .isub{letter-spacing:0;font-weight:400}
.vfi{width:100%;min-width:88px;padding:5px 7px;border:1.5px solid var(--line-2);border-radius:8px;font-family:var(--mono);font-size:12px;text-align:right;background:var(--surface)}
.vfi:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.vfi.warn{border-color:var(--sev2);background:var(--sev2-bg)}
table.gr td.bad{color:var(--sev3);font-weight:700}
table.gr tr.tot td{background:var(--surface-2);font-weight:700}
.vfpaste{margin-top:10px;font-size:12.5px}.vfpaste summary{cursor:pointer;color:var(--accent);font-weight:600}
.vfpaste textarea{width:100%;min-height:96px;margin-top:8px;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:10px;font-family:var(--mono);font-size:12px}
.vfcalc{display:flex;flex-direction:column;gap:5px;font-size:12.8px;color:var(--slate)}.vfcalc b{font-family:var(--mono)}
table.vff td.no{text-align:center;font-family:var(--mono);font-size:11.5px;color:var(--accent);font-weight:700;white-space:nowrap}
table.vff tr.sec td{background:var(--surface-2);font-weight:800;font-size:12.3px;color:var(--slate);padding:8px 12px}
table.vff tr.sum td{font-weight:700;background:var(--sky-soft)}
table.vff tr.final td{font-weight:800;background:var(--accent-soft);font-size:14px}
table.vff tr.final td.n{color:var(--accent-ink)}
.vf2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.vfguide{display:flex;flex-direction:column;gap:8px;font-size:12.8px;line-height:1.7}
.vfguide .g{background:var(--surface-2);border-radius:12px;padding:10px 14px}.vfguide .g>b{display:block;margin-bottom:3px;color:var(--accent)}
@media(max-width:900px){.vf2{grid-template-columns:1fr}.vfsteps .vfsum{margin-left:0;width:100%}}
.bdstep{display:flex;align-items:center;gap:3px}.bdstep a{width:22px;height:22px;border-radius:6px;border:1px solid var(--line-2);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--faint);text-decoration:none;background:var(--surface)}.bdstep a.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.bdstep a.cur{background:var(--accent);color:#fff}.bdstep .lb{font-size:11.5px;margin-left:6px;color:var(--muted);white-space:nowrap}.bdstep .lb i{font-style:normal;color:var(--sev2)}
table.bdt td{vertical-align:middle}table.bdt tr.late td{background:var(--sev3-bg)}.bdmemo{width:100%;min-width:90px;padding:4px 6px;border:1px solid transparent;border-radius:6px;font-size:12px;background:transparent}.bdmemo:hover,.bdmemo:focus{border-color:var(--line-2);background:var(--surface)}
.rvbox .csck .r label span{flex:1}
#hpm{position:fixed;inset:0;background:rgba(10,20,40,.45);z-index:1200;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto}#hpm.on{display:flex}.hpm-box{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);width:100%;max-width:820px;padding:16px 18px}.hpm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:15px}
/* v-147 사업자등록증에서 채우기 */
.brd-now{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);margin-bottom:10px;font-size:12.5px}.brd-cur small{color:var(--muted);margin-right:3px}.brd-c{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--surface)}.brd-c.ok{border-color:var(--accent)}.brd-f{display:flex;flex-direction:column;gap:2px;font-size:12.5px;word-break:break-all}.brd-p{margin:6px 0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.brd-a{margin-top:6px;font-size:12px}.brd-t td,.brd-t th{padding:6px 9px;font-size:12px}.brd-no{font-size:12px;border:1px dashed var(--line-2);border-radius:10px;padding:8px 10px;margin-top:8px}.brd-no>div{margin-top:3px;word-break:break-all}.bra-t td{font-size:12px;padding:7px 9px}.bra-t td.bra-fill{background:var(--accent-soft)}.bra-t td.bra-diff{background:var(--sev2-bg)}#bra-fill:disabled,.brd-read:disabled{opacity:.45;cursor:default}
/* v-148 드라이브 자료 읽기 — 신고서 숫자 · 4대보험 입사 · 퇴사일 · 한 화면 */
.txn{display:inline-flex;gap:3px;align-items:baseline;margin:1px 9px 1px 0;font-size:12px;white-space:nowrap}.txn small{color:var(--muted);font-size:10.5px}.txcell{margin-top:2px;line-height:1.5}.txd-t td,.txd-n td,.hrd-d td,.hrd-p td,.drb-t td{font-size:12px;padding:6px 8px;vertical-align:top}.drh-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:8px 0 12px}.drh-c{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}.drh-c h4{margin:0 0 6px;font-size:13.5px}.drh-n{font-size:12.5px;line-height:1.75}.hr-ev{display:inline-block;margin:1px 6px 1px 0;font-size:11.5px;white-space:nowrap}.hr-ev.in{color:var(--accent)}.hr-ev.out{color:var(--sev3)}#drb-fill:disabled,#hrd-fill:disabled,.txd-read:disabled,.hrd-read:disabled{opacity:.45;cursor:default}
/* v-149 카톡 응대(지킴 AI 분류) — 답 안 한 질문 · 할 일 후보 · 불만 신호 */
.ka-t td{font-size:12.5px;vertical-align:top;padding:7px 8px}.ka-t tr.ka-late td{background:var(--sev2-bg)}.ka-wait{white-space:nowrap}.ka-wait b{font-size:13px}
.ka-gist{min-width:220px;line-height:1.55}.ka-todo{color:var(--accent-ink);font-weight:600;font-size:12px;margin-top:2px}
.ka-btns{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.ka-btns .mini{white-space:nowrap}
.ka-li{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px;line-height:1.5}.ka-li.ka-late{background:var(--sev2-bg);border-radius:8px;padding:6px 8px}.ka-li .ka-btns{margin-left:auto}
.ka-tabs .tab{white-space:nowrap;flex:0 0 auto}.ka-h{font-size:12px;font-weight:700;color:var(--muted);margin:8px 0 2px}.ka-strip{margin-bottom:10px}
.ka-set .cf input[type=checkbox]{width:auto;padding:0}.ka-set .cf .cchk{padding-bottom:0}
@media (max-width:720px){.ka-gist{min-width:160px}.ka-btns{justify-content:flex-start}}
/* v-150 카톡 응대 → 답변 작성 — 되돌리기 띠 · 질문 카드 · 처리한 것 */
.ka-undo{position:fixed;left:50%;bottom:74px;transform:translateX(-50%) translateY(160px);display:flex;align-items:center;gap:8px;width:max-content;max-width:min(92vw,560px);background:var(--ink);color:var(--paper);padding:9px 10px 11px 16px;border-radius:14px;box-shadow:var(--shadow);z-index:310;font-size:13px;font-weight:600;transition:transform .22s ease;overflow:hidden}
.ka-undo.on{transform:translateX(-50%) translateY(0)}
.ka-undo .m{flex:1 1 auto;min-width:0;line-height:1.45}
.ka-undo .mini{flex:none}
.ka-undo .bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--accent);transform-origin:left center}
.ka-undo.on .bar{animation:kaUndoBar 8s linear forwards}
@keyframes kaUndoBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.ka-kq{margin-bottom:14px;border-left:4px solid var(--accent)}
.ka-kq.ka-kq-hint{border-left-color:var(--line-2)}
.ka-q{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line-soft);cursor:pointer}
.ka-q input[type=checkbox]{margin-top:3px;flex:none;width:auto;padding:0}
.ka-q .ka-q-h{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:12.5px}
.ka-q .ka-q-h b{font-size:13px}.ka-q .ka-q-h b.ka-q-late{color:var(--sev2)}
.ka-q .ka-q-g{font-size:13.5px;line-height:1.55;margin-top:3px;word-break:keep-all;overflow-wrap:anywhere}
.ka-q.off{opacity:.6}
.ka-kq-st{margin-top:8px;font-size:12.5px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-weight:600;color:var(--accent-ink)}
.ka-kq-st:empty,.ka-kq-st span:empty{display:none}
.ka-kq-st.bad{color:var(--sev2)}
.ka-sug{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:4px}
.ka-sug .snip{margin:0}.ka-sug .snip .q{font-size:12.5px}
.ka-hf{margin:2px 0;font-size:12.5px;line-height:1.5}
.ka-btns a.mini{text-decoration:none}
@media (max-width:720px){.ka-undo{bottom:68px;padding-left:12px;font-size:12.5px}.ka-sug{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ka-undo{transition:none}.ka-undo.on .bar{animation:none}}
/* v-150c 카카오톡 연동 설치 창 */
.kx{font-size:13px;line-height:1.7}
.kx-st{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;margin:0 0 12px;border:1px solid var(--line)}
.kx-st b{font-size:13.5px}.kx-st span{font-size:12.5px;color:var(--muted)}
.kx-st.kx-ok{background:var(--hacs,#EAF4EE);border-color:transparent}.kx-st.kx-ok b{color:#1F6F43}
.kx-st.kx-up{background:var(--sev2-bg,#FFF6D6);border-color:transparent}.kx-st.kx-up b{color:var(--sev2,#9A5B00)}
.kx-st.kx-no{background:var(--accent-soft);border-color:transparent}
.kx-dlrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.kx-dl{text-decoration:none}
.kx-h{font-size:12.5px;font-weight:700;color:var(--muted);margin:4px 0 2px}
.kx-steps{margin:0 0 10px;padding-left:22px}.kx-steps li{margin:0 0 8px}.kx-steps li .ismall{margin-top:2px}
.kx code{font-family:var(--mono);font-size:12px;background:var(--surface-2,#F3F5F9);border:1px solid var(--line);border-radius:6px;padding:1px 6px;word-break:break-all}
.kx-cp{padding:2px 8px!important;font-size:11px!important;vertical-align:1px}
.kx-more{margin:2px 0 10px}.kx-more summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--accent-ink,#0353bf);padding:4px 0}
.kx-foot{margin:6px 0 0;line-height:1.6}
.kx-new{font-weight:700;color:var(--sev2,#9A5B00)}
.kq-other{margin:8px 0 0;padding:8px 12px;border-radius:10px;background:var(--sev2-bg,#FFF6D6);font-size:12.5px;line-height:1.6}.kq-other .mini{margin-left:6px}   /* v-150d 다른 수임처 방 대화 알림 */
/* v-151 카톡 응대 — 현황 · 수임처 카톡 · 줄마다 [카톡] */
.ka-who{display:flex;gap:6px;align-items:flex-start;justify-content:space-between}.ka-who-n{min-width:0}
.mini.ka-kk{background:#FEE500;border-color:#F2D900;color:#191919;display:inline-flex;align-items:center;gap:3px;white-space:nowrap;flex:none}.mini.ka-kk:hover{background:#F7DC00}
.ka-home .ka-cards{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));margin:8px 0 6px}.ka-cards .icard.bad b{color:var(--sev3)}.ka-cards .icard.warn b{color:var(--sev2,#9A5B00)}#view .ka-cards .icard.txt b{font-size:20px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}
.ka-sec{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:16px 0 6px;font-weight:700;font-size:13.5px}.ka-sec .ismall{font-weight:400}.ka-sec .mini{margin-left:auto}
.ka-warn{margin:0 0 8px;padding:9px 12px;border-radius:10px;background:var(--sev2-bg,#FFF6D6);font-size:12.5px;line-height:1.6}.ka-warn a{margin-left:6px}
.ka-okline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 6px}
.ka-bt td,.ka-bt th,.ka-dt td,.ka-dt th,.ka-wt td,.ka-wt th{font-size:12.5px;padding:6px 8px;white-space:nowrap}.ka-bt .n,.ka-dt .n,.ka-wt .n,.ka-rt .n{text-align:right;font-variant-numeric:tabular-nums}
.ka-bt tr.go{cursor:pointer}.ka-bt tr.go:hover td,.ka-bt tr.go:focus td{background:var(--field,#f5f7fb)}.ka-bt tfoot td{border-top:2px solid var(--line);font-weight:600}
.ka-bad,.ka-bad b{color:var(--sev3)}
.ka-unlline{margin:6px 0 0}.ka-negl{padding:4px 12px}.ka-negl .ka-gist{flex:1 1 220px}
.ka-rf{margin:0 0 8px}.ka-rf .tab{white-space:nowrap;flex:0 0 auto}.ka-rf .tab b{font-weight:600;margin-left:2px}
.ka-rt td{font-size:12.5px;vertical-align:top;padding:7px 8px}.ka-rt tr.ka-late td{background:var(--sev2-bg)}.ka-rt tr.ka-sep td{background:var(--field,#f5f7fb);font-size:12px;font-weight:600;color:var(--muted)}
.ka-rt td:last-child{white-space:nowrap}.mini.ka-ck{padding:1px 6px;font-size:11px}
@media(max-width:760px){.ka-who{flex-wrap:wrap}.ka-sec .mini{margin-left:0}}
/* v-152 날씨(맨 위 오른쪽) · 수임처 4대보험 공단 정보 · 재무정보 */
:root{--wx-cloud:#B9C3D1;--wx-cloud2:#9AA6B7}
:root[data-theme="dark"]{--wx-cloud:#C9D2DF;--wx-cloud2:#A7B2C3}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--wx-cloud:#C9D2DF;--wx-cloud2:#A7B2C3}}
.wx-w{position:relative;display:inline-flex;align-items:center;flex:none}
.wx-pill{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px 0 8px;border-radius:12px;border:1px solid var(--line);background:var(--card,var(--paper));color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap;max-width:300px}
.wx-pill:hover{border-color:var(--ac,#0B5CFF)}
.wx-pill:focus-visible{outline:2px solid var(--ac,#0B5CFF);outline-offset:2px}
.wx-ic{display:inline-flex}.wx-svg{display:block;flex:none}
.wx-t{font-size:15px;font-weight:700;letter-spacing:-.2px;font-variant-numeric:tabular-nums}
.wx-s{color:var(--muted)}
.wx-mm{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.wx-mm i,.wx-day i{font-style:normal}
.wx-mm .lo,.wx-day .lo{color:#2F6FDB}.wx-mm .hi,.wx-day .hi{color:#D9443A}
.wx-pop{position:absolute;right:0;top:calc(100% + 8px);width:348px;max-width:calc(100vw - 24px);background:var(--paper,#fff);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(15,23,42,.16);padding:14px;z-index:75;text-align:left}
.wx-pop[hidden]{display:none}
.wx-ph{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px}.wx-ph .ismall{margin-left:auto}
.wx-now{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:4px 0 10px;border-bottom:1px solid var(--line)}
.wx-big{font-size:30px;font-weight:800;line-height:1;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.wx-tx{font-size:13px;color:var(--muted);margin-top:3px}
.wx-kv{display:flex;flex-direction:column;gap:2px;margin-left:auto;font-size:12px;color:var(--muted)}.wx-kv b{color:var(--ink);font-weight:600}
.wx-days{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid var(--line)}
.wx-day{display:flex;align-items:center;gap:8px;font-size:12.5px}.wx-day .l{width:30px;font-weight:600}.wx-day .mm{font-variant-numeric:tabular-nums;min-width:74px}.wx-day .p{color:var(--muted);margin-left:auto}
.wx-hrs{display:flex;gap:2px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:thin}
.wx-h{flex:0 0 46px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11.5px;padding:4px 0;border-radius:8px}
.wx-h .t{color:var(--muted)}.wx-h b{font-size:12.5px;font-variant-numeric:tabular-nums}.wx-h .p{color:var(--muted);font-size:10.5px;min-height:13px}
.wx-h.wet .p{color:#2F6FDB;font-weight:600}
.wx-btns{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 4px}
.wx-err{font-size:12px;color:var(--sev2,#9A5B00);margin:6px 0}
.wx-foot{font-size:11px;color:var(--faint,var(--muted));margin:6px 0 0}
@media(max-width:1180px){.wx-s{display:none}}
@media(max-width:760px){.wx-mm{display:none}.wx-pill{height:36px;padding:0 8px 0 6px}.wx-pop{position:fixed;right:12px;left:12px;top:60px;width:auto}}
@media(max-width:430px){.wx-pill .wx-t{display:none}.wx-pill{width:36px;padding:0;justify-content:center}}   /* 휴대폰 — 찾기 칸이 좁아지지 않게 그림만(기온은 펼치면) */
.pub-cl .pub-tools{display:flex;gap:6px;justify-content:flex-end;align-items:center;margin:-4px 0 8px}
.pub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pub-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card,var(--paper));min-width:0}
.pub-card.pub-wide{grid-column:1/-1}
.pub-ch{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;flex-wrap:wrap}.pub-ch b{font-size:14px}
.pub-t td,.pub-t th{font-size:12.5px;padding:6px 8px;vertical-align:top}.pub-t .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pub-fs td:first-child,.pub-fs th:first-child{white-space:nowrap}
.pub-gy td.dt,.pub-gy th{white-space:nowrap}.pub-gy td.ind{min-width:8.5em}.pub-gy td.nm{min-width:8em}
.pub-kv{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:12.8px;margin:0 0 8px}.pub-kv .k{color:var(--muted);white-space:nowrap}
.pub-none{font-size:13px;margin:2px 0 4px}.pub-err{font-size:12.5px;color:var(--sev2,#9A5B00);margin:4px 0}.pub-at{font-size:11px;color:var(--faint,var(--muted));margin:8px 0 0}
.pub-tabs{margin:12px 0 6px}
.pub-st2{max-height:none}
.pub-tl{display:flex;flex-direction:column;gap:6px}.pub-tr1{display:grid;grid-template-columns:52px 1fr auto;gap:2px 8px;align-items:baseline;padding:8px 10px;border-radius:10px;background:var(--field,#f5f7fb);font-size:13px}.pub-tr1 > div{grid-column:2/-1}
.pub-tr1.ok b{color:#067647}.pub-tr1.bad b{color:#B42318}
.pub-pk code{display:block;white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.35;opacity:.8;margin-top:2px}
.pub-hint{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--warnbg,#FFF7E6);color:var(--text,#1f2937);font-size:13px;line-height:1.55}   /* v-155c */
@media(max-width:900px){.pub-grid{grid-template-columns:1fr}}
.pub-dg{margin-top:6px;padding:6px 8px;border-radius:8px;background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb)}
.pub-dg1{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:2px 0}
.pub-dg1.ok span:last-child{color:#067647}.pub-dg1.bad span:last-child{color:#B42318}
.pub-dg-h{font-weight:600;color:var(--text,#1f2937)}.pub-dg-n{margin-top:4px;line-height:1.45}
/* v-156 카톡 응대 운영시간 · 수임처 연락처 · 인수인계 묶음 */
.ka-bh{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.ka-bh input[type=time]{padding:5px 8px;border:1.5px solid var(--line-2);border-radius:8px;font:inherit;font-size:12.5px}
.ka-bh .cchk{display:inline-flex;align-items:center;gap:3px;font-size:12.5px}
.ka-off .ka-off-st{margin:4px 0 8px 18px;padding:0;font-size:12.5px;line-height:1.7}
.ka-off-msg{width:100%;box-sizing:border-box;padding:8px 10px;border:1.5px solid var(--line-2);border-radius:10px;font:inherit;font-size:12.5px;line-height:1.6;resize:vertical;background:var(--bg-2,transparent);color:inherit}
.ctc-rows{display:block}
.ctc-none{color:var(--sev3,#B42318);font-weight:700}
.ctc-row .ctc-ed{margin-left:4px;padding:1px 7px;font-size:11px}
.ctc-row .ctc-src{font-weight:500}
.ctc-form{grid-template-columns:1fr 1fr}
.ctc-log{margin-top:8px;line-height:1.6}
.ctc-q{display:inline-flex;gap:4px;align-items:center}
.ctc-q input{width:130px;padding:4px 7px;border:1.5px solid var(--line-2);border-radius:8px;font:inherit;font-size:12px}
.hq-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:0 0 14px}
.hq-card{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card,var(--bg));color:inherit;text-decoration:none}
.hq-card:hover{border-color:var(--accent)}
.hq-c-h{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.hq-c-h .ismall{margin-left:auto}
.hq-c-n{font-size:12.5px;margin:6px 0}
.hq-c-m{margin-top:4px}
.hq-bar{height:6px;border-radius:4px;background:var(--line);overflow:hidden}.hq-bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.hq-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.hq-prog{flex:1;min-width:200px}.hq-prog b{display:block;font-size:13px;margin-bottom:4px}
.hq-acts{display:flex;gap:6px;flex-wrap:wrap}
.hq-aib{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--line);border-radius:10px;margin:0 0 10px}.hq-aib .hq-bar{flex:1;min-width:120px}
.hq-wrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.hq-side{position:sticky;top:64px}
.hq-side .hr-q{width:100%;box-sizing:border-box;margin:0 0 6px}
.hq-list{display:flex;flex-direction:column;gap:2px;max-height:70vh;overflow:auto;padding-right:2px}
.hq-it{display:flex;gap:6px;align-items:center;width:100%;text-align:left;padding:7px 9px;border:1px solid transparent;border-radius:9px;background:none;color:inherit;font:inherit;font-size:12.8px;cursor:pointer}
.hq-it:hover{background:var(--bg-2,rgba(0,0,0,.04))}
.hq-it.on{border-color:var(--accent);background:var(--accent-bg,rgba(3,83,191,.06))}
.hq-it .hq-ck{width:16px;flex:none;color:var(--green,#067647);font-weight:800}
.hq-it .hq-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hq-it.rd .hq-nm{color:var(--muted)}
.hq-det{min-width:0;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.hq-dh{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin:0 0 10px}.hq-dh h2{margin:0;font-size:18px}
.hq-dacts{display:flex;gap:6px;flex-wrap:wrap}
.hq-ai{border:1px solid var(--accent);border-radius:12px;padding:10px 12px;margin:0 0 12px;background:var(--accent-bg,rgba(3,83,191,.04))}
.hq-ai0{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-style:dashed}
.hq-ai-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.hq-ai-h .mini{margin-left:auto}
.hq-ai-sum{margin:6px 0;font-size:13px;line-height:1.6}
.hq-ai-g{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;margin-top:6px;font-size:12.8px}.hq-ai-g>span{color:var(--muted);font-weight:700}.hq-ai-g ul{margin:0;padding-left:16px;line-height:1.6}
.hq-noho{margin:0 0 10px}
.hq-sec{margin:0 0 12px}.hq-sec h3{margin:0 0 4px;font-size:13.5px}
.hq-sec dl{margin:0}
.hq-r{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:12.8px}
.hq-r dt{color:var(--faint);font-size:12px}.hq-r dd{margin:0;word-break:break-word;line-height:1.55}
.hq-open .hq-r dd,.hq-ho .hq-r dd{white-space:normal}
.hq-foot{display:flex;justify-content:flex-end;margin-top:12px}
.hn-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.hn-opts{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 10px;font-size:12.5px}
.hn-sum{margin-top:8px;font-size:12.8px}
@media(max-width:900px){.hq-wrap{grid-template-columns:1fr}.hq-side{position:static}.hq-list{max-height:34vh}.hn-form{grid-template-columns:1fr}.ctc-form{grid-template-columns:1fr}.hq-r{grid-template-columns:110px minmax(0,1fr)}.hq-ai-g{grid-template-columns:1fr}}
/* v-153 지킴 도우미 설정 — 생각 수준 */
.aie-g{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.aie-i{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.aie-i > span{display:flex;flex-direction:column;min-width:0}.aie-i select{flex:none}
.bm .bmrow{display:grid;grid-template-columns:150px 1fr 260px;gap:12px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line)}.bm .bml b{display:block;font-size:12.5px}.bm .bml span{font-size:12px;color:var(--muted)}.bm .bmbar{position:relative;height:10px;background:var(--line-soft);border-radius:999px}.bm .bmbar i{position:absolute;top:0;bottom:0;background:var(--line-2);border-radius:999px}.bm .bmbar em{position:absolute;top:-4px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.2)}.bm .bmr{font-size:12px}
@media(max-width:900px){.bm .bmrow{grid-template-columns:1fr}.hmgrid{grid-template-columns:1fr!important}}
/* 화면 점검 (2026-09-21) */
.scbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:12px 16px;border-radius:14px;
  border:1.5px solid var(--accent);background:var(--accent-bg,var(--surface-2))}
.scbar.late{border-color:var(--sev3)}
.scbar.ok{border-color:var(--good,var(--accent));background:var(--surface-2)}
.scbar .t{font-weight:800;font-size:14px}
.scbar .bars{flex:1;min-width:120px;height:7px;border-radius:99px;background:var(--line);overflow:hidden}
.scbar .bars i{display:block;height:100%;background:var(--accent);border-radius:99px}
.scbtn{border-color:var(--accent)!important;background:var(--accent)!important;color:#fff!important}
.scbtn em{background:rgba(255,255,255,.25)!important;color:#fff!important}
.scform textarea{width:100%;font-family:inherit;font-size:13px;padding:8px 10px;border:1.5px solid var(--line-2);border-radius:10px;background:var(--surface);color:inherit}
.scsc label{font-size:13.5px}
.sclist{display:flex;flex-direction:column;gap:2px}
.sclist a{padding:9px 12px;border-radius:9px;border:1px solid var(--line);text-decoration:none;color:inherit;font-size:13.5px}
.sclist a:hover{background:var(--surface-2);border-color:var(--accent)}
.scpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 10px;max-height:300px;overflow:auto;
  border:1px solid var(--line);border-radius:10px;padding:10px}
.scpick label{font-size:12.5px;display:flex;align-items:center;gap:6px}
.sctbl th,.sctbl td{text-align:center;white-space:nowrap}
.sctbl td.l,.sctbl th.l{text-align:left}
.fbbtn{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;align-items:center;gap:6px;padding:10px 15px;border-radius:999px;border:1.5px solid var(--line-2);background:var(--card);color:var(--ink);box-shadow:var(--shadow);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.fbbtn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.fbbtn em{font-style:normal;background:var(--sev2-bg);color:var(--sev2);border-radius:999px;padding:1px 6px;font-size:11px}
.fbbtn .ic{display:block}
@media print{.fbbtn{display:none}}
@media(max-width:640px){.fbbtn{right:12px;bottom:12px;padding:9px 12px;font-size:12px}}
.fblist{display:flex;flex-direction:column;gap:10px}
.fbitem{border:1.5px solid var(--line-2);border-radius:var(--r-card);padding:12px 14px;background:var(--card)}
.fbitem.done{opacity:.7}
.fbitem .h{display:flex;gap:12px;align-items:flex-start}
.fbitem .t{flex:1;min-width:0}
.fbitem .t b{font-size:14px;font-weight:650;line-height:1.45}
.fbitem .m{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.fbitem .b{margin-top:8px;font-size:12.8px;line-height:1.65;color:var(--muted)}
.fbitem .rp{margin-top:8px;padding:8px 10px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:6px;font-size:12.8px;line-height:1.6}
.fbitem .rp>b{margin-right:6px;color:var(--accent)}
.fbitem .rp .ismall{display:block;margin-top:4px}
.fbitem .f{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px}
.fbitem .vote{min-width:54px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;border:1.5px solid var(--line-2);border-radius:10px;background:transparent;cursor:pointer;color:var(--muted);font-family:inherit}
.fbitem .vote b{font-size:15px}
.fbitem .vote span{font-size:10px}
.fbitem .vote.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.fbform .r{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.fbform .r>label{width:64px;flex:none;font-size:12.5px;color:var(--faint);padding-top:7px}
.fbform input,.fbform select,.fbform textarea{flex:1;padding:7px 10px;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);font-size:13px;font-family:inherit;box-sizing:border-box;background:var(--card);color:var(--ink)}
.fbform .fbk{display:flex;gap:10px;flex-wrap:wrap;padding-top:6px;font-size:12.5px}
.fbform .fbk label{display:flex;gap:4px;align-items:center}
.fbdup{margin:0 0 10px;padding:10px;border:1.5px dashed var(--line-2);border-radius:8px}
.fbdup>b{font-size:12.5px}
.fbdup .r{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:6px;font-size:12.5px}
.mnbar{display:flex;gap:14px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid var(--line-2)}
.mntools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mntools a.mini{text-decoration:none;display:inline-flex;align-items:center}
.mnsearch{display:flex;gap:4px;align-items:center;border:1.5px solid var(--line-2);border-radius:var(--r-ctrl);padding:2px 4px 2px 10px;background:var(--card)}
.mnsearch input{border:0;outline:0;background:transparent;color:var(--ink);font-size:12.5px;font-family:inherit;width:150px;padding:5px 0}
.mnsearch #mn-cnt{min-width:44px;text-align:right}
.mnwrap{display:flex;gap:26px;align-items:flex-start}
.mntoc{flex:0 0 210px;position:sticky;top:16px;max-height:calc(100vh - 40px);overflow:auto;border-right:1.5px solid var(--line-2);padding-right:12px}
.mntoc a{display:block;font-size:12.2px;line-height:1.45;padding:4px 8px;border-radius:7px;color:var(--muted);text-decoration:none;border-left:2px solid transparent}
.mntoc a.h2{font-weight:750;color:var(--ink);margin-top:8px}
.mntoc a.h3{padding-left:16px;font-size:11.8px}
.mntoc a:hover{background:var(--surface-2)}
.mntoc a.on{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}
#mnbody mark.mnhit{background:#FFF1A8;color:inherit;border-radius:3px;padding:0 1px}
#mnbody mark.mnhit.cur{background:#FFC53D;box-shadow:0 0 0 2px rgba(255,197,61,.35)}
@media(max-width:900px){.mnwrap{display:block}.mntoc{display:none}}
.asbtn{position:fixed;right:18px;bottom:66px;z-index:60;display:flex;align-items:center;gap:6px;padding:10px 15px;border-radius:999px;border:1.5px solid var(--accent);background:var(--accent);color:#fff;box-shadow:var(--shadow);font-size:13px;font-weight:650;cursor:pointer;font-family:inherit}
.asbtn:hover{filter:brightness(1.06)}
.asbtn.on{background:var(--card);color:var(--accent)}
.asbtn svg{display:block}
/* v-114 — 카카오톡 채널 단추(지킴 도우미 위) */
.kkfab{position:fixed;right:18px;bottom:114px;z-index:60;display:flex;align-items:center;gap:6px;padding:10px 15px;border-radius:999px;border:1.5px solid #F0D800;background:#FEE500;color:#191919;font:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:var(--shadow);letter-spacing:-.2px}
.kkfab:hover{filter:brightness(.97)}
.kkfab svg{display:block}
@media print{.kkfab{display:none}}
@media(max-width:640px){.kkfab{right:12px;bottom:102px;padding:9px 12px;font-size:12px}}
@media print{.asbtn{display:none}}
@media(max-width:640px){.asbtn{right:12px;bottom:58px;padding:9px 12px;font-size:12px}}
.aspanel{position:fixed;top:0;right:0;height:100vh;width:440px;z-index:70;background:var(--card);border-left:1.5px solid var(--line-2);box-shadow:-10px 0 30px rgba(15,30,50,.10);display:none;flex-direction:column;font-size:13.4px}
.aspanel.on{display:flex}
body.haspanel .fbbtn,body.haspanel .asbtn{right:auto;left:auto;display:none}
.ashead{display:flex;gap:6px;align-items:center;padding:11px 14px 9px}
.asbar{display:flex;gap:6px;align-items:center;padding:0 14px 10px;border-bottom:1.5px solid var(--line-2);flex-wrap:wrap}
.ashead .ttl{flex:1;min-width:0;line-height:1.3}
.ashead .ttl b{font-size:14.5px;display:block}
.ashead .ttl .ismall{font-size:11.5px}
.asmodes{display:flex;border:1.5px solid var(--line-2);border-radius:999px;overflow:hidden}
.asmodes button{border:0;background:transparent;color:var(--muted);font-size:11.5px;padding:4px 10px;cursor:pointer;font-family:inherit}
.asmodes button.on{background:var(--accent);color:#fff;font-weight:650}
.asweb{display:flex;align-items:center;gap:3px;border:1.5px solid var(--line-2);background:transparent;color:var(--muted);border-radius:999px;padding:4px 9px;font-size:11.5px;cursor:pointer;font-family:inherit}
.asweb.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:650}
.asweb.off{opacity:.4;cursor:not-allowed}
.asweb svg{display:block}
.assearch{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:5px 9px;margin-bottom:7px}
.assearch.done{color:var(--accent-ink);background:var(--accent-soft)}
.assearch.off{color:var(--sev2);background:var(--sev2-bg)}
.assearch b{font-weight:650}
.asweb-src{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:11px;color:var(--faint)}
.asweb-src>span{font-weight:650}
.asweb-src a{color:var(--accent-ink);text-decoration:none;border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;background:var(--card)}
.asweb-src a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.asbody{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.asempty{margin:auto;text-align:center;color:var(--muted);padding:10px 4px}
.asempty>b{display:block;color:var(--ink);font-size:15px;margin-bottom:8px;text-align:center}
.asempty ol{text-align:left}
.asempty ol b{color:var(--accent-ink)}
.asempty code{background:var(--surface-2);border-radius:5px;padding:1px 5px;font-size:11.5px}
.asempty p{font-size:12.3px;line-height:1.6;margin:0 0 12px}
.asctx{background:var(--accent-soft);color:var(--accent-ink);border-radius:9px;padding:8px 10px;font-size:12px;margin-bottom:12px}
.astips{display:flex;flex-direction:column;gap:6px}
.astips button{border:1.5px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:10px;padding:8px 10px;font-size:12.2px;text-align:left;cursor:pointer;font-family:inherit;line-height:1.45}
.astips button:hover{border-color:var(--accent);color:var(--accent)}
.asmsg{max-width:100%}
.asmsg.u{align-self:flex-end;background:var(--accent);color:#fff;border-radius:14px 14px 4px 14px;padding:9px 13px;max-width:86%;line-height:1.6;white-space:normal}
.asmsg.a{align-self:flex-start;width:100%}
.asmsg.a .t{line-height:1.72}
.asmsg.a.err .t{color:var(--sev3)}
.asmsg.a .t p{margin:0 0 7px}
.asmsg.a .t ul,.asmsg.a .t ol{margin:0 0 7px;padding-left:18px}
.asmsg.a .t li{margin:0 0 3px}
.asmsg.a .t b.ash{display:block;margin:10px 0 4px;color:var(--accent-ink)}
.asmsg.a .t code{background:var(--surface-2);border-radius:4px;padding:1px 4px;font-size:12px}
.asmsg.a .t pre.ascode{background:var(--surface-2);border-radius:8px;padding:9px 11px;font-size:12px;overflow:auto;white-space:pre-wrap}
.asquote-h{margin:12px 0 4px;font-weight:700;color:var(--accent-ink);border-top:1.5px dashed var(--line-2);padding-top:9px}
a.asref{background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:0 4px;font-size:11.5px;text-decoration:none;font-weight:650;white-space:nowrap}
a.asref:hover{background:var(--accent);color:#fff}
.ascur{display:inline-block;width:7px;height:14px;background:var(--accent);vertical-align:-2px;animation:asbl 1s steps(2) infinite;margin-left:2px}
@keyframes asbl{0%,50%{opacity:1}51%,100%{opacity:0}}
.asf{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:7px}
.assrc{font-size:11px;color:var(--faint);display:flex;gap:3px;align-items:center;flex-wrap:wrap}
.assrc a{color:var(--muted);text-decoration:none;border:1px solid var(--line-2);border-radius:4px;padding:0 4px}
.assrc a:hover{color:var(--accent);border-color:var(--accent)}
.asfoot{border-top:1.5px solid var(--line-2);padding:10px 12px 12px}
.asinwrap{display:flex;gap:7px;align-items:flex-end}
.asinwrap textarea{flex:1;resize:none;border:1.5px solid var(--line-2);border-radius:12px;padding:9px 12px;font-size:13.2px;font-family:inherit;line-height:1.5;background:var(--card);color:var(--ink);max-height:150px;outline:0}
.asinwrap textarea:focus{border-color:var(--accent)}
.asgo{flex:none;width:36px;height:36px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-size:16px;cursor:pointer;font-family:inherit}
.asgo.stop{background:var(--sev3);font-size:11px}
.asnote{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:10.8px;color:var(--faint)}
.asgrip{position:absolute;left:-3px;top:0;width:7px;height:100%;cursor:col-resize}
.ashead .ttl b{white-space:nowrap}
.ashead .ttl .ismall{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ashead .mini{padding:4px 8px;font-size:11.5px;white-space:nowrap}
body.haspanel main{margin-right:var(--asw,440px)}
body.haspanel .aspanel{box-shadow:none}
@media(max-width:1200px){body.haspanel main{margin-right:0}}
@media(max-width:760px){.aspanel{width:100%!important;border-left:0}}
.noedit .mini.edit-btn,.noedit .editor{display:none!important}

/* ══════════════════════════════════════════════════════════════
   디테일 패스 v2 — 「정돈」 + 「지표」
   색·구조·용어는 그대로 두고 여백·정렬·강약만 다듬습니다.
   앞의 규칙을 덮어쓰므로 이 블록만 지우면 이전 모습으로 돌아갑니다.
   ══════════════════════════════════════════════════════════════ */

/* 1 ─ 숫자는 어디서나 자릿수가 맞게 (표가 흔들리지 않도록) */
.num,.mono,table.gr td.n,table.gr th.n,.kpi b,.icard b,.metric b,.pill,
table.ct td.n,table.ledger td.num,.s-n{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* 2 ─ 표: 세로 구분선을 없애고 행에 숨 쉴 자리를 준다 */
table.gr th{background:transparent;font-size:10.5px;font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;color:var(--faint);padding:7px 12px 8px;border-bottom:1px solid var(--line-2);vertical-align:bottom}
table.gr th:first-child,table.gr th:last-child{border-radius:0}
table.gr td{padding:11px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
table.gr tbody tr:last-child td{border-bottom:0}
table.gr tbody tr:hover td{background:var(--sky-soft)}
/* 스크롤되는 표는 머리글이 붙어 있게 — 25행을 넘겨도 어느 열인지 잃지 않도록 */
.tblwrap.scroll table.gr th{position:sticky;top:0;z-index:2;background:var(--surface);box-shadow:0 1px 0 var(--line-2)}
.tblwrap{border-color:var(--line)}

/* 3 ─ 상자: 테두리·바탕·그림자를 겹쳐 쓰지 않는다 */
.icard{background:var(--field);border-color:transparent;border-radius:12px;padding:11px 13px}
.icard .l{font-size:10.8px;color:var(--muted);margin-bottom:2px;letter-spacing:.01em}
.icard b{font-family:var(--mono);font-size:19px;font-weight:600;letter-spacing:-.025em;line-height:1.3;
  word-break:normal;overflow-wrap:anywhere}
.icard .d{font-size:11px;line-height:1.5;margin-top:3px}
.icards{gap:10px}
.incwrap{border-color:var(--line);padding:15px 16px}
.ihead{margin-bottom:10px}
.rules{border-color:transparent;background:var(--field);box-shadow:none;padding:3px 18px}
.rules .r{border-bottom-color:var(--line)}

/* 4 ─ 지표: 큰 숫자를 더 크고 조밀하게, 라벨은 물러서게 */
.kpi{padding:16px 18px 15px}
.kpi b{font-size:30px;font-weight:600;letter-spacing:-.032em}
.kpi span{font-size:12.5px;font-weight:600;color:var(--muted)}
.kpi .sub{font-size:11px;margin-top:3px}
.metric b{font-weight:600;letter-spacing:-.03em}

/* 5 ─ 도구 줄: 한 줄에 놓인 것들이 같은 높이로 서게 */
.obtools{align-items:center;gap:8px}
.obtools select,.obtools input,.filters select,.filters input{height:32px;border-radius:var(--r-ctrl);
  border:1px solid var(--line-2);font-size:12.5px;font-weight:500;color:var(--slate)}
.filters select,.filters input{padding:0 12px}
.mini{height:28px;padding:0 12px;font-size:11.8px;font-weight:600;line-height:1}
.btn{height:34px;padding:0 16px;font-weight:600;line-height:1}
.tbtn{height:32px;padding:0 14px;line-height:1}
.pill{font-weight:600;padding:2px 9px;letter-spacing:.005em}

/* 6 ─ 제목의 리듬 */
h1.pt{font-weight:800;letter-spacing:-.026em}
p.pd{margin-bottom:18px;line-height:1.62}
h2.sec{font-weight:700;letter-spacing:-.015em;margin:30px 0 10px}
.ismall{line-height:1.6}
.isub{margin-top:1px;line-height:1.45}
.tab{font-weight:600;letter-spacing:-.005em}

/* 7 ─ 새 부품 ① 눈금 있는 막대 — 값과 「기준선」을 한 칸에서 같이 읽는다 */
.jk-meter{position:relative;height:6px;border-radius:3px;background:var(--field);overflow:visible;min-width:60px}
.jk-meter>i{display:block;height:100%;border-radius:3px;background:var(--accent)}
.jk-meter>i.dim{background:var(--accent-mid)}
.jk-meter>u{position:absolute;top:-3px;bottom:-3px;width:1.5px;background:var(--faint);opacity:.75;text-decoration:none}
.jk-mrow{display:flex;align-items:baseline;gap:8px}
.jk-mrow .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12.6px;min-width:40px}
.jk-d{font-family:var(--mono);font-size:11.4px;font-variant-numeric:tabular-nums}
.jk-d.up{color:var(--good)} .jk-d.dn{color:var(--sev2)}

/* 8 ─ 새 부품 ② 결론 한 줄 — 표를 읽기 전에 무엇을 봐야 하는지 먼저 말한다 */
.jk-lead{font-size:13.4px;line-height:1.6;color:var(--slate);background:var(--sky-soft);
  border-radius:12px;padding:11px 15px;margin:0 0 14px}
.jk-lead b{color:var(--accent-ink);font-weight:700}

/* 9 ─ 새 부품 ③ 큰 지표 한 장 (「지표」 안) */
.jk-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;margin:0 0 14px}
.jk-big{background:linear-gradient(180deg,var(--sky-soft),var(--surface));border:1px solid var(--line);
  border-radius:14px;padding:17px 19px}
.jk-big .l{font-size:11.5px;color:var(--muted)}
.jk-big .v{font-family:var(--mono);font-size:clamp(38px,5vw,52px);font-weight:600;letter-spacing:-.045em;
  line-height:1.05;margin:2px 0 3px;color:var(--accent-ink);font-variant-numeric:tabular-nums}
.jk-big .say{font-size:12.8px;color:var(--slate);margin:11px 0 0;line-height:1.6}
.jk-scale{display:flex;justify-content:space-between;font-size:10.8px;color:var(--faint);margin-top:6px}
.jk-cells{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.jk-cell{border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--surface);min-width:0}
.jk-cell .l{font-size:10.8px;color:var(--muted)}
.jk-cell b{font-family:var(--mono);font-size:19px;font-weight:600;display:block;line-height:1.25;margin:1px 0 4px;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.jk-cell .d{font-size:10.8px;color:var(--faint);line-height:1.45}
@media (max-width:900px){.jk-hero{grid-template-columns:1fr}}
/* 자료 정리 규칙 — 2026-09-20 */
.vphint{display:flex;align-items:center;gap:8px;margin:8px 0 10px;padding:8px 10px;border-radius:8px;
  background:var(--soft,rgba(37,99,235,.06));border:1px solid var(--line,rgba(0,0,0,.08));font-size:12px;line-height:1.5}
.vphint .vpi{flex:none;font-weight:700;font-size:11px;padding:2px 7px;border-radius:999px;background:var(--pri,#2563eb);color:#fff}
.vphint > span:nth-child(2){flex:1;min-width:0}
.vphint code{padding:1px 5px;border-radius:4px;background:rgba(127,127,127,.16);font-size:11px}
.vphint a{flex:none;white-space:nowrap}
.vpovl{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.vpbox{background:var(--bg,#fff);color:inherit;border-radius:14px;padding:18px;max-width:440px;width:100%;
  max-height:86vh;overflow:auto;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.vpbox.vpwide{max-width:620px}
.vpbox h3{margin:0 0 4px;font-size:16px}
.vpbox h4{margin:14px 0 4px;font-size:13px}
.vpbox ul{margin:4px 0 0;padding-left:18px}.vpbox li{margin:3px 0}
.vpbox code{padding:1px 5px;border-radius:4px;background:rgba(127,127,127,.16);font-size:11px}
.vplist{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.vpopt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;cursor:pointer;
  padding:9px 12px;border-radius:9px;border:1px solid var(--line,rgba(0,0,0,.12));background:transparent;color:inherit;font:inherit}
.vpopt:hover{border-color:var(--pri,#2563eb);background:var(--soft,rgba(37,99,235,.07))}
.vpopt b{font-size:13px}.vpopt span{font-size:11px;opacity:.7}
.vpopt.vppri{border-color:var(--pri,#2563eb);background:var(--soft,rgba(37,99,235,.09))}
.vpopt.vpetc{opacity:.65}
.vpex{margin:8px 0 0;padding-left:18px;font-size:11px}
.vpfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
@media(max-width:560px){.vphint{flex-wrap:wrap}.vphint a{width:100%}}
/* 규칙 css 끝 */
/* v-154 초안 방식 — [도우미 초안 만들기 ▾] · ⚙ 내 설정 */
.cmgo-wrap{position:relative;display:inline-flex;align-items:stretch}
.cmgo-wrap #cm-go{border-top-right-radius:0;border-bottom-right-radius:0}
.cmgo-wrap .cmgo-dd{border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgba(255,255,255,.45);padding:0 9px;min-width:0}
.cmgo-sub{font-weight:600;opacity:.92}
.cmgo-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:70;width:min(340px,86vw);background:var(--surface,#fff);border:1px solid var(--line-2,#d9e5f5);border-radius:12px;box-shadow:0 12px 30px rgba(16,38,72,.18);padding:6px}
.cmgo-h{font-size:11.5px;color:var(--ink-3,#6b7a90);padding:6px 8px 4px}
.cmgo-it{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:0;border-radius:9px;padding:8px 10px;cursor:pointer;color:inherit}
.cmgo-it:hover,.cmgo-it.on{background:var(--sky-soft,#f3f8ff)}
.cmgo-n{display:flex;align-items:center;gap:6px;font-size:13px}
.cmgo-n .pill{font-size:10.5px;padding:1px 6px}
.cmgo-s{font-size:12px;color:var(--ink-2,#3b4a60)}
.cmgo-m{font-size:11.5px;color:var(--ink-3,#6b7a90)}
.cmgo-set{display:block;width:100%;text-align:left;margin-top:4px;border:0;border-top:1px solid var(--line,#e6edf7);background:none;padding:9px 10px 6px;font-size:12.5px;color:var(--accent);cursor:pointer}
.cmpf-r{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1.5px solid var(--line,#e6edf7);border-radius:11px;margin-bottom:8px;cursor:pointer}
.cmpf-r.on{border-color:var(--accent);background:var(--accent-soft)}
.cmpf-r input{margin-top:3px}
.cmpf-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.cmpf-t b{font-size:13.5px}
.cmpf-s{font-size:12.5px;color:var(--ink-2,#3b4a60)}
.cmpf-m{font-size:12px;color:var(--ink-3,#6b7a90)}
.cmpf-d{font-size:11.5px;color:var(--ink-3,#6b7a90)}
/* v-155 카톡 응대 「살펴볼 답」 */
.ka-rc-note{margin:0 0 10px;line-height:1.6}
.ka-rc .pill{margin:0 4px 4px 0}
.ka-rc-why{font-size:12.5px;color:var(--ink-2,#3b4a60);margin-top:2px}
.ka-rc-fix{font-size:12px;color:var(--accent);margin-top:3px}
tr.ka-rc2 td{background:rgba(180,35,24,.045)}
/* v-155b 날씨 — 기상청 답 자세히 · 지난 자료 */
.wx-pill.stale{opacity:.78}
.wx-diag{margin:8px 0 4px;max-height:300px;overflow:auto;border-top:1px solid var(--line,#e5e9f0);padding-top:6px}
.wx-diag .wx-dt{font-size:12px;width:100%}
.wx-diag .wx-dt td,.wx-diag .wx-dt th{padding:4px 6px;vertical-align:top}
.wx-diag .wx-dt tr.bad td:first-child{color:var(--sev3,#c2410c)}
.wx-diag .wx-dt tr.pk td{padding-top:0;border-top:0}
.wx-diag code{display:block;white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.35;opacity:.85}
