

	:root {
		--bg-primary: #000000;
		--bg-secondary: #16181c;
		--bg-tertiary: #1d1f23;
		--bg-hover: #22242a;
		--text-primary: #e7e9ea;
		--text-secondary: #8b8b8b;
		--text-tertiary: #6b6b6b;
		--accent-blue: #1d9bf0;
		--accent-green: #30d158;
		--accent-orange: #ff9500;
		--accent-red: #ff3b30;
	}

	* {
		margin: 0;
		padding: 0;
		box-sizing: border-box;
		letter-spacing: -.02em;
	}

	button, input, select, textarea {
		font-family: inherit;
	}

	body {
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
		background: var(--bg-primary);
		color: var(--text-primary);
		overflow-x: hidden;
		-webkit-font-smoothing: antialiased;
		min-height: 100vh;
	}

	.header {
		background: rgba(0, 0, 0, 0.8);
		position: sticky;
		top: 0;
		z-index: 100;
		backdrop-filter: blur(12px);
		display: flex;
		justify-content: center;
	}

	.header-wrapper {
		max-width: 1400px;
		width: 100%;
		display: flex;
		align-items: center;
	}

	.header-title {
		font-family: "NanumSquareNeo", -apple-system, BlinkMacSystemFont, sans-serif;
		font-weight: 800;
		font-size: 13px;
		color: #ffffff;
		padding: 8px 0 8px 16px;
		margin: 0;
		white-space: nowrap;
		display: flex;
		align-items: center;
		gap: 4px;
	}

	.header-title .ph {
		font-size: 16px;
	}

	.header-inner {
		padding: 8px 16px 8px 16px;
		display: flex;
		gap: 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		flex: 1;
	}

	.header-inner::-webkit-scrollbar {
		display: none;
	}

	.bookmark {
		padding: 6px 8px;
		background: none;
		border: none;
		color: var(--text-secondary);
		font-size: 0.75rem;
		font-weight: 800;
		cursor: pointer;
		transition: color 0.15s ease;
		white-space: nowrap;
		flex-shrink: 0;
		font-family: 'NanumSquareNeo', -apple-system, BlinkMacSystemFont, sans-serif;
	}

	.bookmark:hover {
		color: var(--text-primary);
	}

	.bookmark.active {
		color: var(--text-primary);
	}

	.container {
		max-width: 1400px;
		margin: 0 auto;
		padding: 0 16px 16px;
	}

	.update-time {
		text-align: center;
		padding: 4px 0 10px 0;
		font-size: 12px;
		color: var(--text-tertiary);
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
	}

	.update-time .ph {
		font-size: 14px;
	}

	.park-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
		gap: 16px;
	}

	.park-card {
		background: var(--bg-secondary);
		border-radius: 16px;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		scroll-margin-top: 56px;
	}

	.park-card .cctv-container {
		order: 1;
	}

	.park-card .park-header {
		order: 2;
	}

	.park-card .weather-section {
		order: 3;
	}

	.park-header {
		padding: 16px 16px 12px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		font-family: 'NanumSquareNeo', -apple-system, BlinkMacSystemFont, sans-serif;
	}

	.park-info {
		flex: 1;
		display: flex;
		align-items: center;
		gap: 6px;
	}

	.park-name {
		font-size: 1.2rem;
		font-weight: 900;
		color: var(--text-primary);
		letter-spacing: -0.02em;
	}

	.park-location {
		font-size: 0.75rem;
		color: var(--text-secondary);
		font-weight: 700;
	}

	.park-weather-main {
		display: flex;
		align-items: center;
		gap: 6px;
	}

	.main-temp {
		font-size: 1.2rem;
		font-weight: 400;
		color: var(--text-primary);
	}

	.main-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 28px;
		height: 24px;
	}

	.main-icon img {
		width: 28px;
		height: 28px;
	}

	.loading-spinner {
		width: 20px;
		height: 20px;
		border: 2px solid rgba(255,255,255,0.1);
		border-top-color: rgba(255,255,255,0.5);
		border-radius: 50%;
		animation: spin 0.8s linear infinite;
	}

	.loading-spinner.small {
		width: 18px;
		height: 18px;
		border-width: 2px;
	}

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

	/* 날씨 정보 섹션 */
	.weather-stats-compact {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1px;
		padding: 0 14px 12px;
		background: transparent;
	}

	.stat-compact {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
		padding: 10px 8px;
		background: var(--bg-tertiary);
	}

	.stat-compact:first-child {
		border-radius: 8px 0 0 0;
	}

	.stat-compact:nth-child(3) {
		border-radius: 0 8px 0 0;
	}

	.stat-compact:nth-child(4) {
		border-radius: 0 0 0 8px;
	}

	.stat-compact:nth-child(6),
	.stat-compact.frost-stat:last-child,
	.stat-compact.dust-stat:last-child {
		border-radius: 0 0 8px 0;
	}

	.stat-compact-label {
		color: var(--text-secondary);
		font-size: 0.7rem;
	}

	.stat-compact-value {
		color: var(--text-primary);
		font-size: 0.85rem;
		font-weight: 500;
	}

	.stat-compact-value .skeleton-inline {
		display: inline-block;
		width: 30px;
		height: 14px;
		background: linear-gradient(90deg, var(--bg-hover) 25%, rgba(255,255,255,0.05) 50%, var(--bg-hover) 75%);
		background-size: 200% 100%;
		animation: loading 1.5s ease-in-out infinite;
		border-radius: 3px;
		vertical-align: middle;
	}

	/* 일출/일몰 전용 스타일 */
	.sun-stat {
		flex-direction: row;
		justify-content: center;
		gap: 12px;
	}

	.sun-stat .sun-item {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
	}

	.sun-stat .sun-label {
		color: var(--text-secondary);
		font-size: 0.7rem;
	}

	.sun-stat .sun-value {
		color: var(--text-primary);
		font-size: 0.85rem;
		font-weight: 500;
	}

	/* 통제 정보 섹션 (별도 분리) */
	.control-section {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		padding: 0 14px 10px;
		margin-bottom: 8px;
	}

	.control-item {
		display: inline-flex;
		align-items: center;
		gap: 4px;
		padding: 4px 8px 4px 5px;
		border-radius: 20px;
		font-size: 0.75rem;
		cursor: pointer;
		transition: all 0.15s ease;
		background: rgba(255,255,255,0.04);
		text-decoration: none;
	}

	.control-item:hover {
		filter: brightness(1.1);
	}

	.control-item .office {
		color: rgba(255,255,255,0.6);
		font-weight: 400;
	}

	.control-item .status {
		font-weight: 600;
	}

	.control-item .status.normal {
		color: var(--accent-green);
	}

	.control-item .status.partial {
		color: var(--accent-orange);
	}

	.control-item .status.closed {
		color: var(--accent-red);
	}

	.control-item .control-date {
		color: var(--text-secondary);
		font-size: 0.7rem;
		font-weight: 400;
	}

	.cctv-container {
		position: relative;
		width: 100%;
		background: var(--bg-tertiary);
		overflow: hidden;
		border-radius: 16px 16px 0 0;
	}

	.cctv-container::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: linear-gradient(90deg, var(--bg-tertiary) 0%, var(--bg-hover) 50%, var(--bg-tertiary) 100%);
		background-size: 200% 100%;
		animation: skeleton-loading 1.5s ease-in-out infinite;
		z-index: 1;
	}

	.cctv-hint {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		color: var(--text-tertiary);
		font-size: 0.7rem;
		line-height: 1.6;
		z-index: 1;
		opacity: 0;
		transition: opacity 0.5s ease;
		pointer-events: none;
	}

	.cctv-hint.visible {
		opacity: 1;
	}

	@keyframes skeleton-loading {
		0% { background-position: 200% 0; }
		100% { background-position: -200% 0; }
	}

	.cctv-frame {
		width: 100%;
		aspect-ratio: 16/9;
		object-fit: cover;
		display: block;
		position: relative;
		z-index: 2;
	}

	/* Asahidake 4:3 aspect ratio for 640x480 CCTV */
	#asahidake .cctv-frame {
		aspect-ratio: 4/3;
	}

	/* Seorak 4:3 aspect ratio for CCTV */
	#seorak .cctv-frame {
		aspect-ratio: 4/3;
	}

	/* Asahidake: 2 columns for weather stats (2 items per row) */
	#asahidake .weather-stats-compact {
		grid-template-columns: repeat(2, 1fr);
	}

	#asahidake .stat-compact:nth-child(2) {
		border-radius: 0 8px 0 0;
	}

	#asahidake .stat-compact:nth-child(3) {
		border-radius: 0 0 0 8px;
	}

	#asahidake .stat-compact:nth-child(4) {
		border-radius: 0 0 8px 0;
	}

	.cctv-tabs {
		display: flex;
		gap: 3px;
		padding: 8px 10px;
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 10;
	}

	.cctv-tab {
		padding: 5px 12px;
		background: rgba(0,0,0,0.6);
		backdrop-filter: blur(8px);
		border: none;
		color: rgba(255,255,255,0.7);
		font-size: 0.75rem;
		font-weight: 500;
		border-radius: 14px;
		cursor: pointer;
		transition: all 0.15s ease;
	}

	.cctv-tab:hover {
		background: rgba(0,0,0,0.75);
		color: rgba(255,255,255,0.9);
	}

	.cctv-tab.active {
		background: #fff;
		color: #000;
		font-weight: 600;
	}

	.fullscreen-btn {
		position: absolute;
		top: 10px;
		right: 10px;
		z-index: 10;
		background: rgba(0,0,0,0.6);
		backdrop-filter: blur(8px);
		border: none;
		color: rgba(255,255,255,0.8);
		width: 36px;
		height: 36px;
		border-radius: 8px;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: all 0.15s ease;
	}

	.fullscreen-btn:hover {
		background: rgba(0,0,0,0.8);
		color: #fff;
	}

	.fullscreen-btn .ph {
		font-size: 20px;
	}

	.weather-section {
		padding: 0;
	}

	/* Loading skeleton styles */
	.skeleton {
		background: linear-gradient(90deg, var(--bg-tertiary) 25%, rgba(255,255,255,0.05) 50%, var(--bg-tertiary) 75%);
		background-size: 200% 100%;
		animation: loading 1.5s ease-in-out infinite;
		border-radius: 4px;
	}

	@keyframes loading {
		0% { background-position: 200% 0; }
		100% { background-position: -200% 0; }
	}

	.loading-state {
		padding: 16px;
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.skeleton-text {
		height: 16px;
		width: 100%;
	}

	.skeleton-text.short {
		width: 60%;
	}

	.skeleton-forecast {
		display: flex;
		gap: 6px;
		flex-wrap: wrap;
	}

	.skeleton-forecast-item {
		flex: 1;
		min-width: 68px;
		height: 80px;
		border-radius: 8px;
	}

	/* Error state styles */
	.error-state {
		padding: 16px;
		text-align: center;
		color: var(--text-secondary);
		font-size: 0.875rem;
	}

	.error-state .ph {
		font-size: 32px;
		color: var(--accent-orange);
		margin-bottom: 8px;
	}

	.error-state button {
		margin-top: 12px;
		padding: 8px 16px;
		background: var(--bg-tertiary);
		border: none;
		border-radius: 8px;
		color: var(--text-primary);
		cursor: pointer;
		font-size: 0.875rem;
		transition: background 0.2s;
	}

	.error-state button:hover {
		background: var(--bg-hover);
	}

	.forecast-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 4px;
		padding: 10px;
		margin: 0 14px 14px;
		cursor: pointer;
		color: var(--text-secondary);
		font-size: 0.75rem;
		transition: color 0.2s;
	}

	.forecast-toggle:hover {
		color: var(--text-primary);
	}

	.forecast-toggle.open {
		color: var(--text-primary);
	}

	.forecast-toggle .toggle-icon {
		font-size: 13px;
		transition: transform 0.2s;
	}

	.forecast-toggle.open .toggle-icon {
		transform: rotate(180deg);
	}

	.forecast-compact {
		padding: 0 14px 14px;
		display: none;
	}

	.forecast-compact.open {
		display: block;
	}

	.kma-link {
		display: block;
		text-align: center;
		padding: 10px;
		margin-top: 12px;
		color: var(--text-secondary);
		font-size: 0.75rem;
		text-decoration: none;
		transition: color 0.2s;
	}

	.kma-link:hover {
		color: var(--text-primary);
	}

	.forecast-list {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	.forecast-day-header {
		font-size: 0.75rem;
		font-weight: 500;
		color: var(--text-secondary);
		margin-bottom: 8px;
		display: flex;
		align-items: center;
	}

	.forecast-day-header span {
		color: var(--text-secondary);
		font-weight: 400;
		margin-left: 6px;
	}

	.forecast-items {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
	}

	.forecast-items.today .forecast-item {
		flex: 1 1 calc(33.333% - 4px);
		max-width: calc(33.333% - 4px);
	}

	.forecast-item {
		flex: 1;
		min-width: 68px;
		padding: 8px 6px;
		text-align: center;
		background: var(--bg-tertiary);
		border-radius: 8px;
	}

	.forecast-item-time {
		font-size: 0.75rem;
		color: var(--text-secondary);
		font-weight: 500;
		margin-bottom: 6px;
	}

	.forecast-item-icon img {
		width: 36px;
		height: 36px;
		filter: brightness(1.1);
	}

	.forecast-item-temp {
		font-size: 1rem;
		font-weight: 500;
		color: var(--text-primary);
		margin-bottom: 6px;
	}

	.forecast-item-details {
		display: flex;
		flex-direction: column;
		gap: 2px;
		font-size: 0.75rem;
		color: var(--text-primary);
	}

	.forecast-item-frost {
		font-size: 0.7rem;
		font-weight: 500;
		margin-top: 4px;
	}

	/* Forecast Table */
	.forecast-table-wrapper {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		border: 1px solid var(--bg-hover);
		box-sizing: border-box;
		border-radius: 8px;
	}

	.forecast-table {
		width: 100%;
		border-collapse: collapse;
		font-size: 0.8rem;
	}

	.forecast-table th,
	.forecast-table td {
		text-align: center;
		white-space: nowrap;
	}

	.forecast-table th {
		position: sticky;
		top: 0;
		background: var(--bg-secondary);
		z-index: 1;
		font-weight: 500;
		color: var(--text-secondary);
		font-size: 0.7rem;
		min-width: 60px;
		vertical-align: bottom;
		border-bottom: 1px solid var(--bg-tertiary);
		padding: 6px 6px;
	}

	.forecast-table td {
		padding: 8px 6px;
	}

	.forecast-table-date {
		font-size: 0.7rem;
		color: var(--text-primary);
		margin-bottom: 2px;
	}

	.forecast-table-hour {
		font-size: 0.7rem;
		color: var(--text-secondary);
	}

	.forecast-table-label {
		position: sticky;
		left: 0;
		background: linear-gradient(to right, var(--bg-secondary) 80%, transparent 100%);
		font-weight: 500;
		color: var(--text-primary);
		text-align: left;
		padding-left: 12px;
		z-index: 2;
		min-width: 50px;
	}

	.forecast-table th.forecast-table-label {
		z-index: 3;
		font-size: 0.8rem;
		color: var(--text-primary);
		vertical-align: middle;
		background: linear-gradient(to right, var(--bg-secondary) 80%, transparent 100%);
	}

	.forecast-table tbody tr:first-child .forecast-table-label {
		z-index: 2;
	}

	.forecast-table-row-icon td:not(.forecast-table-label) {
		padding: 4px;
	}

	.forecast-table-row-icon img {
		width: 24px;
		height: 24px;
	}

	.forecast-table-temp {
		color: var(--text-primary);
		font-weight: 500;
		font-size: 0.85rem;
	}

	.forecast-table-precip,
	.forecast-table-humidity,
	.forecast-table-wind,
	.forecast-table-frost {
		color: var(--text-secondary);
		font-size: 0.75rem;
	}

	/* 피드백 FAB */
	.feedback-fab {
		position: fixed;
		bottom: 24px;
		right: 24px;
		width: 48px;
		height: 48px;
		border-radius: 50%;
		background: var(--bg-secondary);
		border: 1px solid var(--bg-hover);
		color: var(--text-secondary);
		font-size: 22px;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 200;
		transition: all 0.2s;
	}

	.feedback-fab:hover {
		background: var(--bg-hover);
		color: var(--text-primary);
	}

	/* 피드백 오버레이 */
	.feedback-overlay {
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		z-index: 300;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.25s;
	}

	.feedback-overlay.open {
		opacity: 1;
		pointer-events: auto;
	}

	/* 피드백 모달 */
	.feedback-modal {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		background: var(--bg-secondary);
		border-radius: 16px 16px 0 0;
		padding: 0 20px 24px;
		z-index: 301;
		transform: translateY(100%);
		transition: transform 0.3s ease;
	}

	.feedback-modal.open {
		transform: translateY(0);
	}

	.feedback-modal-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 16px 0;
		font-size: 0.9rem;
		font-weight: 600;
		color: var(--text-primary);
	}

	.feedback-modal-close {
		background: none;
		border: none;
		color: var(--text-secondary);
		font-size: 20px;
		cursor: pointer;
		padding: 4px;
		display: flex;
		align-items: center;
	}

	.feedback-modal textarea {
		width: 100%;
		background: var(--bg-tertiary);
		border: 1px solid var(--bg-hover);
		border-radius: 10px;
		color: var(--text-primary);
		font-size: 0.85rem;
		padding: 10px 12px;
		resize: none;
		outline: none;
		transition: border-color 0.2s;
	}

	.feedback-modal textarea::placeholder {
		color: var(--text-tertiary);
	}

	.feedback-modal textarea:focus {
		border-color: var(--text-tertiary);
	}

	.feedback-modal #feedback-submit {
		width: 100%;
		margin-top: 10px;
		padding: 12px;
		background: var(--bg-tertiary);
		border: 1px solid var(--bg-hover);
		border-radius: 10px;
		color: var(--text-secondary);
		font-size: 0.85rem;
		cursor: pointer;
		transition: all 0.2s;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 4px;
	}

	.feedback-modal #feedback-submit:hover {
		background: var(--bg-hover);
		color: var(--text-primary);
	}

	.feedback-modal #feedback-submit:disabled {
		opacity: 0.4;
		pointer-events: none;
	}

	@media (min-width: 600px) {
		.feedback-modal {
			left: auto;
			right: 24px;
			bottom: 80px;
			width: 360px;
			border-radius: 16px;
			padding-bottom: 20px;
		}
	}

	.footer {
		text-align: center;
		padding: 32px 20px;
		color: var(--text-secondary);
		font-size: 0.75rem;
		margin-top: 24px;
	}

	@media (max-width: 1200px) {
		.park-grid {
			grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
		}
	}

	@media (max-width: 768px) {
		.park-grid {
			grid-template-columns: 1fr;
			gap: 12px;
		}

		.container {
			padding: 0 12px 12px;
		}

		.header {
			padding: 0;
		}

		.park-header {
			padding: 14px;
		}

		.main-icon img {
			width: 28px;
			height: 28px;
		}

		.forecast-item {
			min-width: 60px;
			padding: 8px 4px;
		}

		.forecast-item-icon img {
			width: 28px;
			height: 28px;
		}
	}

	/* 주말 날씨 */
	.weekend-summary {
		background: var(--bg-secondary);
		border-radius: 12px;
		overflow: hidden;
		margin-bottom: 12px;
	}

	.weekend-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 14px;
		cursor: pointer;
		font-family: 'NanumSquareNeo', -apple-system, BlinkMacSystemFont, sans-serif;
		font-size: 0.9rem;
		font-weight: 800;
		color: var(--text-secondary);
		transition: background 0.2s;
	}

	.weekend-toggle.open {
		color: var(--text-primary);
	}

	.weekend-toggle .toggle-icon {
		font-size: 20px;
		transition: transform 0.2s;
		color: var(--text-secondary);
	}

	.weekend-toggle.open .toggle-icon {
		transform: rotate(180deg);
		color: var(--text-primary);
	}

	.weekend-content {
		display: none;
		padding: 0 14px 14px;
	}

	.weekend-content.open {
		display: block;
	}

	.weekend-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 12px;
	}

	.weekend-legend {
		display: flex;
		gap: 10px;
		font-size: 0.7rem;
		color: var(--text-secondary);
	}

	.weekend-legend span {
		display: flex;
		align-items: center;
		gap: 3px;
	}


	.weekend-date-info {
		font-size: 0.7rem;
		color: var(--text-secondary);
		margin-top: 2px;
	}

	.ai-box {
		margin-bottom: 12px;
		background: var(--bg-tertiary);
		border-radius: 8px;
		font-size: 0.85rem;
		line-height: 1.5;
		color: var(--text-primary);
	}

	.ai-recommend-btn {
		width: 100%;
		padding: 12px 14px;
		background: transparent;
		border: none;
		font-family: inherit;
		font-size: 0.85rem;
		line-height: 1.5;
		color: var(--text-secondary);
		cursor: pointer;
		transition: all 0.2s;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
	}

	.ai-recommend-btn .ph {
		font-size: 1rem;
	}

	.ai-recommend-btn .loading-spinner {
		border-color: rgba(255,255,255,0.1);
		border-top-color: rgba(255,255,255,0.5);
	}

	.ai-recommend-btn:hover {
		color: var(--text-primary);
	}

	.ai-recommend-btn:disabled {
		pointer-events: none;
		opacity: 0.4;
	}

	.ai-box.has-content .ai-recommend-btn {
		display: none;
	}

	.ai-comment {
		display: none;
		padding: 12px 14px;
	}

	.ai-comment.visible {
		display: block;
	}

	.ai-comment.loading.visible {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 12px 14px;
		color: var(--text-secondary);
	}

	.ai-comment.loading .spinner {
		width: 20px;
		height: 20px;
		border: 2px solid rgba(255,255,255,0.1);
		border-top-color: rgba(255,255,255,0.5);
		border-radius: 50%;
		animation: spin 0.8s linear infinite;
	}

	.ai-comment h4 {
		font-size: 0.9rem;
		font-weight: 600;
		color: var(--text-primary);
		margin: 0 0 6px 0;
	}

	.ai-comment h4:not(:first-child) {
		margin-top: 12px;
	}

	.ai-comment hr {
		border: 0;
		border-top: 0.5px solid rgba(255,255,255,0.1);
		margin: 12px 0;
	}

	.ai-comment p {
		margin: 0 0 4px 0;
	}

	.ai-comment strong {
		color: var(--text-primary);
		font-weight: 600;
	}

	.ai-comment ul {
		margin: 4px 0;
		padding-left: 18px;
	}

	.ai-comment li {
		margin-bottom: 2px;
	}

	.weekend-grid {
		display: grid;
		grid-template-columns: repeat(6, 1fr);
		gap: 8px;
	}

	.weekend-item {
		background: var(--bg-tertiary);
		border-radius: 8px;
		padding: 10px 8px;
		text-align: center;
		cursor: pointer;
		transition: background 0.2s;
		position: relative;
	}

	.weekend-item:hover {
		background: var(--bg-hover);
	}

	.weekend-item-name {
		font-size: 0.75rem;
		font-weight: 500;
		color: var(--text-primary);
		margin-bottom: 6px;
	}

	.weekend-item-weather {
		display: flex;
		justify-content: center;
		gap: 8px;
	}

	.weekend-item-day {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
	}

	.weekend-item-day img {
		width: 24px;
		height: 24px;
	}

	.weekend-item-temp {
		font-size: 0.7rem;
		color: var(--text-primary);
		font-variant-numeric: tabular-nums;
	}

	.weekend-item-label {
		font-size: 0.7rem;
		color: var(--text-secondary);
	}

	.weekend-item-icons {
		position: absolute;
		top: 4px;
		right: 4px;
		display: flex;
		flex-direction: column;
		gap: 1px;
	}

	.weekend-day-icons {
		display: flex;
		gap: 2px;
		min-height: 14px;
	}

	.weekend-icon {
		font-size: 14px;
	}

	.weekend-icon.frost { color: #1a7fc4; }
	.weekend-icon.dust-bad { color: #ff9500; }
	.weekend-icon.dust-verybad { color: #ff3b30; }

	.weekend-no-data {
		color: var(--text-secondary);
		font-size: 0.75rem;
		padding: 40px 20px;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		grid-column: 1 / -1;
	}

	.weekend-item-city {
		color: var(--text-tertiary);
		font-size: 0.65rem;
		font-weight: 400;
	}

	.weekend-mid-notice {
		grid-column: 1 / -1;
		text-align: center;
		color: var(--text-tertiary);
		font-size: 0.7rem;
		padding: 8px 0 0;
	}

	@media (max-width: 600px) {
		.weekend-grid {
			grid-template-columns: repeat(3, 1fr);
		}
	}


	/* Toast Notifications */
	.toast-container {
		position: fixed;
		top: 80px;
		right: 20px;
		z-index: 1000;
		display: flex;
		flex-direction: column;
		gap: 10px;
		pointer-events: none;
	}

	.toast {
		background: var(--bg-secondary);
		border-left: 3px solid var(--accent-red);
		padding: 12px 16px;
		border-radius: 8px;
		box-shadow: 0 4px 12px rgba(0,0,0,0.3);
		color: var(--text-primary);
		font-size: 0.85rem;
		max-width: 300px;
		pointer-events: auto;
		animation: slideIn 0.3s ease;
		opacity: 0;
		animation-fill-mode: forwards;
	}

	.toast.error {
		border-left-color: var(--accent-red);
	}

	.toast.warning {
		border-left-color: var(--accent-orange);
	}

	.toast.info {
		border-left-color: var(--accent-blue);
	}

	.toast.fade-out {
		animation: fadeOut 0.3s ease forwards;
	}

	@keyframes slideIn {
		from {
			transform: translateX(400px);
			opacity: 0;
		}
		to {
			transform: translateX(0);
			opacity: 1;
		}
	}

	@keyframes fadeOut {
		to {
			opacity: 0;
			transform: translateX(400px);
		}
	}

	@media (max-width: 768px) {
		.toast-container {
			top: 60px;
			right: 12px;
			left: 12px;
		}

		.toast {
			max-width: none;
		}
	}
