:root {
	--html-font:14px;
	--font-color:#222;
	--bg-color:#fff;
	
	--jw-gray-100:#F5F5F5;
	--jw-gray-300:#C9C9C9;
	--jw-gray-500:#757575;
	--jw-gray-700:#222222;
	
	--jw-blue-100:#E4EAFF;
	--jw-blue-300:#99ABFF;
	--jw-blue-500:#4876EE;
	--jw-blue-700:#1842AD;
	
	--jw-orange-500:#FE8130;
	--jw-orange-100:#fff1e8;
	
	--jw-yellow-400:#FFD166;
	--jw-yellow-100:#fff8dc;
	
	--jw-red-100:#FFE8DD;
	--jw-red-300:#FFB54B;
	--jw-red-500:#FE8130;
	--jw-red-700:#D32F2F;
	
	--jw-green-100:#E9FFDE;
	--jw-green-300:#64B968;
	--jw-green-500:#50A254;
	--jw-green-700:#2F7E33;
	
	--jw-purple-100:#f3efff;
	--jw-purple-500:#7656d6;
	
	--deep-wave:var(--jw-blue-500);
	--jw-border-color:#d9dde5;
	--jw-surface-muted:#f6f8fb;
	--jw-focus-color:var(--jw-blue-500);

	--jw-a-bg:transparent;
	--jw-a-bghover:#bfcff5;
	--jw-a-color:#222222;
	--jw-a-height:30px;

	--jw-checkbox-border-color:#aeb6c3;

	--sidebar-w:300px; 
	--header-h:60px; 
	--foot-h:55px;
}

/* 박스사이징 */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

/* 루트/바디 */
html { width:100%; min-height:100dvh; font-size:var(--html-font); -webkit-text-size-adjust:100%; }
body { position:relative; width:100%; min-height:100dvh; overflow-x:hidden; font-family:'Noto Sans KR', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:var(--font-color); background:var(--bg-color); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

/* 목록/링크/텍스트 */
ol, ul { list-style:none; }
a { color:inherit; text-decoration:none; -webkit-tap-highlight-color:rgba(0,0,0,0); }
em, address { font-style:normal; }

/* 이미지/미디어 */
img, svg, video, canvas { display:block; max-width:100%; height:auto; }
img { border:0; vertical-align:top; }

/* 폼 요소 (기본 보존) */
input, button, textarea, select { font:inherit; color:inherit; outline:0; }
button { border:0; background:none; cursor:pointer; user-select:none; }
input, textarea { outline:0; border:0; background:transparent; }

input[readonly], textarea[readonly], select[readonly] { background: #f2f2f2; color: #333; border-color: #d9d9d9; }
input:disabled, textarea:disabled, select:disabled { background: #e9e9e9; color: #777; border-color: #d0d0d0; cursor: not-allowed; }

input::placeholder, textarea::placeholder { color:#9F9F9F; transition:color .3s ease; }
:focus::placeholder { color:transparent; }
input[type="text"] { padding:0 10px; }
input[type="file"] { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; } /* 시각적 숨김(접근성 OK) */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus { box-shadow:0 0 0 1000px #fff inset !important; -webkit-box-shadow:0 0 0 1000px #fff inset !important; transition:background-color 5000s ease-in-out 0s; }

textarea { width:100%; min-height:100px; resize:vertical; }
select { border:0; outline:0; padding:0 10px; }

/* 테이블 */
table { width:100%; border-collapse:collapse; border-spacing:0; } /* layout은 컴포넌트에서 결정 */

/* 스크롤바 (크롬/엣지)  */
::-webkit-scrollbar { display:none; width:8px; height:8px; }
::-webkit-scrollbar-track { background:rgba(0,0,0,.06); }
::-webkit-scrollbar-thumb { background:rgba(0,0,0,.28); border-radius:4px; }

/* 컨텐츠 편집 */
[contenteditable="true"] { outline:none; }

/* 모션 최소화 사용자 설정 존중 */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
