/* source of truth - run "npm run build-css" to copy this to public/css_js/style.css */

body{
	background: #f7f6f2;
	color: #1c1b18;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	margin: 0;
}

.topbar{
	align-items: center;
	background: #fbfaf7;
	border-bottom: 1px solid #e6e3da;
	display: flex;
	justify-content: space-between;
	padding: 14px 28px;
}

.topbar-brand{
	color: #1c1b18;
	text-decoration: none;
}

.topbar-name{
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.topbar-tag{
	color: #8a867c;
	font-size: 11px;
	letter-spacing: 0.14em;
	margin-left: 10px;
	text-transform: uppercase;
}

.content{
	margin: 0 auto;
	max-width: 1080px;
	padding: 44px 28px 80px 28px;
}

.content-wide{
	max-width: 1700px;
}

.pageheader{
	align-items: flex-start;
	display: flex;
	gap: 14px;
	margin-bottom: 24px;
}

.sectionlabel{
	color: #8a867c;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	margin-bottom: 8px;
	text-transform: uppercase;
}

h1{
	font-size: 28px;
	font-weight: 600;
	margin: 0 0 8px 0;
}

.pagesub{
	color: #6d695f;
	font-size: 14px;
	margin: 0;
}

.pagesteps{
	color: #6d695f;
	font-size: 13px;
	margin: 0;
	max-width: 55%;
	padding-left: 20px;
}

.pagesteps li{
	margin-bottom: 3px;
}

/* template picker */

.templategrid{
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, 1fr);
}

