:root {
	--bg: #f3f4f6;
	--card-bg: #ffffff;
	--text: #1e293b;
	--primary: #2563eb;
	--primary-hover: #1d4ed8;
	--border: #d1d5db;
	--shadow: 0 4px 8px rgba(0,0,0,0.05);
}

* { box-sizing: border-box; }

body {
	font-family: "Segoe UI", Pretendard, sans-serif;
	background: var(--bg);
	color: var(--text);
	margin: 0;
	padding: 40px 20px;
	display: flex;
	justify-content: center;
	min-height: 100vh;
}

.container {
	width: 100%;
	max-width: 1024px;
	background: var(--card-bg);
	border-radius: 12px;
	box-shadow: var(--shadow);
	padding: 30px;
}

h2 { text-align:center; margin-top:0; margin-bottom:20px; font-size:1.6rem; }

.logout { text-align:right; margin-bottom:15px; }

.logout a {
	color: var(--primary);
	text-decoration:none;
	font-weight:500;
	font-size:14px;
}
.logout a:hover { text-decoration:underline; }

.tabs {
	display:flex; margin-bottom:10px; cursor:pointer; border-bottom:2px solid var(--border); flex-wrap:wrap;
}

.tab {
	padding:10px 18px;
	background:#e5e7eb;
	margin-right:4px;
	border-radius:6px 6px 0 0;
	font-weight:500;
	transition:0.2s;
}
.tab:hover { background:#d1d5db; }
.tab.active { background:var(--card-bg); color:var(--primary); border:1px solid var(--border); border-bottom:2px solid var(--card-bg); }

.tab-content {
	display:none;
	background: var(--card-bg);
	padding:20px;
	border:1px solid var(--border);
	border-radius:0 0 8px 8px;
	box-shadow:var(--shadow);
}
.tab-content.active { display:block; }

textarea {
	width:100%;
	min-height:150px;
	margin-bottom:15px;
	font-family:"Fira Code", monospace;
	font-size:14px;
	line-height:1.4;
	padding:12px;
	border:1px solid var(--border);
	border-radius:8px;
	resize:vertical;
	background:#f9fafb;
	transition:border 0.2s, background 0.2s;
}
textarea:focus { outline:none; border-color:var(--primary); background:#ffffff; }

button {
	padding:8px 16px;
	font-size:14px;
	font-weight:500;
	background:var(--primary);
	color:white;
	border:none;
	border-radius:8px;
	cursor:pointer;
	transition: background 0.2s, transform 0.1s;
}
button:hover { background: var(--primary-hover); }
button:active { transform: scale(0.97); }
button + button { margin-left:6px; }

.options {
	background:#f9fafb;
	border:1px solid var(--border);
	border-radius:8px;
	padding:10px;
	margin-bottom:15px;
}

label { margin-right:15px; font-size:14px; }

#outputJS { background:#f1f5f9; min-height:120px; }

#preview {
	display:grid;
	grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
	gap:10px;
	align-items:center;
	margin-top:10px;
}
#preview .icon-wrapper { text-align:center; font-size:12px; color:#555; }
#preview img {
	border:1px solid var(--border);
	border-radius:6px;
	box-shadow:var(--shadow);
	background:white;
	padding:5px;
	width:100%;
	height:auto;
}

.copy-wrapper { margin-bottom:15px; position:relative; }
.copy-wrapper button { position:absolute; top:5px; right:5px; padding:4px 8px; font-size:12px; }

form {
	max-width:400px;
	margin:80px auto;
	background: var(--card-bg);
	padding:30px;
	border-radius:12px;
	box-shadow:var(--shadow);
}
input[type="password"], input[type="text"] {
	width:100%;
	padding:10px;
	font-size:15px;
	border:1px solid var(--border);
	border-radius:8px;
	margin-bottom:15px;
	transition:0.2s;
}
input:focus { outline:none; border-color:var(--primary); }

.error { color:red; margin-bottom:10px; text-align:center; }
