/* 리셋·요소 기본·레이아웃 셸(앱바·컨테이너) */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.5;
  -webkit-font-smoothing:antialiased}
a{color:inherit}
/* 크메르어 전용 폰트(바탐방) — var(--font)에 섞지 않는다: 라틴 폰트와 한 스택에 넣으면
   자모 결합(shaping)이 깨진다(주소 모듈에서 확인). 크메르 텍스트에만 이 클래스를 별도 적용. */
.km{font-family:'Battambang',sans-serif}
.app{max-width:1440px;margin:0 auto;padding:var(--bar-h) 20px 80px}
/* module-layout은 height:calc(100vh - var(--bar-h))로 자체 스크롤을 갖으므로 .app 하단 padding이 불필요한 바깥 스크롤을 만듦 — 제거 */
.app:has(> .module-layout){padding-bottom:0}
/* 모바일 — 모듈 페이지는 .app 좌우 패딩 제거. module-content가 자체 좌우 여백을 가지므로 이중 여백이 되어 폰에서 앱 영역이 좁아짐 */
@media(max-width:768px){
  .app:has(> .module-layout){padding-left:0;padding-right:0}
}

/* 앱바(전역 헤더)는 css/header.css — Floating Island */
.iconbtn{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface);
  display:grid;place-items:center;color:var(--muted);cursor:pointer;position:relative;transition:color .15s,border-color .15s}
.iconbtn:hover{color:var(--p);border-color:var(--p)}
.io-todo:hover{color:var(--todo);border-color:var(--todo)}
.io-outside:hover{color:var(--outside);border-color:var(--outside)}
.io-room:hover{color:var(--room);border-color:var(--room)}
.io-core:hover{color:var(--core);border-color:var(--core)}
.io-cv:hover{color:var(--cv);border-color:var(--cv)}
.io-org:hover{color:var(--core);border-color:var(--core)}
.io-collab:hover{color:var(--collab);border-color:var(--collab)}
.io-chat:hover{color:var(--collab);border-color:var(--collab)}
.io-noti:hover{color:var(--car);border-color:var(--car)}
/* 캄보디아 주소 아이콘 — 레지스트리 SVG(인라인 width 없음)라 크기 지정, 골드 액센트 hover */
.io-addr svg{width:18px;height:18px}
.io-addr:hover{color:var(--gold);border-color:var(--gold)}
.iconbtn .n{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;font-size:10px;
  font-weight:700;min-width:16px;height:16px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
/* 아직 구현되지 않은 아이콘 버튼 — 대시보드 모듈의 Soon 배지와 같은 의미 */
.iconbtn.soon{opacity:.55;cursor:not-allowed}
.iconbtn.soon:hover{color:var(--muted);border-color:var(--border)}
/* 권한 미할당으로 잠긴 아이콘 버튼 — 숨기지 않고 비활성 표시(예: 헤더 Projects) */
.iconbtn.is-locked{opacity:.4;cursor:not-allowed;pointer-events:none}
.iconbtn.is-locked:hover{color:var(--muted);border-color:var(--border)}
.iconbtn .soon-tag{position:absolute;top:-7px;right:-9px;background:var(--bg);color:var(--faint);
  border:1px solid var(--border);font-size:8px;font-weight:700;letter-spacing:.02em;
  padding:1px 5px;border-radius:99px;white-space:nowrap}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--core-grad);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:13px}

/* 공통 섹션 라벨 */
.label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);
  margin:24px 4px 12px}
