/* ── 다우 모양 맞춤(11-10): 다우 화면을 재서 같은 값. 글꼴 Pretendard(다우와 같은 글꼴, OFL), 기본 14px·자간 -0.5px, 주색 #08a7bf ── */
@font-face { font-family:"PretendardVariable"; font-weight:45 920; font-style:normal; font-display:swap; src:url("/static/fonts/PretendardVariable.woff2") format("woff2-variations"); }
:root { --fg:#1c1c1c; --muted:#888; --line:#e4e5e5; --bg:#f5f6f8; --card:#fff; --accent:#08a7bf; --danger:#ee2e2e; --ok:#1b7f3b; --rail:#ebf4f6; --hover:#f5f6f8; --top-h:60px; }
* { box-sizing: border-box; }
body { margin:0; font-family:"PretendardVariable", "Pretendard", -apple-system, BlinkMacSystemFont, "Malgun Gothic", "Apple SD Gothic Neo", sans-serif; color:var(--fg); background:#fff; font-size:14px; line-height:1.5; letter-spacing:-0.5px; }
button, input, select, textarea { letter-spacing:inherit; }
a { color:var(--fg); text-decoration:none; }
a:hover { text-decoration:underline; }
/* ── 화면 틀: 다우처럼 왼쪽 2단(앱 아이콘 줄 72px + 앱별 하위 메뉴 260px) + 넓은 본문 ── */
.top { position:sticky; top:0; z-index:30; height:var(--top-h); display:flex; align-items:center; gap:12px; padding:0 16px 0 28px; background:#fff; box-shadow:inset 0 -1px 0 rgba(0,0,0,.1); }
.brand { font-weight:600; color:var(--fg); font-size:18px; letter-spacing:-0.4px; display:flex; align-items:center; }
.brand img { height:34px; width:auto; display:block; }
.login-logo { text-align:center; margin:8px 0 18px; }
.login-logo img { max-width:60%; height:auto; }
.top .me { margin-left:20px; display:flex; gap:12px; align-items:center; color:var(--fg); font-size:14px; }
.top .me a { white-space:nowrap; } .top .ico { width:32px; height:32px; padding:6px; vertical-align:middle; stroke-width:1.6; } .top .bell { color:var(--fg); position:relative; } .top .bell .badge { position:absolute; top:2px; right:2px; font-size:10px; font-weight:500; line-height:16px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:#f00; } .top .me .who { color:var(--fg); }
.top .me button.link { color:var(--fg); border:1px solid var(--line); border-radius:9999px; height:40px; padding:0 16px; font-size:14px; font-weight:500; letter-spacing:-0.28px; }
.menu-toggle, .menu-btn { display:none; }
main { max-width:960px; margin:0 auto; padding:16px; }
.shell { display:grid; grid-template-columns:72px 260px minmax(0, 1fr); min-height:calc(100vh - var(--top-h)); }
.shell.noside { grid-template-columns:72px minmax(0, 1fr); }
.shell main { max-width:none; width:100%; margin:0; padding:20px 44px 40px; min-width:0; }
.rail { position:sticky; top:var(--top-h); height:calc(100vh - var(--top-h)); overflow-y:auto; background:var(--rail); padding:16px 0; display:flex; flex-direction:column; scrollbar-width:none; }
.rail a { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; height:64px; flex:none; margin:0 0 6px; padding:0 4px; border-radius:20px; color:#323333; font-size:12px; font-weight:500; letter-spacing:-0.24px; line-height:15px; white-space:nowrap; }
.rail a:hover { text-decoration:none; } .rail a:hover .ico { background:rgba(8,167,191,.1); }
.ico { width:32px; height:32px; padding:6px; border-radius:8px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.rail .ico { stroke:#1c1c1c; }
.rail a.on { color:var(--accent); } .rail a.on .ico { background:var(--accent); stroke:#fff; }
.rail .badge { position:absolute; top:2px; right:6px; font-size:11px; line-height:16px; min-width:16px; text-align:center; padding:0 4px; }
.side { position:sticky; top:var(--top-h); height:calc(100vh - var(--top-h)); overflow-y:auto; background:#fff; border-right:1px solid var(--line); padding:20px 24px 24px; }
.side h2 { font-size:20px; font-weight:500; letter-spacing:-0.4px; line-height:30px; margin:0 0 20px; }
.btn.side-btn { display:block; text-align:center; height:48px; line-height:46px; padding:0; border-radius:12px; border-color:#4a4b4c; font-size:14px; font-weight:400; letter-spacing:-1px; margin:0 0 16px; }
.btn.side-btn:hover { background:var(--hover); }
.side-group { margin-bottom:12px; }
.side h3 { font-size:14px; font-weight:600; color:#333; letter-spacing:-1px; line-height:21px; margin:0; padding:4px 8px 4px 6px; }
.side-group a { display:block; padding:4px 8px 4px 26px; color:var(--fg); font-size:14px; line-height:24px; border-radius:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.side-group a:hover { background:var(--hover); text-decoration:none; }
.side-group a.on { color:var(--accent); font-weight:500; }
h1 { font-size:20px; font-weight:500; letter-spacing:-0.4px; line-height:30px; margin:0 0 16px; }
h1 small { color:var(--muted); font-weight:500; font-size:13px; letter-spacing:-0.26px; }
h2 { font-size:16px; font-weight:500; margin:0 0 10px; }
.card { background:var(--card); border:0; border-radius:0; padding:0; margin-bottom:24px; }
.card.narrow { max-width:420px; margin:40px auto; border:1px solid var(--line); border-radius:16px; padding:24px; }
.bar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px; }
label { display:block; margin:0 0 12px; font-size:14px; color:#555; }
label.check { display:flex; gap:6px; align-items:center; color:var(--fg); }
input, textarea, select { width:100%; font:inherit; font-size:13px; line-height:20px; padding:5px 8px; border:1px solid #ddd; border-radius:4px; background:#fff; color:var(--fg); margin-top:4px; }
input:focus, textarea:focus, select:focus { outline:none; border-color:var(--accent); }
input[type=checkbox], input[type=radio] { width:auto; margin:0; accent-color:var(--accent); }
input[type=checkbox] { width:16px; height:16px; vertical-align:middle; }
button, .btn { white-space:nowrap; font:inherit; font-size:13px; line-height:20px; padding:5px 12px; border:1px solid #cfd1d4; border-radius:4px; background:#fff; color:var(--fg); cursor:pointer; display:inline-block; }
.btn:hover, button:hover { text-decoration:none; background:var(--hover); }
button.primary, .btn.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
button.primary:hover, .btn.primary:hover { background:#0796ab; }
button.danger { color:var(--danger); border-color:#f3c0c0; }
button.link { border:0; background:none; padding:0; color:var(--accent); }
form.inline { display:inline; }
.error { color:var(--danger); background:#fdecec; padding:8px 10px; border-radius:6px; }
.ok { color:var(--ok); background:#e8f5ec; padding:8px 10px; border-radius:6px; }
.notice { background:#fff7e0; padding:8px 10px; border-radius:6px; }
.hint { color:var(--muted); font-size:13px; }
.search { display:flex; gap:8px; align-items:center; margin-bottom:12px; }
.search input { margin:0; }
.search button, .search .btn, .search select { flex:none; width:auto; }
.list { list-style:none; margin:0; padding:0; background:#fff; border:1px solid var(--line); border-radius:10px; }
.list li { border-bottom:1px solid var(--line); }
.list li:last-child { border-bottom:0; }
.list li a { display:block; padding:10px 14px; color:var(--fg); }
.list li a:hover { background:#f0f4f8; text-decoration:none; }
.list .title { display:block; }
.list .meta, .meta { color:var(--muted); font-size:13px; }
.list li.unread .title { font-weight:700; }
.list li.pinned { background:#fbfcff; }
.list .empty { padding:24px; text-align:center; color:var(--muted); }
.tag { font-size:11px; background:#e7effd; color:var(--accent); padding:1px 6px; border-radius:4px; font-weight:600; }
.cnt { color:var(--accent); font-style:normal; font-size:13px; }
.old { color:#8a6d3b; }
.pager { display:flex; gap:16px; justify-content:center; padding:14px; }
.back { margin:0 0 8px; font-size:14px; }
.files { list-style:none; padding:10px 12px; margin:10px 0; background:var(--bg); border-radius:8px; }
.body { margin-top:14px; overflow-x:auto; word-break:break-word; }
.body img { max-width:100%; height:auto; }
.body table { border-collapse:collapse; }
.body td, .body th { border:1px solid var(--line); padding:4px 6px; }
.actions { margin-top:18px; display:flex; gap:8px; }
.comments { list-style:none; padding:0; margin:0 0 12px; }
.comments li { border-bottom:1px solid var(--line); padding:8px 0; }
.comments .meta { margin:0; }
.cbody { margin:2px 0 0; white-space:pre-wrap; }
.comment-form { display:flex; gap:8px; align-items:flex-end; }
.comment-form textarea { margin:0; }
.comment-form input[type=file] { margin:0; width:auto; max-width:220px; }
.scroll { overflow-x:auto; }
table.grid { width:100%; border-collapse:collapse; background:#fff; font-size:14px; }
table.grid th, table.grid td { border-bottom:1px solid var(--line); padding:8px; text-align:left; white-space:nowrap; }
tr.muted td { color:var(--muted); }
.temp-pw { font-family:Consolas, monospace; font-size:24px; letter-spacing:1px; background:var(--bg); padding:12px; border-radius:8px; text-align:center; user-select:all; }
@media (max-width:900px) {
  /* 휴대폰·좁은 화면: 왼쪽 2단은 ☰ 눌러 펼침(11-05 A1·C1) */
  .menu-btn { display:inline-flex; padding:0; border:1px solid var(--line); border-radius:6px; color:var(--fg); cursor:pointer; margin:0; }
  :root { --top-h:52px; }
  .top { padding:0 12px; gap:10px; } .top .me { gap:10px; margin-left:auto; } .top .me .who { display:none; }
  .shell, .shell.noside { display:block; }
  .shell main { padding:14px; }
  .rail, .side { display:none; }
  .menu-toggle:checked ~ .shell .rail { display:flex; position:fixed; z-index:40; left:0; top:52px; bottom:0; width:72px; height:auto; }
  .menu-toggle:checked ~ .shell .side { display:block; position:fixed; z-index:40; left:72px; top:52px; bottom:0; width:min(260px, calc(100vw - 72px)); height:auto; box-shadow:6px 0 18px rgba(0,0,0,.12); }
}
@media (max-width:600px) {
  .card { padding:14px; }
  .comment-form { flex-direction:column; align-items:stretch; }
}
/* ── 결재·연차 (10-30) ── */
.badge { background:var(--danger); color:#fff; border-radius:9px; padding:0 6px; font-size:12px; font-weight:700; }
.tabs { display:flex; flex-wrap:wrap; gap:4px; margin:4px 0 12px; border-bottom:1px solid var(--line); }
.tabs a { padding:6px 12px; color:var(--muted); border-bottom:2px solid transparent; }
.tabs a.on { color:var(--fg); border-color:var(--accent); font-weight:600; }
.st { font-size:12px; padding:1px 6px; border-radius:4px; font-weight:600; background:#eef1f4; color:var(--muted); }
.st-pending { background:#fff4d6; color:#8a6100; } .st-approved { background:#e3f4e8; color:var(--ok); }
.st-rejected { background:#fdecec; color:var(--danger); } .st-draft { background:#eef1f4; }
.ln-approved { color:var(--ok); } .ln-rejected { color:var(--danger); text-decoration:line-through; } .ln-pending { font-weight:700; color:#8a6100; }
.pick { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:8px; }
.pick a { display:block; padding:10px 12px; border:1px solid var(--line); border-radius:8px; color:var(--fg); }
.pick a:hover { border-color:var(--accent); text-decoration:none; }
ol.line { padding-left:22px; } ol.line li { margin-bottom:6px; } ol.line select { width:auto; min-width:240px; margin:0; }
.refs { display:flex; flex-wrap:wrap; gap:6px 14px; padding:8px 0; }
.field { margin-bottom:6px; } fieldset { border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:0 0 12px; }
legend { font-size:14px; color:var(--muted); padding:0 4px; }
.radios { display:flex; flex-wrap:wrap; gap:6px 16px; margin:4px 0 8px; }
.row2 { display:flex; gap:10px; align-items:center; flex-wrap:wrap; } .row2 label, .row2 input { flex:1; min-width:140px; }
input.short { max-width:180px; }
.edit-table input { margin:0; min-width:90px; } .num { text-align:right; }
.pre { white-space:pre-wrap; }
.notice.pre { font-size:13px; }
table.kv th { width:110px; background:var(--bg); white-space:nowrap; vertical-align:top; }
table.kv td { white-space:normal; }
table.inner { font-size:13px; }
.stamps { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0; }
.stamp { border:1px solid var(--line); border-radius:8px; padding:6px 10px; min-width:92px; text-align:center; display:flex; flex-direction:column; }
.stamp small { color:var(--muted); font-size:11px; } .stamp em { font-style:normal; font-size:11px; color:var(--muted); }
.stamp.approved, .stamp.done { border-color:#9fd3ae; background:#f2faf4; } .stamp.rejected { border-color:#f0b4b4; background:#fdf2f2; }
.stamp.pending { border-color:#f0d58a; background:#fffaeb; }
.decide { margin-top:16px; padding-top:12px; border-top:1px solid var(--line); }
.kpis { display:flex; flex-wrap:wrap; gap:24px; } .kpis div { display:flex; flex-direction:column; } .kpis b { font-size:22px; }
.ledger td, .ledger th { padding:6px; font-size:13px; } .warn { color:var(--danger); font-weight:700; }
.inline-form { display:flex; flex-wrap:wrap; gap:8px; align-items:center; } .inline-form input, .inline-form select { width:auto; margin:0; }
@media print { .top, .rail, .side, .back, .actions, .decide, #log form, .tabs { display:none !important; } body { background:#fff; } .card { border:0; } .shell { display:block; } .shell main { padding:0; } }
/* ── 보고 (10-30) ── */
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chip { padding:4px 10px; border-radius:14px; border:1px solid var(--line); color:var(--fg); font-size:14px; }
.chip small { color:var(--muted); } .chip:hover { text-decoration:none; }
.chip-done { background:#e3f4e8; border-color:#9fd3ae; } .chip-none { background:#fdecec; border-color:#f0b4b4; }
.chip-leave { background:#eef1f4; } .chip-draft { background:#fff4d6; border-color:#f0d58a; }
.report h3 { font-size:14px; color:var(--muted); margin:12px 0 4px; }
.report .body, .card h3 + .body { margin-top:0; }
/* ── 옛 결재 열람 (10-30) ── */
.filters { flex-wrap:wrap; } .filters select { width:auto; margin:0; } .filters input { min-width:200px; flex:1; }
.daou-body { border-top:1px solid var(--line); padding-top:12px; }
.daou-body table { border-collapse:collapse; max-width:100%; } .daou-body td, .daou-body th { border:1px solid #cfd6dc; padding:4px 6px; }
.daou-body img { max-height:80px; } .daou-body p { margin:2px 0; }
.comments li.reply { padding-left:18px; }
/* ── 요청함 (10-30) ── */
.rq-wait { background:#fff4d6; color:#8a6100; } .rq-doing { background:#e5effa; color:#1f5fa8; }
.rq-done { background:#e3f4e8; color:var(--ok); } .rq-cancelled { background:#eef1f4; text-decoration:line-through; }
.comments li.log { color:var(--muted); font-size:13px; padding:4px 0; } .comments li.log .cbody { display:inline; }
.thumbs { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; } .thumbs img { height:96px; border-radius:6px; border:1px solid var(--line); }
.pick small { color:var(--muted); }
/* ── 캘린더 (11-02) ── */
.dot { display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--c); margin-right:6px; vertical-align:middle; }
.calpick { margin-bottom:10px; } .calpick summary { cursor:pointer; color:var(--muted); font-size:14px; }
label.muted { color:var(--muted); }
table.month { width:100%; border-collapse:collapse; table-layout:fixed; background:#fff; min-width:640px; }
table.month th { font-size:13px; color:var(--muted); padding:4px; border-bottom:1px solid var(--line); }
table.month td { vertical-align:top; height:96px; border:1px solid var(--line); padding:2px 3px; overflow:hidden; }
table.month td.other { background:#fafbfc; } table.month td.other .dn, table.month td.other .ev { opacity:.55; }
table.month td.today { background:#f0f6ff; }
.month .dn { font-size:13px; } .month .dn a { color:inherit; }
.sun, .sun .dn, .sun a { color:var(--danger); } .sat, .sat .dn, .sat a { color:#1f5fa8; }
a.ev { display:block; font-size:12px; line-height:1.35; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  border-left:3px solid var(--c); padding:0 3px; margin:1px 0; border-radius:2px; }
a.ev.allday { background:var(--c); color:#fff; border-left:0; padding:0 5px; } /* 다우: 종일·여러 날 일정은 색 막대 */
a.ev i { font-style:normal; color:var(--muted); }
a.ev:hover { text-decoration:none; background:#eef2f6; }
.daylist { display:none; } .daylist li { padding:6px 12px; } .dayhead { font-size:13px; font-weight:600; color:var(--muted); }
.daylist a.ev { font-size:14px; padding:2px 6px; }
@media (max-width:600px) { .calwrap { display:none; } .daylist { display:block; } }
.calsearch button { white-space:nowrap; }

/* 홈(11-05) */
.home-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:16px; align-items:start; }
.home-grid .card { margin-bottom:0; }
.home-grid h2 { margin:0; font-size:17px; }
.home-grid h3 { font-size:14px; margin:14px 0 6px; color:var(--muted); }
@media (max-width:600px) { .home-grid { grid-template-columns:1fr; } }
.cat { color:var(--muted); font-weight:500; }
/* ── 글 편집기 X3 (11-09): 편집기로 쓴 글 보기 — 다우 기본 맑은 고딕 10pt ── */
.rich { font-family:'맑은 고딕','Malgun Gothic',sans-serif; font-size:10pt; line-height:1.6; overflow-x:auto; word-break:break-word; }
.rich p { margin:0; } .rich img { max-width:100%; height:auto; } .rich figure { margin:0; }
.rich table { border-collapse:collapse; max-width:100%; } .rich td, .rich th { border:1px solid #cfd6dc; padding:4px 6px; }
.rich .se-component { margin:4px 0; } .rich .__se__float-left { float:left; margin-right:8px; } .rich .__se__float-right { float:right; margin-left:8px; }
.sun-editor { margin:4px 0 12px; } .sun-editor .se-toolbar { position:sticky; top:0; }
/* ── 목록 공통 틀 X4 (11-09): 다우 목록 도구줄·표. 휴대폰에서는 줄마다 카드 ── */
.lt-bar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; margin:0 0 10px; }
.lt-search { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0; }
.lt-search select, .lt-search input, .lt-search button { width:auto; margin:0; }
.lt-search input[name=q] { min-width:180px; } .lt-dates input { width:140px; }
.lt-tools { display:flex; gap:6px; align-items:center; }
.lt-tools select { width:auto; margin:0; } .lt-tools .btn, .lt-tools button { margin:0; }
.lt-fields { position:relative; } .lt-fields summary { cursor:pointer; list-style:none; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; font-size:14px; }
.lt-fields summary::-webkit-details-marker { display:none; }
.lt-pop { position:absolute; right:0; top:110%; z-index:20; background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 12px; min-width:180px; box-shadow:0 4px 14px rgba(0,0,0,.12); }
.lt-pop label { display:block; margin:4px 0; white-space:nowrap; } .lt-pop button { margin-top:6px; width:100%; }
.lt-cat { margin-bottom:6px; }
.lt-wrap { background:#fff; border:1px solid var(--line); border-radius:10px; overflow-x:auto; }
table.lt { width:100%; border-collapse:collapse; font-size:14px; }
table.lt th { background:#f6f8fa; font-weight:600; color:#444; text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
table.lt th a { color:inherit; } table.lt th .lt-caret { color:#bbb; font-size:11px; }
table.lt td { padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.lt tr:last-child td { border-bottom:0; } table.lt tbody tr:hover { background:#f7fafc; }
table.lt .nowrap { white-space:nowrap; } table.lt .num { text-align:center; white-space:nowrap; width:1%; }
table.lt td.title a { color:var(--fg); } table.lt tr.unread td.title a { font-weight:700; }
table.lt tr.pinned { background:#fbfaf3; } table.lt .chk { width:1%; }
table.lt .lt-empty td { text-align:center; color:var(--muted); padding:28px; }
.ico-clip { width:14px; height:14px; vertical-align:-2px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; color:#888; }
.lt-pager { display:flex; justify-content:center; gap:4px; margin:14px 0; }
.lt-pager a, .lt-pager b { min-width:30px; text-align:center; padding:4px 8px; border-radius:6px; }
.lt-pager b { background:var(--accent, #1a73e8); color:#fff; }
@media (max-width:700px) {
  .lt-tools .lt-print, .lt-fields { display:none; }
  .lt-search input[name=q] { min-width:0; flex:1; }
  .lt-wrap { border:0; background:none; }
  table.lt thead { display:none; }
  table.lt, table.lt tbody, table.lt tr, table.lt td { display:block; width:auto; }
  table.lt tr { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:10px; margin-bottom:8px; padding:8px 12px; }
  table.lt td[data-label="번호"] { display:none; }
  table.lt td { border:0; padding:2px 0; text-align:left !important; width:auto !important; }
  table.lt td.title { font-size:15px; order:-1; }
  table.lt td:not(.title)::before { content:attr(data-label) " "; color:var(--muted); font-size:12px; }
  table.lt td:empty { display:none; }
}
@media print { .lt-bar, .lt-cat, .lt-pager { display:none !important; } .lt-wrap { border:0; } table.lt th { background:#fff; } }
/* ── 글 화면 공통 X5 (11-09): URL 복사·인쇄·이전/다음 글·변경이력·즐겨찾기 별 ── */
.vw-tools button { font-size:13px; padding:0 4px; }
.vw-star button { padding:0 2px; vertical-align:-3px; } .vw-star svg { width:20px; height:20px; fill:none; stroke:#999; stroke-width:1.6; }
.vw-star button.on svg { fill:#f5b301; stroke:#e0a100; }
.vw-pn { margin-top:18px; border-top:1px solid var(--line); }
.vw-pn div { display:flex; gap:14px; padding:8px 4px; border-bottom:1px solid var(--line); font-size:14px; }
.vw-pn span { color:var(--muted); flex:none; width:56px; } .vw-pn em { color:var(--muted); font-style:normal; }
.vw-pn a { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--fg); }
.vw-hist { margin-top:14px; font-size:14px; } .vw-hist summary { cursor:pointer; color:var(--muted); }
.vw-hist ul { margin:6px 0 0; padding-left:18px; }
@media print { .vw-tools, .vw-pn, .vw-hist, .vw-star, .comment-form { display:none !important; } }
/* ── 통합 검색 X2 (11-09): 머리줄 검색창(앱 고르기 + 검색어), 휴대폰은 돋보기 단추 ── */
.topsearch { display:flex; align-items:center; margin-left:24px; border:1px solid var(--line); border-radius:20px; background:#fff; height:36px; padding:0 4px 0 10px; width:min(440px, 40vw); }
.topsearch select { border:0; background:none; width:auto; margin:0; padding:0 4px; font-size:14px; height:30px; }
.topsearch input { border:0; margin:0; padding:0 8px; height:30px; min-width:0; flex:1; outline:none; font-size:14px; border-left:1px solid var(--line); border-radius:0; }
.topsearch button { border:0; background:none; padding:0 6px; margin:0; display:flex; } .top .topsearch .ico { width:20px; height:20px; padding:0; } .top .topsearch-m .ico { width:30px; height:30px; padding:5px; }
.topsearch-m { display:none; color:var(--fg); }
.sr-tabs { margin-bottom:12px; } .sr-sec h2 small { color:var(--muted); font-weight:400; } .sr-more { float:right; font-size:14px; font-weight:400; }
.sr-list { list-style:none; padding:0; margin:0; } .sr-list li { padding:6px 0; border-bottom:1px solid var(--line); } .sr-list li:last-child { border-bottom:0; }
.empty-msg { color:var(--muted); text-align:center; padding:30px 0; }
@media (max-width:900px) { .topsearch { display:none; } .topsearch-m { display:flex; margin-left:auto; } .top .me { margin-left:0; } }
/* ── 휴대폰 틀 X6 (11-09): 다우 휴대폰 화면처럼 ☰ · 가운데 화면 이름 · 🔍, 오른쪽 아래 둥근 + 단추, 목록은 카드 ── */
.ptitle, .fab, .rail-m { display:none; }
@media (max-width:900px) {
  .rail-m { display:flex; } .rail form.rail-m { justify-content:center; padding:6px 0; } .rail form.rail-m button { font-size:12px; }
  .top .me form.inline { display:none; }
}
@media (max-width:700px) {
  .brand { display:none; }
  .ptitle { display:block; position:absolute; left:58px; right:96px; text-align:center; font-weight:600; font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--fg); }
  main > .bar:first-child > h1 { display:none; }
  .fab { display:flex; position:fixed; right:18px; bottom:22px; width:54px; height:54px; border-radius:50%; background:var(--accent); align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.25); z-index:35; }
  .fab svg { width:28px; height:28px; stroke:#fff; stroke-width:2.2; fill:none; stroke-linecap:round; }
  .lt-wrap { background:#fff; border:1px solid var(--line); border-radius:10px; }
  table.lt tr { flex-direction:row; flex-wrap:wrap; align-items:center; gap:2px 10px; padding:10px 14px; margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
  table.lt tr:last-child { border-bottom:0; }
  table.lt td { font-size:12px; color:var(--muted); }
  table.lt td:not(.title)::before { content:none; }
  table.lt td.num::before { content:attr(data-label) " "; }
  table.lt td.title { flex-basis:100%; font-size:15px; color:var(--fg); order:0; }
  table.lt td.status { order:-1; flex-basis:100%; }
  main { padding-bottom:84px !important; }
}
@media (max-width:700px) { main .lt-bar { display:none; } .sr-tabs + .lt-bar, .sr-tabs ~ .lt-bar { display:flex; } }
/* ── 결재 3단계 (11-09): 다우 양식 종이·결재란(다우 화면 재서 같은 크기: 제목 칸 24px, 사람 칸 79px, 직위 26·도장 75·날짜 27px, 검은 1px 선) ── */
.ap-paper { background:#fff; border:1px solid var(--line); border-radius:8px; padding:24px 20px; overflow-x:auto; margin:10px 0; }
.daou-form { font-family:'맑은 고딕','Malgun Gothic',dotum,sans-serif; font-size:10pt; line-height:1.5; color:#000; width:max-content; max-width:100%; margin:0 auto; }
.daou-form table { border-collapse:collapse; }
.daou-form p { margin:0; }
.daou-form [hidden] { display:none !important; }
.sign_type1_inline { display:inline-block; position:relative; padding-left:26px; margin:1px -1px 0 0; vertical-align:top; font-size:12px; line-height:20px; text-align:left; white-space:nowrap; }
.sign_type1_inline .sign_member_wrap:first-of-type { margin-left:0; }
.sign_type1_inline .sign_tit_wrap { position:absolute; left:0; top:0; width:26px; height:131px; box-sizing:border-box; border:1px solid #000; }
.sign_type1_inline .sign_tit { display:flex; align-items:center; justify-content:center; height:100%; padding:0 6px; text-align:center; word-break:break-all; white-space:normal; line-height:16px; }
.sign_type1_inline .sign_member_wrap { float:left; width:80px; height:131px; box-sizing:border-box; border:1px solid #000; border-left:0; }
.sign_type1_inline .sign_member { display:flex; flex-direction:column; height:100%; }
.sign_type1_inline .sign_rank_wrap { height:26px; display:flex; align-items:center; justify-content:center; }
.sign_type1_inline .sign_wrap { flex:1; border-top:1px solid #000; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.sign_type1_inline .sign_date_wrap { height:27px; border-top:1px solid #000; display:flex; align-items:center; justify-content:center; }
.sign_stamp img { width:32px; height:40px; display:block; margin:0 auto; }
.sign_name { display:block; text-align:center; padding:2px 0; }
.sign_date.txt_caution, .txt_caution { color:#e8212b; }
.sign_type_new { display:inline-block; vertical-align:top; margin-left:-1px; }
.tb_sign_type1 { border-collapse:collapse; font-size:12px; }
.tb_sign_type1 > tbody > tr > th { border:1px solid #000; width:24px; padding:0 4px; font-weight:400; }
.tb_sign_type1 > tbody > tr > td { border:1px solid #000; padding:0 !important; vertical-align:top; }
.tb_sign_type1 table.sign_member { width:79px; border-collapse:collapse; }
.tb_sign_type1 table.sign_member td { text-align:center; height:26px; }
.tb_sign_type1 table.sign_member td.wrap_name { height:75px; border-top:1px solid #000; border-bottom:1px solid #000; }
.sign_type2 .sign_member { display:inline-block; margin-right:10px; }
.sign_type2 .part { margin:0 2px; }
.sign_type2 .date { margin-left:5px; color:#555; }
.daou-form .dsl { font:inherit; font-size:13px; border:1px solid #b9c0c7; border-radius:3px; padding:2px 5px; margin:1px 0; background:#fff; min-height:24px; box-sizing:border-box; max-width:100%; }
.daou-form input.dsl:not([style]) { width:auto; }
.daou-form textarea.dsl { width:100%; min-width:220px; min-height:60px; }
.daou-form .dsl-num { text-align:right; }
.daou-form .dsl-date { width:140px; }
.daou-form .dsl-time { width:100px; }
.daou-form .dsl-total { background:#f3f5f7; }
.daou-form .dsl-opt { display:inline-flex; gap:3px; align-items:center; margin-right:10px; font-size:13px; white-space:nowrap; }
.daou-form .dsl-opt input { width:auto; margin:0; }
.daou-form .dsl-editor { min-height:200px; }
.daou-form .sun-editor { min-width:600px; }
.daou-form a.button { background:#666; color:#fff; padding:2px 7px; border-radius:3px; cursor:pointer; text-decoration:none; }
.ap-head h1 small { color:var(--muted); font-size:14px; font-weight:400; margin-left:4px; }
.ap-toolbar { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px; padding:8px 0; border-bottom:1px solid var(--line); margin-bottom:8px; }
.ap-toolbar > span { display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.ap-tb { background:none; border:0; color:var(--fg); font-size:14px; padding:6px 10px; border-radius:6px; cursor:pointer; margin:0; width:auto; }
.ap-tb:hover { background:#eef2f6; text-decoration:none; }
.ap-tb.primary-tb { color:#fff; background:var(--accent); }
.ap-attach { background:#fafbfc; border:1px solid var(--line); border-radius:8px; padding:10px 14px; margin:10px 0; }
.ap-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:4px 0; }
.ap-k { min-width:72px; font-weight:600; }
.ap-drop { flex:1; border:1px dashed #b9c0c7; border-radius:6px; padding:10px; color:var(--muted); font-size:13px; }
.ap-drop input { width:auto; }
.ap-flow { list-style:none; padding:0; margin:0; }
.ap-flow li { padding:8px 4px; border-bottom:1px solid var(--line); }
.ap-flow .fl-rejected b, .ap-flow .fl-opposed b { color:#c62828; }
.ap-opinion { margin:4px 0 0; padding:6px 10px; background:#f6f8fa; border-radius:6px; white-space:pre-wrap; }
.ap-tabs { margin-top:16px; }
.ap-tab { padding:4px 0 12px; }
.ap-help { margin:6px 0; font-size:14px; }
.tag.urgent { background:#fdecec; color:#c62828; }
.ap-dlg { border:0; border-radius:10px; padding:0; width:min(980px, 96vw); max-height:92vh; box-shadow:0 10px 40px rgba(0,0,0,.25); }
.ap-dlg::backdrop { background:rgba(0,0,0,.35); }
.ap-dlg-s { width:min(520px, 96vw); }
.ap-dlg-head { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border-bottom:1px solid var(--line); }
.ap-dlg-head h2 { margin:0; font-size:18px; }
.ap-dlg > form, .ap-dlg > .search, .ap-dlg > ul, .ap-dlg > .ap-paper { margin:12px 18px; }
.ap-dlg .actions { padding:0 18px 14px; }
.ap-dtabs { padding:0 18px; }
.ap-dlg-body { display:grid; grid-template-columns:320px 1fr; gap:12px; padding:0 18px 10px; min-height:360px; }
.ap-org { border:1px solid var(--line); border-radius:6px; padding:8px; overflow:auto; max-height:60vh; }
.ap-org-q { margin:6px 0; }
.ap-org-tree, .ap-org-tree ul, .ap-mylines, .ap-plist { list-style:none; padding:0; margin:0; }
.ap-org-tree .org-dept { display:block; font-weight:600; margin-top:6px; }
.ap-org-tree .org-dept small { color:var(--muted); font-weight:400; }
.ap-org-tree a { display:block; padding:3px 6px; border-radius:4px; color:var(--fg); }
.ap-org-tree a:hover { background:#eef2f6; text-decoration:none; }
.ap-sel { border:1px solid var(--line); border-radius:6px; padding:8px; overflow:auto; max-height:60vh; display:flex; flex-direction:column; }
.ap-line-tbl tr.grp td { background:#f3f5f7; text-align:center; font-weight:600; }
.ap-line-tbl select { width:auto; margin:0; }
.ap-sel-foot { margin-top:auto; display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding-top:8px; font-size:14px; }
.btn-s { font-size:13px; padding:4px 10px; width:auto; margin:0; }
.ap-pick-body { display:grid; grid-template-columns:minmax(260px, 1fr) minmax(220px, 1fr); gap:12px; }
.ap-tree { border:1px solid var(--line); border-radius:6px; padding:8px; max-height:60vh; overflow:auto; }
.ap-tree .tree, .ap-tree .tree ul { list-style:none; padding:0; margin:0; }
.ap-tree .tree ul { padding-left:18px; }
.ap-tree .fold > ul { display:none; }
.ap-tree .fold.open > ul { display:block; }
.ap-tree .fold-btn { background:none; border:0; font-weight:600; padding:4px 0; width:auto; margin:0; cursor:pointer; }
.ap-tree .fold-btn::before { content:"\25B8  "; }
.ap-tree .fold.open > .fold-btn::before { content:"\25BE  "; }
.ap-tree .form-item { display:block; padding:3px 6px; border-radius:4px; color:var(--fg); }
.ap-tree .form-item.on { background:#e7f0fe; font-weight:600; }
.ap-detail { border:1px solid var(--line); border-radius:6px; }
.ap-detail h3 { margin:0; padding:8px 12px; background:#eee; font-size:14px; }
.ap-detail dl { display:grid; grid-template-columns:96px 1fr; gap:10px 8px; padding:12px; margin:0; }
.ap-detail dt { color:var(--muted); }
.ap-pick-top { display:flex; justify-content:flex-end; }
.ap-favs { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px; }
.fav-mark { color:#f5b301; }
#ok[aria-disabled] { opacity:.5; pointer-events:none; }
@media (max-width:700px) {
  .ap-dlg-body, .ap-pick-body { grid-template-columns:1fr; }
  .ap-paper { padding:10px 6px; }
}
@media print { .ap-toolbar, .ap-attach .ap-drop, .ap-comments .comment-form, .ap-tabs, .ap-tab, dialog { display:none !important; } .ap-paper { border:0; padding:0; } }
.lt-bulk { margin:0 0 6px; }

/* 3-5 결재 환경설정·문서관리 */
.ap-sign-img { width: 55px; height: 40px; object-fit: contain; border: 1px solid #ddd; background: #fff; vertical-align: middle; }
.ap-sign-now { margin: 6px 0 10px; }
.form-table { border-collapse: collapse; width: 100%; }
.form-table th { width: 160px; text-align: left; font-weight: 600; padding: 10px 8px; vertical-align: top; border-bottom: 1px solid #eee; }
.form-table td { padding: 10px 8px; border-bottom: 1px solid #eee; }
img.ap-img-full { max-width: 100%; height: auto; margin-top: 4px; }
img.ap-img-thumb { width: 100px; height: 100px; object-fit: cover; margin-top: 4px; border: 1px solid #ddd; }
.sign_stamp img[src^="/editor/img/"], .sign_stamp img[src^="/daou-img"] { width: 55px; height: 40px; object-fit: contain; }

/* ── 3-6 휴대폰 결재(다우 앱 화면): 목록 카드·문서 ⋮ 메뉴·아래 고정 단추 ── */
table.lt td.m-card, .ap-mhead { display:none; }
@media (max-width:700px) {
  table.lt tr:has(td.m-card) > td:not(.m-card):not(.chk) { display:none; }
  table.lt td.m-card { display:block; flex-basis:100%; flex:1; padding:0; font-size:13px; }
  table.lt td.m-card a { display:flex; flex-direction:column; gap:3px; color:var(--fg); text-decoration:none; }
  .m-st { align-self:flex-start; font-size:11px; font-weight:400; padding:0 5px; border-radius:3px; background:#999; color:#fff; line-height:17px; }
  .m-st.st-pending, .m-st.st-held { background:#3aa6c9; } .m-st.st-rejected { background:#f05c5c; } .m-st.st-draft { background:#bbb; }
  .m-title { font-size:15px; } .m-meta { color:var(--muted); font-size:12px; }
  .m-cnt { color:var(--muted); font-size:12px; display:flex; gap:4px; align-items:center; }
  .m-cnt i { display:inline-block; width:12px; height:12px; margin-left:6px; background:currentColor; opacity:.55;
             -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
  .m-cnt i:first-child { margin-left:0; }
  .m-ic-c { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16v12H8l-4 4z' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
  .m-ic-r { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h9l4 4v14H6z M9 12h7 M9 16h7' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
  .m-ic-a { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 11l-8.5 8.5a5 5 0 01-7-7L14 4a3.5 3.5 0 015 5l-8.5 8.5a2 2 0 01-3-3L15 7' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
  .ap-head h1 small { display:none; }
  .ap-mhead { display:flex; align-items:center; gap:10px; padding:6px 2px 10px; border-bottom:1px solid var(--line); margin-bottom:8px; }
  .ap-mwho { display:flex; align-items:center; gap:6px; flex:1; min-width:0; }
  .ap-mwho small { color:var(--muted); }
  .ap-avatar { width:28px; height:28px; border-radius:50%; background:#d9e2ec; color:#456; display:inline-flex; align-items:center; justify-content:center; font-size:13px; }
  .ap-mcmt { font-size:13px; color:var(--fg); }
  .ap-mmenu { position:relative; } .ap-mmenu summary { list-style:none; cursor:pointer; padding:0 6px; font-size:20px; line-height:1; }
  .ap-mmenu summary::-webkit-details-marker { display:none; }
  .ap-mmenu-list { position:absolute; right:0; top:26px; z-index:40; display:flex; flex-direction:column; min-width:120px; background:#fff;
    border:1px solid var(--line); border-radius:6px; box-shadow:0 4px 10px rgba(0,0,0,.12); }
  .ap-mmenu-list a, .ap-mmenu-list button { padding:9px 14px; font-size:13px; color:var(--fg); text-align:left; width:auto; margin:0; }
  .ap-toolbar > span:last-child { display:none; }
  .ap-toolbar > span:first-child:has(> *) { position:fixed; left:0; right:0; bottom:0; z-index:36; display:flex; gap:8px; padding:8px 10px;
    background:#fff; border-top:1px solid var(--line); }
  .ap-toolbar > span:first-child > *, .ap-toolbar > span:first-child form button { flex:1; width:100%; margin:0; }
  .ap-toolbar > span:first-child .ap-tb { padding:10px 6px; border-radius:6px; text-align:center; }
  .ap-toolbar .primary-tb { background:#16b3c3; border-color:#16b3c3; color:#fff; }
  body:has(.ap-mhead) .fab { display:none; }
}
.lt-bulk { display:flex; gap:6px; align-items:center; flex-wrap:wrap; } .lt-bulk select { width:auto; max-width:100%; margin:0; }
.ap-wrap { flex-wrap:wrap; } .ap-wrap select, .ap-wrap input { max-width:100%; }
.ap-mmenu summary svg { fill:currentColor; vertical-align:middle; }
@media (max-width:700px) { .ap-paper { overflow-x:hidden; } }
@media (max-width:700px) { .daou-form { zoom:.62; } #paper .daou-form { zoom:1; } }
@media (max-width:700px) {
  #t-info table.kv, #t-info table.kv tbody { display:block; }
  #t-info table.kv tr { display:grid; grid-template-columns:84px 1fr; }
  #t-info table.kv th, #t-info table.kv td { display:block; text-align:left; padding:6px 4px; border-bottom:1px solid var(--line); }
}
/* ── 4단계 게시판(11-09): 다우 게시판 홈·정보 상자·피드 카드·좋아요·글쓰기 To. ── */
.side-sep { display:block; font-size:12px; color:var(--muted); padding:6px 10px 2px; }
.side-group > .side-sep:not(.dept) { border-top:1px dotted var(--line); margin-top:4px; }
.side-group a.sub { padding-left:22px; }
.side-group a.add { color:var(--muted); font-size:13px; }
.bd-info { background:#f5f6f8; border-radius:6px; padding:8px 14px; margin:0 0 12px; font-size:13px; }
.bd-info summary { cursor:pointer; color:var(--muted); }
.bd-info p { margin:4px 0; }
.bd-url { color:var(--muted); word-break:break-all; }
.re { color:var(--muted); font-size:12px; }
.bd-home { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:24px; }
.bd-pills { display:flex; gap:8px; margin-bottom:8px; }
.bd-pills a { border:1px solid var(--line); border-radius:16px; padding:5px 14px; color:var(--fg); font-size:13px; background:#fff; }
.bd-pills a.on { background:#333; border-color:#333; color:#fff; }
.bd-hrow { display:flex; gap:12px; border-bottom:1px solid var(--line); padding:14px 0; }
.bd-hrow > div { flex:1; min-width:0; }
.bd-hrow p { margin:3px 0; }
.bd-htitle { font-size:17px; font-weight:600; color:var(--fg); }
.bd-sum { color:#555; font-size:13px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.bd-cc { margin-left:6px; display:inline-flex; gap:3px; align-items:center; }
.bd-cc i { display:inline-block; width:12px; height:12px; background:currentColor; opacity:.55; -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
.bd-heart, .bd-like { display:flex; flex-direction:column; align-items:center; gap:2px; color:#666; text-decoration:none; background:#fff;
  border:1px solid var(--line); border-radius:4px; width:58px; padding:6px 0; margin:0; cursor:pointer; font-size:13px; }
.bd-heart { border:0; }
.bd-heart svg, .bd-like svg { width:26px; height:26px; fill:none; stroke:#555; stroke-width:1.6; }
.bd-like.on svg { fill:#f05c5c; stroke:#f05c5c; }
.bd-latest h2 { font-size:13px; color:var(--muted); font-weight:400; border-bottom:1px solid var(--line); padding-bottom:8px; }
.bd-lbox { border-bottom:1px solid var(--line); padding:8px 0 12px; }
.bd-lbox h3 { font-size:14px; margin:4px 0 8px; }
.bd-lbox h3 a { color:var(--fg); }
.bd-lbox ul { list-style:none; margin:0; padding:0; }
.bd-lbox li { display:flex; justify-content:space-between; gap:8px; font-size:13px; padding:3px 0; }
.bd-lbox li a { color:var(--fg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bd-lbox li span { color:var(--muted); flex:none; }
.ap-avatar.sm { width:20px; height:20px; font-size:11px; vertical-align:middle; }
.ap-avatar { width:28px; height:28px; border-radius:50%; background:#d9e2ec; color:#456; display:inline-flex; align-items:center; justify-content:center; font-size:13px; flex:none; }
.bd-say { background:#fff; border:1px solid var(--line); border-radius:6px; padding:10px; max-width:600px; margin-bottom:12px; }
.bd-say textarea { border:0; resize:vertical; width:100%; }
.bd-say-foot { display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:space-between; }
.bd-say-foot input[type=file] { max-width:220px; font-size:12px; }
.bd-feed-tools { gap:6px; flex-wrap:wrap; }
.bd-feed-tools select { width:auto; }
.bd-feed { max-width:760px; }
.bd-card { border-top:1px solid var(--line); padding:14px 0; }
.bd-card-main { display:flex; gap:12px; align-items:flex-start; }
.bd-card-body { flex:1; min-width:0; }
.bd-who { margin:0 0 6px; }
.bd-text { white-space:pre-wrap; word-break:break-word; }
.bd-links { font-size:13px; margin:8px 0 0; } .bd-links a { color:#555; } .bd-links .sep { color:#ccc; margin:0 6px; }
.bd-cmts { margin:8px 0 0 40px; } .bd-cform { margin-left:40px; max-width:520px; }
.comments li.reply { margin-left:28px; border-left:2px solid var(--line); padding-left:10px; }
.bd-likebox { display:flex; flex-direction:column; align-items:center; gap:6px; margin:18px 0; }
.bd-likebox details { font-size:13px; text-align:center; } .bd-likebox ul { list-style:none; padding:0; text-align:left; }
.bd-to { display:flex; gap:6px; align-items:center; border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:10px; flex-wrap:wrap; }
.bd-to select { width:auto; margin:0; }
.bd-move select { width:auto; display:inline-block; margin:0; }
.bd-share { display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr) 90px); gap:4px 8px; align-items:center; margin-top:6px; }
.bd-share select { margin:0; padding:2px; font-size:12px; }
.bd-replies ul { list-style:none; padding:0; } .bd-replies h2 { font-size:14px; }
.lt-empty-p { color:var(--muted); text-align:center; padding:30px 0; }
.center { text-align:center; }
@media (max-width:900px) { .bd-home { grid-template-columns:1fr; } .bd-latest { order:-1; } }
@media (max-width:700px) { .bd-share { grid-template-columns:1fr 90px; } .bd-cmts, .bd-cform { margin-left:0; } }
.m-ic-c { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16v12H8l-4 4z' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
.m-ic-r { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h9l4 4v14H6z M9 12h7 M9 16h7' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
.m-ic-a { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 11l-8.5 8.5a5 5 0 01-7-7L14 4a3.5 3.5 0 015 5l-8.5 8.5a2 2 0 01-3-3L15 7' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E"); }
/* 4단계 게시판 휴대폰(다우 앱): 최근글 한 줄·피드 날짜 띠·글 머리 */
.bd-mmeta, .bd-day, .bd-mhead { display:none; }
@media (max-width:700px) {
  .bd-hrow { padding:10px 0; } .bd-hrow .bd-heart, .bd-hrow .bd-sum, .bd-hrow .bd-pmeta, .bd-hrow > div > p.meta:first-child { display:none; }
  .bd-mmeta { display:block; font-size:12px; color:var(--muted); }
  .bd-htitle { font-size:15px; font-weight:400; }
  .bd-hrow.read .bd-htitle { color:#999; }
  .bd-pills { margin-top:4px; }
  .bd-day { display:inline-block; background:#c7c9cc; color:#fff; font-size:12px; padding:1px 14px 1px 8px; margin:10px 0 0;
    clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%); }
  .bd-card { border-top:0; background:#fff; padding:12px; margin-top:4px; }
  .bd-card-main { flex-wrap:wrap; }
  .bd-card-main .bd-like-f { margin-left:auto; }
  .bd-like { flex-direction:row; width:auto; padding:4px 10px; gap:6px; }
  .bd-like svg { width:18px; height:18px; }
  .bd-mhead { display:flex; justify-content:flex-end; align-items:center; gap:16px; padding:2px 4px 8px; font-size:14px; }
  .bd-mhead a { color:var(--fg); }
  .bd-mhead form button { padding:9px 14px; font-size:13px; width:100%; text-align:left; }
  .bd-info { font-size:12px; } .bd-info:not([open]) { padding:4px 10px; }
  .bd-say-foot input[type=file] { max-width:100%; }
}
.bd-home > * { min-width:0; }
.bd-heart { background:transparent; }
@media (max-width:700px) {
  .bd-latest { display:none; }
  article.card .actions { display:flex; flex-wrap:wrap; gap:6px; }
  .bd-move { display:flex; flex-wrap:wrap; gap:6px; max-width:100%; }
  .bd-move select { max-width:100%; flex:1 1 140px; }
}
@media (max-width:700px) { .bd-info { display:none; } }
/* ── 5단계 캘린더(11-09): 다우 '일정목록'·왼쪽 캘린더 목록·일정등록/상세·시간 칸 ── */
.cal-side h3 { display:flex; justify-content:space-between; align-items:center; }
.cs-edit { color:var(--muted); font-weight:400; } .cs-edit:hover { text-decoration:none; color:var(--fg); }
.cs-row { display:flex; align-items:center; gap:6px; padding:3px 10px; font-size:14px; cursor:pointer; }
.cs-row input { width:auto; margin:0; } .cs-row span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cs-row .dot { margin:0; } .cs-wait { color:var(--muted); cursor:default; }
.cs-add { display:inline-block; font-size:13px; color:var(--muted); padding:4px 10px; }
.cs-empty { color:var(--muted); font-size:12px; text-align:center; margin:6px 0; }
.cs-btn { display:block; width:calc(100% - 20px); margin:4px 10px; font-size:13px; text-align:center; padding:6px; }
.cs-old summary { font-size:12px; color:var(--muted); padding:4px 10px; cursor:pointer; }
.cal-tools { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:10px; }
.cal-nav { display:flex; align-items:center; gap:10px; font-size:22px; }
.cal-nav b { font-weight:600; letter-spacing:.5px; }
.cal-arrow { display:inline-flex; width:32px; height:32px; border:1px solid var(--line); border-radius:50%; align-items:center; justify-content:center;
  color:var(--fg); font-size:18px; background:#fff; } .cal-arrow:hover { text-decoration:none; background:#f2f4f6; }
.cal-today { font-size:14px; color:var(--fg); }
.cal-q { margin-left:auto; display:flex; gap:4px; } .cal-q input { width:160px; margin:0; }
.calwrap2 { background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.calwrap2 table.month { min-width:0; } .calwrap2 table.month td { height:110px; border-width:0 0 1px 1px; position:relative; }
.calwrap2 table.month th { text-align:left; padding:8px 12px; font-weight:400; }
.month .dn { display:flex; align-items:center; gap:4px; margin-bottom:2px; } .month .dn-m { display:none; }
.month td.today .dn-pc { background:#222; color:#fff; border-radius:10px; padding:0 7px; }
.month .hol { font-size:11px; color:var(--danger); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; flex:1; }
.month .dn-add { margin-left:auto; color:var(--muted); visibility:hidden; font-size:15px; } .month td:hover .dn-add { visibility:visible; }
.month details.more summary { font-size:12px; color:var(--muted); cursor:pointer; list-style:none; padding-left:4px; }
.month details.more summary::-webkit-details-marker { display:none; }
.month .more-box { position:absolute; z-index:30; left:0; right:-40px; top:0; background:#fff; border:1px solid var(--line); border-radius:6px;
  box-shadow:0 4px 14px rgba(0,0,0,.15); padding:8px; min-width:180px; }
a.ev.masked { font-style:italic; color:var(--muted); }
.cal-dayl { display:none; }
.tgrid { background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.tg-head, .tg-all, .tg-body { display:grid; grid-template-columns:56px repeat(var(--n, 7), minmax(0,1fr)); }
.tgrid-day .tg-head, .tgrid-day .tg-all, .tgrid-day .tg-body { --n:1; }
.tg-dh { padding:8px; font-size:14px; border-left:1px solid var(--line); } .tg-dh a { color:inherit; } .tg-dh.today { background:#f0f6ff; font-weight:600; }
.tg-all { border-top:1px solid var(--line); border-bottom:2px solid var(--line); min-height:28px; }
.tg-all .tg-gut { font-size:11px; color:var(--muted); padding:6px 4px; } .tg-ac { border-left:1px solid var(--line); padding:2px; min-width:0; }
.tg-body { position:relative; max-height:70vh; overflow-y:auto; }
.tg-gut .tg-h { height:48px; font-size:11px; color:var(--muted); text-align:right; padding-right:6px; border-top:1px solid #f0f1f3; }
.tg-col { position:relative; border-left:1px solid var(--line); height:1152px; }
.tg-slot { display:block; height:48px; border-top:1px solid #f0f1f3; } .tg-slot:hover { background:#f6f9ff; }
.tg-ev { position:absolute; box-sizing:border-box; padding:2px 4px; font-size:12px; line-height:1.3; overflow:hidden; color:var(--fg);
  background:color-mix(in srgb, var(--c) 18%, #fff); border-left:3px solid var(--c); border-radius:3px; } .tg-ev i { font-style:normal; color:var(--muted); }
.tg-ev:hover { text-decoration:none; filter:brightness(.97); }
.cal-ev { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; }
.cal-form fieldset { border:0; padding:0; margin:0; }
.cf-title { display:flex; gap:10px; align-items:center; } .cf-title input[name=title] { flex:1; font-size:16px; }
.cf-when { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin:8px 0; } .cf-when input { width:auto; margin:0; }
.cf-n { width:70px !important; display:inline-block; margin:0; }
.cf-repeat { border:1px solid var(--line) !important; border-radius:6px; padding:8px 12px !important; margin:6px 0 10px !important; }
.cf-repeat select, .cf-repeat input[type=date] { width:auto; display:inline-block; margin:0; }
.cf-wd, .cf-mm { display:inline-flex; gap:6px; flex-wrap:wrap; }
.cf-table select { width:auto; } .cf-table select[multiple] { width:100%; }
.cf-alarm { display:inline-flex; align-items:center; gap:4px; margin:0 10px 4px 0; } .cf-alarm select { width:auto; margin:0; }
.cf-att .chip.muted { opacity:.5; }
.cal-busy { border-left:1px solid var(--line); padding-left:12px; font-size:12px; }
.cal-busy h3 { font-size:13px; color:var(--muted); font-weight:400; margin:0; } .cb-day { font-size:18px; margin:4px 0 8px; }
table.cb { border-collapse:collapse; width:100%; table-layout:fixed; } table.cb th { font-weight:400; color:var(--muted); font-size:10px; }
table.cb td { border:1px solid #eef0f2; height:22px; } table.cb td.cb-n { width:70px; border:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
table.cb td.cb-b { background:#f4a3a3; }
.fl-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:2px 12px; max-height:60vh; overflow:auto; margin:8px 0; }
@media (max-width:900px) { .cal-ev { grid-template-columns:1fr; } .cal-busy { border-left:0; padding-left:0; } }
@media (max-width:700px) {
  .pc-only { display:none !important; }
  .cal-tools { gap:8px; } .cal-nav { font-size:18px; } .cal-q { display:none; }
  .calwrap2 table.month td { height:64px; padding:1px; } .calwrap2 table.month th { padding:4px; text-align:center; }
  .month .dn-pc, .month .dn-add, .month .hol { display:none; } .month .dn-m { display:inline-block; color:inherit; }
  .month td.today .dn-m { background:#222; color:#fff; border-radius:10px; padding:0 6px; } .month td.picked { outline:2px solid #333; outline-offset:-2px; }
  .month a.ev { font-size:10px; } .month a.ev i { display:none; }
  .cal-dayl { display:block; margin-top:12px; } .cal-dayl h2 { font-size:16px; }
  .cal-dayl ul { list-style:none; padding:0; margin:0; } .cal-dayl li a { display:flex; gap:10px; align-items:center; padding:10px 4px; border-bottom:1px solid var(--line); color:var(--fg); }
  .cal-dayl small { color:var(--muted); }
  .tg-col { height:960px; } .tg-slot, .tg-gut .tg-h { height:40px; } .tg-head, .tg-all, .tg-body { grid-template-columns:40px repeat(var(--n, 7), minmax(0,1fr)); }
  .tg-ev { font-size:10px; } .tg-ev i { display:none; } .tg-dh { padding:4px 2px; font-size:12px; text-align:center; }
  .cf-title { flex-wrap:wrap; }
}
.cs-edit svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; vertical-align:-2px; }
table.cb tr:first-child th:first-child { width:64px; }
/* ── 6단계 보고(11-09): 다우 보고 홈 카드·회차 화면·보고서 설정 ── */
.rp-q { margin-left:auto; } .rp-q input { width:180px; margin:0; }
.rp-mtabs { display:none; }
.rp-cards { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.rp-card { width:228px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:18px 24px; }
.rp-card .rp-y { margin:0; font-size:14px; } .rp-card .rp-d { margin:0 0 10px; font-size:26px; }
.rp-card .rp-t { margin:0 0 8px; } .rp-card dl { display:grid; grid-template-columns:60px 1fr; gap:4px; font-size:13px; margin:0 0 12px; }
.rp-card dt { color:var(--muted); } .rp-card dd { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp-go { display:block; text-align:center; }
.rp-recent h2 { font-size:16px; }
.rp-head h1 small { font-weight:400; }
.rp-tb { margin:8px 0; } .ap-tb.muted { opacity:.4; }
.rp-undone { border:1px solid #f0a46a; border-radius:12px; padding:12px 20px; background:#fff; margin:8px 0 14px; }
.rp-undone h2 { font-size:15px; margin:0 0 8px; } .rp-people { display:flex; gap:10px; flex-wrap:wrap; }
.rp-p { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:8px; padding:8px 12px; }
.rp-un { color:#e07b2c; } .rp-series { margin-top:18px; }
.rp-ord { padding-left:20px; } .rp-ord li { padding:3px 0; }
.rp-who { font-size:14px; font-weight:400; display:inline-flex; gap:6px; align-items:center; margin-top:6px; }
.rf-box { border:1px dashed var(--line); border-radius:6px; padding:10px 12px; margin-top:6px; }
.rf-box select, #rf-rk, #rf-ru, #rf-rd, select[name=interval], select[name=nth], select[name=nth_day] { width:auto; display:inline-block; margin:0; }
.rf-refs { list-style:none; padding:0; margin:0 0 6px; display:flex; gap:6px; flex-wrap:wrap; } .rf-refs li { background:#eef3fb; border-radius:12px; padding:2px 10px; font-size:13px; }
.rf-pill { border:1px solid var(--line); border-radius:16px; padding:4px 14px; font-size:13px; cursor:pointer; background:#fff; }
.rf-pill input { display:none; } .rf-pill.on { background:#333; color:#fff; border-color:#333; }
.error-text { color:var(--danger); font-size:12px; } .rf-danger { margin-top:16px; border-top:1px solid var(--line); padding-top:12px; }
.rp-wtools { display:flex; gap:6px; margin:6px 0; }
@media (max-width:700px) {
  .rp-mtabs { display:flex; } .m-hide { display:none; } .rp-q { display:none; }
  .rp-cards { flex-direction:column; } .rp-card { width:auto; }
  .rp-recent h2 { display:none; }
}
.rf-inline { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:4px; } .rf-inline label.check { margin:0; }
.form-table [hidden] { display:none !important; }
.ico-lock, .side-group a.lock::before { display:inline-block; width:13px; height:13px; margin-right:4px; vertical-align:-1px; background:currentColor; opacity:.7;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='11' width='14' height='10' rx='2' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M8 11V8a4 4 0 018 0v3' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='11' width='14' height='10' rx='2' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M8 11V8a4 4 0 018 0v3' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; }
.side-group a.lock::before { content:""; }
/* ── 주소록 7단계 (11-09): 다우 주소록 목록·색인·연락처 추가/보기, 직원연락처 부서 트리 ── */
.ct-tb { display:flex; flex-wrap:wrap; gap:4px; margin:8px 0; } .ct-tb > span { display:flex; flex-wrap:wrap; gap:2px; align-items:center; }
.ct-more { position:relative; display:inline-block; } .ct-more summary { list-style:none; cursor:pointer; } .ct-more summary::-webkit-details-marker { display:none; }
.ct-more .lt-pop { left:0; right:auto; min-width:170px; } .ct-more .lt-pop a { display:block; padding:6px 4px; color:var(--fg); white-space:nowrap; }
.ct-more .lt-pop a:hover { background:#f2f6fa; }
.ct-quick { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0 0 8px; } .ct-quick input { width:auto; flex:1 1 140px; margin:0; } .ct-quick[hidden] { display:none; }
.ct-idx-row { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:6px 0; border-bottom:1px solid var(--line); }
.ct-idx { display:flex; flex-wrap:wrap; } .ct-idx a { padding:6px 7px; color:#555; font-size:13px; border-bottom:2px solid transparent; }
.ct-idx a.on { color:var(--fg); font-weight:700; border-bottom-color:var(--fg); }
.ct-idx-row .lt-tools { display:flex; gap:6px; align-items:center; } .ct-idx-row .lt-size select { width:auto; margin:0; }
.ap-dlg-pad { padding:10px 18px; max-height:55vh; overflow:auto; } .ap-dlg-pad label.check { display:block; }
.ct-org { max-height:50vh; overflow:auto; } .ct-org label.check { display:block; }
.ct-ph, .ct-ph-big { border-radius:50%; object-fit:cover; background:#e6e9ee; display:inline-block; flex:none; }
.ct-ph { width:40px; height:40px; } .ct-ph-big { width:96px; height:96px; }
.ct-noph { background:#e6e9ee url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='15' r='7' fill='%23c7ccd3'/%3E%3Cpath d='M6 36c2-8 8-11 14-11s12 3 14 11z' fill='%23c7ccd3'/%3E%3C/svg%3E") center/cover no-repeat; }
.ct-acts { display:inline-flex; gap:14px; align-items:center; } .ct-acts a { display:inline-flex; color:#333; }
.ct-acts svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linejoin:round; }
.ct-form .ct-row { display:grid; grid-template-columns:120px 1fr; gap:10px; align-items:center; padding:6px 0; }
.ct-form .ct-row[hidden] { display:none; } .ct-form .ct-row input, .ct-form .ct-row select, .ct-form .ct-row textarea { margin:0; max-width:420px; }
.ct-form .ct-row textarea { max-width:none; } .ct-form .ct-lab { color:#444; font-size:14px; } .ct-form .req { color:#e8212b; }
.ct-xin { display:flex; gap:6px; align-items:center; } .ct-zip { max-width:110px !important; }
.ct-groups label.check { display:inline-block; margin-right:10px; } .ct-gbook[hidden] { display:none; }
.ct-vbar { display:flex; justify-content:space-between; align-items:center; } .ct-vbar span { display:flex; gap:6px; align-items:center; }
.ct-vhead { text-align:center; padding:10px 0 18px; border-bottom:8px solid #f0f3f6; margin:0 -20px 10px; }
.ct-vhead h1 { font-size:20px; margin:10px 0 4px; } .ct-vhead .meta { margin:2px 0; } .ct-vacts { margin-top:14px; } .ct-vacts .ct-acts { gap:40px; }
.ct-vacts svg { width:32px; height:32px; }
.ct-dl { display:grid; grid-template-columns:100px 1fr; gap:12px 10px; margin:14px 0; } .ct-dl dt { color:var(--muted); } .ct-dl dd { margin:0; word-break:break-all; }
.ct-memo { white-space:pre-wrap; } .ct-chip { display:inline-block; background:#e8f6f8; border:1px solid #bfe3e8; color:#2a6f7a; border-radius:12px; padding:1px 10px; margin:0 4px 4px 0; font-size:13px; }
.ct-src { font-size:12px; }
.ct-adm { display:grid; grid-template-columns:280px 1fr; gap:12px; align-items:start; } .ct-adm-list { list-style:none; padding:0; margin:0 0 10px; }
.ct-adm-list li { padding:6px 4px; border-bottom:1px solid var(--line); } .ct-adm-list li.on { background:#f2f6fa; font-weight:600; }
.ct-pick summary { cursor:pointer; color:#2a6f7a; margin:4px 0; } .ct-pick label.check { display:inline-block; margin:2px 10px 2px 0; }
.ct-mg td input { width:auto; display:inline-block; margin:0 4px 0 0; }
.pp-wrap { display:grid; grid-template-columns:230px 1fr; gap:12px; align-items:start; }
.pp-tree { padding:8px 0; position:sticky; top:70px; } .pp-tree a { display:block; padding:6px 12px; color:var(--fg); font-size:14px; }
.pp-tree a small { color:var(--muted); } .pp-tree a.on { background:#e8f6f8; font-weight:600; } .pp-tree .pp-left { border-top:1px dotted var(--line); margin-top:4px; }
@media (max-width:700px) {
  .ct-adm, .pp-wrap { grid-template-columns:1fr; } .pp-tree { position:static; display:flex; overflow-x:auto; padding:4px; } .pp-tree a { white-space:nowrap; padding:6px 10px !important; }
  .ct-tb, .ct-idx-row { display:none; }
  .ct-form .ct-row { grid-template-columns:1fr; gap:2px; }
  table.lt td.ct-card { display:flex !important; align-items:center; justify-content:space-between; gap:8px; }
  table.lt td.ct-card a:first-child { flex-direction:row !important; align-items:center; gap:12px !important; flex:1; min-width:0; }
  table.lt td.ct-card .ct-txt { display:flex; flex-direction:column; min-width:0; flex:1; }
  table.lt td.ct-card .m-meta { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .ct-table tr:has(td.ct-card) > td.chk { display:none !important; }
  .pp-grid thead { display:none; } .pp-grid tr { display:block; padding:8px 0; border-bottom:1px solid var(--line); } .pp-grid td { display:inline-block; border:0; padding:2px 6px 2px 0; }
}
@media print { .noprint, .ct-more, .ct-quick, .ct-tb, .ct-idx-row, table.lt .chk { display:none !important; } }
.ct-ph[hidden], .ct-ph-big[hidden] { display:none !important; }
@media (max-width:700px) { table.lt td.ct-card .ct-acts { flex:none; width:112px; justify-content:flex-end; } table.lt td.ct-card .ct-ph { width:40px; flex:none; } table.lt td.ct-card { min-width:0; max-width:100%; } table.lt td.ct-card > a { overflow:hidden; min-width:0; } table.lt td.ct-card .m-title, table.lt td.ct-card .m-meta { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } }
/* ── Works 8단계 (11-09): 다우 Works 홈 카드·앱 머리·리스트 뷰·상태 딱지·간트·캘린더·리포트·입력화면 배치 ── */
.side-edit { display:inline-block; width:14px; height:14px; margin-left:6px; vertical-align:-2px; background:#888;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16z' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16z' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; }
.wk-applist { display:flex; align-items:center; gap:6px; margin:0 0 10px; font-size:17px; }
.wk-applist .wk-back { font-size:22px; color:var(--fg); text-decoration:none; padding:0 4px; }
.wk-appdd { position:relative; } .wk-appdd summary { cursor:pointer; list-style:none; } .wk-appdd summary::-webkit-details-marker { display:none; }
.wk-appdd summary::after { content:""; display:inline-block; margin-left:6px; border:5px solid transparent; border-top-color:#999; vertical-align:-2px; }
.wk-appdd .lt-pop { left:0; right:auto; min-width:230px; max-height:60vh; overflow:auto; font-size:14px; }
.wk-appdd .lt-pop a { display:flex; align-items:center; gap:6px; padding:5px 4px; color:var(--fg); } .wk-appdd .lt-pop a.on { font-weight:700; }
.wk-appdd .lt-pop img { width:20px; height:20px; border-radius:4px; }
.wk-head { display:flex; align-items:center; gap:10px; margin:2px 0 14px; } .wk-head h1 { margin:0; font-size:22px; }
.wk-ic { width:26px; height:26px; border-radius:6px; } .wk-ic-s { width:22px; height:22px; border-radius:5px; vertical-align:-6px; }
.wk-info { width:20px; height:20px; border-radius:50%; border:1.5px solid #999; color:#888; background:none; font:700 12px/16px serif; padding:0; cursor:pointer; }
.wk-gear { display:inline-block; width:20px; height:20px; background:#888;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 8.5a3.5 3.5 0 100 7 3.5 3.5 0 000-7zm8.4 5.1l2-1.6-2-3.4-2.4.9a8 8 0 00-1.7-1L16 6h-4l-.4 2.5a8 8 0 00-1.7 1l-2.4-1-2 3.5 2 1.6a8 8 0 000 2l-2 1.6 2 3.4 2.4-.9a8 8 0 001.7 1L12 22h4l.4-2.5a8 8 0 001.7-1l2.4.9 2-3.4-2-1.6a8 8 0 000-2z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 8.5a3.5 3.5 0 100 7 3.5 3.5 0 000-7zm8.4 5.1l2-1.6-2-3.4-2.4.9a8 8 0 00-1.7-1L16 6h-4l-.4 2.5a8 8 0 00-1.7 1l-2.4-1-2 3.5 2 1.6a8 8 0 000 2l-2 1.6 2 3.4 2.4-.9a8 8 0 001.7 1L12 22h4l.4-2.5a8 8 0 001.7-1l2.4.9 2-3.4-2-1.6a8 8 0 000-2z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat; }
.wk-badge { font-size:12px; color:#777; background:#f1f3f5; border-radius:10px; padding:2px 8px; }
.wk-mtabs { display:none; }
.wk-htools { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); padding:0 0 10px; margin-bottom:14px; }
.wk-hsearch input { width:220px; margin:0; } .wk-htools > span { display:flex; gap:6px; }
.wk-tbtn { display:inline-flex; align-items:center; gap:4px; padding:5px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--fg); font-size:14px; cursor:pointer; text-decoration:none; }
.wk-tbtn.on { background:#eef6f8; }
.wk-fbar { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; } .wk-fbar select, .wk-fbar input { width:auto; margin:0; }
.wk-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:16px; }
.wk-card { position:relative; background:#fff; border:1px solid var(--line); border-radius:8px; min-height:196px; }
.wk-card[hidden], .wk-app[hidden] { display:none; }
.wk-card .wk-gear { position:absolute; left:16px; top:14px; width:17px; height:17px; z-index:1; }
.wk-fav { position:absolute; right:12px; top:10px; margin:0; z-index:1; } .wk-fav button { background:none; border:0; padding:2px; cursor:pointer; }
.wk-fav svg { width:20px; height:20px; fill:none; stroke:#999; stroke-width:1.5; } .wk-fav button.on svg { fill:#f5b301; stroke:#e0a100; }
td .wk-fav { position:static; }
.wk-cbody { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; height:100%; min-height:196px; padding:30px 12px 18px; color:var(--fg); text-align:center; text-decoration:none; }
.wk-cbody img { width:60px; height:60px; border-radius:10px; } .wk-cbody span { font-size:15px; line-height:1.35; }
.wk-empty { display:flex; align-items:center; justify-content:center; color:var(--muted); border-style:dashed; padding:20px; }
.wk-ftab { margin:0 0 12px; } .wk-ftab a { cursor:default; } .wk-ftab small, .wk-fname small { background:#eceff1; border-radius:4px; padding:1px 5px; font-size:11px; color:#777; }
.wk-top { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; flex-wrap:wrap; }
.wk-search { flex:1; min-width:280px; } .wk-sline { display:flex; align-items:center; gap:8px; margin:0 0 6px; }
.wk-savef { font-size:13px; color:#888; text-decoration:underline; }
.wk-q { display:inline-flex; border:1px solid var(--line); border-radius:4px; background:#fff; } .wk-q input { border:0; margin:0; width:200px; height:30px; }
.wk-q button { border:0; background:none; width:30px; cursor:pointer; position:relative; }
.wk-q button::after { content:""; position:absolute; left:8px; top:7px; border:2px solid #666; border-radius:50%; width:9px; height:9px; }
.wk-crow { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:4px 0; } .wk-crow select, .wk-crow input { width:auto; margin:0; max-width:180px; }
.wk-crow input[hidden] { display:none; }
.wk-lm { display:flex; gap:8px; align-items:center; } .wk-lm select { width:auto; margin:0; } .wk-lmb::before { content:""; display:inline-block; width:14px; height:14px; margin-right:4px; vertical-align:-2px; background:#888; -webkit-mask:var(--gear) center/contain no-repeat; mask:var(--gear) center/contain no-repeat; }
.wk-cnt { color:#666; font-size:14px; margin:4px 0 14px; } .wk-cnt b { color:var(--fg); }
.wk-tb { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:0 0 8px; flex-wrap:wrap; }
.wk-tb > span { display:flex; gap:6px; align-items:center; flex-wrap:wrap; } .wk-tb select { width:auto; margin:0; }
.wk-dl { position:relative; display:inline-block; } .wk-dl summary { list-style:none; } .wk-dl summary::-webkit-details-marker { display:none; }
.wk-dl .lt-pop { left:0; right:auto; min-width:170px; } .wk-dl .lt-pop a { display:block; padding:7px 6px; color:var(--fg); }
table.wk-table th { text-align:center; } table.wk-table td { text-align:center; } table.wk-table td.title { text-align:left; }
.wk-st { display:inline-block; color:#fff; border-radius:3px; padding:1px 7px; font-size:13px; font-weight:400; white-space:nowrap; }
.wk-stm { position:relative; display:inline-block; } .wk-stm summary { list-style:none; cursor:pointer; } .wk-stm summary::-webkit-details-marker { display:none; }
.wk-stm .lt-pop { left:0; right:auto; min-width:130px; text-align:left; } .wk-stm .lt-pop form { margin:0; } .wk-stm .lt-pop button { display:block; padding:5px 4px; color:var(--fg); }
.wk-act { font-size:12px; color:#888; }
.wk-newwin { display:inline-block; width:12px; height:12px; border:1.5px solid #aaa; border-radius:2px; vertical-align:-1px; }
.wk-vbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 10px; } .wk-vbar > span { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.wk-fname { color:#777; font-size:13px; margin:0 0 10px; }
.wk-form, .wk-doc { background:#fff; border:1px solid var(--line); border-radius:10px; padding:20px 24px; }
.wk-cols { display:grid; grid-template-columns:repeat(var(--n, 1), minmax(0, 1fr)); gap:0 24px; margin:0 0 6px; }
.wk-col + .wk-col { border-left:1px solid #ddd; padding-left:24px; }
.wk-f { margin:0 0 14px; } .wk-lab { display:block; color:#666; font-size:14px; margin:0 0 6px; } .wk-lab .req { color:#e8212b; }
.wk-f input:not([type=checkbox]):not([type=radio]):not([type=file]), .wk-f select, .wk-f textarea { margin:0; }
.wk-auto { color:#999; font-size:14px; } .wk-doc .wk-auto { color:var(--fg); }
.wk-val { min-height:20px; font-size:15px; word-break:break-all; }
.wk-opts label.check { display:inline-block; margin-right:12px; }
.wk-hr { border:0; border-top:1px solid #ccc; margin:14px 0; } .wk-blank { height:30px; } .wk-label { color:#555; margin:6px 0 12px; }
.wk-drop { border:1px dashed #bbb; border-radius:6px; padding:10px; background:#fafafa; }
.wk-factions { justify-content:center; margin-top:20px; }
.wk-noview { text-align:center; padding:50px 20px; color:#666; }
.wk-month { font-size:20px; margin:0 8px; }
.wk-gantt-wrap { overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:8px; }
table.wk-gantt { border-collapse:collapse; width:100%; min-width:900px; table-layout:fixed; font-size:13px; }
.wk-gantt th, .wk-gantt td { border-bottom:1px solid #eee; padding:6px 4px; }
.wk-gantt .wk-gt { width:220px; text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .wk-gantt .wk-gp { width:60px; text-align:center; }
.wk-gantt th.wk-gd { text-align:center; font-weight:400; color:#555; padding:4px 0; border-left:1px solid #f0f0f0; }
.wk-gantt th.sun { color:#e8212b; } .wk-gantt th.sat { color:#1a73e8; } .wk-gantt th.today { background:#e8f6f8; font-weight:700; }
.wk-gbar-cell { position:relative; padding:6px 0 !important;
  background:repeating-linear-gradient(90deg, transparent 0, transparent calc(100% / var(--days) - 1px), #f0f0f0 calc(100% / var(--days) - 1px), #f0f0f0 calc(100% / var(--days))); }
.wk-gbar { position:relative; height:20px; background:#9ad8e2; border-radius:4px; overflow:hidden; }
.wk-gbar i { position:absolute; left:0; top:0; bottom:0; background:#1aa3b8; } .wk-gbar span { position:relative; padding:0 6px; font-size:12px; line-height:20px; white-space:nowrap; }
.wk-gempty { text-align:center; padding:30px !important; }
.wk-vtabs { display:flex; gap:6px; } .wk-vtabs a { padding:5px 12px; border:1px solid var(--line); border-radius:16px; color:var(--fg); }
.wk-vtabs a.on { background:#333; color:#fff; border-color:#333; }
table.wk-cal { width:100%; border-collapse:collapse; table-layout:fixed; background:#fff; } .wk-cal th { padding:6px; font-weight:400; color:#555; border-bottom:1px solid #333; }
.wk-cal th.sun { color:#e8212b; } .wk-cal th.sat { color:#1a73e8; }
.wk-cal td { vertical-align:top; height:110px; border-bottom:1px solid #eee; padding:4px; } .wk-cal.one td { height:auto; min-height:200px; }
.wk-cal td.other .wk-dn { color:#bbb; } .wk-cal td.today .wk-dn { background:#222; color:#fff; border-radius:10px; padding:0 7px; }
.wk-dn { display:inline-block; font-size:13px; margin:0 0 3px; }
.wk-ev { display:block; font-size:12px; color:var(--fg); border-left:3px solid var(--c); background:#f6f9fb; padding:1px 4px; margin:1px 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wk-more { font-size:12px; color:#888; } .wk-dot { display:inline-block; width:10px; height:10px; border-radius:50%; }
.wk-citem { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin:4px 0; } .wk-citem select { width:auto; margin:0; }
.wk-bars { display:flex; flex-direction:column; gap:6px; } .wk-brow { display:grid; grid-template-columns:160px 1fr 80px; gap:8px; align-items:center; font-size:14px; }
.wk-bk { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .wk-bb { background:#f1f3f5; height:16px; border-radius:3px; overflow:hidden; } .wk-bb i { display:block; height:100%; background:#1aa3b8; }
.wk-brow b { text-align:right; font-weight:600; }
.wk-pie-wrap { display:flex; gap:24px; align-items:center; flex-wrap:wrap; } .wk-pie { width:200px; height:200px; }
.wk-legend { list-style:none; padding:0; margin:0; font-size:14px; } .wk-legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; }
.wk-line { width:100%; max-width:700px; height:auto; background:#fff; }
.wk-flist { list-style:none; padding:0; margin:0; } .wk-flist li { padding:6px 0; border-bottom:1px solid var(--line); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.wk-flist input { width:auto; margin:0; }
@media (max-width:900px) { .wk-cols { grid-template-columns:1fr; } .wk-col + .wk-col { border-left:0; padding-left:0; } }
@media (max-width:700px) {
  .wk-mtabs { display:flex; border-bottom:1px solid var(--line); margin:-4px 0 10px; } .wk-mtabs a { flex:1; text-align:center; padding:10px 0; color:#999; }
  .wk-mtabs a.on { color:#1aa3b8; font-weight:700; border-bottom:2px solid #1aa3b8; }
  .wk-cards { grid-template-columns:1fr 1fr; gap:10px; } .wk-card, .wk-cbody { min-height:170px; } .wk-cbody img { width:56px; height:56px; }
  .wk-hsearch { flex:1; } .wk-hsearch input { width:100%; }
  .wk-q input { width:150px; } .wk-tb .wk-tbtn { padding:4px 8px; font-size:13px; }
  .wk-form, .wk-doc { padding:14px; } .wk-brow { grid-template-columns:90px 1fr 60px; }
  .wk-cal td { height:64px; padding:2px; } .wk-ev { font-size:10px; }
  table.wk-table td.m-card .wk-st { font-size:11px; padding:0 4px; }
  .wk-search { min-width:0; }
}
.wk-caret { display:inline-block; margin-left:4px; border:4px solid transparent; border-top-color:#fff; vertical-align:-1px; }
.side-group h3 { display:flex; align-items:center; } .side-group h3 .side-edit { margin-left:auto; }
:root { --gear:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 8.5a3.5 3.5 0 100 7 3.5 3.5 0 000-7zm8.4 5.1l2-1.6-2-3.4-2.4.9a8 8 0 00-1.7-1L16 6h-4l-.4 2.5a8 8 0 00-1.7 1l-2.4-1-2 3.5 2 1.6a8 8 0 000 2l-2 1.6 2 3.4 2.4-.9a8 8 0 001.7 1L12 22h4l.4-2.5a8 8 0 001.7-1l2.4.9 2-3.4-2-1.6a8 8 0 000-2z' fill='black'/%3E%3C/svg%3E"); }
/* ── 9단계 (11-09): 다우 '전사 Portal' 홈 3단·휴가현황·연차내역 ── */
.hp-grid { display:grid; grid-template-columns:300px minmax(0, 1fr) 280px; gap:18px; align-items:start; }
.hp-col { display:flex; flex-direction:column; gap:18px; min-width:0; } .hp-col > .card { margin:0; }
.hp-mnav { display:flex; align-items:center; justify-content:center; gap:12px; margin:4px 0 10px; position:relative; }
.hp-mnav a { color:#999; font-size:18px; text-decoration:none; } .hp-mnav b { font-size:19px; }
.hp-mnav .hp-plus { position:absolute; right:0; color:#aaa; }
table.hp-mini { width:100%; border-collapse:collapse; table-layout:fixed; text-align:center; font-size:13px; }
.hp-mini th { font-weight:400; color:#666; padding:4px 0; } .hp-mini th.sun, .hp-mini td.sun span { color:#e8212b; } .hp-mini th.sat { color:#1a73e8; }
.hp-mini td { padding:3px 0; height:40px; vertical-align:top; } .hp-mini td a { display:flex; flex-direction:column; align-items:center; gap:2px; color:var(--fg); text-decoration:none; }
.hp-mini td.other a { opacity:.35; } .hp-mini td.today span { background:#333; color:#fff; border-radius:7px; padding:2px 7px; }
.hp-mini td b { font-size:10px; font-weight:400; color:#fff; background:#4d7cc8; border-radius:8px; min-width:18px; padding:0 4px; line-height:15px; }
.hp-mini td.other b { background:#9eb3d6; }
.hp-days { list-style:none; padding:0; margin:12px 0 0; border-top:1px solid var(--line); }
.hp-days li { display:flex; gap:10px; padding:10px 0; border-bottom:1px solid #f1f1f1; }
.hp-dl { width:44px; flex:none; text-align:center; display:flex; flex-direction:column; align-items:center; gap:2px; }
.hp-dl small { color:#888; } .hp-dl b { font-size:18px; } .hp-dl i { font-style:normal; font-size:10px; color:#fff; background:#4d7cc8; border-radius:8px; padding:0 6px; }
.hp-dl em { font-style:normal; font-size:10px; color:#fff; background:#666; border-radius:3px; padding:0 4px; }
.hp-dr { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.hp-ev { display:flex; flex-wrap:wrap; align-items:center; gap:4px; background:#f6f7f9; border-radius:6px; padding:6px 8px; color:var(--fg); text-decoration:none; }
.hp-ev b { font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; } .hp-ev small { flex-basis:100%; color:#888; padding-left:14px; }
.hp-none { color:#aaa; font-size:13px; background:#f6f7f9; border-radius:6px; padding:8px; margin:0; }
.hp-tabs { display:flex; border-bottom:1px solid var(--line); margin:4px 0 6px; } .hp-tabs button { flex:1; max-width:120px; border:0; background:none; padding:9px 0; color:#888; cursor:pointer; font-size:14px; }
.hp-tabs button.on { color:var(--fg); font-weight:600; border-bottom:2px solid #333; }
.hp-posts { list-style:none; padding:0; margin:0; } .hp-posts li { padding:9px 4px; border-bottom:1px solid #f3f3f3; }
.hp-posts li[hidden] { display:none; } .hp-posts a { display:block; color:var(--fg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hp-posts small { color:#999; font-size:12px; }
.hp-pg { display:flex; justify-content:center; gap:22px; margin:8px 0 0; } .hp-pg button { font-size:20px; color:#888; }
.hp-extra { display:grid; grid-template-columns:1fr 1fr; gap:18px; } .hp-extra > .card { margin:0; }
.hp-works { list-style:none; padding:0; margin:0; } .hp-works li { padding:5px 0; } .hp-works img { width:22px; height:22px; border-radius:5px; vertical-align:-6px; }
.hp-me { display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
.hp-av { width:72px; height:72px; border-radius:50%; background:#e3e8ee; color:#567; display:flex; align-items:center; justify-content:center; font-size:28px; margin:4px 0 6px; }
.hp-me > b { font-size:20px; } .hp-me > small { color:#888; }
.hp-cnt { display:flex; justify-content:space-around; width:100%; margin-top:10px; } .hp-cnt a { display:flex; flex-direction:column; color:var(--fg); text-decoration:none; }
.hp-cnt b { color:#1aa3b8; font-size:22px; } .hp-cnt small { color:#666; font-size:12px; }
.hp-quick { display:flex; justify-content:space-around; } .hp-quick a { display:flex; flex-direction:column; align-items:center; gap:6px; color:#555; font-size:12px; text-decoration:none; }
.hp-qi { width:22px; height:22px; background:#666; -webkit-mask:var(--qi) center/contain no-repeat; mask:var(--qi) center/contain no-repeat; }
.qi-cal { --qi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.qi-appr { --qi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M9 12h7M9 16h7'/%3E%3C/svg%3E"); }
.qi-leave { --qi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1-5 5-7 8-7s7 2 8 7'/%3E%3C/svg%3E"); }
table.hp-lt { width:100%; border-collapse:collapse; font-size:12px; text-align:center; } .hp-lt th { font-weight:400; color:#666; border-top:1px solid #333; border-bottom:1px solid var(--line); padding:6px 2px; }
.hp-lt td { padding:9px 2px; border-bottom:1px solid #f3f3f3; white-space:nowrap; } .hp-lt tr[hidden] { display:none; }
@media (max-width:1200px) { .hp-grid { grid-template-columns:280px minmax(0, 1fr); } .hp-grid > .hp-col:last-child { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3, 1fr); } }
@media (max-width:900px) { .hp-grid, .hp-grid > .hp-col:last-child, .hp-extra { grid-template-columns:1fr; } }
.lv-date { text-align:center; font-size:26px; font-weight:600; margin:0 0 20px; } .lv-yr { color:#aaa; text-decoration:none; padding:0 10px; }
.lv-h { font-size:16px; margin:10px 0 8px; } .lv-h small { color:#555; font-weight:400; font-size:14px; }
.lv-chip { display:inline-block; background:#f1f3f5; color:#777; font-size:12px; font-weight:400; border-radius:4px; padding:1px 6px; }
.lv-sum { display:flex; align-items:stretch; padding:22px 18px; overflow-x:auto; }
.lv-gauge { flex:1.6; min-width:240px; padding-right:20px; border-right:1px solid var(--line); }
.lv-gauge p { margin:0 0 8px; } .lv-note { display:inline-block; background:#fff1e6; color:#e06a1b; font-size:13px; border-radius:8px; padding:3px 10px; }
.lv-bar { height:6px; background:#e9ecef; border-radius:3px; overflow:hidden; margin:10px 0 4px; } .lv-bar i { display:block; height:100%; background:#1aa3b8; }
.lv-bar-s { display:inline-block; width:80px; vertical-align:middle; margin:0; }
.lv-rate { text-align:right; color:#888; font-size:12px; }
.lv-num { flex:1; min-width:110px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border-right:1px solid var(--line); padding:0 8px; }
.lv-num:last-child { border-right:0; } .lv-num small { color:#888; } .lv-num b { font-size:26px; font-weight:500; } .lv-num span { color:#555; font-size:13px; }
.lv-remain b, .lv-remain span { color:#f07b1d; } .lv-blue b, .lv-blue span, td.lv-blue { color:#1a8fd8; }
.lv-sum7 .lv-num { min-width:120px; }
.lv-hbar { margin:18px 0 8px; } .lv-pill { background:#333; color:#fff; border-radius:16px; padding:5px 14px; font-size:14px; }
.lv-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px; margin:0 0 18px; }
.lv-cards .lv-card.more { display:none; } .lv-cards.all .lv-card.more { display:flex; }
.lv-card { display:flex; flex-direction:column; gap:6px; margin:0; padding:16px; color:var(--fg); text-decoration:none; } .lv-card b { font-size:16px; } .lv-card small { color:#888; }
.lv-two { display:grid; grid-template-columns:1fr 1fr; gap:18px; } .lv-two .card { margin:0; } .lv-more { color:#999; font-size:14px; }
table.lv-t { width:100%; border-collapse:collapse; font-size:14px; } .lv-t th { font-weight:400; color:#555; border-top:1px solid #333; border-bottom:1px solid #333; padding:10px 6px; text-align:left; }
.lv-t td { padding:10px 6px; border-bottom:1px solid #f1f1f1; } .lv-empty { text-align:center; color:#aaa; padding:40px 0 !important; }
.lv-st { font-size:12px; background:#e8f6f8; color:#127c8c; border-radius:4px; padding:1px 6px; } .lv-st.wait { background:#fff4e0; color:#b26a00; }
table.lv-hist td { vertical-align:top; } table.lv-hist td small { color:inherit; opacity:.85; }
@media (max-width:700px) {
  .lv-two { grid-template-columns:1fr; } .lv-sum { flex-wrap:wrap; gap:14px 0; } .lv-gauge { flex-basis:100%; border-right:0; padding:0; }
  .lv-num { flex:1 1 45%; min-width:0; border-right:0; } .lv-num b { font-size:22px; } .lv-date { font-size:20px; }
  table.lv-hist thead { display:none; } table.lv-hist, table.lv-hist tbody, table.lv-hist tr { display:block; }
  table.lv-hist tr { display:flex; flex-wrap:wrap; gap:4px 12px; padding:10px 4px; border-bottom:1px solid var(--line); }
  table.lv-hist td { border:0; padding:0; font-size:12px; } table.lv-hist td:first-child { flex-basis:100%; font-weight:600; font-size:14px; }
  table.lv-hist td:not(:first-child)::before { content:attr(data-label) " "; color:#999; } table.lv-hist td br { display:none; }
}

/* 10단계: 다우 왼쪽 메뉴 묶음 접기/펼치기 */
.side-group h3 .side-fold { margin-left:auto; width:18px; height:18px; border:0; background:none; cursor:pointer; position:relative; padding:0; }
.side-group h3 .side-edit + .side-fold { margin-left:4px; }
.side-group h3 .side-fold::after { content:""; position:absolute; left:5px; top:4px; border:4px solid transparent; border-bottom-color:#999; }
.side-group.folded h3 .side-fold::after { top:8px; border-bottom-color:transparent; border-top-color:#999; }
.side-group.folded > a, .side-group.folded > .side-sep { display:none; }
.m-only { display:none; } @media (max-width:700px) { .m-only { display:inline; } .pc-only { display:none; } }
/* ── 다우 모양 맞춤(11-10) 2: 머리줄 검색·목록 표·탭·꼬리표·숫자 배지 (다우 화면 잰 값) ── */
.topsearch { margin-left:auto; width:360px; height:40px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.1); padding:6px 8px; gap:4px; }
.topsearch select { order:0; height:26px; font-size:13px; padding:0 4px; border-radius:6px; color:var(--fg); }
.topsearch button { order:1; padding:0 2px 0 6px; border-left:1px solid var(--line); border-radius:0; height:22px; align-items:center; } .topsearch button:hover { background:none; }
.topsearch input { order:2; border-left:0; height:22px; padding:0 8px 0 4px; font-size:14px; color:#323333; }
.top .topsearch .ico { width:20px; height:20px; padding:0; stroke:#1c1c1c; }
.side-sep { display:flex; align-items:center; gap:4px; font-size:14px; color:#bfbfbf; padding:4px 8px 4px 26px; line-height:24px; }
.side-sep::after { content:""; flex:1; border-top:1px dotted #ccc; }
.side-group > .side-sep:not(.dept) { border-top:0; margin-top:0; }
.side-sep.dept { color:#555; } .side-sep.dept::after { content:none; }
.side-group a.sub { padding-left:46px; }
.side-group a.add { display:inline-block; color:#333; font-size:14px; background:var(--bg); border-radius:4px; padding:2px 8px; margin:8px 0 0 20px; }
.badge { background:var(--danger); color:#fff; border-radius:24px; padding:0 4px; font-size:11px; font-weight:400; line-height:16px; min-width:16px; display:inline-block; text-align:center; letter-spacing:-0.44px; }
.tag { font-size:11px; background:#efefef; color:#999; padding:0 4px; border-radius:4px; font-weight:400; border:1px solid #efefef; letter-spacing:-0.8px; }
.tabs { gap:4px; margin:0 0 16px; border-bottom:1px solid #dfdfdf; padding:0 24px 0 0; }
.tabs a { padding:12px; color:#999; font-size:14px; line-height:20px; border-bottom:2px solid transparent; margin-bottom:-1px; }
.tabs a:hover { color:#333; text-decoration:none; }
.tabs a.on { color:#333; border-color:#000; font-weight:500; }
/* 목록: 다우처럼 겉 상자 없이, 머리줄 위아래 진한 1px 선·줄 선 없음 */
.lt-wrap { background:#fff; border:0; border-radius:0; }
table.lt { font-size:14px; }
table.lt th { background:none; font-weight:400; color:var(--fg); text-align:left; height:48px; padding:0 16px; border-top:1px solid #333; border-bottom:1px solid #333; }
table.lt th .lt-caret { color:#bbb; }
table.lt td { padding:8px 16px; border-bottom:0; line-height:22.4px; }
table.lt tbody tr:hover { background:#f9f9f9; }
table.lt td.title a { color:var(--fg); } table.lt tr.unread td.title a { font-weight:600; }
table.lt .chk { padding-right:0; } table.lt tr.pinned { background:#fffdf3; }
table.lt .lt-empty td { color:#888; padding:40px; }
.lt-bar { margin:0 0 6px; } .lt-search select, .lt-tools select { height:32px; border-color:#cfd1d4; }
.lt-search input[name=q] { height:32px; }
.lt-fields summary { border-color:#cfd1d4; border-radius:4px; font-size:13px; height:32px; line-height:20px; padding:5px 10px; }
.lt-pager a, .lt-pager b { border-radius:4px; color:var(--fg); }
.lt-pager b { background:none; color:var(--accent); font-weight:600; }
table.grid { font-size:14px; }
table.grid th { font-weight:400; border-top:1px solid #333; border-bottom:1px solid #333; padding:12px 8px; }
table.grid td { border-bottom:1px solid #eee; padding:8px; }
table.kv th { background:#f9f9f9; font-weight:400; }
/* Works 목록: 다우처럼 칸마다 옅은 선, 줄 높이 30px */
table.wk-table th { height:auto; padding:6px 4px; font-weight:500; line-height:19.5px; border-top:1px solid #333; border-bottom:1px solid #e5e5e5; border-right:1px solid #f2f2f2; }
table.wk-table td { padding:4px 8px; line-height:21px; border-bottom:1px solid #f2f2f2; border-right:1px solid #f2f2f2; }
table.wk-table th:last-child, table.wk-table td:last-child { border-right:0; }
.wk-st { border-radius:4px; padding:0 4px; font-size:12px; line-height:19px; letter-spacing:-1px; }
.st { font-size:12px; padding:0 4px; border-radius:2px; font-weight:400; background:#fff; color:#888; border:1px solid #ccc; }
.bd-info { background:#f9f9f9; border-radius:4px; padding:10px 10px 14px; margin:10px 0 32px; font-size:13px; }
/* 홈·카드형 화면: 다우 홈 가젯처럼 둥근 흰 상자 */
.home-grid .card, .wk-card, .rp-card { border:1px solid var(--line); border-radius:16px; padding:20px; }
/* 캘린더·홈(다우 잰 값): 일요일만 빨강(#ff000a), 토요일은 검정, 머리줄 선 #eaecef, 보기 단추 32px 둥근 알약, 체크 #333 */
input[type=checkbox], input[type=radio] { accent-color:#333; }
.sun, .sun .dn, .sun a, .wk-gantt th.sun, .wk-cal th.sun, .hp-mini th.sun, .hp-mini td.sun span { color:#ff000a; }
.sat, .sat .dn, .sat a, .wk-gantt th.sat, .wk-cal th.sat, .hp-mini th.sat { color:var(--fg); }
.bd-pills a, .wk-vtabs a, .rf-pill { height:32px; line-height:30px; padding:0 12px; border:1px solid #cfd1d4; border-radius:16px; color:#4a4b4c; font-size:13px; }
.bd-pills a.on, .wk-vtabs a.on, .rf-pill.on { background:#38393a; border-color:#38393a; color:#fff; }
.cal-nav { font-size:24px; } .cal-nav b { font-weight:500; color:#333; letter-spacing:0; padding:0 8px; }
.cal-arrow { border-color:#eaecef; } .cal-today { font-size:13px; padding:0 4px; }
.calwrap2 { border-color:#eaecef; border-radius:12px; }
.calwrap2 table.month th { color:var(--fg); font-size:14px; padding:12px 16px; border-bottom:1px solid #eaecef; }
.calwrap2 table.month td { border-color:#eaecef; padding:8px 0 0; } .month .dn { padding:0 8px 0 10px; font-size:14px; }
table.month td.other .dn { color:#bbb; } table.month td.other { background:#fff; } table.month td.today { background:#fff; }
.month td.today .dn-pc { background:#1c1c1c; border-radius:20px; padding:0 8px; }
a.ev { font-size:12px; line-height:17px; } a.ev.allday { border-radius:4px; padding:1px 8px; margin:1px 1px 0; }
.month details.more summary { color:#9b9c9e; font-size:12px; }
.side-group a.cs-add, .cs-add { display:inline-block; background:var(--bg); color:#333; border-radius:4px; font-size:14px; padding:2px 8px; margin-left:20px; }
.cs-btn { border:1px solid #ddd; border-radius:0; padding:8px; font-size:13px; }
/* 홈: 다우 전사 Portal 가젯 = 흰 바탕에 옅은 테두리 둥근 상자 */
.hp-grid { gap:24px; } .hp-col { gap:24px; }
.hp-grid .card { border:1px solid var(--line); border-radius:16px; padding:20px; }
.hp-grid .card h2 { font-size:20px; font-weight:500; letter-spacing:-0.4px; }
.calwrap2 table.month th.sun { color:#ff000a; }
/* 목록 도구 단추(다우): 테두리 없이 20px 아이콘 + 13px 글자, 높이 32px */
.tbi, .wk-tbtn.tbi, .btn-s.tbi { display:inline-flex; align-items:center; gap:4px; height:32px; padding:0 8px; margin:0 4px 0 0; border:0; background:none; border-radius:4px; font-size:13px; line-height:29px; color:var(--fg); cursor:pointer; list-style:none; }
.tbi:hover { background:var(--hover); text-decoration:none; }
.tbi::before { content:""; flex:none; width:20px; height:20px; background:currentColor; -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
.ic-new { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16z M13 7l4 4'/%3E%3C/svg%3E"); }
.ic-del { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M9 6V3.5h6V6M6 6l1 14.5h10L18 6M10 10v7M14 10v7'/%3E%3C/svg%3E"); }
.ic-up { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 17V3M6.5 8.5L12 3l5.5 5.5M4 21h16'/%3E%3C/svg%3E"); }
.ic-down { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 3v14M6.5 11.5L12 17l5.5-5.5M4 21h16'/%3E%3C/svg%3E"); }
.ic-copy { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M8 8h12v13H8z M4 16V3h12'/%3E%3C/svg%3E"); }
.ic-move { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M15 8V4H4v16h11v-4 M10 12h11 M17.5 8.5L21 12l-3.5 3.5'/%3E%3C/svg%3E"); }
.wk-dl > summary.tbi::-webkit-details-marker { display:none; }
/* Works 검색줄·등록 화면(다우): '새 필터 저장' 회색 밑줄, '목록 관리' 검정, 등록 화면은 상자 없이, 확인/취소 40px */
.wk-sline b { font-size:16px; font-weight:500; } button.link.wk-savef { color:#999; font-size:13px; text-decoration:underline; margin-left:8px; }
button.link.wk-lmb { color:var(--fg); font-size:14px; }
.wk-form, .wk-doc { border:0; border-radius:0; padding:8px 0 0; }
.wk-form .actions button, .wk-form .actions .btn { height:40px; padding:0 20px; border-radius:8px; font-size:14px; }
/* 휴가(다우 ehr 화면)·보고 카드: 옅은 테두리 둥근 상자 */
.lv-sum.card, .lv-card.card, .lv-two > .card { border:1px solid #eee; border-radius:12px; padding:24px; }
.lv-card.card { padding:16px 16px; }
.rp-card, .rp-undone { border-radius:12px; }
/* 휴대폰: 쪽 번호·관리 표·검색 줄이 화면 밖으로 나가지 않게 */
.lt-pager { flex-wrap:wrap; }
@media (max-width:700px) {
  main table.grid { display:block; overflow-x:auto; }
  main .search { flex-wrap:wrap; } main .search label.inline { max-width:100%; } main .search select { max-width:100%; }
}
/* 게시판 목록(다우): 말머리도 제목과 같은 색·굵기, 읽은 글은 회색 #666 */
table.lt td.title .cat { color:inherit; font-weight:inherit; }
table.lt:has(tr.unread) tr:not(.unread) td.title a { color:#666; }
/* 캘린더 월간(다우 구조): 주마다 표 — 배경 칸선(.mbg) 위에 날짜 줄·일정 줄(여러 날 = 칸 합친 막대, 이어지면 화살 끝)·+N 줄 */
.calwrap2 table.mhead th { border-bottom:1px solid #eaecef; }
.mweek { position:relative; min-height:118px; border-top:1px solid #eaecef; } .mhead + .mweek { border-top:0; }
.mbg { position:absolute; inset:0; display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); pointer-events:none; }
.mbg span { border-left:1px solid #eaecef; } .mbg span:first-child { border-left:0; }
.calwrap2 table.mwk { position:relative; width:100%; table-layout:fixed; border-collapse:collapse; background:none; min-width:0; }
.calwrap2 table.mwk td { height:auto; border:0; padding:1px 1px 0; vertical-align:top; overflow:hidden; background:none; }
.calwrap2 table.mwk tr.mdn td { padding:8px 0 2px; }
.calwrap2 table.mwk tr.mmore td { padding:0 8px; height:22px; }
.mwk a.ev { margin:0; } .mwk a.ev:not(.allday) { padding:0 2px 0 6px; border-left-width:3px; }
.mwk a.ev.allday { height:19px; line-height:17px; border:1px solid var(--c); border-radius:4px; padding:0 8px; margin:0 1px; }
.mwk a.ev.cl { border-top-left-radius:0; border-bottom-left-radius:0; margin-left:0; padding-left:14px; clip-path:polygon(8px 0, 100% 0, 100% 100%, 8px 100%, 0 50%); }
.mwk a.ev.cr { border-top-right-radius:0; border-bottom-right-radius:0; margin-right:0; padding-right:14px; clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%); }
.mwk a.ev.cl.cr { clip-path:polygon(8px 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 8px 100%, 0 50%); }
.mwk a.ev.allday:hover { filter:brightness(.95); background:var(--c); }
.mwk details.more summary { padding:2px 0; line-height:18px; }
@media (max-width:600px) {
  .mweek { min-height:64px; } .calwrap2 table.mwk tr.mdn td { padding:2px 0; text-align:center; } .calwrap2 table.mwk tr.mmore td { padding:0 2px; height:16px; }
  .mwk a.ev.allday { height:15px; line-height:13px; padding:0 3px; } .mwk a.ev.cl, .mwk a.ev.cr { padding-left:6px; padding-right:6px; }
  .mbg span.picked { outline:2px solid #333; outline-offset:-2px; } .month td.picked { outline:0; }
}
/* 홈 미니 달력 일정 수(다우): 지난날 회색 #aaa, 오늘·앞날 #5296ff, 다른 달 앞날 #afcfff, 22×16 둥근 */
.hp-mini td b { background:#5296ff; min-width:22px; line-height:16px; border-radius:24px; }
.hp-mini td.other b { background:#afcfff; } .hp-mini td.past b { background:#aaa; }
.hp-dl i { background:#5296ff; border-radius:24px; }
/* 머리줄 오른쪽(다우): 아이콘 단추 · 경영업무포털(청록 알약 40px) · 프로필 원(누르면 창) */
.top .me { gap:8px; }
.top .hbtn, .top .bell { display:inline-flex; color:var(--fg); }
.top .portal-btn { display:inline-flex; align-items:center; height:40px; padding:0 16px; border-radius:9999px; background:var(--accent); border:1px solid var(--accent); color:#fff; font-size:14px; letter-spacing:-0.28px; margin-left:8px; white-space:nowrap; }
.top .portal-btn:hover { background:#0796ab; text-decoration:none; }
.prof { position:relative; margin-left:8px; }
.prof > summary { list-style:none; cursor:pointer; } .prof > summary::-webkit-details-marker { display:none; }
.prof-av, .prof-big { display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#e3e8ee; color:#567; font-weight:500; }
.prof-av { width:40px; height:40px; font-size:15px; }
.prof-pop { position:absolute; right:-6px; top:48px; z-index:50; width:296px; background:#fff; border-radius:16px; box-shadow:0 10px 38px -10px rgba(14,18,22,.35), 0 10px 20px -15px rgba(14,18,22,.2);
  display:flex; flex-direction:column; align-items:center; padding:44px 24px 28px; }
.prof-big { width:60px; height:60px; font-size:24px; border-radius:16px; margin-bottom:12px; }
/* 11-10 사원 사진: 사진 있으면 동그라미 안에 꽉 차게(다우) */
.has-img { background:#e3e8ee; overflow:hidden; padding:0; }
.has-img img { width:100%; height:100%; object-fit:cover; display:block; }
.prof-sum { list-style:none; cursor:pointer; display:block; line-height:0; }
.prof-sum::-webkit-details-marker { display:none; }
.prof-photo { display:inline-block; }
.me-photo { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.mp-av { width:120px; height:120px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:44px; background:#e3e8ee; color:#567; }
.prof-name { font-size:20px; font-weight:500; } .prof-dept { font-size:14px; color:#555; margin-top:4px; } .prof-mail { font-size:13px; color:#999; margin-top:12px; }
.prof-acts { display:flex; justify-content:space-around; width:100%; margin-top:28px; }
.prof-acts a, .prof-acts button.link { display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--fg); font-size:13px; }
.prof-ic { display:inline-flex; width:48px; height:48px; border-radius:50%; background:var(--bg); align-items:center; justify-content:center; }
.prof-ic .ico { width:24px; height:24px; padding:0; }
.prof-acts form.inline { display:block; }
@media (max-width:900px) { .top .portal-btn, .top .hbtn { display:none; } .top .me form.inline { display:block; } .prof-av { width:32px; height:32px; font-size:13px; } }
.top .me .prof-acts button.link { border:0; height:auto; padding:0; font-size:13px; font-weight:400; letter-spacing:inherit; }
/* 게시판 목록: 다우에는 없는 '다우' 표시는 목록에서 숨김(글 화면에는 그대로) */
table.lt td.title .old { display:none; }
/* 사람·부서 고르기 창(다우 오른쪽 '선택' 창): 360px, 둥근 16px, 그림자, 검색칸 회색 둥근, 조직도·사람(동그란 머리글자) */
.pk { position:fixed; z-index:80; top:60px; right:24px; width:360px; height:min(650px, calc(100vh - 80px)); background:#fff; border-radius:16px;
  box-shadow:0 10px 38px -10px rgba(14,18,22,.35), 0 10px 20px -15px rgba(14,18,22,.2); display:flex; flex-direction:column; padding:20px 24px 16px; }
.pk-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; } .pk-head b { font-size:18px; font-weight:600; }
.pk-x { width:28px; height:28px; border:0; background:none; padding:0; position:relative; } .pk-x::before, .pk-x::after { content:""; position:absolute; left:4px; right:4px; top:13px; height:1.6px; background:#1c1c1c; transform:rotate(45deg); } .pk-x::after { transform:rotate(-45deg); }
.pk-q { margin:0 0 12px; height:40px; border:0; border-radius:8px; background:#f5f6f8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M16 16l5 5'/%3E%3C/svg%3E") 12px center/18px no-repeat; padding:0 12px 0 40px; font-size:14px; }
.pk-body { flex:1; overflow-y:auto; }
.pk-g > .pk-gb { display:none; padding-left:24px; } .pk-g.open > .pk-gb { display:block; }
.pk-gh, .pk-p, .pk-dl { display:flex; align-items:center; gap:8px; width:100%; border:0; background:none; text-align:left; padding:8px 4px; font-size:14px; color:var(--fg); border-radius:6px; }
.pk-gh:hover, .pk-p:hover, .pk-dl:hover { background:var(--hover); }
.pk-gh small { color:#999; font-size:13px; }
.pk-gh::before { content:""; width:8px; height:8px; border:solid #1c1c1c; border-width:0 1.5px 1.5px 0; transform:rotate(-45deg); margin:0 4px 0 2px; flex:none; }
.pk-g.open > .pk-gh::before { transform:rotate(45deg); margin-top:-4px; }
.pk-g.leaf > .pk-gh::before { visibility:hidden; }
.pk-tw { display:none; }
.pk-av { display:inline-flex; width:32px; height:32px; border-radius:50%; background:#e3e8ee; color:#567; align-items:center; justify-content:center; font-size:13px; flex:none; }
.pk-on { color:var(--accent); } .pk-on .pk-av { background:var(--accent); color:#fff; }
.pk-none { color:#999; text-align:center; padding:30px 0; }
.pk-foot { display:flex; justify-content:center; padding-top:12px; }
.pk-close { background:#999; border-color:#999; color:#fff; height:32px; padding:0 14px; border-radius:6px; }
@media (max-width:600px) { .pk { left:8px; right:8px; width:auto; top:56px; height:calc(100vh - 72px); } }
/* 이름표(다우 운영자 칩): 둥근 테두리, 이름 + ✕ */
.ntag { display:inline-flex; align-items:center; gap:4px; height:26px; padding:0 6px 0 10px; border:1px solid #ddd; border-radius:13px; font-size:13px; color:#555; margin:2px 6px 2px 0; background:#fff; }
.ntag button { width:16px; height:16px; border:0; background:none; padding:0; position:relative; } .ntag button::before, .ntag button::after { content:""; position:absolute; left:2px; right:2px; top:7px; height:1.3px; background:#777; transform:rotate(45deg); } .ntag button::after { transform:rotate(-45deg); }
.addlink { display:inline-flex; align-items:center; gap:4px; border:0; background:none; padding:2px 4px; font-size:14px; color:var(--fg); cursor:pointer; }
.addlink::before { content:"+"; font-size:20px; line-height:14px; font-weight:300; }
/* 도움말 ?(다우): 회색 동그라미, 올리면 진회색 풍선 */
.help { position:relative; display:inline-flex; width:16px; height:16px; border-radius:50%; background:#bbb; color:#fff; font-size:11px; font-weight:700; align-items:center; justify-content:center; vertical-align:-2px; margin-left:4px; cursor:help; }
.help::before { content:"?"; }
.help > span { display:none; position:absolute; left:24px; top:-6px; z-index:20; width:185px; background:#444; color:#ddd; font-size:13px; font-weight:400; line-height:1.5; padding:12px; border-radius:3px; text-align:left; letter-spacing:-0.5px; }
.help:hover > span, .help:focus > span { display:block; }
/* 다우 설정 화면 표(게시판 추가 등): 왼쪽 제목 칸 140px, 칸마다 아래 옅은 선, 라디오 줄, ※ 회색 안내, 점선 상자 */
.dtable { width:100%; border-collapse:collapse; }
.dtable > tbody > tr > th { width:140px; text-align:left; vertical-align:top; font-weight:400; color:var(--fg); padding:12px 0 12px 24px; font-size:14px; line-height:22px; }
.dtable > tbody > tr > td { padding:10px 0; vertical-align:top; line-height:22px; }
.dtable > tbody > tr:nth-child(n+4) > th, .dtable > tbody > tr:nth-child(n+4) > td { border-top:1px solid #eee; padding-top:14px; padding-bottom:14px; }
.dtable input:not([type=radio]):not([type=checkbox]), .dtable textarea { margin:0; border-color:#ddd; border-radius:2px; }
.dtable textarea { min-height:50px; }
.sel-s { width:auto; margin:0; height:26px; padding:0 4px; font-size:13px; background:#efefef; border-color:#ddd; }
label.rd { display:inline-flex; align-items:center; gap:6px; margin:0 16px 0 0; color:var(--fg); font-size:14px; }
label.rd input { width:16px; height:16px; margin:0; }
.dtable label.check { margin:0; font-size:14px; }
.desc { color:#888; font-size:12px; margin:6px 0 0; } .desc.g { color:#999; }
.dopt { border:1px dashed #ccc; margin:10px 0 0; } .dopt[hidden] { display:none; }
.dopt-row { padding:14px 16px; } .dopt-row + .dopt-row { border-top:1px dashed #ccc; }
.dsub { margin:10px 0 0 0; } .dsub[hidden] { display:none; }
.dopt > input, .dopt > label { margin:10px 16px; } .dopt > input { width:calc(100% - 32px); }
.in-table { width:100%; border-collapse:collapse; margin:8px 0 0; font-size:13px; }
.in-table th, .in-table td { padding:6px 10px; text-align:left; border-bottom:1px solid #eee; font-weight:400; }
.in-table thead th { background:#f1f1f1; color:#666; }
.in-table tbody th { background:#f8f8f8; width:170px; }
.in-table td.x { width:30px; }
.pv-tbl { margin:14px 16px; width:calc(100% - 32px); }
.ntag-x { width:20px; height:20px; border:0; background:none; padding:0; position:relative; } .ntag-x::before, .ntag-x::after { content:""; position:absolute; left:4px; right:4px; top:9px; height:1.3px; background:#777; transform:rotate(45deg); } .ntag-x::after { transform:rotate(-45deg); }
.pub-all { display:inline-flex; align-items:center; gap:6px; }
.gear-s { width:18px; height:18px; border:0; padding:0; background:#888; -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat;
  --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9L7 7M17 17l2.1 2.1M4.9 19.1L7 17M17 7l2.1-2.1'/%3E%3C/svg%3E"); }
.tags { display:flex; flex-wrap:wrap; align-items:center; gap:2px; }
.bd-types { display:flex; gap:24px; } .bd-types label { display:flex; flex-direction:column; align-items:center; gap:6px; margin:0; color:var(--fg); font-size:14px; }
.bd-types input { margin:0; width:16px; height:16px; }
.ty { display:block; width:36px; height:44px; border:1px solid #bbb; border-radius:2px; background:#fafafa; position:relative; box-shadow:1px 1px 0 #ddd; }
.ty-classic { background:repeating-linear-gradient(#fafafa 0 5px, #9aa 5px 6px) 6px 8px/24px 30px no-repeat, #fafafa; }
.ty-feed { background:repeating-linear-gradient(#fafafa 0 8px, #9aa 8px 9px) 12px 8px/18px 30px no-repeat, radial-gradient(circle, #9aa 0 2px, transparent 2.5px) 4px 6px/6px 9px repeat-y, #fafafa; }
.bd-type1 { display:inline-flex; align-items:center; gap:8px; } .bd-type1 .ty { width:28px; height:34px; }
.dactions { display:flex; justify-content:center; gap:8px; margin:30px 0; }
.dactions button, .dactions .btn { height:40px; padding:0 20px; border-radius:8px; font-size:14px; line-height:38px; }
.vw-mail { color:inherit; }
/* 목록 틀(다우): 위 = 아이콘 도구 | ⚙ 필드 설정·개수, 아래 = 쪽 번호(|< < [1] 2 > >|) + 작은 검색줄 */
.lt-bar { align-items:center; margin:0 0 8px; } .lt-left { display:flex; align-items:center; flex-wrap:wrap; }
.lt-fields summary { border:0; background:none; padding:0 4px; height:32px; display:flex; align-items:center; gap:4px; font-size:13px; }
.lt-size select { height:32px; }
.ic-print { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M7 9V3h10v6M7 17H4V9h16v8h-3M7 14h10v7H7z'/%3E%3C/svg%3E"); }
.lt-pills { border:0; margin:0 0 12px; gap:8px; } .lt-pills a { border-bottom:1px solid #cfd1d4; margin:0; }
.lt-foot { display:flex; flex-direction:column; align-items:center; gap:8px; margin:20px 0 30px; }
.lt-pager { gap:2px; margin:0; padding:0; align-items:center; }
.lt-pager a, .lt-pager b, .lt-pager .pg { min-width:24px; height:24px; line-height:22px; padding:0 4px; text-align:center; font-size:13px; color:#555; border:1px solid transparent; border-radius:4px; }
.lt-pager b { background:none; color:var(--fg); border-color:#333; font-weight:400; }
.lt-pager .pg { font-size:0; position:relative; } .lt-pager .pg::before { content:""; position:absolute; inset:0; background:#555; -webkit-mask:var(--ic) center/14px no-repeat; mask:var(--ic) center/14px no-repeat; }
.lt-pager .pg.off::before { background:#ccc; }
.pg-prev { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E"); }
.pg-next { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E"); }
.pg-first { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6 5h2v14H6z M18 5v14l-9-7z'/%3E%3C/svg%3E"); }
.pg-last { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M16 5h2v14h-2z M6 5v14l9-7z'/%3E%3C/svg%3E"); }
.lt-foot .lt-search { display:flex; gap:4px; align-items:center; flex-wrap:wrap; justify-content:center; }
.lt-foot .lt-search select, .lt-foot .lt-search input { height:26px; font-size:13px; padding:0 4px; border-color:#ddd; border-radius:2px; width:auto; margin:0; }
.lt-foot .lt-search select { background:#efefef; }
.lt-foot .lt-search input[name=q] { width:150px; min-width:0; padding:0 6px; }
.lt-sbtn { width:30px; height:26px; padding:0; margin:0 0 0 -4px; border:1px solid #a0a0a0; border-radius:0 2px 2px 0; background:#a0a0a0; font-size:0; position:relative; }
.lt-sbtn::before { content:""; position:absolute; inset:0; background:#fff; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5'/%3E%3C/svg%3E") center/16px no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5'/%3E%3C/svg%3E") center/16px no-repeat; }
.lt-sbtn:hover { background:#888; }
@media (max-width:700px) { main .lt-foot .lt-search { display:none; } .lt-foot { margin:12px 0 20px; } }
.dtable > tbody > tr > th { width:162px; }
.th-cat { width:auto; height:26px; margin:-4px 8px 0 0; padding:1px; font-size:13px; background:#efefef; border-color:#ddd; vertical-align:middle; }
.lt-foot .lt-search .lt-sbtn { width:30px; flex:none; }
/* 커뮤니티(다우): 홈 = 왼쪽 목록·오른쪽 순위 카드, 안 = ‹ 이름 · 가입하기 · 게시판 · 가입 멤버 */
.cm-home { display:grid; grid-template-columns:minmax(0, 1fr) 260px; gap:32px; }
.cm-h { font-size:18px; font-weight:600; margin:20px 0 12px; } .cm-h small { font-size:13px; font-weight:400; color:#555; }
.cm-btn { height:24px; line-height:22px; padding:0 6px; font-size:13px; border:1px solid #ddd; border-radius:2px; background:#fff; }
.cm-rank h2 { font-size:13px; font-weight:400; border-bottom:1px solid var(--line); padding:12px 0; margin:0 0 10px; }
.cm-rank select { width:auto; height:26px; font-size:13px; margin:0 0 10px; padding:0 4px; }
.cm-card { position:relative; display:flex; flex-direction:column; gap:4px; border:1px solid #eee; border-radius:8px; padding:20px 24px; margin-bottom:12px; color:var(--fg); }
.cm-card:hover { text-decoration:none; border-color:#ccc; } .cm-card b { font-weight:400; font-size:14px; padding-right:70px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cm-card small { color:#888; font-size:12px; padding-left:12px; }
.cm-cnt { position:absolute; right:12px; top:16px; display:flex; align-items:center; gap:3px; color:#08a7bf; font-size:13px; }
.cm-cnt i { display:inline-block; width:16px; height:16px; background:currentColor; -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; margin-left:4px; }
.cm-ic-m { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c.6-3.6 3.2-5.6 6.5-5.6s5.9 2 6.5 5.6M16 4.6a3.3 3.3 0 0 1 0 6.6M18 14.5c2 .7 3.2 2.7 3.5 5.5'/%3E%3C/svg%3E"); }
.cm-back { display:flex; align-items:center; gap:8px; font-size:20px; color:var(--fg); margin:-8px 0 16px; } .cm-back::before { content:""; width:9px; height:9px; border:solid #1c1c1c; border-width:0 0 1.6px 1.6px; transform:rotate(45deg); }
.cm-back:hover { text-decoration:none; }
.cm-join { margin:0; } .cm-wait { color:#888; text-align:center; margin:0 0 16px; }
.side-group a.cm-mem { padding-left:26px; color:#333; } .side-group a.cm-all { font-size:12px; color:#888; padding-left:26px; }
.side-sep.cm-empty { color:#999; text-align:center; display:block; padding:30px 10px; font-size:14px; } .side-sep.cm-empty::after { content:none; }
@media (max-width:900px) { .cm-home { grid-template-columns:1fr; } .cm-rank { display:none; } }
.cm-join .side-btn { width:100%; }
/* 설문(다우): 상태 꼬리표, 참여할 설문 카드, 문항 작성, 결과(참여율 막대·원그래프·범례) */
.sv-st { display:inline-block; font-size:11px; line-height:18px; padding:0 8px; border-radius:2px; border:1px solid; background:#fff; }
.sv-st.st-no { color:#c47be0; border-color:#e4c2f0; } .sv-st.st-done, .sv-st.st-open { color:#08a7bf; border-color:#a6dfe8; }
.sv-st.st-view { color:#22a85a; border-color:#a8dcb9; } .sv-st.st-temp, .sv-st.st-ready { color:#999; border-color:#ddd; }
.sv-st.st-closed, .sv-st.st-stopped { color:#888; border-color:#ccc; background:#f5f5f5; }
.sv-todo { border-top:1px solid #eee; border-bottom:1px solid #eee; padding:24px 0; margin:0 0 30px; display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:12px; }
.sv-todo .lt-empty-p { grid-column:1/-1; padding:40px 0; }
.sv-card { display:flex; flex-direction:column; gap:6px; border:1px solid #eee; border-radius:12px; padding:18px 20px; color:var(--fg); }
.sv-card:hover { text-decoration:none; border-color:#ccc; } .sv-card small { color:#888; } .sv-card .btn { align-self:flex-start; margin-top:6px; }
.sv-h { font-size:16px; font-weight:500; display:flex; align-items:center; gap:4px; }
.sv-period input[type=date], .sv-period input[type=time] { width:auto; display:inline-block; }
.sv-sub { margin-top:6px !important; }
.sv-qhead { display:flex; justify-content:space-between; align-items:center; margin:30px 0 10px; border-bottom:1px solid #333; padding-bottom:10px; } .sv-qhead h2 { margin:0; }
.sv-import .lt-pop a { display:block; padding:4px 0; color:var(--fg); }
.sv-q { border:1px solid #eee; border-radius:8px; padding:16px 20px; margin:0 0 12px; background:#fafafa; }
.sv-qbar { display:flex; align-items:center; gap:12px; margin-bottom:10px; } .sv-qbar select { width:auto; margin:0; } .sv-qbar label { margin:0; }
.sv-qtools { margin-left:auto; display:flex; gap:6px; align-items:center; } .sv-qtools .link { color:#888; font-size:11px; }
.sv-question { margin:0 0 10px; }
.sv-opt { display:flex; gap:6px; align-items:center; margin:0 0 6px; } .sv-opt input { margin:0; }
.sv-copt { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; } .sv-copt label { margin:0; } .sv-max select { width:auto; margin:0 0 0 4px; }
.sv-choice[hidden], .sv-text[hidden], .sv-score[hidden], .sv-max[hidden] { display:none; }
.sv-score select { width:auto; display:inline-block; }
.sv-addq { display:flex; gap:12px; flex-wrap:wrap; }
.sv-tools { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #eee; padding:0 0 6px; margin:0 0 20px; }
.sv-list { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E"); }
.ic-bell { --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M6 16V11a6 6 0 0 1 12 0v5l2 2H4zM10 20a2 2 0 0 0 4 0'/%3E%3C/svg%3E"); }
.sv-title { display:flex; justify-content:space-between; align-items:center; } .sv-title h2 { font-size:22px; font-weight:600; margin:0; display:flex; align-items:center; gap:8px; }
.sv-menu { position:relative; } .sv-menu summary { list-style:none; cursor:pointer; padding:4px; } .sv-menu summary::-webkit-details-marker { display:none; }
.sv-menu .ap-mmenu-list { position:absolute; right:0; top:28px; z-index:40; display:flex; flex-direction:column; min-width:120px; background:#fff; border:1px solid var(--line); border-radius:6px; box-shadow:0 4px 10px rgba(0,0,0,.12); }
.sv-menu .ap-mmenu-list a, .sv-menu .ap-mmenu-list button { padding:9px 14px; font-size:13px; color:var(--fg); text-align:left; width:100%; }
.sv-meta { display:grid; grid-template-columns:80px 1fr; gap:6px 16px; font-size:12px; margin:20px 0; } .sv-meta dt { color:#888; } .sv-meta dd { margin:0; }
.sv-guide { background:#f2f2f2; padding:18px 32px; margin:0 0 30px; white-space:pre-wrap; }
.sv-qv { border:0; border-bottom:1px solid #eee; border-radius:0; padding:16px 0; } .sv-qv legend { font-size:15px; padding:0; margin-bottom:10px; color:var(--fg); }
.sv-req { color:#ee2e2e; } .sv-o { display:flex; margin:6px 0; } .sv-otherv { width:240px; margin:0 0 0 6px; height:26px; }
.sv-scores { display:flex; gap:6px; } .sv-sc input { display:none; } .sv-sc span { display:inline-flex; width:36px; height:36px; border:1px solid #ccc; border-radius:50%; align-items:center; justify-content:center; cursor:pointer; }
.sv-sc input:checked + span { background:var(--accent); border-color:var(--accent); color:#fff; }
.sv-rbar { display:inline-flex; gap:24px; align-items:center; border:1px solid #ddd; border-radius:2px; padding:6px 10px; margin:0 0 20px 22px; font-size:13px; }
.sv-meter { display:inline-block; width:120px; height:10px; background:#eee; border-radius:5px; overflow:hidden; } .sv-meter b { display:block; height:100%; background:#9dd9db; }
.sv-owner { display:flex; gap:8px; align-items:center; }
.sv-res { margin:20px 0 34px; } .sv-res h3 { font-size:15px; font-weight:400; }
.sv-chart { display:flex; flex-direction:column; gap:16px; margin-left:22px; }
.sv-donut { width:190px; height:190px; border-radius:50%; position:relative; margin-left:160px; } .sv-donut i { position:absolute; inset:25%; background:#fff; border-radius:50%; }
.sv-legend { list-style:none; padding:0; margin:0; } .sv-legend > li { margin:6px 0; display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.sv-legend > li > i { width:14px; height:14px; border:1px solid #999; display:inline-block; }
.sv-texts { list-style:disc; padding-left:22px; flex-basis:100%; font-size:13px; } .sv-texts small { color:#999; }
.sv-cmts { margin-top:30px; border-top:1px solid #eee; padding-top:10px; }
@media (max-width:600px) { .sv-donut { margin-left:0; } .sv-rbar { flex-wrap:wrap; gap:8px; margin-left:0; } }
.sv-sum { display:flex; gap:24px; font-size:14px; margin:0 0 20px; } .sv-sum b { font-weight:600; margin-left:4px; } .sv-res .sv-rbar { margin:0 0 16px 22px; }
.sv-period input[hidden] { display:none; } .sv-tools .vw-tools button { color:var(--fg); }
/* ToDO+(다우): 홈 보드 카드·점선 + 상자, 보드 = 리스트 가로 스크롤·카드·상세 창 */
.td-h { font-size:22px; } .td-sec { font-size:16px; font-weight:500; margin:20px 0 12px; }
.td-grid { display:grid; grid-template-columns:repeat(auto-fill, 228px); gap:16px; }
.td-bcard { position:relative; display:flex; flex-direction:column; gap:6px; height:124px; border:1px solid #e4e5e5; border-radius:8px; padding:16px 18px; color:var(--fg); border-top:4px solid var(--bc); }
.td-bcard:hover { text-decoration:none; box-shadow:0 2px 8px rgba(0,0,0,.08); } .td-bcard b { font-size:15px; font-weight:500; } .td-bcard small { color:#888; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.td-bmeta { margin-top:auto; font-size:12px; color:#999; }
.td-add { width:228px; height:124px; border:1px dashed #ccc; border-radius:8px; background:#fff; display:flex; align-items:center; justify-content:center; }
.td-add i { width:64px; height:64px; border-radius:16px; background:#f3f4f5; position:relative; } .td-add i::before, .td-add i::after { content:""; position:absolute; left:20px; right:20px; top:31px; height:2px; background:#999; } .td-add i::after { transform:rotate(90deg); }
.td-form label { display:block; margin:0 0 12px; } .td-colors { display:flex; gap:8px; margin:0 0 12px; } .td-colors input { display:none; } .td-colors i { display:block; width:24px; height:24px; border-radius:50%; cursor:pointer; border:2px solid #fff; box-shadow:0 0 0 1px #ddd; }
.td-colors input:checked + i { box-shadow:0 0 0 2px #333; }
.td-bar h1 { display:flex; align-items:center; gap:8px; } .td-dot { width:12px; height:12px; border-radius:50%; display:inline-block; }
.td-tools { display:flex; gap:10px; align-items:center; } .td-q input { width:180px; margin:0; } .td-avs { display:flex; gap:2px; align-items:center; }
.td-board { display:flex; gap:12px; overflow-x:auto; align-items:flex-start; padding:4px 0 20px; min-height:60vh; }
.td-col { flex:none; width:272px; background:#f3f4f5; border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:8px; }
.td-col header { display:flex; align-items:center; gap:6px; padding:2px 4px; } .td-col header small { color:#888; }
.td-cmenu { margin-left:auto; position:relative; } .td-cmenu summary { list-style:none; cursor:pointer; padding:0 4px; color:#666; } .td-cmenu summary::-webkit-details-marker { display:none; }
.td-cmenu .lt-pop form { margin:0 0 6px; display:flex; gap:4px; } .td-cmenu .lt-pop input { margin:0; }
.td-cards { display:flex; flex-direction:column; gap:8px; min-height:20px; }
.td-card { background:#fff; border-radius:8px; padding:10px 12px; box-shadow:0 1px 2px rgba(0,0,0,.12); cursor:pointer; }
.td-card:hover { box-shadow:0 2px 6px rgba(0,0,0,.18); } .td-card.dragging { opacity:.5; } .td-card.done .td-ct { text-decoration:line-through; color:#999; }
.td-ct { margin:0 0 6px; word-break:break-word; } .td-cm { margin:0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:12px; color:#888; }
.td-cm .m-ic-c { display:inline-block; width:12px; height:12px; background:currentColor; -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; margin-right:2px; vertical-align:-2px; }
.td-due { background:#eef6f8; color:#127c8c; border-radius:3px; padding:0 5px; } .td-due.over { background:#fdecec; color:#c62828; }
.td-cav { margin-left:auto; display:flex; gap:2px; }
.td-addc input, .td-newcol input { margin:0; background:transparent; border:0; padding:6px; } .td-addc input:focus, .td-newcol input:focus { background:#fff; border:1px solid var(--accent); }
.td-newcol { background:#f8f9fa; }
.td-dlg { width:min(860px, 96vw); } .td-title { font-size:18px; font-weight:500; border:0; margin:0; padding:4px; }
.td-dbody { display:grid; grid-template-columns:minmax(0, 1fr) 220px; gap:20px; padding:0 18px 18px; }
.td-dbody h3 { font-size:13px; color:#666; font-weight:500; margin:16px 0 6px; }
.td-checks, .td-files { list-style:none; padding:0; margin:0 0 6px; } .td-checks li, .td-files li { display:flex; align-items:center; gap:6px; padding:2px 0; } .td-kdone { text-decoration:line-through; color:#999; }
.td-danger { display:flex; gap:8px; justify-content:flex-end; padding:0 18px 14px; }
@media (max-width:700px) { .td-dbody { grid-template-columns:1fr; } .td-tools .td-avs { display:none; } .td-grid { grid-template-columns:1fr 1fr; } .td-bcard, .td-add { width:auto; } }
.at-map { margin:4px 0; } .at-map span { min-width:280px; } .at-map select { max-width:280px; }
.at-grid th, .at-grid td { padding:2px 4px; font-size:11px; text-align:center; white-space:nowrap; border:1px solid #eee; }
.at-grid tbody th { text-align:left; position:sticky; left:0; background:#fff; } .at-ok { background:#eef8f0; } .at-late { background:#fff3d6; } .at-early { background:#fde8e1; } .at-leave { background:#e8f0fd; }

/* 11-10 캘린더 일정등록·상세 = 다우 모양(아이콘 도구줄·YYYY-MM-DD 달력 칸·30분 시각 목록·참석자 이름표·반복 창·알람 줄·참석자 일정 0~/19~) */
.cal-tb { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #e4e4e4; padding:6px 0 10px; margin:0 0 14px; }
.cal-tb-empty { padding:0; }
.cal-tb > span { display:flex; align-items:center; gap:2px; flex-wrap:wrap; }
.ctb { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 8px; border:0; background:none; color:var(--fg); font-size:14px; border-radius:4px; cursor:pointer; text-decoration:none; width:auto; margin:0; }
.ctb:hover { background:var(--hover); }
.ctb-ic { width:20px; height:20px; fill:none; stroke:#1c1c1c; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.cal-tb select { width:auto; height:30px; margin:0 4px 0 0; font-size:13px; }
.cal-form .cf-title input[name=title] { height:36px; font-size:16px; }
.cf-when { gap:4px; }
.dp-wrap { position:relative; display:inline-flex; align-items:center; }
.dp-wrap input[data-date] { width:122px !important; padding-left:30px; height:30px; margin:0; font-size:14px; cursor:pointer; }
.dp-ic { position:absolute; left:7px; top:50%; width:16px; height:16px; margin-top:-8px; cursor:pointer;
  background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23555%27 stroke-width=%271.4%27%3E%3Cpath d=%27M4 5h16v15H4zM4 9h16M8 3v4M16 3v4M7.5 12.5h1.5M11.2 12.5h1.5M15 12.5h1.5M7.5 16h1.5M11.2 16h1.5M15 16h1.5%27/%3E%3C/svg%3E") center/16px no-repeat; }
input[data-time] { width:95px !important; height:30px; margin:0; font-size:14px; }
.dp { position:absolute; z-index:90; background:#fff; border:1px solid #ccc; border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.12); padding:8px; font-size:13px; }
.dp-h { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; } .dp-h button, .dp-f button { border:0; background:none; width:auto; padding:2px 8px; margin:0; font-size:15px; }
.dp table { border-collapse:collapse; } .dp th { font-weight:400; color:#888; width:30px; height:24px; } .dp th.sun, .dp .sun { color:#e53935; } .dp th.sat, .dp .sat { color:#1e73e8; }
.dp td button { width:30px; height:28px; border:0; background:none; border-radius:50%; padding:0; margin:0; font-size:13px; color:inherit; }
.dp td button:hover { background:#eef6f8; } .dp td button.today { font-weight:700; } .dp td button.on { background:var(--accent); color:#fff; }
.dp-f { text-align:center; border-top:1px solid #eee; margin-top:4px; padding-top:4px; } .dp-f button { font-size:13px; color:var(--accent); }
.tp { position:absolute; z-index:90; list-style:none; margin:0; padding:4px 0; background:#fff; border:1px solid #ccc; border-radius:4px; box-shadow:0 4px 14px rgba(0,0,0,.12); max-height:220px; overflow-y:auto; min-width:120px; font-size:13px; }
.tp li { padding:5px 12px; cursor:pointer; white-space:nowrap; } .tp li:hover { background:#eef6f8; } .tp li.on { background:#e1f2f5; }
.cf-reptxt { display:inline-flex; align-items:center; gap:4px; font-size:13px; color:#555; margin-left:6px; }
.cf-ic { width:22px; height:22px; border:0; background:none; padding:0; margin:0; position:relative; cursor:pointer; }
.cf-repedit { background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23777%27 stroke-width=%271.5%27%3E%3Cpath d=%27M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4%27/%3E%3C/svg%3E") center/15px no-repeat; } .cf-repdel::before, .cf-repdel::after { content:""; position:absolute; left:6px; right:6px; top:10px; height:1.3px; background:#777; transform:rotate(45deg); } .cf-repdel::after { transform:rotate(-45deg); }
.cf-repdlg { position:fixed; inset:0; z-index:85; background:rgba(0,0,0,.3); display:flex; align-items:center; justify-content:center; }
.cf-repdlg[hidden] { display:none; }
.crd-box { position:relative; background:#fff; border-radius:8px; width:min(500px, calc(100vw - 32px)); padding:24px; box-shadow:0 6px 30px rgba(0,0,0,.2); font-size:14px; }
.crd-x { position:absolute; right:14px; top:14px; width:24px; height:24px; border:0; background:none; padding:0; margin:0; }
.crd-x::before, .crd-x::after { content:""; position:absolute; left:2px; right:2px; top:11px; height:1.6px; background:#1c1c1c; transform:rotate(45deg); } .crd-x::after { transform:rotate(-45deg); }
.crd-tabs { display:flex; gap:8px; margin-bottom:30px; }
.crd-tabs button { width:auto; height:32px; padding:0 13px; border:1px solid #ccc; border-radius:16px; background:#fff; color:var(--fg); margin:0; font-size:14px; }
.crd-tabs button.on { background:#333; border-color:#333; color:#fff; }
.crd-box p { margin:0 0 10px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.crd-box p[hidden] { display:none; }
.crd-box select { width:auto; height:28px; margin:0; } .crd-n { width:30px !important; height:28px; margin:0; text-align:center; padding:0 2px; }
.crd-end input[data-date] { width:122px !important; }
.cf-reptxt[hidden] { display:none; }
.cf-tags:not(:has(li)) { display:none; }
.crd-sum { background:#f5f5f5; padding:10px 16px !important; font-weight:600; font-size:13px; margin-top:6px !important; }
.crd-act { display:flex; justify-content:flex-end; gap:8px; margin-top:24px; } .crd-act button { width:auto; margin:0; height:32px; padding:0 12px; }
.cf-table { width:100%; border-collapse:collapse; margin-top:6px; }
.cf-table th { width:116px; text-align:left; font-weight:400; vertical-align:top; padding:7px 0; font-size:14px; color:var(--fg); white-space:nowrap; border:0; background:none; }
.cf-table td { padding:4px 0; vertical-align:top; border:0; }
.cf-table tr[hidden] { display:none; }
.cf-table td > input:not([type=checkbox]):not([type=hidden]), .cf-table textarea { width:100%; margin:0; }
.cf-table tr.cf-line td { padding:6px 0; } .cf-table hr { border:0; border-top:1px solid #e4e4e4; margin:0; }
.cf-tags { list-style:none; margin:0; padding:0; display:inline-flex; flex-wrap:wrap; gap:4px; vertical-align:middle; }
.cf-tags:empty { display:none; }
.cf-tags li { display:inline-flex; align-items:center; gap:2px; height:26px; padding:0 4px 0 10px; border:1px solid #c9dfe4; border-radius:13px; font-size:13px; color:#444; background:#eef6f8; }
.cf-tags li.muted { opacity:.5; } .cf-tags li.ntag-me, .cf-tags li.cf-int { padding-right:10px; }
.cf-add { display:inline-flex; align-items:center; gap:4px; width:auto; border:0; background:none; padding:0 4px; margin:0 0 0 6px; height:28px; font-size:14px; color:var(--fg); cursor:pointer; vertical-align:middle; }
.cf-add::before { content:"+"; font-size:20px; font-weight:300; line-height:1; }
.cf-extin { display:flex; gap:4px; margin-bottom:4px; } .cf-extin input { width:200px !important; height:30px; margin:0; } .cf-extin .btn-s { height:30px; }
.cf-alarms { list-style:none; padding:0; margin:0 0 2px; }
.cf-alarm { display:flex; align-items:center; gap:4px; margin:0 0 4px; } .cf-alarm .cf-n { width:40px !important; height:28px; text-align:center; padding:0 2px; } .cf-alarm select { width:auto; height:28px; margin:0; font-size:13px; }
.cf-ax { width:20px; height:20px; border:0; background:none; padding:0; margin:0; position:relative; cursor:pointer; }
.cf-ax::before, .cf-ax::after { content:""; position:absolute; left:4px; right:4px; top:9px; height:1.3px; background:#777; transform:rotate(45deg); } .cf-ax::after { transform:rotate(-45deg); }
.cal-form .actions.center { justify-content:center; display:flex; gap:8px; margin-top:20px; }
.cal-busy { padding-left:20px; border-left:1px solid #e4e4e4; }
.cal-busy h3 { font-size:14px; color:#555; } .cb-day { display:flex; align-items:center; gap:6px; } .cb-day span { font-size:18px; font-weight:600; margin-right:auto; }
.cb-nav { width:24px; height:24px; border:0; background:none; padding:0; margin:0; font-size:20px; color:#777; line-height:1; cursor:pointer; }
.cb-leg { font-size:12px; color:#666; display:flex; align-items:center; gap:4px; margin:4px 0 6px; } .cb-leg i { display:inline-block; width:10px; height:10px; } .cb-leg .cb-sel { background:#bfe3ea; } .cb-leg .cb-bz { background:#f4a3a3; margin-left:8px; }
table.cb td.cb-s { background:#bfe3ea; } table.cb td.cb-b { background:#f4a3a3; } table.cb td.cb-b.cb-s { background:#e07f7f; }
table.cb th { font-size:11px; white-space:nowrap; }
@media (max-width:900px) { .cal-busy { padding-left:0; border-left:0; } .cal-tb { flex-wrap:wrap; } .cf-table th { width:84px; } }

/* 11-10 예약(다우 예약 앱) */
.side-row { display:flex; align-items:center; } .side-row > a:first-child { flex:1; }
.side-gear { width:28px !important; padding:0 !important; display:inline-flex !important; justify-content:center; }
.side-gear { background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23888%27 stroke-width=%271.5%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%273%27/%3E%3Cpath d=%27M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1%27/%3E%3C/svg%3E") center/16px no-repeat; }
.side-gear .ico { display:none; }
.as-day tbody tr:not(:first-child) .as-now::before { display:none; }
.as-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 14px; }
.as-pills { display:flex; gap:6px; }
.as-pills a { height:32px; padding:0 13px; border:1px solid #ccc; border-radius:16px; display:inline-flex; align-items:center; color:var(--fg); text-decoration:none; font-size:14px; }
.as-pills a.on { background:#333; border-color:#333; color:#fff; }
.as-date { display:flex; align-items:center; gap:10px; } .as-date b { font-size:24px; font-weight:600; letter-spacing:-0.5px; }
.as-arw { width:32px; height:32px; border:1px solid #ddd; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#888; text-decoration:none; font-size:18px; }
.as-today { color:var(--fg); text-decoration:none; font-size:14px; }
.as-sel select { width:auto; height:32px; margin:0; }
.as-grid-wrap { overflow-x:auto; border:1px solid #e4e4e4; border-radius:8px; }
.as-grid { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; min-width:760px; }
.as-grid th, .as-grid td { border:1px solid #eee; padding:0; }
.as-grid thead th { height:32px; font-weight:400; color:#555; background:#fff; }
.as-grid .as-n { width:128px; text-align:left; padding:0 12px; font-weight:400; height:28px; } .as-grid .as-n a { color:var(--fg); text-decoration:none; }
.as-line { position:relative; height:28px; }
.as-track { position:relative; height:28px; }
.as-track > i { position:absolute; top:0; bottom:0; border-left:1px dashed #f0f0f0; }
.as-bar { position:absolute; top:3px; bottom:3px; background:#a9dbe5; border-radius:3px; font-size:11px; color:#1c1c1c; overflow:hidden; white-space:nowrap; padding:0 4px; text-decoration:none; line-height:22px; }
.as-bar.mine { background:#7cc7d6; }
.as-now { position:absolute; top:-4px; bottom:0; border-left:1px solid #1c1c1c; } .as-now::before { content:""; position:absolute; top:0; left:-4px; width:7px; height:7px; border-radius:50%; background:#1c1c1c; }
.as-week td { vertical-align:top; padding:4px; height:44px; } .as-week th.sun { color:#e53935; } .as-week th.sat { color:#1e73e8; } .as-week th.today { font-weight:700; }
.as-chip { display:block; background:#e6f4f7; border-radius:3px; padding:1px 4px; margin:0 0 2px; font-size:12px; color:#1c1c1c; text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .as-chip.mine { background:#bfe3ea; }
.as-h2 { font-size:18px; font-weight:500; margin:28px 0 8px; }
.as-ihead h1 { display:flex; align-items:center; }
.as-pick { position:relative; } .as-pick summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; }
.as-pick summary::-webkit-details-marker { display:none; }
.as-pick summary::after { content:""; width:20px; height:20px; border-radius:3px; background:#e4e4e4 url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 10 10%27%3E%3Cpath d=%27M2 3.5h6L5 7z%27 fill=%27%23555%27/%3E%3C/svg%3E") center/10px no-repeat; }
.as-pick ul { position:absolute; z-index:30; top:100%; left:0; list-style:none; margin:4px 0 0; padding:4px 0; background:#fff; border:1px solid #ddd; border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.1); min-width:180px; font-size:14px; font-weight:400; }
.as-pick li a { display:block; padding:6px 14px; color:var(--fg); text-decoration:none; } .as-pick li a:hover { background:var(--hover); } .as-pick li a.on { color:var(--accent); }
.as-wnav { display:flex; justify-content:center; align-items:center; gap:14px; margin:-6px 0 12px; } .as-wnav b { font-size:24px; font-weight:500; letter-spacing:-0.5px; }
.as-week-box { border:1px solid #e4e4e4; border-radius:12px; overflow:hidden; }
.as-whead, .as-wbody { display:grid; grid-template-columns:70px repeat(var(--n, 5), minmax(0, 1fr)); }
.as-whead { border-bottom:1px solid #e4e4e4; height:44px; align-items:center; text-align:center; font-size:14px; padding-right:14px; }
.as-whead .past { color:#999; } .as-whead b.today { background:#1c1c1c; color:#fff; border-radius:11px; padding:2px 9px; font-weight:400; }
.as-wbody { height:560px; overflow-y:auto; position:relative; }
.as-hours { display:grid; grid-template-rows:repeat(24, 60px); font-size:12px; text-align:center; color:#555; }
.as-hours span { border-top:1px solid #eee; padding-top:2px; }
.as-col { position:relative; display:grid; grid-template-rows:repeat(48, 30px); border-left:1px solid #eee; }
.as-slot { border:0; border-top:1px dashed #f0f0f0; background:none; padding:0; margin:0; width:100%; height:30px; cursor:pointer; border-radius:0; }
.as-slot:nth-child(odd) { border-top:1px solid #eee; } .as-slot:hover { background:#eef6f8; } .as-slot.off { background:#fafafa; cursor:default; }
.as-col.past .as-slot { background:#fcfcfc; }
.as-rv { position:absolute; left:2px; right:2px; background:#a9dbe5; border:0; border-radius:3px; font-size:12px; text-align:left; padding:2px 6px; margin:0; color:#1c1c1c; overflow:hidden; cursor:pointer; line-height:1.4; width:auto; }
.as-rv.mine { background:#7cc7d6; }
.as-dlg { position:fixed; inset:0; z-index:85; background:rgba(0,0,0,.3); display:flex; align-items:center; justify-content:center; }
.as-dlg[hidden] { display:none; }
.as-dbox { position:relative; background:#fff; border-radius:8px; width:min(690px, calc(100vw - 32px)); padding:24px; box-shadow:0 6px 30px rgba(0,0,0,.2); }
.as-dbox h2 { font-size:18px; font-weight:500; margin:0 0 24px; }
.cf-chg { width:auto; border:0; background:none; padding:0 4px; margin:0 0 0 6px; height:26px; font-size:13px; color:var(--fg); cursor:pointer; }
.cf-chg::before { content:"⇄ "; }
.as-t { width:95px !important; height:30px; margin:0; }
.as-addi { display:flex; gap:6px; margin-top:10px; } .as-addi input { flex:1; margin:0; } .as-ren input { width:220px; display:inline-block; margin:0; }
.cf-asset .as-box { border:1px solid #e4e4e4; border-radius:4px; background:#fafafa; margin-bottom:4px; }
.as-bt { width:100%; text-align:left; border:0; background:none; padding:8px 10px; margin:0; font-size:14px; color:var(--fg); display:flex; align-items:center; gap:8px; }
.as-bt::before { content:""; border:5px solid transparent; border-left-color:#555; margin-left:2px; }
.as-box.open .as-bt::before { border-left-color:transparent; border-top-color:#555; margin-top:4px; }
.as-box .cf-tags { padding:0 10px 6px; } .as-box .as-list { display:none; padding:4px 10px 10px; border-top:1px solid #eee; background:#fff; }
.as-box.open .as-list { display:flex; flex-wrap:wrap; gap:4px 16px; }
.as-list label.off { color:#aaa; }
@media (max-width:900px) { .as-date b, .as-wnav b { font-size:18px; } .as-whead, .as-wbody { grid-template-columns:44px repeat(var(--n, 5), minmax(56px, 1fr)); } .as-week-box { overflow-x:auto; } }

/* 11-10 메일(다우 메일 화면) */
.side-cnt { color:#888; font-size:12px; margin-left:4px; }
.side-empty { margin:0; } .side-empty button { width:auto; height:22px; padding:0 6px; margin:0 6px 0 0; border:1px solid #ddd; border-radius:3px; background:#fff; font-size:11px; color:#777; }
a.ml-sub { padding-left:36px !important; }
.ml-head { align-items:baseline; justify-content:flex-start !important; } .ml-head h1 { margin-right:12px; } .ml-cnt { color:#777; font-size:13px; border-left:1px solid #ddd; padding-left:12px; }
.ml-tools { display:flex; align-items:center; gap:4px; flex-wrap:wrap; padding:6px 0 8px; border-bottom:1px solid #333; }
.ml-tb { display:inline-flex; align-items:center; height:30px; padding:0 10px; border:1px solid #ddd; border-radius:6px; background:#fff; color:var(--fg); font-size:13px; width:auto; margin:0; text-decoration:none; cursor:pointer; }
.ml-tb:hover { background:var(--hover); }
.ml-ic { width:32px; padding:0; background:#fff url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23555%27 stroke-width=%271.6%27%3E%3Cpath d=%27M20 12a8 8 0 1 1-2.3-5.6M20 4v4h-4%27/%3E%3C/svg%3E") center/16px no-repeat; }
.ml-table col.ml-c { width:34px; } .ml-table col.ml-from { width:190px; } .ml-table col.ml-date { width:120px; } .ml-table col.ml-size { width:76px; }
.ml-all { display:inline-flex; align-items:center; height:30px; padding:0 8px; border:1px solid #ddd; border-radius:6px; margin:0; }
.ml-right { margin-left:auto; display:flex; align-items:center; gap:4px; }
.ml-search { display:inline-flex; align-items:center; border:1px solid #ddd; border-radius:6px; height:30px; overflow:hidden; }
.ml-search select { border:0; height:28px; width:auto; margin:0; font-size:12px; background:#fafafa; }
.ml-search input { border:0; height:28px; width:180px; margin:0; font-size:13px; }
.ml-size { width:auto; height:30px; margin:0; }
.ml-dd { position:relative; display:inline-block; }
.ml-ddb::after { content:""; border:4px solid transparent; border-top-color:#777; margin:4px 0 0 6px; }
.ml-ddm { display:none; position:absolute; z-index:30; top:100%; left:0; min-width:140px; background:#fff; border:1px solid #ddd; border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.1); padding:4px 0; }
.ml-dd.open .ml-ddm { display:block; }
.ml-ddm button { display:block; width:100%; text-align:left; border:0; background:none; padding:6px 14px; margin:0; font-size:13px; color:var(--fg); }
.ml-ddm button:hover { background:var(--hover); }
.ml-table { width:100%; border-collapse:collapse; font-size:14px; table-layout:fixed; }
.ml-table td { border-bottom:1px solid #eee; height:40px; padding:0 6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ml-table tr.ml-day td { height:32px; color:#777; font-size:12px; border-bottom:0; padding-top:8px; }
.ml-c { width:34px; text-align:center; } .ml-from { width:190px; } .ml-date { width:120px; text-align:right; color:#777; font-size:13px; } .ml-size { width:76px; text-align:right; color:#999; font-size:12px; }
.ml-subj a { color:#555; text-decoration:none; } .ml-table tr.unseen td { font-weight:600; } .ml-table tr.unseen .ml-subj a { color:#1c1c1c; }
.ml-table tr:hover td { background:#f8fbfc; }
.ml-flag { width:20px; height:20px; border:0; padding:0; margin:0; cursor:pointer;
  background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23aaa%27 stroke-width=%271.5%27%3E%3Cpath d=%27M5 21V4h11l-1.5 4L16 12H5%27/%3E%3C/svg%3E") center/18px no-repeat; }
.ml-flag.on { background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27%23f04848%27 stroke=%27%23f04848%27 stroke-width=%271.5%27%3E%3Cpath d=%27M5 21V4h11l-1.5 4L16 12H5%27/%3E%3C/svg%3E"); }
.ml-att { display:inline-block; width:14px; height:14px; vertical-align:-2px;
  background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23888%27 stroke-width=%271.6%27%3E%3Cpath d=%27M21 11.5l-8.5 8.5a5 5 0 0 1-7-7l9-9a3.3 3.3 0 0 1 4.7 4.7l-9 9a1.7 1.7 0 0 1-2.4-2.4l8.3-8.3%27/%3E%3C/svg%3E") center/14px no-repeat; }
.ml-re { font-style:normal; color:#888; margin-right:4px; }
.ml-pager { justify-content:center; margin:16px 0; }
.ml-quota { font-size:12px; color:#777; display:flex; align-items:center; gap:8px; } .ml-qbar { width:120px; height:6px; background:#eee; border-radius:3px; overflow:hidden; } .ml-qbar i { display:block; height:100%; background:var(--accent); }
.mv-tools { border-bottom:1px solid #e4e4e4; }
.mv-head { padding:16px 0 8px; border-bottom:1px solid #e4e4e4; }
.mv-head h1 { font-size:20px; font-weight:600; display:flex; align-items:center; gap:6px; margin:0 0 12px; }
.mv-meta th { width:80px; text-align:left; font-weight:400; color:#777; font-size:13px; padding:3px 0; vertical-align:top; } .mv-meta td { font-size:13px; padding:3px 0; }
.mv-atts { margin-top:10px; background:#f7f8f9; border-radius:6px; padding:10px 14px; font-size:13px; } .mv-atts ul { list-style:none; margin:6px 0 0; padding:0; } .mv-atts li { margin:2px 0; }
.mv-body { width:100%; min-height:300px; border:0; display:block; margin-top:8px; }
.mw-tools { border-bottom:0; } .mw-send { background:var(--accent); border-color:var(--accent); color:#fff; }
.mw-table th { width:110px; } .mw-rcpt { display:flex; align-items:center; gap:6px; } .mw-rcpt input:not([type=checkbox]) { flex:1; margin:0; height:32px; }
.mw-plus { width:20px; height:20px; border:0; background:none; padding:0; margin:0; color:#777; font-size:14px; cursor:pointer; }
.mw-imp { color:#f04848; }
.mw-filebar { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; } .mw-pick { cursor:pointer; display:inline-flex; align-items:center; }
.mw-drop { border:1px solid #ddd; border-radius:6px; min-height:56px; padding:8px 12px; text-align:center; } .mw-drop.on { border-color:var(--accent); background:#f0f9fb; }
.mw-drop p { margin:10px 0; } .mw-flist { list-style:none; padding:0; margin:0; text-align:left; font-size:13px; } .mw-flist li { display:flex; align-items:center; gap:6px; }
.mw-pv { width:min(900px, 92vw); height:80vh; padding:0; border:0; border-radius:8px; } .mw-pvh { display:flex; justify-content:space-between; padding:12px 16px; border-bottom:1px solid #eee; position:relative; }
.mw-pv iframe { width:100%; height:calc(100% - 50px); border:0; }
.ml-done { text-align:center; padding:60px 0; } .ml-done h1 { font-size:22px; }
.form-narrow { max-width:420px; }
@media (max-width:900px) { .ml-from { width:90px; } .ml-date { width:70px; } .ml-size { display:none; } .ml-search input { width:110px; } .ml-right { margin-left:0; } }
.mw-pick { border:1px solid #ddd; border-radius:4px; height:30px; padding:0 10px; background:#fff; font-size:13px; }

/* 11-10 2차 대조: 결재 환경설정 서명 미리보기 */
.ap-signbox { border-collapse:collapse; display:inline-table; margin:0 12px 6px 0; vertical-align:middle; text-align:center; font-size:12px; }
.ap-signbox th, .ap-signbox td { border:1px solid #ccc; padding:4px 14px; font-weight:400; min-width:80px; }
.ap-signup { display:inline-flex; vertical-align:middle; } .ap-signup .btn-s { cursor:pointer; display:inline-flex; align-items:center; height:28px; border:1px solid #ccc; border-radius:4px; padding:0 10px; }
.ap-imgset label { margin:3px 0; }

/* 11-10 2차 대조: 게시판 글 보기(다우 게시판 정보 상자·위/아래·목록, 글 아래 게시판 목록) */
.bd-vtools { display:flex; justify-content:space-between; align-items:center; gap:6px; padding:6px 0 10px; }
.bd-vtools > span { display:flex; gap:4px; } .ml-tb.off { color:#bbb; cursor:default; }
.bd-around { margin-top:18px; } .bd-around tr.on td { background:#eef6f8; font-weight:600; }
.bd-mback { display:none; }
@media (max-width:900px) { .bd-vhead, .bd-vtools { display:none; } .bd-mback { display:block; } }

/* 11-10 2차 대조: 연락처 추가 그룹추가·상세주소입력 창 */
.ct-gadd { position:relative; display:inline-block; }
.ct-gpop, .ct-addrpop { position:absolute; z-index:40; background:#fff; border:1px solid #ccc; border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.12); padding:10px 12px; display:flex; gap:6px; align-items:center; white-space:nowrap; }
.ct-gpop[hidden], .ct-addrpop[hidden] { display:none; }
.ct-gpop b, .ct-addrpop b { font-size:13px; margin-right:4px; }
.ct-gpop input { width:140px; margin:0; height:28px; }
.ct-addr { display:flex; gap:6px; } .ct-addr input { flex:1; margin:0; }
.ct-addrpop { position:relative; flex-direction:column; align-items:stretch; margin-top:6px; max-width:420px; }
.ct-addrpop label { display:flex; align-items:center; gap:8px; font-size:13px; } .ct-addrpop label input { flex:1; margin:0; height:28px; }

/* 11-10 2차 대조: Works 글 보기 데이터 복사·인쇄·접기·활동기록 쓰기 */
.wk-fold { font-size:13px; margin-left:8px; } .wk-actbar { margin:0 0 8px; }
.daou-form .dsl-hm { width:auto; display:inline-flex; align-items:center; gap:4px; } .daou-form .dsl-hm select { width:auto; margin:0; height:28px; }
.ap-autosave { width:auto; height:30px; margin:0 6px 0 0; font-size:13px; }

/* 11-10 2차 대조: 결재 홈(다우) */
.ah-todo, .ah-sec { margin:0 0 30px; } .ah-todo h2, .ah-sec h2 { font-size:18px; font-weight:500; margin:0 0 10px; display:flex; align-items:center; gap:4px; }
.ah-empty { border-top:1px solid #e4e4e4; border-bottom:1px solid #e4e4e4; padding:50px 0; text-align:center; color:#777; }
.ah-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:12px; }
.ah-card { display:flex; flex-direction:column; gap:4px; border:1px solid #e4e4e4; border-radius:10px; padding:14px; text-decoration:none; color:var(--fg); }
.ah-card:hover { border-color:var(--accent); } .ah-form { font-size:12px; color:#777; } .ah-title { font-size:15px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ah-go { margin-top:6px; align-self:flex-start; border:1px solid var(--accent); color:var(--accent); border-radius:4px; padding:2px 10px; font-size:13px; }

.qi-mail { --qi:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27%3E%3Cpath d=%27M3.5 6h17v12h-17zM3.5 6.5l8.5 6.5 8.5-6.5%27/%3E%3C/svg%3E"); }
.qi-survey { --qi:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27%3E%3Cpath d=%27M12 3a9 9 0 1 0 9 9h-9z%27/%3E%3Cpath d=%27M15 3.5A9 9 0 0 1 20.5 9H15z%27/%3E%3C/svg%3E"); }

/* 11-10 2차 대조: 휴대폰 캘린더 = 다우 앱(주간↔월간 한 단추·네모 오늘·테두리 없는 달력·토요일 파랑) */
@media (max-width:900px) {
  .cal-tools .bd-pills a.on { display:none; }
  .cal-tools .bd-pills a { border-radius:4px; border:1px solid #bbb; background:#fff; color:#1c1c1c; height:32px; padding:0 8px; }
  .cal-tools .cal-arrow { border:0 !important; background:none !important; width:24px; font-size:22px; color:#555; }
  .cal-tools .cal-today { border:1px solid #bbb; border-radius:4px; height:32px; padding:0 8px; display:inline-flex; align-items:center; }
  .calwrap2 { border:0; border-radius:0; }
  .calwrap2 table.month td.sat .dn a, .calwrap2 table.month td.sat .dn { color:#1f5fa8; }
}

/* 11-10 2차 대조: 휴대폰 보고 = 다우 앱(제목 '보고', 두 탭 반반·선택 탭 청록 밑줄) */
@media (max-width:900px) {
  .rp-mtabs { display:flex; margin:0; } .rp-mtabs a { flex:1; text-align:center; padding:12px 0; color:#999; border-bottom:1px solid #e4e4e4; }
  .rp-mtabs a.on { color:var(--accent); font-weight:600; border-bottom:2px solid var(--accent); }
}

/* 11-10 2차 대조: 휴대폰 Works 홈 = 다우 앱(카드에 ⚙ 없음, 정렬·목록형 단추 없음) */
@media (max-width:900px) { .wk-gear, #wk-sort { display:none !important; } }

/* 11-11 로그인 '비밀번호 초기화'(다우) */
.login-sub { text-align:right; margin:8px 0 0; } .linkish { background:none; border:0; padding:0; color:#666; text-decoration:underline; cursor:pointer; font-size:13px; }
.pr-dlg { border:0; border-radius:12px; padding:24px; width:min(440px, calc(100vw - 32px)); box-shadow:0 10px 40px rgba(0,0,0,.25); }
.pr-dlg h2 { font-size:18px; margin:0 0 12px; } .pr-dlg p { font-size:14px; }
.pr-row { display:flex; gap:8px; } .pr-row input { flex:1; min-width:0; }
.pr-ways { display:flex; gap:12px; align-items:center; border-top:1px solid #eee; border-bottom:1px solid #eee; padding:16px 0; margin:16px 0; flex-wrap:wrap; }
.pr-lab { font-size:14px; } .pr-dlg label { display:block; margin:8px 0; } .pr-dlg .actions { display:flex; justify-content:flex-end; gap:8px; }
.pr-dlg [hidden] { display:none !important; } .pr-row button { flex-shrink:0; white-space:nowrap; }

/* 11-11 캘린더 목록 '15일 더보기'(다우) */
.cal-more { display:flex; justify-content:center; align-items:center; gap:10px; margin:14px 0; }

/* 11-11 휴가현황 '자세히 보기'(다우 연차 상세 보기) */
.lv-detail-open { margin-top:6px; } .lv-detail { width:min(560px, calc(100vw - 32px)); } .lv-detail h3 { font-size:15px; margin:14px 0 6px; }

/* 11-11 피드 '메일알림 · 이메일 수신자'(다우) */
.bd-mailto { font-size:13px; color:#555; }

/* 11-11 공문(다우 공문서 수신처·공문 발송 설정) */
.ofc-pane .ofc-found { max-height:180px; overflow:auto; } .ofc-picks { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; margin:10px 0; }
.ofc-picks label { display:flex; flex-direction:column; font-size:13px; } .ofc-seal { height:48px; } .ofc-comps { display:flex; flex-wrap:wrap; gap:4px; }
.ofc-forms select { max-width:160px; } .ofc-form { border-top:1px solid #eee; margin-top:14px; padding-top:10px; }
.ofc-doc { margin:14px 0; }

/* 11-11 Works 앱 만들기(다우): 템플릿 카드·앱 관리 홈·입력 화면 디자이너 */
.wk-tsec { margin:0 0 26px; } .wk-tsec h2 { font-size:17px; margin:0 0 4px; }
.wk-tcards { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:10px; }
.wk-tcard { display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; background:#fff; border:1px solid #e4e4e4; border-radius:10px; padding:12px; cursor:pointer; }
.wk-tcard:hover { border-color:var(--accent); } .wk-tcard img { width:36px; height:36px; } .wk-tcard small { color:#777; font-size:12px; line-height:1.4; max-height:4.2em; overflow:hidden; }
.wk-mng { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; margin:12px 0; }
.wk-mng-t { display:flex; flex-direction:column; gap:6px; text-decoration:none; color:var(--fg); } .wk-mng-t:hover { border-color:var(--accent); } .wk-mng-t small { color:#777; }
.wk-icons { display:flex; flex-wrap:wrap; gap:6px; } .wk-icons label { display:flex; align-items:center; gap:2px; } .wk-icons img { width:32px; height:32px; }
.wd { display:grid; grid-template-columns:170px 1fr 260px; gap:14px; align-items:start; }
.wd-pal, .wd-prop { position:sticky; top:70px; background:#fafafa; border:1px solid #e4e4e4; border-radius:8px; padding:10px; }
.wd-pal h2, .wd-prop h2 { font-size:14px; margin:0 0 8px; } .wd-pal-g { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.wd-pi { text-align:left; background:#fff; border:1px solid #ddd; border-radius:4px; padding:5px 8px; cursor:grab; font-size:13px; }
.wd-canvas { background:#fff; border:1px solid #e4e4e4; border-radius:8px; padding:12px; min-height:420px; }
.wd-zone { min-height:40px; } .wd-root { min-height:380px; } .wd-over { outline:2px dashed var(--accent); outline-offset:2px; }
.wd-it { position:relative; border:1px solid transparent; border-radius:6px; padding:8px 8px 8px; margin:4px 0; cursor:pointer; background:#fff; }
.wd-it:hover { border-color:#cfd8e3; } .wd-it.on { border-color:var(--accent); background:#f5f9ff; }
.wd-it b { display:block; font-size:13px; margin:0 0 4px; } .wd-tag { position:absolute; right:6px; top:4px; font-size:11px; color:#999; }
.wd-box { border:1px solid #d6d6d6; border-radius:4px; height:30px; padding:5px 8px; color:#aaa; font-size:12px; background:#fff; }
.wd-opts { display:flex; flex-wrap:wrap; gap:10px; font-size:13px; color:#555; } .wd-blank { height:24px; }
.wd-cols { display:flex; gap:10px; } .wd-col { flex:1; border:1px dashed #d6d6d6; border-radius:6px; padding:4px; min-height:60px; }
.wd-prop label { display:block; margin:6px 0; font-size:13px; } .wd-prop input:not([type=checkbox]), .wd-prop textarea, .wd-prop select { width:100%; }
@media (max-width: 900px) { .wd { grid-template-columns:1fr; } .wd-pal, .wd-prop { position:static; } .wd-pal-g { flex-direction:row; flex-wrap:wrap; } }
.wk-tcard { min-width:0; white-space:normal; } .wk-tcard small { white-space:normal; word-break:keep-all; overflow-wrap:anywhere; width:100%; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }

/* 11-11 메일 2판(다우 전수 대조): 태그·정렬/뷰 메뉴·상세검색·분할 보기·보낸사람 메뉴·쓰기 도구·환경설정 탭 */
.ml-tagdot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.ml-tagchip { display:inline-block; font-size:11px; border-radius:3px; padding:0 5px; margin-left:4px; color:#fff; background:var(--c); vertical-align:middle; }
.ml-pf b.meta { display:block; padding:4px 10px 2px; font-size:12px; } .ml-ddm button.on, .ml-ddm a.on { font-weight:700; color:var(--accent); }
.ml-ddm a { display:block; padding:6px 12px; color:var(--fg); text-decoration:none; white-space:nowrap; }
.ml-selall { background:#f3f7fd; border:1px solid #dbe6f5; padding:6px 10px; margin:4px 0; font-size:13px; }
.ml-ds { margin:8px 0 14px; } .ml-ds-row { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin:6px 0; } .ml-ds-row label { display:flex; flex-direction:column; font-size:13px; }
.ml-who { background:none; border:0; padding:0; cursor:pointer; color:inherit; font:inherit; } .ml-who:hover { text-decoration:underline; }
.ml-whomenu { position:absolute; z-index:50; background:#fff; border:1px solid #ddd; border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.12); padding:4px 0; }
.ml-whomenu a { display:block; padding:6px 14px; color:var(--fg); text-decoration:none; } .ml-whomenu a:hover { background:#f5f5f5; }
.ml-who-acts { font-size:12px; margin-left:8px; } .ml-who-acts a { color:#777; }
.ml-wide .ml-table td { padding-top:10px; padding-bottom:10px; } .ml-table tr.sel { background:#eef5ff; }
.ml-wrap.ml-vsplit { display:grid; grid-template-columns:minmax(380px, 45%) 1fr; gap:10px; align-items:start; }
.ml-wrap.ml-vsplit col.ml-from { width:120px; } .ml-pane { width:100%; border:1px solid #e4e4e4; border-radius:6px; background:#fff; }
.ml-wrap.ml-vsplit .ml-pane { height:calc(100vh - 220px); position:sticky; top:70px; } .ml-wrap.ml-hsplit .ml-pane { height:520px; margin-top:10px; }
body.embed { background:#fff; } .embed-main { padding:10px 14px; max-width:none; }
.mw-mode { display:inline-flex; border:1px solid #ccc; border-radius:4px; overflow:hidden; } .mw-mode button { border:0; background:#fff; padding:3px 10px; font-size:12px; cursor:pointer; }
.mw-mode button.on { background:var(--accent); color:#fff; } #mw-text { width:100%; font-family:monospace; }
.ms-tabs { margin-bottom:12px; flex-wrap:wrap; } .ms-sig { margin:10px 0; } .ms-form .form-table input:not([type=radio]):not([type=checkbox]) { max-width:420px; }
@media (max-width: 900px) { .ml-wrap.ml-vsplit { display:block; } .ml-wrap.ml-vsplit .ml-pane { position:static; height:420px; } }

/* 11-11 사람 정보 창(다우 프로필 카드)·내 정보 관리 */
[data-pc-uid], [data-pc-name] { cursor:pointer; }
.pcard { position:absolute; z-index:200; width:280px; background:#fff; border:1px solid #ddd; border-radius:10px; box-shadow:0 8px 28px rgba(0,0,0,.16); padding:14px; font-size:13px; }
.pcard-top { display:flex; gap:10px; align-items:center; } .pcard-top img, .pcard-ini { width:52px; height:52px; border-radius:50%; object-fit:cover; flex:none; }
.pcard-ini { display:flex; align-items:center; justify-content:center; background:#e8eef7; font-weight:700; font-size:20px; }
.pcard dl { display:grid; grid-template-columns:64px 1fr; gap:4px 8px; margin:10px 0; } .pcard dt { color:#888; } .pcard dd { margin:0; word-break:break-all; }
.pcard-acts { display:flex; gap:6px; flex-wrap:wrap; }
.me-prof { display:flex; gap:14px; align-items:center; margin-bottom:12px; } .me-name { font-size:18px; } .me-ext { display:inline-block; margin-left:8px; }
