/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

@import 'tailwindcss';

@import 'tw-animate-css';

@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
@source '../../storage/framework/views/*.php';

@custom-variant dark (&:is(.dark *));

@theme inline {
	--font-sans: Instrument Sans, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
	--font-noto: 'Noto Sans JP', sans-serif;
	
	--radius-lg: var(--radius);
	--radius-md: calc(var(--radius) - 2px);
	--radius-sm: calc(var(--radius) - 4px);
	
	--color-background: var(--background);
	--color-foreground: var(--foreground);
	
	--color-card: var(--card);
	--color-card-foreground: var(--card-foreground);
	
	--color-popover: var(--popover);
	--color-popover-foreground: var(--popover-foreground);
	
	--color-primary: var(--primary);
	--color-primary-foreground: var(--primary-foreground);
	
	--color-secondary: var(--secondary);
	--color-secondary-foreground: var(--secondary-foreground);
	
	--color-muted: var(--muted);
	--color-muted-foreground: var(--muted-foreground);
	
	--color-accent: var(--accent);
	--color-accent-foreground: var(--accent-foreground);
	
	--color-destructive: var(--destructive);
	--color-destructive-foreground: var(--destructive-foreground);
	
	--color-border: var(--border);
	--color-input: var(--input);
	--color-ring: var(--ring);
	
	--color-chart-1: var(--chart-1);
	--color-chart-2: var(--chart-2);
	--color-chart-3: var(--chart-3);
	--color-chart-4: var(--chart-4);
	--color-chart-5: var(--chart-5);
	
	--color-sidebar: var(--sidebar-background);
	--color-sidebar-foreground: var(--sidebar-foreground);
	--color-sidebar-primary: var(--sidebar-primary);
	--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
	--color-sidebar-accent: var(--sidebar-accent);
	--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
	--color-sidebar-border: var(--sidebar-border);
	--color-sidebar-ring: var(--sidebar-ring);
	
	/* Pipopa brand colors */
	--color-brand-purple: #6366F1;
	--color-brand-purple-dark: #4F46E5;
	--color-primary: #6366F1;
	--color-secondary: #06B6D4;
}

/*
  The default border color has changed to `currentColor` in Tailwind CSS v4,
  so we've added these compatibility styles to make sure everything still
  looks the same as it did with Tailwind CSS v3.

  If we ever want to remove these styles, we need to add an explicit border
  color utility to any element that depends on these defaults.
*/
@layer base {
	*,
	::after,
	::before,
	::backdrop,
	::file-selector-button {
		border-color: var(--color-gray-200, currentColor);
	}
}

@layer utilities {
	body,
	html {
		--font-sans: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
	}
}

:root {
	--background: hsl(0 0% 100%);
	--foreground: hsl(0 0% 3.9%);
	--card: hsl(0 0% 100%);
	--card-foreground: hsl(0 0% 3.9%);
	--popover: hsl(0 0% 100%);
	--popover-foreground: hsl(0 0% 3.9%);
	--primary: hsl(0 0% 9%);
	--primary-foreground: hsl(0 0% 98%);
	--secondary: hsl(0 0% 92.1%);
	--secondary-foreground: hsl(0 0% 9%);
	--muted: hsl(0 0% 96.1%);
	--muted-foreground: hsl(0 0% 45.1%);
	--accent: hsl(0 0% 96.1%);
	--accent-foreground: hsl(0 0% 9%);
	--destructive: hsl(0 84.2% 60.2%);
	--destructive-foreground: hsl(0 0% 98%);
	--border: hsl(0 0% 92.8%);
	--input: hsl(0 0% 89.8%);
	--ring: hsl(0 0% 3.9%);
	--chart-1: hsl(12 76% 61%);
	--chart-2: hsl(173 58% 39%);
	--chart-3: hsl(197 37% 24%);
	--chart-4: hsl(43 74% 66%);
	--chart-5: hsl(27 87% 67%);
	--radius: 0.5rem;
	--sidebar-background: hsl(0 0% 98%);
	--sidebar-foreground: hsl(240 5.3% 26.1%);
	--sidebar-primary: hsl(0 0% 10%);
	--sidebar-primary-foreground: hsl(0 0% 98%);
	--sidebar-accent: hsl(0 0% 94%);
	--sidebar-accent-foreground: hsl(0 0% 30%);
	--sidebar-border: hsl(0 0% 91%);
	--sidebar-ring: hsl(217.2 91.2% 59.8%);
	--sidebar: hsl(0 0% 98%);
}

