/* 제로피터 통합 관리센터 공통 스타일 — 2026-10-22
   색: 디자인 토큰 v0.2 semantic(C:/Park_Leage/Park_Leage/design/tokens/zerofitter.tokens.json) 스냅샷. 컴포넌트에는 아래 변수만 쓴다.
   시니어 퍼스트: 본문 17px · 행간 1.75 · 버튼·입력 52px 이상
   2026-10-23 GPT 검수(업무표 20261023-04) 반영: R3 배지 17px · R4 로그아웃·계정 조작 52px/17px · R6 인쇄 배경 변수 */
:root{--bg:#F2F6F3;--surface:#FFFFFF;--border:#E3ECE7;--text-primary:#1C2733;--text-secondary:#5A6B76;--text-on-brand:#FFFFFF;--brand-primary:#16412F;--brand-field:#2E7D5B;--brand-accent:#F2C14E;--brand-accent-text:#7E5F1E;--success-bg:#E9F5EF;--warning-bg:#FDF6E4;--error:#C0392B;--error-bg:#FDECEA;--disabled:#D5E2DB;
  --font:Pretendard,'Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text-primary);font-family:var(--font);font-size:17px;line-height:1.75;word-break:keep-all;overflow-wrap:anywhere}
a{color:var(--brand-primary)}
button,input,select{font:inherit}
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:8px 20px;border-radius:8px;border:1px solid var(--text-secondary);background:var(--surface);color:var(--text-primary);cursor:pointer;text-decoration:none;font-weight:600}
button:hover,.btn:hover{border-color:var(--brand-field)}
button.primary,.btn.primary{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--text-on-brand)}
button.danger{border-color:var(--error);color:var(--error)}
button:disabled{opacity:.55;cursor:default}
button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--brand-field);outline-offset:3px}
input,select{min-height:52px;width:100%;padding:8px 14px;border:1px solid var(--text-secondary);border-radius:8px;background:var(--surface);color:var(--text-primary)}
label{display:block;font-weight:700;margin:16px 0 4px}
h1,h2,h3,p{margin:0}
h1{font-size:30px;line-height:1.35;color:var(--brand-primary);letter-spacing:-.02em}
h2{font-size:22px;line-height:1.5;color:var(--brand-primary)}
h3{font-size:18px;line-height:1.5}
.muted{color:var(--text-secondary)}
.hide,[hidden]{display:none!important}

/* 상단 줄 */
.hub-bar{background:var(--brand-primary);color:var(--text-on-brand)}
.hub-bar .in{max-width:1180px;margin:auto;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hub-bar .home{display:flex;align-items:center;gap:10px;color:var(--text-on-brand);text-decoration:none;font-weight:800;font-size:19px}
.hub-bar .mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--text-on-brand);border-radius:10px;color:var(--brand-accent)}
.hub-bar .here{opacity:.9}
.hub-bar .sp{flex:1}
.hub-bar .who{font-size:17px;opacity:.95;text-align:right;line-height:1.4}
.hub-bar button{min-height:52px;background:transparent;color:var(--text-on-brand);border-color:var(--text-on-brand);padding:6px 14px}

.wrap{max-width:1180px;margin:auto;padding:28px 16px 64px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;min-width:0}
.grid{display:grid;gap:16px}
.note{margin-top:12px;color:var(--text-secondary)}
.msg{margin-top:12px;padding:12px 16px;border-radius:8px}
.msg.err{background:var(--error-bg);color:var(--error)}
.msg.ok{background:var(--success-bg);color:var(--brand-primary)}
.msg.warn{background:var(--warning-bg);color:var(--brand-accent-text)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 12px;border:1px solid var(--border);border-radius:999px;font-size:17px;background:var(--surface);white-space:nowrap}
.pill.ok{background:var(--success-bg);border-color:var(--brand-field);color:var(--brand-primary)}
.pill.warn{background:var(--warning-bg);border-color:var(--brand-accent-text);color:var(--brand-accent-text)}
.pill.err{background:var(--error-bg);border-color:var(--error);color:var(--error)}

/* 로그인 */
.login{max-width:460px;margin:48px auto}
.login .brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.login .brand .mark{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:var(--brand-primary);color:var(--brand-accent);font-weight:800;font-size:22px}
.login button.primary{width:100%;margin-top:24px}

