/* Collaborwriter: calm, readable, no hurry. */
.cw {
	--cw-paper: #F6F0E4;
	--cw-card: #FFFBF3;
	--cw-ink: #1F2A44;
	--cw-soft: #4A5570;
	--cw-accent: #B4532A;
	--cw-accent-ink: #FFFFFF;
	--cw-line: #D9CFBC;
	--cw-ok: #E3EEDD;
	--cw-warn: #FBE9D7;
	--cw-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
	--cw-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--cw-size: 1.125rem;
	font-family: var(--cw-serif);
	font-size: var(--cw-size);
	line-height: 1.65;
	color: var(--cw-ink);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
@media (prefers-color-scheme: dark) {
	.cw {
		--cw-paper: #171C2B;
		--cw-card: #1F2638;
		--cw-ink: #EDE6D6;
		--cw-soft: #B9B3A6;
		--cw-accent: #E9966B;
		--cw-accent-ink: #171C2B;
		--cw-line: #3A4258;
		--cw-ok: #26382C;
		--cw-warn: #43301F;
	}
}
html.cw-big .cw { --cw-size: 1.375rem; }
body.cw-body { margin: 0; background: #F6F0E4; }
@media (prefers-color-scheme: dark) { body.cw-body { background: #171C2B; } }
.cw, .cw * { box-sizing: border-box; }
.cw { background: var(--cw-paper); }

.cw a { color: var(--cw-accent); text-decoration: underline; text-underline-offset: 0.15em; }
.cw a:hover { text-decoration-thickness: 2px; }
.cw :focus-visible { outline: 3px solid var(--cw-accent); outline-offset: 3px; border-radius: 4px; }
.cw h1, .cw h2, .cw h3 { font-family: var(--cw-serif); color: var(--cw-ink); line-height: 1.25; font-weight: 700; margin: 0 0 0.5em; }
.cw h1 { font-size: 2em; }
.cw h2 { font-size: 1.4em; margin-top: 1.8em; }
.cw h3 { font-size: 1.15em; margin: 0; }
.cw p { margin: 0 0 1em; }
.cw ul, .cw ol { margin: 0 0 1em; }

.cw-skip { position: absolute; left: -999px; top: 0; background: var(--cw-ink); color: var(--cw-paper) !important; padding: 0.75em 1em; z-index: 10; }
.cw-skip:focus { left: 0; }
.cw-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cw-hp { position: absolute; left: -9999px; }

.cw-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5em 1.5em; padding: 0.75em 1.25em; border-bottom: 1px solid var(--cw-line); }
.cw-brand { display: inline-flex; align-items: center; gap: 0.4em; font-size: 1.35em; text-decoration: none !important; color: var(--cw-ink) !important; min-height: 44px; }
.cw-brand b { color: var(--cw-accent); }
.cw-mark-page { fill: var(--cw-ink); }
.cw-mark-lines { stroke: var(--cw-paper); }
.cw-top ul { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.25em 1.25em; margin: 0; padding: 0; font-family: var(--cw-sans); font-size: 0.9em; }
.cw-top li a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cw-ink); }

.cw-main { flex: 1; width: 100%; max-width: 54rem; margin: 0 auto; padding: 2em 1.25em 3em; }
.cw-main:focus { outline: none; }
.cw-narrow { max-width: 36rem; margin: 0 auto; }
.cw-narrow-left { max-width: 36rem; }
.cw-foot { border-top: 1px solid var(--cw-line); padding: 1.25em; text-align: center; font-family: var(--cw-sans); font-size: 0.85em; color: var(--cw-soft); }
.cw-foot p { margin: 0; }

.cw-lead { font-size: 1.2em; color: var(--cw-soft); }
.cw-small, .cw-hint, .cw-kicker, .cw-byline { font-family: var(--cw-sans); font-size: 0.85em; color: var(--cw-soft); }
.cw-hint { display: block; font-weight: 400; }
.cw-kicker { text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.4em !important; }
.cw-hero { padding: 1.5em 0 1em; }
.cw-hero h1 { font-size: 2.4em; }

.cw-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0.5em 1.1em; font-family: var(--cw-sans); font-size: 0.95em; font-weight: 600; line-height: 1.2; color: var(--cw-ink) !important; background: transparent; border: 2px solid var(--cw-ink); border-radius: 8px; text-decoration: none !important; cursor: pointer; }
.cw-btn:hover { background: var(--cw-ink); color: var(--cw-paper) !important; }
.cw-btn-primary { background: var(--cw-accent); border-color: var(--cw-accent); color: var(--cw-accent-ink) !important; }
.cw-btn-primary:hover { background: var(--cw-ink); border-color: var(--cw-ink); }
.cw-btn-danger { border-color: var(--cw-accent); color: var(--cw-accent) !important; }
.cw-btn-small { min-height: 44px; padding: 0.3em 0.8em; font-size: 0.85em; border-width: 1px; }
.cw-btn[disabled] { opacity: 0.4; cursor: default; }
.cw-btn[disabled]:hover { background: transparent; color: var(--cw-ink) !important; }
.cw-btn[aria-pressed="true"] { background: var(--cw-ink); color: var(--cw-paper) !important; }
.cw-actions { display: flex; flex-wrap: wrap; gap: 0.6em; align-items: center; }
.cw-inline { display: inline-block; margin: 0 0 1em; }

