/* ============================================================
   Base / Reset
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:var(--font);
  font-size:13px;
  line-height:1.5;
  color:var(--text);
  background:var(--bg-app);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* 일반 문구는 화살표 커서를 사용하고 비편집 영역의 캐럿은 숨긴다. */
  cursor:default;
  caret-color:transparent;
}
h1,h2,h3,h4,h5,p,figure{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
input,textarea{cursor:auto;caret-color:auto;}
[contenteditable=""],[contenteditable="true"],[contenteditable="plaintext-only"]{cursor:text;caret-color:auto;}
a{color:var(--accent);text-decoration:none;cursor:pointer;}
a:hover{text-decoration:underline;}
table{border-collapse:collapse;width:100%;}
:focus-visible{outline:2px solid var(--teal-600);outline-offset:2px;border-radius:var(--r-xs);}
::selection{background:var(--teal-100);color:var(--teal-900);}
[hidden]{display:none !important;}

.num{font-variant-numeric:tabular-nums;}
.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums;}
.muted{color:var(--text-muted);}
.faint{color:var(--text-faint);}
.right{text-align:right;}
.center{text-align:center;}
.nowrap{white-space:nowrap;}
.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;}

/* scrollbars */
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:var(--s-300);border-radius:var(--r-full);border:2px solid transparent;background-clip:content-box;}
*::-webkit-scrollbar-thumb:hover{background:var(--s-400);background-clip:content-box;}
.sidenav::-webkit-scrollbar-thumb{background:var(--navy-500);background-clip:content-box;}

/* 최초 로딩 표시 - 모듈 스크립트가 셸을 그리기 전까지 */
.boot-splash{
  display:flex;align-items:center;justify-content:center;height:100vh;
  color:var(--text-faint);font-size:13px;letter-spacing:.02em;
}