/* 메뉴 타일 */
.tiles-grp{margin-top:28px}
.tiles-grp h2{margin-bottom:12px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.tile{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px;text-decoration:none;color:var(--text-primary);min-height:150px}
.tile:hover{border-color:var(--brand-field);background:var(--success-bg)}
.tile b{font-size:20px;color:var(--brand-primary);line-height:1.4}
.tile span{color:var(--text-secondary)}
.tile .go{margin-top:auto;font-weight:700;color:var(--brand-field)}

/* 관리센터 첫 화면 메뉴 안내판 — 2026-11-06 (076) · 묶음 하나 = 판 하나 · 메뉴 하나 = 한 줄
   넓은 화면 3단 · 태블릿 2단 · 휴대폰 1단 — 노트북(보이는 높이 650px 안팎)에서 전체 메뉴를 스크롤 없이 보고 바로 이동
   한 줄 = 제목 18px + 설명 17px(두 줄짜리 짧은 묶음이라 행간 1.35~1.4 · 누르는 칸 54px 이상) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.menu-wrap{padding-top:16px}
.menu-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 32px}
.menu-top h1{font-size:25px}
.menu-find{display:flex;align-items:center;gap:12px;flex:0 1 420px;min-width:280px}
.menu-find label{margin:0;flex:none;font-size:17px;color:var(--text-secondary);font-weight:700}
.menu-board{--cols:3;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:14px;align-items:start;margin-top:14px}
.menu-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.menu-grp{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.menu-grp[hidden]{display:none}
.menu-grp h2{margin:0;padding:6px 16px;background:var(--brand-primary);color:var(--text-on-brand);font-size:17px;line-height:1.5;font-weight:700}
.menu-grp ul{list-style:none;margin:0;padding:0}
.menu-grp li+li{border-top:1px solid var(--border)}
.menu-item{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center;min-height:54px;padding:3px 16px;text-decoration:none;color:var(--text-primary)}
.menu-item b{grid-column:1;font-size:18px;line-height:1.35;font-weight:700;color:var(--text-primary)}
.menu-item .menu-desc{grid-column:1;color:var(--text-secondary);line-height:1.4}
.menu-item:hover{background:var(--success-bg)}
.menu-item:hover b{color:var(--brand-primary)}
.menu-item:focus-visible{outline-offset:-3px}
.menu-badge{grid-column:2;grid-row:1 / span 2;padding:1px 12px;border-radius:999px;background:var(--brand-accent);color:var(--text-primary);font-weight:700;white-space:nowrap}
#menuNone{margin-top:16px}
.menu-acct{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}
.menu-acct .muted{margin-right:6px}
@media(max-width:700px){
  .menu-top h1{font-size:23px}
  .menu-find{flex-basis:100%;flex-wrap:wrap;gap:4px}
  .menu-find label{flex-basis:100%}
  .menu-item .menu-desc{line-height:1.6}
}

/* 표 */
.table{width:100%;border-collapse:collapse}
.table th{text-align:left;color:var(--text-secondary);font-weight:400;border-bottom:1px solid var(--border);padding:10px 8px;white-space:nowrap}
.table td{padding:12px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.table tr:last-child td{border-bottom:0}
.table .right{text-align:right}
.num{font-variant-numeric:tabular-nums}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.actions button{min-height:52px;padding:4px 14px;font-size:17px}
.secret{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:24px;letter-spacing:.06em;background:var(--warning-bg);border:1px dashed var(--brand-accent-text);border-radius:8px;padding:10px 16px;display:inline-block;margin:8px 0}

@media(max-width:760px){
  h1{font-size:26px}
  .hub-bar .who{display:none}
  .wrap{padding:20px 16px 56px}
  .card{padding:20px}
  .table,.table tbody,.table tr,.table td{display:block}
  .table thead{display:none}
  .table tr{padding:12px 0;border-bottom:1px solid var(--border)}
  .table td{border:0;padding:3px 0}
  .table td[data-label]::before{content:attr(data-label) ' · ';color:var(--text-secondary)}
  .table .right{text-align:left}
}
@media print{.hub-bar,.no-print{display:none!important}body{background:var(--surface)}}