.cw-card { background: var(--cw-card); border: 1px solid var(--cw-line); border-radius: 12px; padding: 1.1em 1.25em; }
.cw-card p:last-child { margin-bottom: 0; }
.cw-list, .cw-sections { list-style: none; padding: 0; display: grid; gap: 0.9em; }
.cw-grid { display: grid; gap: 1em; }
@media (min-width: 44rem) {
	.cw-grid-2 { grid-template-columns: 1fr 1fr; }
	.cw-grid-3 { grid-template-columns: repeat(3, 1fr); }
}
.cw-grid-3 h2 { font-size: 1.15em; margin-top: 0; }
.cw-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4em 1em; margin-bottom: 0.3em; }
.cw-row h1 { margin: 0; }
.cw-move { display: flex; gap: 0.5em; margin-top: 0.75em; }

.cw-badge { display: inline-block; font-family: var(--cw-sans); font-size: 0.75em; font-weight: 600; padding: 0.25em 0.7em; border-radius: 999px; border: 1px solid var(--cw-line); color: var(--cw-ink); background: var(--cw-paper); white-space: nowrap; }
.cw-badge-open { background: var(--cw-ok); }
.cw-badge-submitted, .cw-badge-notes { background: var(--cw-warn); }
.cw-badge-approved { background: var(--cw-ink); color: var(--cw-paper); border-color: var(--cw-ink); }

.cw-progress { height: 10px; background: var(--cw-line); border-radius: 999px; overflow: hidden; margin: 0.6em 0 0.3em; }
.cw-progress span { display: block; height: 100%; background: var(--cw-accent); }

.cw-notice, .cw-note { border-radius: 10px; padding: 0.9em 1.1em; margin: 0 0 1.25em; border: 1px solid var(--cw-line); }
.cw-notice-ok { background: var(--cw-ok); }
.cw-notice-warn, .cw-note { background: var(--cw-warn); }
.cw-note p:last-child { margin-bottom: 0; }
.cw blockquote.cw-note { margin-left: 0; margin-right: 0; font-style: normal; }

.cw-form label, .cw-filters label { display: block; font-family: var(--cw-sans); font-size: 0.95em; font-weight: 600; margin-bottom: 0.3em; }
.cw input[type="text"], .cw input[type="email"], .cw input[type="password"], .cw input[type="number"], .cw input[type="search"], .cw select, .cw textarea {
	width: 100%; min-height: 44px; padding: 0.55em 0.75em; font-family: var(--cw-serif); font-size: 1em; line-height: 1.5; color: var(--cw-ink); background: var(--cw-card); border: 1px solid var(--cw-soft); border-radius: 8px;
}
.cw fieldset { border: 1px solid var(--cw-line); border-radius: 10px; padding: 0.75em 1em; margin: 0 0 1em; }
.cw legend { font-family: var(--cw-sans); font-size: 0.95em; font-weight: 600; padding: 0 0.4em; }
.cw .cw-check { display: flex; gap: 0.6em; align-items: flex-start; font-weight: 400; font-family: var(--cw-serif); font-size: 1em; padding: 0.45em 0; min-height: 44px; }
.cw .cw-check input { width: 1.25em; height: 1.25em; margin-top: 0.25em; flex: none; accent-color: var(--cw-accent); }
.cw-filters { display: grid; gap: 0 1em; align-items: end; background: var(--cw-card); border: 1px solid var(--cw-line); border-radius: 12px; padding: 1em 1.25em 0; }
@media (min-width: 44rem) { .cw-filters { grid-template-columns: 1fr 1fr; } }

