/* MK Archive 웹 공통 스타일 — 청록 강조 · 17.3판부터 밝게/어둡게 (html[data-theme] — 사이드바 아래 단추, 브라우저에 'mk.theme' 으로 기억)
   색은 모두 아래 색 이름(토큰)으로만 씀 — 밝은 값은 :root, 어두운 값은 html[data-theme="dark"] */
:root{
  color-scheme:light;
  --canvas:#F5F6F4; --surface:#FFFFFF; --surface-2:#F8F9F8; --surface-3:#F1F2F1; --field:#FFFFFF; --ink:#17191D;
  --ink-2:#3F4753; --muted:#7A828D; --muted-2:#A3AAB3; --ink-hover:#000000; --line:#E3E6EA; --line-2:#EEF0F3;
  --line-strong:#D1D5DB; --on-ink:#FFFFFF; --on-accent:#FFFFFF; --on-warn:#FFFFFF; --on-bad:#FFFFFF; --float:#17191D;
  --on-float:#FFFFFF; --accent:#0F766E; --accent-soft:#E4F2F0; --accent-soft-2:#D5ECE8; --accent-ink:#0B5B55; --accent-line:#BFE0DA;
  --warn:#B45309; --warn-soft:#FEF3C7; --warn-soft-2:#FFFBEB; --warn-ink:#8A5A00; --warn-line:#F3E2B3; --mark:#FEF08A;
  --bad:#DC2626; --bad-soft:#FEE2E2; --bad-soft-2:#FFF7F7; --bad-ink:#991B1B; --bad-line:#F5B5B5; --bad-hover:#B91C1C;
  --ok:#059669; --ok-soft:#DCFCE7; --ok-soft-2:#F1F7F2; --ok-ink:#047857; --ok-line:#A7E3C6; --blue-soft:#E8F0FE;
  --blue-ink:#1D4ED8; --blue-line:#C7D7FB; --violet-soft:#F1EAFE; --violet-ink:#6D28D9; --violet-line:#DED3F5; --orange-soft:#FFF1E6;
  --orange-ink:#C2410C; --orange-line:#FED7AA; --pink-soft:#FCE7F3; --pink-ink:#9D174D; --cyan-soft:#CFFAFE; --cyan-ink:#155E75;
  --slate-soft:#EEF2F6; --slate-ink:#334155; --all-c:#17191D; --kt:#2A2A2A; --chart-bar:#A7D9D0;
  --rail:232px; --r:12px;
  --sans:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic','Segoe UI',sans-serif;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --canvas:#111416; --surface:#181C1F; --surface-2:#1E2327; --surface-3:#232A2F; --field:#1E2327; --ink:#E6EAEC;
  --ink-2:#BAC2C8; --muted:#8B959D; --muted-2:#6E7A83; --ink-hover:#FFFFFF; --line:#2A3136; --line-2:#21272B;
  --line-strong:#3A444B; --on-ink:#111416; --on-accent:#06201C; --on-warn:#2A1B05; --on-bad:#2B0B0B; --float:#2A3237;
  --on-float:#E6EAEC; --accent:#3BB3A3; --accent-soft:#163430; --accent-soft-2:#1C4440; --accent-ink:#86DCCF; --accent-line:#2C5C55;
  --warn:#F2B35C; --warn-soft:#352A16; --warn-soft-2:#2B2416; --warn-ink:#F2C27A; --warn-line:#5A4520; --mark:#5A4A12;
  --bad:#F27D7D; --bad-soft:#3A1D1D; --bad-soft-2:#2E1B1B; --bad-ink:#F7A3A3; --bad-line:#5A2B2B; --bad-hover:#F59A9A;
  --ok:#3CCB97; --ok-soft:#15302A; --ok-soft-2:#172520; --ok-ink:#86E0B5; --ok-line:#24533F; --blue-soft:#1B2740;
  --blue-ink:#9DB8F7; --blue-line:#2D3E66; --violet-soft:#2B2340; --violet-ink:#C4B1FA; --violet-line:#43385E; --orange-soft:#35251A;
  --orange-ink:#F5A86E; --orange-line:#5C3A20; --pink-soft:#3A1F2E; --pink-ink:#F29BC4; --cyan-soft:#15333A; --cyan-ink:#7FD8EA;
  --slate-soft:#252C33; --slate-ink:#C3CCD5; --all-c:#6B7783; --kt:#C9CED3; --chart-bar:#2F6E66;
}
/* 어두운 화면에서만 다르게: 로고는 청록 · 글 속 코드 상자는 더 깊게 · 창 뒤 가림막은 더 짙게 */
html[data-theme="dark"] .brand .mark,html[data-theme="dark"] .staffbar .mark{background:var(--accent);color:var(--on-accent)}
html[data-theme="dark"] .mdv pre{background:#0A0D0F}
html[data-theme="dark"] .mk-dlg-back{background:rgba(0,0,0,.6)}

*{box-sizing:border-box} html,body{height:100%}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none} button{font:inherit;cursor:pointer}
svg.i{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

#app{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100vh}
/* 별도 창(팝업)으로 열렸을 때: 사이드바 숨기고 문서만 */
body.solo #app{grid-template-columns:1fr}
body.solo .rail{display:none}
body.solo .page{padding-top:18px}
.rail{position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px;overflow-y:auto;scrollbar-width:thin}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}
.brand .mark{width:32px;height:32px;border-radius:9px;background:var(--ink);color:var(--on-ink);display:grid;place-items:center;font-weight:800;font-size:12px}
.brand b{font-size:15px;font-weight:700;letter-spacing:-.01em;display:block}
.brand small{color:var(--muted);font-size:11.5px}
.nav a{display:flex;align-items:center;gap:10px;padding:10px;border-radius:9px;color:var(--ink-2);font-weight:500;margin-bottom:2px}
.nav a:hover{background:var(--line-2)} .nav a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.nav a .cnt{margin-left:auto;font-size:12px;color:var(--muted)}
.nav .sub{display:flex;flex-direction:column;margin:-2px 0 4px 26px;border-left:1px solid var(--line-2);padding-left:6px}
.nav .sub a{height:28px;font-size:12.5px;font-weight:500;padding:0 8px;gap:8px;color:var(--ink-2)} .nav .sub a .dot{width:7px;height:7px;border-radius:50%;flex:none} .nav .sub a .cnt{font-size:11px}
.nav .sub a.add{color:var(--muted);font-size:12px} .nav .sub a.add .i{width:12px;height:12px}
.nav a .wait{margin-left:auto;font-size:11px;color:var(--warn);background:var(--warn-soft);border-radius:5px;padding:1px 6px;font-weight:600}
.rail .foot{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;font-size:12px;color:var(--muted)}
.rail .foot .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}
.dot.ok{background:var(--ok)} .dot.bad{background:var(--bad)}

.main{min-width:0;display:flex;flex-direction:column}
.page{padding:28px 32px 56px;max-width:none}                 /* 15.4판: 모든 화면을 화면 끝까지 (전에는 1,280px 에서 잘림) */
h1{font-size:23px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.lead{color:var(--muted);margin:0 0 24px}
h2{font-size:15px;font-weight:600;margin:0 0 14px}

.pagehd{display:flex;align-items:flex-start;gap:20px;margin-bottom:6px}
.pagehd>div:first-child{min-width:0;flex:1}
.pagehd .btn{flex:none;margin-top:4px}
@media (max-width:820px){ .pagehd{flex-direction:column;gap:10px} .pagehd .btn{margin-top:0} }

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:24px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px}
.card .v{font-size:24px;font-weight:700;letter-spacing:-.02em}
.card .k{color:var(--muted);font-size:12.5px;margin-top:2px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:18px}
.panel .hd{display:flex;align-items:center;margin-bottom:14px} .panel .hd h2{margin:0} .panel .hd .sp{flex:1}

.btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-weight:600}
.btn:hover{background:var(--line-2)} .btn.pri{background:var(--ink);color:var(--on-ink);border-color:var(--ink)} .btn.pri:hover{background:var(--ink-hover)}
.btn.sm{height:30px;padding:0 11px;font-size:12.5px;font-weight:500}
.btn:disabled{opacity:.5;cursor:default}
.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:500}
.chip.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.chip i.dot{width:8px;height:8px;border-radius:50%;display:inline-block}

table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 10px;border-bottom:1px solid var(--line-2);vertical-align:middle}
td.r,th.r{text-align:right} .muted{color:var(--muted)}
.tag{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px}
.tag.ok{background:var(--accent-soft);color:var(--accent-ink)} .tag.warn{background:var(--warn-soft);color:var(--warn)}
.tag.bad{background:var(--bad-soft);color:var(--bad)} .tag.gray{background:var(--line-2);color:var(--ink-2)}

form .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--muted);font-weight:600}
input,select{height:38px;border:1px solid var(--line);border-radius:9px;padding:0 11px;background:var(--field);color:var(--ink);font:inherit;font-size:13.5px;width:100%}
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.hint{font-size:12.5px;color:var(--muted);line-height:1.75;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line-2)}
.msg{margin-top:12px;font-size:13px;font-weight:600} .msg.ok{color:var(--ok)} .msg.bad{color:var(--bad)}

.drop{border:2px dashed var(--line);border-radius:var(--r);background:var(--surface);padding:44px 20px;text-align:center;transition:.15s}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.drop svg{width:34px;height:34px;color:var(--muted);margin-bottom:10px}
.drop b{display:block;font-size:15px;margin-bottom:4px} .drop span{color:var(--muted);font-size:13px}
.filelist{margin-top:14px;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}
.filelist div{display:flex;gap:10px;align-items:center;font-size:13px;padding:7px 10px;background:var(--canvas);border-radius:8px}
.filelist div .x{margin-left:auto;color:var(--muted);cursor:pointer}
.bar{height:6px;background:var(--line-2);border-radius:4px;overflow:hidden;margin:14px 0}
.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}
.empty{padding:48px 20px;text-align:center;color:var(--muted)}
.wait-box{background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--r);padding:18px 20px;color:var(--warn-ink);margin-bottom:18px}
.wait-box b{display:block;margin-bottom:6px;font-size:14.5px}
.steps{margin:10px 0 0;padding-left:18px;line-height:1.9;font-size:13px}
details{margin-top:10px} summary{cursor:pointer;font-weight:600;color:var(--accent-ink);font-size:13px}
@media (max-width:900px){ #app{grid-template-columns:1fr} .rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;gap:6px}
  .rail .brand{width:100%} .nav{display:flex;gap:6px;flex-wrap:wrap} .nav a{padding:8px 12px} .rail .foot{width:100%}
  .page{padding:20px 16px 40px} form .grid{grid-template-columns:1fr} }

/* ───────── 5판: 로그인 */
.login-body{display:grid;place-items:center;min-height:100vh;background:var(--canvas)}
.login-card{width:360px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 28px 22px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.login-card .hint{border-top:none;padding-top:0}

/* ───────── 5판: 편지함 */
.page.wide{max-width:none}
.card{display:block;color:inherit} a.card:hover{border-color:var(--accent)}
.nav a .cnt{margin-left:auto;font-size:11.5px;color:var(--accent-ink);background:var(--accent-soft);border-radius:5px;padding:1px 7px;font-weight:700;font-variant-numeric:tabular-nums}   /* 18.5판: 새로 들어온 수 — 또렷하게 */
.mtools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 12px}
.mtools .chips{display:flex;flex-wrap:wrap;gap:6px}
.mtools .chip{height:30px;padding:0 11px;font-size:12.5px} .mtools .chip.sm{height:28px;padding:0 10px;font-size:12px}
.mtools .chip .n{margin-left:2px;font-size:11px;opacity:.65}
.mtools .chip.on .n{opacity:.8}
.mtools .search{display:flex;align-items:center;gap:6px;height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 8px 0 10px;margin-left:auto;min-width:260px}
.mtools .search svg{width:15px;height:15px;color:var(--muted)}
.mtools .search input{height:30px;border:none;padding:0;width:100%;font-size:13px} .mtools .search input:focus{box-shadow:none}
.mtools .search .x{color:var(--muted);font-size:18px;line-height:1;padding:0 4px}
.mailview{display:grid;grid-template-columns:380px minmax(0,1fr);height:calc(100vh - 190px);min-height:480px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.mlist{border-right:1px solid var(--line);overflow:auto;background:var(--surface)}
.mlist .hd{padding:12px 16px 10px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:8px;position:sticky;top:0;background:var(--surface);z-index:1}
.mlist .hd h2{margin:0;font-size:14px;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlist>a{display:block;padding:11px 16px;border-bottom:1px solid var(--line-2)} .mlist>a:hover{background:var(--line-2)} .mlist>a.on{background:var(--accent-soft)}
.mlist .l1{display:flex;gap:7px;align-items:center} .mlist .l1 i.dot{width:8px;height:8px;border-radius:50%;flex:none}
.mlist .l1 b{font-weight:600;font-size:13.5px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .mlist .l1 time{font-size:11.5px;color:var(--muted);flex:none}
.mlist .l2{font-size:13.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlist .l3{font-size:12.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:6px;align-items:center}
.mlist .pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px}
.mlist .empty{padding:56px 24px}
.mread{overflow:auto;padding:22px 30px 40px;min-width:0}
.mread .mnav{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px} .mread .mnav .btn{white-space:nowrap} .mread .mnav .sp{flex:1} .mread .mnav .back{display:none}
.mread h1{font-size:19px;margin:0 0 14px;line-height:1.4;word-break:break-word}
.mread .from{display:flex;gap:12px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:18px}
.mread .from .avatar{width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--on-ink);display:grid;place-items:center;font-weight:700;flex:none}
.mread .from .who{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px} .mread .from .who b{font-weight:600;word-break:break-all} .mread .from .who span{font-size:12.5px;color:var(--muted);word-break:break-all}
.mread .from time{font-size:12.5px;color:var(--muted);flex:none}
.mread .body{font-size:14.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word;max-width:78ch}
.mread .body a{color:var(--accent-ink);text-decoration:underline}
.mread .att{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.fcard{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px;min-width:250px;max-width:360px}
.fcard .ico{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;flex:none;font-size:10px;font-weight:800;color:#fff;background:#6B7280}
.fcard .ico.img{background:#0F766E} .fcard .ico.xls{background:#107C41} .fcard .ico.pdf{background:#D93025} .fcard .ico.doc{background:#2B579A} .fcard .ico.zip{background:#B45309} .fcard .ico.eml{background:#4B5EF7}
.fcard .t{flex:1;min-width:0} .fcard .t b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .fcard .t span{color:var(--muted);font-size:11.5px}
.fcard .acts{display:flex;gap:5px} .fcard .acts a{height:26px;padding:0 8px;border-radius:7px;border:1px solid var(--line);font-size:12px;font-weight:500;background:var(--surface);display:inline-flex;align-items:center} .fcard .acts a:hover{background:var(--line-2)}
@media (max-width:900px){
  .mailview{grid-template-columns:1fr;height:auto;min-height:0}
  .mailview.list .mread{display:none} .mailview.read .mlist{display:none}
  .mread{padding:16px 14px 60px} .mread .mnav .back{display:inline-flex}
  .mtools .search{margin-left:0;width:100%}
}

.sel-sm{height:28px;padding:0 6px;font-size:12px;width:auto;border-radius:7px}

/* ───────── 6판: 지표 */
.monthpick{display:flex;align-items:center;gap:6px;flex:none;margin-top:2px}
.cards.kpi .card .v small{font-size:13px;font-weight:600;color:var(--muted);margin-left:3px}
.cards.kpi .card .k{margin:0 0 4px} .cards.kpi .card .delta{font-size:12px;color:var(--muted);margin-top:6px}
.delta .up{color:var(--ok);font-weight:600} .delta .down{color:var(--bad);font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start} .grid2>div>.panel:last-child{margin-bottom:0}
@media (max-width:900px){.grid2{grid-template-columns:1fr}}
.chart{display:block}
table.bars td{padding:6px 8px;border-bottom:none;white-space:nowrap} table.bars td.lbl{width:34%;overflow:hidden;text-overflow:ellipsis;max-width:180px}
table.bars td.gauge{width:46%} table.bars td.gauge i{display:block;height:10px;border-radius:5px;min-width:2px;background:var(--accent)}
table.bars td.num{font-weight:600}
.cards.kpi .card .delta{white-space:nowrap}

/* ───────── 6판: MK Universe */
body.ubody{background:#0B1015;overflow:hidden}
.univ{position:relative;height:100vh;background:linear-gradient(180deg,#0B1015 0%,#121A21 60%,#0E1419 100%);overflow:hidden;touch-action:none;overscroll-behavior:none}
.univ canvas{display:block;position:absolute;inset:0;touch-action:none}
.uhd{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:14px 18px;pointer-events:none;transition:opacity .6s}
.uhd>*{pointer-events:auto} .uhd h2{margin:0;font-size:15px;font-weight:700;color:#F2F5F7;white-space:nowrap} .uhd .sub{font-size:12.5px;color:#93A1AE;white-space:nowrap}
.uhd .sp{flex:1}
.uhd .chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#D7DEE5} .uhd .chip.on{background:#F2F5F7;color:#0B1015;border-color:#F2F5F7}
.uhd .btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#D7DEE5} .uhd .btn:hover{background:rgba(255,255,255,.14)}
.uhd .btn.spin.on{border-color:#5FD3C4;color:#BFF3EC;background:rgba(95,211,196,.14)}
.uhd .btn.live{border-color:#22C55E;color:#BBF7D0;background:rgba(34,197,94,.14);cursor:default} .uhd .btn.live i{width:7px;height:7px;border-radius:50%;background:#22C55E;display:inline-block;animation:blink 1.2s infinite}
.uhd .uback{width:36px;padding:0;justify-content:center}
@keyframes blink{50%{opacity:.25}}
.ulegend{position:absolute;left:18px;bottom:18px;z-index:3;color:#93A1AE;font-size:12px;line-height:1.9;transition:opacity .6s}
.ulegend i{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:-1px;margin-right:7px}
.ufeed{position:absolute;right:18px;bottom:18px;z-index:2;width:330px;transition:opacity .2s;display:flex;flex-direction:column;gap:8px}
.univ.panelopen .ufeed{opacity:0;pointer-events:none}
.ufeed .card{background:rgba(18,26,33,.86);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-left:3px solid #22C55E;border-radius:10px;padding:10px 13px;color:#E6EBF0;font-size:13px}
.ufeed .card b{font-weight:600} .ufeed .card small{display:block;color:#93A1AE;font-size:11.5px;margin-top:3px}
.upanel{position:absolute;right:18px;top:64px;z-index:4;width:340px;max-height:calc(100% - 100px);overflow:auto;background:rgba(18,26,33,.92);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;color:#E6EBF0}
.upanel .crumb{font-size:11.5px;color:#7E8C99;margin-bottom:6px;padding-right:28px}
.upanel h3{margin:0 0 3px;font-size:15px} .upanel .meta{color:#93A1AE;font-size:12.5px;margin-bottom:12px;line-height:1.6}
.upanel .btn{width:100%;justify-content:center;margin-top:8px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#E6EBF0}
.upanel .x{position:absolute;right:10px;top:10px;color:#93A1AE;background:none;border:none}
.upanel .ubadge{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.35);border-radius:10px;padding:10px 12px;margin-bottom:14px}
.upanel .ubadge b{color:#86EFAC;font-size:13px} .upanel .ubadge>span{color:#93A1AE;font-size:11.5px;margin-left:6px}
.upanel .ubadge p{margin:7px 0 0;font-size:12.5px;color:#D7DEE5;line-height:1.5}
.upanel .usum{margin-bottom:13px} .upanel .usum h4{margin:0 0 4px;font-size:12px;color:#8FA0AF;font-weight:600}
.upanel .usum p{margin:0;font-size:13px;line-height:1.65;color:#DDE4EA}
.upanel .urooms{display:flex;flex-wrap:wrap;gap:5px} .upanel .urooms span{background:rgba(255,255,255,.07);border-radius:5px;padding:2px 7px;font-size:11.5px;color:#C3CCD5}
.upanel .unote{font-size:11.5px;color:#7E8C99;line-height:1.6;border-top:1px solid rgba(255,255,255,.08);padding-top:10px;margin-top:10px}
.utip{position:absolute;z-index:3;pointer-events:none;background:rgba(11,16,21,.92);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:6px 9px;color:#E6EBF0;font-size:12.5px;white-space:nowrap;transform:translate(-50%,-140%)}
.uclose{display:none;position:absolute;right:12px;bottom:12px;z-index:5;height:38px;padding:0 14px;border-radius:999px;background:rgba(18,26,33,.9);border:1px solid rgba(255,255,255,.14);color:#E6EBF0;align-items:center;gap:7px;font-weight:600}
.uintro{position:absolute;inset:0;z-index:6;display:grid;place-items:center;text-align:center;color:#F2F5F7;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(11,16,21,0) 0,rgba(11,16,21,.85) 70%);animation:introOut .6s 1.9s forwards}
.uintro>*{margin:0} .uintro h1{font-size:42px;font-weight:800;letter-spacing:-.03em;margin-bottom:8px;animation:fadeUp .7s .1s both}
.uintro p{color:#93A1AE;font-size:14px;animation:fadeUp .7s .3s both} .uintro .bar{width:220px;height:3px;background:rgba(255,255,255,.12);border-radius:2px;margin:18px auto 10px;overflow:hidden}
.uintro .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0F766E,#5FD3C4);animation:grow 1.9s .45s cubic-bezier(.4,0,.2,1) forwards}
.uintro .load{color:#6E8093;font-size:12.5px;animation:fadeUp .6s .85s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}} @keyframes grow{to{width:100%}} @keyframes introOut{to{opacity:0;visibility:hidden}}
.univ.intro .uhd,.univ.intro .ulegend,.univ.intro .ufeed{opacity:0;pointer-events:none}
@media (max-width:820px){
  .uintro h1{font-size:34px}
  .ufeed{width:auto;left:12px;right:12px;bottom:16px} .upanel{left:12px;right:12px;width:auto;top:auto;bottom:12px;max-height:52%} .ulegend{display:none}
  .uhd{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:8px;padding:10px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none} .uhd::-webkit-scrollbar{display:none}
  .uhd .btn,.uhd .chip{flex:none;height:32px;font-size:12.5px} .uhd>div{flex:none} .uhd h2{font-size:14px} .uhd .sub{display:none}
  .uclose{display:inline-flex}
}
.nav a.uni{color:var(--accent)} .nav a.uni .i{color:var(--accent)} .nav a.uni.jv.on{background:var(--accent-soft)}   /* 18.5판: 자비스도 MK Universe 처럼 따로 창 */

/* 계정 관리 표 */
.tablewrap{overflow:auto} table.acct{min-width:960px}
table.acct td.st{min-width:170px;max-width:230px} table.acct td.st .tag{white-space:nowrap}
table.acct td.acts{white-space:normal;width:250px} table.acct td.acts .btn{margin:2px 0 2px 4px}
table.acct td .muted{line-height:1.45}

/* 녹음 요약(마크다운) */
.mdbody{font-size:14.5px;line-height:1.75;max-width:78ch} .mdbody h1,.mdbody h2,.mdbody h3{font-size:15px;margin:18px 0 6px} .mdbody h1:first-child,.mdbody h2:first-child{margin-top:0}
.mdbody ul,.mdbody ol{padding-left:20px;margin:6px 0} .mdbody li{margin:2px 0} .mdbody p{margin:0 0 10px} .mdbody code{background:var(--line-2);padding:1px 5px;border-radius:4px;font-size:13px}
.mdbody table{margin:8px 0} .mdbody blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--line);color:var(--ink-2)}

/* ───────── 8판: 사이드바 검색 */
.brand{color:inherit}
.railsearch{position:relative;margin:0 4px 10px}
.railsearch input{height:36px;padding:0 54px 0 34px;font-size:13px;background:var(--canvas);border-radius:9px}
.railsearch svg{position:absolute;left:11px;top:10px;width:16px;height:16px;color:var(--muted)}
.railsearch kbd{position:absolute;right:8px;top:9px;font:10.5px/18px var(--sans);color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 5px;background:var(--surface)}
.nav a.uni .ext{color:var(--muted)}

/* ───────── 8판: 홈 */
.hero{padding:22px 0 26px;max-width:760px}
.hero .eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--accent-ink);margin:0 0 10px}
.hero .hero-h1{font-size:52px;line-height:1.0;letter-spacing:-.03em;font-weight:800;margin:0 0 12px;
  background:linear-gradient(92deg,var(--ink) 0%,var(--ink) 55%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .hero-sub{color:var(--muted);font-size:15px;margin:0 0 20px}
.hero .big{position:relative;margin:0}
.hero .big input{width:100%;height:54px;padding:0 20px 0 50px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:16px;box-shadow:0 1px 2px rgba(23,25,29,.04)}
.hero .big input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}
.hero .big svg{position:absolute;left:18px;top:17px;width:20px;height:20px;color:var(--muted)}
.hero .hints{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}
.hero .hints .chip{height:30px;padding:0 12px;font-size:12.5px}
.chip.dark{background:var(--ink);color:var(--on-ink);border-color:var(--ink)} .chip.dark:hover{background:var(--ink-hover)}
.stats{display:flex;gap:26px;flex-wrap:wrap;padding:18px 0 26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:26px}
.stats>*{display:flex;flex-direction:column;color:inherit} .stats b{font-size:18px;font-weight:700;letter-spacing:-.01em} .stats b:not(.num){font-size:14px;padding-top:3px} .stats span{color:var(--muted);font-size:12.5px}
.stats a:hover b{color:var(--accent-ink)}
.cols{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:28px}
.sec h2{font-size:14px;font-weight:600;margin:0 0 10px;display:flex;align-items:center;gap:8px} .sec h2 a{margin-left:auto;font-weight:500;color:var(--accent-ink);font-size:13px}
.roomrow{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line-2)}
.roomrow:first-of-type{border-top:0}
.roomrow .t{flex:1;min-width:0} .roomrow .t b{display:block;font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .roomrow .t span{display:block;color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roomrow time{color:var(--muted);font-size:12px;flex:none}
.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;color:#fff;flex:none;background:#6B7280}
.filerow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
table.status td a{color:var(--accent-ink);font-weight:600}
@media (max-width:900px){ .hero{padding-top:6px} .hero .hero-h1{font-size:30px} .cols{grid-template-columns:1fr} .filerow{grid-template-columns:repeat(2,1fr)} .stats{gap:18px} }

/* ───────── 8판: 파일 */
.page.full{padding:0;max-width:none}
.files{display:grid;grid-template-columns:240px 1fr 300px;height:100vh;min-height:520px}
.files .side{border-right:1px solid var(--line);background:var(--surface);padding:14px 10px;overflow:auto}
.files .side h3{font-size:12px;font-weight:600;color:var(--muted);margin:14px 8px 6px}
.files .side a{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;font-size:13.5px;color:var(--ink-2)}
.files .side a:hover{background:var(--line-2)} .files .side a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.files .side a .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.files .side a .cnt{margin-left:auto;font-size:12px;color:var(--muted);font-weight:500;flex:none}
.files .side .avatar{width:24px;height:24px;font-size:10px}
.files .center{display:flex;flex-direction:column;min-width:0}
.crumbs{display:flex;align-items:center;gap:6px;padding:16px 22px 0;font-size:14px}
.crumbs a{color:var(--muted)} .crumbs a:hover{color:var(--ink)} .crumbs b{font-weight:700} .crumbs svg{width:14px;height:14px;color:var(--muted)}
.ftools{display:flex;gap:8px;align-items:center;padding:12px 22px;flex-wrap:wrap;margin:0} .ftools .sp{flex:1}
.ftools .chip{height:30px;padding:0 12px;font-size:12.5px} .ftools input,.ftools select{width:auto}
.grid{padding:0 22px 40px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;align-content:start;flex:1}
.month{grid-column:1/-1;font-size:12.5px;color:var(--muted);font-weight:600;padding:8px 0 0}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;text-align:left;color:inherit;display:block}
.tile:hover{border-color:var(--line-strong)} .tile.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.tile .pv{aspect-ratio:4/3;background:var(--surface-3);display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--line-2)} .tile .pv img{width:100%;height:100%;object-fit:cover;display:block}
.tile .nm{padding:9px 11px 2px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile .mt{padding:0 11px 10px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ico{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;font-size:10px;font-weight:800;letter-spacing:0;white-space:nowrap;color:#fff;background:#6B7280}
.ico.img{background:#0F766E} .ico.xls{background:#107C41} .ico.pdf{background:#D93025} .ico.doc{background:#2B579A} .ico.zip{background:#B45309} .ico.audio{background:#BE185D} .ico.etc{background:#6B7280} .ico.eml{background:#4B5EF7}
.detail{border-left:1px solid var(--line);background:var(--surface);padding:18px;overflow:auto}
.detail .back{display:none}
.detail .pv{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--surface-3);display:grid;place-items:center;border:1px solid var(--line-2);margin-bottom:14px} .detail .pv img{width:100%;height:100%;object-fit:cover}
.detail h3{font-size:15px;margin:0 0 12px;word-break:break-all}
.kv{display:grid;grid-template-columns:72px 1fr;gap:7px 10px;font-size:13px} .kv span{color:var(--muted)} .kv>div{min-width:0;word-break:break-word}
.detail .acts{display:flex;flex-direction:column;gap:8px;margin-top:16px} .detail .acts .btn{justify-content:center}
.detail .ctx{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)} .detail .ctx h4{margin:0 0 8px;font-size:12.5px;color:var(--muted);font-weight:600}
.detail .ctx p{margin:0 0 6px;font-size:12.5px;color:var(--ink-2);white-space:pre-wrap;word-break:break-word} .detail .ctx p b{font-weight:600;color:var(--ink)}
@media (max-width:1100px){ .files{grid-template-columns:200px 1fr 260px} }
@media (max-width:900px){
  .files{grid-template-columns:1fr;height:auto;min-height:0} .files .side{border-right:0;border-bottom:1px solid var(--line);max-height:180px}
  .files .side h3{display:inline-block;margin:6px 8px} .files .side a{display:inline-flex;padding:5px 9px}
  .detail{border-left:0;border-top:1px solid var(--line)} .files.hasdetail .side,.files.hasdetail .center{display:none} .files.hasdetail .detail .back{display:inline-flex}
  .grid{padding:0 14px 30px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))} .crumbs,.ftools{padding-left:14px;padding-right:14px}
}

/* ───────── 8판: 통합 검색 */
.search-big{position:relative;display:flex;gap:8px;align-items:center;margin:0 0 22px;max-width:760px}
.search-big input{height:46px;padding:0 14px 0 44px;font-size:15px;border-radius:11px}
.search-big svg{position:absolute;left:14px;top:14px;width:18px;height:18px;color:var(--muted)}
.search-big .btn{height:46px;border-radius:11px;flex:none}
.sresults{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;align-items:start} .sresults .col{display:flex;flex-direction:column;gap:20px;min-width:0}
.sresults section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;min-width:0}
.sresults h2{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 8px}
.src{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:5px}
.src.chat{background:#F7DD3C;color:#3B3200} .src.mail{background:var(--blue-soft);color:var(--blue-ink)} .src.file{background:var(--accent-soft);color:var(--accent-ink)} .src.plaud{background:var(--pink-soft);color:var(--pink-ink)} .src.call{background:var(--violet-soft);color:var(--violet-ink)} .src.sms{background:var(--cyan-soft);color:var(--cyan-ink)}
.srow{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line-2);color:inherit} .srow:first-of-type{border-top:0}
.srow .t{flex:1;min-width:0} .srow .l1{display:flex;gap:8px;align-items:baseline;font-size:13px} .srow .l1 b{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .srow .l1 time{margin-left:auto;color:var(--muted);font-size:11.5px;flex:none}
.srow p{margin:2px 0 0;font-size:13px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.srow:hover .l1 b{color:var(--accent-ink)}
mark{background:var(--mark);color:inherit;padding:0 1px;border-radius:2px}
@media (max-width:900px){ .sresults{grid-template-columns:1fr} }
/* 18.4판: 찾기 — 낱말로 · 뜻으로 */
.seg a.sg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-decoration:none;color:var(--ink-2);font-size:13px;font-weight:600;padding:4px 10px;line-height:1.2}
.seg a.sg small{font-size:11px;font-weight:500;color:var(--muted)} .seg a.sg+a.sg{border-left:1px solid var(--line)}
.seg a.sg.on{background:var(--ink);color:var(--on-ink)} .seg a.sg.on small{color:var(--on-ink);opacity:.75}
.seg:has(a.sg){height:auto;min-height:44px;max-width:520px}
.sresults.one{grid-template-columns:1fr;max-width:860px}
.srow.mn .t .l1 .score{margin-left:auto;font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--muted);background:var(--canvas);border-radius:5px;padding:1px 6px}
.srow.mn .mn-text{white-space:pre-wrap;color:var(--ink-2);font-size:12.5px;line-height:1.55;max-height:7.8em;overflow:hidden}

/* ───────── 8판: 사진 크게 보기 */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(11,16,21,.92);display:grid;place-items:center;padding:40px}
.lightbox[hidden]{display:none}
.lightbox img{max-width:100%;max-height:calc(100vh - 110px);border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);object-fit:contain}
.lightbox .x{position:absolute;right:16px;top:12px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-size:24px;line-height:1}
.lightbox .dl{position:absolute;left:16px;top:14px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.lightbox .cap{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#D7DEE5;font-size:13px;padding:0 20px;word-break:break-all}

/* ───────── 8판: 매장 구분 */
.glist{display:flex;flex-direction:column;gap:6px}
.gitem{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;background:var(--canvas)}
.gitem.add{background:transparent;border:1px dashed var(--line);margin-top:4px}
.gitem .gname{height:32px;max-width:220px;font-weight:600} .gitem .gcolor{width:34px;height:32px;padding:2px;border-radius:7px;cursor:pointer}
.bulk{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:var(--canvas);border-radius:9px;margin-bottom:10px;font-size:13px}
table.stores td{padding:7px 10px} table.stores .gsel{max-width:220px}
.gdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.chip.sm{height:28px;padding:0 10px;font-size:12px} .chip .n{margin-left:2px;font-size:11px;opacity:.65}

/* ───────── 8판: NAS 상태 */
.nasstat{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:16px}
.nasstat>div{background:var(--canvas);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.nasstat b{font-size:17px;font-weight:700} .nasstat b small{font-size:12px;font-weight:600;color:var(--muted)} .nasstat span{font-size:12.5px;color:var(--muted)}

/* ───────── 8판: 계정 수정 대화창 */
.dlg{border:1px solid var(--line);border-radius:16px;padding:22px 24px;width:720px;max-width:calc(100vw - 32px);box-shadow:0 20px 60px rgba(0,0,0,.18);background:var(--surface);color:var(--ink)}
.dlg::backdrop{background:rgba(11,16,21,.45)}
.dlg .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
@media (max-width:820px){.dlg .grid{grid-template-columns:1fr} .dlg{padding:16px}}

/* ───────── 10판: 문자 (말풍선) */
.smsview .mlist .l1 .avatar{width:28px;height:28px;font-size:11px}
.smsview .mread{background:var(--surface-2);display:flex;flex-direction:column;position:relative}
.smsview .mread .from{background:var(--surface);margin:-22px -30px 16px;padding:14px 24px;border-bottom:1px solid var(--line)}
.smsview .mread .avatar.big{width:44px;height:44px;font-size:16px;border-radius:50%}
.thread{display:flex;flex-direction:column;gap:6px;max-width:820px;width:100%;margin:0 auto;padding-bottom:20px}
.daysep{display:flex;align-items:center;gap:12px;margin:18px 0 10px;color:var(--muted);font-size:11.5px;font-weight:600}
.daysep::before,.daysep::after{content:"";flex:1;height:1px;background:var(--line)}
.bub{display:flex;flex-direction:column;max-width:72%;align-items:flex-start}
.bub.out{align-self:flex-end;align-items:flex-end}
.bub .bb{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:9px 13px;font-size:14px;line-height:1.6;word-break:break-word;box-shadow:0 1px 1px rgba(0,0,0,.02)}
.bub.out .bb{background:var(--accent);border-color:var(--accent);color:var(--on-accent);border-radius:16px 16px 4px 16px}
.bub .bb .txt{white-space:pre-wrap}
.bub .bb .subj{display:block;font-weight:700;margin-bottom:3px}
.bub .bb mark{background:var(--mark);color:var(--ink);border-radius:3px;padding:0 2px}
.bub.out .bb mark{background:var(--mark)}
.bub time{font-size:11px;color:var(--muted);margin:3px 6px 0}
.bub.hit .bb{box-shadow:0 0 0 3px var(--mark)}
.bub.draft .bb{background:var(--surface);color:var(--ink-2);border:1px dashed var(--muted)}
.bub .pic{display:block;margin:-4px -8px 6px;border-radius:12px;overflow:hidden;max-width:320px}
.bub .pic img{display:block;width:100%;max-height:360px;object-fit:cover}
.bub .bb .fcard{margin:2px 0 6px;min-width:200px;max-width:300px}
.bub.out .bb .fcard{color:var(--ink)}
.bub .bb .fcard .t b{white-space:normal}
@media (max-width:900px){ .bub{max-width:88%} }

/* ───────── 10판: 카톡 대화 — 데모와 같은 짜임 (방 목록 284px | 타임라인, 날짜는 왼쪽 여백에) */
.chatview{display:grid;grid-template-columns:var(--rl-w,400px) minmax(0,1fr);height:100vh;background:var(--canvas)}   /* 16.3판: 목록 284 → 400px · 끌어서 바꿈 */
.roomlist{border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-height:0;position:relative}
.roomlist .hd{padding:14px 14px 10px;border-bottom:1px solid var(--line);margin:0}
.roomlist .hd input{width:100%;height:34px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--canvas);font-size:13px}
.roomlist .lh{display:flex;align-items:center;gap:8px;padding:10px 14px 6px;font-size:12.5px;color:var(--muted)} .roomlist .lh b{color:var(--ink);font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .roomlist .lh a{font-size:18px;line-height:1;color:var(--muted);padding:0 4px}
.roomlist ul{list-style:none;margin:0;padding:6px;overflow:auto;flex:1}
.roomlist li a{display:flex;gap:11px;align-items:center;padding:9px 9px;border-radius:9px}
.roomlist li a:hover{background:var(--line-2)} .roomlist li a.on{background:var(--accent-soft)}
.roomlist li.empty{padding:40px 18px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}
.roomlist .avatar{width:38px;height:38px;font-size:13px}
.roomlist .t{flex:1;min-width:0} .roomlist .t b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roomlist .t span{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roomlist .t span.wrap{white-space:normal;max-height:2.9em;overflow:hidden}
.roomlist .meta{text-align:right;flex:none} .roomlist .meta time{display:block;font-size:11.5px;color:var(--muted)}
.roomlist .meta i{display:inline-block;margin-top:3px;font-style:normal;font-size:11px;font-weight:700;background:var(--ink);color:var(--on-ink);border-radius:999px;padding:1px 6px}
.roomlist .pager{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-top:1px solid var(--line)}
.tl{display:flex;flex-direction:column;min-height:0;min-width:0}
.tl .hd{display:flex;align-items:center;gap:12px;padding:12px 22px;border-bottom:1px solid var(--line);background:var(--surface)}
.tl .hd .back{display:none}
.tl .hd .avatar{width:38px;height:38px;font-size:13px}
.tl .hd h2{margin:0;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .tl .hd .sub{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl .hd .tools{margin-left:auto;display:flex;gap:8px;align-items:center;flex:none;flex-wrap:wrap;justify-content:flex-end}
.tl .hd select{height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 8px;font-size:12.5px;width:auto}
.tl .hd .search{display:flex;align-items:center;gap:6px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 8px 0 10px;min-width:170px}
.tl .hd .search svg{width:14px;height:14px;color:var(--muted)} .tl .hd .search input{height:30px;border:none;padding:0;font-size:12.5px;width:120px} .tl .hd .search input:focus{box-shadow:none}
.tl .body{overflow:auto;padding:10px 22px 40px;flex:1;min-height:0}
.tl .more{text-align:center;margin:10px 0 0}
.tl .empty{padding:60px 20px}
.day{position:relative;padding-left:112px;margin-top:26px}
.day .date{position:sticky;top:0;float:left;margin-left:-112px;width:96px;font-size:12px;color:var(--muted);line-height:1.35;padding-top:4px}
.day .date b{display:block;color:var(--ink-2);font-weight:600;font-size:13px}
.cmsg{display:flex;gap:10px;margin:8px 0;max-width:72%}
.cmsg .avatar{width:32px;height:32px;margin-top:2px;font-size:12px;flex:none}
.cmsg .b{min-width:0} .cmsg .who{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:3px;display:flex;gap:8px;align-items:baseline}
.cmsg .who time{font-weight:500;color:var(--muted);font-size:11.5px}
.bubble{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word;display:inline-block;max-width:100%}
.bubble a{color:var(--accent-ink);text-decoration:underline}
.bubble mark{background:var(--mark);border-radius:3px;padding:0 2px}
.bubble.del{color:var(--muted);background:var(--line-2);border-color:var(--line-2);font-size:13px}
.cmsg.me{margin-left:auto;flex-direction:row-reverse} .cmsg.me .bubble{background:var(--accent-soft);border-color:var(--accent-line)} .cmsg.me .who{justify-content:flex-end} .cmsg.me .b{display:flex;flex-direction:column;align-items:flex-end}
.cmsg.cont{margin-top:-2px} .cmsg.cont .avatar{visibility:hidden;height:0;margin:0} .cmsg.cont .who{display:none}
.sys{text-align:center;color:var(--muted);font-size:12px;margin:14px 0}
.photos{display:grid;gap:4px;grid-template-columns:repeat(3,120px);margin-top:2px} .photos.one{grid-template-columns:240px}
.photos .ph{aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--surface);cursor:zoom-in} .photos .ph img{width:100%;height:100%;object-fit:cover;display:block}
.phwait{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:10px 12px;font-size:13px}
.phwait svg{width:20px;height:20px;color:var(--muted);flex:none} .phwait b{font-weight:600} .phwait span{color:var(--muted);font-size:11.5px;display:block}
.tl .fcard{margin-top:2px;min-width:280px;max-width:420px} .tl .fcard.wait{border-style:dashed}
.tl .fcard .acts{display:flex;gap:6px} .tl .fcard .acts a{height:28px;padding:0 9px;border-radius:7px;border:1px solid var(--line);font-size:12.5px;font-weight:500;background:var(--surface);display:inline-flex;align-items:center;color:var(--ink-2)} .tl .fcard .acts a:hover{background:var(--line-2)}
@media (max-width:900px){
  .chatview{grid-template-columns:1fr;height:auto;min-height:100vh}
  .chatview.list .tl{display:none} .chatview.read .roomlist{display:none}
  .tl .hd .back{display:inline-flex} .tl .hd .tools .btn{display:none}
  .day{padding-left:0} .day .date{float:none;position:static;margin:0 0 6px;width:auto;text-align:center}
  .cmsg{max-width:88%}
}

/* ───────── 11판: AI 업무함 (목록 · 업무 한 건 · 승인 · 부서) */
.nav a .badge{margin-left:auto;font-size:11.5px;color:var(--warn-ink);background:var(--warn-soft);border-radius:5px;padding:1px 7px;font-weight:700;font-variant-numeric:tabular-nums;line-height:19px}   /* 18.5판: 결재 · 승인 수 — 파일 · 메일의 수와 같은 상자 · 색만 노랗게 */
.tag.blue{background:var(--blue-soft);color:var(--blue-ink)} .tag.violet{background:var(--violet-soft);color:var(--violet-ink)} .tag.lg{font-size:12.5px;padding:3px 10px}
.btn.ok{background:var(--accent);border-color:var(--accent);color:var(--on-accent)} .btn.ok:hover{background:var(--accent-ink)}
.btn.danger{color:var(--bad);border-color:var(--bad-line);background:var(--surface)} .btn.danger:hover{background:var(--bad-soft)}
.wk .hdacts{display:flex;gap:8px;flex:none;margin-top:4px}
.wk-flash{display:flex;gap:10px;align-items:center;padding:12px 16px;border-radius:var(--r);margin:0 0 18px;font-weight:600;font-size:13.5px}
.wk-flash.ok{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line)}
.wk-flash.bad{background:var(--bad-soft);color:var(--bad-ink);border:1px solid var(--bad-line)}
.wk-setup{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:40px 36px;text-align:center;max-width:720px;margin:10px auto}
.wk-setup .ico{width:56px;height:56px;border-radius:16px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;margin:0 auto 14px}
.wk-setup .ico .i{width:28px;height:28px}
.wk-setup h2{font-size:18px;margin:0 0 8px} .wk-setup .why{color:var(--warn);font-weight:600;margin:0 0 18px}
.wk-setup .steps{text-align:left;max-width:540px;margin:0 auto;color:var(--ink-2)}

.wk-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:4px 0 22px}
.wk-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:2px;transition:border-color .15s,box-shadow .15s}
.wk-kpi:hover{border-color:var(--line-strong)} .wk-kpi.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.wk-kpi .k{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px;font-weight:600} .wk-kpi .k .i{width:15px;height:15px}
.wk-kpi .v{font-size:26px;font-weight:750;letter-spacing:-.02em;line-height:1.25}
.wk-kpi .s{font-size:12px;color:var(--muted)}
.wk-kpi.hot{background:linear-gradient(180deg,var(--warn-soft-2),var(--surface));border-color:var(--warn-line)} .wk-kpi.hot .v,.wk-kpi.hot .k{color:var(--warn)}
.wk-kpi.hot.on{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn)}

.wk-sec-hd{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;flex-wrap:wrap} .wk-sec-hd h2{margin:0;font-size:14.5px} .wk-sec-hd .muted{font-size:12.5px}
.wk-agents{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}
.wk-agent{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px;position:relative;min-width:0;transition:border-color .15s,box-shadow .15s}
.wk-agent:hover{border-color:var(--line-strong)} .wk-agent.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)} .wk-agent.off{opacity:.55}
.wk-agent .top{display:flex;gap:10px;align-items:center}
.av{width:34px;height:34px;border-radius:10px;color:#fff;display:inline-grid;place-items:center;font-weight:750;font-size:14px;flex:none}
.av.sm{width:22px;height:22px;border-radius:7px;font-size:11px} .av.xs{width:20px;height:20px;border-radius:6px;font-size:10.5px}
.wk-agent .nm{min-width:0;flex:1} .wk-agent .nm b{display:block;font-size:14px} .wk-agent .nm span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-agent .badge,.wk .badge{background:var(--warn);color:var(--on-warn);border-radius:999px;font-size:11.5px;font-weight:700;min-width:22px;height:22px;display:inline-grid;place-items:center;padding:0 6px}
.wk-agent .duty{font-size:12.5px;color:var(--ink-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:37px}
.wk-agent .meta{display:flex;flex-wrap:wrap;gap:5px}
.wk-agent .foot{display:flex;justify-content:space-between;gap:4px 8px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line-2);padding-top:8px;flex-wrap:wrap}
.wk-agent .conn.ok{color:var(--ok);font-weight:600}
.wk-agent .caution{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--warn);font-weight:600} .wk-agent .caution .i{width:13px;height:13px}

.wk-tools .search{min-width:240px}
.wk-qinfo{font-size:12.5px;color:var(--muted);margin:-4px 0 10px} .wk-qinfo a{color:var(--accent-ink);font-weight:600;margin-left:6px}
.wk-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.wk-lh,.wk-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 96px 58px 92px 64px;gap:12px;align-items:center;padding:0 16px}
.wk-lh{height:36px;font-size:11.5px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);background:var(--surface-2)}
.wk-row{padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--line-2);transition:background .1s}
.wk-row:last-child{border-bottom:0} .wk-row:hover{background:var(--surface-2)}
.wk-row.pend{box-shadow:inset 3px 0 0 var(--warn);background:var(--warn-soft-2)} .wk-row.pend:hover{background:var(--warn-soft-2)}
.wk-row .main{min-width:0}
.wk-row .l1{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:3px}
.wk-row .no{font-size:12px;color:var(--muted);font-weight:600}
.wk-row .ttl{display:block;font-weight:650;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-row .snip{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.wk-row .c{font-size:13px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-row .who{display:flex;align-items:center;gap:7px}
.wk-row .sm{font-size:12px}
.wk-empty{padding:56px 20px;text-align:center;color:var(--muted)} .wk-empty .i{width:34px;height:34px;color:var(--muted-2);margin-bottom:8px} .wk-empty b{display:block;color:var(--ink-2);font-size:14.5px;margin-bottom:4px}
.wk-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;font-size:12.5px;color:var(--muted)}
.wk-foot .tag{display:inline-flex;align-items:center;gap:5px} .wk-foot .tag .i{width:13px;height:13px}

.wk-crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin:-6px 0 14px}
.wk-crumbs a{display:inline-flex;align-items:center;gap:4px;color:var(--muted)} .wk-crumbs a:hover{color:var(--ink)} .wk-crumbs .i{width:15px;height:15px} .wk-crumbs b{color:var(--ink);font-weight:600}
.wk-head{margin-bottom:16px} .wk-head .l1{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.wk-head .l1 .tag{display:inline-flex;align-items:center;gap:4px} .wk-head .l1 .tag .i{width:12px;height:12px}
.wk-head .no{color:var(--muted);font-weight:700;font-size:13px}
.wk-head h1{font-size:24px;line-height:1.35;margin:0 0 10px;word-break:keep-all;overflow-wrap:anywhere}
.wk-head .meta{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:13px;color:var(--muted)} .wk-head .meta>span{display:inline-flex;align-items:center;gap:6px} .wk-head .meta b{color:var(--ink);font-weight:600}
.wk-steps{display:flex;list-style:none;padding:14px 18px;margin:0 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.wk-steps li{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;font-size:12px;color:var(--muted);min-width:0}
.wk-steps li::before{content:"";position:absolute;top:13px;left:calc(-50% + 16px);right:calc(50% + 16px);height:2px;background:var(--line)}
.wk-steps li:first-child::before{display:none}
.wk-steps li.done::before,.wk-steps li.cur::before{background:var(--accent)}
.wk-steps .dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:var(--surface);display:grid;place-items:center;font-weight:700;font-size:12px;color:var(--muted);margin-bottom:6px;position:relative;z-index:1}
.wk-steps .dot .i{width:14px;height:14px;stroke-width:2.4}
.wk-steps li.done .dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wk-steps li.cur .dot{border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}
.wk-steps li.cur.warn .dot{border-color:var(--warn);color:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}
.wk-steps li.cur.bad .dot{border-color:var(--bad);color:var(--bad);box-shadow:0 0 0 4px var(--bad-soft)}
.wk-steps b{color:var(--ink-2);font-size:12.5px} .wk-steps li.cur b{color:var(--ink)} .wk-steps small{font-size:11px}
.wk-steps li.cur.bad small{color:var(--bad);font-weight:600} .wk-steps li.cur.warn small{color:var(--warn);font-weight:600}
.wk-steps.cancel{opacity:.5}
.wk-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.wk-side{position:sticky;top:18px;display:flex;flex-direction:column;gap:14px} .wk-side .panel{margin:0;padding:16px 18px} .wk-side .panel .hd{margin-bottom:10px} .wk-side h2{font-size:13.5px}
.wk-decide{border:1px solid var(--warn-line);background:linear-gradient(180deg,var(--warn-soft-2) 0,var(--warn-soft-2) 100%);border-radius:14px;padding:18px 20px;margin-bottom:18px}
.wk-decide .hd{display:flex;gap:12px;align-items:flex-start} .wk-decide .hd .i{width:26px;height:26px;color:var(--warn);flex:none;margin-top:2px}
.wk-decide .hd b{display:block;font-size:15.5px} .wk-decide .hd span{font-size:12.5px;color:var(--warn-ink)}
.wk-decide .sum{margin:12px 0 10px;padding:10px 14px;background:var(--surface);border:1px solid var(--warn-line);border-radius:10px;white-space:pre-wrap;font-size:13.5px;color:var(--ink);overflow-wrap:anywhere}
.wk-decide .target{font-size:13px;color:var(--ink-2)} .wk-decide .target a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.fp{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--ink-2);margin-left:4px;white-space:nowrap}
.wk-decide .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:14px} .wk-decide .acts .btn{min-width:100px;justify-content:center}
.wk-decide .fine{font-size:12px;color:var(--warn-ink);margin:10px 0 0;text-align:right}
.wk-banner{display:flex;gap:12px;align-items:flex-start;border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:13.5px}
.wk-banner .i{width:22px;height:22px;flex:none;margin-top:1px} .wk-banner b{display:block;font-size:14.5px}
.wk-banner.ok{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line)}
.wk-banner.bad{background:var(--bad-soft);color:var(--bad-ink);border:1px solid var(--bad-line)}
.wk-banner.gray{background:var(--line-2);color:var(--ink-2);border:1px solid var(--line)}
.wk-banner.warn{background:var(--warn-soft);color:var(--warn-ink);border:1px solid var(--warn-line)}
.wk-banner p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.evs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ev{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:7px;background:var(--canvas);border:1px solid var(--line);font-size:12px;color:var(--ink-2);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev .i{width:13px;height:13px;flex:none} a.ev:hover{border-color:var(--accent);color:var(--accent-ink)}
.wk-desc .none{color:var(--muted);font-size:13px;margin:0}
.wk-result{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;overflow:hidden}
.wk-result.latest{border-color:var(--line-strong);box-shadow:0 1px 3px rgba(0,0,0,.05)}
.wk-result.target{border-color:var(--warn);box-shadow:0 0 0 2px var(--warn-soft)}
.wk-result .rh{display:flex;align-items:center;gap:8px;padding:14px 18px 0;flex-wrap:wrap}
.wk-result .seq{font-size:12px;font-weight:750;color:var(--on-ink);background:var(--ink);border-radius:6px;padding:2px 8px}
.wk-result .rh b{font-size:15px;overflow-wrap:anywhere}
.wk-result .rm{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 18px 0;font-size:12.5px;color:var(--muted)}
.wk-result .rl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 18px 12px;font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--line-2)}
.wk-result .rl .i{width:14px;height:14px} .wk-result .rl b{color:var(--ink-2);font-weight:600}
.linkbtn{background:none;border:0;padding:0;color:var(--accent-ink);font-weight:600;font-size:12.5px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.wk-result .rb{padding:14px 18px 16px}
details.wk-result>summary{list-style:none;cursor:pointer;padding-bottom:12px} details.wk-result>summary::-webkit-details-marker{display:none}
details.wk-result>summary .rh::after{content:"펼치기";margin-left:auto;font-size:12px;color:var(--muted);font-weight:500}
details.wk-result[open]>summary .rh::after{content:"접기"}
details.wk-result[open]>summary{border-bottom:1px solid var(--line-2)}

.mdv{font-size:14px;line-height:1.75;color:var(--ink);overflow-wrap:anywhere}
.mdv>*:first-child{margin-top:0} .mdv>*:last-child{margin-bottom:0}
.mdv p{margin:0 0 10px} .mdv h3{font-size:17px;margin:18px 0 8px} .mdv h4{font-size:15.5px;margin:16px 0 6px} .mdv h5,.mdv h6{font-size:14px;margin:14px 0 6px}
.mdv ul,.mdv ol{margin:0 0 10px;padding-left:22px} .mdv li{margin:2px 0} .mdv li>ul,.mdv li>ol{margin:2px 0 4px}
.mdv code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:var(--surface-3);border-radius:5px;padding:1px 5px}
.mdv pre{background:#0F172A;color:#E2E8F0;border-radius:10px;padding:12px 14px;overflow:auto;font-size:12.5px;line-height:1.6;margin:0 0 12px} .mdv pre code{background:none;padding:0;color:inherit}
.mdv blockquote{margin:0 0 10px;padding:6px 14px;border-left:3px solid var(--line);color:var(--ink-2);background:var(--surface-2);border-radius:0 8px 8px 0}
.mdv a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.mdv hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.mdv .mdtable{overflow:auto;margin:0 0 12px;border:1px solid var(--line);border-radius:10px}
.mdv table{font-size:13px} .mdv th{background:var(--surface-2);color:var(--ink-2);font-size:12.5px;white-space:normal} .mdv td,.mdv th{padding:8px 10px;border-bottom:1px solid var(--line-2)} .mdv tr:last-child td{border-bottom:0}
.mdv .a-right{text-align:right} .mdv .a-center{text-align:center}

.wk-appr{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line-2)} .wk-appr:first-of-type{border-top:0;padding-top:0}
.wk-appr .t{font-size:13px;min-width:0;flex:1} .wk-appr .t p{margin:4px 0 0;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere} .wk-appr .t p.dec{color:var(--muted);font-size:12.5px}
.wk-appr .tag{flex:none;align-self:flex-start}
.wk-tl{list-style:none;margin:0;padding:0;position:relative}
.wk-tl>li{display:flex;gap:10px;padding:0 0 14px;position:relative}
.wk-tl>li::before{content:"";position:absolute;left:9.5px;top:22px;bottom:0;width:1px;background:var(--line)}
.wk-tl>li:last-child{padding-bottom:0} .wk-tl>li:last-child::before{display:none}
.wk-tl .b{min-width:0;flex:1;font-size:13px}
.wk-tl .l1{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap} .wk-tl .l1 time{margin-left:auto;font-size:12px;color:var(--muted)}
.wk-tl li.ok .l1 .act{color:var(--accent-ink);font-weight:600} .wk-tl li.bad .l1 .act{color:var(--bad);font-weight:600} .wk-tl li.warn .l1 .act{color:var(--warn);font-weight:600}
.wk-tl .chg{list-style:none;margin:5px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12.5px}
.wk-tl .chg li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;align-items:baseline}
.wk-tl .chg span{color:var(--muted)} .wk-tl .chg s{color:var(--muted)} .wk-tl .chg b{font-weight:600;overflow-wrap:anywhere} .wk-tl .chg div{min-width:0;overflow-wrap:anywhere}
.wk-tl .note{margin:5px 0 0;font-size:12.5px;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere}
.wk-tl .via{font-size:11.5px;color:var(--muted-2);margin-top:4px;overflow-wrap:anywhere}
.wk-tl .evs{margin-top:6px}
.wk-vis{list-style:none;margin:0 0 10px;padding:0}
.wk-vis li{display:grid;grid-template-columns:20px minmax(0,1fr) 18px;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:13px}
.wk-vis li:last-child{border-bottom:0}
.wk-vis .nm b{display:block;line-height:1.35} .wk-vis .why{display:block;font-size:11.5px;color:var(--muted);line-height:1.4}
.wk-vis li .i{width:16px;height:16px} .wk-vis li.yes .i{color:var(--ok)} .wk-vis li.no .i{color:var(--muted-2)} .wk-vis li.no b{color:var(--muted);font-weight:600}
.wk-side .lbl{font-size:12.5px;color:var(--muted);margin:0 0 10px} .wk-side .lbl b{color:var(--ink)}
.fine{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.6}
.wk-assign{display:flex;flex-direction:column;gap:10px} .wk-assign .btn{align-self:flex-end}
.wk-side .danger h2{color:var(--bad)} .wk-side .danger .fine{margin:0 0 10px}
.wk-links a{display:flex;gap:8px;align-items:center;padding:7px 0;font-size:13px;border-bottom:1px solid var(--line-2);min-width:0} .wk-links a:last-child{border-bottom:0}
.wk-links a:hover b{color:var(--accent-ink)} .wk-links b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.wk-links .no{color:var(--muted);font-size:12px;font-weight:600;flex:none} .wk-links .tag{flex:none}

.dlg.sm{width:540px} .dlg.wk-dlg{width:760px}
.wk-g2{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:12px}
.dlg input,.dlg select,.dlg textarea,.wk input,.wk select,.wk textarea{font-weight:500}
.dlg input::placeholder,.dlg textarea::placeholder,.wk input::placeholder{color:var(--muted-2);font-weight:400}
.mdv .host{font-size:11.5px;color:var(--muted);margin-left:3px;white-space:nowrap}
.dlg .dhd{display:flex;align-items:center;margin-bottom:6px} .dlg .dhd h3{margin:0;font-size:17px;flex:1} .dlg .dhd .x{background:none;border:0;font-size:24px;line-height:1;color:var(--muted);padding:0 4px}
.dlg .dsub{color:var(--muted);font-size:13px;margin:0 0 14px;line-height:1.65}
.dlg form>label.f,.dlg form>fieldset,.dlg form>.grid,.dlg form>div.f{margin-bottom:12px}
.dlg textarea,.wk textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;color:var(--ink);background:var(--field);resize:vertical;min-height:70px;line-height:1.6}
.dlg textarea:focus,.wk textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dlg .acts{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
.dlg .err{color:var(--bad);font-weight:600;font-size:13px;min-height:18px;margin:2px 0 6px}
.hintline{font-weight:400;color:var(--muted);font-size:12px;line-height:1.5}
.dlg fieldset{border:0;padding:0;min-width:0} .dlg legend{font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:6px;padding:0}
.chkrow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
label.chk{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid var(--line);border-radius:9px;font-size:13px;color:var(--ink-2);cursor:pointer;background:var(--surface);font-weight:500}
label.chk input{width:15px;height:15px;margin:0;accent-color:var(--accent);flex:none}
label.chk:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
label.chk.big{height:auto;padding:10px 12px;align-items:flex-start;line-height:1.5;display:flex;margin-bottom:10px} label.chk.big input{margin-top:3px}
.seg{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;height:38px;position:relative}
.seg label{flex:1;display:flex;cursor:pointer;position:relative} .seg input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.seg span{flex:1;display:grid;place-items:center;font-size:13px;color:var(--ink-2);font-weight:500}
.seg label+label span{border-left:1px solid var(--line)}
.seg input:checked+span{background:var(--ink);color:var(--on-ink)}
.seg input:focus-visible+span{box-shadow:inset 0 0 0 2px var(--accent)}
div.f{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--muted);font-weight:600}
.warnline{background:var(--warn-soft);color:var(--warn-ink);border-radius:9px;padding:9px 12px;font-size:12.5px;font-weight:600;margin-bottom:8px}
.dtarget{display:flex;flex-direction:column;gap:2px;background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0 12px;font-size:13px} .dtarget span{color:var(--muted);font-size:12px}
.sprev{font-size:12.5px;color:var(--ink-2);margin:0 0 12px;background:var(--canvas);border-radius:9px;padding:9px 12px;line-height:1.6}

.wk-depts{max-width:none}
.wk-depts .drow{display:grid;grid-template-columns:minmax(0,1fr) 70px 88px 72px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-2)}
.wk-depts .drow.hd{font-size:11.5px;color:var(--muted);font-weight:600;padding-top:0}
.wk-depts .drow.add{border-bottom:0;padding-top:14px;grid-template-columns:minmax(0,1fr) 92px}
.wk-depts .n{font-size:12.5px;color:var(--muted);text-align:right}
.wk-depts .drow.off input[name=name]{color:var(--muted);background:var(--surface-2)}

@media (max-width:1100px){ .wk-agents{grid-template-columns:repeat(2,minmax(0,1fr))} .wk-grid{grid-template-columns:minmax(0,1fr) 280px} }
@media (max-width:900px){
  .wk-sum{grid-template-columns:repeat(2,1fr)} .wk .pagehd .hdacts{margin:2px 0 14px}
  .wk-lh{display:none} .wk-row{grid-template-columns:minmax(0,1fr) auto auto;gap:6px 10px} .wk-row .main{grid-column:1/-1} .wk-row .c.dept,.wk-row .c.res{display:none}
  .wk-grid{grid-template-columns:1fr} .wk-side{position:static}
  .wk-steps{padding:12px 6px} .wk-steps small{display:none} .wk-head h1{font-size:20px}
  .wk-tools .search{min-width:0;width:100%;margin-left:0}
  .wk-depts .drow{grid-template-columns:minmax(0,1fr) 56px 72px 64px;gap:6px}
}
@media (max-width:820px){ .wk-g2{grid-template-columns:1fr} }
@media (max-width:560px){
  .wk-agents{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -16px 20px;padding:0 16px 4px;scrollbar-width:none}
  .wk-agents::-webkit-scrollbar{display:none}
  .wk-agent{flex:0 0 82%;scroll-snap-align:start}
  .wk-decide .acts .btn{flex:1} .wk-tl .chg li{grid-template-columns:78px minmax(0,1fr)}
}

/* ───────── 12판: 파일함 · AI 메모 · 반복 업무 · 알림 · 원본 옆 메모 */
.nav .sub.wksub a .badge{margin-left:auto;font-size:11px;padding:0 5px;border-radius:5px;background:var(--warn-soft);color:var(--warn-ink);font-weight:700;line-height:17px}   /* 18.5판: 같은 상자 모양 */
.wk-files .wk-lh,.wk-files .wk-row{grid-template-columns:minmax(0,1fr) 120px 70px 76px 110px 64px}
.wk-row.file .ttl a{color:inherit;text-decoration:none} .wk-row.file .ttl a:hover{text-decoration:underline}
.fl-acts{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap} .fl-acts form{display:inline-flex;align-items:center;gap:6px}
.btn.linkish{background:transparent;border-color:transparent;color:var(--muted)} .btn.linkish:hover{color:var(--bad);background:var(--bad-soft,#FEF2F2)}
.wk-sched .wk-lh,.wk-sched .wk-row{grid-template-columns:minmax(0,1fr) 120px 150px 130px 96px 200px}
.wk-row.sch .c.acts form{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.wk-row.sch.pending{box-shadow:inset 3px 0 0 var(--warn);background:var(--warn-soft-2)}
.wk-notes{display:flex;flex-direction:column;gap:10px}
.wk-note{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px}
.wk-note .nh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px} .wk-note .nh .ref{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent-ink);font-weight:600;text-decoration:none;background:var(--accent-soft);padding:2px 8px;border-radius:999px}
.wk-note .nh .ref .i{width:12px;height:12px}
.wk-note .nb{margin:8px 0 4px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.wk-note .tags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0} .wk-note .tags .chip{text-decoration:none}
.wk-note .nf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px} .wk-note .nf form{display:inline-flex;align-items:center;gap:6px}
.wk-notis{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.wk-noti{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px}
.wk-noti.unread{box-shadow:inset 3px 0 0 var(--warn);background:var(--warn-soft-2)}
.wk-noti .t{display:flex;flex-direction:column;gap:3px;min-width:0;text-decoration:none;color:inherit} .wk-noti .t b{font-size:14px} .wk-noti .t span{font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .wk-noti .t small{font-size:11.5px;color:var(--muted)}
.wk-noti form{display:inline-flex;align-items:center;gap:6px}
.wk-mailset{margin-top:10px} .wk-mailform .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.wk-tfiles .tf{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:13px} .wk-tfiles .tf:last-child{border-bottom:0}
.wk-tfiles .tf .nm{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--accent-ink);text-decoration:none} .wk-tfiles .tf .nm .i{width:14px;height:14px}
.wk-tfiles .tf .tags{display:flex;gap:6px;flex-wrap:wrap}
.ainote{margin-top:6px;display:flex;flex-direction:column;gap:4px}
.ainote .an{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;font-size:12.5px;line-height:1.5;background:var(--warn-soft-2);border:1px solid var(--warn-line);border-radius:10px;padding:6px 10px;color:var(--warn-ink)}
.ainote .an .i{width:13px;height:13px;flex:none;margin-top:3px} .ainote .an b{font-weight:700} .ainote .an span{white-space:pre-wrap;word-break:break-word} .ainote .an em{font-style:normal;font-weight:600;color:var(--warn-ink)} .ainote .an a{margin-left:auto;color:var(--muted);text-decoration:none}
.cmsg.me .ainote .an{background:var(--ok-soft-2);border-color:var(--ok-line);color:var(--ok-ink)} .cmsg.me .ainote .an em{color:var(--ok-ink)}
@media (max-width:900px){
  .wk-files .wk-lh,.wk-sched .wk-lh{display:none}
  .wk-files .wk-row,.wk-sched .wk-row{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
  .wk-files .wk-row .main,.wk-sched .wk-row .main{width:100%}
  .wk-files .wk-row .c,.wk-sched .wk-row .c{font-size:12px;color:var(--ink-2)}
  .wk-files .wk-row .c.who,.wk-sched .wk-row .c.who{display:inline-flex;align-items:center;gap:6px}
  .wk-sched .wk-row .c.acts{width:100%}
  .wk-noti{grid-template-columns:auto minmax(0,1fr)} .wk-noti form{grid-column:2}
}
.wk-dlg .f[hidden]{display:none!important}

/* ── 관리 (13판) — 콘솔의 리모컨 */
.adm .hdacts{display:flex;gap:8px;flex:none;margin-top:4px}
.adm-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 18px}
.adm-pill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:600;color:var(--ink-2)}
.adm-pill small{font-weight:500;color:var(--muted)}
.adm-pill.ok{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.adm-pill.bad{background:var(--bad-soft);color:var(--bad-ink);border-color:transparent}
.adm-pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.adm-pill.off{color:var(--muted)}
.adm-panel .hd .sp{flex:1;font-size:12.5px;margin-left:10px}
.adm-panel .hd .btn+.btn{margin-left:6px}
@media (max-width:640px){.adm-panel .hd{flex-wrap:wrap;row-gap:6px}.adm-panel .hd h2{white-space:nowrap;margin-right:auto}.adm-panel .hd .sp{order:9;flex:1 0 100%;margin-left:0}}   /* 23.5판: 좁은 화면에서 요약 글이 세로로 쪼개지지 않게 아래 줄로 */
.adm-list{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.adm-lh,.adm-row{display:grid;grid-template-columns:18px minmax(160px,1.1fr) minmax(200px,1.6fr) 110px 60px 110px;gap:12px;align-items:center;padding:0 14px}
.adm-lh{height:34px;font-size:11.5px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);background:var(--surface-2)}
.adm-row{padding-top:9px;padding-bottom:9px;border-bottom:1px solid var(--line-2);cursor:pointer}
.adm-row:last-child{border-bottom:0} .adm-row:hover{background:var(--surface-2)} .adm-row.sel{background:var(--accent-soft)}
.adm-row .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.adm-row .nm b{display:block;font-size:13.5px} .adm-row .nm small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-row .stt{font-size:13px;min-width:0} .adm-row .stt small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-row .stt.running{color:var(--ok);font-weight:600} .adm-row .stt.restart,.adm-row .stt.external{color:var(--warn);font-weight:600} .adm-row .stt.bad{color:var(--bad)}
.adm-row .stt.off,.adm-row .stt.daily{color:var(--muted)} .adm-row .stt.checking{color:var(--blue-ink)}
.adm-row .acts{text-align:right}
.adm-sw{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer} .adm-sw input{position:absolute;opacity:0;width:1px;height:1px}
.adm-sw i{position:absolute;inset:0;background:var(--line-strong);border-radius:999px;transition:background .15s} .adm-sw i:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.adm-sw input:checked+i{background:var(--accent)} .adm-sw input:checked+i:after{transform:translateX(16px)} .adm-sw input:disabled+i{opacity:.5}
.adm-log{margin-top:12px;border:1px solid var(--line);border-radius:var(--r);background:#0f172a;color:#e2e8f0;overflow:hidden}
.adm-log .lh{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#1e293b;color:#e2e8f0;font-size:12.5px} .adm-log .lh .sp{flex:1} .adm-log .lh .btn{height:26px;padding:0 9px;font-size:12px}
.adm-log .lh label{display:flex;align-items:center;gap:5px;color:#cbd5e1}
.adm-log pre{margin:0;padding:12px 14px;max-height:380px;overflow:auto;font:12px/1.55 Consolas,'D2Coding',ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
.adm-links{margin-top:8px}
.adm-sub{border-top:1px solid var(--line-2);padding:16px 0 6px} .adm-sub:first-child{border-top:0;padding-top:0}
.adm-sub .sh{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap} .adm-sub .sh h3{margin:0;font-size:14px;font-weight:650} .adm-sub .sh .sp{flex:1}
.adm-url{font:600 12.5px Consolas,ui-monospace,monospace;background:var(--line-2);border:1px solid var(--line);border-radius:6px;padding:2px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0} .adm-line .sp{flex:1}
.adm-r{display:flex;justify-content:flex-end;margin-top:8px}
table.adm-t{width:100%;border-collapse:collapse;font-size:13px} .adm-t th{font-size:11.5px;color:var(--muted);font-weight:600;text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
.adm-t td{padding:8px;border-bottom:1px solid var(--line-2);vertical-align:middle} .adm-t tr:last-child td{border-bottom:0} .adm-t td.r,.adm-t th.r{text-align:right}
.adm-t td.acts{text-align:right;white-space:nowrap} .adm-t td.ok{color:var(--ok)} .adm-t td.bad{color:var(--bad)} .adm-t code{font-size:12px}
.adm-tbl{overflow:auto;max-width:100%} .adm-tbl table.adm-t{min-width:560px} .adm-t td.t{white-space:nowrap} #aiBody .adm-t td{white-space:nowrap}
.adm-2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px} @media (max-width:900px){.adm-2{grid-template-columns:1fr}}
.adm-srcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 14px}
.adm-srcs .chk{margin:4px 0;height:auto;min-height:32px;padding:7px 11px;align-items:flex-start;line-height:1.4} .adm-srcs .chk input{margin-top:2px} .adm-srcs .chk small{display:block;color:var(--muted);font-weight:400;font-size:11.5px}
.adm-lim{display:flex;flex-direction:column;gap:8px;font-size:13px} .adm-lim input{width:90px;height:32px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font:inherit;margin:0 4px}
.adm-keyout{background:var(--accent-soft);border-radius:10px;padding:12px;margin:8px 0;display:flex;flex-direction:column;gap:6px} .adm-keyout code{font-size:13px;word-break:break-all;background:var(--surface);padding:6px 8px;border-radius:6px} .adm-keyout .btn{align-self:flex-start}
.adm-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--float);color:var(--on-float);padding:11px 18px;border-radius:12px;font-weight:600;font-size:13.5px;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:60;max-width:min(90vw,640px)}
.adm-toast.bad{background:#991B1B}
.adm .btn.sm.ok{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
@media (max-width:820px){ .adm-lh{display:none} .adm-row{grid-template-columns:14px minmax(0,1fr) 40px 88px;grid-template-areas:"dot nm sw acts" "dot stt stt stt" "dot last last last";row-gap:2px;gap:6px 10px}
  .adm-row .dot{grid-area:dot} .adm-row .nm{grid-area:nm;min-width:0} .adm-row .stt{grid-area:stt} .adm-row>span:nth-child(4){grid-area:last} .adm-row>span:nth-child(5){grid-area:sw;text-align:center} .adm-row .acts{grid-area:acts}
  .adm-row .dot{align-self:start;margin-top:8px} .adm-sub .sh{gap:6px} .adm-url{font-size:11.5px} .adm-lim input{width:76px}
  .adm-tbl:after{content:"← 옆으로 밀어 보세요 →";display:block;font-size:11px;color:var(--muted);padding:4px 8px;background:var(--surface-2);position:sticky;left:0} }

/* ── 사용 안내 (13판) */
.gd-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:26px;align-items:start}
.gd-toc{position:sticky;top:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 10px;max-height:calc(100vh - 36px);overflow:auto}
.gd-toc input{width:100%;height:34px;border:1px solid var(--line);border-radius:9px;padding:0 10px;font:inherit;font-size:12.5px;margin-bottom:8px}
.gd-toc .gd-group{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding:10px 8px 4px}
.gd-toc a{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px;color:var(--ink-2)} .gd-toc a .n{color:var(--muted);font-size:11px;min-width:1.6em;font-variant-numeric:tabular-nums}
.gd-toc a:hover{background:var(--line-2)} .gd-toc a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600} .gd-toc a.on .n{color:var(--accent-ink)} .gd-toc a.hide{display:none}
.gd-main{min-width:0}
.gd-intro{color:var(--muted);margin:0 0 18px;font-size:13.5px}
.gd-sec{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 26px;margin-bottom:18px;scroll-margin-top:14px}
.gd-sec.ai{border-left:4px solid #7C3AED}
.gd-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:6px} .gd-eyebrow .n{font-size:12px;font-weight:800;color:var(--accent)}
.gd-sec h2{font-size:19px;font-weight:750;margin:0 0 10px;letter-spacing:-.01em}
.gd-body{font-size:14px;line-height:1.75;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}
.gd-body h3{font-size:15px;margin:20px 0 8px} .gd-body p{margin:8px 0} .gd-body ul,.gd-body ol{padding-left:22px;margin:6px 0} .gd-body li{margin:3px 0}
.gd-tw{overflow:auto;max-width:100%;margin:10px 0;border:1px solid var(--line);border-radius:10px}
.gd-body table{border-collapse:collapse;width:100%;font-size:13px;margin:0}
.gd-body th,.gd-body td{padding:8px 11px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;overflow-wrap:normal}
.gd-body th{background:var(--surface-2);font-weight:650;white-space:nowrap} .gd-body tr:last-child td{border-bottom:0} .gd-body td:first-child{font-weight:600}
.gd-body code{font:12.5px Consolas,'D2Coding',ui-monospace,Menlo,monospace;background:var(--line-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.gd-body pre{background:var(--line-2);border:1px solid var(--line);border-radius:9px;padding:10px 12px;overflow:auto} .gd-body pre code{background:none;border:0;padding:0}
.gd-body blockquote{margin:12px 0;padding:10px 14px;border-left:4px solid var(--accent);background:var(--surface-2);border-radius:8px} .gd-body blockquote p{margin:4px 0}
.gd-body strong{font-weight:700} .gd-body a{color:var(--accent-ink);text-decoration:underline}
.gd-totop{position:fixed;right:22px;bottom:22px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;box-shadow:0 8px 24px rgba(0,0,0,.12);font-size:13px;z-index:40}
@media (max-width:900px){ .gd-wrap{grid-template-columns:1fr} .gd-toc{position:static;max-height:none} .gd-sec{padding:16px 16px} .gd-body table{min-width:680px} .gd-tw:after{content:"← 옆으로 밀어 보세요 →";display:block;font-size:11px;color:var(--muted);padding:4px 10px;background:var(--surface-2)} }

/* 14판: 주제 우주 패널 */
.umode{background:rgba(255,217,138,.12)!important;border-color:rgba(255,217,138,.35)!important;color:#FFD98A!important}
.upanel .usrc{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;margin-right:4px;background:rgba(255,255,255,.1);color:#DDE4EA}
.upanel .usrc.s-chat{background:rgba(15,118,110,.35);color:#99F6E4}.upanel .usrc.s-call{background:rgba(124,58,237,.35);color:#DDD6FE}
.upanel .usrc.s-memo{background:rgba(234,88,12,.3);color:#FED7AA}.upanel .usrc.s-plaud{background:rgba(190,24,93,.32);color:#FBCFE8}
.upanel .usrc.s-mail{background:rgba(47,111,237,.32);color:#BFDBFE}.upanel .usrc.s-sms{background:rgba(8,145,178,.32);color:#A5F3FC}
.upanel .ulist{display:flex;flex-direction:column;gap:6px}
.upanel .uitem{text-align:left;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 10px;color:#E6EBF0;cursor:pointer}
.upanel .uitem:hover{background:rgba(255,255,255,.1)} .upanel .uitem b{display:block;font-size:12.5px;font-weight:600;margin-bottom:3px}
.upanel .uitem span{font-size:11.5px;color:#93A1AE}
.upanel .ucards{display:flex;flex-direction:column;gap:8px}
.upanel .ucard{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:9px 11px}
.upanel .ucard b{display:block;font-size:12.5px;margin:4px 0 2px} .upanel .ucard p{margin:0 0 4px;font-size:12px;line-height:1.55;color:#C9D2DB}
.upanel .uch{display:flex;gap:6px;align-items:center;font-size:11px;color:#93A1AE;flex-wrap:wrap} .upanel .uch .uw{color:#B7C3CE}
.upanel .urooms span.o{color:#FFD98A} .upanel .urooms span.n{color:#A7F3D0}
.upanel .ulink{font-size:12px;color:#93C5FD;text-decoration:none} .upanel .ulink:hover{text-decoration:underline}
.upanel .utodo{margin:0;padding-left:16px;font-size:12.5px;line-height:1.6;color:#DDE4EA} .upanel .utodo em{color:#FCD34D;font-style:normal}

/* ── 15판 (2026-09-30): 대화 사진(톡클라우드) · 카톡 방 정리 · 직원 계정 */
.lightbox .dl[hidden]{display:none}
.photos .ph.miss{background:var(--surface-3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3AAB3' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='m21 16-5-5-8 8'/%3E%3C/svg%3E") center/30px no-repeat;cursor:default} .photos .ph.miss img{display:none}
.photos .ph.vid{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#1F242B;color:#fff;font-size:11.5px;text-align:center}
.photos .ph.vid svg{width:34px;height:34px;padding:8px;border-radius:50%;background:rgba(255,255,255,.16);box-sizing:content-box}
.photos .ph.wait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--surface-2);border-style:dashed;color:var(--muted);font-size:11px;text-align:center;padding:6px;cursor:default}
.photos .ph.wait svg{width:22px;height:22px}
.phnote{font-size:11.5px;margin-top:4px}
.tile .pv.miss{background:var(--surface-3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3AAB3' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='m21 16-5-5-8 8'/%3E%3C/svg%3E") center/34px no-repeat} .tile .pv.miss img{display:none}
.vcard{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px;max-width:340px} .vcard audio{width:300px;max-width:100%;height:36px} .vcard span{font-size:11.5px}
/* 15.2판: 방 정리 단추를 크게 (대화 화면 왼쪽 목록 위) */
.roomtools{padding:10px 12px 8px;border-bottom:1px solid var(--line-2)}
.roomtools .rt-main{display:flex;align-items:center;gap:11px;padding:9px 10px 9px 9px;border-radius:11px;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-ink);transition:background .15s,border-color .15s}
.roomtools .rt-main:hover{background:var(--accent-soft-2);border-color:var(--accent-line)}
.roomtools .rt-main .ic{width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none}
.roomtools .rt-main .ic svg{width:17px;height:17px}
.roomtools .rt-main .tx{flex:1;min-width:0} .roomtools .rt-main b{display:block;font-size:14px;font-weight:700;line-height:1.25}
.roomtools .rt-main small{display:block;font-size:11.5px;color:var(--accent-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roomtools .rt-main .go{width:16px;height:16px;flex:none;opacity:.7}
.roomtools .rt-row{display:flex;align-items:center;gap:6px;margin-top:7px;flex-wrap:wrap}
.roomtools .rt-row a{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:600;white-space:nowrap}
.roomtools .rt-row a:hover{background:var(--line-2);color:var(--ink)} .roomtools .rt-row a svg{width:13px;height:13px}
.roomtools .rt-row a.rt-sub{border-color:transparent;background:none;color:var(--muted);font-weight:500;padding:0 6px}
.roomtools .rt-row a.rt-sub:hover{color:var(--ink-2);background:var(--line-2)}
details.roommenu .menu .sep{height:1px;background:var(--line-2);margin:4px 6px}
details.roommenu .menu button.danger{color:var(--bad)} details.roommenu .menu button.danger svg{color:var(--bad)}
details.roommenu .menu button.danger:hover{background:var(--bad-soft)}
details.roommenu{position:relative} details.roommenu>summary{list-style:none;letter-spacing:1px} details.roommenu>summary::-webkit-details-marker{display:none}
details.roommenu .menu{position:absolute;right:0;top:36px;z-index:30;width:270px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.14);padding:6px}
details.roommenu .menu button,details.roommenu .menu a{display:grid;grid-template-columns:22px 1fr;column-gap:8px;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:8px 10px;color:var(--ink);font-size:13px;font-weight:600;align-items:center}
details.roommenu .menu button:hover,details.roommenu .menu a:hover{background:var(--line-2)} details.roommenu .menu svg{width:17px;height:17px;color:var(--ink-2);grid-row:1/3}
details.roommenu .menu small{grid-column:2;display:block;color:var(--muted);font-weight:400;font-size:11.5px;line-height:1.4}
.hidbar{display:flex;align-items:center;gap:10px;padding:9px 22px;background:var(--warn-soft-2);border-bottom:1px solid var(--warn-line);font-size:13px;color:var(--warn-ink)} .hidbar svg{width:17px;height:17px} .hidbar .btn{margin-left:auto}
/* 직원 화면 — 사이드바 없음 */
body.staff .page{padding-top:0}
body.staff .chatview{height:100vh}
.staffbar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.staffbar .mark{width:32px;height:32px;border-radius:9px;background:var(--ink);color:var(--on-ink);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.staffbar .who{flex:1;min-width:0} .staffbar .who b{display:block;font-size:14px} .staffbar .who small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 방 정리 */
.rm-info{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin:10px 0 14px;font-size:13px}
.rm-info .lbl,.st-sum .lbl{color:var(--muted);font-size:12px;font-weight:600;margin-right:8px}
.rm-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px} .rm-tools .sp{flex:1}
.rm-tools .chips{display:flex;gap:6px;flex-wrap:wrap} .rm-tools .chip{cursor:pointer;height:30px;font-size:12.5px} .rm-tools .chip b{font-weight:700}
.rm-tools input{width:240px;height:32px} .rm-tools select{height:32px;width:auto}
.rm-panel{padding:0}
.rm-table th{position:sticky;top:0;background:var(--surface-2);z-index:1} .rm-table th.c,.rm-table td.c{width:38px;text-align:center}
.rm-table input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent);vertical-align:middle}
.rm-table td{padding:8px 10px} .rm-table tbody tr{cursor:pointer} .rm-table tbody tr:hover{background:var(--surface-2)} .rm-table tbody tr.sel{background:var(--accent-soft)}
.rm-table tbody tr.flash{animation:rmflash 1.6s ease-out}
@keyframes rmflash{0%{background:var(--mark)}100%{background:transparent}}
.rm-table td.nm a{font-weight:600} .rm-table td.nm a:hover{color:var(--accent-ink);text-decoration:underline} .rm-table td.nm small,.rm-table td.when small{display:block;color:var(--muted);font-size:11.5px;line-height:1.4}
.rm-table td.nm small{max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-table td.st{white-space:nowrap} .rm-table td.st .tag{margin-right:4px}
.rm-bulk{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:var(--float);color:var(--on-float);padding:10px 12px 10px 18px;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.28);z-index:50;flex-wrap:wrap;max-width:calc(100vw - 32px)}
.rm-bulk[hidden]{display:none}
.rm-bulk b{margin-right:6px;font-size:13.5px} .rm-bulk .btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff} .rm-bulk .btn:hover{background:rgba(255,255,255,.2)} .rm-bulk .btn.ghost{background:transparent}
.mk-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:#0B5B55;color:#fff;padding:11px 18px;border-radius:12px;font-weight:600;font-size:13.5px;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:70;max-width:min(90vw,680px)}
.mk-toast.bad{background:#991B1B} .mk-toast[hidden]{display:none}
.mk-dlg-back{position:fixed;inset:0;background:rgba(11,16,21,.45);z-index:80;display:grid;place-items:center;padding:16px} .mk-dlg-back[hidden]{display:none}
.mk-dlg{width:420px;max-width:100%;background:var(--surface);border-radius:16px;padding:22px 24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.mk-dlg h3{margin:0 0 6px;font-size:17px} .mk-dlg p{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.6}
.mk-dlg .err{color:var(--bad);font-weight:600;font-size:13px;min-height:18px;margin:8px 0 4px} .mk-dlg .row{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
/* 15.2판: 방 완전 삭제 */
.rm-table th.x,.rm-table td.x{width:44px;text-align:center;padding-left:4px;padding-right:8px}
.rm-del-btn{width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:none;color:var(--muted-2);display:inline-grid;place-items:center;cursor:pointer;transition:all .12s}
.rm-del-btn svg{width:16px;height:16px} .rm-table tbody tr:hover .rm-del-btn{color:var(--muted)} .rm-del-btn:hover{color:var(--bad)!important;background:var(--bad-soft);border-color:var(--bad-line)}
.rm-tools .chip.del svg{width:13px;height:13px;color:var(--muted)} .rm-tools .chip.del.on svg{color:inherit}
.rm-delhd{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--line-2);background:var(--surface-2);border-radius:var(--r) var(--r) 0 0}
.rm-delhd>svg{width:20px;height:20px;color:var(--muted);flex:none;margin-top:1px} .rm-delhd b{display:block;font-size:14px} .rm-delhd span{display:block;font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:2px}
.rm-del tbody tr{cursor:default} .rm-del td.nm b{font-weight:700} .rm-del td small{display:block;color:var(--muted);font-size:11.5px;line-height:1.45;margin-top:2px;white-space:normal}
.rm-del td.sum{font-size:13px;line-height:1.5;max-width:420px} .rm-del td.st{white-space:normal;max-width:260px} .rm-del td.act{white-space:nowrap}
.mk-dlg.purge{width:480px;padding:0;overflow:hidden}
.mk-dlg.purge .pg-hd{display:flex;gap:14px;align-items:flex-start;padding:20px 22px 14px}
.mk-dlg.purge .pg-ic{width:40px;height:40px;border-radius:12px;background:var(--bad-soft);color:var(--bad);display:grid;place-items:center;flex:none}
.mk-dlg.purge .pg-ic svg{width:20px;height:20px}
.mk-dlg.purge h3{margin:1px 0 3px} .mk-dlg.purge .pg-name{margin:0;font-size:14.5px;font-weight:700;color:var(--ink);word-break:break-all}
.mk-dlg.purge .pg-body{padding:0 22px 20px}
.mk-dlg.purge .pg-list{list-style:none;margin:0 0 12px;padding:10px 14px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:11px}
.mk-dlg.purge .pg-list li{display:flex;gap:12px;padding:5px 0;font-size:13px;line-height:1.5} .mk-dlg.purge .pg-list li+li{border-top:1px dashed var(--line)}
.mk-dlg.purge .pg-list b{flex:none;width:104px;color:var(--muted);font-weight:600;font-size:12.5px} .mk-dlg.purge .pg-list span{flex:1;min-width:0;color:var(--ink)}
.mk-dlg.purge .pg-warn{display:flex;gap:9px;align-items:flex-start;background:var(--bad-soft);color:var(--bad-ink);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.55;margin-bottom:14px}
.mk-dlg.purge .pg-warn svg{width:16px;height:16px;flex:none;margin-top:1px}
.mk-dlg.purge label.f{margin-bottom:10px} .mk-dlg.purge label.f b{color:var(--ink);font-weight:700}
.mk-dlg.purge input.match{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.btn.danger-solid{background:var(--bad);border-color:var(--bad);color:var(--on-bad)} .btn.danger-solid:hover{background:var(--bad-hover)}
.btn.danger-solid:disabled{background:var(--bad-line);border-color:var(--bad-line);cursor:not-allowed}
.mk-dlg.purge .pg-loading{padding:6px 22px 24px;color:var(--muted);font-size:13px}
.mk-dlg.purge .pg-bar{height:10px;border-radius:999px;background:var(--line-2);overflow:hidden;margin:4px 0 12px}
.mk-dlg.purge .pg-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#DC2626,#F87171);border-radius:999px;transition:width .5s ease}
.mk-dlg.purge .pg-bar.done i{background:var(--accent)}
.mk-dlg.purge .pg-step{display:flex;justify-content:space-between;gap:10px;font-size:13px} .mk-dlg.purge .pg-step b{font-weight:700} .mk-dlg.purge .pg-step span{color:var(--muted);font-variant-numeric:tabular-nums}
.mk-dlg.purge .pg-note{margin:10px 0 0;font-size:12.5px} .mk-dlg.purge .pg-note.bad{color:var(--bad);font-weight:600}
.mk-dlg.purge .pg-notes{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted);line-height:1.6}
/* 15.2판: 카톡 대화 올리기 */
.up-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:start}
.up-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;border:2px dashed var(--accent-line);border-radius:16px;background:var(--surface-2);padding:38px 20px;cursor:pointer;transition:all .15s}
.up-drop:hover,.up-drop.over{border-color:var(--accent);background:var(--accent-soft)}
.up-drop .ic{width:52px;height:52px;border-radius:16px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center} .up-drop .ic svg{width:26px;height:26px}
.up-drop b{font-size:16px} .up-drop span{font-size:12.5px;color:var(--muted);line-height:1.6} .up-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;height:auto}
.up-bar{height:8px;border-radius:999px;background:var(--line-2);overflow:hidden;margin:12px 0 6px} .up-bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}
.up-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-top:16px}
.up-card h3{margin:0 0 4px;font-size:16px} .up-card .sub{color:var(--muted);font-size:12.5px;margin-bottom:14px}
.up-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.up-facts>div{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:9px 11px} .up-facts .k{font-size:11.5px;color:var(--muted);font-weight:600} .up-facts .v{font-size:15px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.up-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px} .up-chips span{font-size:12px;background:var(--line-2);color:var(--ink-2);border-radius:999px;padding:3px 10px} .up-chips span b{font-weight:700;margin-left:3px}
.up-note{display:flex;gap:9px;align-items:flex-start;border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.6;margin:10px 0}
.up-note svg{width:16px;height:16px;flex:none;margin-top:2px} .up-note.ok{background:var(--accent-soft);color:var(--accent-ink)} .up-note.warn{background:var(--warn-soft);color:var(--warn-ink)} .up-note.bad{background:var(--bad-soft);color:var(--bad-ink)}
.up-opt{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;margin:12px 0;cursor:pointer}
.up-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)} .up-opt input{width:17px;height:17px;margin:2px 0 0;flex:none;accent-color:var(--accent)}
.up-opt b{font-size:13.5px} .up-opt small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:2px}
.up-acts{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}
.up-how{display:grid;gap:10px} .up-how>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.up-how b{display:flex;align-items:center;gap:7px;font-size:13.5px;margin-bottom:4px} .up-how b em{font-style:normal;font-size:11px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:1px 7px}
.up-how ol{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-2);line-height:1.75}
.up-samples{margin:6px 0 0;padding:8px 10px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:8px;font-size:11.5px;color:var(--ink-2);white-space:pre-wrap;word-break:break-all;max-height:120px;overflow:auto}
.up-done{text-align:center;padding:10px 0 4px} .up-done .big{width:54px;height:54px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:inline-grid;place-items:center;margin-bottom:8px} .up-done .big svg{width:28px;height:28px}
.up-done h3{margin:0 0 4px} .up-done p{margin:0 0 14px;color:var(--muted);font-size:13px}
table.up-recent td{font-size:12.5px;padding:8px 10px} table.up-recent td.num{white-space:nowrap}
.up-same{margin:4px 0 2px} .up-same .up-opt{margin:8px 0} .up-opt:has(input:checked) small{color:var(--ink-2)}
.up-newname{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:12px} .up-newname input{flex:1;min-width:0;height:32px;font-size:13px}
.up-vis .up-opt{margin:8px 0;padding:9px 12px} .up-vis .up-opt b em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--accent-ink);background:var(--surface);border:1px solid var(--accent-line);border-radius:6px;padding:1px 6px;margin-left:7px;vertical-align:1px}
/* 15.2판: 직원 전용 방 (직원에게만 보이고 대표님 목록·검색·홈·AI 에서는 빠짐) */
.tag.so{background:var(--violet-soft);color:var(--violet-ink)}
.hidbar.staffonly{background:var(--violet-soft);border-color:var(--violet-line);color:var(--violet-ink)}
.rm-delhd.so>svg{color:#7A5AD6} .rm-delhd[hidden]{display:none!important}
.up-note[hidden],.up-opt[hidden],.up-drop[hidden],.up-card [hidden],.up-same[hidden],.up-vis[hidden],.mk-dlg.purge [hidden]{display:none!important}
@media (max-width:900px){ .up-grid{grid-template-columns:1fr} .up-facts{grid-template-columns:repeat(2,minmax(0,1fr))} .rm-del td.sum{max-width:none} }
/* 직원 계정 */
.st-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:start} .st-grid>.panel{margin-bottom:18px}
.st-switch{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:16px;cursor:pointer}
.st-switch:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.st-switch input,.st-radio input{width:17px;height:17px;margin:2px 0 0;flex:none;accent-color:var(--accent)}
.st-switch b,.st-radio b{font-size:13.5px} .st-switch small,.st-radio small{display:block;color:var(--muted);font-size:12px;font-weight:400;line-height:1.5;margin-top:2px}
.st-opt{margin-top:16px} .st-opt .lbl{font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:6px}
.st-radio{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;cursor:pointer}
.st-radio:has(input:checked){border-color:var(--accent);background:var(--accent-soft)} .st-radio em{font-style:normal;font-size:11px;font-weight:700;color:var(--accent-ink);background:var(--surface);border:1px solid var(--accent-line);border-radius:6px;padding:0 6px;margin-left:4px}
.st-steps{margin:0;padding-left:20px;line-height:1.9;font-size:13.5px}
.st-can{display:grid;gap:10px;margin-top:14px} .st-can>div{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px} .st-can b{display:block;font-size:12.5px;margin-bottom:2px} .st-can span{font-size:12.5px;color:var(--ink-2);line-height:1.6}
.st-rooms{list-style:none;margin:0;padding:0;columns:2;column-gap:18px} .st-rooms li{display:flex;gap:8px;align-items:baseline;padding:4px 0;break-inside:avoid;font-size:13px} .st-rooms li a{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0} .st-rooms li small{color:var(--muted);font-size:11.5px;margin-left:auto;flex:none}
table.st-log td{padding:7px 10px;font-size:12.5px} table.st-log td.num{white-space:nowrap}
.st-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;font-size:13px} .st-sum>div{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px}
@media (max-width:900px){
  .tl .body{padding:10px 12px 40px}
  .photos{grid-template-columns:repeat(3,calc((100vw - 96px) / 3))} .photos.one{grid-template-columns:min(240px,calc(100vw - 110px))}
  .tl .hd{flex-wrap:wrap;padding:10px 12px;gap:8px 10px} .tl .hd .ttl{flex:1;min-width:0}
  .tl .hd .tools{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:nowrap}
  .tl .hd .search{flex:1;min-width:0} .tl .hd .search input{width:100%}
  .tl .fcard{min-width:0;max-width:100%} .vcard audio{width:100%}
  .st-grid{grid-template-columns:1fr} .st-rooms{columns:1}
  .rm-tools input{width:100%} .rm-table td.when small,.rm-table th:nth-child(5),.rm-table td:nth-child(5){display:none}
  body.staff .chatview{height:auto}
  details.roommenu .menu{right:-8px}
}

/* 15.3판 — 티로 봇 진행 한 줄 (통화녹음·음성 메모·플라우드 화면 머리) */
.tirobot{margin-top:6px;font-size:11.5px;color:var(--ink-2);text-align:right;max-width:480px;line-height:1.55}
.tirobot .tb-name{font-weight:700;color:var(--ink);margin-right:2px}
.tirobot .tag{font-size:10.5px;padding:1px 6px;vertical-align:1px}
.tirobot .tb-nums{display:block;font-variant-numeric:tabular-nums;white-space:nowrap}
.tirobot .tb-nums b{color:var(--ink);font-weight:600}
.tirobot .tb-stop{color:var(--bad);font-size:11px;margin-top:1px}
@media (max-width:640px){.tirobot{text-align:left;max-width:none} .tirobot .tb-nums{white-space:normal}}

/* 15.4판: 티로 화면 — 받아쓴 글 줄(시각 · 화자 · 내용) · 화자별 색 */
.tag.acc{background:var(--violet-soft);color:var(--violet-ink)}
.tiro-tx{font-size:14px;line-height:1.6}
.tiro-tx .tl{display:grid;grid-template-columns:52px minmax(0,1fr);gap:2px 10px;padding:5px 0;border-bottom:1px solid var(--line)}
.tiro-tx .tl time{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;padding-top:3px}
.tiro-tx .tl .spk{display:inline-block;font-weight:600;font-size:12px;margin-right:8px;padding:1px 7px;border-radius:999px;background:var(--line-2);color:var(--ink-2)}
.tiro-tx .tl .tx{white-space:pre-wrap;word-break:break-word}
.tiro-tx .tl.s0 .spk{background:var(--violet-soft);color:var(--violet-ink)} .tiro-tx .tl.s1 .spk{background:var(--ok-soft);color:var(--ok-ink)} .tiro-tx .tl.s2 .spk{background:var(--warn-soft);color:var(--warn-ink)}
.tiro-tx .tl.s3 .spk{background:var(--blue-soft);color:var(--blue-ink)} .tiro-tx .tl.s4 .spk{background:var(--pink-soft);color:var(--pink-ink)} .tiro-tx .tl.s5 .spk{background:var(--cyan-soft);color:var(--cyan-ink)}
@media (max-width:720px){ .tiro-tx .tl{grid-template-columns:44px minmax(0,1fr)} }

/* 15.4판: 홈(대시보드)을 화면 끝까지 — 넓은 화면(1800px~) 3칸 · 보통 2칸 · 폰 1칸. 칸은 같은 높이의 카드.
   x2 = 2칸부터 보이는 줄 · x3 = 3칸일 때만 보이는 줄 (넓을수록 몇 줄 더 보여 칸 높이를 맞춤) */
.page.home{max-width:none}
.hblocks{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);grid-template-areas:"chat" "voice" "sms" "files" "mail" "calls";margin-bottom:18px}
.hb{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 8px;min-width:0}
.hb h2{margin-bottom:6px}
.hb .filerow{margin:8px 0 10px}
.hb-chat{grid-area:chat} .hb-files{grid-area:files} .hb-mail{grid-area:mail} .hb-voice{grid-area:voice} .hb-sms{grid-area:sms} .hb-calls{grid-area:calls}
.hb .x2,.hb .x3{display:none}
/* 53.2판: 음성 메모(폰·워치 음성 메모 · 플라우드 · 티로 녹음) — 한 가지 표시 */
.hb .avatar.vm{background:#C2410C}
.hb .avatar.vm .i{width:15px;height:15px}
/* 53.2판: 파일 카드 — 그림 칸은 정사각형으로 고정 · 두 줄까지 · 카드 폭에 따라 한 줄에 2·3·4·5개.
   (15.4판은 남는 높이를 그림이 늘어나 채웠는데, 세로로 긴 그림 하나가 줄 높이를 정해 칸 전체 · 옆 대화 · 메일 칸까지 길게 늘어났음) */
.hb-files{container-type:inline-size}
.hb-files .filerow{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}
.hb-files .tile{display:block}
.hb-files .tile .pv{aspect-ratio:1/1;min-height:0;position:relative}
.hb-files .tile .pv img{object-position:50% 0}                                     /* 세로로 긴 문서 · 화면 찍기는 위쪽(제목)이 보이게 */
.hb-files .tile .pv.wide img{object-fit:contain;object-position:50% 50%}           /* 아주 넓은 그림은 잘리지 않게 통째로 */
.hb-files .tile .pv .ico{width:50px;height:50px;border-radius:13px;font-size:11px}
.hb-files .tile .pv.t-xls{background:color-mix(in srgb,#107C41 13%,var(--surface-3))}
.hb-files .tile .pv.t-pdf{background:color-mix(in srgb,#D93025 12%,var(--surface-3))}
.hb-files .tile .pv.t-doc{background:color-mix(in srgb,#2B579A 13%,var(--surface-3))}
.hb-files .tile .pv.t-zip{background:color-mix(in srgb,#B45309 13%,var(--surface-3))}
.hb-files .tile .pv.t-audio{background:color-mix(in srgb,#BE185D 10%,var(--surface-3))}
.hb-files .tile .pv.t-eml{background:color-mix(in srgb,#4B5EF7 12%,var(--surface-3))}
.hb-files .tile:nth-child(n+5){display:none}
@container (min-width:300px){ .hb-files .filerow{grid-template-columns:repeat(3,minmax(0,1fr))} .hb-files .tile:nth-child(-n+6){display:block} }
@container (min-width:560px){ .hb-files .filerow{grid-template-columns:repeat(4,minmax(0,1fr))} .hb-files .tile:nth-child(-n+8){display:block} }
@container (min-width:760px){ .hb-files .filerow{grid-template-columns:repeat(5,minmax(0,1fr))} .hb-files .tile:nth-child(-n+10){display:block} }
.page.home .hstatus{margin-top:0}
.page.home table.status td{overflow-wrap:anywhere}
@media (min-width:901px){
  .hblocks{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);grid-template-areas:"chat files" "voice mail" "sms calls"}
  .hb .roomrow.x2{display:flex}
}
@media (min-width:901px){ .page.home table.status th:nth-child(1){width:300px} .page.home table.status th:nth-child(2){width:210px} }
@media (min-width:1500px){ .page.home .stats{justify-content:space-between} }
@media (min-width:1800px){
  .hblocks{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"chat files mail" "voice sms calls"}
  .hb .roomrow.x3{display:flex}
}

/* 15.4판: 폰에서 옆으로 밀리던 화면(설정 · 방 정리 · 대화 올리기 · 지표) — 넓은 표는 그 칸 안에서만 옆으로 밀고, 긴 경로는 줄을 바꿈 */
@media (max-width:640px){
  .page .panel{overflow-x:auto}
  .page .panel table td{overflow-wrap:anywhere}
  table.rm-table, table.up-recent{display:block;overflow-x:auto}
}

/* ───────── 15.5판: 회계 (위하고 분개장 · 매입매출장) — ac- 로 시작하는 이름만 씀 */
.ac-robot{flex:none;width:360px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;font-size:12.5px;margin-top:2px}
.ac-robot .ac-rb-hd{display:flex;align-items:center;gap:8px} .ac-robot .ac-rb-hd b{font-size:13px;color:var(--ink)}
.ac-robot .ac-dot{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none}
.ac-robot.ok .ac-dot{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)} .ac-robot.bad .ac-dot{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}
.ac-robot.working .ac-dot{animation:blink 1.2s infinite}
.ac-robot .ac-rb-st{margin-left:auto;font-weight:700;font-size:12px;white-space:nowrap}
.ac-robot.ok .ac-rb-st{color:var(--accent-ink)} .ac-robot.bad .ac-rb-st{color:var(--bad)} .ac-robot.gray .ac-rb-st{color:var(--muted)}
.ac-robot.bad{border-color:var(--bad-line);background:var(--bad-soft-2)}
.ac-robot .ac-rb-l{margin-top:6px;color:var(--ink-2);line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
.ac-robot .ac-rb-s{margin-top:4px;color:var(--muted);font-size:11.5px} .ac-robot .ac-rb-s:empty{display:none}
.ac-robot .ac-rb-e{margin-top:6px;color:var(--bad);font-size:11.5px;line-height:1.45;overflow-wrap:anywhere}

.ac-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:2px 0 16px;overflow-x:auto;scrollbar-width:none}
.ac-tabs::-webkit-scrollbar{display:none}
.ac-tabs a{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 15px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ac-tabs a .i{width:16px;height:16px} .ac-tabs a:hover{color:var(--ink)} .ac-tabs a.on{color:var(--ink);border-bottom-color:var(--ink)}

.ac-filter{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:11px}
.ac-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap} .ac-row .sp{flex:1}
.ac-f{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);font-weight:600;white-space:nowrap}
.ac-f select{width:auto;min-width:230px;max-width:360px}
.ac-range{display:flex;align-items:center;gap:6px} .ac-range input{width:152px} .ac-range i{color:var(--muted);font-style:normal}
.ac-quick{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ac-quick .ac-sep{width:1px;height:18px;background:var(--line);margin:0 4px}
.ac-quick .sel-sm{height:28px;border-radius:999px;padding:0 10px;color:var(--ink-2)}
.ac-search{position:relative;flex:1 1 320px;min-width:240px;max-width:560px}
.ac-search .i{position:absolute;left:11px;top:11px;width:16px;height:16px;color:var(--muted)}
.ac-search input{padding-left:34px;padding-right:30px}
.ac-search .x{position:absolute;right:8px;top:7px;width:24px;height:24px;display:grid;place-items:center;color:var(--muted);font-size:17px;border-radius:6px} .ac-search .x:hover{background:var(--line-2)}
.ac-sel{width:auto;min-width:200px;max-width:320px} .ac-sel.sm{min-width:0}
.ac-side{display:flex;gap:6px;flex-wrap:wrap}
.ac-on{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 4px 0 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:12.5px;font-weight:600;max-width:360px}
.ac-on a{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:var(--accent-ink);font-size:15px;flex:none} .ac-on a:hover{background:var(--accent-soft-2)}

.ac-sum{display:flex;align-items:baseline;gap:8px 20px;flex-wrap:wrap;margin:2px 2px 10px;font-size:13px;color:var(--ink-2)}
.ac-sum b{font-size:16px;color:var(--ink);font-weight:700;margin:0 2px}
.ac-sum .ok{color:var(--ok);font-weight:600} .ac-sum .bad{color:var(--bad);font-weight:600} .ac-sum .sp{flex:1}

.ac-panel{padding:0}
.ac-panel>.ac-hd{padding:16px 18px 0;margin-bottom:10px;gap:4px 12px;flex-wrap:wrap} .ac-hd h2{white-space:nowrap} .ac-hd .muted{font-size:12.5px}
.ac-scroll.x{overflow-x:auto}
.ac-tbl{font-size:13px}
.ac-tbl thead th{background:var(--surface-2);position:sticky;top:0;z-index:2;padding:10px 10px;border-bottom:1px solid var(--line)}
.ac-panel>.ac-scroll>.ac-tbl thead th:first-child,.ac-panel>.ac-scroll:first-child>.ac-tbl thead th:first-child{border-top-left-radius:var(--r)}
.ac-panel>.ac-scroll:first-child>.ac-tbl thead th:last-child{border-top-right-radius:var(--r)}
.ac-tbl td{padding:7px 10px;border-bottom:1px solid var(--line-2)}
.ac-tbl tbody tr:hover td{background:var(--surface-2)}
.ac-tbl td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.ac-tbl td.amt{text-align:right;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.ac-tbl td.amt.neg,.ac-tbl td.neg{color:var(--bad)}
.ac-tbl td small{display:block;color:var(--muted);font-size:11.5px;line-height:1.4;font-weight:400}
.ac-tbl td.dt,.ac-tbl td.when{white-space:nowrap;color:var(--ink-2)}
.ac-tbl td.vn{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
.ac-tbl td.vn a{color:var(--accent-ink)} .ac-tbl td.vn a:hover{text-decoration:underline}
.ac-tbl td.ac{white-space:nowrap} .ac-tbl td.ac small{display:inline;margin-left:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}
.ac-tbl td.tr{min-width:120px;max-width:240px}
.ac-tbl td.rm{min-width:200px;max-width:560px;color:var(--ink-2);overflow-wrap:anywhere}
.ac-tbl td.sm{font-size:12px;color:var(--ink-2);white-space:nowrap}
.ac-tbl td.mono,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}
.ac-tbl a.lk:hover{color:var(--accent-ink);text-decoration:underline}
.ac-tbl mark{background:var(--mark);color:inherit;border-radius:2px;padding:0 1px}
.ac-j tr.vo td{background:var(--surface-2)} .ac-j tr.vs td{border-top:1px solid var(--line)} .ac-j tbody tr:first-child td{border-top:none}
.ac-g{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:5px;background:var(--line-2);color:var(--ink-2);white-space:nowrap}
.ac-g.g3{background:var(--blue-soft);color:var(--blue-ink)} .ac-g.g4{background:var(--orange-soft);color:var(--orange-ink)} .ac-g.g1{background:var(--bad-soft);color:var(--bad-ink)} .ac-g.g2{background:var(--accent-soft);color:var(--accent-ink)}
.ac-g.g5{background:var(--blue-soft);color:var(--blue-ink);box-shadow:inset 0 0 0 1px var(--blue-line)} .ac-g.g6{background:var(--orange-soft);color:var(--orange-ink);box-shadow:inset 0 0 0 1px var(--orange-line)}
.ac-k{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:5px;white-space:nowrap}
.ac-k.sell{background:var(--blue-soft);color:var(--blue-ink)} .ac-k.buy{background:var(--orange-soft);color:var(--orange-ink)}
.ac-tbl tfoot td{font-weight:700;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:none}
.ac-tbl tfoot .ok{color:var(--ok)} .ac-tbl tfoot .bad{color:var(--bad)}
.ac-pager{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 4px}
/* 15.6판: AI 가 준 번호(jnl:· vat:)로 연 줄 · 회계 AI 안내 */
.ac-tbl tr.ac-hl td,.ac-tbl tbody tr.ac-hl:hover td{background:var(--mark)}
.ac-tbl tr.ac-hl td:first-child{box-shadow:inset 3px 0 0 #EAB308}
.ac-tbl tr.ac-hl{scroll-margin-top:35vh}   /* #hl 로 열 때 표 머리줄(위에 붙음)에 가리지 않고 화면 가운데쯤에 */
.ac-ai-warn{color:var(--warn);font-weight:600}

.ac-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:16px;align-items:start}
.ac-grid>.panel{margin-bottom:0}
.ac-a tr.gh td{background:var(--surface-3);font-weight:700;color:var(--ink);border-top:1px solid var(--line)}
.ac-a tr.gh td .muted{font-weight:500;font-size:11.5px;margin-left:8px}
.ac-a tbody:first-of-type tr.gh td{border-top:none}
.ac-a td:nth-child(2){white-space:nowrap}
.ac-a td.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--muted);width:80px;white-space:nowrap}
.ac-monp{position:sticky;top:16px}
.ac-mon tr{cursor:pointer} .ac-mon tr:hover td{background:var(--surface-2)}
.ac-mon td{padding:5px 6px} .ac-mon td.lbl{width:64px;font-variant-numeric:tabular-nums} .ac-mon td.gauge{width:auto}
.ac-mon td.num{font-weight:600}

.ac-kinds{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.ac-kind{display:flex;flex-direction:column;gap:1px;min-width:150px;padding:9px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12px;color:var(--muted)}
.ac-kind b{font-size:13px;color:var(--ink)} .ac-kind:hover{border-color:var(--line-strong)} .ac-kind.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.ac-kind.sell{border-left:3px solid #93B4F5} .ac-kind.buy{border-left:3px solid #F5B98A}
.ac-side-sum{padding-left:10px;border-left:3px solid #93B4F5} .ac-side-sum.buy{border-left-color:#F5B98A}
.mk-dlg.purge .pg-list li[hidden]{display:none}

.ac-kpi .card .delta{white-space:normal}
.ac-pbar{height:6px;border-radius:999px;background:var(--line-2);overflow:hidden;width:120px}
.ac-pbar.wide{width:100%;margin-top:12px}
.ac-pbar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.ac-co td.nm{min-width:180px} .ac-co td.nm b{font-size:13.5px} .ac-co td.nm .tag{margin-left:6px;vertical-align:1px;font-size:10.5px;padding:1px 6px}
.ac-co td.pr small{margin-top:3px} .ac-co td.st{min-width:120px} .ac-co td.st small{margin-top:2px;max-width:200px}
.ac-co td.acts,.ac-gone td.acts{white-space:nowrap;text-align:right}
.ac-links{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;vertical-align:middle;background:var(--surface)}
.ac-links a{padding:5px 10px;font-size:12px;font-weight:600;color:var(--ink-2);line-height:18px} .ac-links a+a{border-left:1px solid var(--line)} .ac-links a:hover{background:var(--line-2);color:var(--ink)}
.ac-gone td.nm{min-width:140px}
.ac-del{width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);display:inline-grid;place-items:center;margin-left:6px;vertical-align:middle;padding:0}
.ac-del:hover{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-line)} .ac-del .i{width:16px;height:16px}

.ac-setup{max-width:860px}
.ac-setup-hd{display:flex;gap:14px;align-items:flex-start}
.ac-setup-ic{width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;flex:none}
.ac-setup-ic .i{width:22px;height:22px}
.ac-setup h2{margin:2px 0 4px;font-size:16px} .ac-setup p{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.65}
.ac-steps{margin:16px 0 4px 56px;padding-left:18px;line-height:2.1;font-size:13.5px}
.ac-steps span{color:var(--muted)}
.mk-dlg.purge .pg-ok{display:flex;gap:9px;align-items:flex-start;background:var(--accent-soft);color:var(--accent-ink);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.55;margin-bottom:10px}
.mk-dlg.purge .pg-ok svg{width:16px;height:16px;flex:none;margin-top:1px}

@media (max-width:1100px){ .ac-grid{grid-template-columns:minmax(0,1fr)} .ac-monp{position:static} }
@media (max-width:900px){
  .ac-robot{width:100%}
  .ac-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ac-tbl thead th{position:static}
  .ac-f{flex-wrap:wrap;width:100%} .ac-f select{min-width:0;flex:1;max-width:none}
  .ac-range{flex:1} .ac-range input{width:auto;flex:1;min-width:0}
  .ac-search{max-width:none;flex-basis:100%} .ac-sel{flex:1;min-width:0;max-width:none}
  .ac-steps{margin-left:0}
  .ac-kind{min-width:0;flex:1 1 140px}
}
@media (max-width:640px){
  .page .panel.ac-panel{overflow-x:visible}
  .ac-co td.acts .ac-links{display:none}
  .ac-row .btn.pri{flex:1;justify-content:center}
}

/* ── 15.7판: 근태 (at-) — 51번 PC 근태관리와 연결 · 대표님 차례 결재 · 결재 비서 ── */
.at-page .pagehd{align-items:flex-start}
.at-bot{flex:none;width:300px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px;font-size:12.5px}
.at-bot-hd{display:flex;align-items:center;gap:8px} .at-bot-hd b{font-size:13px} .at-bot-st{margin-left:auto;font-weight:600}
.at-dot{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}
.at-bot.ok .at-dot{background:var(--ok);box-shadow:0 0 0 4px var(--accent-soft)} .at-bot.ok .at-bot-st{color:var(--accent-ink)}
.at-bot.bad .at-dot{background:var(--bad)} .at-bot.bad .at-bot-st{color:var(--bad)}
.at-bot-l{margin-top:6px;color:var(--muted);line-height:1.5}
.at-setup-hd{display:flex;gap:14px;align-items:flex-start;margin-bottom:10px}
.at-setup-ic{width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;flex:none}
.at-setup h2{margin:2px 0 4px} .at-setup p{margin:0;color:var(--muted);line-height:1.6}
.at-pair{display:flex;gap:10px;align-items:flex-end;margin-top:14px;max-width:420px} .at-pair label.f{flex:1}
.at-pair input{font-size:20px;letter-spacing:.3em;font-weight:700;height:46px;text-align:center}
.at-kpi .card.hot{border-color:var(--warn-line);background:linear-gradient(180deg,var(--warn-soft-2),var(--surface))} .at-kpi .card.hot .v{color:var(--warn-ink)}
.at-panel .hd h2 svg{width:16px;height:16px;vertical-align:-3px;margin-right:4px;color:var(--muted)}
.at-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}
.at-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;overflow:hidden}
.at-card-hd{display:flex;align-items:center;gap:8px;padding:12px 14px 6px;flex-wrap:wrap} .at-card-hd b{font-size:14.5px} .at-card-hd .muted{font-size:12.5px}
.at-card-hd .sp,.at-card-ft .sp{flex:1}
.at-sub{font-size:12px}
.at-card-bd{padding:2px 14px 10px;flex:1}
.at-what{font-size:14px;margin:2px 0 4px} .at-what b{font-weight:700}
.at-reason{color:var(--ink-2);font-size:13px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;margin:6px 0}
.at-body{color:var(--ink-2);font-size:12.5px;line-height:1.6;white-space:pre-line;max-height:84px;overflow:hidden;background:var(--surface-2);border-radius:8px;padding:6px 10px;margin:6px 0}
.at-flow{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px}
.at-flow em{color:var(--muted);font-style:normal;font-size:12px}
.at-step{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 9px;color:var(--ink-2);background:var(--surface)}
.at-step i{font-style:normal;color:var(--muted);font-size:11px} .at-step small{color:var(--muted);font-size:10.5px} .at-step svg{width:12px;height:12px}
.at-step.done{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)} .at-step.done svg{color:var(--ok)}
.at-step.now{background:var(--warn-soft-2);border-color:var(--warn-line);color:var(--warn-ink);font-weight:700}
.at-step.bad{background:var(--bad-soft);border-color:var(--bad-line);color:var(--bad)}
.at-card-ft{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line-2);background:var(--surface-2)}
.btn.linkish2{border-color:transparent;background:transparent;color:var(--ink-2)} .btn.linkish2:hover{background:var(--line-2)}
.at-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 10px;color:var(--muted);text-align:center}
.at-empty svg{width:28px;height:28px;color:var(--ok)} .at-empty b{color:var(--ink);font-size:14.5px}
.at-finwait{margin-top:14px;border:1px dashed var(--line);border-radius:10px;padding:10px 14px;font-size:13px} .at-finwait b{display:block}
.at-finwait span{color:var(--muted);font-size:12.5px} .at-finwait ul{margin:6px 0 0;padding-left:18px} .at-finwait a{text-decoration:underline}
.at-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px} .at-grid2>.panel{margin-bottom:18px} .at-grid2.inner{gap:22px}
@media (max-width:1100px){.at-grid2{grid-template-columns:1fr}.at-cards{grid-template-columns:1fr}}
.at-daybox{display:flex;flex-direction:column;gap:10px} .at-daybox>div{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.at-pill{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12.5px;background:var(--surface)}
.at-pill small{color:var(--muted)} a.at-pill:hover{background:var(--line-2)} .at-pill.gray{color:var(--muted)}
.at-feed{list-style:none;margin:0;padding:0}
.at-feed li{display:flex;gap:8px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:13px;flex-wrap:wrap} .at-feed li:last-child{border-bottom:0}
.at-feed li a,.at-feed li>span:not(.tag){flex:1;min-width:0} .at-feed li a:hover{text-decoration:underline} .at-feed small{color:var(--muted);font-size:11.5px;white-space:nowrap}
.at-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px} .at-filter input,.at-filter select{height:34px;width:auto}
.at-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);font-weight:500;cursor:pointer}
.at-chk input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.at-tight{padding:0;overflow:hidden}
.at-tbl td{vertical-align:middle} .at-tbl tr[data-href]{cursor:pointer} .at-tbl tr.turn td{background:var(--warn-soft-2)} .at-tbl tr.gone td{color:var(--muted)}
.at-tbl td.r,.at-tbl th.r{text-align:right} .at-ell{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.at-tbl .hot{color:var(--bad);font-weight:700}
.at-mgrid th.dc,.at-mgrid td.dc{text-align:center;padding:5px 4px;min-width:30px;font-size:11.5px} .at-mgrid th.dc small{display:block;font-weight:500;color:var(--muted);font-size:10px}
.at-mgrid th.dc.hol{color:var(--bad)} .at-mgrid td.dc.warn{background:var(--warn-soft-2);color:var(--warn-ink);font-weight:700} .at-mgrid td.dc.bad{background:var(--bad-soft);color:var(--bad);font-weight:700}
.at-mgrid td.dc.blue,.at-mgrid td.dc.off{background:var(--blue-soft);color:var(--blue-ink);font-weight:600}
.at-mgrid tr.warnrow td:first-child{box-shadow:inset 3px 0 0 #F59E0B}
.at-mgrid th:first-child,.at-mgrid td:first-child{white-space:nowrap;min-width:104px;position:sticky;left:0;z-index:1;background:var(--surface)}
.at-mgrid thead th:first-child{z-index:3;background:var(--surface-2)} .at-mgrid tbody tr:hover td:first-child{background:var(--surface-2)}
.at-mgrid th:nth-child(2),.at-mgrid td:nth-child(2){white-space:nowrap}
.at-nowrap{white-space:nowrap}
.at-doc-hd{display:flex;gap:12px;align-items:flex-start} .at-doc-ttl h2{margin:0 0 2px;font-size:18px} .at-doc-ttl p{margin:0;color:var(--muted);font-size:13px} .at-doc-hd .sp{flex:1}
.at-doc-acts{display:flex;align-items:center;gap:8px;margin:14px 0 4px;padding:12px 14px;border-radius:10px;background:var(--warn-soft-2);border:1px solid var(--warn-line)}
.at-doc-acts .sp{flex:1} .at-doc-acts.gray{background:var(--surface-2);border-color:var(--line)}
.at-dl{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;margin:16px 0 0;font-size:13.5px} .at-dl dt{color:var(--muted);font-weight:600;font-size:12.5px} .at-dl dd{margin:0;word-break:break-word}
.at-dl.two{grid-template-columns:120px 1fr}
.at-h3{font-size:13.5px;font-weight:700;margin:18px 0 8px}
.at-bodyfull{white-space:pre-wrap;font-size:13px;line-height:1.7;background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;max-height:520px;overflow:auto}
.at-hist{list-style:none;margin:0;padding:0} .at-hist li{display:flex;gap:10px;padding:5px 0;border-bottom:1px dashed var(--line-2);font-size:13px} .at-hist small{color:var(--muted);width:120px;flex:none} .at-hist b{flex:none}
.at-totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px} .at-totals div{border:1px solid var(--line-2);border-radius:10px;padding:8px 10px;text-align:center}
.at-totals b{display:block;font-size:18px} .at-totals span{color:var(--muted);font-size:11.5px} .at-totals .hot{border-color:var(--bad-line);background:var(--bad-soft)} .at-totals .hot b{color:var(--bad)}
.at-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.at-cal .h{font-size:12px;color:var(--muted);text-align:center;font-weight:600} .at-cal .h.sat{color:var(--blue-ink)} .at-cal .h.sun{color:var(--bad)}
.at-cal .d{min-height:74px;border:1px solid var(--line-2);border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:2px;background:var(--surface)}
.at-cal .d i{font-style:normal;font-size:12px;color:var(--muted);font-weight:600} .at-cal .d b{font-size:13px} .at-cal .d small{font-size:11px;color:var(--muted)} .at-cal .d small.st{color:var(--ink-2)}
.at-cal .d.blank{background:transparent;border-color:transparent} .at-cal .d.today{box-shadow:0 0 0 2px var(--accent)}
.at-cal .d.sat i{color:var(--blue-ink)} .at-cal .d.sun i{color:var(--bad)}
.at-cal .d.warn{background:var(--warn-soft-2);border-color:var(--warn-line)} .at-cal .d.bad{background:var(--bad-soft);border-color:var(--bad-line)} .at-cal .d.blue{background:var(--blue-soft);border-color:var(--blue-line)}
.at-strip{display:flex;flex-wrap:wrap;gap:6px}
.at-strip a{width:52px;border:1px solid var(--line-2);border-radius:10px;padding:5px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface)} .at-strip a:hover{background:var(--line-2)}
.at-strip i{font-style:normal;font-size:11.5px;color:var(--muted);font-weight:600} .at-strip b{font-size:12px;border-radius:6px;padding:0 6px}
.at-strip b.w{background:var(--warn-soft);color:var(--warn-ink)} .at-strip b.b{background:var(--bad-soft);color:var(--bad)} .at-strip b.z{color:var(--muted-2);font-weight:500}
.at-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px;vertical-align:-1px} .at-key.w{background:var(--mark)} .at-key.b{background:var(--bad-line)}
.at-set .hd h2{display:flex;align-items:center;gap:4px}
.at-p{margin:0 0 12px;color:var(--ink-2);font-size:13px;line-height:1.65}
.at-form{display:flex;flex-direction:column;gap:10px}
.at-form .acts{display:flex;align-items:center;gap:8px;margin-top:4px} .at-form .acts .sp{flex:1}
.at-row{display:flex;gap:10px;flex-wrap:wrap} .at-row>label.f{flex:1;min-width:150px}
.at-sw{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-2);cursor:pointer} .at-sw input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent);flex:none} .at-sw b{color:var(--ink)}
.at-evs{display:flex;flex-wrap:wrap;gap:6px 14px}
.at-adv{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px} .at-adv summary{cursor:pointer;color:var(--ink-2);font-weight:600;font-size:13px;margin-bottom:8px}
.at-pingres{margin:8px 0;padding:9px 12px;border-radius:9px;font-size:13px} .at-pingres.ok{background:var(--accent-soft);color:var(--accent-ink)} .at-pingres.bad{background:var(--bad-soft);color:var(--bad)}
.at-brief{white-space:pre-wrap;font-size:12.5px;line-height:1.65;background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;margin-top:10px}
.at-where{list-style:none;margin:0 0 12px;padding:0} .at-where li{display:flex;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line-2);font-size:13px}
.at-where b{width:84px;flex:none;color:var(--muted);font-size:12.5px} .at-where a{color:var(--ink)}
.at-cardsel{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.at-ai{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--surface)}
.at-ai input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent);flex:none} .at-ai b{display:block} .at-ai small{color:var(--muted);font-size:12px;line-height:1.45;display:block}
.at-ai.on{border-color:var(--accent);background:var(--accent-soft)} .at-ai.dim{opacity:.55;cursor:default}
.at-kill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--bad-line);color:var(--bad);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:700;cursor:pointer;background:var(--surface)}
.at-kill input{width:15px;height:15px;margin:0;accent-color:var(--bad)} .at-kill.on{background:var(--bad);color:var(--on-bad);border-color:var(--bad)}
.at-rules td{vertical-align:top} .at-mini input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.at-pre{white-space:pre-wrap;font-size:12px;line-height:1.6;background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;max-height:320px;overflow:auto;margin:0}
.mk-dlg.at-dec{width:480px}
.at-dec-line{color:var(--ink)!important;font-weight:600;background:var(--surface-2);border:1px solid var(--line-2);border-radius:9px;padding:9px 11px;font-size:13.5px!important}
.mk-dlg textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;resize:vertical;min-height:70px}
.mk-dlg textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.at-dec-note{font-size:12.5px!important;margin:8px 0 0!important}
.btn.busy{opacity:.6;pointer-events:none}
@media (max-width:760px){.at-bot{display:none}.at-dl{grid-template-columns:1fr}.at-cal .d{min-height:58px;padding:4px}}

/* ───────────── 16.0판: '티로' — 통화녹음 · 음성 메모 · 플라우드 · 티로 녹음 한 화면 (탭 6개 · 정렬 · 종류 꼬리표) ───────────── */
.rec-status{flex:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;max-width:520px;margin-top:4px}
.rec-status .tirobot{flex-basis:100%;margin-top:2px}
.rcats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:10px 0 14px}
.rcat{position:relative;display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  transition:border-color .15s,box-shadow .15s,background .15s,transform .15s}
.rcat .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:none;color:var(--c);background:var(--line-2);background:color-mix(in srgb,var(--c) 11%,var(--surface))}
.rcat .ic svg{width:21px;height:21px;stroke-width:2}
.rcat .tx{min-width:0}
.rcat b{display:block;font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rcat small{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.rcat:hover{border-color:var(--c);border-color:color-mix(in srgb,var(--c) 40%,var(--line));box-shadow:0 3px 12px rgba(16,24,40,.07);transform:translateY(-1px)}
.rcat.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 6%,var(--surface));box-shadow:0 0 0 1px var(--c) inset,0 4px 14px color-mix(in srgb,var(--c) 18%,transparent)}
.rcat.on .ic{background:var(--c);color:#fff}
.rcat.on b{color:var(--c)}
.rcat.on small{color:var(--ink-2)}
.rcat.on::after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--c)}
@media (max-width:1280px){ .rcat{padding:10px 11px} .rcat .ic{width:34px;height:34px} .rcat b{font-size:13.5px} }
@media (max-width:1060px){ .rcats{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:640px){ .rcats{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;scroll-snap-type:x proximity} .rcat{flex:0 0 42%;scroll-snap-align:start} }
.rtools{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin:0 0 12px}
.rsel{height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 10px;font-size:13px;width:auto;color:var(--ink-2)}
.rsort{display:inline-flex;flex:none;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}
.rsort a{padding:0 12px;height:30px;line-height:30px;font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.rsort a+a{border-left:1px solid var(--line)}
.rsort a.on{background:var(--ink);color:var(--on-ink)}
.rsort a:not(.on):hover{background:var(--line-2)}
.mread .mnav .rsort a{height:28px;line-height:28px}
.rtools .search{display:flex;align-items:center;gap:6px;height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 8px 0 10px;margin-left:auto;min-width:280px}
.rtools .search svg{width:15px;height:15px;color:var(--muted)}
.rtools .search input{height:30px;border:none;padding:0;width:100%;font-size:13px} .rtools .search input:focus{box-shadow:none;outline:none}
.rtools .search .x{color:var(--muted);font-size:18px;line-height:1;padding:0 4px}
@media (max-width:720px){ .rtools .search{min-width:0;width:100%;margin-left:0} }
.rsrc{display:inline-flex;align-items:center;gap:3px;flex:none;height:20px;padding:0 7px 0 5px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:-.01em;
  color:var(--c);background:var(--line-2);background:color-mix(in srgb,var(--c) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 24%,var(--surface))}
.rsrc svg{width:12px;height:12px;stroke-width:2.2}
.mread .from .who span .rsrc{margin-right:4px;vertical-align:-1px}
.rtag{display:inline-block;font-size:10.5px;font-weight:600;line-height:17px;padding:0 6px;border-radius:5px;color:var(--c);background:var(--line-2);background:color-mix(in srgb,var(--c) 10%,var(--surface));margin-left:4px;vertical-align:1px}
.rh4{font-size:12px;color:var(--muted);margin:0 0 8px;font-weight:600} .rh4 span{font-weight:400;margin-left:6px}
.rec-view{height:calc(100vh - 300px);min-height:520px}
.rec-view .mlist .l1{gap:8px}
.tiro-tx .tl time a.ts{color:var(--accent-ink);font-weight:600}
.tiro-tx .tl time a.ts:hover{text-decoration:underline}
.rsum{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:14px 18px 6px;margin:0 0 20px;max-width:86ch}
.rsum .rh4{margin-bottom:4px}
.rh4-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap} .rh4-row .rsort{margin-left:auto}
.rsort.sm a{height:24px;line-height:24px;padding:0 9px;font-size:11.5px}

/* ───────────── 16.1판: 파일 종류 · 메일 계정 탭도 티로 탭과 같은 카드 모양 ───────────── */
.rcats.auto{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
.rcat small em{font-style:normal;font-weight:600}
.rcat small em.warn{color:var(--orange-ink)}
.rcats.ftype{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 22px 6px}
.rcats.ftype .rcat{padding:9px 11px 10px;gap:10px;border-radius:12px}
.rcats.ftype .rcat .ic{width:32px;height:32px;border-radius:9px}
.rcats.ftype .rcat .ic svg{width:17px;height:17px}
.rcats.ftype .rcat b{font-size:13.5px}
.rcats.ftype .rcat small{font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
.rcats.ftype .rcat.on::after{left:12px;right:12px}
.mail-view{height:calc(100vh - 272px)}
@media (max-width:1280px){ .rcats.ftype .rcat{padding:8px 9px} .rcats.ftype .rcat .ic{width:28px;height:28px} }
@media (max-width:1060px){ .rcats.auto{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:900px){ .rcats.ftype{display:flex;overflow-x:auto;margin:12px 14px 4px;padding-bottom:4px;scroll-snap-type:x proximity} .rcats.ftype .rcat{flex:0 0 132px;scroll-snap-align:start} }
@media (max-width:640px){ .rcats.auto{display:flex} .rcats.auto .rcat{flex:0 0 46%} }
@media (max-width:900px){ .rec-view,.mail-view{height:auto;min-height:0} }
@media (max-width:640px){ .rtools .rsort{max-width:100%;overflow-x:auto} }

/* ───────────── 16.1판: 관리 › 노트북 카톡 수집 ───────────── */
.ka-empty{display:flex;flex-direction:column;gap:4px;padding:18px 18px;border:1px dashed var(--line);border-radius:12px;background:var(--surface-2);font-size:13px;color:var(--ink-2);line-height:1.6}
.ka-empty b{font-size:14px;color:var(--ink)}
.ka-dev{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:10px}
.ka-dev.collecting{border-color:var(--ok-line);background:var(--ok-soft-2)}
.ka-dev.blocked{border-color:var(--bad-line);background:var(--bad-soft-2)}
.ka-dev.revoked{opacity:.65}
.ka-dot{width:12px;height:12px;border-radius:50%;flex:none;margin-top:5px}
.ka-dev.collecting .ka-dot{box-shadow:0 0 0 4px rgba(34,197,94,.18)}
.ka-main{flex:1;min-width:0}
.ka-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ka-top b{font-size:15px}
.ka-st{font-size:13px;font-weight:600;color:var(--ink-2)}
.ka-dev.collecting .ka-st{color:var(--ok)} .ka-dev.blocked .ka-st{color:var(--bad)} .ka-dev.paused .ka-st{color:var(--warn)}
.ka-meta{font-size:12px;color:var(--muted);margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 10px}
.ka-note{color:var(--ink-2)}
.ka-facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:10px}
.ka-facts span{display:flex;flex-direction:column;min-width:76px}
.ka-facts small{font-size:11px;color:var(--muted)} .ka-facts b{font-size:15px;font-variant-numeric:tabular-nums;font-weight:700}
.ka-acts{flex:none}
/* 23.5판: 노트북 수집기 업데이트 */
.ka-upd{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--accent-line);background:var(--accent-soft)}
.ka-upd b{font-size:13px;color:var(--accent-ink)} .ka-upd span{flex:1;min-width:200px;font-size:12px;color:var(--ink-2);line-height:1.5}
.ka-upd.wait{border-color:var(--warn-line);background:var(--warn-soft)} .ka-upd.wait b{color:var(--warn-ink)}
.ka-upd.ok{border-color:var(--line);background:var(--surface-2)} .ka-upd.ok b{color:var(--ok-ink)}
@media (max-width:720px){ .ka-dev{flex-wrap:wrap} .ka-acts{width:100%;text-align:right} }

/* ───────────── 16.0판: 회계 설정 — 가져올 회사 스위치 ───────────── */
.ac-tabs .ac-tab-set{margin-left:auto}
.ac-set tr.off td{color:var(--muted)} .ac-set tr.off td.nm b{color:var(--ink-2)}
.ac-set td small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.ac-set td.acts{white-space:nowrap;text-align:right}
.ac-sw{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px 0 4px;border:1px solid var(--line);border-radius:999px;background:var(--surface-3);
  font-size:12.5px;font-weight:700;color:var(--muted);vertical-align:middle;transition:background .15s,border-color .15s}
.ac-sw .knob{position:relative;width:40px;height:24px;border-radius:999px;background:var(--line-strong);transition:background .15s;flex:none}
.ac-sw .knob::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.ac-sw.on{background:var(--ok-soft-2);border-color:var(--ok-line);color:var(--ok-ink)}
.ac-sw.on .knob{background:#059669} .ac-sw.on .knob::after{left:19px}
.ac-sw:hover{border-color:var(--ink-2)}
.ac-rest{margin-right:6px;color:var(--bad)}

/* ── 16.2판: AI 업무함 탭을 메일·파일 화면과 같은 카드 탭으로 (업무·알림·AI 메모·파일함·반복 업무) */
.wk-tabs{margin:4px 0 18px}
.wk-tabs .rcat small{overflow:hidden;text-overflow:ellipsis}
.rcat .ic{position:relative}
.rcat .pip{position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background:#DC2626;box-shadow:0 0 0 2px var(--surface)}
.rcat.hot:not(.on){border-color:var(--warn-line);background:linear-gradient(180deg,var(--warn-soft-2),var(--surface))}
.wk-rtools{margin:0 0 12px}
.wk-cur{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:9px;font-size:13px;font-weight:700;color:var(--c);
  background:color-mix(in srgb,var(--c) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 28%,var(--line))}
.wk-cur svg{width:15px;height:15px} .wk-cur small{font-weight:500;color:var(--ink-2);font-size:12px}
a.wk-cur.link:hover{border-color:var(--c)}
.wk-runner{display:flex;gap:9px;align-items:center;padding:10px 14px;border-radius:12px;margin:0 0 8px;font-size:13px;font-weight:600}
.wk-runner svg{width:16px;height:16px;flex:none}
.wk-runner.ok{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line)}
.wk-runner.bad{background:var(--bad-soft);color:var(--bad-ink);border:1px solid var(--bad-line)}
.wk-howto{font-size:12.5px;color:var(--ink-2);margin:0 0 14px;line-height:1.6}
.wk-lastrun{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 2px;font-size:12.5px}
.wk-lastrun a{font-weight:700;color:var(--accent-ink)}
@media (max-width:720px){ .wk-cur{height:30px;font-size:12.5px} }

/* ── 16.3판: 대화 화면 왼쪽 목록 — 끌어서 폭 바꾸기 · 내리면 이어서 */
.roomlist .rl-resize{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;z-index:6;touch-action:none}
.roomlist .rl-resize::after{content:"";position:absolute;left:4px;top:0;bottom:0;width:2px;background:transparent;transition:background .15s}
.roomlist .rl-resize:hover::after,.roomlist .rl-resize.drag::after{background:var(--accent)}
body.rl-dragging{cursor:col-resize;user-select:none} body.rl-dragging iframe{pointer-events:none}
.roomlist li.rl-tail{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 10px 18px;font-size:12.5px;color:var(--muted)}
.roomlist li.rl-tail .btn{margin-left:4px}
.roomlist li.rl-tail .spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:rlspin .8s linear infinite}
@keyframes rlspin{to{transform:rotate(360deg)}}
@media (max-width:900px){ .roomlist .rl-resize{display:none} .chatview{grid-template-columns:minmax(0,1fr)} }   /* 폰: 긴 방 이름 때문에 목록이 화면보다 넓어지던 것(6px)도 고침 */
/* 16.4판: 끝낸 반복 업무 모두 지우기 줄 */
.wk-bulk{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface,var(--surface))}
.wk-bulk form{display:flex;align-items:center;gap:8px}
.wk-row.sch.ended .acts .btn.danger{white-space:nowrap}
/* ── 16.6판: 카톡방 그룹 · 누구에게 보이나 ───────────────────────────────────────── */
/* 대화 화면 — 위쪽 그룹 카드 (메일 · 티로 탭과 같은 모양) */
.chatwrap{display:flex;flex-direction:column;height:100vh;min-width:0}
.chatwrap>.chatview{flex:1 1 auto;min-height:0;height:auto}
body.staff .chatwrap>.chatview{height:auto}
.gband{flex:none;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 14px 0;min-width:0}
.rcats.gcats{display:flex;gap:8px;margin:0;padding:0 0 10px;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity}
.rcats.gcats .rcat{flex:0 0 auto;min-width:148px;max-width:230px;padding:8px 12px 9px;gap:10px;border-radius:12px;scroll-snap-align:start}
.rcats.gcats .rcat .ic{width:32px;height:32px;border-radius:9px} .rcats.gcats .rcat .ic svg{width:17px;height:17px}
.rcats.gcats .rcat b{font-size:13.5px} .rcats.gcats .rcat small{font-size:11.5px}
.rcats.gcats .rcat.on::after{left:12px;right:12px}
.rcats.gcats .rcat.gadd{border-style:dashed;background:transparent;min-width:150px}
.rcats.gcats .rcat.gadd .ic{background:var(--line-2);color:var(--ink-2)}
.rcats.gcats .rcat.gadd:hover{border-style:solid}
.gsubs{display:flex;align-items:center;gap:6px;padding:0 0 10px;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}
.gchip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12.5px;font-weight:600;flex:none}
.gchip em{font-style:normal;font-size:11px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.gchip:hover{border-color:var(--line-strong);background:var(--surface-2)}
.gchip.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)} .gchip.on em{color:var(--on-ink);opacity:.7}
.gchip.lab{--c:#6B7280;border-style:dashed;color:var(--c);color:color-mix(in srgb,var(--c) 85%,var(--ink-hover))}
.gchip.lab.on{border-style:solid;background:var(--c);border-color:var(--c);color:#fff}
.gsep{color:var(--muted);font-size:14px;padding:0 2px;flex:none}
.glabh{font-size:11.5px;color:var(--muted);font-weight:700;margin-left:10px;padding-left:12px;border-left:1px solid var(--line);flex:none}
.gsubs>.glabh:first-child{margin-left:0;padding-left:0;border-left:0}
.gwarn{display:flex;align-items:center;gap:8px;padding:2px 2px 10px;font-size:12.5px;color:var(--warn-ink)} .gwarn svg{width:15px;height:15px;flex:none}
.rl-items .t b .gtag{--c:#6B7280;display:inline-block;vertical-align:1px;margin-left:6px;font-style:normal;font-size:10.5px;font-weight:700;line-height:1;padding:3px 6px;border-radius:5px;color:var(--c);background:color-mix(in srgb,var(--c) 11%,var(--surface));max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl .hd .sub .gpath{--c:#6B7280;display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--c);color:color-mix(in srgb,var(--c) 85%,var(--ink-hover));margin-right:6px}
.tl .hd .sub .gpath i{width:8px;height:8px;border-radius:3px;background:var(--c)}
.tl .hd .sub .gpath:hover{text-decoration:underline}
.tl .hd .sub .glab{--c:#6B7280;display:inline-block;font-size:11px;font-weight:700;color:var(--c);border:1px dashed var(--c);border-radius:999px;padding:0 7px;margin-right:6px;line-height:17px}
.tl .hd .sub .seeby{display:inline-flex;align-items:center;gap:4px;color:var(--violet-ink);font-weight:600} .tl .hd .sub .seeby svg{width:13px;height:13px}
details.roommenu .menu .mhead{padding:8px 10px 9px;margin:-2px 0 4px;border-bottom:1px solid var(--line-2);font-size:12px;line-height:1.5}
details.roommenu .menu .mhead b{display:block;color:var(--muted);font-size:11px;font-weight:700}
details.roommenu .menu .mhead span{color:var(--ink);font-weight:600}
.hidbar .btn+.btn{margin-left:6px}
@media (max-width:900px){
  .chatwrap{height:auto;min-height:100vh}
  .chatwrap.read .gband{display:none}
  .gband{padding:8px 12px 0}
  .rcats.gcats .rcat{min-width:128px;padding:7px 10px 8px} .rcats.gcats .rcat .ic{width:28px;height:28px}
}

/* 보이게 할 사람 · 그룹 바꾸기 창 (공용) */
.seepick{display:flex;flex-wrap:wrap;gap:6px}
.seepick .spk{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink);background:var(--surface)}
.seepick .spk input{width:16px;height:16px;margin:0;accent-color:var(--accent);flex:none}
.seepick .spk small{display:block;font-size:11px;font-weight:500;color:var(--muted)}
.seepick .spk span{display:flex;flex-direction:column;line-height:1.3}
.seepick .spk:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.seepick .spk.dept{border-style:dashed}
.seepick .spk.dept:has(input:checked){border-style:solid}
.mk-dlg.seedlg,.mk-dlg.grpdlg{width:480px}
.mk-dlg .seenote{font-size:12px;margin:12px 0 0}
.mk-dlg .row .sp,.mk-dlg .row .sp{flex:1}
.mk-dlg .row .btn.ghost{color:var(--ink-2)}
.seemode{display:flex;gap:6px;margin:0 0 12px}
.seemode label{flex:1;cursor:pointer}
.seemode input{position:absolute;opacity:0;pointer-events:none}
.seemode span{display:block;text-align:center;padding:7px 0;border:1px solid var(--line);border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-2)}
.seemode input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.mk-dlg.grpdlg label.f,.mk-dlg.grpdlg div.f{margin-bottom:12px}
.mk-dlg.grpdlg select{width:100%}

/* 방 정리 — 큰 카드 · 그룹 칸 · 누가 보나 칸 */
.rcats.rm-cards{margin:6px 0 12px}
.rcats.rm-cards .rcat{cursor:pointer}
.rcats.rm-cards .rcat.off .ic{opacity:.55}
.rm-gsel{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)} .rm-gsel svg{width:15px;height:15px}
.rm-gsel select{max-width:260px}
.rm-table td.grp{max-width:240px;font-size:12.5px;line-height:1.7}
.rm-table td.who{font-size:12px;line-height:1.9;max-width:260px}
.rm-table td.who .tag{margin:0 4px 0 0}
.tag.ceo{background:var(--slate-soft);color:var(--slate-ink)} .tag.pv{background:var(--violet-soft);color:var(--violet-ink)} .tag.so{background:var(--violet-soft);color:var(--violet-ink)}
.gp{--c:#6B7280;display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--ink);margin-right:6px;white-space:nowrap}
.gp i{width:8px;height:8px;border-radius:3px;background:var(--c);flex:none}
.gl{--c:#6B7280;display:inline-block;font-size:11px;font-weight:700;color:var(--c);color:color-mix(in srgb,var(--c) 85%,var(--ink-hover));border:1px dashed var(--c);border-radius:999px;padding:0 7px;margin-right:4px;line-height:17px;white-space:nowrap}
.rm-bulk .bsep{width:1px;height:20px;background:rgba(255,255,255,.22);margin:0 2px}

/* 그룹 관리 화면 */
.gk-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 16px}
.gk-mode{display:flex;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.gk-mode .n{flex:none;width:30px;height:30px;border-radius:9px;background:var(--line-2);display:grid;place-items:center;font-weight:800;color:var(--ink-2)}
.gk-mode>div>b{display:block;font-size:14px} .gk-mode p b{color:var(--ink-2)} .gk-mode p{margin:3px 0 8px;font-size:12.5px;color:var(--muted);line-height:1.55}
.gk-mode .ex{display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px}
.gk-panel{padding:0}
.gk-panel>.hd{padding:14px 18px;border-bottom:1px solid var(--line-2);margin:0}
.gtree{list-style:none;margin:0;padding:6px 0}
.gnode{--c:#6B7280;--d:0;display:flex;align-items:center;gap:12px;padding:10px 18px 10px calc(18px + var(--d) * 30px);border-bottom:1px solid var(--line-2);position:relative}
.gnode:last-child{border-bottom:0}
.gnode.d1::before,.gnode.d2::before,.gnode.d3::before{content:"";position:absolute;left:calc(18px + (var(--d) - 1) * 30px + 15px);top:0;bottom:50%;width:12px;border-left:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-bottom-left-radius:6px}
.gsw{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--c);color:#fff}
.gsw svg{width:18px;height:18px}
.gmain{flex:1;min-width:0}
.gname{display:flex;align-items:center;gap:8px;flex-wrap:wrap} .gname b{font-size:14.5px} .gname small{font-size:12px}
.gmeta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--ink-2);margin-top:2px} .gmeta b{font-variant-numeric:tabular-nums}
.gextra{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:12px}
.grule{background:var(--orange-soft);color:var(--orange-ink);border:1px solid var(--orange-line);border-radius:6px;padding:1px 7px;font-weight:600}
.gsee{display:inline-flex;align-items:center;gap:4px;color:var(--violet-ink);font-weight:600} .gsee svg{width:13px;height:13px}
.gacts{display:flex;align-items:center;gap:4px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.gacts .btn.ic{width:30px;padding:0;justify-content:center} .gacts .btn.ic svg{margin:0}
.gacts .btn.danger{color:var(--bad)}
.gk-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 16px!important;text-align:center}
.gk-empty>svg{width:34px;height:34px;color:var(--muted)} .gk-empty b{font-size:15px;color:var(--ink)} .gk-empty span{font-size:13px;color:var(--muted);line-height:1.7}
.mk-dlg.gdlg{width:600px;max-height:calc(100vh - 32px);overflow:auto}
.mk-dlg.gdlg label.f,.mk-dlg.gdlg div.f{margin-bottom:12px}
.mk-dlg.gdlg textarea{resize:vertical;min-height:56px;font-family:inherit}
.grow2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px}
.gkind{display:flex;gap:6px}
.gkind label{flex:1;cursor:pointer}
.gkind input{position:absolute;opacity:0;pointer-events:none}
.gkind span{display:block;padding:7px 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink)}
.gkind span b{display:block;font-size:13px} .gkind span small{display:block;font-size:11px;color:var(--muted);font-weight:500}
.gkind input:checked+span{border-color:var(--accent);background:var(--accent-soft)}
.gkind input:disabled+span{opacity:.6;cursor:not-allowed}
.gprev{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;margin:-4px 0 12px;font-size:12.5px}
.gprev .h{margin-bottom:6px} .gprev .warn{color:var(--warn);font-weight:600}
.gprev .names{display:flex;flex-wrap:wrap;gap:4px;max-height:110px;overflow:auto}
.gprev .names span{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1px 7px;color:var(--ink)} .gprev .names span.more{border:0;background:none;color:var(--muted)}
.gprev .names.rmlist{max-height:180px}
.gprev .rm{display:inline-flex;align-items:center;gap:4px;padding:1px 3px 1px 8px}
.gprev .rm .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.gprev .rm button.x{all:unset;cursor:pointer;color:var(--muted);font-size:11px;line-height:1;padding:2px 5px;border-radius:5px}
.gprev .rm button.x:hover{background:var(--line-2);color:var(--bad-ink)}
.gprev .rm.out{background:var(--line-2);border-color:var(--line-2);color:var(--muted);text-decoration:line-through;text-decoration-color:#B91C1C}
.gprev .rm.out .nm{color:var(--muted)}
.gprev .rm.out button.x{text-decoration:none;color:var(--accent,var(--blue-ink));font-weight:600;font-size:11px}
.gprev .rm.out button.x:hover{background:var(--surface);color:var(--accent,var(--blue-ink))}
.gprev .rmtip{margin-top:7px;font-size:11.5px;line-height:1.45}
.gcolors{display:flex;gap:6px;flex-wrap:wrap}
.gcol{--c:#6B7280;cursor:pointer} .gcol input{position:absolute;opacity:0;pointer-events:none}
.gcol i{display:block;width:28px;height:28px;border-radius:8px;background:var(--c);box-shadow:inset 0 0 0 2px rgba(255,255,255,.0)}
.gcol input:checked+i{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c)}
.gicons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.gico{cursor:pointer} .gico input{position:absolute;opacity:0;pointer-events:none}
.gico span{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border:1px solid var(--line);border-radius:9px;color:var(--ink-2)}
.gico span svg{width:17px;height:17px} .gico small{font-size:10.5px;font-weight:600}
.gico input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
@media (max-width:1060px){ .gk-modes{grid-template-columns:1fr} }
@media (max-width:760px){
  .gnode{flex-wrap:wrap;padding-left:calc(14px + var(--d) * 16px)} .gacts{width:100%;justify-content:flex-start;padding-left:48px}
  .gnode.d1::before,.gnode.d2::before,.gnode.d3::before{display:none}
  .grow2{grid-template-columns:1fr} .gicons{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* 직원 계정 — 여러 사람 · 부서 */
.st-people td{padding:9px 10px;font-size:13px;vertical-align:middle}
.st-people td.nm{white-space:nowrap} .st-people .pnm{display:inline-flex;align-items:center;gap:9px}
.st-people .pav{width:28px;height:28px;border-radius:50%;background:var(--violet-soft);color:var(--violet-ink);display:grid;place-items:center;font-weight:800;font-size:12.5px;flex:none}
.st-people tr.off td{color:var(--muted)} .st-people tr.off .pav{background:var(--line-2);color:var(--muted)}
.st-people td.act{white-space:nowrap}
.st-depts{list-style:none;margin:0 0 12px;padding:0}
.st-depts li{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:13px}
.st-depts li small{color:var(--muted);font-size:12px} .st-depts li .sp{flex:1}
.st-depts .btn.danger{color:var(--bad)}
.st-dadd,.st-dedit{display:flex;gap:8px;align-items:center} .st-dadd input{flex:1;max-width:280px;height:32px} .st-dedit input{flex:1;height:30px}
.st-dedit{width:100%}
.mk-dlg.pdlg{width:620px;max-height:calc(100vh - 32px);overflow:auto}
.mk-dlg.pdlg label.f{margin-bottom:12px}
.mk-dlg.pdlg .st-switch{margin-bottom:14px}
.mk-dlg.pdlg .row{align-items:center}
.mk-dlg.pdlg .btn.danger{color:var(--bad)}
.st-log td:nth-child(2){white-space:nowrap;font-weight:600}

/* 대화 올리기 — 사람 · 부서 고르기 */
.up-seepick{margin:6px 0 2px 28px}
.up-seepick[hidden]{display:none}
.up-allnote{font-size:12px;margin:8px 0 0}
.up-opt.dis{opacity:.55;cursor:not-allowed}
.btn[hidden]{display:none}
.rm-bulk{width:max-content}
.gacts svg.rot-up{transform:rotate(-90deg)} .gacts svg.rot-down{transform:rotate(90deg)}
.st-people td.act .btn{vertical-align:middle}

/* 16.7판: 모음 (티로·메일·문자·파일) */
.collbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 12px}
.collbar .lab{font-size:12px;color:var(--muted);font-weight:600;margin-right:2px}
.collbar .chip{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;text-decoration:none}
.collbar .chip i{width:8px;height:8px;border-radius:50%;background:var(--c,#6B7280);flex:none}
.collbar .chip em{font-style:normal;color:var(--muted);font-size:11.5px}
.collbar .chip.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.collbar .chip.on em{color:var(--on-ink);opacity:.7} .collbar .chip.on i{background:var(--surface)}
.collbar .right{margin-left:auto;display:flex;gap:6px}
.collbar #cPickStart.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.collnote{margin:-6px 0 12px;font-size:12.5px}
/* 목록의 고르기 네모 — '골라서 담기' 를 켰을 때만 보임 */
.rpick{display:none;width:16px;height:16px;border:1.5px solid var(--line);border-radius:4px;flex:none;cursor:pointer;background:var(--surface);position:relative}
body.coll-pick .rpick{display:inline-block}
.rpick.on{background:var(--accent);border-color:var(--accent)}
.rpick.on::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}
.collbar-float{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:var(--float);color:var(--on-float);padding:10px 14px;border-radius:14px;box-shadow:0 12px 34px rgba(0,0,0,.3);z-index:60;flex-wrap:wrap;max-width:min(94vw,760px)}
.collbar-float[hidden]{display:none}
.collbar-float b{font-size:13.5px} .collbar-float select{height:30px;border-radius:8px;border:0;padding:0 8px;font:inherit;font-size:13px}
.clist{display:flex;flex-direction:column;gap:7px;max-height:300px;overflow:auto;margin-bottom:12px}
.crow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crow .dot{width:10px;height:10px;border-radius:50%;flex:none}
.crow .cn{flex:1;min-width:120px;height:30px;border:1px solid var(--line);border-radius:7px;padding:0 9px;font:inherit;font-size:13px}
.crow .cc{display:flex;gap:4px;flex-wrap:wrap}
.cnew{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line-2);padding-top:12px}
.cnew #cNewName{flex:1;min-width:140px;height:32px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font:inherit}

/* ── 17.3판 화면 밝기 단추 (사이드바 아래 · 직원 대화 화면 위쪽) */
.theme-sw{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.theme-sw .lb{font-size:11.5px;color:var(--muted);flex:none}
.theme-sw .seg2{display:flex;flex:1;background:var(--line-2);border-radius:9px;padding:2px;gap:2px}
.theme-sw button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:12px;font-weight:600;padding:0 6px}
.theme-sw button .i{width:14px;height:14px}
.theme-sw button:hover{color:var(--ink)}
.theme-sw button[aria-pressed="true"]{background:var(--surface);color:var(--accent-ink);box-shadow:0 0 0 1px var(--accent-line)}
.theme-sw button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.staffbar .theme-sw{margin:0;flex:none}
.staffbar .theme-sw .lb{display:none}
.staffbar .theme-sw .seg2{flex:none}
.staffbar .theme-sw button{flex:none;width:34px;padding:0}
.staffbar .theme-sw button span{display:none}

/* ── 17.4판: 새로고침 없이 (live.js) — 새로 들어온 줄 잠깐 강조 · 숫자가 늘면 살짝 · 읽는 중이면 '새로 들어온 것' 단추 */
@keyframes lvNew{0%{background-color:var(--accent-soft-2);box-shadow:inset 3px 0 0 var(--accent)}70%{background-color:var(--accent-soft)}100%{background-color:transparent;box-shadow:inset 3px 0 0 transparent}}
.lv-new{animation:lvNew 2.4s ease-out 1}
.cmsg.lv-new,.sys.lv-new{animation:none}
.cmsg.lv-new .bubble,.cmsg.lv-new .photos,.cmsg.lv-new .fcard{animation:lvBub 2.4s ease-out 1}
@keyframes lvBub{0%{box-shadow:0 0 0 3px var(--accent-line)}100%{box-shadow:0 0 0 0 transparent}}
@keyframes lvBump{0%{transform:scale(1)}35%{transform:scale(1.22)}100%{transform:scale(1)}}
.nav .cnt.lv-bump,.nav .badge.lv-bump{animation:lvBump .6s ease-out 1}
.lv-pill{position:sticky;top:8px;z-index:6;display:flex;align-items:center;gap:6px;margin:8px auto -39px;width:max-content;max-width:calc(100% - 16px);
  height:31px;box-sizing:border-box;padding:0 14px;grid-column:1/-1;border-radius:999px;border:1px solid var(--accent-line);background:var(--float);color:var(--on-float);
  font-family:inherit;font-weight:600;font-size:12.5px;line-height:1.2;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.lv-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.lv-pill:hover{filter:brightness(1.08)}
.lv-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lv-pill.bottom{top:auto;bottom:12px;margin:-39px auto 8px}                       /* 떠 있는 단추 — 아래 목록을 밀어내지 않음 (누르려던 줄이 움직이지 않게) */
@media (prefers-reduced-motion:reduce){.lv-new,.cmsg.lv-new .bubble,.nav .cnt.lv-bump,.nav .badge.lv-bump{animation:none}}

/* ── 18.1판: 패치노트 (/patchnotes) — 날마다 바뀐 양을 보여 주는 띠 하나만 눈에 띄게, 나머지는 조용한 기록장 */
.pn .lead{margin-bottom:14px} .pn-meta{display:inline-block;margin-left:6px;color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
.pn-strip-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px 8px;margin-bottom:16px;overflow-x:auto}
.pn-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(4px,1fr);gap:4px;height:64px;align-items:end}
.pn-strip .d{display:flex;align-items:flex-end;height:100%;border-radius:4px}
.pn-strip .d i{display:block;width:100%;height:var(--h);min-height:3px;border-radius:4px 4px 2px 2px;background:var(--accent);opacity:.85;transition:opacity .15s}
.pn-strip .d.z i{height:3px;background:var(--line-strong);opacity:.6}
.pn-strip a.d:not(.z):hover i,.pn-strip a.d:focus-visible i{opacity:1;background:var(--accent-ink)}
.pn-strip a.d:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pn-ticks{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(4px,1fr);gap:4px;margin-top:5px;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.pn-ticks span{white-space:nowrap;overflow:visible;min-width:0} .pn-ticks span:last-child{display:flex;justify-content:flex-end}   /* 끝 날짜는 왼쪽으로 넘치게 (띠 밖으로 밀리지 않게) */
.pn-tools{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.pn-tools input[type=search]{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14px;background:var(--field);color:var(--ink);max-width:520px;width:100%}
.pn-chips{display:flex;flex-wrap:wrap;gap:6px}
.pn-kinds{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pn-kind{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.pn-kind .n{font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.pn-kind[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.pn-kind:focus-visible,.pn-tog:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pn-kinds .linkbtn{margin-left:auto}
.pn-count{margin:0;font-size:12.5px;color:var(--muted);min-height:1em}
.pn .n i,.pn .c i,.pn .f i,.pn .s i{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.pn .n i{background:var(--accent)} .pn .c i{background:var(--blue-ink)} .pn .f i{background:var(--warn)} .pn .s i{background:var(--violet-ink)}
.pn-tl{position:relative;margin-top:6px}
.pn-day{position:relative;padding-left:26px;padding-bottom:6px;scroll-margin-top:14px}
.pn-day::before{content:"";position:absolute;left:7px;top:10px;bottom:0;width:2px;background:var(--line)}
.pn-day:last-of-type::before{bottom:24px}
.pn-date{position:relative;display:flex;align-items:baseline;gap:8px;margin:14px 0 10px;font-size:15px;font-weight:700;letter-spacing:-.01em}
.pn-date::before{content:"";position:absolute;left:-24px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}
.pn-date span{font-size:12px;font-weight:500;color:var(--muted)}
.pn-rel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:12px;scroll-margin-top:14px;transition:box-shadow .3s}
.pn-rel.flash{box-shadow:0 0 0 3px var(--accent-soft-2)}
.pn-head{display:flex;align-items:flex-start;gap:12px}
.pn-no{flex:none;min-width:34px;height:26px;padding:0 7px;border-radius:7px;background:var(--accent-soft);color:var(--accent-ink);font-weight:800;font-size:13px;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.pn-ttl{min-width:0;flex:1;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:2px}
.pn-ttl h3{margin:0;font-size:16.5px;font-weight:750;letter-spacing:-.01em;line-height:1.35}
.pn-ver{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.pn-tog{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:8px;height:28px;padding:0 10px;font:inherit;font-size:12.5px;cursor:pointer}
.pn-tog:hover{border-color:var(--line-strong);color:var(--ink)}
.pn-sum{margin:8px 0 8px 46px;font-size:14px;font-weight:600;color:var(--ink);line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.pn-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:46px}
.pn-cnt{display:inline-flex;flex-wrap:wrap;gap:10px;margin-left:6px;font-size:12px;color:var(--muted)}
.pn-cnt span{display:inline-flex;align-items:center;gap:5px}
.pn-note{margin:8px 0 0 46px;font-size:12.5px;color:var(--warn-ink);background:var(--warn-soft-2);border:1px solid var(--warn-line);border-radius:8px;padding:6px 10px}
.pn-brief{list-style:none;margin:8px 0 0 46px;padding:0;display:flex;flex-direction:column;gap:4px}
.pn-brief li{position:relative;padding-left:14px;font-size:13.5px;color:var(--ink);line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.pn-brief li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.pn-body .pn-sum{margin:0 0 4px}
.pn-body .pn-tags{margin:0}
.pn-body{margin:12px 0 0 46px;display:grid;gap:12px}
.pn-rel.closed .pn-body{display:none}
.pn-k h4{display:flex;align-items:center;gap:7px;margin:0 0 4px;font-size:13px;font-weight:700;color:var(--ink-2)}
.pn-k ul{margin:0;padding-left:20px;font-size:13.5px;line-height:1.7;color:var(--ink)} .pn-k li{margin:2px 0;word-break:keep-all;overflow-wrap:anywhere}
.pn-k.n li::marker{color:var(--accent)} .pn-k.c li::marker{color:var(--blue-ink)} .pn-k.f li::marker{color:var(--warn)} .pn-k.s li::marker{color:var(--violet-ink)}
.pn-empty{padding:30px 0 30px 26px;color:var(--muted)}
.pn-foot{margin-top:14px} .pn-prob{margin-top:12px}
@media (max-width:640px){
  .pn-strip,.pn-ticks{gap:2px} .pn-strip-wrap{padding:12px 12px 8px}
  .pn-day{padding-left:18px} .pn-day::before{left:3px} .pn-date::before{left:-20px}
  .pn-rel{padding:14px 14px} .pn-sum,.pn-tags,.pn-note,.pn-body,.pn-brief{margin-left:0}
  .pn-kinds .linkbtn{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.pn-rel,.pn-strip .d i{transition:none}}

/* ── 관리 › 톡클라우드 로그인 (18.2판) — 풀렸을 때만 크게, 평소엔 알약 하나 */
.adm-tc{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:-6px 0 18px}
.adm-tc.bad,.adm-tc.warn{padding:14px 16px;border-radius:var(--r);border:1px solid var(--bad-line);background:var(--bad-soft-2)}
.adm-tc.warn{border-color:var(--warn-line);background:var(--warn-soft-2)}
.adm-tc .tx{display:flex;flex-direction:column;gap:4px;flex:1 1 420px;min-width:0}
.adm-tc .tx b{font-size:14px;color:var(--bad-ink)}
.adm-tc.warn .tx b{color:var(--warn-ink)}
.adm-tc .tx span{font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.adm-tc .btn{flex:none}
.adm-tc .btn[disabled]{opacity:.55;cursor:not-allowed}
@media (max-width:640px){.adm-tc .btn{width:100%}}

/* ───────── 20판: 개인 자료 (2000번 NAS 김문규 폴더) — 파일 화면(.files)과 같은 틀 */
.files.personal .side .pstat{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;padding:2px 9px 6px;font-size:12px;color:var(--muted)}
.files.personal .side .pstat div{display:flex;flex-direction:column;gap:1px} .files.personal .side .pstat b{color:var(--ink-2);font-weight:600;font-size:12.5px}
.files.personal .tile .sn{padding:0 11px 10px;font-size:11.5px;line-height:1.45;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-break:break-all}
.files.personal .empty.pintro{max-width:560px;margin:40px auto 0;text-align:left;color:var(--ink-2);line-height:1.6}
.files.personal .empty.pintro b{display:block;font-size:15px;color:var(--ink);margin-bottom:8px}
.files.personal .empty.pintro p{margin:0 0 12px;font-size:13.5px} .files.personal .empty.pintro p.muted{font-size:12.5px}
.files.personal .ptext{margin:0;max-height:52vh;overflow:auto;white-space:pre-wrap;word-break:break-word;font:12.5px/1.6 inherit;font-family:inherit;color:var(--ink-2);background:var(--surface-3);border:1px solid var(--line-2);border-radius:8px;padding:10px 12px}
@media (max-width:900px){ .files.personal .side .pstat{display:none} }

/* ── 18.6판(22판): 지표 — 회사 지표 엑셀의 시트 29개 ── */
.kpi-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:4px 0 14px;padding:6px 8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.kpi-tabs .grp{display:inline-flex;align-items:center;gap:2px;padding:0 6px 0 2px;margin-left:4px;border-left:1px solid var(--line)}
.kpi-tabs .kgl{font-size:11px;color:var(--muted-2);font-weight:700;padding:0 5px 0 6px;letter-spacing:.02em}
table.kpi-in.small td,table.kpi-in.small th{padding:3px 5px}
.kpi-tabs a{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:7px;font-size:12.5px;color:var(--ink-2);white-space:nowrap;font-weight:500}
.kpi-tabs a:hover{background:var(--line-2);color:var(--ink)} .kpi-tabs a.on{background:var(--ink);color:var(--on-ink);font-weight:600}
.kpi-kinds{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px} .kpi-kinds .chip small{font-size:11.5px;color:var(--muted);margin-left:2px} .kpi-kinds .chip.on small{color:var(--on-ink);opacity:.8}
.kpi-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px} .kpi-bar .sp{flex:1}
.kpi-note{font-size:12.5px;color:var(--muted);line-height:1.6} .kpi-note b{color:var(--ink);font-size:14px;margin-right:2px}
.kpi-inline{display:flex;align-items:center;gap:8px;margin:0} .kpi-inline label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.kpi-wrap{overflow:auto;max-height:calc(100vh - 230px);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);scrollbar-width:thin}
table.kpi{width:max-content;min-width:100%;font-size:12.5px;border-collapse:separate;border-spacing:0}
table.kpi th,table.kpi td{padding:6px 9px;white-space:nowrap;border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2)}
table.kpi th{position:sticky;top:0;z-index:3;background:var(--surface-2);color:var(--ink-2);font-size:11.5px;font-weight:600;text-align:center}
table.kpi thead tr.g th{top:0;height:28px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:700;background:var(--surface-3)}
table.kpi thead tr.g th.lblg{background:var(--surface-2)}
table.kpi thead tr:nth-child(2) th{top:29px;height:34px}
table.kpi th.r{text-align:right}
table.kpi td.r{text-align:right;font-variant-numeric:tabular-nums} table.kpi td.d{color:var(--ink-2)} table.kpi td.t{max-width:260px;overflow:hidden;text-overflow:ellipsis}
table.kpi td.zero{color:var(--muted-2)} table.kpi td.neg{color:var(--bad)} table.kpi td.none{color:var(--muted-2)} table.kpi td.rank{font-weight:700;color:var(--accent-ink)}
table.kpi .lbl{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;font-weight:600;color:var(--ink);max-width:120px;overflow:hidden;text-overflow:ellipsis}
table.kpi th.lbl{z-index:4;background:var(--surface-2)}
table.kpi .l0{left:0;min-width:64px} table.kpi .l1{left:64px;min-width:72px} table.kpi .l2{left:136px;min-width:104px;border-right:1px solid var(--line-strong)}
table.kpi tr.store td.l0,table.kpi tr.store td.l1{color:var(--muted);font-weight:500}
table.kpi tr.nodata td{color:var(--muted-2)} table.kpi tr.nodata td.lbl{color:var(--muted-2)}
table.kpi tr.sub td{background:var(--surface-3);font-weight:600;color:var(--ink)} table.kpi tr.sub td.lbl{background:var(--surface-3)}
table.kpi tr.total td{position:sticky;bottom:0;z-index:2;background:var(--accent-soft);color:var(--accent-ink);font-weight:700;border-top:1px solid var(--accent-line)} table.kpi tr.total td.lbl{z-index:3;background:var(--accent-soft)}
table.kpi tbody tr:hover td{background:var(--surface-2)} table.kpi tbody tr.total:hover td{background:var(--accent-soft)}
table.kpi td.tg input.tg{width:76px;height:26px;padding:0 6px;text-align:right;font-size:12.5px;border-radius:6px}
table.kpi.editing td.tg{background:var(--accent-soft-2)}
table.kpi-in input{height:28px;font-size:12.5px;padding:0 7px;min-width:110px;border-radius:6px} table.kpi-in input.r{text-align:right;min-width:90px}
table.kpi-in.small{width:auto;min-width:0;font-size:12px} table.kpi-in.small input{min-width:70px;height:26px} table.kpi-in.small th{position:static;background:transparent}
.kpi-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 20px;margin-bottom:14px}
.kpi-panel .hd{display:flex;align-items:center;margin-bottom:12px} .kpi-panel .hd h2{margin:0;font-size:15px} .kpi-panel .hd .sp{flex:1}
.kpi-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end} .kpi-form label.f{min-width:160px} .kpi-form label.f select{width:auto;height:36px}
.kpi-checks{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-2);flex-basis:100%} .kpi-checks label{display:flex;gap:8px;align-items:center} .kpi-checks input{width:auto;height:auto}
.kpi-log{margin:12px 0 0;max-height:220px;overflow:auto;background:var(--surface-3);border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;font:12.5px/1.6 inherit;white-space:pre-wrap;color:var(--ink-2)}
.kpi-cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.kpi-cfg-grid section{border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;background:var(--surface-2)} .kpi-cfg-grid h3{margin:0 0 6px;font-size:13.5px}
.kpi-cfg-grid p.muted{font-size:12px;margin:0 0 8px;line-height:1.5} .kpi-cfg-grid .row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.kpi-cfg-grid .row label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)} .kpi-cfg-grid .row label input{width:110px;height:30px;font-size:12.5px}
.kpi-cfg-grid .row.wrap label input{width:70px}
.kpi-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--float);color:var(--on-float);padding:10px 16px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:50}
.kpi-toast.show{opacity:1;transform:translateX(-50%)} .kpi-toast.bad{background:var(--bad)}
@media (max-width:900px){ .kpi-wrap{max-height:none} table.kpi .l1,table.kpi .l0{position:static} }

/* ── 23판 (웹 18.7) 전산 연동 화면 /sales/sync ───────────────────────── */
.erp-hero{--tone:var(--muted);--tone-soft:var(--surface-3);display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--tone);
  border-radius:var(--r);padding:18px 22px;margin:4px 0 14px}
.erp-hero.erp-live{--tone:var(--accent);--tone-soft:var(--accent-soft)}
.erp-hero.erp-loading,.erp-hero.erp-work{--tone:var(--blue-ink);--tone-soft:var(--blue-soft)}
.erp-hero.erp-retry,.erp-hero.erp-stale{--tone:var(--warn);--tone-soft:var(--warn-soft)}
.erp-hero.erp-bad{--tone:var(--bad);--tone-soft:var(--bad-soft)}
.erp-beacon{position:relative;width:40px;height:40px;border-radius:50%;background:var(--tone-soft);display:grid;place-items:center;flex:none}
.erp-beacon i{width:12px;height:12px;border-radius:50%;background:var(--tone)}
.erp-hero.erp-live .erp-beacon::after,.erp-hero.erp-loading .erp-beacon::after,.erp-hero.erp-work .erp-beacon::after{content:"";position:absolute;inset:8px;border-radius:50%;
  border:2px solid var(--tone);opacity:0;animation:erpPing 2.4s ease-out infinite}
@keyframes erpPing{0%{transform:scale(.6);opacity:.55}80%,100%{transform:scale(1.6);opacity:0}}
.erp-state{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.erp-state b{font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.erp-state span{color:var(--ink-2);font-size:13px}
.erp-today{display:flex;gap:6px;margin:0}
.erp-today div{min-width:78px;padding:6px 14px;border-left:1px solid var(--line-2);text-align:right}
.erp-today dt{font-size:11.5px;color:var(--muted);font-weight:600}
.erp-today dd{margin:2px 0 0;font-size:20px;font-weight:700;letter-spacing:-.02em}
.erp-progress{display:flex;align-items:center;gap:12px;margin:-4px 0 14px;font-size:12.5px;color:var(--ink-2)}
.erp-progress[hidden]{display:none}
.erp-progress .bar{position:relative;flex:0 0 220px;height:6px;border-radius:99px;background:var(--line-2);overflow:hidden}
.erp-progress .bar i{position:absolute;top:0;bottom:0;width:38%;border-radius:99px;background:var(--blue-ink);animation:erpSlide 1.6s ease-in-out infinite}
@keyframes erpSlide{0%{left:-40%}100%{left:100%}}
.erp-cards .card .note{font-size:12px;color:var(--muted);margin-top:6px}
.erp-cards .card .v small{font-size:13px;font-weight:600;color:var(--muted);margin-left:3px}
.erp-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}
.erp-grid .panel{margin-bottom:18px;min-width:0}
.erp-small{font-size:12.5px;margin-left:10px}
.erp-live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.erp-events .tbl-wrap{overflow-x:auto;max-height:520px;overflow-y:auto}
.erp-events table{min-width:540px} .erp-events .tag{white-space:nowrap} .erp-events td{white-space:nowrap}
.erp-events td{padding:9px 10px;font-size:13px}
.erp-events td.erp-time{color:var(--muted);white-space:nowrap}
.erp-events td.erp-code{color:var(--ink-2);font-size:12.5px;letter-spacing:.01em}
.erp-events tr.erp-empty td{color:var(--muted);text-align:center;padding:36px 10px}
.erp-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.erp-steps li{display:flex;gap:12px;padding:8px 0;position:relative}
.erp-steps li i{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);flex:none;margin-top:2px;z-index:1}
.erp-steps li:not(:last-child)::before{content:"";position:absolute;left:7px;top:22px;bottom:-6px;width:2px;background:var(--line-2)}
.erp-steps li.done i{background:var(--accent);border-color:var(--accent)}
.erp-steps li.now i{border-color:var(--blue-ink);box-shadow:0 0 0 3px var(--blue-soft)}
.erp-steps li b{display:block;font-size:13px;font-weight:600;color:var(--ink)}
.erp-steps li.todo b{color:var(--muted);font-weight:500}
.erp-steps li span{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.erp-sub{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2)}
.erp-sub h3{font-size:13px;margin:0 0 10px;font-weight:700}
.erp-sub h3 small{font-weight:500;color:var(--muted);margin-left:6px;font-size:12px}
.erp-trans{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.erp-trans li{display:grid;grid-template-columns:76px minmax(0,1fr) 16px minmax(0,1fr);gap:8px;align-items:center;font-size:12.5px}
.erp-trans .col{color:var(--muted);font-weight:600}
.erp-trans .raw{color:var(--ink-2);background:var(--surface-3);border-radius:6px;padding:2px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.erp-trans .to{color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:2px 8px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.erp-trans .arr{color:var(--muted-2);text-align:center}
.erp-agree,.erp-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.erp-agree li{display:grid;grid-template-columns:88px minmax(0,1fr) 52px;gap:10px;align-items:center;font-size:12.5px}
.erp-bars li{display:grid;grid-template-columns:minmax(120px,240px) minmax(0,1fr) 88px;gap:12px;align-items:center;font-size:13px}
.erp-agree .col,.erp-bars .name{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.erp-agree .track,.erp-bars .track{height:8px;border-radius:99px;background:var(--line-2);overflow:hidden}
.erp-agree .track i{display:block;height:100%;background:var(--accent);border-radius:99px}
.erp-bars .track i{display:block;height:100%;background:var(--chart-bar, var(--accent-line));border-radius:99px}
.erp-agree .pct,.erp-bars .n{text-align:right;font-weight:600;color:var(--ink)}
.erp-foot{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.65}
.nav .sub.erpsub a .dot.live{background:var(--accent)} .nav .sub.erpsub a .dot.warn{background:var(--warn)} .nav .sub.erpsub a .dot.bad{background:var(--bad)}
.nav .sub.erpsub a .dot.none{background:var(--muted-2)} .nav .sub.erpsub a .dot.work{background:var(--blue-ink)}
.erp-line{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);margin:0 0 12px;padding:5px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.erp-line i{width:7px;height:7px;border-radius:50%;background:var(--muted-2)} .erp-line.live i{background:var(--accent)} .erp-line.warn i{background:var(--warn)}
.erp-line.bad i{background:var(--bad)} .erp-line.work i{background:var(--blue-ink)} .erp-line:hover{border-color:var(--line-strong)}
@media (max-width:1080px){.erp-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){.erp-hero{flex-wrap:wrap}.erp-today{width:100%;justify-content:space-between}.erp-today div{flex:1;text-align:left;padding-left:10px}
  .erp-bars li{grid-template-columns:minmax(0,1fr) 70px}.erp-bars .track{grid-column:1 / -1;order:3}.erp-progress .bar{flex-basis:120px}}
@media (prefers-reduced-motion:reduce){.erp-hero .erp-beacon::after,.erp-progress .bar i{animation:none}.erp-progress .bar i{left:0;width:100%;opacity:.5}}
/* 25판 · 실적 (perf.html) — 51번 PC 실적자동화가 취합한 매장 실적 */
.nav a .cnt.perf-work{background:var(--blue-soft);color:var(--blue-ink)} .nav a .cnt.perf-none{background:var(--surface-3);color:var(--muted)}
.pf-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.pf-date{display:flex;align-items:center;gap:8px}
.pf-dateform input[type=date]{height:32px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--ink);padding:0 10px;font-size:13px}
.pf-dko{font-size:15px;font-weight:700;letter-spacing:-.01em}
.btn.icon{width:32px;padding:0;justify-content:center} .btn.icon.off{opacity:.35;pointer-events:none}
.pf-stage{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;background:var(--blue-soft);color:var(--blue-ink)}
.pf-stage i{width:8px;height:8px;border-radius:50%;background:currentColor} .pf-stage.final{background:var(--accent-soft);color:var(--accent-ink)}
.pf-stage.mid i{animation:pfPulse 1.6s ease-in-out infinite} @keyframes pfPulse{0%,100%{opacity:1}50%{opacity:.35}}
.pf-slots{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.pf-slot{display:flex;flex-direction:column;gap:2px;min-width:104px;padding:9px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none}
.pf-slot b{font-size:14px;font-weight:700} .pf-slot span{font-size:11.5px;color:var(--muted)}
.pf-slot:hover{border-color:var(--line-strong)} .pf-slot.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)} .pf-slot.on span{color:var(--accent-ink);opacity:.8}
.pf-slot.todo{opacity:.55;border-style:dashed;cursor:default} .pf-note{font-size:12.5px;color:var(--warn);margin-left:4px}
.pf-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:0 0 18px}
.pf-card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--line-strong);border-radius:var(--r);padding:14px 16px 12px}
.pf-card.all{border-top-color:var(--ink)} .pf-card.g-direct{border-top-color:#0F766E} .pf-card.g-branch{border-top-color:#2F6FED} .pf-card.g-agent{border-top-color:#7C3AED}
.pf-card .k{font-size:12.5px;font-weight:600;color:var(--muted)}
.pf-card .v{margin-top:4px;font-size:28px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}
.pf-card .v small{font-size:12px;font-weight:600;color:var(--muted)} .pf-card .v em{font-style:normal;font-size:12.5px;font-weight:700;margin-left:auto;padding:2px 7px;border-radius:6px}
.pf-card .v em.up{background:var(--accent-soft);color:var(--accent-ink)} .pf-card .v em.down{background:var(--bad-soft);color:var(--bad)} .pf-card .v em.flat{background:var(--surface-3);color:var(--muted)}
.pf-card .mini{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px solid var(--line-2);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 8px}
.pf-card .mini li{display:flex;flex-direction:column;font-size:11.5px;color:var(--muted);min-width:0} .pf-card .mini li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .pf-card .mini li b{font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
.pf-card .note{font-size:11.5px;color:var(--muted);margin-top:8px}
.pf-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:18px;align-items:start}
.pf-grid .panel{margin-bottom:18px;min-width:0} .pf-side .panel{margin-bottom:14px}
.pf-find{display:flex;gap:6px;align-items:center;margin-right:8px} .pf-find input[type=search]{height:30px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--ink);padding:0 10px;font-size:13px;width:150px}
.pf-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px} .pf-chips .chip{height:28px;padding:0 11px;font-size:12.5px;cursor:pointer}
.pf-stores .tbl-wrap{overflow:auto;max-height:640px} .pf-tbl{min-width:760px;border-collapse:separate;border-spacing:0}
.pf-tbl th{position:sticky;top:0;background:var(--surface);z-index:1;white-space:nowrap;font-size:12px} .pf-tbl td{white-space:nowrap;font-size:13px;padding:7px 9px}
.pf-tbl td.name{font-weight:600} .pf-tbl td.name small{display:block;font-weight:400;font-size:11px} .pf-tbl .num{text-align:right;font-variant-numeric:tabular-nums} .pf-tbl td.zero{color:var(--muted-2)}
.pf-tbl tr.miss td{background:var(--warn-soft-2)} .pf-tbl td .dash{color:var(--muted-2)}
.tag.g-direct{background:#E4F2F0;color:#0B5B55} .tag.g-branch{background:#E7EEFC;color:#1D4ED8} .tag.g-agent{background:#F1EAFE;color:#6D28D9}
html[data-theme="dark"] .tag.g-direct{background:#163430;color:#86DCCF} html[data-theme="dark"] .tag.g-branch{background:#1E2A4A;color:#9DB8F7} html[data-theme="dark"] .tag.g-agent{background:#2B2340;color:#C4B1FA}
.pf-miss{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px} .pf-miss li{display:flex;flex-direction:column;gap:2px;font-size:13px} .pf-miss li b{font-size:12px;color:var(--muted)} .pf-miss li span{color:var(--ink);line-height:1.55}
.erp-acct-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:12px 16px;align-items:end;margin-top:12px}
.erp-acct-form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted)} .erp-acct-form input[type=email],.erp-acct-form input[type=password]{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:14px}
.erp-acct-form .erp-acct-on{grid-column:1 / -1;flex-direction:row;align-items:center;gap:8px;color:var(--ink);font-size:13.5px} .erp-acct-form .erp-acct-on input{width:16px;height:16px;margin:0;flex:0 0 auto;accent-color:var(--accent)} .erp-acct-form .erp-acct-on span{flex:1}
.erp-acct-form .erp-acct-btns{grid-column:1 / -1;display:flex;gap:8px;align-items:center;flex-wrap:wrap} .erp-acct-msg{font-size:13px;color:var(--muted)} .erp-acct-msg.ok{color:#166534} .erp-acct-msg.bad{color:#B91C1C}
@media (max-width:720px){.erp-acct-form{grid-template-columns:1fr}}
.pf-rank-tabs{margin:0 0 10px} .pf-rank-tabs .chip{height:26px;padding:0 9px;font-size:12px}
.pf-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px} .pf-rank[hidden]{display:none}
.pf-rank li{display:grid;grid-template-columns:22px minmax(90px,1fr) minmax(0,1.2fr) 44px;gap:8px;align-items:center;font-size:13px}
.pf-rank .no{font-weight:700;color:var(--muted);text-align:center} .pf-rank .nm{display:flex;flex-direction:column;min-width:0} .pf-rank .nm small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-rank .track,.pf-trend .track{height:8px;border-radius:99px;background:var(--line-2);overflow:hidden} .pf-rank .track i,.pf-trend .track i{display:block;height:100%;background:var(--accent);border-radius:99px}
.pf-rank b{text-align:right;font-variant-numeric:tabular-nums}
.pf-trend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pf-trend li{display:grid;grid-template-columns:52px minmax(0,1fr) 44px 92px;gap:8px;align-items:center;font-size:12.5px}
.pf-trend .d{color:var(--ink-2);font-weight:600} .pf-trend .d small{color:var(--muted);margin-left:3px;font-weight:400} .pf-trend b{text-align:right;font-variant-numeric:tabular-nums}
.pf-trend .split{color:var(--muted);font-size:11px;text-align:right;white-space:nowrap} .pf-trend li.sel .track i{background:var(--blue-ink)} .pf-trend li.mid .track i{opacity:.45}
.pf-cum{width:100%;border-collapse:collapse;font-size:13px} .pf-cum th,.pf-cum td{padding:6px 8px;border-bottom:1px solid var(--line-2)} .pf-cum .num{text-align:right;font-variant-numeric:tabular-nums} .pf-cum th{font-size:12px;color:var(--muted);font-weight:600}
.pf-final{margin-bottom:18px} .pf-pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.7;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:14px 16px;max-height:420px;overflow:auto}
.pf-foot{margin-top:4px}
@media (max-width:1100px){.pf-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){.pf-card .mini{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-trend li{grid-template-columns:52px minmax(0,1fr) 44px}.pf-trend .split{display:none}.pf-find input[type=search]{width:110px}}
@media (prefers-reduced-motion:reduce){.pf-stage.mid i{animation:none}}
/* 25판 · 전산 연동 — 받는 방식 (수집기 1.2) */
.erp-way{margin-bottom:18px}
.erp-way[hidden]{display:none}
.erp-way-note{margin:-4px 0 14px;font-size:13px;color:var(--ink-2);line-height:1.6}
.erp-way-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.erp-way-cell{padding:12px 14px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface-2,var(--surface))}
.erp-way-cell .k{font-size:12px;color:var(--muted);font-weight:600}
.erp-way-cell .v{margin-top:4px;font-size:15px;color:var(--ink)} .erp-way-cell .v b{font-size:22px;font-weight:700;letter-spacing:-.02em}
.erp-way-cell .track{height:7px;border-radius:99px;background:var(--line-2);overflow:hidden;margin-top:8px}
.erp-way-cell .track i{display:block;height:100%;background:var(--blue-ink);border-radius:99px;transition:width .6s ease}
.erp-way-cell .note{font-size:12px;color:var(--ink-2);margin-top:7px;line-height:1.5}
.erp-verify-tbl{min-width:420px} .erp-verify-tbl td,.erp-verify-tbl th{white-space:nowrap} .erp-verify-tbl td.num,.erp-verify-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.erp-verify .tbl-wrap{max-height:280px;overflow:auto}
@media (max-width:860px){.erp-way-grid{grid-template-columns:minmax(0,1fr)}}
.erp-bad{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:var(--warn-soft-2);color:var(--warn-ink);font-size:13px;line-height:1.55;border:1px solid var(--warn-line)}
/* (18.9판) 주제 우주 — 갈래 목록 · 매장 · 거래처 칩 · 진행 막대 */
.upanel .uchip{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:99px;padding:3px 9px;font-size:11.5px;color:#C3CCD5;cursor:pointer;font-family:inherit}
.upanel .uchip:hover{background:rgba(255,255,255,.14);color:#F2F5F7} .upanel .uchip.on{background:#F2F5F7;color:#0B1015;border-color:#F2F5F7}
.upanel .ugrid{display:grid;grid-template-columns:1fr 1fr;gap:6px} .upanel .ugrid .uitem b{display:flex;align-items:center;gap:6px;font-size:12px}
.upanel .udot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.upanel .ubar{height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;margin:6px 0} .upanel .ubar i{display:block;height:100%;background:linear-gradient(90deg,#0F766E,#5FD3C4)}
.upanel .umuted{color:#8FA0AF;font-size:11.5px;font-weight:400}
/* 19.0판(29판): 지표 › 판매데이터 — 연 · 월 고르기 · 합계표 · 판매 목록 */
.kpi-tabs a.kt-data{font-weight:600}
.sd-filter{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 16px;display:flex;flex-direction:column;gap:10px}
.sd-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.sd-lbl{flex:none;width:44px;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.02em}
.sd-years{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.sd-y,.sd-m{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:700;line-height:1.15;text-decoration:none;font-variant-numeric:tabular-nums}
.sd-y small,.sd-m small{font-size:11px;font-weight:500;color:var(--muted)}
.sd-y:hover,.sd-m:hover{border-color:var(--line-strong);background:var(--surface-2)}
.sd-y.on,.sd-m.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)} .sd-y.on small,.sd-m.on small{color:var(--on-ink);opacity:.75}
.sd-months{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:6px;flex:1;min-width:0}
.sd-m{min-width:0;padding:0 4px;font-size:13px} .sd-m.all{font-size:12.5px}
.sd-m.empty{color:var(--muted-2);background:var(--canvas)} .sd-m.empty small{color:var(--muted-2)}
.sd-tools{padding-top:10px;border-top:1px solid var(--line-2)}
.sd-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;height:30px;flex:none}
.sd-seg a{display:inline-flex;align-items:center;padding:0 12px;font-size:12.5px;font-weight:600;color:var(--ink-2);text-decoration:none}
.sd-seg a+a{border-left:1px solid var(--line)} .sd-seg a.on{background:var(--ink);color:var(--on-ink)}
.sd-kinds{display:inline-flex;gap:4px;flex-wrap:wrap}
.sd-tools .sel-sm{height:30px;font-size:12.5px;max-width:170px} .sd-tools .sd-store{max-width:190px}
.sd-q{height:30px;font-size:12.5px;flex:1;min-width:200px;max-width:340px}
.sd-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:2px 0 12px} .sd-head h2{margin:0;font-size:19px} .sd-head .muted{font-size:12.5px}
.sd-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:18px}
.sd-cards .card .k small{font-size:11px;font-weight:500}
.sd-cards .card .delta{white-space:normal;overflow-wrap:anywhere}
.panel .hd .sd-sub{font-size:12px;margin-left:10px}
.sd-chart{width:100%;height:230px;display:block;margin-bottom:6px}
.sd-chart .sd-bar{fill:var(--chart-bar)} .sd-chart a:hover .sd-bar{fill:var(--accent)}
.sd-chart .sd-line{stroke:var(--warn)} .sd-chart .sd-dot{fill:var(--warn)}
table.sd-sum{font-size:13px;font-variant-numeric:tabular-nums}
table.sd-sum th{font-size:11.5px} table.sd-sum td{padding:7px 10px}
table.sd-sum td.lb{font-weight:600;white-space:nowrap} table.sd-sum td.lb a{color:var(--ink)} table.sd-sum tr.link:hover td{background:var(--surface-2)} table.sd-sum td.lb a:hover{color:var(--accent-ink)}
table.sd-sum td.b{font-weight:700} table.sd-sum td.neg{color:var(--bad)} table.sd-sum tr.zero td{color:var(--muted-2)} table.sd-sum tr.wkend td.lb{color:var(--bad-ink)}
table.sd-sum .gcol{width:16%;min-width:80px} table.sd-sum td.gcol i{display:block;height:8px;border-radius:4px;background:var(--accent);opacity:.75;min-width:1px}
table.sd-sum tfoot td{border-top:1px solid var(--line-strong);border-bottom:none;font-weight:700;color:var(--ink);background:var(--surface-2)}
table.sd-bars td.lbl a{color:var(--ink);font-weight:600} table.sd-bars td.lbl a:hover{color:var(--accent-ink)}
table.sd-bars td.gauge i.k-w{background:#2F6FED} table.sd-bars td.gauge i.k-c{background:#7C3AED} table.sd-bars td.gauge i.k-r{background:#B45309}
.sd-kind{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:5px;background:var(--line-2);color:var(--ink-2)}
.sd-kind.k-w{background:var(--blue-soft);color:var(--blue-ink)} .sd-kind.k-c{background:var(--violet-soft);color:var(--violet-ink)} .sd-kind.k-r{background:var(--orange-soft);color:var(--orange-ink)}
.sd-wrap{max-height:calc(100vh - 260px)}
table.sd-tbl td{font-size:12.5px} table.sd-tbl th{text-align:left} table.sd-tbl th.r{text-align:right}
table.sd-tbl tbody tr:hover td{background:var(--surface-2)}
.sd-pager{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px} .sd-pager .sp{flex:1} .sd-pager .muted{font-size:12.5px}
.sd-pg{font-size:12.5px;font-weight:600;color:var(--ink-2);padding:0 8px;font-variant-numeric:tabular-nums}
.btn.busy{opacity:.6;pointer-events:none}
.sd-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:60;background:var(--ink);color:var(--on-ink);padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.18);max-width:min(92vw,560px)}
.sd-toast.bad{background:var(--bad);color:var(--on-bad)}
@media (max-width:1100px){ .sd-months{grid-template-columns:repeat(7,minmax(0,1fr))} }
@media (max-width:640px){
  .sd-filter{padding:10px}
  .sd-lbl{width:100%}
  .sd-months{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sd-y{min-width:0;flex:1 1 30%}
  .sd-q{min-width:0;max-width:none;flex:1 1 100%}
  .sd-tools .sel-sm,.sd-tools .sd-store{max-width:none;flex:1 1 45%}
  table.sd-sum .gcol{display:none}
}
.sd-periods.days .tbl-wrap{max-height:430px;overflow:auto;border:1px solid var(--line-2);border-radius:10px} .sd-periods.days table.sd-sum thead th{position:sticky;top:0;background:var(--surface);z-index:1}
.sd-periods.days table.sd-sum tfoot td{position:sticky;bottom:0}

/* ───────────── 20.0판(30판) — 지표 시트 고르기 · 대분류 · 직접 입력 띠 · 막대 그림 · 판매데이터 탭 · 판매리스트 ───────────── */
.nav a .cnt.erp-warn,.nav a .cnt.erp-stale,.nav a .cnt.erp-retry{background:var(--warn-soft);color:var(--warn-ink)}
.nav a .cnt.erp-bad{background:var(--bad-soft);color:var(--bad-ink)} .nav a .cnt.erp-none{background:var(--line-2);color:var(--muted)}
.nav a .cnt.erp-work,.nav a .cnt.erp-loading{background:var(--slate-soft);color:var(--slate-ink)}

/* 지표 — 갈래 · 시트 두 줄 */
.kn{margin:14px 0 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.kn-groups{display:flex;align-items:center;gap:4px;padding:6px;background:var(--surface-2);border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:thin}
.kn-g{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:9px;color:var(--ink-2);font-weight:600;font-size:13.5px;white-space:nowrap;transition:background .15s,color .15s}
.kn-g:hover{background:var(--line-2);color:var(--ink)}
.kn-g.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px var(--line)}
.kn-g small{font-size:11px;font-weight:600;color:var(--muted);background:var(--line-2);border-radius:5px;padding:0 6px;line-height:17px}
.kn-g.on small{background:var(--accent-soft);color:var(--accent-ink)}
.kn-g .i{width:14px;height:14px}
.kn-g.man{color:var(--warn-ink)} .kn-g.man:hover{background:var(--warn-soft-2)}
.kn-g.man.on{background:var(--warn-soft);color:var(--warn-ink);box-shadow:0 0 0 1px var(--warn-line)}
.kn-g.man small{background:var(--warn-soft-2);color:var(--warn-ink)}
.kn-sep{width:1px;height:22px;background:var(--line);margin:0 6px;flex:none}
.kn-sheets{display:flex;align-items:center;gap:2px;padding:0 10px;overflow-x:auto;scrollbar-width:thin}
.kn-sheets a{position:relative;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 12px;color:var(--muted);font-size:13.5px;font-weight:500;white-space:nowrap}
.kn-sheets a:hover{color:var(--ink)}
.kn-sheets a.on{color:var(--ink);font-weight:700}
.kn-sheets a.on::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2.5px;border-radius:2px 2px 0 0;background:var(--accent)}
.kn-sheets.man a .i{width:13px;height:13px;color:var(--warn)}
.kn-sheets.man a.on::after{background:var(--warn)}
.kn-sheets a i{font-style:normal;font-size:10.5px;font-weight:700;color:var(--warn-ink);background:var(--warn-soft);border-radius:4px;padding:0 5px;line-height:16px}
.kn-note{margin-left:auto;padding-left:14px;font-size:12px;color:var(--warn-ink);white-space:nowrap}
.kn-note.auto{color:var(--muted)}
@media (max-width:820px){ .kn-note{display:none} }

/* 요약 — 대분류 세그먼트 */
.kk{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;margin:0 0 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.kk-i{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:9px;color:var(--ink-2);font-size:13.5px;font-weight:600;white-space:nowrap}
.kk-i:hover{background:var(--line-2)}
.kk-i.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px var(--line)}
.kk-i b{font-weight:600;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.kk-i.on b{color:var(--ink-2)}
.kk-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ink)}
.kk-dot.k-w{background:#0F766E} .kk-dot.k-c{background:#2F6FED} .kk-dot.k-x{background:#B45309} .kk-dot.k-r{background:#0891B2} .kk-dot.k-s{background:#7C3AED}
html[data-theme="dark"] .kk-dot.k-all{background:var(--ink)}

/* 직접 넣는 시트 띠 */
.kpi-man{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px 16px;border:1px solid var(--warn-line);border-radius:12px;background:var(--warn-soft-2);color:var(--ink-2);font-size:13px;line-height:1.55}
.kpi-man>.i{width:18px;height:18px;color:var(--warn);flex:none}
.kpi-man b{color:var(--warn-ink)} .kpi-man>div{flex:1}

/* 막대 그림 (mkchart) */
.mkc-bar{display:flex;align-items:center;gap:12px;margin:-4px 0 10px}
.mkc-seg{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line-2)}
.mkc-seg button{height:28px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.mkc-seg button:hover{color:var(--ink)}
.mkc-seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px var(--line)}
.mkc-unit{font-size:12px;color:var(--muted)}
.mkc-box{position:relative;width:100%}
.mkc-svg{display:block;width:100%;overflow:visible}
.mkc-grid{stroke:var(--line-2);stroke-width:1} .mkc-zero{stroke:var(--line-strong);stroke-width:1}
.mkc-tick{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.mkc-x{font-size:11px;fill:var(--muted)} .mkc-x.on{fill:var(--ink);font-weight:700} .mkc-x2{font-size:10px;fill:var(--muted-2)}
.mkc-b{fill:var(--accent);opacity:.86;transition:fill .12s} .mkc-b.on{fill:var(--accent);opacity:1} .mkc-b.dim{fill:var(--chart-bar);opacity:1}
.mkc-val{font-size:12px;font-weight:700;fill:var(--ink);font-variant-numeric:tabular-nums}
.mkc-hl{fill:var(--line-2);opacity:.6}
.mkc-hit{fill:transparent} .mkc-hit.link{cursor:pointer}
.mkc-tip{position:absolute;z-index:5;min-width:168px;padding:10px 12px;border-radius:10px;background:var(--float);color:var(--on-float);font-size:12.5px;line-height:1.55;pointer-events:none;box-shadow:0 8px 24px rgba(16,24,40,.18)}
.mkc-tip .t{font-weight:700;margin-bottom:4px}
.mkc-tip>div:not(.t):not(.h){display:flex;gap:10px;justify-content:space-between;opacity:.75}
.mkc-tip>div.cur{opacity:1;font-weight:600}
.mkc-tip b{font-variant-numeric:tabular-nums;font-weight:600}
.mkc-tip em{font-style:normal;font-size:11.5px;margin-left:4px} .mkc-tip em.up{color:#6EE7B7} .mkc-tip em.down{color:#FCA5A5}
.mkc-tip .h{margin-top:4px;font-size:11px;opacity:.6}
.kpi-trend .hd{margin-bottom:10px}

/* 판매데이터 위쪽 탭 */
.sdn{display:flex;gap:4px;margin:14px 0 16px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);width:max-content;max-width:100%;overflow-x:auto}
.sdn a{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 16px;border-radius:9px;color:var(--ink-2);font-weight:600;font-size:13.5px;white-space:nowrap}
.sdn a .i{width:15px;height:15px;opacity:.75}
.sdn a:hover{background:var(--line-2)}
.sdn a.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px var(--line)}
.sdn-st{display:inline-flex;align-items:center;gap:5px;margin-left:4px;font-size:11.5px;font-weight:600;color:var(--muted)}
.sdn-st i{width:7px;height:7px;border-radius:50%;background:var(--muted-2)}
.sdn-st.live i{background:var(--accent)} .sdn-st.warn i,.sdn-st.stale i,.sdn-st.retry i{background:var(--warn)} .sdn-st.bad i{background:var(--bad)} .sdn-st.work i,.sdn-st.loading i{background:#2F6FED}
.sd-golist{display:flex;justify-content:center;margin:4px 0 14px}

/* 판매리스트 */
.sl-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:11px 14px;border:1px solid var(--warn-line);border-radius:12px;background:var(--warn-soft-2);font-size:13px;color:var(--ink-2)}
.sl-note .i{width:16px;height:16px;color:var(--warn);flex:none;margin-top:2px} .sl-note b{color:var(--warn-ink)}
.sl-tools{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.sl-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.sl-row2{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-2);gap:10px}
.sl-f{display:inline-flex;align-items:center;gap:8px}
.sl-l{font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.sl-sel{height:34px;padding:0 30px 0 10px;font-size:13.5px;font-weight:600;border-radius:8px;min-width:96px}
.sl-sel.wide{min-width:140px}
.sl-btns{display:inline-flex;gap:8px;align-items:center;margin-left:auto}
.sl-btns .btn.pri{height:34px;padding:0 16px}
.sl-btns .btn.cur{box-shadow:0 0 0 3px var(--accent-soft)}
.sl-btns .btn.busy{opacity:.6;pointer-events:none}
.sl-daywrap{position:relative}
.sl-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--field);min-width:260px;flex:0 1 320px}
.sl-search .i{width:15px;height:15px;color:var(--muted);flex:none}
.sl-search input{border:0;outline:0;background:transparent;height:34px;padding:0;flex:1;min-width:0;box-shadow:none}
.sl-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.sl-mode{font-size:13px;font-weight:600;color:var(--ink-2)}
.sl-chips{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.sl-chip{height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-ink);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.sl-chip b{font-weight:700} .sl-chip.so{border-color:var(--line);background:var(--surface-2);color:var(--ink-2)} .sl-chip.all{border-color:var(--line);background:var(--surface);color:var(--ink-2)}
.sl-grid{position:relative;border:1px solid var(--line);border-radius:12px 12px 0 0;background:var(--surface);overflow:auto;height:calc(100vh - 330px);min-height:380px;outline:0}
.sl-tbl{border-collapse:separate;border-spacing:0;font-size:12.5px;width:max-content;min-width:100%;table-layout:fixed}
.sl-tbl th,.sl-tbl td{padding:0 8px;height:30px;border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.sl-tbl thead th{position:sticky;top:0;z-index:2;height:38px;background:var(--surface-2);color:var(--ink-2);font-weight:600;text-align:left;border-bottom:1px solid var(--line)}
.sl-tbl thead th .lb{display:inline-block;max-width:calc(100% - 22px);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.sl-tbl thead th .so{font-style:normal;font-size:9px;margin-left:3px;color:var(--accent)}
.sl-tbl thead th.flt{background:var(--accent-soft);color:var(--accent-ink)}
.sl-tbl th.r{text-align:right}
.fbtn{float:right;width:20px;height:22px;margin:8px -4px 0 2px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.fbtn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}
.fbtn:hover{background:var(--line);color:var(--ink)} .fbtn.on{color:var(--accent)} .fbtn.on svg{fill:currentColor}
.sl-tbl th.r .fbtn{float:left;margin:8px 2px 0 -4px}
.sl-tbl .ck{position:sticky;left:0;z-index:1;width:36px;min-width:36px;text-align:center;background:var(--surface);padding:0}
.sl-tbl thead .ck{z-index:3;background:var(--surface-2)}
.sl-tbl .ck input{width:15px;height:15px;margin:0;vertical-align:middle;accent-color:var(--accent)}
.sl-tbl tbody tr:nth-child(even) td{background:var(--surface-2)} .sl-tbl tbody tr:nth-child(even) td.ck{background:var(--surface-2)}
.sl-tbl tbody tr:hover td{background:var(--accent-soft)}
.sl-tbl tbody tr.pk td{background:var(--accent-soft-2)}
.sl-tbl td.r{text-align:right;font-variant-numeric:tabular-nums} .sl-tbl td.neg{color:var(--bad)}
.sl-tbl td.d{font-variant-numeric:tabular-nums;color:var(--ink-2)} .sl-tbl td.c{text-align:center}
.sl-tbl td.bad{color:var(--bad);font-weight:600} .sl-tbl td.wait{color:var(--warn-ink)}
.sl-tbl td a{color:var(--accent-ink);font-weight:600;text-decoration:underline}
.sl-state{position:sticky;left:0;padding:40px 10px;text-align:center;color:var(--muted);font-size:13.5px}
.sl-state.more{padding:12px}
.sl-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;padding:10px 16px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;background:var(--surface-2);font-size:13px;margin-bottom:12px}
.sl-tot span{color:var(--muted);margin-right:6px} .sl-tot b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.sl-sel-n{color:var(--accent-ink);font-weight:600} .sl-sel-n button{margin-left:6px;height:24px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}
.sl-foot .sp{flex:1} .sl-loaded{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.sl-pop{position:absolute;z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(16,24,40,.16);padding:12px}
.sl-daypop{top:42px;right:0;width:300px}
.sl-pop-h{font-weight:700;font-size:13.5px;margin-bottom:10px} .sl-pop-h small{font-weight:500;color:var(--muted);margin-left:6px}
.sl-dates{display:flex;align-items:center;gap:6px} .sl-dates input{height:34px;flex:1;min-width:0}
.sl-quick{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}
.sl-quick button,.sl-fsort button{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer}
.sl-quick button:hover,.sl-fsort button:hover{border-color:var(--accent);color:var(--accent-ink)}
.sl-fsort button.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}
.sl-pop-f{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:12px} .sl-pop-f .sp{flex:1}
.sl-fpop{position:fixed;width:290px}
.sl-fsort{display:flex;gap:6px;margin-bottom:10px} .sl-fsort button{flex:1}
.sl-fsearch{display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px}
.sl-fsearch .i{width:14px;height:14px;color:var(--muted)} .sl-fsearch input{border:0;outline:0;height:30px;padding:0;flex:1;min-width:0;background:transparent;box-shadow:none}
.sl-fall{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.sl-flist{max-height:260px;overflow:auto;border:1px solid var(--line-2);border-radius:8px}
.sl-flist label{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;cursor:pointer;border-bottom:1px solid var(--line-2)}
.sl-flist label:last-child{border-bottom:0} .sl-flist label:hover{background:var(--line-2)}
.sl-flist label span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .sl-flist label em{font-style:normal;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.sl-flist input,.sl-fall input{accent-color:var(--accent);width:15px;height:15px;flex:none;margin:0;padding:0;border-radius:3px;box-shadow:none}
.sl-fmore{margin-top:6px;font-size:12px;color:var(--warn-ink)}
@media (max-width:820px){
  .sl-btns{margin-left:0;width:100%} .sl-btns .btn.pri{flex:1;justify-content:center}
  .sl-search{min-width:0;flex:1 1 100%} .sl-chips{margin-left:0}
  .sl-grid{height:calc(100vh - 380px)} .sl-daypop{right:auto;left:0}
  .sl-sel.wide{min-width:120px}
}
.erp-purge p{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--ink-2)}

/* 20.0 — 개통 유형 · 할인 유형 묶음 이름 */
table.bars tr.bars-h td{font-size:11.5px;font-weight:600;color:var(--muted);padding:12px 8px 4px;border:0;letter-spacing:.01em}
table.bars tr.bars-h:first-child td{padding-top:0}
@media (max-width:640px){ .sdn a{padding:0 10px;gap:5px;font-size:13px} .sdn a .i{display:none} }
/* 20.0 — 지표 요약 좁은 화면: 카드 비교 줄 · 그림 제목 줄바꿈 */
.kpi-trend .hd{flex-wrap:wrap;row-gap:4px} .kpi-trend .hd h2{white-space:nowrap}
@media (max-width:640px){ .kpi-trend .hd .muted{margin-left:0!important;flex-basis:100%} .cards.kpi .card .delta{white-space:normal;line-height:1.55} }

/* ───────── 20.6판: 카톡 방 정리 — 그룹 탭 · 오른쪽 대화 칸(끌어서 넓이) · 칸마다 넓이 끌기 · 보이는 만큼만 그리기 */
.rm-gtabs{margin:0 0 12px} .rm-gtabs[hidden]{display:none}
.gt-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 8px}
.gt-row.sub{padding:8px 10px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px}
.gt-up{font-size:12px;font-weight:600;color:var(--muted);margin-right:4px;white-space:nowrap}
.gt{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}
.gt i{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}
.gt em{font-style:normal;font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.gt.has span::after{content:" ›";color:var(--muted)}
.gt:hover{border-color:var(--line-strong);background:var(--surface-2)}
.gt.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)} .gt.on em,.gt.on.has span::after{color:inherit;opacity:.72}
.gt-row.sub .gt{height:32px;font-size:13px;padding:0 11px}
.gt.lab span{letter-spacing:-.01em}
.rm-shown{font-size:13px;color:var(--muted)} .rm-shown b{color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;margin-right:1px}

.rm-split{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
.rm-split[hidden]{display:none}
.rm-split.peek-on{grid-template-columns:minmax(0,1fr) 14px var(--pk-w,440px)}
.rm-listp{min-width:0}
.rm-gutter{position:sticky;top:12px;height:var(--pk-h,calc(100vh - 24px));cursor:col-resize;touch-action:none;z-index:3}
.rm-gutter[hidden]{display:none}
.rm-gutter::after{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;border-radius:2px;background:transparent;transition:background .15s}
.rm-gutter:hover::after,.rm-gutter.drag::after{background:var(--accent)}
.rm-peek{position:sticky;top:12px;height:var(--pk-h,calc(100vh - 24px));display:flex;flex-direction:column;padding:0;overflow:hidden;min-width:0;margin:0}
.rm-peek[hidden]{display:none}
.pk-hd{display:flex;align-items:center;gap:8px;padding:12px 10px 10px 16px;border-bottom:1px solid var(--line-2)}
.pk-t{flex:1;min-width:0} .pk-t b{display:block;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-t small{display:block;font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-x{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}
.pk-x:hover{background:var(--surface-2);color:var(--ink)} .pk-x svg{width:16px;height:16px}
.pk-sub{display:flex;align-items:flex-start;gap:12px;padding:7px 16px;border-bottom:1px solid var(--line-2);font-size:12px;line-height:1.9}
.pk-pick{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-weight:600;color:var(--ink-2);cursor:pointer;flex:none}
.pk-pick input{width:15px;height:15px;margin:0;accent-color:var(--accent)}
.pk-tags{min-width:0;flex:1} .pk-tags .tag{margin:0 4px 0 0} .pk-tags .gp,.pk-tags .gl{margin-right:6px}
.pk-body{flex:1;min-height:0;overflow:auto;padding:6px 14px 16px;background:var(--canvas);overscroll-behavior:contain}
.pk-body:focus{outline:none}
.pk-foot{font-size:11.5px;color:var(--muted);padding:6px 16px;border-top:1px solid var(--line-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-day{display:flex;justify-content:center;margin:14px 0 6px} .pk-day span{font-size:11.5px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line-2);border-radius:999px;padding:2px 10px}
.pk-m{margin-top:9px;max-width:92%} .pk-m.cont{margin-top:3px}
.pk-w{display:flex;align-items:baseline;gap:6px;font-size:12px;margin:0 0 3px 2px} .pk-w b{font-weight:700;color:var(--ink-2)} .pk-w time{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.pk-tx{display:inline-block;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.pk-m.me{margin-left:auto;text-align:right} .pk-m.me .pk-w{justify-content:flex-end} .pk-m.me .pk-tx{background:var(--accent-soft);border-color:var(--accent-line);text-align:left}
.pk-kind{display:inline-block;font-size:11px;font-weight:700;padding:1px 6px;border-radius:6px;background:var(--blue-soft);color:var(--blue-ink);margin-right:6px;vertical-align:1px}
.pk-sys{text-align:center;font-size:11.5px;color:var(--muted);margin:8px 0;line-height:1.5}
.pk-older{display:block;margin:8px auto 2px} .pk-start{text-align:center;font-size:11.5px;color:var(--muted);margin:10px 0 0}
.pk-load,.pk-empty{padding:48px 12px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}

.rm-table.rm-fixed{table-layout:fixed;width:100%}
.rm-fixed th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky}
.rm-fixed td{overflow:hidden}
.rm-fixed td.nm a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-fixed td.nm small{max-width:none}
.rm-fixed td.grp,.rm-fixed td.who{max-width:none}
.rm-fixed td.when{white-space:nowrap}
.rm-fixed .rz{position:absolute;top:0;right:0;width:9px;height:100%;cursor:col-resize;touch-action:none;z-index:2}
.rm-fixed .rz::after{content:"";position:absolute;right:3px;top:25%;bottom:25%;width:1px;background:var(--line);transition:background .12s}
.rm-fixed th:hover .rz::after{background:var(--line-strong)}
.rm-fixed .rz:hover::after,.rm-fixed .rz.drag::after{background:var(--accent);width:2px;top:0;bottom:0}
.rm-table tbody tr.pk-on td{background:var(--surface-2)} .rm-table tbody tr.pk-on.sel td{background:var(--accent-soft)}
.rm-table tbody tr.pk-on td:first-child{box-shadow:inset 3px 0 0 var(--accent)} .rm-table tbody tr.pk-on td.nm a{color:var(--accent-ink)}
.rm-bulk.compact{gap:6px;padding-left:14px} .rm-bulk.compact .btn svg{display:none} .rm-bulk.compact .btn{padding:0 10px}
.rm-more{padding:14px;text-align:center;color:var(--muted);font-size:12.5px} .rm-more[hidden]{display:none}
@media (max-width:900px){
  .rm-split.peek-on{grid-template-columns:minmax(0,1fr)} .rm-gutter{display:none!important}
  .rm-peek{position:fixed;inset:0;top:0;height:auto;z-index:70;border-radius:0;border:0}
  .rm-table.rm-fixed{table-layout:auto} .rm-fixed .rz{display:none} .pk-foot{display:none}
}

/* ───────── 20.6판: 실적 매장별 — 엑셀처럼 권역 표마다 배점 순위 · 칸 이름 눌러 정렬 · 표를 끝까지 펼침 · 큰 탭 */
.pf-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.pf-tab{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}
.pf-tab em{font-style:normal;font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.pf-tab:hover{border-color:var(--line-strong);background:var(--surface-2)}
.pf-tab.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)} .pf-tab.on em{color:inherit;opacity:.72}
.pf-tab.miss:not(.on){color:var(--warn)}
.pf-rank-tabs{margin:0 0 12px} .pf-rank-tabs .pf-tab{height:32px;padding:0 11px;font-size:13px}
.pf-stores .tbl-wrap{overflow:visible;max-height:none}
.pf-tbl{min-width:0;width:100%}
.pf-tbl th{top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--line)}
.pf-tbl th,.pf-tbl td{padding:7px 7px}
.pf-tbl th.num,.pf-tbl td.num{padding-left:4px}
.pf-tbl th[data-sort]{cursor:pointer;user-select:none} .pf-tbl th[data-sort]:hover{color:var(--ink);background:var(--surface-2)}
.pf-tbl th[data-sort]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pf-tbl th.sorted{color:var(--accent-ink)} .pf-tbl th.sorted::after{content:"▼";font-size:9px;margin-left:3px;vertical-align:1px} .pf-tbl th.sorted[data-dir="1"]::after{content:"▲"}
.pf-tbl th.rk,.pf-tbl td.rk{width:42px;text-align:center} .pf-tbl td.rk b{font-weight:700;font-variant-numeric:tabular-nums}
.pf-tbl td.sc b{font-weight:700} .pf-tbl th.sc,.pf-tbl td.sc{background:var(--surface-2)}
.pf-tbl tr.pf-blk th{position:static;text-align:left;background:var(--surface-3,var(--surface-2));padding:10px 10px 8px;font-size:13.5px;box-shadow:none;border-top:1px solid var(--line)}
.pf-tbl tr.pf-blk th b{font-weight:700;margin-right:8px} .pf-tbl tr.pf-blk th span{font-weight:500;font-size:12px;color:var(--muted)}
.pf-tbl tbody[hidden]{display:none}
.pf-weights{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface-2);font-size:12.5px}
.pf-weights .k{font-weight:700;color:var(--ink-2)} .pf-weights .v{color:var(--muted);flex:1;min-width:200px}
.pf-wform{flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px 10px;margin-top:6px}
.pf-wform label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)} .pf-wform input{height:32px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--ink);padding:0 8px;font-size:13px}
.pf-wform .row{grid-column:1/-1;display:flex;align-items:center;gap:8px} .pf-wform .row .sp{flex:1} .pf-werr{color:var(--bad);font-size:12px}
@media (max-width:1100px){.pf-stores .tbl-wrap{overflow-x:auto}.pf-tbl{min-width:820px}}
@media (max-width:720px){.pf-stores .hd{flex-wrap:wrap;row-gap:8px}.pf-stores .hd .erp-small{display:none}.pf-stores .hd .btn{white-space:nowrap}.pf-stores .pf-find{flex:1;margin-right:0}.pf-stores .pf-find input[type=search]{width:100%}.pf-tab{height:34px;padding:0 11px;font-size:13.5px}}
/* ───────── 20.7판: 카카오톡 목록 — 이름 동그라미 없이 · '전체' 는 그룹 제목 줄로 나눔(누르면 접힘) · 오른쪽 단추 메뉴 */
.roomlist li[hidden]{display:none!important}
.roomlist li a{padding:9px 12px}
.roomlist li.rl-gh{position:sticky;top:-6px;z-index:2;margin:6px -6px 2px;padding:0 6px;background:var(--surface)}
.roomlist li.rl-gh:first-child{margin-top:-6px;padding-top:6px}
.roomlist li.rl-gh button{--c:#6B7280;all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:7px;padding:8px 8px 7px;border-bottom:1px solid var(--line);cursor:pointer;font-size:12px;color:var(--ink-2);user-select:none}
.roomlist li.rl-gh{--c:#6B7280} .roomlist li.rl-gh button:hover{color:var(--ink)}
.roomlist li.rl-gh button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.roomlist li.rl-gh .chev{width:13px;height:13px;flex:none;color:var(--muted);transform:rotate(90deg);transition:transform .15s}
.roomlist li.rl-gh.fold .chev{transform:none}
.roomlist li.rl-gh .dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--c)}
.roomlist li.rl-gh.none .dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted)}
.roomlist li.rl-gh b{font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roomlist li.rl-gh em{margin-left:auto;flex:none;font-style:normal;font-size:11.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.roomlist li.rl-gh.fold button{border-bottom-color:transparent;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.roomlist li.rl-gh .chev{transition:none}}
/* 20.7판: 그룹 고치기 창 — 두 칸 (왼쪽 설정 · 이 그룹에 들어갈 방 / 오른쪽 이름 규칙에 맞는 방 고르기) */
.mk-dlg.gdlg.gd2{width:1120px;max-width:100%;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding:18px 22px 16px}
body.mk-dlg-open{overflow:hidden}
.gd-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.gd-hd h3{margin:0}
.gd-x{all:unset;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:var(--muted)}
.gd-x:hover{background:var(--line-2);color:var(--ink)} .gd-x:focus-visible{outline:2px solid var(--accent)}
.gd-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:18px;min-height:0;flex:1}
.gd-left{overflow:auto;min-height:0;padding-right:4px}
.gd-right{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);overflow:hidden}
.gd-sel{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:10px;padding:10px 12px;margin:-2px 0 14px}
.gd-sel .gs-hd{margin-bottom:7px;font-size:13px} .gd-sel .gs-hd b{color:var(--accent-ink)}
.gs-list{display:flex;flex-wrap:wrap;gap:5px;max-height:190px;overflow:auto;font-size:12.5px}
.gs-c{display:inline-flex;align-items:center;gap:2px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:2px 3px 2px 9px;color:var(--ink)}
.gs-c .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.gs-c .x,.gc-row .x{all:unset;cursor:pointer;color:var(--muted);font-size:11px;line-height:1;padding:4px 6px;border-radius:6px}
.gs-c .x:hover,.gc-row .x:hover{background:var(--bad-soft);color:var(--bad-ink)}
.gs-c .x:focus-visible,.gc-row .x:focus-visible{outline:2px solid var(--accent)}
.gc-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 8px}
.gc-hd b{font-size:14px} .gc-hd small{font-size:12px}
.gc-n{flex:none;font-size:12.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:3px 10px}
.gc-n:empty{display:none}
.gc-tools{display:flex;align-items:center;gap:6px;padding:0 14px 10px}
.gc-q{flex:1;min-width:0;display:flex;align-items:center;gap:7px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--field)}
.gc-q:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.gc-q svg{width:15px;height:15px;color:var(--muted);flex:none}
.gc-q input{all:unset;flex:1;min-width:0;font-size:13.5px;color:var(--ink)}
.gc-tools .btn{flex:none;white-space:nowrap}
.gc-list{flex:1;min-height:200px;overflow:auto;border-top:1px solid var(--line);background:var(--surface)}
.gc-row{display:flex;align-items:center;gap:4px;padding:0 8px 0 4px;border-bottom:1px solid var(--line-2);content-visibility:auto;contain-intrinsic-size:auto 38px}
.gc-row label{flex:1;min-width:0;display:flex;align-items:center;gap:9px;padding:8px 6px;cursor:pointer}
.gc-row input{width:16px;height:16px;flex:none;accent-color:var(--accent);margin:0}
.gc-row .nm{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px;color:var(--ink)}
.gc-row time{margin-left:auto;flex:none;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.gc-row:not(.on) .nm{color:var(--muted)} .gc-row:not(.on) .x{visibility:hidden}
.gc-row.on{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.gc-row:hover{background:var(--line-2)}
em.t{flex:none;font-style:normal;font-size:11px;font-weight:600;line-height:1;padding:3px 6px;border-radius:5px;background:var(--line-2);color:var(--ink-2);white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
em.t.away{background:var(--warn-soft);color:var(--warn-ink)} em.t.out{background:var(--bad-soft);color:var(--bad-ink)}
em.t.sub{background:var(--accent-soft);color:var(--accent-ink)} em.t.hand{background:var(--blue-soft);color:var(--blue-ink,#1D4ED8)}
.gc-empty{padding:34px 18px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.gc-empty.bad{color:var(--bad-ink)}
.gc-empty .spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:rlspin .8s linear infinite}
.gc-add{border-top:1px solid var(--line);padding:10px 14px 12px;background:var(--surface-2)}
.gc-addhd{display:flex;align-items:baseline;gap:8px;margin-bottom:7px;font-size:13px} .gc-addhd small{font-size:11.5px}
.gc-found{margin-top:6px;max-height:170px;overflow:auto;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.gc-f{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:13px}
.gc-f:last-child{border-bottom:0} .gc-f:hover{background:var(--accent-soft)} .gc-f:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.gc-f .nm{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-f .go{margin-left:auto;flex:none;font-size:12px;font-weight:700;color:var(--accent-ink)}
.gc-f.have{cursor:default;opacity:.6} .gc-f.have .go{color:var(--muted);font-weight:500}
.gd2 > .row{align-items:center;margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}
.gd-sum{font-size:12.5px} .gd2 .err{margin:6px 0 0;min-height:0}
@media (max-width:900px){
  .mk-dlg.gdlg.gd2{overflow:auto;display:block}
  .gd-cols{grid-template-columns:1fr} .gd-left{overflow:visible} .gc-list{max-height:52vh}
}
/* 20.7판: 그룹 관리 — 손잡이를 끌어 순서 바꾸기 */
.gdrag{flex:none;width:18px;height:30px;display:grid;place-items:center;color:var(--muted);cursor:grab;border-radius:6px;touch-action:none;opacity:.55}
.gdrag svg{fill:currentColor}
.gnode:hover .gdrag{opacity:1} .gdrag:hover{background:var(--line-2);color:var(--ink)}
body.gdrag-on,body.gdrag-on *{cursor:grabbing!important;user-select:none}
.gnode.gdragging{opacity:.45;background:var(--surface-2)}
.gnode.gmoved{animation:gmoved .9s ease-out}
@keyframes gmoved{from{background:var(--accent-soft)}to{background:transparent}}
.gdrop{position:absolute;right:18px;height:3px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);pointer-events:none;z-index:3}
.gdrop::before{content:"";position:absolute;left:-5px;top:-3.5px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
@media (prefers-reduced-motion:reduce){.gnode.gmoved{animation:none}}
/* 20.7판: 방 정리 — '보기' 카드는 화면 폭을 채우고 끌어서 차례 바꾸기 · 그룹 줄은 따로 · 아래 체크 막대를 크게 */
.rm-sec{margin:4px 0 12px}
.rm-sec-hd{display:flex;align-items:baseline;gap:8px;margin:0 2px 6px;font-size:12.5px}
.rm-sec-hd b{font-size:12.5px;font-weight:800;color:var(--ink-2)} .rm-sec-hd small{color:var(--muted);font-size:12px}
.rcats.rm-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0}
.rcats.rm-cards .rcat{user-select:none;-webkit-user-drag:none}
.rcats.rm-cards.cdragging,.rcats.rm-cards.cdragging *{cursor:grabbing!important}
.rcats.rm-cards .rcat.cdrag{opacity:.55;transform:scale(.97);box-shadow:0 10px 26px rgba(0,0,0,.18);z-index:2}
@media (max-width:1060px){.rcats.auto.rm-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}
@media (max-width:640px){.rcats.auto.rm-cards{display:flex}}
.rm-gsec{display:flex;align-items:flex-start;gap:12px;padding:10px 12px 2px;margin:0 0 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.rm-gsec[hidden]{display:none}
.rm-glab{flex:none;display:flex;align-items:center;gap:6px;height:36px;padding-right:12px;margin-bottom:8px;border-right:1px solid var(--line);color:var(--ink-2);font-size:13.5px}
.rm-glab svg{width:16px;height:16px;color:var(--muted)} .rm-glab a{font-size:12px;color:var(--accent-ink);margin-left:2px;text-decoration:underline;text-underline-offset:2px}
.rm-gsec .rm-gtabs{flex:1;min-width:0;margin:0}
@media (max-width:640px){.rm-gsec{flex-direction:column;gap:4px}.rm-glab{border-right:0;height:auto;margin:0}}
.rm-bulk{left:50%;bottom:18px;gap:14px;background:var(--surface);color:var(--ink);border:1px solid var(--accent-line);border-radius:16px;padding:10px 12px 10px 10px;
  box-shadow:0 18px 48px rgba(0,0,0,.28),0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);flex-wrap:nowrap;width:auto;min-width:min(880px,calc(100vw - 32px))}
.rm-bulk .bk-n{display:flex;align-items:center;gap:10px;flex:none}
.rm-bulk .bk-c{min-width:46px;height:46px;padding:0 10px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-size:21px;font-weight:800;font-variant-numeric:tabular-nums}
.rm-bulk .bk-n b{display:block;font-size:15px;margin:0;color:var(--ink)} .rm-bulk .bk-n small{display:block;font-size:12px;color:var(--muted);margin-top:1px;white-space:nowrap}
.rm-bulk .bk-acts{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap;justify-content:center}
.rm-bulk .btn{height:40px;padding:0 15px;font-size:14px;font-weight:600;background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.rm-bulk .btn:hover{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}
.rm-bulk .btn svg{width:17px;height:17px}
.rm-bulk .btn.ghost.bk-clear{flex:none;background:transparent;border-color:transparent;color:var(--ink-2)} .rm-bulk .btn.ghost.bk-clear:hover{background:var(--line-2);color:var(--ink)}
.rm-bulk.compact{min-width:0;gap:8px} .rm-bulk.compact .bk-n small{display:none} .rm-bulk.compact .btn{height:36px;padding:0 11px;font-size:13px}
body:has(.rm-bulk:not([hidden])) .mk-toast{bottom:108px}
@media (max-width:900px){.rm-bulk{flex-wrap:wrap;min-width:0;left:16px;right:16px;transform:none;justify-content:center}.rm-bulk .bk-acts{justify-content:flex-start}}
/* 20.7판: 누가 볼지 창 — 넷 중 하나 */
.mk-dlg.vwdlg{width:540px;max-height:calc(100vh - 32px);overflow:auto}
.vw-sub:empty{display:none}
.vw-opts{display:grid;gap:8px;margin:4px 0 4px}
.vw-o{position:relative;display:flex;align-items:center;gap:12px;padding:11px 14px 11px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:var(--surface)}
.vw-o:hover{border-color:var(--accent-line)}
.vw-o input{position:absolute;opacity:0;pointer-events:none}
.vw-o:focus-within{outline:2px solid var(--accent);outline-offset:1px}
.vw-o .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--line-2);color:var(--ink-2)}
.vw-o .ic svg{width:18px;height:18px}
.vw-o .tx{flex:1;min-width:0} .vw-o .tx b{display:block;font-size:14px;color:var(--ink)} .vw-o .tx small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.vw-o .ck{flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-strong)}
.vw-o.on{border-color:var(--accent);background:var(--accent-soft)} .vw-o.on .ic{background:var(--accent);color:var(--on-accent)}
.vw-o.on .ck{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 0 4.5px,transparent 5px)}
.vw-o[data-v="none"].on{border-color:var(--line-strong);background:var(--surface-2)} .vw-o[data-v="none"].on .ic{background:#6B7280;color:#fff}
.vw-o[data-v="none"].on .ck{border-color:#6B7280;background:radial-gradient(circle,#6B7280 0 4.5px,transparent 5px)}
.vw-ppl{margin-top:14px} .vw-ppl[hidden]{display:none} .vw-pplhd{margin-bottom:8px;font-size:13px}
.vw-note{margin:12px 0 0;padding:9px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);font-size:12.5px;line-height:1.55;color:var(--ink-2)}
/* 20.7판: 카카오톡 목록 오른쪽 단추 메뉴 */
.cx{position:fixed;z-index:90;min-width:250px;max-width:330px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 44px rgba(0,0,0,.24);padding:6px;font-size:13.5px;color:var(--ink)}
.cx[hidden]{display:none}
.cx-sub{max-height:min(62vh,520px);overflow:auto}
.cx-hd{padding:7px 10px 9px;margin:-1px 0 4px;border-bottom:1px solid var(--line-2)}
.cx-hd b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .cx-hd small{display:block;margin-top:2px;font-size:11.5px;color:var(--muted);line-height:1.4}
.cx-i{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px;border-radius:8px;cursor:pointer;color:var(--ink)}
.cx-i:hover,.cx-i:focus-visible,.cx-i.open{background:var(--line-2)}
.cx-i svg.i{width:17px;height:17px;color:var(--ink-2);flex:none}
.cx-i .cx-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-i small{flex:none;font-size:11.5px;color:var(--muted)}
.cx-i .cx-go{width:14px!important;height:14px!important;margin-left:2px;color:var(--muted)}
.cx-i.danger,.cx-i.danger svg.i{color:var(--bad)} .cx-i.danger:hover,.cx-i.danger:focus-visible{background:var(--bad-soft)}
.cx-sep{height:1px;background:var(--line-2);margin:4px 6px}
.cx-sh{padding:6px 10px 4px;font-size:11.5px;font-weight:700;color:var(--muted)} .cx-sh small{font-weight:500}
.cx-g{padding-left:calc(10px + var(--d,0) * 14px)}
.cx-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--c,#6B7280)} .cx-dot.none{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted)}
.cx-g .cx-ck{margin-left:auto;color:var(--accent)!important}
.cx-g.on .cx-t{font-weight:700}
.cx-box{width:16px;height:16px;flex:none;border-radius:4px;border:1.5px solid var(--line-strong);display:grid;place-items:center}
.cx-g.on .cx-box{background:var(--accent);border-color:var(--accent)} .cx-g.on .cx-box svg{width:12px!important;height:12px!important;color:var(--on-accent)!important}
.cx-sp{width:17px;flex:none}
.cx.sheet{left:8px!important;right:8px;top:auto!important;bottom:8px;max-width:none;border-radius:16px;padding:8px;max-height:72vh;overflow:auto}
.cx.sheet .cx-i{min-height:44px}
.roomlist li.cx-on > a{background:var(--line-2);box-shadow:inset 0 0 0 1.5px var(--accent-line)}
.roomlist li.cx-going{opacity:.35;transition:opacity .2s}
/* 20.7판: 카톡방 그룹 — AI 에게 맡기기 (카드마다 켜고 끔) */
.gk-ai{padding-bottom:12px}
.gk-ai-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;padding:2px 2px 0}
.gk-ai-c{position:relative;display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;color:var(--ink)}
.gk-ai-c:hover{border-color:var(--accent-line)}
.gk-ai-c input{position:absolute;opacity:0;pointer-events:none}
.gk-ai-c:focus-within{outline:2px solid var(--accent);outline-offset:1px}
.gk-ai-c .sw{flex:none;width:34px;height:20px;border-radius:999px;background:var(--line-strong);position:relative;transition:background .15s}
.gk-ai-c .sw i{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.gk-ai-c.on{border-color:var(--accent-line);background:var(--accent-soft)} .gk-ai-c.on .sw{background:var(--accent)} .gk-ai-c.on .sw i{transform:translateX(14px)}
.gk-ai-c .tx{flex:1;min-width:0} .gk-ai-c .tx b{display:block;font-size:13.5px} .gk-ai-c .tx small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.gk-ai-c.dim{opacity:.6;cursor:default}
.gk-ai-c.jv .go{width:14px;height:14px;color:var(--muted);flex:none}
@media (prefers-reduced-motion:reduce){.gk-ai-c .sw,.gk-ai-c .sw i{transition:none}}

/* (20.8판) 방 정리 — 삭제 해제한 방 사진 · 파일 다시 찾는 중 */
.rs-box{display:flex;gap:12px;align-items:flex-start;background:var(--blue-soft);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:16px;color:var(--ink)}
.rs-box>.i{width:20px;height:20px;flex:none;margin-top:1px;color:var(--accent)}
.rs-box b{display:block;font-size:14px;margin-bottom:3px}
.rs-box span{font-size:13px;color:var(--muted)}
.rs-box.done{background:var(--accent-soft);border-color:var(--accent-line)}

/* ── 20.9판: 관리 › AI 수정 기록 (그록 · 챗GPT 가 고친 웹 화면 · 되돌리기) · 패치노트 'AI 가 고친 것' */
.ce-lead{margin:2px 2px 4px;font-size:13px;line-height:1.6;color:var(--ink-2);max-width:880px}
.ce-sec{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:18px 2px 8px}
.ce-sec h3{margin:0;font-size:13.5px;font-weight:700;color:var(--ink)}
.ce-list{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.ce-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px 14px;padding:12px 16px;border-top:1px solid var(--line);box-shadow:inset 3px 0 0 transparent}
.ce-row:first-child{border-top:0}
.ce-row.s-live{box-shadow:inset 3px 0 0 var(--ok)} .ce-row.s-stacked{box-shadow:inset 3px 0 0 var(--accent)}
.ce-row.s-over .ce-main,.ce-row.s-back .ce-main{opacity:.72}
.ce-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:700;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:3px 8px;white-space:nowrap}
.ce-main{min-width:0}
.ce-why{font-size:14px;font-weight:600;color:var(--ink);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ce-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:4px;font-size:12px;color:var(--muted)}
.ce-meta .fp{margin-left:2px}
.ce-d{display:inline-flex;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}
.ce-d i{font-style:normal;font-weight:700} .ce-d i.p{color:var(--ok-ink)} .ce-d i.m{color:var(--bad-ink)}
.ce-acts{display:flex;gap:6px;justify-content:flex-end}
.ce-empty{display:flex;flex-direction:column;gap:4px;padding:22px 18px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--surface-2);text-align:center}
.ce-empty b{font-size:14px;color:var(--ink)} .ce-empty span{font-size:12.5px;color:var(--muted);line-height:1.55}
.ce-warn{margin-bottom:10px;padding:10px 14px;border:1px solid var(--warn-line);border-radius:10px;background:var(--warn-soft);color:var(--warn-ink);font-size:13px}
.ce-guard{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 2px 2px}
.ce-chip{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:var(--slate-soft);color:var(--slate-ink);font-size:11.5px;font-weight:600;white-space:nowrap}
.ce-dlg{width:920px}
.ce-dhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ce-dwhy{margin:10px 0 2px;font-size:15px;font-weight:600;line-height:1.5;color:var(--ink)}
.ce-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px !important;font-weight:600 !important}
.ce-cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.ce-pane{border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:0}
.ce-ph{padding:7px 12px;font-size:12px;font-weight:700;border-bottom:1px solid var(--line)}
.ce-pane.m .ce-ph{background:var(--bad-soft);color:var(--bad-ink)} .ce-pane.p .ce-ph{background:var(--ok-soft);color:var(--ok-ink)}
.ce-pane pre{margin:0;padding:10px 12px;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.55;background:var(--surface);color:var(--ink)}
.ce-note{margin:12px 0 0;font-size:12.5px;color:var(--muted)}
.ce-also{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 6px;padding:10px 12px;border:1px solid var(--warn-line);border-radius:10px;background:var(--warn-soft);font-size:12.5px;color:var(--warn-ink)}
.pn-ai{margin:0 0 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.pn-ai-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.pn-ai-hd b{font-size:14px} .pn-ai-hd span{font-size:12px;color:var(--muted)} .pn-ai-hd a{margin-left:auto;font-size:12.5px}
.pn-ai .ce-row{padding:10px 16px}
@media (max-width:560px){.ce .gk-ai-list{grid-template-columns:repeat(2,minmax(0,1fr))} .ce .gk-ai-c{padding:10px 11px;gap:9px}}
@media (max-width:760px){.ce-row{grid-template-columns:auto minmax(0,1fr)} .ce-row .tag{grid-column:2;justify-self:start} .ce-acts{grid-column:1 / -1;justify-content:flex-start} .ce-cmp{grid-template-columns:1fr}}

/* 22.1판 — 관리 › AI 연결 한 표 (한 줄이 AI 하나) · 오른쪽 권한 창 */
.ai-pills{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px} .ai-pills b{margin-left:4px} .ai-logbtn{cursor:pointer;font:inherit;font-size:12.5px;font-weight:600}
table.ai-t tr.grp td{background:var(--canvas);color:var(--muted);font-size:12px;padding:13px 10px 6px;border-bottom:1px solid var(--line)}
table.ai-t tr.grp td b{color:var(--ink-2);font-weight:650} table.ai-t tr.grp td small{margin-left:8px;color:var(--muted-2);font-size:11.5px}
.ai-gacts{float:right;margin-top:-5px}
table.ai-t tr.row{cursor:pointer} table.ai-t tr.row:hover td{background:var(--surface-2)}
table.ai-t tr.row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
table.ai-t tr.sel td{background:var(--accent-soft)} table.ai-t tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
table.ai-t tr.off td{color:var(--muted)}
table.ai-t .nm b{display:block;font-size:13.5px;font-weight:650} table.ai-t .nm small,table.ai-t .where small{display:block;color:var(--muted);font-size:11.5px}
#aiBody table.ai-t td.perm{white-space:normal}
.ai-st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap;color:var(--muted)}
.ai-st i{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none}
.ai-st.on{color:var(--ok-ink)} .ai-st.on i{background:var(--ok)} .ai-st.off{color:var(--warn)} .ai-st.off i{background:var(--warn)}
.perm-w{display:flex;flex-wrap:wrap;gap:4px;min-width:230px}
.pt{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:11.5px;font-weight:600;white-space:nowrap}
.pt.read{background:var(--accent-soft);color:var(--accent-ink)} .pt.read.narrow{background:var(--slate-soft);color:var(--slate-ink)}
.pt.work{background:var(--violet-soft);color:var(--violet-ink)} .pt.work.own{background:var(--blue-soft);color:var(--blue-ink)}
.pt.w{background:var(--orange-soft);color:var(--orange-ink)} .pt.none{color:var(--muted-2);border:1px dashed var(--line-strong)} .pt.lock{background:var(--line-2);color:var(--muted)}
dialog.adm-sheet{margin:0 0 0 auto;height:100%;max-height:100%;width:452px;max-width:100vw;border-radius:0;border:0;border-left:1px solid var(--line);padding:20px 22px 28px;overflow-y:auto}
dialog.adm-sheet .dhd{align-items:flex-start;gap:10px}
.ai-shd{flex:1;min-width:0} .ai-shd h3{margin:0;font-size:17px}
.ai-namel{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--muted);font-weight:600} .ai-namel small{font-weight:500}
.ai-namel input{height:38px;font-size:15px;font-weight:650}
.ai-ssub{color:var(--muted);font-size:12px;margin-top:6px;line-height:1.5}
.ai-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 8px}
.ai-stats div{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:8px 11px} .ai-stats b{display:block;font-size:13.5px} .ai-stats small{color:var(--muted);font-size:11px}
.ai-sec{border-top:1px solid var(--line-2);padding:12px 0 4px} .ai-onoff{border-top:0;padding-top:4px}
.ai-sec h4{margin:0 0 6px;font-size:13px;font-weight:650;display:flex;gap:8px;align-items:baseline} .ai-sec h4 small{margin-left:auto;font-weight:500;color:var(--muted);font-size:11.5px}
.swl{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-2)} .ai-sec .swl:last-child{border-bottom:0}
.swl>div{flex:1;min-width:0} .swl b{display:block;font-size:12.5px;font-weight:600} .swl small{display:block;color:var(--muted);font-size:11.5px;line-height:1.5}
.ai-srcs{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:6px 0 8px;border-bottom:1px solid var(--line-2)}
.ai-ck{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);padding:4px 0;cursor:pointer;min-width:0}
.ai-ck input{width:15px;height:15px;accent-color:var(--accent);margin:0;flex:none} .ai-ck span{min-width:0}
.ai-ck.closed{color:var(--muted-2)} .ai-ck em{font-style:normal;font-size:11px} .ai-srcs.dis .ai-ck{cursor:default}
.ai-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;max-width:100%}
.ai-seg button{border:0;border-right:1px solid var(--line);background:var(--surface);color:var(--ink-2);padding:7px 15px;font:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.ai-seg button:last-child{border-right:0} .ai-seg button.on{background:var(--ink);color:var(--on-ink)} .ai-seg button:disabled{opacity:.45;cursor:not-allowed}
.ai-seg button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ai-note{color:var(--muted);font-size:11.5px;margin:7px 0 2px;line-height:1.6} .ai-note a{text-decoration:underline}
.ai-conn{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2)} .ai-conn>div{flex:1;min-width:0}
.ai-conn b{font-size:12.5px} .ai-conn code{font-size:11.5px} .ai-conn small{display:block;color:var(--muted);font-size:11.5px;word-break:break-all}
.ai-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.ai-foot{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:11.5px;line-height:1.6}
@media (max-width:640px){dialog.adm-sheet{width:100vw;border-left:0;padding:16px} .ai-srcs{grid-template-columns:1fr} .ai-gacts{float:none;display:block;margin:6px 0 0}}
/* 22.1판 — 다른 화면의 AI 스위치는 상태만 (바꾸기는 관리 › AI 연결) */
.ai-ro-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 2px 2px;font-size:12.5px;color:var(--muted)} .ai-ro-note .btn{height:30px;font-size:12.5px}
label.gk-ai-c.ro,label.at-ai.ro,.yt-sw.ro{cursor:default}
/* 22.2판 — AI 업무함 탭 (모든 업무함 화면 맨 위 · _work_tabs.html) · 업무 탭의 담당 AI 칩 */
.wtabs{display:flex;align-items:stretch;gap:2px;margin:-8px 0 20px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.wtabs::-webkit-scrollbar{display:none}
.wtabs .wt{display:inline-flex;align-items:center;gap:7px;padding:10px 12px 11px;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;border-radius:8px 8px 0 0}
.wtabs .wt:hover{color:var(--ink);background:var(--line-2)} .wtabs .wt.on{color:var(--ink);border-bottom-color:var(--accent)}
.wtabs .wt .i{width:16px;height:16px} .wtabs .wt.on .i{color:var(--accent)}
.wtabs .wt.set{margin-left:auto}
.wtabs .cnt{font-size:11.5px;color:var(--accent-ink);background:var(--accent-soft);border-radius:5px;padding:0 6px;font-weight:700;font-variant-numeric:tabular-nums}
.wtabs .badge{background:var(--warn);color:var(--on-warn);border-radius:999px;font-size:11px;font-weight:700;min-width:19px;height:19px;display:inline-grid;place-items:center;padding:0 5px}
.wtabs .wt[data-live-badge="notify"] .badge{background:var(--bad);color:var(--on-bad)}
.wk-agchips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.wk-agchips .lb{font-size:12px;color:var(--muted);font-weight:600;margin-right:2px}
.wk-agchips .chip .n{margin-left:2px;font-size:11px;font-weight:700;opacity:1;color:var(--blue-ink)} .wk-agchips .chip .n.warn{color:var(--warn)} .wk-agchips .chip.on .n{color:var(--on-ink)}
.wk-agset{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)} .wk-agset .i{width:14px;height:14px} .wk-agset:hover{color:var(--accent-ink)}
.wk-blk{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--warn-ink);background:var(--warn-soft-2);border:1px solid var(--warn-line);border-radius:10px;padding:8px 12px;margin:-4px 0 14px}
.wk-blk .i{width:15px;height:15px;flex:none}
@media (max-width:900px){ .wtabs{margin:-4px -16px 16px;padding:0 10px} .wtabs .wt.set{margin-left:0} .wk-agset{margin-left:0;width:100%} }

/* 22.4판(47판): 설정 › 왼쪽 메뉴 이름 — 메뉴마다 칸 하나 (기본 이름 위 · 새 이름 아래 · 바꾼 칸은 청록) */
#menu .hd{flex-wrap:wrap;row-gap:4px} #menu .hd h2{white-space:nowrap}
.mnm-g{border:0;margin:0 0 16px;padding:0;min-width:0}
.mnm-g legend{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:0 0 8px;padding:0}
.mnm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:8px}
.mnm-it{display:flex;flex-direction:column;gap:2px;padding:8px 11px 6px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:text;transition:border-color .12s,box-shadow .12s}
.mnm-it:hover{border-color:var(--line-strong)}
.mnm-it:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--field)}
.mnm-it.on{border-color:var(--accent-line);background:var(--accent-soft)}
.mnm-def{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted)}
.mnm-def em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--accent-ink);background:var(--surface);border:1px solid var(--accent-line);border-radius:5px;padding:0 5px;line-height:16px}
.mnm-it input{height:28px;border:0;border-radius:0;padding:0;background:transparent;font-size:14px;font-weight:600;color:var(--ink);box-shadow:none}
.mnm-it input:focus{box-shadow:none;border:0}
.mnm-it input::placeholder{color:var(--muted-2);font-weight:500}
.mnm-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;padding-top:14px;border-top:1px solid var(--line-2)}
.mnm-act .muted{font-size:12.5px;margin-right:auto}
.mnm-act .mnm-reset{order:-1}
@media (max-width:640px){#menu .hd .muted{margin-left:0!important;flex-basis:100%} .mnm-grid{grid-template-columns:1fr 1fr} .mnm-act .muted{flex-basis:100%} .mnm-act .btn{flex:1;justify-content:center} .mnm-act .mnm-reset{order:0}}

/* 22.4판(47판): 티로 — 열어 본 녹음의 자동 제목 아래 상대 · 주제 · 원래 이름 */
.rt-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:-6px 0 14px;font-size:13px;color:var(--ink-2)}
.rt-meta b{font-weight:600;color:var(--muted);margin-right:6px}
.rt-meta .dim{flex-basis:100%;font-size:11.5px;color:var(--muted-2)}

/* ───────────── 22.6판(49판): 관리 › 디스크 · 백업 ───────────── */
.dk-disk{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:10px}
.dk-disk.warn{border-color:var(--warn-line);background:var(--warn-soft-2)} .dk-disk.alert{border-color:var(--bad-line);background:var(--bad-soft-2)}
.dk-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:9px}
.dk-row>b{font-size:15px} .dk-free{font-size:13px;color:var(--ink-2)} .dk-free b{font-size:15px;color:var(--ink)}
.dk-bar{height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin-bottom:6px}
.dk-bar i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.dk-bar.warn i{background:var(--warn)} .dk-bar.alert i{background:var(--bad)}
.dk-two{display:grid;grid-template-columns:1fr 1fr;gap:10px} .dk-two .ka-dev{margin-bottom:0}
.dk-sec{margin-top:16px} .dk-sec h3{font-size:12.5px;color:var(--muted);font-weight:600;margin:0 0 6px}
.dk-act{display:flex;gap:12px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line-2)} .dk-act:last-child{border-bottom:0}
.dk-act .muted{flex:none;width:118px;font-variant-numeric:tabular-nums}
.dk-fl{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.dk-f{display:grid;grid-template-columns:minmax(0,1fr) 86px 160px;gap:12px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line-2);font-size:13px}
.dk-f:last-child{border-bottom:0} .dk-f .sz{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.dk-mini{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden} .dk-mini i{display:block;height:100%;background:var(--chart-bar)}
.dk-note{color:var(--warn-ink)}
@media (max-width:820px){ .dk-two{grid-template-columns:1fr} .dk-f{grid-template-columns:minmax(0,1fr) 76px} .dk-mini{display:none} }

/* ── 22.9판(52판): AI 연결 — 'MCP 관리' 와 '관리 › AI 연결' 을 한 화면으로 (AI 붙이기 · AI 카드 · 고급) — 51판 MCP 관리(.mc- · .dr-) 스타일은 이것으로 바꿈 */
.acp .ac-hd{align-items:flex-start}
.ac-hdacts{display:flex;align-items:center;gap:10px;flex:none;margin-top:2px}
.ac-srv{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.ac-srv i{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none}
.ac-srv.on i{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)} .ac-srv.warn i{background:var(--warn)} .ac-srv.off i{background:var(--bad)}
.ac-srv.off{color:var(--bad-ink);border-color:var(--bad-line);background:var(--bad-soft-2)}
#acAlerts{display:flex;flex-direction:column;gap:10px;margin:6px 0 14px} #acAlerts:empty{display:none}
.ac-alert{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.ac-alert>.i{width:22px;height:22px;flex:none}
.ac-alert>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px} .ac-alert b{font-size:14px;font-weight:700} .ac-alert span{font-size:13px;color:var(--ink-2);line-height:1.55}
.ac-alert code{font-size:11.5px;color:var(--muted);word-break:break-all;background:none;padding:0}
.ac-alert.warn{background:var(--warn-soft-2);border-color:var(--warn-line)} .ac-alert.warn>.i{color:var(--warn)}
.ac-alert.bad{background:var(--bad-soft-2);border-color:var(--bad-line)} .ac-alert.bad>.i{color:var(--bad)}
.ac-alacts{display:flex;gap:6px;flex:none}

.ac-add{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:18px 20px;margin:8px 0 28px;border-radius:16px;border:1.5px dashed var(--accent-line);background:linear-gradient(135deg,var(--accent-soft) 0%,var(--surface) 70%);color:var(--ink);transition:border-color .15s,box-shadow .15s,transform .12s}
.ac-add:hover{border-color:var(--accent);box-shadow:0 8px 26px rgba(15,118,110,.12)} .ac-add:active{transform:translateY(1px)}
.ac-add:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ac-add-ic{width:46px;height:46px;border-radius:13px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none;box-shadow:0 4px 12px rgba(15,118,110,.25)}
.ac-add-ic .i{width:22px;height:22px;stroke-width:2.4}
.ac-add-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px} .ac-add-t b{font-size:16.5px;letter-spacing:-.01em} .ac-add-t small{color:var(--ink-2);font-size:13px}
.ac-add-go{color:var(--accent);width:20px;height:20px}

.ac-sec{margin-bottom:24px}
.ac-sh{display:flex;align-items:baseline;gap:10px;margin-bottom:12px} .ac-sh h2{margin:0;font-size:16px}
.ac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.ac-card{display:flex;flex-direction:column;gap:12px;text-align:left;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s,transform .12s;min-width:0;font:inherit;cursor:pointer}
.ac-card:hover{border-color:var(--line-strong);box-shadow:0 8px 22px rgba(17,24,39,.07);transform:translateY(-1px)}
.ac-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ac-card.st-pause,.ac-card.st-cut{background:var(--surface-2)}
.ac-ctop{display:flex;align-items:center;gap:12px;min-width:0}
.ac-mark{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:-.02em;color:#fff;background:#0F766E;flex:none}
.ac-mark .i{width:20px;height:20px;stroke:#fff}
.ac-mark.m-chatgpt{background:#10A37F} .ac-mark.m-claude{background:#D97757} .ac-mark.m-grok{background:#17191D} .ac-mark.m-grokbot{background:linear-gradient(135deg,#17191D,#525C66)}
.ac-mark.m-gemini{background:linear-gradient(135deg,#4F7CF7,#9B72CB)} .ac-mark.m-lechat{background:#F2701D} .ac-mark.m-perplexity{background:#1F8A8A} .ac-mark.m-copilot{background:#2F6FEB}
.ac-mark.m-local{background:#475569} .ac-mark.m-key{background:#7C3AED} .ac-mark.m-other,.ac-mark.m-jarvis{background:#0F766E}
html[data-theme="dark"] .ac-mark.m-grok,html[data-theme="dark"] .ac-mark.m-grokbot{background:#39424A}
.ac-cn{flex:1;min-width:0;display:flex;flex-direction:column}
.ac-cn b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .ac-cn small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--muted);flex:none}
.ac-st i{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none}
.ac-st.on,.ac-st.ok{color:var(--ok-ink)} .ac-st.on i,.ac-st.ok i{background:var(--ok)} .ac-st.on i{animation:acPulse 2s infinite}
.ac-st.cut{color:var(--bad)} .ac-st.cut i{background:var(--bad)} .ac-st.pause{color:var(--warn)} .ac-st.pause i{background:var(--warn)}
@keyframes acPulse{0%{box-shadow:0 0 0 0 rgba(5,150,105,.45)}70%{box-shadow:0 0 0 6px rgba(5,150,105,0)}100%{box-shadow:0 0 0 0 rgba(5,150,105,0)}}
.ac-cmid{display:flex;gap:6px;flex-wrap:wrap}
.ac-lv{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.lv-read{background:var(--blue-soft);color:var(--blue-ink)} .lv-job{background:var(--accent-soft);color:var(--accent-ink)} .lv-all{background:var(--violet-soft);color:var(--violet-ink)}
.lv-custom{background:var(--line-2);color:var(--ink-2)} .lv-boss{background:var(--orange-soft);color:var(--orange-ink)}
.ac-cbot{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:12px;color:var(--muted);border-top:1px solid var(--line-2);padding-top:10px;min-width:0}
.ac-dchips{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.ac-dchips i{font-style:normal;font-size:11px;font-weight:600;padding:1px 7px;border-radius:6px;background:var(--surface-3);color:var(--ink-2);white-space:nowrap}
.ac-empty{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;align-items:center;padding:34px 20px;border:1px dashed var(--line-strong);border-radius:14px;color:var(--muted);text-align:center;font-size:13px}
.ac-empty b{color:var(--ink-2);font-size:14.5px}
.ac-note{font-size:12.5px;color:var(--muted);line-height:1.65;margin:0 0 12px} .ac-note.warn{color:var(--warn-ink)} .ac-note b{color:var(--ink-2)}
.ac-rest{margin-top:14px}
.ac-rest>summary,.ac-det>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;user-select:none}
.ac-rest>summary::-webkit-details-marker,.ac-det>summary::-webkit-details-marker{display:none}
.ac-rest>summary{display:inline-flex;font-size:13px;font-weight:600;color:var(--ink-2);padding:8px 12px;border-radius:9px;margin-bottom:8px}
.ac-rest>summary:hover{background:var(--line-2)}
.ac-rest>summary .i,.ac-det>summary .i,.ac-chev{width:16px;height:16px;transition:transform .15s;color:var(--muted)}
.ac-rest[open]>summary .i,.ac-det[open]>summary .i,[aria-expanded="true"]>.ac-chev{transform:rotate(90deg)}
#aiBody:focus{outline:none}
.ac-jv{margin-top:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:12px 14px}
.ac-jvh{display:flex;align-items:center;gap:12px;flex-wrap:wrap} .ac-jvh .ac-mark{width:34px;height:34px;border-radius:10px}
.ac-jvt{flex:1;min-width:150px;display:flex;flex-direction:column} .ac-jvt b{font-size:14px} .ac-jvt small{color:var(--muted);font-size:12px}
.ac-jva{display:flex;gap:6px;flex-wrap:wrap}
.ac-jvl{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:12px}
.ac-jvr{display:grid;grid-template-columns:1fr auto;gap:2px 8px;text-align:left;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface-2);color:var(--ink);font:inherit;cursor:pointer}
.ac-jvr small{grid-column:1/-1;color:var(--muted);font-size:11.5px} .ac-jvr:hover{border-color:var(--line-strong)}

.ac-dg{font-size:11.5px;font-weight:700;color:var(--muted);margin:14px 0 4px;letter-spacing:.01em} .ac-dg small{font-weight:500}
.ac-dr{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2)} .ac-dr:last-child{border-bottom:0}
.ac-dgl{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:11.5px;font-weight:800;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);flex:none}
.ac-dn{flex:1;min-width:0;display:flex;flex-direction:column} .ac-dn b{font-size:13px} .ac-dn small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-dr.shut .ac-dn b{color:var(--muted)} .ac-dr.shut .ac-dgl{opacity:.5}
.ac-dfix{font-size:11.5px;color:var(--muted);white-space:nowrap;min-width:36px;text-align:right}
.btn.ac-ico{width:30px;padding:0;justify-content:center;flex:none} .btn.ac-ico .i{width:15px;height:15px}
.ac-keyf{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end} .ac-keyf>label:first-child{grid-column:1/-1}
.ac-keyo{margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--warn-soft-2);border:1px solid var(--warn-line);font-size:13px} .ac-keyo p{margin:0 0 6px}
.ac-cp{display:flex;align-items:center;gap:8px;padding:7px 7px 7px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--line);margin-top:6px;min-width:0}
.ac-cp code{flex:1;min-width:0;font-family:var(--sans);font-size:13px;font-weight:500;word-break:break-all;white-space:normal;color:var(--ink);background:none;padding:0;user-select:all}
.ac-cp small{flex:none;color:var(--muted);font-size:11.5px;font-weight:600;min-width:30px}
.ac-srcs{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ac-src{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:9px;background:var(--surface);border:1px solid var(--line-2);font-size:12.5px;cursor:pointer;min-width:0}
.ac-src input{width:16px;height:16px;margin:0;accent-color:var(--accent);flex:none}
.ac-src b{display:block;font-weight:600} .ac-src small{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:1px}
.ac-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0} .ac-gap{margin-top:12px} .ac-sp{flex:1}
.ac-lim{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 10px}
.ac-lim label{font-size:11.5px;color:var(--muted);font-weight:600;display:flex;flex-direction:column;gap:5px} .ac-lim input{height:34px}
.ac-seg{display:inline-flex;background:var(--surface-3);border-radius:9px;padding:3px;gap:2px}
.ac-seg button{border:0;background:transparent;height:26px;padding:0 11px;border-radius:7px;font:inherit;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
.ac-seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ac-tbl{max-height:380px;overflow:auto;border:1px solid var(--line-2);border-radius:10px;background:var(--surface)}
.ac-tbl table{font-size:12.5px} .ac-tbl th{position:sticky;top:0;background:var(--surface);z-index:1} .ac-tbl td,.ac-tbl th{padding:7px 10px} .ac-tbl td code{font-size:11.5px}
.ac-bad{color:var(--bad)}

/* 22.9.1판(53판) AI 연결 — 연결 주소(커넥터마다 주소 · 쓰는 AI · 기록) · 그 밖의 설정(제목만 봐도 아는 줄) · AI 가 볼 수 있는 자료(모든 AI 공통 · 읽는 AI) */
.ac-lead2{font-size:13px;color:var(--ink-2);line-height:1.65;margin:-4px 0 14px;max-width:780px} .ac-lead2 b{color:var(--ink)}
.ac-doors{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.ac-dwarn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--bad-soft-2);color:var(--bad-ink);font-size:13px;font-weight:600;border-bottom:1px solid var(--bad-line)}
.ac-dwarn .i{width:16px;height:16px;flex:none}
.ac-dgrp+.ac-dgrp{border-top:1px solid var(--line)}
.ac-dgh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:11px 20px;background:var(--surface-2);border-bottom:1px solid var(--line-2)}
.ac-dgh b{font-size:13px;color:var(--ink)} .ac-dgh small{font-size:12px;color:var(--muted)}
.ac-drow{display:grid;grid-template-columns:40px minmax(0,1.1fr) minmax(300px,1fr) 150px;grid-template-areas:"gl info url stat" "gl foot foot foot" "gl more more more";gap:10px 20px;padding:16px 20px;align-items:start}
.ac-drow+.ac-drow{border-top:1px solid var(--line-2)}
.ac-drow>.ac-dgl{grid-area:gl;width:40px;height:40px;border-radius:11px;font-size:13px;background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}
.ac-dgrp:first-child .ac-drow>.ac-dgl{background:var(--ink);color:var(--on-ink)}
.ac-drow.shut>.ac-dgl{background:var(--surface-3);color:var(--muted)}
.ac-dinfo{grid-area:info;min-width:0}
.ac-dname{display:flex;align-items:center;gap:8px;flex-wrap:wrap} .ac-dname b{font-size:15px;letter-spacing:-.01em}
.ac-drow.shut .ac-dname b{color:var(--muted)}
.ac-dpair{font-size:11px;font-weight:600;color:var(--ink-2);background:var(--surface-3);border-radius:6px;padding:2px 7px}
.ac-dinfo p{margin:4px 0 0;font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.ac-dinfo p.ac-dsay{color:var(--muted);font-size:12px}
.ac-durl{grid-area:url;display:flex;align-items:center;gap:8px;min-width:0;padding:6px 6px 6px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.ac-durl code{flex:1;min-width:0;font:600 13px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);background:none;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:all}
.ac-durl .btn{flex:none}
.ac-dstat{grid-area:stat;display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding-top:7px}
.ac-dsw{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.ac-dst{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.ac-dst:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted-2)}
.ac-dst.on{color:var(--ok-ink)} .ac-dst.on:before{background:var(--ok)}
.ac-dst.off{color:var(--warn-ink)} .ac-dst.off:before{background:var(--warn)}
.ac-dstat .ac-dfix{font-size:11px;color:var(--muted);min-width:0;text-align:right}
.ac-dfoot{grid-area:foot;display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding-top:11px;border-top:1px dashed var(--line-2);min-width:0}
.ac-dais{flex:1 1 360px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.ac-dlbl{font-size:11.5px;font-weight:700;color:var(--muted);margin-right:2px}
.ac-aic{display:inline-flex;align-items:center;gap:6px;height:25px;padding:0 10px;border-radius:999px;background:var(--surface-3);font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap}
.ac-aic i{width:7px;height:7px;border-radius:50%;background:var(--muted-2)} .ac-aic.live i{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.ac-aic em{font-style:normal;font-weight:500;color:var(--muted)} .ac-aic.more{color:var(--muted)}
.ac-dnone{font-size:12px;color:var(--muted)}
.ac-duse{font-size:12px;color:var(--muted);white-space:nowrap}
.ac-dacts{display:flex;gap:6px;margin-left:auto}
.ac-dbtn{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.ac-dbtn:hover{border-color:var(--line-strong);color:var(--ink)} .ac-dbtn .ac-chev{width:14px;height:14px}
.ac-dbtn[aria-expanded="true"]{background:var(--ink);border-color:var(--ink);color:var(--on-ink)} .ac-dbtn[aria-expanded="true"] .ac-chev{color:var(--on-ink)}
.ac-dmore{grid-area:more;min-width:0;padding:12px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-2)}
.ac-dmore .ac-note{margin:8px 0 0} .ac-note.sm{font-size:11.5px}
.ac-tools{display:flex;flex-wrap:wrap;gap:6px}
.ac-tools span{font-size:12px;font-weight:500;padding:3px 9px;border-radius:7px;background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2)}
.ac-tools span.w{border-color:var(--orange-line);background:var(--orange-soft);color:var(--orange-ink)}
.ac-dlog{max-height:320px} .ac-dlog td small{display:block;color:var(--muted);font-size:11px;margin-top:1px;word-break:break-all}

.ac-set{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.ac-si+.ac-si{border-top:1px solid var(--line-2)}
.ac-si>summary{list-style:none;display:flex;align-items:center;gap:14px;padding:15px 20px;cursor:pointer;user-select:none}
.ac-si>summary::-webkit-details-marker{display:none}
.ac-si>summary:hover{background:var(--surface-2)} .ac-si>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ac-sic{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;flex:none} .ac-sic .i{width:18px;height:18px}
.ac-sit{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ac-sit b{font-size:14.5px;letter-spacing:-.01em;color:var(--ink)} .ac-sit small{font-size:12.5px;color:var(--muted);line-height:1.5}
.ac-sit b em{font-style:normal;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue-ink);margin-left:6px;vertical-align:1px}
.ac-sis{flex:none;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);white-space:nowrap}
.ac-sis:empty{display:none} .ac-sis.ok{background:var(--ok-soft);color:var(--ok-ink)} .ac-sis.warn{background:var(--warn-soft);color:var(--warn-ink)} .ac-sis.bad{background:var(--bad-soft);color:var(--bad-ink)}
.ac-sich{width:16px;height:16px;color:var(--muted);transition:transform .15s;flex:none} .ac-si[open] .ac-sich{transform:rotate(90deg)}
.ac-si[open]>summary{background:var(--surface-2)}
.ac-sib{padding:14px 20px 20px 70px;border-top:1px solid var(--line-2)}
.ac-sibh{display:flex;align-items:flex-start;justify-content:space-between;gap:14px} .ac-sibh .ac-note{margin-bottom:12px}
.ac-sib .ac-keyf{max-width:620px}

.ac-srcl{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:12px;overflow:hidden;background:var(--surface)}
.ac-srow{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1.15fr);gap:12px;align-items:center;padding:10px 14px;cursor:pointer}
.ac-srow+.ac-srow{border-top:1px solid var(--line-2)} .ac-srow:hover{background:var(--surface-2)}
.ac-srn{min-width:0} .ac-srn b{display:block;font-size:13px} .ac-srn small{display:block;font-size:11.5px;color:var(--muted);line-height:1.45}
.ac-srow.off .ac-srn b{color:var(--muted)}
.ac-srr{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:flex-end;min-width:0}
.ac-srr i{font-style:normal;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--surface-3);color:var(--ink-2);white-space:nowrap}
.ac-srl{font-size:11px;color:var(--muted);margin-right:2px} .ac-sroff{font-size:12px;color:var(--warn-ink);font-weight:600}

@media (max-width:1100px){
  .ac-drow{grid-template-columns:40px minmax(0,1fr) 150px;grid-template-areas:"gl info stat" "gl url url" "gl foot foot" "gl more more"}
}
@media (max-width:640px){
  .ac-drow{grid-template-columns:36px minmax(0,1fr);grid-template-areas:"gl info" "url url" "stat stat" "foot foot" "more more";padding:14px 16px;gap:10px 12px}
  .ac-drow>.ac-dgl{width:36px;height:36px}
  .ac-dstat{flex-direction:row;align-items:center;justify-content:space-between;padding-top:0}
  .ac-dacts{margin-left:0}
  .ac-dgh{padding:10px 16px}
  .ac-si>summary{padding:14px 16px;gap:12px} .ac-sic{width:32px;height:32px}
  .ac-sib{padding:12px 16px 16px}
  .ac-sibh{flex-direction:column-reverse;gap:8px} .ac-sibh .btn{align-self:flex-end}
  .ac-srow{grid-template-columns:40px minmax(0,1fr)} .ac-srr{grid-column:2;justify-content:flex-start}
}

/* 22.9.4판(53.3판) AI 연결 — 탭마다 한 줄 설명 · '연결 현황'(AI 마다 어느 MCP 주소로 몇 번 · MCP 주소마다 누가) · 접속 상태 점 · 기록 고르기
   (53.1판의 흐름 그림 · 연결 지도 표는 뺌 — 대표님 10-28 11:31 "연결지도라는걸 봐도 도무지 뭔 내용인지 알아들어 먹을 수가 없어") */
.ac-tabs{position:sticky;top:0;z-index:5;display:flex;gap:2px;margin:0 0 20px;padding:4px;border-radius:14px;background:var(--surface-3);overflow-x:auto;scrollbar-width:none}
.ac-tabs::-webkit-scrollbar{display:none}
.ac-tabs button{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:6px 16px;border:0;border-radius:11px;background:transparent;color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;text-align:left}
.ac-tabs button>.i{width:17px;height:17px;color:var(--muted);flex:none}
.ac-tl{display:flex;flex-direction:column;gap:1px;line-height:1.2} .ac-tl b{font-size:13.5px;font-weight:700} .ac-tl small{font-size:11px;font-weight:500;color:var(--muted)}
.ac-tabs button:hover{color:var(--ink)} .ac-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ac-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(17,24,39,.1)} .ac-tabs button.on>.i{color:var(--accent)} .ac-tabs button.on .ac-tl small{color:var(--ink-2)}
.ac-tabs em{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);background:var(--surface-3);border-radius:999px;padding:1px 7px}
.ac-tabs button.on em{background:var(--accent-soft);color:var(--accent-ink)} .ac-tabs em:empty{display:none}
.ac-tabs em.warn{background:var(--warn-soft);color:var(--warn-ink)} .ac-tabs em.ok{background:var(--ok-soft);color:var(--ok-ink)}
.ac-pane{animation:acIn .16s ease-out} @keyframes acIn{from{opacity:.4}to{opacity:1}}

/* 접속 상태 점 — 지금(30분 안) · 오늘 · 최근 7일 · 연결만 · 안 씀 (연결 현황 · AI 창 · MCP별 설정에서 같은 뜻) */
.ac-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--line-strong);flex:none;box-sizing:border-box}
.ac-dot.now{background:var(--ok);animation:acPulse 2s infinite} .ac-dot.today{background:var(--ok)} .ac-dot.week{background:var(--accent-line)}
.ac-dot.link{background:transparent;border:2px solid var(--ok)}

.ac-nowlead{margin:-2px 0 16px;font-size:14.5px;line-height:1.65;color:var(--ink-2);max-width:900px} .ac-nowlead b{color:var(--ink)}
.ac-now{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:20px;align-items:start}
.ac-h3{margin:0 0 10px;font-size:13px;font-weight:700;color:var(--ink-2)}
.ac-nrs{display:flex;flex-direction:column;gap:12px}
.ac-nr{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:6px 6px 10px}
.ac-nr.st-now{border-color:var(--ok-line)}
.ac-nrh{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:11px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ac-nrh:hover{background:var(--surface-2)} .ac-nrh:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ac-nrh .ac-mark{width:38px;height:38px;border-radius:11px}
.ac-nrn{display:flex;flex-direction:column;min-width:0;flex:1} .ac-nrn b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-nrn b em,.ac-nrr em,.ac-dupn{font-style:normal;font-size:11.5px;font-weight:600;color:var(--muted);margin-left:4px}
.ac-nrn small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-nrs2{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap;background:var(--surface-3);color:var(--ink-2);flex:none}
.ac-nrs2 i{width:8px;height:8px;border-radius:50%;background:var(--muted-2);box-sizing:border-box}
.ac-nrs2.now{background:var(--ok-soft);color:var(--ok-ink)} .ac-nrs2.now i{background:var(--ok);animation:acPulse 2s infinite}
.ac-nrs2.today{background:var(--ok-soft-2);color:var(--ok-ink)} .ac-nrs2.today i{background:var(--ok)}
.ac-nrs2.week i{background:var(--accent-line)} .ac-nrs2.link i{background:transparent;border:2px solid var(--ok)}
.ac-nrs2.cut{background:var(--bad-soft);color:var(--bad-ink)} .ac-nrs2.cut i{background:var(--bad)} .ac-nrs2.pause{background:var(--warn-soft);color:var(--warn-ink)} .ac-nrs2.pause i{background:var(--warn)}
.ac-nrgo{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:600;color:var(--muted);flex:none} .ac-nrgo .i{width:14px;height:14px}
.ac-nrh:hover .ac-nrgo{color:var(--accent-ink)}
.ac-nrl{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;padding:0 14px 8px 62px;font-size:13px;color:var(--ink-2);line-height:1.6} .ac-nrl b{color:var(--ink)}
.ac-nrlv{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)} .ac-nrlv .ac-lv{height:22px;font-size:11.5px}
.ac-nls{list-style:none;margin:0;padding:0 8px 0 54px;display:flex;flex-direction:column;gap:2px}
.ac-nl{display:grid;grid-template-columns:10px minmax(96px,150px) minmax(0,440px) 70px 64px;justify-content:start;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:9px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ac-nl:hover{background:var(--accent-soft)} .ac-nl:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ac-nl b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-nlb{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden} .ac-nlb i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.ac-nln{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.ac-nlt{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
.ac-nlx{grid-column:3 / -1;font-size:12px;color:var(--muted)}
.ac-nmore{padding:0 8px 0 54px} .ac-nmore>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;margin:4px 0 0 8px;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:600;color:var(--accent-ink);cursor:pointer}
.ac-nmore>summary::-webkit-details-marker{display:none} .ac-nmore>summary:hover{background:var(--accent-soft)} .ac-nmore .ac-nls{padding:0}
.ac-dupw{display:block;color:var(--warn-ink)!important;font-size:11.5px;margin-top:2px}
.ac-nrest{display:flex;flex-direction:column;gap:4px}
.ac-nrr{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-2);border-radius:11px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ac-nrr:hover{border-color:var(--line-strong)} .ac-nrr .ac-mark{width:28px;height:28px;border-radius:8px;font-size:10.5px} .ac-nrr b{flex:1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-nowr{position:sticky;top:76px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:14px 12px 12px}
.ac-nowr .ac-h3{padding:0 6px}
.ac-nds{display:flex;flex-direction:column;gap:2px}
.ac-nd{display:flex;align-items:center;gap:12px;width:100%;padding:10px 8px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ac-nd+.ac-nd{border-top:1px solid var(--line-2)} .ac-nd:hover{background:var(--surface-2)} .ac-nd:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ac-ndn{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1} .ac-ndn b{font-size:13.5px} .ac-ndn b em{font-style:normal;font-size:11px;font-weight:700;color:var(--warn-ink);margin-left:4px}
.ac-ndn small{font-size:12px;color:var(--ink-2);line-height:1.5} .ac-ndn small span{color:var(--muted);font-variant-numeric:tabular-nums}
.ac-ndc{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex:none} .ac-ndc b{font-size:13px;font-variant-numeric:tabular-nums} .ac-ndc small{font-size:11px;color:var(--muted)}
.ac-nd.shut .ac-ndn b{color:var(--muted)}
.ac-ndi{margin-top:10px;padding:10px 8px 2px;border-top:1px solid var(--line-2)} .ac-ndi p{margin:0 0 8px;font-size:12px;color:var(--muted)} .ac-ndi p b{color:var(--ink-2)}
.ac-ndi div{display:flex;flex-wrap:wrap;gap:6px}
.ac-ndi button{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}
.ac-ndi button:hover{border-color:var(--line-strong);color:var(--ink)} .ac-ndi button.shut{color:var(--muted);border-style:dashed}

.ac-aic{border:0;font:inherit;cursor:pointer} .ac-aic:hover{background:var(--accent-soft)}
.ac-aic.now i{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);animation:acPulse 2s infinite} .ac-aic.today i{background:var(--ok)} .ac-aic.week i{background:var(--accent-line)} .ac-aic.link i{background:transparent;border:2px solid var(--ok);box-sizing:border-box}
.ac-drow.flash{animation:acFlash 1.8s ease-out} @keyframes acFlash{0%,30%{background:var(--accent-soft)}100%{background:transparent}}

.ac-logbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0 0 12px}
.ac-lf{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted)} .ac-lf select{height:34px;min-width:170px}
.ac-logt{max-height:none} .ac-logt td small{display:block;color:var(--muted);font-size:11px;margin-top:1px;word-break:break-all}
.ac-aid{display:flex;flex-direction:column;gap:6px}
.ac-aidr{display:grid;grid-template-columns:14px minmax(0,auto) 1fr;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ac-aidr:hover{border-color:var(--line-strong)} .ac-aidr b{font-size:13px} .ac-aidr small{font-size:11.5px;color:var(--muted);justify-self:end;text-align:right}
@media (max-width:1100px){ .ac-now{grid-template-columns:minmax(0,1fr)} .ac-nowr{position:static} }
@media (max-width:760px){ .ac-tl small{display:none} .ac-tabs button{min-height:44px} }
@media (max-width:640px){
  .ac-tabs button{padding:0 12px} .ac-tabs button>.i{display:none} .ac-tl b{font-size:13px}
  .ac-nrh{padding:10px 8px;gap:10px} .ac-nrh .ac-mark{width:34px;height:34px} .ac-nrgo{display:none}
  .ac-nrl{padding:0 10px 8px} .ac-nls,.ac-nmore{padding:0 4px}
  .ac-nl{grid-template-columns:10px minmax(0,1fr) auto;row-gap:5px} .ac-nlb{grid-column:2 / -1;grid-row:2} .ac-nlt{display:none} .ac-nlx{grid-column:2 / -1}
  .ac-lf{width:100%} .ac-lf select{flex:1;min-width:0}
  .ac-aidr{grid-template-columns:14px 1fr} .ac-aidr small{grid-column:2;justify-self:start;text-align:left}
}
@media (prefers-reduced-motion:reduce){ .ac-pane,.ac-drow.flash{animation:none} .ac-dot.now,.ac-nrs2.now i,.ac-aic.now i{animation:none} }

/* AI 한 개 — 오른쪽 창 */
dialog.ac-sheet{width:480px}
.ac-shd{display:flex;align-items:center;gap:12px;margin-bottom:0} .ac-shd .ac-mark{width:44px;height:44px;border-radius:12px;font-size:14px}
.ac-shn{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px} .ac-shn h3{margin:0;font-size:17px} .ac-shn small{color:var(--muted);font-size:12px;padding-left:1px}
input.ac-nmin{height:34px;font-size:17px;font-weight:700;border-color:transparent;background:transparent;padding:0 8px;margin-left:-8px;border-radius:8px;width:calc(100% + 8px)}
input.ac-nmin:hover{border-color:var(--line)} input.ac-nmin:focus{border-color:var(--accent);background:var(--field)}
.ac-sstat{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:14px 0 18px;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:12.5px;color:var(--muted)}
.ac-sstat b{color:var(--ink);font-weight:600}
.ac-ssec{margin:0 0 16px} .ac-ssec h4{font-size:13px;margin:0 0 8px;display:flex;align-items:baseline;gap:8px} .ac-ssec h4 small{color:var(--muted);font-weight:500;font-size:11.5px;margin-left:auto}
.ac-lvs{display:flex;flex-direction:column;gap:8px} .ac-lvs.busy{opacity:.6;pointer-events:none}
.ac-lvc{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:13px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .12s,background .12s}
.ac-lvc:hover{border-color:var(--line-strong)} .ac-lvc.on{border-color:var(--accent);background:var(--accent-soft)} .ac-lvc:disabled{opacity:.55;cursor:default}
.ac-lvc:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ac-lvc b{display:block;font-size:14px} .ac-lvc small{display:block;font-size:12px;color:var(--ink-2);line-height:1.55;margin-top:2px}
.ac-rad{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);flex:none;margin-top:2px;position:relative;background:var(--surface)}
.ac-lvc.on .ac-rad{border-color:var(--accent)} .ac-lvc.on .ac-rad:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
.ac-tag{display:inline-block;margin-left:7px;font-style:normal;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--accent);color:var(--on-accent);vertical-align:2px}
.ac-swrow{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px} .ac-swrow>div{flex:1;min-width:0}
.ac-swrow b{font-size:13px} .ac-swrow small{display:block;font-size:12px;color:var(--muted)}
.ac-det{border:1px solid var(--line);border-radius:12px;margin:0 0 16px;background:var(--surface)}
.ac-det>summary{justify-content:space-between;padding:12px 14px;font-size:13px;font-weight:600;color:var(--ink-2);border-radius:12px} .ac-det>summary:hover{background:var(--surface-2)}
.ac-det[open]>summary{border-bottom:1px solid var(--line-2);border-radius:12px 12px 0 0}
.ac-detb{padding:0 14px 8px} .ac-detb .ai-sec:first-child{border-top:0}

/* AI 붙이기 창 */
dialog.ac-wiz{width:640px;padding:0;overflow:hidden}
.ac-wz{display:flex;flex-direction:column;max-height:calc(100vh - 48px)}
.ac-wzh{display:flex;align-items:center;gap:14px;padding:18px 22px 14px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.ac-wzh h3{margin:0;font-size:17px;flex:1} .ac-wzh .x{background:none;border:0;font-size:24px;line-height:1;color:var(--muted);padding:0 4px}
.ac-steps{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);font-weight:600}
.ac-steps span+i{margin-left:6px}
.ac-steps i{font-style:normal;width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:var(--surface-3);font-weight:700;font-size:11.5px;color:var(--muted)}
.ac-steps i.on{background:var(--accent);color:var(--on-accent)} .ac-steps i.done{background:var(--accent-soft);color:var(--accent-ink)}
.ac-wzb{padding:18px 22px 20px;overflow-y:auto;flex:1}
.ac-q{font-size:16px;font-weight:700;margin:0 0 4px;letter-spacing:-.01em}
.ac-wzf{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 22px;border-top:1px solid var(--line-2);background:var(--surface-2)}
.ac-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;margin-top:6px}
.ac-app{display:flex;flex-direction:column;align-items:center;gap:7px;padding:16px 10px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;transition:border-color .12s,transform .12s,box-shadow .12s}
.ac-app:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 16px rgba(17,24,39,.07)} .ac-app:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ac-app .ac-mark{width:46px;height:46px;border-radius:13px;font-size:14px} .ac-app small{font-weight:500;color:var(--muted);font-size:11px;margin-top:-4px}
.ac-pick{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 4px 30px}
.ac-pick button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.ac-pick button.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
ol.ac-guide{margin:10px 0 14px;padding-left:22px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;line-height:1.6}
ol.ac-guide li::marker{color:var(--accent);font-weight:800} ol.ac-guide small{color:var(--muted)}
.ac-put{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface-2);margin-bottom:10px}
.ac-put h5{margin:0 0 4px;font-size:13.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap} .ac-put h5 small{font-weight:500;color:var(--muted);font-size:11.5px;flex-basis:100%}
.ac-pn{width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:inline-grid;place-items:center;font-size:11px;font-weight:800}
.ac-wapr{border-radius:12px;padding:12px 14px;background:var(--blue-soft);border:1px solid var(--blue-line);color:var(--ink);font-size:13px;margin:4px 0 10px}
.ac-wapr ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px;line-height:1.55}
.ac-wl{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);margin-top:8px;font-size:13px}
.ac-wl>.i{width:20px;height:20px;flex:none} .ac-wl>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px} .ac-wl span{color:var(--ink-2);font-size:12.5px;line-height:1.5}
.ac-wl.warn{background:var(--warn-soft-2);border-color:var(--warn-line)} .ac-wl.warn>.i{color:var(--warn)}
.ac-wl.ok{background:var(--ok-soft-2);border-color:var(--ok-line)} .ac-wl.ok>.i{color:var(--ok)}
.ac-wl.bad{background:var(--bad-soft-2);border-color:var(--bad-line)} .ac-wl.bad>.i{color:var(--bad)}
.ac-wl.wait{border-style:dashed}
.ac-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--accent-soft-2);border-top-color:var(--accent);animation:acSpin .9s linear infinite;flex:none}
@keyframes acSpin{to{transform:rotate(360deg)}}
.ac-done{text-align:center;padding:6px 0 14px} .ac-done h3{margin:0 0 2px;font-size:19px} .ac-done p{margin:0 0 6px} .ac-done p.ac-done-n{font-size:15px;font-weight:700;color:var(--accent-ink);margin-bottom:12px}
.ac-okic{width:58px;height:58px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin:4px auto 12px}
.ac-okic .i{width:28px;height:28px;stroke-width:2.6}
.ac-done-acts{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}
@media (prefers-reduced-motion:reduce){.ac-st.on i,.ac-spin{animation:none}.ac-card,.ac-add,.ac-app{transition:none}}
@media (max-width:820px){
  .ac-hdacts{width:100%;justify-content:space-between}
  .ac-alert{flex-wrap:wrap} .ac-alacts{width:100%;justify-content:flex-end}
}
@media (max-width:600px){
  .ac-grid{grid-template-columns:1fr}
  .ac-add{padding:14px 16px;gap:12px;margin-bottom:22px} .ac-add-ic{width:40px;height:40px} .ac-add-t b{font-size:15.5px} .ac-add-t small{font-size:12.5px}
  .ac-keyf,.ac-lim{grid-template-columns:1fr}
  dialog.ac-sheet{width:100vw}
  dialog.ac-wiz{width:100vw;max-width:100vw;height:100%;max-height:100%;margin:0;border-radius:0;border:0}
  .ac-wz{max-height:100%;height:100%} .ac-wzh,.ac-wzb,.ac-wzf{padding-left:16px;padding-right:16px}
  .ac-apps{grid-template-columns:repeat(2,1fr)} .ac-steps>span{display:none}
}

/* 54판: MK 정리단 틀 — 업무 화면(프롬프트함 · 업무 · 반복 업무 · 파일함 · 알림 · 설정)은 정리단 안에서 (body.aiwf)
   대표님(10-28) "아카이브는 백과사전 · 정리단은 정리된 지식과 그걸로 하는 일" — 정리단(aiw/static/aiw.css)과 같은 위 막대 · 쪽빛 · 같은 글꼴
   색은 아카이브 토큰 이름 그대로 두고 값만 정리단 것으로 (밝게 · 어둡게) */
@font-face{font-family:"IBM Plex Sans KR";font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/plexkr-400.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans KR";font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/plexkr-500.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans KR";font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/plexkr-600.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans KR";font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/plexkr-700.woff2) format("woff2")}
@font-face{font-family:"Black Han Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/bhs-kr.woff2) format("woff2");unicode-range:U+1100-11FF,U+3130-318F,U+AC00-D7A3}
@font-face{font-family:"Black Han Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/bhs-latin.woff2) format("woff2");unicode-range:U+0000-00FF}
body.aiwf{
  --canvas:#F2F3F7; --surface:#FFFFFF; --surface-2:#F7F8FB; --surface-3:#ECEEF4; --field:#FFFFFF; --ink:#191B26; --ink-2:#4A4F64; --muted:#7D8398; --muted-2:#A6ABBC;
  --line:#E0E2EA; --line-2:#EBEDF2; --line-strong:#C9CCD8; --accent:#3F3CBB; --accent-soft:#ECECFB; --accent-soft-2:#DEDDF8; --accent-ink:#2E2B9C; --accent-line:#C7C5F0; --on-accent:#FFFFFF;
  --all-c:#191B26; --aw-amb-soft:#FFF3DC; --aw-amb-ink:#8A4F00;
  --sans:"IBM Plex Sans KR",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;
  --aw-top:58px;
}
html[data-theme="dark"] body.aiwf{
  --canvas:#101118; --surface:#181A23; --surface-2:#1D1F2A; --surface-3:#232532; --field:#1D1F2A; --ink:#E7E8F0; --ink-2:#B6BACB; --muted:#80869A; --muted-2:#5E6375;
  --line:#2A2D3A; --line-2:#22242F; --line-strong:#3A3E4E; --accent:#9C99F7; --accent-soft:#23224A; --accent-soft-2:#2D2B5E; --accent-ink:#BEBCFF; --accent-line:#3F3D78; --on-accent:#14132E;
  --all-c:#9C99F7; --aw-amb-soft:#33270F; --aw-amb-ink:#F6C97F;
}
body.aiwf{word-break:keep-all}
body.aiwf #app{display:block}
body.aiwf .page{padding:26px 32px 56px}
body.aiwf .wk-side{top:calc(var(--aw-top) + 18px)}
.aiwtop{position:sticky;top:0;z-index:40;height:var(--aw-top);display:flex;align-items:center;gap:28px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}
.aiwtop .ab{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none;white-space:nowrap;color:var(--ink)}
.aiwtop .stamp{width:30px;height:30px;border-radius:7px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font:700 11px/1 var(--sans);letter-spacing:.02em}
.aiwtop .wm{font:400 21px/1 "Black Han Sans",var(--sans);letter-spacing:.01em}
.atabs{display:flex;gap:4px;height:100%;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.atabs::-webkit-scrollbar{display:none}
.atabs a{display:flex;align-items:center;gap:7px;padding:0 12px;white-space:nowrap;text-decoration:none;color:var(--ink-2);font-weight:500;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.atabs a:hover{color:var(--ink)} .atabs a.on{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}
.atabs a:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:6px}
.atabs .cnt,.atabs .badge{font-size:11.5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:inline-grid;place-items:center;font-weight:600;line-height:1}
.atabs .cnt{background:var(--aw-amb-soft);color:var(--aw-amb-ink)} .atabs .badge{background:var(--bad);color:var(--surface)}
.atl{display:flex;align-items:center;gap:6px;flex:none}
.aiwtop .ghost{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:8px;border:1px solid transparent;background:none;color:var(--ink-2);text-decoration:none;cursor:pointer;font:inherit;font-size:13px}
.aiwtop .ghost:hover{background:var(--surface-3);color:var(--ink)} .aiwtop .ghost .i{width:16px;height:16px}
.aiwtop .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:900px){ body.aiwf .page{padding:18px 16px 48px} }
@media (max-width:760px){ .atabs{padding-right:22px;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent)} }
@media (max-width:640px){
  .aiwtop{gap:8px;padding:0 10px} .aiwtop .wm{display:none} .atabs a{padding:0 8px;font-size:13.5px} .atl .lbl{display:none} .aiwtop .ghost{padding:0 7px}
}

/* 23.2판(56.3판): 같은 방 합치기 (/chat/merge) — 번호 방 → 원래 방 한 줄 · 겹침/옮김 막대 · 진행 · 끝난 작업 */
.mg-scan{display:flex;gap:14px;align-items:center;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-ink);border-radius:var(--r);padding:14px 18px;margin:0 0 18px}
.mg-scan[hidden]{display:none} .mg-scan b{display:block;font-size:14px;margin-bottom:2px;color:var(--ink)} .mg-scan span{font-size:13px}
.mg-spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--accent-line);border-top-color:var(--accent);flex:none;animation:mgspin .9s linear infinite}
@keyframes mgspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.mg-spin{animation-duration:2.4s}}
.mg-found{font-size:12.5px;color:var(--muted);margin:-8px 0 14px} .mg-found b{color:var(--ink-2);font-weight:600}
.mg-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.mg-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;display:flex;flex-direction:column;gap:4px;min-width:0}
.mg-stat span{font-size:12.5px;color:var(--muted);font-weight:600}
.mg-stat b{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.15}
.mg-stat b small{font-size:13px;font-weight:600;color:var(--muted);margin-left:3px}
.mg-stat em{font-style:normal;font-size:12px;color:var(--muted)}
.mg-panel{padding:18px 20px 10px}
.mg-hd{display:flex;align-items:flex-start;gap:16px;margin-bottom:10px} .mg-hd>div{flex:1;min-width:0}
.mg-hd h2{margin:0 0 4px} .mg-hd p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.6;max-width:780px}
.mg-all{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap;margin-top:2px;cursor:pointer}
.mg-all input,.mg-pair input,.mg-dd input{width:17px;height:17px;margin:0;accent-color:var(--accent);flex:none}
.mg-pair{display:grid;grid-template-columns:24px minmax(0,1fr) 28px minmax(0,1fr) minmax(200px,.9fr) auto;align-items:center;gap:10px 12px;
  padding:12px 10px;border-top:1px solid var(--line-2);cursor:pointer;border-radius:10px;margin:0 -10px}
.mg-pair:hover{background:var(--surface-2)} .mg-pair.on{background:var(--accent-soft)} .mg-pair.on:hover{background:var(--accent-soft-2)}
.mg-pair.busy{opacity:.55;cursor:default}
.mg-room{min-width:0;display:flex;flex-direction:column;gap:2px}
.mg-room b{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mg-room.from b{color:var(--ink-2)} .mg-room small,.mg-split small{font-size:11.5px;color:var(--muted);line-height:1.45}
.mg-arrow{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--accent)}
.mg-arrow .i{width:15px;height:15px}
.mg-split{display:flex;flex-direction:column;gap:5px;min-width:0}
.mg-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--line-2);gap:2px}
.mg-bar i{display:block;height:100%;min-width:0} .mg-bar .ov{background:var(--muted-2)} .mg-bar .mv{background:var(--accent)}
.mg-split small b{color:var(--ink-2);font-weight:700;font-variant-numeric:tabular-nums}
.mg-look{display:flex;gap:6px} .mg-look a{font-size:12px;font-weight:600;color:var(--ink-2);padding:4px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);white-space:nowrap}
.mg-look a:hover{border-color:var(--accent-line);color:var(--accent-ink)}
.mg-check .mg-pair.on{background:var(--warn-soft-2)}
.mg-empty{padding:26px 10px}
.mg-dd{display:flex;gap:12px;align-items:flex-start;padding:12px 10px;border-top:1px solid var(--line-2);border-radius:10px;margin:0 -10px;cursor:pointer}
.mg-dd.on{background:var(--accent-soft)} .mg-dd input{margin-top:2px}
.mg-dd-t{display:flex;flex-direction:column;gap:3px;min-width:0} .mg-dd-t b{font-size:14px} .mg-dd-t small{font-size:12px;color:var(--muted);line-height:1.55}
.mg-more{margin:6px 0 8px} .mg-more summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ink-2);padding:6px 0;width:max-content}
.mg-ddt{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px}
.mg-ddt th{font-size:11.5px;color:var(--muted);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.mg-ddt td{padding:6px 8px;border-bottom:1px solid var(--line-2);vertical-align:top} .mg-ddt .r{text-align:right;font-variant-numeric:tabular-nums}
.mg-map{display:inline-block;margin:0 10px 2px 0;color:var(--ink-2)} .mg-map i{font-style:normal;color:var(--muted)}
.mg-job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:11px 0;border-top:1px solid var(--line-2)}
.mg-job b{font-size:13.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mg-job small{grid-column:1;font-size:12px;color:var(--muted)} .mg-job .act{grid-row:1 / span 2;grid-column:2;display:flex;gap:8px;align-items:center}
.mg-job .pb{grid-column:1 / -1;height:6px;border-radius:999px;background:var(--line-2);overflow:hidden}
.mg-job .pb i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .5s ease}
.mg-job .msg{grid-column:1 / -1;font-size:12px;color:var(--bad-ink);background:var(--bad-soft);border-radius:8px;padding:6px 10px}
@media (max-width:640px){.mg-job{grid-template-columns:minmax(0,1fr)}.mg-job small{order:1}.mg-job .act{order:2;grid-row:auto;grid-column:1;flex-wrap:wrap;margin-top:4px}.mg-job .pb,.mg-job .msg{order:3}.mg-job b{white-space:normal}}
.mg-hist-hd{font-size:12px;font-weight:700;color:var(--muted);margin:12px 0 2px}
.mg-bulk .btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent);margin-left:auto} .mg-bulk .btn.pri:hover{background:var(--accent-ink);color:var(--on-accent)}
.mk-dlg.mgdlg{width:480px} .mgdlg ul{list-style:none;margin:0 0 12px;padding:10px 14px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:11px}
.mgdlg li{display:flex;gap:12px;padding:5px 0;font-size:13px;line-height:1.5} .mgdlg li+li{border-top:1px dashed var(--line)}
.mgdlg li b{flex:none;width:110px;color:var(--muted);font-weight:600;font-size:12.5px} .mgdlg li span{flex:1;min-width:0;color:var(--ink)}
.mgdlg .note{font-size:12.5px;color:var(--ink-2);background:var(--accent-soft);border-radius:10px;padding:10px 12px;line-height:1.6;margin:0 0 6px}
.mgdlg .btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.rs-box.mg-note .i{color:var(--warn)} .rs-box.mg-note{background:var(--warn-soft-2);border-color:var(--warn-line);align-items:center}
.rs-box.mg-note>div{flex:1;min-width:0} .rs-box.mg-note .btn{flex:none}
@media (max-width:980px){
  .mg-pair{grid-template-columns:24px minmax(0,1fr) 28px minmax(0,1fr)}
  .mg-split{grid-column:2 / -1} .mg-look{grid-column:2 / -1}
}
@media (max-width:640px){
  .mg-stats{grid-template-columns:1fr} .mg-stat b{font-size:22px}
  .mg-pair{grid-template-columns:24px minmax(0,1fr)} .mg-arrow{grid-column:2;transform:rotate(90deg);width:24px;height:24px}
  .mg-room.to,.mg-split,.mg-look{grid-column:2} .mg-hd{flex-direction:column;gap:8px}
  .rs-box.mg-note{flex-wrap:wrap}
}

/* ── 23.3판(56.4판) 연락처 · MK Sync (/contacts · 대표님만) ───────────────────────────── */
.ct-hdact{flex:none;margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.ct-tabs{display:flex;gap:4px;margin:4px 0 14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.ct-tabs a{display:inline-flex;align-items:center;gap:6px;padding:9px 14px 10px;font-weight:600;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ct-tabs a:hover{color:var(--ink)} .ct-tabs a.on{color:var(--ink);border-bottom-color:var(--accent)}
.ct-tabs em{font-style:normal;font-size:11px;font-weight:700;background:var(--line-2);color:var(--ink-2);border-radius:999px;padding:0 7px;line-height:18px}
.ct-tabs em.bad{background:var(--bad-soft);color:var(--bad)}
.ct-hold{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--r);background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn-ink);margin-bottom:14px;flex-wrap:wrap}
.ct-hold>svg{margin-top:2px} .ct-hold>div{flex:1;min-width:240px;display:flex;flex-direction:column;gap:3px} .ct-hold span{font-size:12.5px;line-height:1.6}
.ct-hold .row{flex:none;flex-direction:row;gap:6px;min-width:0}
.ct-face{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none;display:inline-grid;place-items:center;background:var(--line-2)}
.ct-face.ini{background:hsl(var(--h,170) 32% 88%);color:hsl(var(--h,170) 40% 26%);font-weight:700;font-size:14px}
html[data-theme="dark"] .ct-face.ini{background:hsl(var(--h,170) 22% 24%);color:hsl(var(--h,170) 40% 82%)}
.ct-face.big{width:72px;height:72px;font-size:26px}
.ctview .mlist>a.ct-row{display:flex;align-items:center;gap:11px;padding:9px 16px}
.ct-t{flex:1;min-width:0;display:flex;flex-direction:column} .ct-t b{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-t small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-acc{flex:none;font-size:11px;color:var(--muted-2);max-width:92px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-star{color:#D97706;font-size:12px}
.ct-head{display:flex;gap:16px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.ct-head h1{margin:0 0 2px} .ct-sub{margin:0;color:var(--ink-2);font-size:13.5px} .ct-accs{margin:6px 0 0;display:flex;gap:5px;flex-wrap:wrap}
.ct-pend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:10px;background:var(--blue-soft);border:1px solid var(--blue-line);color:var(--blue-ink);font-size:13px;margin-bottom:14px}
.ct-pend .mg-spin{width:16px;height:16px;border-width:2px}
.ct-fields{margin:0 0 6px;display:flex;flex-direction:column}
.ct-f{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.ct-f dt{color:var(--muted);font-size:12.5px;font-weight:600;padding-top:1px} .ct-f dt span{font-weight:500;color:var(--muted-2)}
.ct-f dd{margin:0;font-size:14px;word-break:break-word;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ct-f dd a{color:var(--accent-ink)} .ct-f dd a:hover{text-decoration:underline}
.ct-f.x dd{color:var(--muted);font-size:12.5px}
.ct-memo{white-space:pre-wrap;line-height:1.7}
.ct-from{font-size:11px;color:var(--muted-2);font-weight:500}
.ct-note{font-size:12.5px;color:var(--muted);margin:-8px 0 16px}
.ct-feed,.ct-hist{margin-top:22px} .ct-feed h3,.ct-hist h3{font-size:14px;margin:0 0 10px;display:flex;gap:10px;align-items:baseline}
.ct-hist h3 a{font-size:12px;font-weight:500;color:var(--accent-ink)}
.ct-feedgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ct-feedgrid>div{border:1px solid var(--line);border-radius:12px;padding:12px 12px 8px;background:var(--surface-2);min-width:0}
.ct-feedgrid h4{margin:0 0 8px;font-size:13px;display:flex;gap:6px;align-items:center} .ct-feedgrid h4 svg{width:15px;height:15px;color:var(--muted)}
.ct-feedgrid h4 span{color:var(--muted);font-weight:500;font-size:12px} .ct-feedgrid h4 a{margin-left:auto;font-size:12px;font-weight:500;color:var(--accent-ink)}
.ct-feedgrid .muted{font-size:12.5px;margin:4px 0 6px}
.ct-it{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-top:1px solid var(--line-2);font-size:12.5px;min-width:0}
a.ct-it:hover span{color:var(--ink)} .ct-it time{font-size:11px;color:var(--muted-2)} .ct-it span{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-it em{font-style:normal;color:var(--accent-ink);font-weight:600}
.ct-ch{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:6px 10px;align-items:center;padding:9px 0;border-top:1px solid var(--line-2);font-size:13px}
.ct-ch.wide{grid-template-columns:88px auto minmax(0,1fr) auto auto}
.ct-ch time{font-size:12px;color:var(--muted)} .ct-ch .w{min-width:0;word-break:break-word} .ct-ch .w a b{color:var(--ink)}
.ct-ch .st{font-size:11.5px;font-weight:700;color:var(--c);white-space:nowrap} .ct-ch .sm,.ct-tr .sm{font-size:12px}
.ct-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 20px}
.ct-h3{font-size:14.5px;margin:0 0 8px} .ct-h3 small{font-weight:500;color:var(--muted);font-size:12px;margin-left:6px}
.ct-tr{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line-2);flex-wrap:wrap}
.ct-sync{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:14px;align-items:start}
.ct-dev{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.ct-dev header{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px} .ct-dev header>div{flex:1;min-width:0}
.ct-dev h3{margin:0;font-size:15px} .ct-dev header p{margin:2px 0 0;font-size:12.5px;color:var(--muted);line-height:1.6}
.ct-dev .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ct-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:none;background:var(--muted-2)}
.ct-dot.on{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)} .ct-dot.mid{background:var(--warn)} .ct-dot.off{background:var(--muted-2)}
.ct-sw{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.ct-sw span{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:9px;border:1px solid var(--line-2);font-size:12.5px;background:var(--surface-2)}
.ct-sw i{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none} .ct-sw .on i{background:var(--ok)}
.ct-sw b{margin-left:auto;font-weight:600;color:var(--muted);font-size:11.5px} .ct-sw .on b{color:var(--ok-ink)}
.ct-swnote{font-size:12px;color:var(--muted);margin:8px 0 0}
.ct-warn{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:10px;background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn-ink);margin-top:10px;font-size:12.5px;flex-wrap:wrap}
.ct-warn>div{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px} .ct-warn svg{margin-top:1px}
.ct-warn.soft{background:var(--surface-2);border-color:var(--line);color:var(--ink-2)}
.ct-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.ct-nums>div{display:flex;flex-direction:column;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);min-width:0}
.ct-nums span{font-size:11.5px;color:var(--muted)} .ct-nums b{font-size:20px;font-weight:800;line-height:1.3} .ct-nums em{font-style:normal;font-size:11px;color:var(--muted-2)}
.ct-steps{margin:0 0 4px;padding-left:20px;font-size:13px;line-height:1.75;color:var(--ink-2)} .ct-steps li{margin-bottom:4px}
.ct-dev .cal-paircode{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:12px 0 4px;padding:16px 18px;border-radius:12px;background:var(--accent-soft);border:1px solid var(--accent-line)}
.ct-dev .cal-paircode b{font-size:34px;letter-spacing:.08em;color:var(--accent-ink);font-weight:800} .ct-dev .cal-paircode small{font-size:12.5px;color:var(--accent-ink)}
.ct-dev .cal-paircode[hidden]{display:none}
.ct-log{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto} .ct-log li{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.ct-log time{flex:none;color:var(--muted);width:76px} .ct-log span{color:var(--ink-2)}
/* 고치기 · 새 연락처 폼 */
.ct-form{display:flex;flex-direction:column;gap:6px;max-width:760px}
.ct-form .btn.ghost{background:transparent;border-color:transparent;color:var(--accent-ink)} .ct-form .btn.ghost:hover{background:var(--accent-soft)}
.ct-form .btn.busy,.ct-form label.btn.busy{opacity:.6;pointer-events:none}
.ct-etop{display:flex;gap:18px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:6px;flex-wrap:wrap}
.ct-ephoto{display:flex;flex-direction:column;gap:6px;align-items:center;width:110px}
.ct-ename{flex:1;min-width:240px;display:flex;flex-direction:column;gap:8px}
.ct-bigname{height:44px;font-size:18px;font-weight:700}
.ct-more summary{cursor:pointer;font-size:12.5px;color:var(--accent-ink);font-weight:600;padding:2px 0}
.ct-ngrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.ct-ngrid label,.ct-acct{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
.ct-starcb{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer;width:max-content}
.ct-starcb input{width:16px;height:16px}
.ct-esec{padding:12px 0 6px;border-bottom:1px solid var(--line-2)} .ct-esec h4{margin:0 0 6px;font-size:13px;color:var(--ink-2)}
.ct-elist{display:flex;flex-direction:column;gap:6px}
.ct-er{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:6px 8px;align-items:start}
.ct-er .ct-type{height:38px} .ct-er .ct-lab{grid-column:1;grid-row:2}
.ct-er>.ct-vals{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;gap:6px;min-width:0}
.ct-er[data-solo] >.ct-vals,.ct-er .ct-vals:first-child{grid-column:1 / span 2}
.ct-vals textarea{min-height:64px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:var(--field);color:var(--ink);font:inherit;font-size:13.5px;width:100%;resize:vertical}
.ct-etail{display:flex;gap:6px;align-items:center;grid-column:3;grid-row:1}
.ct-etail .ct-raw{height:30px;font-size:12px;width:auto;max-width:150px;padding:0 6px}
.ct-x{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:grid;place-items:center}
.ct-x:hover{color:var(--bad);border-color:var(--bad-line);background:var(--bad-soft)} .ct-x svg{width:15px;height:15px}
.ct-add{margin-top:4px;align-self:flex-start}
.ct-ebar{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;padding:12px 0 6px;background:var(--surface);border-top:1px solid var(--line);margin-top:8px;flex-wrap:wrap}
.ct-ebar .muted{margin-left:6px}
/* 56.6판: 연락처 › 이어진 것 (회사 조직도 · 카톡방) · 직원 잇기 */
.ct-feedgrid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
.ct-links{margin-top:22px} .ct-links h3{font-size:14px;margin:0 0 10px;display:flex;gap:10px;align-items:baseline}
.ct-links h3 small{font-size:12px;font-weight:500;color:var(--muted)}
.ct-lkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ct-lk{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface);min-width:0;display:flex;flex-direction:column;gap:8px}
.ct-lk h4{margin:0;font-size:13px;display:flex;gap:6px;align-items:center} .ct-lk h4 svg{width:15px;height:15px;color:var(--muted)}
.ct-lk h4 span{color:var(--muted);font-weight:500;font-size:12px}
.ct-lk .muted.sm{margin:0;font-size:12.5px}
.ct-lkrow{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface-2);min-width:0}
.ct-lkrow.on{border-color:var(--accent-line);background:var(--accent-soft)}
.ct-lkrow .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ct-lkrow .t b{font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-lkrow .t span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.ct-lkrow .a{display:flex;gap:6px;align-items:center;flex:none;flex-wrap:wrap;justify-content:flex-end}
.ct-links .btn.ghost,.ct-omrow .btn.ghost,.ct-find .btn.ghost{background:transparent;border-color:transparent;color:var(--accent-ink)}
.ct-links .btn.ghost:hover,.ct-omrow .btn.ghost:hover{background:var(--accent-soft)}
.ct-lkfind{align-self:flex-start} .ct-lkfind svg{width:14px;height:14px}
.mk-dlg.ct-find{width:520px} .ct-findq{width:100%;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--field);color:var(--ink);font:inherit;font-size:14px}
.ct-findres{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,420px);overflow:auto;margin-top:10px;padding-right:2px}
.ct-findres .muted.sm{margin:6px 2px;font-size:12.5px}
.ct-omhd{display:flex;flex-direction:column;gap:12px;margin-bottom:14px} .ct-omhd .ct-note{margin:0}
.ct-omnums{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}
.ct-omnums>div{background:var(--surface);padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.ct-omnums span{font-size:12px;color:var(--muted)} .ct-omnums b{font-size:18px;font-variant-numeric:tabular-nums;color:var(--ink)}
.ct-omnums .ok b{color:var(--accent-ink)} .ct-omnums .muted b{color:var(--muted)}
.ct-omtool{display:flex;align-items:center;gap:12px;flex-wrap:wrap} .ct-omtool .chips{display:flex;gap:6px;flex-wrap:wrap;margin-right:auto}
.ct-omall{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer}
.ct-omlist{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.ct-omrow{display:grid;grid-template-columns:36px minmax(0,1.1fr) minmax(0,1.2fr) auto;gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--line-2);min-width:0}
.ct-omrow:first-child{border-top:0} .ct-omrow.h{background:var(--surface-2);font-size:12px;color:var(--muted);font-weight:600;padding:8px 14px}
.ct-omrow.done{background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}
.ct-omrow .p,.ct-omrow .c{display:flex;flex-direction:column;gap:2px;min-width:0}
.ct-omrow .c{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.ct-omrow b{font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-omrow small{font-size:12px;color:var(--muted)} .ct-omrow .c a{color:inherit;text-decoration:none} .ct-omrow .c a:hover b{text-decoration:underline}
.ct-omrow input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent)}
.ct-omrow .x{display:flex;justify-content:flex-end}
@media (max-width:900px){
  .ct-feedgrid{grid-template-columns:1fr} .ct-nums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-f{grid-template-columns:96px minmax(0,1fr)} .ct-er{grid-template-columns:minmax(0,1fr) auto}
  .ct-er .ct-type{grid-column:1;grid-row:1} .ct-er .ct-lab{grid-column:1;grid-row:2}
  .ct-er>.ct-vals{grid-column:1 / span 2;grid-row:auto} .ct-etail{grid-column:2;grid-row:1}
  .ct-ch,.ct-ch.wide{grid-template-columns:minmax(0,1fr) auto} .ct-ch .w{grid-column:1 / span 2} .ct-ch time{grid-column:1}
  .ct-hdact{justify-content:flex-start}
  .ct-feedgrid.four,.ct-lkgrid{grid-template-columns:1fr} .ct-omnums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-lkrow{flex-wrap:wrap} .ct-lkrow .a{width:100%;justify-content:flex-start}
  .ct-omrow{grid-template-columns:28px minmax(0,1fr) auto} .ct-omrow .c{grid-column:2 / span 2} .ct-omrow .x{grid-column:3;grid-row:1}
  .ct-omrow.h{display:none}
}

/* 23.4판(56.5판) 관리 › 휴대폰 MK Sync — 켜고 끄기 · 주기 · 인터넷 · 녹음 폴더 */
.sy-dev{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:16px 18px 14px;margin-bottom:14px}
.sy-hd{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line-2);margin-bottom:14px;flex-wrap:wrap}
.sy-hd>div{flex:1;min-width:200px} .sy-hd b{display:block;font-size:15px} .sy-hd>div span{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.sy-dot{width:10px;height:10px;border-radius:50%;background:var(--muted-2);flex:none;box-shadow:0 0 0 3px var(--surface-3)}
.sy-dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)} .sy-dot.warn{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.sy-note{font-size:12.5px;padding:8px 12px;border-radius:9px;background:var(--warn-soft-2);border:1px solid var(--warn-line);color:var(--warn-ink);margin-bottom:10px}
.sy-note.bad{background:var(--bad-soft-2);border-color:var(--bad-line);color:var(--bad-ink)}
.sy-note.info{background:var(--blue-soft);border-color:var(--blue-line);color:var(--blue-ink)}
/* 23.6판: 동기화 상태 — 갈래마다 마지막 동기화 · 문제 없음도 늘 보임 */
.sy-note.ok{background:var(--accent-soft,#e8f6f3);border-color:var(--accent-line,#bfe5dc);color:var(--accent-ink,#0f6b5c)}
.sy-stat{margin:0 0 14px}
.sy-sts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
.sy-st{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg-2,transparent);min-width:0}
.sy-st b{display:block;font-size:13px;margin-bottom:3px}
.sy-st span{display:block;font-size:12px;color:var(--muted);line-height:1.5}
.sy-st em{display:block;font-style:normal;font-size:12px;color:var(--bad-ink);margin-top:4px}
.sy-st.off{opacity:.6}
.sy-st.bad{border-color:var(--bad-line);background:var(--bad-soft-2)}
@media (max-width:860px){.sy-sts{grid-template-columns:1fr}}
.sy-dev h3{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:0 0 8px}
.sy-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}
.sy-col h3+.seg{margin-bottom:6px} .sy-col h3:not(:first-child){margin-top:16px}
.sy-sws{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px} .sy-sws.one{grid-template-columns:1fr}
.sy-sw{position:relative;display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer;color:var(--ink)}
.sy-sw:hover{border-color:var(--accent-line)} .sy-sw input{position:absolute;opacity:0;pointer-events:none} .sy-sw:focus-within{outline:2px solid var(--accent);outline-offset:1px}
.sy-sw .sw{flex:none;width:34px;height:20px;border-radius:999px;background:var(--line-strong);position:relative;transition:background .15s}
.sy-sw .sw i{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.sy-sw.on{border-color:var(--accent-line);background:var(--accent-soft)} .sy-sw.on .sw{background:var(--accent)} .sy-sw.on .sw i{transform:translateX(14px)}
.sy-sw .tx{flex:1;min-width:0} .sy-sw .tx b{display:block;font-size:13.5px} .sy-sw .tx small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;line-height:1.4}
.sy-seg{max-width:320px}
.sy-min{display:flex;align-items:center;gap:8px;margin:8px 0 2px} .sy-min input{width:96px} .sy-min span{font-size:13px;color:var(--ink-2)}
.sy-hint{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.sy-fhd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--line-2)}
.sy-fhd h3{margin:0} .sy-fhd span{font-size:12px;color:var(--muted)}
.sy-folds{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden}
.sy-fold{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface)} .sy-fold+.sy-fold{border-top:1px solid var(--line-2)}
.sy-fold.off .sy-ftx b{color:var(--muted)}
.sy-fic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;background:var(--surface-3);color:var(--muted)}
.sy-fic svg.i{width:16px;height:16px} .sy-fic.memo{background:var(--accent-soft);color:var(--accent-ink)} .sy-fic.call{background:var(--blue-soft);color:var(--blue-ink)}
.sy-ftx{flex:1;min-width:0} .sy-ftx b{display:block;font-size:13.5px;word-break:break-all} .sy-ftx span{display:block;font-size:12px;color:var(--muted)}
.sy-ftx .sy-sample{font-size:11.5px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sy-ftx em{display:block;font-style:normal;font-size:12px;color:var(--warn-ink);margin-top:2px}
.sy-fold select{width:auto;min-width:168px;flex:none}
.sy-empty{padding:14px;font-size:13px;color:var(--muted);background:var(--surface-2)}
.sy-ft{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:14px}
.sy-ft .sy-dirty{margin-right:auto;font-size:12.5px;font-weight:600;color:var(--warn-ink)}
.sy-logs{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}
.sy-logs div{display:flex;gap:10px;font-size:12px;color:var(--ink-2);padding:2px 0} .sy-logs time{flex:none;color:var(--muted);width:76px}
@media (max-width:860px){.sy-grid{grid-template-columns:1fr}}
@media (max-width:560px){.sy-sws{grid-template-columns:1fr} .sy-fold{flex-wrap:wrap} .sy-fold select{width:100%;min-width:0} .sy-dev{padding:14px}}
@media (prefers-reduced-motion:reduce){.sy-sw .sw,.sy-sw .sw i{transition:none}}

/* 23.4판(56.5판) '더 보기' 없이 이어서 — 단추 대신 가까이 오면 저절로 (automore.js) */
.am-wrap a[data-more],.am-wrap .am-hide,html.am-on .am-pg{display:none!important}
.am-wrap{min-height:36px;display:flex;align-items:center;justify-content:center;gap:10px}
.am-note{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--muted);padding:8px 0}
.am-note:empty,.am-note.idle{padding:0;min-height:20px}
.am-note.end{color:var(--muted-2)} .am-note.bad{color:var(--bad-ink)} .am-note .btn{height:28px}
.am-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:amspin .8s linear infinite}
@keyframes amspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.am-spin{animation:none;border-top-color:var(--line-strong)}}
.pk-older.pk-auto{display:block;width:100%;background:none;border:0;color:var(--muted);font-size:12px;padding:8px 0;cursor:pointer}
.pk-older.pk-auto:disabled{cursor:default}

/* ── 23.4판(56.5판) 연락처 그룹 · 여러 명 고르기 · 엑셀 올리기 */
.ct-chipsep{width:1px;height:18px;background:var(--line);margin:0 2px;align-self:center}
.chip.ct-gchip svg{width:13px;height:13px;opacity:.7} .chip.ct-gchip.on svg{opacity:1}
.chip.ct-gchip.pend{border-style:dashed}
.chip.ct-gman{color:var(--muted);border-style:dashed;cursor:pointer} .chip.ct-gman:hover{color:var(--ink);border-style:solid}
.chip.ct-gman svg{width:13px;height:13px}
.mlist .hd .ct-pickbtn{flex:none;align-self:center;margin-left:4px}
.mlist .hd .ct-pickbtn[aria-pressed="true"]{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.ct-ck{display:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);flex:none;place-items:center;color:transparent}
.ct-ck svg{width:13px;height:13px}
.ctview .mlist.picking>a.ct-row .ct-ck{display:grid}
.ctview .mlist.picking>a.ct-row{cursor:pointer;user-select:none}
.ctview .mlist.picking>a.ct-row.on{background:transparent}
.ctview .mlist.picking>a.ct-row.sel{background:var(--accent-soft)}
.ctview .mlist.picking>a.ct-row.sel .ct-ck{background:var(--accent);border-color:var(--accent);color:var(--on-float)}
html[data-theme="dark"] .ctview .mlist.picking>a.ct-row.sel .ct-ck{color:#0B1A18}
.ct-selbar{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;margin-top:6px;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 16px rgba(11,16,21,.06)}
.ct-selbar[hidden]{display:none}
.ct-selbar b{font-size:13px;margin-right:4px} .ct-selbar .sp{flex:1}
.ct-selbar .btn:disabled{opacity:.5;pointer-events:none}
.mk-dlg.ct-wide{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column}
.mk-dlg.ct-wide>.ct-gm,.mk-dlg.ct-wide>.ct-xl,.mk-dlg.ct-wide>.ct-gpick,.mk-dlg.ct-wide>.ct-skip{overflow:auto;min-height:0;flex:1 1 auto}
.mk-dlg .row .btn.danger{color:var(--bad)}
.ct-gnew{display:flex;gap:6px;flex-wrap:wrap}
.ct-gnew input{flex:1 1 200px;min-width:0;height:38px}
.ct-gnew select{flex:0 1 180px;height:38px;width:auto}
.ct-gnote{font-size:12px !important;margin:8px 0 10px !important}
.ct-glist{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.ct-grow{display:flex;gap:6px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-2)}
.ct-grow.pend{opacity:.7}
.ct-gtx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ct-gtx b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-gtx span{font-size:12px;color:var(--muted)}
.ct-gfix{font-size:11.5px;color:var(--muted-2)}
.ct-gempty{padding:16px 0;font-size:13px;color:var(--muted)}
.ct-gpick{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.ct-gopt{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.ct-gopt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.ct-gopt input{width:16px;height:16px;flex:none;accent-color:var(--accent)}
.ct-gopt span{display:flex;flex-direction:column;min-width:0} .ct-gopt b{font-size:13.5px;font-weight:600}
.ct-gopt small{font-size:12px;color:var(--muted)}
.ct-skip{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column}
.ct-skip li{display:flex;flex-direction:column;gap:1px;padding:8px 0;border-top:1px solid var(--line-2);font-size:13px}
.ct-skip li span{font-size:12px;color:var(--muted)}
.ct-xlsum{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.ct-xln{display:flex;flex-direction:column;align-items:flex-start;padding:8px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-2);min-width:72px}
.ct-xln b{font-size:18px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums} .ct-xln small{font-size:11.5px;color:var(--muted)}
.ct-xln.edit b{color:var(--accent-ink)} .ct-xln.new b{color:var(--blue-ink)} .ct-xln.del b{color:var(--bad)}
.ct-xln.conflict{background:var(--warn-soft);border-color:var(--warn-line)} .ct-xln.conflict b,.ct-xln.conflict small{color:var(--warn-ink)}
.ct-xln.bad b{color:var(--muted)}
.ct-xln.check{background:var(--warn-soft);border-color:var(--warn-line)} .ct-xln.check b,.ct-xln.check small{color:var(--warn-ink)}
.ct-xlist{border:1px solid var(--line);border-radius:10px;max-height:300px;overflow:auto;margin-bottom:10px}
.ct-xr{display:grid;grid-template-columns:48px 58px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;border-top:1px solid var(--line-2);font-size:12.5px}
.ct-xr:first-child{border-top:0}
.ct-xrow{color:var(--muted-2);font-size:11.5px;font-variant-numeric:tabular-nums;padding-top:2px}
.ct-xk{font-size:11px;font-weight:700;border-radius:6px;padding:1px 0;text-align:center;background:var(--line-2);color:var(--ink-2)}
.ct-xk.edit{background:var(--accent-soft);color:var(--accent-ink)} .ct-xk.new{background:var(--blue-soft);color:var(--blue-ink)}
.ct-xk.del{background:var(--bad-soft);color:var(--bad)} .ct-xk.bad{background:var(--line-2);color:var(--muted)}
.ct-xk.check{background:var(--warn-soft);color:var(--warn-ink);white-space:nowrap}
.ct-xtx{display:flex;flex-direction:column;gap:2px;min-width:0}
.ct-xtx b{font-weight:600;font-size:13px} .ct-xtx span{color:var(--ink-2);word-break:break-word;line-height:1.5}
.ct-xtx em{font-style:normal;font-size:11.5px;color:var(--warn-ink)}
.ct-xmore{padding:8px 10px;border-top:1px solid var(--line-2);font-size:12px;color:var(--muted)}
.ct-xopt{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink-2);margin:6px 0;cursor:pointer;line-height:1.5}
.ct-xopt input{width:16px;height:16px;margin-top:2px;flex:none;accent-color:var(--accent)}
.ct-xopt.col{flex-direction:column;gap:4px;cursor:default} .ct-xopt.col span{font-size:12px;color:var(--muted)}
.ct-xopt.col select{height:36px;width:100%}
/* 24.1판: 엑셀 그대로 — 휴지통에서 살림 · 엑셀에 없는 연락처 · 이 엑셀이 몇 명짜리인지 */
.ct-xln.revive b{color:var(--ok-ink)} .ct-xk.revive{background:var(--ok-soft);color:var(--ok-ink)}
.ct-xsc{margin:0 0 10px;font-size:12.5px;color:var(--muted);line-height:1.5} .ct-xsc b{color:var(--ink);font-weight:700}
.ct-xsc.part{padding:8px 11px;border-radius:9px;background:var(--warn-soft);color:var(--warn-ink)} .ct-xsc.part b{color:var(--warn-ink)}
.ct-xnote{margin:8px 0 4px;padding:8px 11px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2);line-height:1.55}
.ct-xopt.warn{padding:9px 11px;border-radius:9px;border:1px solid var(--bad-line);background:var(--bad-soft)}
.ct-xopt.warn b{color:var(--bad);font-weight:700} .ct-xopt.warn input{accent-color:var(--bad)}
.ct-xnames{display:block;margin-top:3px;font-size:11.5px;color:var(--muted);word-break:keep-all}
.ct-xlbtn{display:inline-flex;align-items:center;gap:0} .ct-xlbtn .btn.part{margin-left:6px;font-size:12px;height:30px;padding:0 10px;color:var(--muted)}
@media (max-width:900px){                                                     /* 한 칸 화면 — 고른 사람 막대는 화면 아래에 붙임 */
  .ct-selbar{position:fixed;left:0;right:0;bottom:0;margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));z-index:30;border-top:1px solid var(--line)}
  .ctview .mlist.picking{padding-bottom:64px}
}
@media (max-width:640px){
  .mk-dlg.ct-wide{padding:18px 16px}
  .ct-xr{grid-template-columns:40px 40px minmax(0,1fr)}
  .ct-selbar .sp{display:none}
  .ct-selbar>b{width:100%}
}

/* ── 23.7판(56.8판) 연락처 — 왼쪽 그룹 목록 · 그룹 화면 · [그룹 지정] · 엑셀 업로드 기록 · 휴지통 보관 기간 */
.ct-wrap{display:grid;grid-template-columns:236px minmax(0,1fr);gap:14px;align-items:start}
.ct-main{min-width:0}
.ct-main .mtools{flex-wrap:nowrap}
.ct-main .mtools .search{margin-left:0;flex:1;min-width:0}
.ct-sort{height:32px;width:auto;padding:0 10px;font-size:12.5px;flex:none}
.ct-side{position:sticky;top:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);max-height:calc(100vh - 146px);min-height:480px;overflow-y:auto;padding:8px;display:flex;flex-direction:column}
.ct-sblk{display:flex;flex-direction:column;gap:1px;padding:4px 0 8px;border-bottom:1px solid var(--line-2)}
.ct-sblk+.ct-sblk{padding-top:8px}
.ct-sblk:last-child{border-bottom:0}
.ct-shd{display:flex;align-items:baseline;justify-content:space-between;padding:4px 10px 6px}
.ct-shd h3{margin:0;font-size:12.5px;font-weight:700;color:var(--ink-2)} .ct-shd span{font-size:11.5px;color:var(--muted)}
.ct-sit{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:13.5px;color:var(--ink-2);min-width:0;line-height:1.3}
a.ct-sit:hover{background:var(--surface-2);color:var(--ink)}
.ct-sit.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.ct-sit>svg{width:16px;height:16px;flex:none;opacity:.7}
.ct-sit .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-sit .nm small{display:block;font-size:11px;color:var(--muted-2);font-weight:500;overflow:hidden;text-overflow:ellipsis}
.ct-sit .n{flex:none;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}
.ct-sit.on .n,.ct-sit.on .nm small{color:inherit;opacity:.8}
.ct-sit.g{padding:6px 10px 6px 8px}
.ct-sit.pend{color:var(--muted)} .ct-sit.pend .ct-gdot{opacity:.6}
.ct-sit .mg-spin{width:14px;height:14px;border-width:2px;flex:none}
.ct-gdot{width:28px;height:28px;border-radius:8px;display:inline-grid;place-items:center;flex:none;background:hsl(var(--h,170) 52% 92%);color:hsl(var(--h,170) 48% 32%)}
.ct-gdot svg{width:15px;height:15px}
.ct-gdot.big{width:40px;height:40px;border-radius:11px} .ct-gdot.big svg{width:20px;height:20px}
html[data-theme="dark"] .ct-gdot{background:hsl(var(--h,170) 26% 22%);color:hsl(var(--h,170) 52% 78%)}
.btn.ct-gnewbtn{margin:0 4px 8px;justify-content:center;height:36px}
.btn.ct-gnewbtn svg{width:16px;height:16px}
.ct-sempty{margin:4px 10px 6px;font-size:12px;line-height:1.6;color:var(--muted)}
.ct-sman{display:flex;align-items:center;gap:8px;margin:6px 4px 0;padding:7px 8px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:12.5px;cursor:pointer;text-align:left}
.ct-sman:hover{background:var(--surface-2);color:var(--ink)} .ct-sman svg{width:15px;height:15px}
/* 그룹 화면 머리 */
.ct-ghd{padding:14px 16px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.ct-ghd .top{display:flex;gap:12px;align-items:center}
.ct-ghd .t{flex:1;min-width:0} .ct-ghd h2{margin:0;font-size:16.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-ghd small{font-size:12px;color:var(--muted)}
.ct-gx{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--muted);flex:none}
.ct-gx:hover{background:var(--line-2);color:var(--ink)} .ct-gx svg{width:16px;height:16px}
.ct-gact{display:flex;gap:6px;flex-wrap:wrap}
.ct-gact .btn svg{width:14px;height:14px}
.btn.ct-gdel{color:var(--bad)} .btn.ct-gdel:hover{background:var(--bad-soft);border-color:var(--bad-line)}
.ct-ghd .ct-gfix{margin:0;font-size:12px;color:var(--muted)}
.mlist .hd .ct-pickbtn svg{width:13px;height:13px}
/* 연락처 한 명 › 그룹 */
.ct-grp{display:flex;flex-direction:column;gap:8px;padding:0 0 14px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.ct-grp h3{margin:0;font-size:12.5px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px}
.ct-grp h3 svg{width:14px;height:14px}
.ct-gtags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ct-gtag{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:600;background:hsl(var(--h,170) 52% 93%);color:hsl(var(--h,170) 48% 28%);border:1px solid hsl(var(--h,170) 40% 84%)}
a.ct-gtag:hover{border-color:hsl(var(--h,170) 40% 62%)}
html[data-theme="dark"] .ct-gtag{background:hsl(var(--h,170) 26% 20%);color:hsl(var(--h,170) 52% 80%);border-color:hsl(var(--h,170) 24% 30%)}
.ct-gtag.wait{background:var(--surface-2);color:var(--ink-2);border:1px dashed var(--line-strong);font-weight:500}
.ct-gtag small{font-size:11px;color:var(--muted);font-weight:500}
.ct-gnone{font-size:13px;color:var(--muted);margin-right:4px}
.btn.ct-gset{height:30px;border-style:dashed;color:var(--accent-ink);border-color:var(--accent-line)}
.btn.ct-gset:hover{background:var(--accent-soft);border-style:solid}
.btn.ct-gset svg{width:14px;height:14px}
/* 창 — 새 그룹 · 그룹 지정 · 연락처 추가 */
.ct-fld{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.ct-fld span{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.ct-fld input,.ct-fld select{height:40px;width:100%}
.ct-gm .ct-gnewbtn{margin:0 0 10px;align-self:flex-start}
.ct-gm{display:flex;flex-direction:column}
.ct-grow .ct-gdot{width:26px;height:26px}
.ct-gchecks{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ct-gopt input[type=checkbox]{width:16px;height:16px;flex:none;accent-color:var(--accent)}
.ct-gopt:has(input[type=checkbox]:checked){border-color:var(--accent);background:var(--accent-soft)}
.ct-gopt.in{opacity:.6;cursor:default}
.ct-gopt .ct-gdot{width:26px;height:26px;display:inline-grid}
.ct-gpick .ct-gnew{margin-top:2px}
.ct-gpick .ct-gnew input{height:38px}
.mk-dlg.ct-wide>.ct-gadd{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
.ct-gadd .ct-findq{height:40px;width:100%;margin-bottom:6px}
.ct-gres{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:120px;max-height:46vh;padding-right:2px}
.ct-gres .ct-gopt{padding:8px 12px}
/* 변경 이력 › 엑셀 업로드 기록 */
.ct-batches{margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.ct-bt{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:6px 12px;align-items:center;padding:10px 12px;border:1px solid var(--line-2);border-radius:11px;margin-top:8px;background:var(--surface)}
.ct-bt.on{border-color:var(--accent);background:var(--accent-soft)}
.ct-bt.undone{background:var(--surface-2)} .ct-bt.undone .t{opacity:.7}
.ct-btico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#E7F3EC;color:#107C41}
html[data-theme="dark"] .ct-btico{background:#173025;color:#6FD39B}
.ct-btico svg{width:18px;height:18px}
.ct-bt .t{display:flex;flex-direction:column;gap:2px;min-width:0}
.ct-bt .t b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .ct-bt .t b small{font-weight:500;color:var(--muted);font-size:12px}
.ct-bt .t span{font-size:12.5px;color:var(--ink-2)}
.ct-btst{font-size:12px;font-weight:700;white-space:nowrap}
.ct-btst.done{color:var(--ok-ink)} .ct-btst.busy{color:var(--blue-ink)} .ct-btst.undone{color:var(--muted)}
.ct-bt .a{display:flex;gap:6px}
/* 휴지통 */
.ct-trhd{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.ct-trhd .ct-h3{flex:1;min-width:260px}
.ct-tdays{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.ct-tdays select{height:32px;width:auto;padding:0 10px}
.ct-trw{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.ct-trw small{font-size:12px;color:var(--muted)} .ct-trw a{color:var(--accent-ink);text-decoration:underline}
.ct-tr .btn svg{width:14px;height:14px}
@media (max-width:900px){
  .ct-wrap{display:block}
  .ct-wrap.read .ct-side{display:none}
  .ct-side{position:static;max-height:none;min-height:0;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:6px;margin-bottom:10px;gap:6px;scrollbar-width:none}
  .ct-sblk,.ct-sblk+.ct-sblk{flex-direction:row;align-items:center;border:0;padding:0;gap:6px;flex:none}
  .ct-shd,.ct-sempty,.ct-sman,.ct-sblk.acc{display:none}
  .ct-sit{white-space:nowrap;border:1px solid var(--line);padding:5px 10px;flex:none}
  .ct-sit .nm small{display:none}
  .ct-sit.g{padding:4px 10px 4px 5px} .ct-sit .ct-gdot{width:24px;height:24px}
  .btn.ct-gnewbtn{margin:0;height:34px;flex:none}
  .ct-bt{grid-template-columns:auto minmax(0,1fr)} .ct-btst,.ct-bt .a{grid-column:2}
  .ct-trw{align-items:flex-start;text-align:left}
}

/* ── 23.8판(56.9판) 동기화 주기 잠금 · 기술 정보 · 카톡 [대화 올리기] 자리 · 티로 '직접 확인할 녹음' */
.sy-min.off input{background:var(--surface-3);color:var(--muted-2);cursor:not-allowed;border-color:var(--line)}
.sy-min.off span{color:var(--muted-2)}
.sy-tech{margin-top:6px;font-size:12px;color:var(--muted)}
.sy-tech summary{cursor:pointer;font-weight:600;font-size:12px;color:var(--muted)}
.sy-tech code{display:block;margin-top:4px;padding:8px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line-2);font-size:11.5px;color:var(--ink-2);white-space:pre-wrap;word-break:break-all}
.gband-top{display:flex;align-items:flex-start;gap:10px;min-width:0}
.gband-top .rcats.gcats{flex:1;min-width:0}
.gup{flex:none;display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:13.5px;font-weight:700;white-space:nowrap}
.gup:hover{background:var(--line-2);color:var(--ink)} .gup svg{width:17px;height:17px}
@media (max-width:760px){.gup{height:44px;padding:0 12px} .gup span{display:none}}
.tirobot .tb-human{border:0;background:none;padding:0;font:inherit;color:var(--bad);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.tirobot .tb-human:hover{color:var(--bad-hover)}
.mk-dlg.tb-dlg{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column}
.tb-dlg>p{font-size:13px;line-height:1.65;color:var(--ink-2)}
.tb-list{overflow:auto;min-height:80px;flex:1 1 auto;border-top:1px solid var(--line-2);margin-bottom:10px}
.tb-it{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line-2)}
.tb-it:hover{background:var(--surface-2)}
.tb-it .k{font-size:11.5px;font-weight:700;color:var(--muted)}
.tb-it .t{min-width:0;display:flex;flex-direction:column} .tb-it .t b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-it .t small{font-size:12px;color:var(--muted)}
.tb-it time{font-size:11.5px;color:var(--muted-2);font-variant-numeric:tabular-nums}

/* ── 24.1판(57.2판): 중요한 일 확인 — 잠금 표시 · 열기 창 · 설정 칸 (stepup.js) */
.su-chip{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:7px 8px 7px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-size:12.5px;color:var(--ink-2)}
.su-chip[hidden]{display:none}
.su-chip .su-dot{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none}
.su-chip.open .su-dot{background:var(--ok)}
.su-chip .su-tx{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .su-chip .su-tx b{color:var(--ink);font-weight:700}
.su-chip .su-act{all:unset;cursor:pointer;font-size:12px;font-weight:600;color:var(--accent-ink);padding:3px 8px;border-radius:7px;flex:none}
.su-chip .su-act:hover{background:var(--accent-soft)} .su-chip .su-act:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.aiwtop .su-chip{margin:0 6px 0 0;padding:4px 6px 4px 10px;height:30px;box-sizing:border-box}
.su-dlg{width:440px}
.su-dlg .su-code{width:100%;box-sizing:border-box;height:52px;font-size:26px;font-weight:700;letter-spacing:.42em;text-align:center;font-variant-numeric:tabular-nums;border-radius:11px;padding:0 0 0 .42em}
.su-dlg .su-pw{width:100%;box-sizing:border-box;height:42px}
.su-lab{font-size:12px;font-weight:600;color:var(--muted);margin:16px 0 7px}
.su-durs{display:flex;flex-wrap:wrap;gap:6px}
.su-durs button{all:unset;cursor:pointer;height:32px;padding:0 13px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface)}
.su-durs button:hover{background:var(--line-2)}
.su-durs button[aria-checked="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.su-durs button:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.su-own{display:flex;align-items:center;gap:6px;margin-top:8px} .su-own[hidden]{display:none}
.su-own input{width:84px;height:34px} .su-own select{height:34px}
.su-ownnote{font-size:12px;color:var(--muted)}
.su-dlg .su-note{margin:12px 0 4px;font-size:12px}
.su-swap{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px;margin-top:4px}
.su-swap:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:4px}
.su-swap[hidden],.su-dlg [hidden]{display:none!important}
html.su-modal{overflow:hidden}
.su-hint{display:block;margin:-4px 0 10px;font-size:12px;color:var(--muted);line-height:1.5}
.su-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:95;background:var(--float);color:var(--on-float);padding:10px 16px;border-radius:10px;font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:calc(100% - 32px)}
.su-toast.bad{background:var(--bad)} .su-toast[hidden]{display:none}
#suCard{display:flex;flex-direction:column;gap:6px}
.su-sec{padding:14px 0 16px;border-top:1px solid var(--line-2)} .su-sec:first-child{border-top:0;padding-top:0}
.su-sec h3{margin:0 0 4px;font-size:14.5px} .su-secsub{margin:0 0 12px;font-size:12.5px;color:var(--muted);line-height:1.6}
.su-state{font-size:13.5px;color:var(--ink-2);margin-bottom:6px} .su-state b{font-weight:700;color:var(--ink)}
.su-state.on b{color:var(--ok-ink)} .su-state.pending b{color:var(--warn-ink)}
.su-phone{margin:0 0 10px;font-size:12.5px;color:var(--muted)} .su-phone.warn{color:var(--warn-ink)}
input.su-code:placeholder-shown{letter-spacing:normal;font-weight:500;font-size:15px}
.su-row,.su-pair,.su-sure{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.su-sure[hidden]{display:none} .su-sure span{font-size:12.5px;color:var(--bad-ink)}
.su-pair select{height:32px;max-width:100%}
.btn.su-del{color:var(--bad);border-color:var(--bad-line)} .btn.su-del.pri{background:var(--bad);border-color:var(--bad);color:var(--on-bad)}
.su-code.sm{width:150px;height:34px;font-size:17px;font-weight:700;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}
.su-steps{margin:6px 0 4px;padding-left:20px;font-size:13px;line-height:1.9;color:var(--ink-2)} .su-steps li.ok{color:var(--ok-ink)}
.su-check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2);margin-bottom:10px} .su-check input{width:16px;height:16px;accent-color:var(--accent)}
.su-here{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.su-here code,.su-list code{font-size:12.5px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;padding:1px 7px}
.su-tag{font-size:11.5px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--line-2);color:var(--muted)} .su-tag.ok{background:var(--ok-soft);color:var(--ok-ink)}
.su-list{list-style:none;margin:12px 0 0;padding:0;border:1px solid var(--line-2);border-radius:10px}
.su-list li{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px} .su-list li+li{border-top:1px solid var(--line-2)} .su-list li .btn{margin-left:auto}
.su-muted{color:var(--muted);font-size:12px}
.su-pwlist{margin:0;padding-left:18px;font-size:13px;line-height:1.85;color:var(--ink-2)}
.su-log{list-style:none;margin:0;padding:0;font-size:12.5px;color:var(--ink-2)} .su-log li{display:flex;gap:10px;padding:4px 0} .su-log li .su-muted{flex:none;width:86px;font-variant-numeric:tabular-nums}
.su-empty{color:var(--muted);font-size:13px;margin:0}

/* ── 24.1판(57.2판): 휴지통 체크 칸 · 고른 것 복구 · 전체 복구 · 전량 원복 미리 보기 */
.ct-trbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin:4px 0 6px;border:1px solid var(--line-2);border-radius:11px;background:var(--surface-2)}
.ct-trbar .sp{flex:1}
.ct-trall{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.ct-trall input,.ct-trck{width:17px;height:17px;margin:0;accent-color:var(--accent);flex:none;cursor:pointer}
.ct-trn{font-size:12.5px;color:var(--muted)}
.ct-trbar .btn svg{width:14px;height:14px}
.ct-tr .tagrow{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.tag.twin{background:var(--warn-soft-2);color:var(--warn-ink);border:1px solid var(--warn-line)}
.ct-xr.rv{grid-template-columns:136px minmax(0,1fr)}
.ct-xk.rv-edit,.ct-xk.rv-relink{background:var(--accent-soft);color:var(--accent-ink)}
.ct-xk.rv-restore{background:var(--ok-soft);color:var(--ok-ink)}
.ct-xk.rv-remove{background:var(--bad-soft);color:var(--bad)}
.ct-xk.rv-group{background:var(--blue-soft);color:var(--blue-ink)}
.ct-xk.rv-keep{background:var(--line-2);color:var(--muted)}
.ct-xln.rv-edit b,.ct-xln.rv-relink b{color:var(--accent-ink)} .ct-xln.rv-restore b{color:var(--ok-ink)} .ct-xln.rv-remove b{color:var(--bad)} .ct-xln.rv-group b{color:var(--blue-ink)} .ct-xln.rv-keep b{color:var(--muted)}
.ct-rvwarn{margin:8px 0 4px!important;padding:9px 12px;border-radius:9px;background:var(--warn-soft);color:var(--warn-ink)!important;font-size:12.5px!important;line-height:1.55}
@media (max-width:640px){.ct-xr.rv{grid-template-columns:1fr}}

/* ── 24.3판(57.4판): 엑셀 미리 보기 카드로 거르기 · 엑셀 다운로드 고르기 · 휴대폰에 넣는 중 */
button.ct-xln{font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s}
button.ct-xln:hover{border-color:var(--line)}
button.ct-xln:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.ct-xln.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ct-xflt{display:flex;align-items:center;gap:10px;margin:-2px 0 8px!important;font-size:12.5px!important;color:var(--muted)!important}
.ct-xflt .lnk{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent-ink);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
button.ct-xmore{display:block;width:100%;border:0;border-top:1px solid var(--line-2);background:var(--surface-2);font:inherit;font-size:12.5px;color:var(--accent-ink);font-weight:600;cursor:pointer;text-align:center}
button.ct-xmore:hover{background:var(--line-2)}
.ct-xk.same{background:var(--line-2);color:var(--muted)}
/* 24.3.2판(57.6판): 엑셀 다운로드 · 업로드 한 묶음 — 같은 줄 · 같은 높이 (펼침 상자 대신 보통 단추) */
.ct-xlg{display:inline-flex;align-items:center;gap:8px;flex:none;flex-wrap:nowrap}
.ct-xlg .btn{margin-top:0}
.ct-hdact .ct-xlg{margin-top:4px}
.ct-dl{position:relative;display:inline-flex;align-items:center}
.ct-dl>.btn .i.dd{width:14px;height:14px;margin:0 -2px 0 2px;transform:rotate(90deg);transition:transform .15s}
.ct-dl>.btn[aria-expanded="true"] .i.dd{transform:rotate(-90deg)}
.ct-dlm{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:260px;padding:6px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.14);display:flex;flex-direction:column}
.ct-dlm[hidden]{display:none}
.ct-dlm a{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border-radius:8px;color:inherit;text-decoration:none}
.ct-dlm a:hover,.ct-dlm a:focus-visible{background:var(--surface-2)}
.ct-dlm b{font-size:13.5px;font-weight:600} .ct-dlm small{font-size:12px;color:var(--muted)}
.ct-syncing{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:10px;background:var(--blue-soft);border:1px solid var(--blue-line);color:var(--blue-ink);font-size:13px;margin:0 0 14px}
.ct-syncing[hidden]{display:none}
.ct-syncing .mg-spin{width:16px;height:16px;border-width:2px;flex:0 0 auto}
.ct-syncing b{font-weight:700;font-variant-numeric:tabular-nums}

/* 24.3.3판(57.7판): 연락처 목록 — 검색 · 정렬을 목록 머리 바로 아래로 (대표님 11-01) · 머리와 함께 위에 붙어 있음 */
.ctview .ct-lhd{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line)}
.ctview .ct-lhd .hd{position:static;border-bottom:0;padding-bottom:8px}
.ct-main .mtools.ct-lfind{margin:0;padding:0 16px 12px;gap:8px}
.ct-lfind .search{height:34px}
.ct-lfind .search input{height:32px;background:transparent}
.ct-lfind .ct-sort{height:34px}

/* ── 24.4판(57.8판): 접속 확인 — 번호로 열기 화면(/stepup) · 설정 칸(인증 유효 시간 · 이 컴퓨터 · 휴대폰) */
.sg-card{width:384px;padding:30px 30px 22px}
.sg-brand{padding:0 0 22px}
.sg-h{margin:0 0 6px;font-size:21px;line-height:1.3;letter-spacing:-.015em;font-weight:750}
.sg-why{margin:0 0 20px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.sg-form{display:flex;flex-direction:column}
.sg-lab{font-size:12.5px;font-weight:600;color:var(--muted);margin:0 0 8px}
.sg-code{box-sizing:border-box;width:100%;height:64px;border-radius:12px;border:1px solid var(--line);background:var(--field);color:var(--ink);
  font:inherit;font-size:32px;font-weight:700;letter-spacing:.5em;text-indent:.5em;text-align:center;font-variant-numeric:tabular-nums;caret-color:var(--accent)}
.sg-code::placeholder{color:var(--line);font-weight:600}
.sg-code:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.sg-err{min-height:18px;margin:8px 0 2px;font-size:12.5px;font-weight:600;color:var(--bad);line-height:1.5}
.sg-err:empty{min-height:0;margin:6px 0 0}
.sg-go{width:100%;justify-content:center;height:44px;margin-top:10px;font-size:14.5px}
.sg-keep{margin:12px 0 0;font-size:12.5px;color:var(--muted);text-align:center} .sg-keep b{color:var(--ink-2);font-weight:700}
.sg-alt{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2)}
.sg-altbtn{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.sg-altbtn:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:4px}
.sg-pw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px} .sg-pw[hidden]{display:none}
.sg-pw input{height:40px;box-sizing:border-box} .sg-pw .btn{height:40px}
.sg-pw small{grid-column:1/-1;font-size:11.5px;color:var(--muted)}
.sg-foot{margin-top:20px;text-align:center} .sg-foot a{color:var(--muted);font-weight:600}
@media (max-width:420px){.sg-card{padding:24px 20px 18px}.sg-code{font-size:28px;height:58px}}
.su-hours{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.su-hours input{width:96px;height:36px;box-sizing:border-box;font-size:15px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.su-hours .unit{font-size:13.5px;font-weight:600;color:var(--ink-2)}
.su-net{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;font-size:13px;color:var(--ink-2);margin:2px 0 4px}
.su-net>b{font-weight:600;color:var(--muted);font-size:12.5px}
.su-net>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.su-net code{font-size:12.5px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;padding:1px 7px}
.su-tag.no{background:var(--warn-soft-2);color:var(--warn-ink)}
.su-rules{margin:0;padding-left:18px;font-size:13px;line-height:1.85;color:var(--ink-2)} .su-rules b{color:var(--ink);font-weight:650}

/* ── 24.4.1판(57.9판): 연락처 — 앱이 넣은 정보 접기 · 같은 엑셀을 또 올렸을 때 알림 */
.ct-xfold{border-bottom:1px solid var(--line-2)}
.ct-xfold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 0;user-select:none}
.ct-xfold>summary::-webkit-details-marker{display:none}
.ct-xfold>summary .t{flex:none;font-size:12.5px;font-weight:600;color:var(--muted)} .ct-xfold>summary .t b{font-weight:700;color:var(--ink-2);margin-left:2px}
.ct-xfold>summary .s{flex:1;min-width:0;font-size:12px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-xfold>summary .i.dd{width:14px;height:14px;flex:none;color:var(--muted);transform:rotate(90deg);transition:transform .15s}
.ct-xfold[open]>summary .i.dd{transform:rotate(-90deg)}
.ct-xfold>summary:hover .t{color:var(--ink-2)}
.ct-xfold>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.ct-xfold .ct-f:last-child{border-bottom:0}
.ct-xagain{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:var(--warn-soft-2);border:1px solid var(--warn-line);color:var(--warn-ink);font-size:13px;line-height:1.6}
.ct-xagain b{font-weight:700}
.ct-xagain small{display:block;margin-top:4px;color:var(--muted);font-size:12px}
/* 24.4.2판(58판): 번호 칸이 빈 줄을 이미 있는 연락처에 맞춤 — 알림(경고 아님) */
.ct-xagain.ok{background:var(--ok-soft-2);border-color:var(--ok-line);color:var(--ok-ink)}
