:root{--ink:#1B1B1F;--ink-2:#6E6E76;--line:#E7E4E2;--bg:#FFFFFF;--surface:#F8F6F5;--accent:#D9455F;--accent-d:#B8334B;--ok:#2E7D5B;--warn:#B26A00}*{box-sizing:border-box}html,body{margin:0}body{background:var(--surface);color:var(--ink);font:15px -apple-system,"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕",system-ui,sans-serif}.admin-nav{height:68px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:stretch;justify-content:space-between;gap:30px;background:#fff;border-bottom:1px solid var(--line)}.admin-nav a{text-decoration:none;color:var(--ink-2)}.admin-nav .brand{display:flex;align-items:center;color:var(--ink);font-size:19px;font-weight:800;white-space:nowrap}.admin-nav nav{display:flex;align-items:stretch;gap:26px}.admin-nav nav a{position:relative;display:flex;align-items:center;font-weight:650;white-space:nowrap}.admin-nav nav a.active{color:var(--ink)}.admin-nav nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:3px;background:var(--accent)}main{max-width:1240px;margin:0 auto;padding:38px 24px 70px}.page-head{margin-bottom:24px}.eyebrow{margin:0 0 7px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.12em}.page-head h1{margin:0;font-size:30px;letter-spacing:-.03em}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin:18px 0;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:auto}.table-card{padding:0;max-height:70vh}table{width:100%;border-collapse:separate;border-spacing:0}th,td{height:58px;padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{position:sticky;z-index:2;top:0;background:#fff;color:var(--ink-2);font-size:13px;font-weight:700}tr:last-child td{border-bottom:0}.table-link{color:var(--ink);font-weight:700;text-decoration:none}.table-link:hover{color:var(--accent)}code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-2)}input,select,textarea,button{min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,69,95,.1)}input[type=text],input[type=url],input[type=datetime-local],input[type=password],textarea{width:100%}textarea{min-height:90px;resize:vertical}label{display:block;margin:11px 0;color:var(--ink-2);font-size:13px;font-weight:650}label input,label select,label textarea{margin-top:7px;color:var(--ink);font-weight:400}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}.filterbar{display:flex;align-items:end;gap:12px}.filterbar label{flex:1;margin:0}.filterbar label:first-child{flex:2}.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:10px 0}.actions form{display:flex;gap:8px}.btn,button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;text-decoration:none;cursor:pointer;font-weight:700}.primary,.btn.primary,form>button:not(.danger){background:var(--accent);border-color:var(--accent);color:#fff}.primary:active{background:var(--accent-d)}.danger{color:var(--accent);background:#fff;border-color:rgba(217,69,95,.4)}.badge,.status{display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:750}.badge{background:#fdecef;color:var(--accent)}.status-public{background:#e9f5ef;color:var(--ok)}.status-draft{background:#efeff1;color:var(--ink-2)}.status-archived{background:#fff1dd;color:var(--warn)}.masked{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-thumb{display:block;width:48px;height:58px;object-fit:cover;object-position:top;border-radius:8px;background:var(--surface)}.admin-thumb.empty{display:grid;place-items:center;color:var(--ink-2)}.copyrow{display:flex;gap:8px;margin:6px 0 14px}.copyrow input{flex:1;min-width:0;background:var(--surface);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.copyrow button{flex:0 0 82px}.blockrow{display:grid;grid-template-columns:54px minmax(160px,1fr) auto;gap:14px;align-items:center;border-top:1px solid var(--line);padding:14px 0}.blockrow>div{min-width:0}.blockrow img{display:block;width:96px;height:112px;object-fit:cover;object-position:top;border-radius:10px}.blockrow form{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.metric span,.metric small{display:block;color:var(--ink-2)}.metric strong{display:block;margin:10px 0 5px;font-size:34px;letter-spacing:-.04em}.metric.accent strong{color:var(--accent)}.rate{display:flex;align-items:center;gap:10px}.rate-track{width:110px;height:7px;border-radius:99px;background:var(--line);overflow:hidden}.rate-track i{display:block;height:100%;border-radius:99px;background:var(--accent)}.rate b{min-width:48px;font-size:13px}.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--surface)}.login{width:100%;max-width:420px}.login-card{padding:38px}.login-card h1{margin:0;font-size:28px}.login-copy{margin:7px 0 28px;color:var(--ink-2)}.login-card form button{width:100%;margin-top:12px}.error{padding:12px;border-radius:10px;background:#fdecef;color:var(--accent)}
@media(max-width:800px){.admin-nav{height:auto;min-height:64px;padding:0 16px;display:block}.admin-nav .brand{height:52px}.admin-nav nav{gap:20px;overflow:auto}.admin-nav nav a{height:46px}main{padding:28px 14px 50px}.grid{grid-template-columns:1fr}.filterbar{align-items:stretch;flex-direction:column}.filterbar label,.filterbar label:first-child,.filterbar button{width:100%}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blockrow{grid-template-columns:42px 1fr}.blockrow form{grid-column:1/-1;justify-content:flex-start}}@media(max-width:460px){.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:16px}.metric strong{font-size:26px}.login-card{padding:28px 22px}.copyrow{align-items:stretch}.copyrow button{flex-basis:70px;padding:8px}}

