::-ms-expand {
	display: none;
}
:root {
	--bg: #edf3fb;
	--border: #dbe4f0;
	--error: #ef4444;
	--focus: rgba(37, 99, 235, .32);
	--muted: #64748b;
	--on-primary: #ffffff;
	--primary: #2563eb;
	--radius-lg: 34px;
	--radius-md: 22px;
	--radius-sm: 14px;
	--shadow-md: 0 28px 60px -34px rgb(15 23 42 / .38);
	--shadow-sm: 0 10px 24px -18px rgb(15 23 42 / .22);
	--success: #10b981;
	--surface: #ffffff;
	--text: #0f172a;
	--warn: #f59e0b;
}
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	-webkit-tap-highlight-color: transparent;
}
*,
::before,
::after {
	box-sizing: border-box;
}
a {
	color: inherit;
	text-decoration: none;
}
a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
	touch-action: manipulation;
}
body {
	background: radial-gradient(circle at top, rgb(37 99 235 / .14), transparent 24rem), linear-gradient(180deg, #f6faff 0%, var(--bg) 100%);
	color: var(--text);
	font-family: 'Manrope', sans-serif;
	line-height: 1.45;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
}
body.nav-open {
	overflow: hidden;
}
button {
	background: none;
	border: 0;
}
button,
input,
textarea {
	font: inherit;
}
button:focus,
input:focus,
select:focus,
textarea:focus,
[contenteditable]:focus {
	outline: 0;
}
code {
	font-family: monospace;
	font-size: .95em;
}
html {
	background: linear-gradient(180deg, #f7fbff, #eaf1f9);
	scroll-behavior: smooth;
}
img,
svg {
	display: block;
	max-width: 100%;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
	-webkit-appearance: none;
}
input[type="number"] {
	-moz-appearance: textfield;
}
small {
	font-size: .74rem;
	font-weight: 600;
}
strong {
	font-weight: 750;
}
table {
	border-collapse: collapse;
}
.accordion-icon {
	color: var(--muted);
	height: 1.1rem;
	transition: transform .18s ease;
	width: 1.1rem;
}
.accordion-item {
	overflow: hidden;
}
.accordion-item.active .accordion-icon {
	transform: rotate(180deg);
}
.accordion-item.active .accordion-panel {
	padding-bottom: 1rem;
}
.accordion-panel {
	max-height: 0;
	overflow: hidden;
	padding: 0 1rem;
	transition: max-height .22s ease;
}
.accordion-trigger {
	align-items: center;
	color: var(--text);
	cursor: pointer;
	display: flex;
	font-weight: 750;
	gap: .75rem;
	justify-content: space-between;
	padding: 1rem;
	text-align: left;
	width: 100%;
}
.alert {
	align-items: flex-start;
	display: flex;
	gap: .75rem;
	padding: .95rem;
}
.alert strong {
	display: block;
	margin-bottom: .12rem;
}
.alert--error {
	background: rgb(239 68 68 / .08);
	border-color: rgb(239 68 68 / .18);
	color: #991b1b;
}
.alert--success {
	background: rgb(16 185 129 / .09);
	border-color: rgb(16 185 129 / .18);
	color: #065f46;
}
.alert__icon {
	align-items: center;
	background: rgb(255 255 255 / .52);
	border-radius: .95rem;
	display: inline-flex;
	flex-shrink: 0;
	height: 2.4rem;
	justify-content: center;
	width: 2.4rem;
}
.app-header {
	padding: 1.8rem 1rem 0;
	position: relative;
	z-index: 4;
}
.app-header__actions {
	align-items: center;
	display: flex;
	gap: .45rem;
}
.app-header__inner {
	align-items: center;
	backdrop-filter: blur(18px);
	background: rgb(255 255 255 / .72);
	border: 1px solid rgb(255 255 255 / .65);
	border-radius: 1.2rem;
	box-shadow: var(--shadow-sm);
	display: flex;
	gap: .9rem;
	justify-content: space-between;
	padding: .95rem 1rem;
}
.app-main {
	height: calc(100% - 8.8rem);
	overflow-y: auto;
	padding: .8rem 1rem 6.7rem;
	scrollbar-width: none;
}
.app-main::-webkit-scrollbar {
	display: none;
}
.app-preview {
	display: grid;
	min-height: 100vh;
	padding: 1rem;
	place-items: center;
}
.app-shell {
	width: 100%;
}
.app-shell__device {
	background: linear-gradient(180deg, #f9fbff, #eef4fb 38%, #f5f8fd 100%);
	border: 1px solid rgb(219 228 240 / .9);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	height: min(100dvh - 2rem, 56rem);
	margin-inline: auto;
	overflow: hidden;
	position: relative;
	width: min(100%, 27rem);
}
.app-shell__device::before {
	background: rgb(15 23 42 / .92);
	border-radius: 999px;
	content: '';
	height: 1.45rem;
	left: 50%;
	position: absolute;
	top: .7rem;
	transform: translateX(-50%);
	width: 7.4rem;
	z-index: 6;
}
.app-tabbar {
	backdrop-filter: blur(18px);
	background: rgb(255 255 255 / .82);
	border: 1px solid rgb(255 255 255 / .65);
	border-radius: 1.35rem;
	bottom: .85rem;
	box-shadow: var(--shadow-sm);
	display: grid;
	gap: .4rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	left: .85rem;
	padding: .55rem;
	position: absolute;
	right: .85rem;
	z-index: 5;
}
.app-tabbar__item {
	border-radius: 1rem;
	color: var(--muted);
	display: grid;
	font-size: .7rem;
	font-weight: 750;
	gap: .28rem;
	justify-items: center;
	padding: .55rem .2rem;
}
.app-tabbar__item svg {
	height: 1.22rem;
	width: 1.22rem;
}
.app-tabbar__item--active {
	background: rgb(37 99 235 / .1);
	color: var(--primary);
}
.badge {
	align-items: center;
	background: rgb(248 250 252 / .92);
	border: 1px solid var(--border);
	border-radius: 999px;
	color: var(--muted);
	display: inline-flex;
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .04em;
	padding: .38rem .72rem;
	text-transform: uppercase;
}
.badge--primary {
	background: rgb(37 99 235 / .12);
	border-color: transparent;
	color: var(--primary);
}
.badge--success {
	background: rgb(16 185 129 / .12);
	border-color: transparent;
	color: var(--success);
}
.button,
.quick-action,
.mobile-nav-link {
	align-items: center;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	display: inline-flex;
	font-size: .96rem;
	font-weight: 750;
	justify-content: center;
	min-height: 48px;
	padding: .88rem 1rem;
	text-align: center;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}
.button--primary {
	background: linear-gradient(180deg, #3b82f6, var(--primary));
	box-shadow: 0 18px 36px -24px rgb(37 99 235 / .68);
	color: var(--on-primary);
}
.button--secondary {
	background: rgb(255 255 255 / .92);
	border-color: var(--border);
	color: var(--text);
}
.button--success {
	background: var(--success);
	color: var(--on-primary);
}
.dashboard-strip {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.feed-card {
	display: grid;
	gap: .8rem;
	padding: 1rem;
}
.feed-card__avatar {
	align-items: center;
	background: linear-gradient(180deg, rgb(37 99 235 / .16), rgb(37 99 235 / .08));
	border-radius: 999px;
	color: var(--primary);
	display: inline-flex;
	font-size: .8rem;
	font-weight: 800;
	height: 2.55rem;
	justify-content: center;
	width: 2.55rem;
}
.feed-card__top {
	align-items: center;
	display: grid;
	gap: .75rem;
	grid-template-columns: auto 1fr auto;
}
.feed-card__top time {
	color: var(--muted);
	font-size: .8rem;
	font-weight: 700;
}
.form-error {
	color: var(--error);
	display: none;
	font-size: .8rem;
}
.form-error.active {
	display: block;
}
.form-field {
	display: grid;
	gap: .42rem;
}
.form-input {
	background: rgb(255 255 255 / .94);
	border: 1px solid var(--border);
	border-radius: 1rem;
	color: var(--text);
	min-height: 48px;
	padding: .85rem 1rem;
	width: 100%;
}
.form-input--textarea {
	min-height: 7.8rem;
	resize: vertical;
}
.form-input.is-invalid {
	border-color: var(--error);
}
.form-input.is-valid {
	border-color: var(--success);
}
.form-label {
	color: var(--text);
	font-size: .88rem;
	font-weight: 700;
}
.form-shell {
	display: grid;
	gap: .9rem;
}
.hero-panel {
	background: linear-gradient(180deg, rgb(255 255 255 / .96), rgb(236 244 255 / .96));
	display: grid;
	gap: 1rem;
	padding: 1.25rem;
}
.hero-panel h1 {
	font-size: 1.95rem;
	letter-spacing: -.04em;
	line-height: 1.05;
}
.hero-panel p {
	color: var(--muted);
	font-size: .98rem;
}
.hero-panel,
.metric-card,
.section-block,
.feed-card,
.pattern-card,
.accordion-item,
.alert,
.settings-row {
	background: rgb(255 255 255 / .82);
	border: 1px solid rgb(255 255 255 / .66);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
}
.hero-panel__actions {
	display: grid;
	gap: .7rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hero-panel__eyebrow {
	color: var(--muted);
	font-size: .82rem;
	font-weight: 700;
}
.hero-panel__meta {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}
.hidden {
	display: none !important;
}
.icon-button {
	align-items: center;
	border-radius: 999px;
	color: var(--text);
	cursor: pointer;
	display: inline-flex;
	height: 2.75rem;
	justify-content: center;
	width: 2.75rem;
}
.icon-button svg,
.alert__icon svg,
.accordion-icon,
.app-tabbar__item svg {
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}
.logo {
	align-items: center;
	display: inline-flex;
	font-weight: 800;
	gap: .8rem;
	letter-spacing: -.03em;
	min-width: 0;
}
.logo span:last-child {
	display: grid;
	gap: .08rem;
}
.logo strong {
	font-size: 1rem;
}
.logo--small {
	font-size: .98rem;
}
.logo-mark {
	align-items: center;
	background: linear-gradient(180deg, rgb(37 99 235 / .16), rgb(37 99 235 / .08));
	border-radius: 1rem;
	color: var(--primary);
	display: inline-flex;
	flex-shrink: 0;
	height: 2.4rem;
	justify-content: center;
	width: 2.4rem;
}
.logo-mark svg {
	fill: currentColor;
	height: 1.2rem;
	width: 1.2rem;
}
.metric-card {
	display: grid;
	gap: .45rem;
	padding: 1rem;
}
.metric-card p,
.feed-card p,
.pattern-card p,
.settings-row p {
	color: var(--muted);
	font-size: .9rem;
}
.metric-card span {
	color: var(--muted);
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
}
.metric-card strong {
	font-size: 1.7rem;
	letter-spacing: -.04em;
}
.mobile-nav-link {
	background: rgb(248 250 252 / .95);
	border-color: var(--border);
	color: var(--text);
	justify-content: flex-start;
}
.mobile-nav-link--active {
	background: rgb(37 99 235 / .1);
	border-color: transparent;
	color: var(--primary);
}
.mobile-nav-link:active {
	transform: scale(.985);
}
.mobile-nav-link:focus-visible {
	box-shadow: 0 0 0 4px var(--focus);
	outline: none;
}
.mobile-nav-overlay {
	background: rgb(15 23 42 / .42);
	inset: 0;
	opacity: 0;
	position: absolute;
	transition: opacity .22s ease;
	visibility: hidden;
	z-index: 10;
}
.mobile-nav-overlay.active {
	opacity: 1;
	visibility: visible;
}
.mobile-nav-panel {
	background: linear-gradient(180deg, #ffffff, #f4f8fd);
	bottom: 0;
	box-shadow: -10px 0 32px rgb(15 23 42 / .18);
	display: flex;
	flex-direction: column;
	padding: 1rem;
	position: absolute;
	right: 0;
	top: 0;
	transform: translateX(100%);
	transition: transform .26s cubic-bezier(.4, 0, .2, 1);
	width: min(84%, 18rem);
	z-index: 11;
}
.mobile-nav-panel.active {
	transform: translateX(0);
}
.mobile-nav-panel__content {
	display: grid;
	gap: .7rem;
	margin: auto 0;
	padding: 1.4rem 0;
}
.mobile-nav-panel__header,
.mobile-nav-panel__footer {
	align-items: center;
	display: flex;
	justify-content: space-between;
}
.pattern-card {
	align-items: center;
	display: grid;
	gap: .85rem;
	grid-template-columns: 4.7rem 1fr;
	padding: .95rem;
}
.pattern-card__preview {
	background: linear-gradient(180deg, #dbeafe, #f8fbff);
	border-radius: 1.2rem;
	height: 4.7rem;
}
.pattern-card__preview--compose {
	background: linear-gradient(180deg, #d1fae5, #f0fdf4);
}
.pattern-card__preview--detail {
	background: linear-gradient(180deg, #e0f2fe, #f8fafc);
}
.pattern-card__preview--list {
	background: linear-gradient(180deg, #dbeafe, #eff6ff);
}
.quick-action {
	align-content: start;
	background: linear-gradient(180deg, rgb(248 250 252 / .98), rgb(241 245 249 / .9));
	border-color: var(--border);
	display: grid;
	justify-items: start;
	min-height: 8.75rem;
	padding: .95rem;
}
.quick-action p {
	color: var(--muted);
	font-size: .8rem;
	text-align: left;
}
.quick-action strong,
.pattern-card strong,
.feed-card strong,
.settings-row strong {
	color: var(--text);
}
.quick-action__icon {
	align-items: center;
	background: rgb(37 99 235 / .12);
	border-radius: 1rem;
	color: var(--primary);
	display: inline-flex;
	font-size: 1.2rem;
	font-weight: 800;
	height: 2.4rem;
	justify-content: center;
	margin-bottom: .7rem;
	width: 2.4rem;
}
.quick-actions {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.quick-actions,
.feed-list,
.pattern-list,
.settings-list,
.accordion,
.alert-stack {
	display: grid;
	gap: .8rem;
}
.screen-section {
	display: grid;
	gap: .9rem;
	margin-bottom: 1rem;
}
.section-block {
	display: grid;
	gap: 1rem;
	padding: 1rem;
}
.section-block--sheet {
	background: linear-gradient(180deg, rgb(255 255 255 / .95), rgb(242 247 255 / .95));
	padding-bottom: 1.15rem;
}
.section-block__heading {
	align-items: center;
	display: flex;
	gap: .8rem;
	justify-content: space-between;
}
.section-block__heading h2 {
	font-size: 1.2rem;
	letter-spacing: -.03em;
	line-height: 1.15;
	margin-top: .35rem;
}
.section-link {
	color: var(--primary);
	font-size: .88rem;
	font-weight: 700;
}
.settings-pill {
	align-items: center;
	background: rgb(37 99 235 / .1);
	border-radius: 999px;
	color: var(--primary);
	display: inline-flex;
	font-size: .75rem;
	font-weight: 750;
	justify-content: center;
	padding: .4rem .68rem;
}
.settings-row {
	align-items: center;
	display: flex;
	gap: .75rem;
	justify-content: space-between;
	padding: .95rem 1rem;
}
@media (min-width: 800px){
	.app-preview {
		padding: 2rem;
	}
	.app-shell__device {
		height: 56rem;
	}
}