.templatecard{
	background: #fbfaf7;
	border: 1px solid #e6e3da;
	border-radius: 10px;
	color: #1c1b18;
	display: flex;
	flex-direction: column;
	padding: 18px;
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.templatecard:hover{
	border-color: #1c1b18;
	box-shadow: 0 2px 12px rgba(28, 27, 24, 0.08);
}

.templatepreview{
	border: 1px solid #e6e3da;
	height: 120px;
	margin-bottom: 16px;
	padding: 10px;
}

.templatepreviewimg{
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.templaterow{
	border-bottom: 1px dashed #d8d4ca;
	box-sizing: border-box;
}

.templaterow:last-child{
	border-bottom: 0;
}

.templateinfo{
	flex: 1;
}

.templatelabel{
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 4px;
	text-transform: uppercase;
}

.templatedims,
.templatepixels{
	color: #8a867c;
	font-size: 12px;
	margin-bottom: 2px;
}

/* buttons */

.pill{
	align-self: flex-start;
	background: transparent;
	border: 1px solid #1c1b18;
	border-radius: 999px;
	color: #1c1b18;
	cursor: pointer;
	display: inline-block;
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin-top: 16px;
	padding: 9px 20px;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 0.15s ease, color 0.15s ease;
}

.pill:hover{
	background: #1c1b18;
	color: #f7f6f2;
}

.pill:disabled{
	cursor: default;
	opacity: 0.45;
}

.pill:disabled:hover{
	background: transparent;
	color: #1c1b18;
}

.pill-ghost{
	border-color: #c9c5bb;
	color: #6d695f;
}

.pill-ghost:hover{
	background: #1c1b18;
	color: #f7f6f2;
}

.backbutton{
	align-items: center;
	background: #fbfaf7;
	border: 1px solid #e6e3da;
	border-radius: 50%;
	color: #1c1b18;
	cursor: pointer;
	display: inline-flex;
	flex-shrink: 0;
	font-size: 15px;
	height: 34px;
	justify-content: center;
	margin-top: 2px;
	padding: 0;
	width: 34px;
}

.backbutton:hover{
	border-color: #1c1b18;
}

/* editor page */

.editorlayout{
	align-items: flex-start;
	display: flex;
	gap: 24px;
}

.editorworkspace{
	flex: 3;
	min-width: 0;
}

.canvascontrols{
	align-items: center;
	display: flex;
	margin-bottom: 12px;
}

.canvascontrols .pill{
	font-size: 11px;
	margin-right: 8px;
	margin-top: 0;
	padding: 6px 14px;
}

.zoomlabel{
	color: #8a867c;
	font-size: 12px;
	margin-left: 6px;
}

.canvaswrap{
	background: #eeece5;
	border: 1px dashed #c9c5bb;
	box-sizing: border-box;
	display: block;
	overflow: auto;
	padding: 24px;
	position: relative;
	width: 100%;
}

.busyoverlay{
	align-items: center;
	background: rgba(251, 250, 247, 0.72);
	display: flex;
	flex-direction: column;
	gap: 14px;
	inset: 0;
	justify-content: center;
	position: absolute;
	z-index: 5;
}

.busyspinner{
	animation: busyspin 0.9s linear infinite;
	border: 2px solid #e6e3da;
	border-radius: 50%;
	border-top-color: #1c1b18;
	height: 28px;
	width: 28px;
}

.busylabel{
	color: #1c1b18;
	font-size: 13px;
}

@keyframes busyspin{
	to{
		transform: rotate(360deg);
	}
}

.canvaswrap canvas{
	box-shadow: 0 1px 10px rgba(28, 27, 24, 0.12);
	display: block;
}

.editorsidebar{
	flex: 1;
	min-width: 0;
}

.sidebarblock{
	border-bottom: 1px solid #e6e3da;
	margin-bottom: 28px;
	padding-bottom: 28px;
}

.sidebarblock .pill{
	box-sizing: border-box;
	margin-top: 12px;
	text-align: center;
	width: 100%;
}

.imagelist{
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, 1fr);
	margin-top: 16px;
}

.imagethumb{
	background: #fbfaf7;
	border: 1px solid #e6e3da;
	border-radius: 6px;
	cursor: pointer;
	height: 96px;
	overflow: hidden;
}

.imagethumb:hover{
	border-color: #1c1b18;
}

.imagethumb img{
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.emptyhint{
	color: #a5a196;
	font-size: 12px;
	margin-top: 14px;
}

.librarylist{
	margin-top: 12px;
}

.libraryrow{
	align-items: center;
	background: #fbfaf7;
	border: 1px solid #e6e3da;
	border-radius: 6px;
	cursor: pointer;
	display: flex;
	margin-bottom: 8px;
	padding: 8px 10px;
}

.libraryrow-thumb{
	border: 1px solid #e6e3da;
	border-radius: 4px;
	flex-shrink: 0;
	height: 48px;
	object-fit: contain;
	width: 48px;
}

.libraryrow-name{
	font-size: 13px;
	margin-left: 10px;
	min-width: 0;
	overflow-wrap: break-word;
	word-break: break-word;
}

.libraryrow:hover{
	border-color: #1c1b18;
}

.outputbar{
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-top: 16px;
}

.outputbar .outputdims{
	border: 0;
	margin: 0;
	padding: 0;
}

.outputdims{
	border: 1px solid #e6e3da;
	border-radius: 6px;
	margin-top: 16px;
	padding: 12px 14px;
}

.outputdims-size{
	font-size: 13px;
	font-weight: 600;
}

.outputdims-pixels{
	color: #8a867c;
	font-size: 12px;
	margin-top: 3px;
}

/* modal */

.overlay{
	align-items: center;
	background: rgba(28, 27, 24, 0.35);
	display: flex;
	height: 100%;
	justify-content: center;
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 200;
}

.modal{
	background: #fbfaf7;
	border: 1px solid #e6e3da;
	border-radius: 10px;
	box-shadow: 0 10px 40px rgba(28, 27, 24, 0.18);
	max-width: 380px;
	padding: 28px;
	width: calc(100% - 56px);
}

.modaltitle{
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 8px;
}

.modaltext{
	color: #6d695f;
	font-size: 14px;
}

.modalbuttons{
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 24px;
}

.modalbuttons .pill{
	margin-top: 0;
}

/* toasts */

.toast{
	background: #1c1b18;
	border-radius: 999px;
	bottom: 28px;
	color: #f7f6f2;
	font-size: 13px;
	left: 50%;
	padding: 11px 22px;
	position: fixed;
	transform: translateX(-50%);
	transition: opacity 0.25s ease;
	z-index: 100;
}

.toast-error{
	background: #3a3731;
}

.toast-hide{
	opacity: 0;
}

@media (max-width: 900px){
	.templategrid{
		grid-template-columns: 1fr;
	}

	.editorlayout{
		flex-direction: column;
	}

	.editorworkspace{
		flex: 1 1 auto;
		width: 100%;
	}

	.editorsidebar{
		flex: 1 1 auto;
		width: 100%;
	}
}