.cw details { border: 1px solid var(--cw-line); border-radius: 10px; padding: 0.4em 1em; margin: 0 0 1em; }
.cw summary { cursor: pointer; font-family: var(--cw-sans); font-size: 0.95em; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.cw details[open] > summary { margin-bottom: 0.5em; }
.cw-owner { margin-top: 2em; border-top: 1px solid var(--cw-line); }

/* Reading */
.cw-book { max-width: 38rem; margin: 0 auto; font-size: 1.1em; line-height: 1.8; }
.cw-book-inline { margin: 0; background: var(--cw-card); border: 1px solid var(--cw-line); border-radius: 12px; padding: 1.25em 1.5em; }
.cw-book section { margin-top: 3em; }
.cw-byline { font-style: italic; }
.cw-prose { max-width: 40rem; }

/* The editor */
.cw-editor-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 0.9em; margin-bottom: 0.75em; font-family: var(--cw-sans); font-size: 0.85em; color: var(--cw-soft); }
.cw-save-status { margin-left: auto; }
.cw-editor-form textarea { min-height: 60vh; font-size: 1.1em; line-height: 1.8; padding: 1.25em 1.5em; resize: vertical; }
html.cw-focus .cw-top, html.cw-focus .cw-foot, html.cw-focus .cw-hide-in-focus, html.cw-focus .cw-brief, html.cw-focus .cw-notice { display: none !important; }
html.cw-focus .cw-main { max-width: 44rem; padding-top: 1em; }
html.cw-focus .cw-editor-form textarea { min-height: 82vh; border-color: transparent; background: transparent; }

@media (prefers-reduced-motion: no-preference) {
	.cw-btn, .cw a { transition: background-color 0.15s, color 0.15s; }
}
@media (max-width: 30rem) {
	.cw h1 { font-size: 1.6em; }
	.cw-hero h1 { font-size: 1.8em; }
	.cw-editor-form textarea { padding: 1em; }
}

/* Public pages */
.cw-main-wide { max-width: 66rem; }
.cw-main-wide > section { margin-bottom: 3.5em; }
.cw-main-wide > section > h2 { margin-top: 0; font-size: 1.7em; }
.cw-hero-split { display: grid; gap: 2em; align-items: center; padding: 2em 0 1em; }
.cw-hero-split h1 { font-size: 2.8em; line-height: 1.12; }
.cw-hero-art { max-width: 20rem; margin: 0 auto; width: 100%; }
@media (min-width: 52rem) {
	.cw-hero-split { grid-template-columns: 3fr 2fr; }
}
.cw-btn-big { min-height: 52px; padding: 0.7em 1.4em; font-size: 1.05em; }
.cw-band { background: var(--cw-card); border: 1px solid var(--cw-line); border-radius: 16px; padding: 2em 1.5em; }
.cw-band .cw-lead { max-width: 44rem; margin-bottom: 0; }
.cw-band-cta { text-align: center; }
.cw-band-cta .cw-actions { justify-content: center; }
.cw-steps { list-style: none; padding: 0; display: grid; gap: 1em; counter-reset: cw-step; }
@media (min-width: 52rem) { .cw-steps { grid-template-columns: repeat(3, 1fr); } }
.cw-steps li { counter-increment: cw-step; }
.cw-steps li::before { content: counter(cw-step); display: flex; align-items: center; justify-content: center; width: 2.2em; height: 2.2em; margin-bottom: 0.6em; border-radius: 50%; background: var(--cw-accent); color: var(--cw-accent-ink); font-family: var(--cw-sans); font-weight: 700; }
.cw-main-wide .cw-card h3 { margin-bottom: 0.4em; }
.cw-prose h2 { margin-top: 1.6em; }
.cw-prose li { margin-bottom: 0.5em; }
.cw-foot ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25em 1.5em; padding: 0; margin: 0 0 0.75em; }
.cw-foot li a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 30rem) { .cw-hero-split h1 { font-size: 2em; } }