.dark {
	--background: hsl(0 0% 3.9%);
	--foreground: hsl(0 0% 98%);
	--card: hsl(0 0% 3.9%);
	--card-foreground: hsl(0 0% 98%);
	--popover: hsl(0 0% 3.9%);
	--popover-foreground: hsl(0 0% 98%);
	--primary: hsl(0 0% 98%);
	--primary-foreground: hsl(0 0% 9%);
	--secondary: hsl(0 0% 14.9%);
	--secondary-foreground: hsl(0 0% 98%);
	--muted: hsl(0 0% 16.08%);
	--muted-foreground: hsl(0 0% 63.9%);
	--accent: hsl(0 0% 14.9%);
	--accent-foreground: hsl(0 0% 98%);
	--destructive: hsl(0 84% 60%);
	--destructive-foreground: hsl(0 0% 98%);
	--border: hsl(0 0% 14.9%);
	--input: hsl(0 0% 14.9%);
	--ring: hsl(0 0% 83.1%);
	--chart-1: hsl(220 70% 50%);
	--chart-2: hsl(160 60% 45%);
	--chart-3: hsl(30 80% 55%);
	--chart-4: hsl(280 65% 60%);
	--chart-5: hsl(340 75% 55%);
	--sidebar-background: hsl(0 0% 7%);
	--sidebar-foreground: hsl(0 0% 95.9%);
	--sidebar-primary: hsl(360, 100%, 100%);
	--sidebar-primary-foreground: hsl(0 0% 100%);
	--sidebar-accent: hsl(0 0% 15.9%);
	--sidebar-accent-foreground: hsl(240 4.8% 95.9%);
	--sidebar-border: hsl(0 0% 15.9%);
	--sidebar-ring: hsl(217.2 91.2% 59.8%);
	--sidebar: hsl(240 5.9% 10%);
}

@layer base {
	* {
		@apply border-border outline-ring/50;
	}
	
	body {
		@apply bg-background text-foreground;
	}
}

/* Pipopa animations */
@keyframes float {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-10px);
	}
}