/* 목록에서 실제 페이지 열기 */
.view-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.view-link code{color:var(--ink-2,#6E6E76);font-size:12px}
.view-go{display:inline-block;padding:5px 11px;border:1px solid var(--accent,#D9455F);border-radius:999px;color:var(--accent,#D9455F);font-size:13px;font-weight:600;white-space:nowrap}
.view-link:hover .view-go{background:var(--accent,#D9455F);color:#fff}

/* ── 2026-09-10 간격 손보기 (대표 지적: 글씨와 입력칸이 너무 붙어 있다) ───────── */

/* 이름표와 입력칸 사이를 벌리고, 항목끼리도 벌린다 */
label{margin:0 0 20px;line-height:1.45}
label input,label select,label textarea{margin-top:9px}

/* 입력칸 자체를 키우고 글자가 테두리에 닿지 않게 안쪽 여백을 준다 */
input,select,textarea{min-height:46px;padding:12px 14px;line-height:1.4}
textarea{padding:12px 14px}

/* 고르개(드롭다운)는 오른쪽 화살표에 글자가 닿지 않게 더 벌린다 */
select{padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,#6E6E76 50%),linear-gradient(135deg,#6E6E76 50%,transparent 50%);background-position:calc(100% - 19px) calc(50% - 2px),calc(100% - 14px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;-webkit-appearance:none;appearance:none}

/* 두 칸짜리 검색 판 — 위아래 간격 */
.grid{gap:2px 24px}
.filterbar{gap:18px}
.filterbar label{margin:0}
.filterbar button{margin-bottom:0}

/* 카드 안쪽을 조금 더 넉넉히 */
.card{padding:26px}

/* 주소 복사 줄 */
.copyrow{margin:8px 0 18px;gap:10px}

/* 로그인 화면 */
.login-card{padding:42px 38px}
.login-copy{margin:8px 0 32px}
.login-card form label{margin-bottom:22px}
.login-card form button{margin-top:6px;min-height:50px}
.login-card .error:empty{display:none}

@media(max-width:800px){
  .card{padding:20px}
  label{margin-bottom:18px}
  .filterbar{gap:0}
  .filterbar label{margin-bottom:16px}
}

/* 이름표 안에 든 입력칸은 무조건 한 줄을 통째로 쓴다.
   전에는 type 이 없는 <input> 이 규칙에서 빠져 이름표 옆에 좁게 붙었다. */
label>input,label>select,label>textarea{display:block;width:100%}
.filterbar label>input,.filterbar label>select{width:100%}

/* 입력칸 아래 설명글 */
.hint{margin:-12px 0 20px;color:var(--ink-2);font-size:13px;line-height:1.6}
.hint code{background:var(--surface);padding:2px 6px;border-radius:6px}
label small{margin-left:6px;color:var(--ink-2);font-weight:400}
label>input[type=file]{padding:11px 14px;background:var(--surface);cursor:pointer}
.lock-banner{margin:-28px -28px 24px;padding:14px 28px;background:#8b1e31;color:#fff;font-weight:750}.lock-banner a{color:#fff;text-decoration:underline}.warning{padding:14px;border-radius:10px;background:#fff4dd;color:#774900}.success-text{color:#2E7D5B;font-weight:700}

/* 2026-09-10 — 체크박스는 글자 옆에 작게 둔다.
   앞서 넣은 `label>input{display:block;width:100%}` 이 체크박스에까지 걸려
   네모가 화면 폭만큼 부풀어 있었다(매체 설정 화면에서 눈에 띄었다). */
label>input[type=checkbox],
label>input[type=radio]{
  display:inline-block;width:18px;height:18px;min-height:0;
  margin:0;padding:0;flex:0 0 auto;accent-color:var(--accent);cursor:pointer
}
label.check{
  display:flex;align-items:center;gap:10px;
  margin:0 0 20px;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer
}
label.check>input{margin-top:0}

/* 매체 더하기 판 — 한 줄에 늘어놓는다 */
.channel-form{display:grid;grid-template-columns:1.4fr 1fr 1fr .6fr auto auto;gap:0 16px;align-items:end}
.channel-form label{margin-bottom:0}
.channel-form .check{margin-bottom:9px;white-space:nowrap}
.channel-form button{margin-bottom:0}
@media(max-width:900px){
  .channel-form{grid-template-columns:1fr 1fr;gap:0 14px}
  .channel-form button{grid-column:1/-1;margin-top:8px}
}
/* 체크박스가 들어 있는 이름표는 한 줄로 (class 를 못 단 곳까지 덮는다) */
label:has(> input[type=checkbox]){display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:600}
label:has(> input[type=checkbox])>input{margin-top:0}

/* 2026-09-10 — 관리자 화면에 가로 스크롤이 생기지 않게 한다 (대표 지적: 매체 설정).
   원인 둘 — ① 표 칸에 white-space:nowrap 이 걸려 있어 폭이 밀린다
             ② 격자 칸(grid item)은 기본 min-width:auto 라 안의 입력칸이 줄지 않는다 */
html,body{max-width:100%;overflow-x:hidden}
main{min-width:0}
.card{overflow-x:auto;overflow-y:visible}
.card>table{min-width:0;table-layout:auto}
th,td{white-space:normal;word-break:break-word;overflow-wrap:anywhere}
th:first-child,td:first-child{white-space:nowrap}
td code{overflow-wrap:anywhere}

/* 격자 안의 칸이 줄어들 수 있게 */
.channel-form,.grid,.filterbar{min-width:0}
.channel-form>*,.grid>*,.filterbar>*{min-width:0}
.channel-form input,.grid input,.grid select,.filterbar input,.filterbar select{width:100%;min-width:0}

/* 매체 표 — 작업 단추가 줄바꿈되게 */
.channel-actions{display:flex;flex-wrap:wrap;gap:6px}
.channel-actions form{display:inline-flex;gap:6px;flex-wrap:wrap}
.channel-actions button{padding:7px 12px;min-height:36px;font-size:13px}

@media(max-width:1100px){
  .channel-form{grid-template-columns:1fr 1fr;gap:0 14px}
  .channel-form>button{grid-column:1/-1}
}
@media(max-width:640px){
  .channel-form{grid-template-columns:1fr}
  th,td{padding:10px 8px;font-size:13px}
}
.privacy-banner{margin:0 0 18px;padding:14px 18px;border-radius:12px;background:#fff1dd;color:#7a4800;font-weight:800;overflow-wrap:anywhere}.quick-edit,.channel-form,.done-actions,.pagination{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}.quick-edit>*{min-width:0}.quick-edit input{width:min(130px,100%)}.pagination{justify-content:center;margin:20px 0}.pagination a{padding:8px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink)}.pagination a.active{background:var(--accent);color:#fff}.consent-original{white-space:pre-wrap;overflow-wrap:anywhere}.inline{display:inline-flex;margin:6px}

/* 2026-09-10 — 매체 설정 — 줄 하나에 매체 하나 (대표 지적: 배치가 별로다) */
.chan-intro{margin:-6px 0 18px;color:var(--ink-2);font-size:14px;line-height:1.65}
.chan-intro code{background:var(--surface);padding:2px 7px;border-radius:6px;font-size:12px}

.chan-add{display:grid;grid-template-columns:1.3fr 1fr 1fr 90px auto;gap:0 14px;align-items:end}
.chan-add>*{min-width:0}
.chan-add label{margin:0}
.chan-add button{margin:0;height:46px}
@media(max-width:860px){.chan-add{grid-template-columns:1fr 1fr}.chan-add>button{grid-column:1/-1;margin-top:12px}}
@media(max-width:520px){.chan-add{grid-template-columns:1fr}}

.chan-list{display:flex;flex-direction:column;gap:0}
.chan-row{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;
  padding:16px 4px;border-top:1px solid var(--line)}
.chan-row:first-child{border-top:0}
.chan-row.off{opacity:.55}
.chan-row>*{min-width:0}

.chan-move{display:flex;flex-direction:column;gap:4px}
.chan-move button{min-height:22px;height:22px;padding:0;width:38px;font-size:11px;line-height:1;
  border-radius:7px;color:var(--ink-2)}

.chan-name{display:block;font-size:16px;font-weight:700;margin-bottom:5px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chan-utm{display:inline-block;max-width:100%;background:var(--surface);border-radius:7px;
  padding:4px 9px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-2);
  overflow-wrap:anywhere}
.chan-used{display:block;margin-top:6px;color:var(--ink-2);font-size:12px}

.chan-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.chan-side form{display:inline-flex;gap:8px}
.chan-side button{min-height:38px;padding:8px 14px;font-size:13px;white-space:nowrap}
.pill-on{background:#e9f5ef;color:var(--ok);border:0}
.pill-off{background:#efeff1;color:var(--ink-2);border:0}

.chan-edit{grid-column:1/-1;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);
  display:grid;grid-template-columns:1.3fr 1fr 1fr 90px auto;gap:0 14px;align-items:end}
.chan-edit>*{min-width:0}
.chan-edit label{margin:0}
.chan-edit button{margin:0;height:46px}
.chan-edit .locked{color:var(--ink-2);font-size:12px;margin-top:6px}
@media(max-width:860px){.chan-edit{grid-template-columns:1fr 1fr}.chan-edit>button{grid-column:1/-1;margin-top:12px}}
@media(max-width:640px){
  .chan-row{grid-template-columns:36px 1fr;gap:10px}
  .chan-side{grid-column:1/-1;justify-content:flex-start;margin-top:10px}
  .chan-edit{grid-template-columns:1fr}
}
/* [hidden] 은 display 를 준 규칙에 밀린다. 접힌 편집칸은 확실히 감춘다. */
.chan-edit[hidden],[hidden]{display:none !important}
.admin-nav>*{min-width:0}.card,.card>*{max-width:100%;min-width:0}.card{overflow-x:hidden}.card table{table-layout:fixed}.card th,.card td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.card input,.card select,.card textarea{max-width:100%;min-width:0}.new-lead-badge{position:absolute;right:18px;top:58px;z-index:20;padding:7px 13px;border-radius:999px;background:#d9455f;color:#fff;text-decoration:none;font-size:13px;font-weight:800;box-shadow:0 3px 12px #0002}.lead-note{padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.lead-note:first-of-type{border-top:0}.lead-note p{margin:0 0 7px;color:var(--ink-2);font-size:13px}
.review-expired{margin-left:7px;background:#fff0a8;color:#684f00}

/* 로그인을 꺼 둔 동안 띄우는 경고 띠 (대표 지시로 잠깐 꺼 둠 — 실제 운용 전 반드시 켠다) */
.open-warn{margin:0 0 20px;padding:14px 18px;border-radius:12px;line-height:1.6;
  background:#fdecef;color:#8e1b30;border:1px solid rgba(217,69,95,.35);font-size:14px}
.open-warn b{color:#8e1b30}

/* 로그인을 꺼 둔 동안의 표시 */
.warn-red{color:#c62b45;font-weight:700}
.inline-form{display:inline;margin-left:10px}

/* 관리자 쪽 안내·오류 화면 */
.notice-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--surface)}
.notice-card{width:100%;max-width:520px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:40px 36px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.notice-card h1{margin:6px 0 26px;font-size:22px;line-height:1.5}
.notice-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* 매체 줄의 단추를 같은 자리에 — 줄마다 개수가 달라 어긋나 보이던 것을 잡는다 */
.chan-side{gap:10px}
.chan-side .status{min-width:46px;justify-content:center}
.chan-side button{min-width:74px;justify-content:center}
.chan-side button[disabled]{opacity:.4;cursor:not-allowed;border-color:var(--line);color:var(--ink-2);background:var(--surface)}
.chan-row.off .chan-name{color:var(--ink-2)}
.chan-used{color:var(--ink-2)}
/* 매체 줄 — 「지금 켜져 있나」가 한눈에 보이게 (대표 지적: 상태가 헷갈린다)
   전에는 상태 표가 작고 흐린데 옆의 붉은 「끄기」 단추가 더 도드라져,
   그 단추 색을 상태로 잘못 읽기 쉬웠다. 상태를 키우고 동작 단추는 눌러 놓는다. */
.chan-side .status{min-width:58px;height:34px;font-size:14px;font-weight:800;letter-spacing:.02em}
.chan-side .pill-on{background:#e4f4ec;color:#1f6b4c;box-shadow:inset 0 0 0 1px rgba(31,107,76,.25)}
.chan-side .pill-off{background:#efeff1;color:#8a8a92;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}

/* 켜기·끄기는 「동작」이지 「상태」가 아니다 — 눈에 덜 띄게 테두리 단추로 */
.chan-side form button{background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:600}
.chan-side form button:hover{border-color:var(--ink-2)}
.chan-row.off{opacity:1;background:var(--surface);border-radius:12px}
.chan-row.off .chan-name{color:var(--ink-2)}
.chan-row.off .chan-utm{opacity:.7}

/* 못 누르는 지우기 — 왜 못 누르는지 옆에 적어 준다 */
.chan-side .danger[disabled]{position:relative}
.chan-nodelete{display:block;margin-top:4px;color:var(--ink-2);font-size:12px}

/* 매체를 지울 때 기록을 다른 매체로 옮기는 폼 */
.chan-merge{display:inline-flex;gap:8px;align-items:center}
.chan-merge select{min-height:38px;padding:8px 34px 8px 12px;font-size:13px;min-width:130px}
.chan-merge button{min-width:104px}
@media(max-width:900px){.chan-merge{flex-wrap:wrap}.chan-merge select{min-width:110px}}
.block-add{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:16px}.block-editor{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--line);min-width:0}.block-editor>img{width:88px;height:88px;object-fit:cover;border-radius:9px;background:var(--surface)}.block-kind{display:grid;place-items:center;width:88px;height:58px;border-radius:9px;background:var(--surface);font-weight:700}.block-main{min-width:0}.block-main>b,.block-main>small{display:block}.block-main small{margin-top:4px;color:var(--ink-2)}.block-main form{margin-top:8px}.block-main textarea{min-height:64px}.block-actions,.block-actions form{display:flex;flex-wrap:wrap;gap:6px}.block-actions{justify-content:flex-end}.block-actions button{min-height:36px;padding:7px 11px}.clone-note,.headline-help,.measure-alert{padding:13px 16px;border-radius:10px;background:#fff1dd;color:#754600;line-height:1.55;overflow-wrap:anywhere}.stats-period{display:flex;gap:12px;align-items:end}.stats-period label{flex:1}.funnel{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.funnel div{padding:14px 8px;border-radius:10px;background:var(--surface);text-align:center}.funnel b,.funnel strong,.funnel small{display:block}.funnel strong{margin:7px 0 3px;font-size:24px}.funnel small{color:var(--ink-2)}@media(max-width:700px){.block-add{grid-template-columns:1fr}.block-editor{grid-template-columns:64px minmax(0,1fr)}.block-editor>img,.block-kind{width:64px;height:64px}.block-actions{grid-column:1/-1;justify-content:flex-start}.stats-period{display:grid;grid-template-columns:1fr 1fr}.funnel{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:420px){.stats-period{grid-template-columns:1fr}.funnel{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 매체별 UTM 주소 — 주소 칸이 194px 라 주소가 잘려 보였다.
   이 칸은 「보고 복사하는」 것이 목적이므로 최대한 넓혀 준다. */
td:has(> input[readonly]){width:100%}
td > input[readonly]{width:100%;min-width:0;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;
  background:var(--surface);cursor:text}
table:has(input[readonly]) th:first-child,table:has(input[readonly]) td:first-child{width:170px;min-width:170px;white-space:nowrap;padding-right:18px;overflow:visible}
table:has(input[readonly]){table-layout:fixed;width:100%}

.admin-nav .brand img{width:24px;height:24px;margin-right:9px;flex:0 0 auto}
.login-mark{display:block;width:56px;height:56px;margin:0 0 16px}

.muted{margin:0 0 10px;color:var(--ink-2);font-size:13px;line-height:1.7}
.muted b{color:var(--ink)}
.muted small{color:var(--ink-2);opacity:.85}
.muted code{padding:1px 5px;border-radius:5px;background:var(--surface)}


/* 랜딩 분류 — 한 줄이 한 덩어리. 좁아지면 아래로 접히기만 한다 */
.cat-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 22px;align-items:end;padding:18px 0;border-top:1px solid var(--line)}
.cat-row:first-of-type{border-top:0;padding-top:4px}
.cat-main{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(130px,1fr) 110px;gap:0 14px}
.cat-main label{margin:0;min-width:0}
.cat-main input{width:100%}
.cat-side{display:flex;flex-direction:column;align-items:flex-end;gap:9px;min-width:0}
.cat-count{margin:0;color:var(--ink-2);font-size:13px;white-space:nowrap}
.cat-count b{color:var(--ink);font-size:15px}
.cat-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}
.cat-actions select{max-width:230px}
.cat-note{color:var(--ink-2);font-size:12px}
@media(max-width:820px){.cat-row{grid-template-columns:1fr}.cat-main{grid-template-columns:1fr 110px}.cat-main label:first-child{grid-column:1/-1}.cat-side{align-items:stretch}.cat-count{text-align:left}.cat-actions{justify-content:flex-start}.cat-actions select{flex:1 1 160px;max-width:none}}

/* 계정 — 한 사람이 한 덩어리 */
.user-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(260px,1.2fr) auto;gap:12px 22px;align-items:end;padding:18px 0;border-top:1px solid var(--line)}
.user-row:first-of-type{border-top:0;padding-top:4px}
.user-main{min-width:0}
.user-id{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 0 6px;font-size:16px}
.user-meta{margin:0;color:var(--ink-2);font-size:13px}
.user-fields{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(140px,1.2fr);gap:0 14px;min-width:0}
.user-fields label{margin:0;min-width:0}
.user-fields select,.user-fields input{width:100%}
.user-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
@media(max-width:900px){.user-row{grid-template-columns:1fr}.user-actions{justify-content:flex-start}.user-actions button{flex:1 1 auto}}

/* 랜딩 숨기기·사용하기 */
.ld-toggle{display:inline-flex}
.ld-toggle button{min-height:36px;padding:7px 14px;white-space:nowrap}
.ld-state{align-items:center;justify-content:flex-end;gap:10px}

/* 메시지 안내 관리 */
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:10px 0 6px}
.pick{display:flex;gap:10px;align-items:flex-start;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);font-weight:500;cursor:pointer}
.pick input{margin:3px 0 0;width:18px;height:18px;min-height:0;flex:0 0 auto}
.pick small{display:block;color:var(--ink-2);font-weight:400}
.pick em{color:var(--warn);font-style:normal}
.checkline{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:500}
.checkline input{width:18px;height:18px;min-height:0;margin:0}

/* Administration app switching: aligned controls on both navigation bars. */
.admin-nav{height:auto;min-height:68px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding-top:12px;padding-bottom:12px}
.admin-nav .brand{height:40px;flex:0 0 auto}
.admin-nav nav{flex:1 1 760px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;overflow:visible}
.admin-nav nav>a{height:40px;min-height:40px;padding:8px 10px;line-height:22px;justify-content:center;border-radius:8px}
.admin-nav nav>a.active:after{bottom:-3px;left:10px;right:10px}
.admin-nav .nav-logout{display:flex;align-items:center;flex:0 0 auto;margin:0;padding:0;border:0;background:transparent}
.admin-nav .nav-logout>button{height:40px;min-height:40px;margin:0;padding:8px 12px;line-height:22px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-2);white-space:nowrap}
.admin-nav nav>a.app-switch{border:1px solid transparent;font-weight:750;padding:8px 14px}
.admin-nav nav>a.app-switch-brand{background:#f2eafa;border-color:#dbc5ed;color:#65378a}
.admin-nav nav>a.app-switch-brand:hover{background:#e8d9f5}
.admin-nav nav>a.app-switch-wasshu{background:#e5f2fc;border-color:#bbdbf1;color:#175c87}
.admin-nav nav>a.app-switch-wasshu:hover{background:#d3eafb}
.admin-nav nav>a:focus-visible,.admin-nav .nav-logout>button:focus-visible{outline:2px solid #175c87;outline-offset:3px}
.actions{align-items:center;gap:8px}
.actions>form{margin:0;align-items:center;flex-wrap:wrap}
.actions>.btn,.actions>button,.actions>form>button{min-height:42px;margin-top:0;margin-bottom:0}
@media(max-width:1200px){.admin-nav{align-items:flex-start}.admin-nav nav{flex-basis:100%;justify-content:flex-start}}
@media(max-width:800px){.admin-nav{display:flex;padding-top:10px;padding-bottom:12px}.admin-nav .brand{height:40px}.admin-nav nav{gap:8px}.admin-nav nav>a{height:40px}}

/* One procedure per BM link; controls align without editable table cells. */
.bm-link-list{display:grid;gap:10px}.bm-link-row{display:grid;grid-template-columns:64px minmax(140px,1fr) 100px minmax(230px,1.4fr) 126px;align-items:center;gap:16px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:12px}.bm-link-row>*{min-width:0}.bm-link-thumb img{display:block;width:64px;height:80px;object-fit:cover;object-position:top;border-radius:6px}.bm-link-thumb span{font-size:12px;color:var(--ink-2)}.bm-link-info strong{display:block;line-height:1.45;overflow-wrap:anywhere}.bm-link-info small{display:block;color:var(--ink-2);margin-top:4px;line-height:1.4}.bm-link-url .copyrow{margin:0;align-items:center;gap:6px}.bm-link-url input{width:100%;height:42px;min-width:0;font-size:12px}.bm-link-url .copyrow button{flex:0 0 58px;height:42px;padding:8px}.bm-link-actions{display:grid;gap:6px}.bm-link-actions .btn{height:42px;min-height:42px;padding:8px 12px;white-space:nowrap}.bm-link-state .status{white-space:nowrap}
@media(max-width:1050px){.bm-link-row{grid-template-columns:64px minmax(0,1fr) auto;gap:12px}.bm-link-url{grid-column:2/-1}.bm-link-actions{grid-column:2/-1;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.bm-link-row{padding:12px;grid-template-columns:48px minmax(0,1fr);gap:10px}.bm-link-thumb img{width:48px;height:60px}.bm-link-state{grid-column:2}.bm-link-url,.bm-link-actions{grid-column:1/-1}}

/* Landing list: wide content columns, compact metadata, and full-width tag strips. */
.landing-list-wrap{overflow-x:auto;overflow-y:visible;padding:0}
.landing-list{width:100%;min-width:920px;table-layout:fixed}
.landing-list .landing-col-title{width:30%}.landing-list .landing-col-procedure{width:28%}
.landing-list .landing-col-category{width:8%}.landing-list .landing-col-status{width:8%}
.landing-list .landing-col-count{width:5%}.landing-list .landing-col-actions{width:16%}
.landing-list-editable .landing-col-check{width:3%}.landing-list-editable .landing-col-title{width:28%}.landing-list-editable .landing-col-procedure{width:27%}
.landing-check-cell{padding-left:8px!important;padding-right:4px!important;text-align:center!important;white-space:nowrap!important}
.landing-check-cell input{width:18px;height:18px;min-height:0;margin:0;vertical-align:middle}
.landing-bulk-toolbar{display:flex;align-items:end;gap:12px;margin-bottom:14px;padding:12px 14px;overflow:visible}
.landing-bulk-toolbar>strong{flex:0 0 auto;min-width:72px;padding-bottom:11px;white-space:nowrap}.landing-bulk-toolbar label{display:flex;flex-direction:column;flex:1 1 260px;max-width:420px;min-width:180px;margin:0}.landing-bulk-toolbar select{width:100%}.landing-bulk-toolbar button{flex:0 0 auto;min-height:46px;margin:0}.landing-bulk-toolbar button:disabled{opacity:.45;cursor:not-allowed}
.landing-list th,.landing-list td{overflow-wrap:normal;word-break:normal}
.landing-title-cell,.landing-procedure-cell{white-space:normal;overflow-wrap:anywhere}
.landing-title-cell>a{font-weight:700;color:var(--ink);text-decoration:none}
.landing-title-cell>a:hover{color:var(--accent)}
.landing-url{display:flex;align-items:center;gap:6px;min-width:0;margin-top:5px;font-size:11px}
.landing-url a{min-width:0;overflow:hidden;color:var(--ink-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}
.landing-url button{flex:0 0 auto;min-height:22px;padding:1px 6px;border:0;background:transparent;color:var(--ink-2);font-size:11px;text-decoration:underline}
.landing-category-cell,.landing-status-cell,.landing-count-cell{white-space:nowrap;text-align:center}
.landing-actions-cell .actions{flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:5px;margin:0}
.landing-actions-cell .actions form{gap:5px;margin:0}
.landing-actions-cell button{min-height:32px;padding:5px 9px;font-size:12px;white-space:nowrap}
.landing-tags-row>td{height:auto;padding:7px 14px 9px;background:var(--surface)}
.landing-tags-scroll{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.landing-tags{display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:5px;min-width:max-content;white-space:nowrap}
.landing-tags a,.landing-tags-empty{flex:0 0 auto;padding:2px 8px;border-radius:999px;background:#efeff1;color:var(--ink-2);font-size:11px;line-height:1.55;text-decoration:none}
.landing-tags a:hover{background:#e3e3e6;color:var(--ink)}
.landing-tags-empty{background:transparent;padding-left:0}
.landing-tag-toggle{flex:0 0 auto;min-height:26px;padding:3px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink-2);font-size:11px;white-space:nowrap}
.landing-tag-toggle[aria-expanded="true"]{color:var(--accent)}
.landing-tag-row[hidden]{display:none!important}
.landing-tag-row>td{height:auto;padding:18px 22px 22px;white-space:normal;background:#faf8f7}
.landing-tag-form{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:100%;min-width:0;margin:0}
.landing-tag-form label{display:block;margin:0;font-size:14px;overflow-wrap:anywhere}
.landing-tag-form textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:92px;resize:vertical;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff}
.landing-tag-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.landing-tag-footer p{margin:0;color:var(--ink-2);font-size:12px;line-height:1.7;white-space:normal}
.landing-tag-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.landing-tag-buttons button{min-width:88px;min-height:42px;white-space:nowrap}
.landing-tag-toggle:focus-visible,.landing-tag-form button:focus-visible,.landing-tag-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:640px){.landing-bulk-toolbar{align-items:stretch;flex-wrap:wrap}.landing-bulk-toolbar>strong{flex-basis:100%;padding-bottom:0}.landing-bulk-toolbar label{flex:1 1 190px;min-width:0;max-width:none}.landing-bulk-toolbar button{flex:1 1 110px}.landing-list-wrap{max-width:100%}.landing-list{min-width:840px}.landing-tag-row>td{padding:14px}.landing-tag-footer{align-items:stretch}.landing-tag-footer p{flex-basis:100%}.landing-tag-buttons{width:100%;margin-left:0}.landing-tag-buttons button{flex:1}.landing-tag-form textarea{min-height:116px}}

.landing-list .landing-title-cell,.landing-list .landing-procedure-cell{overflow-wrap:anywhere}.landing-list th:nth-child(n+3):nth-child(-n+6){text-align:center}.landing-list th:last-child{text-align:right}

.landing-list-editable th:nth-child(3){text-align:left}.landing-list-editable th:nth-child(n+4):nth-child(-n+7){text-align:center}

/* 2026-09-13 — WASSHU 관리 화면 밀도와 분류 관리 목록 */
main{padding-top:32px;padding-bottom:56px}.page-head{margin-bottom:20px}.page-head h1{font-size:28px}.card{margin:14px 0;padding:20px;border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.045)}
input,select,textarea,.btn,button{min-height:40px;padding:8px 12px;border-radius:8px}.metric{padding:18px;border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.045)}
.cat-intro{padding-top:16px;padding-bottom:16px}.cat-intro .muted{margin:0}.cat-list{padding:0;overflow:visible}.cat-empty{margin:0;padding:20px;color:var(--ink-2)}
.cat-list .cat-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto auto;align-items:center;gap:12px 18px;padding:14px 18px;border-top:1px solid var(--line)}.cat-list .cat-row:first-child{border-top:0;padding-top:14px}
.cat-order{display:grid;grid-template-columns:repeat(2,36px);gap:4px}.cat-order form{margin:0}.cat-order button,.cat-order form>button:not(.danger){width:36px;height:36px;min-height:36px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink-2);font-size:13px}.cat-order button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.cat-order button:disabled{opacity:.28;cursor:not-allowed}
.cat-summary{min-width:0}.cat-summary strong{display:block;font-size:16px;line-height:1.45;overflow-wrap:anywhere}.cat-summary code{display:block;margin-top:3px;font-size:12px;overflow-wrap:anywhere}
.cat-list .cat-count{display:flex;align-items:center;gap:13px;margin:0;color:var(--ink-2);font-size:13px;white-space:nowrap}.cat-list .cat-count b{font-size:14px}.cat-list .badge{min-height:22px;padding:2px 8px}
.cat-details{display:contents}.cat-details>summary{grid-column:4;grid-row:1;list-style:none;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.cat-details>summary::-webkit-details-marker{display:none}
.cat-editor{grid-column:1/-1;margin:2px -18px -14px;padding:16px 18px 18px;border-top:1px dashed var(--line);background:#fbfaf9}.cat-save{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:end;gap:12px 14px}.cat-save label,.cat-delete label{margin:0}.cat-save-actions{display:flex;gap:7px}.cat-save-actions button{white-space:nowrap}
.cat-delete{display:flex;align-items:end;gap:10px;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.cat-delete label{flex:0 1 340px}.cat-delete button{white-space:nowrap}.cat-note{margin:14px 0 0;color:var(--ink-2);font-size:13px}.cat-add h2{margin:0 0 15px;font-size:19px}.cat-details summary:focus-visible,.cat-order button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:720px){main{padding-top:24px}.card{padding:16px}input,select,textarea,.btn,button{min-height:44px}.cat-list{padding:0}.cat-list .cat-row{grid-template-columns:92px minmax(0,1fr) auto;gap:10px 12px;padding:14px}.cat-list .cat-count{grid-column:2;gap:10px;white-space:normal}.cat-details>summary{grid-column:3;grid-row:1/3;min-height:44px}.cat-order{grid-row:1/3;grid-template-columns:repeat(2,44px)}.cat-order button,.cat-order form>button:not(.danger){width:44px;height:44px;min-height:44px}.cat-editor{margin:4px -14px -14px;padding:15px 14px 16px}.cat-save{grid-template-columns:1fr}.cat-save-actions button{flex:1}.cat-delete{align-items:stretch;flex-direction:column}.cat-delete label{flex-basis:auto;width:100%}.cat-delete button{width:100%}}
@media(max-width:420px){.cat-summary strong{font-size:15px}.cat-list .cat-count{font-size:12px;gap:8px}.cat-list .badge{font-size:11px}}

/* Preserve select arrows and compact checkbox geometry after density tuning. */
select{padding-right:36px}input[type="checkbox"],input[type="radio"]{padding:0;min-height:0}.cat-details:not([open])>.cat-editor{display:none}