@keyframes slideUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@keyframes slideIn {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Typing animation */
@keyframes typing-1 {
	0%, 80%, 100% {
		transform: scale(1);
		opacity: 0.5;
	}
	40% {
		transform: scale(1.2);
		opacity: 1;
	}
}

@keyframes typing-2 {
	0%, 80%, 100% {
		transform: scale(1);
		opacity: 0.5;
	}
	40% {
		transform: scale(1.2);
		opacity: 1;
	}
}

@keyframes typing-3 {
	0%, 80%, 100% {
		transform: scale(1);
		opacity: 0.5;
	}
	40% {
		transform: scale(1.2);
		opacity: 1;
	}
}

.typing-dot:nth-child(1) {
	animation: typing-1 1.4s infinite ease-in-out;
}

.typing-dot:nth-child(2) {
	animation: typing-2 1.4s infinite ease-in-out;
	animation-delay: 0.2s;
}

.typing-dot:nth-child(3) {
	animation: typing-3 1.4s infinite ease-in-out;
	animation-delay: 0.4s;
}

.animate-float {
	animation: float 3s ease-in-out infinite;
}

.animate-slide-up {
	animation: slideUp 0.6s ease-out;
}

.animate-fadeIn {
	animation: fadeIn 0.8s ease-out;
}

.animate-slideIn {
	animation: slideIn 0.6s ease-out;
}

.animate-fadeInUp {
	animation: fadeInUp 0.8s ease-out;
}

/* Gradient backgrounds */
.bg-gradient-primary {
	background: linear-gradient(135deg, #6366F1, #4F46E5);
}

.bg-gradient-hero {
	background: linear-gradient(135deg, rgba(99, 102, 241, 0.02) 0%, rgba(6, 182, 212, 0.02) 50%, rgba(245, 158, 11, 0.02) 100%);
}

.logo {
	font-size: 1.8rem;
	font-weight: 800;
	background: linear-gradient(135deg, #6366f1, #06b6d4);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	letter-spacing: -0.025em;
	cursor: pointer;
	text-decoration: none;
}

.el-form {
	.el-button,
	.el-input--large,
	.el-form-item__label {
		font-size: 15px;
	}
	
	.el-form-item {
		margin-bottom: 22px;
		
		.el-form-item__error {
			font-size: 14px;
		}
		
		&.mb-0 {
			margin-bottom: 0;
		}
	}
}

.breadcrumb {
	ul li a {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-content: center;
		justify-content: flex-start;
		align-items: center;
		
		svg {
			margin-right: 5px;
		}
	}
}

.post-sticky {
	&.bg-gray-50 {
		background-color: #f9f9f9;
	}
	
	.el-form-item {
		margin-bottom: 0;
	}
	
	.el-form-item .el-form-item__error {
		display: none;
	}
	
	.el-input__wrapper,
	.el-form-item.is-error,
	.el-input__wrapper .el-input,
	.el-form-item .el-input__inner {
		background-color: transparent;
		border-color: transparent!important;
	}
	
	.el-form-item .el-input .el-input__wrapper,
	.el-form-item.is-error .el-input .el-input__wrapper {
		box-shadow: 0 0 0 0 var(--el-color-danger) inset;
	}
	
	.el-form-item .el-input__inner {
		font-size: 24px;
		color: #000;
		font-weight: 500;
	}
}

.article-form {
	.el-form-item,
	.el-form-item .advanced-editor {
		outline: none;
	}
	
	.editor-content {
		width: 90%;
		max-width: 900px;
	}
	
	.form-controls {
		height: calc(100vh - 100px);
		overflow: hidden;
		
		.right-sidebar {
			padding-bottom: 80px;
			height: calc(100vh - 150px);
			overflow-y: auto;
			
			.el-collapse-item__title {
				font-size: 15px;
				padding-left: 12px;
				color: #6a7282;
				font-weight: 500;
			}
			
			.el-collapse-item__header {
				background-color: #fbfbfb;
			}
			
			.el-collapse-item__content {
				padding-bottom: 0;
			}
			
			.el-textarea__inner {
				font-size: 15px;
			}
			
			.upload-image-form.has-image .el-upload .el-upload-dragger {
				padding: 5px;
				border-width: 1px;
				border-color: green;
			}
			
			.upload-image-form.has-image .el-upload .el-upload-dragger .img-preview {
				height: 200px;
				width: 100%;
				padding: 0;
				margin: 0;
			}
		}
	}
}

.filter-section {
	.el-input {
		height: 40px;
	}
}

.el-form {
	.el-form-item {
		.sv-error-message p {
			color: #f56c6c;
			font-size: 14px;
			left: 0;
			line-height: 1;
			padding-top: 2px;
			position: absolute;
			top: 100%;
		}
		
		&.is-error.hide-fr-error {
			.el-form-item__error {
				display: none;
			}
		}
	}
}

.form-controls .sidebar .top-buttons {
	padding-left: 5px;
	padding-right: 5px;
	
	.el-button {
		padding-left: 10px;
		padding-right: 10px;
		text-align: center;
		display: inline-flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		flex-wrap: nowrap;
		margin-left: 3px;
		margin-right: 0;
		
		span {
			gap: 0;
			text-align: center;
			margin-left: 0;
			margin-right: 0;
		}
	}
}

.ProseMirror img {
	width: 100%;
}

.editor-content .tiptap.ProseMirror {

}