/*
Theme Name: MacroMinds
Theme URI: https://macrominds.in
Author: MacroMinds
Description: The MacroMinds block theme, built from the MacroMinds Design System. Night by default with a Day toggle, a market ticker, Daily Wrap templates and one shared header and footer.
Version: 1.0.11
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: macrominds
*/

/* ---------- Tokens (from the MacroMinds Design System). Night is default; html[data-theme="day"] switches. ---------- */
:root, [data-theme="night"] {
	--kesar: #FF4F12; --marigold: #FFA400; --haldi: #FFE000; --rani: #FF2D78; --tota: #C6FF3D; --morpankh: #18C8D8;
	--neel: #140C2C; --paper: #FFF7E8;
	--ground: var(--neel); --surface: #211741; --surface-raised: #2F2259; --line: #3E3168; --line-strong: #8E7FCB;
	--ink: var(--paper); --ink-muted: #C9BFE6;
	--accent: var(--marigold); --on-bright: var(--neel); --accent-ink: #FFB938; --focus: var(--tota);
	--up-ink: var(--tota); --up-fill: var(--tota); --down-ink: #FF6FA3; --down-fill: var(--rani);
	--logo-bar-1: #FF4F12; --logo-bar-2: #FF7A00; --logo-bar-3: #FFA400; --logo-bar-4: #FFD000;
	--logo-macro: var(--paper); --logo-minds: var(--marigold);
	--shadow-sticker: 4px 4px 0 0 #FF2D78; --shadow-sticker-sm: 2px 2px 0 0 #FF2D78;
	--font-display: "Bricolage Grotesque", "Anek Devanagari", system-ui, sans-serif;
	--font-text: "Anek Latin", "Anek Devanagari", system-ui, sans-serif;
	--font-data: "Martian Mono", ui-monospace, monospace;
	--radius-sm: 8px; --radius-md: 14px; --radius-lg: 24px; --radius-xl: 40px; --radius-pill: 999px;
}
[data-theme="day"] {
	--ground: var(--paper); --surface: #FFFFFF; --surface-raised: #FFEBC8; --line: #EADBBC; --line-strong: #140C2C;
	--ink: var(--neel); --ink-muted: #54486F; --accent-ink: #B03200; --focus: #C4004F;
	--up-ink: #006B7A; --down-ink: #C4004F;
	--logo-bar-1: #140C2C; --logo-bar-2: #140C2C; --logo-bar-3: #140C2C; --logo-bar-4: #FF4F12;
	--logo-macro: var(--neel); --logo-minds: var(--kesar);
	--shadow-sticker: 4px 4px 0 0 #140C2C; --shadow-sticker-sm: 2px 2px 0 0 #140C2C;
}
html, body { background: var(--ground); color: var(--ink); }
*, *::before, *::after { box-sizing: border-box; }
a:focus-visible, button:focus-visible, input:focus-visible, .wp-element-button:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.mm-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mm-muted { color: var(--ink-muted); }
.mm-data { font-family: var(--font-data); letter-spacing: -0.02em; }
.mm-label { font-family: var(--font-data); font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-muted); }

/* Floods: a bright ground with neel on it. Add class mm-flood-<colour> to any Group. */
[class*="mm-flood-"] { --ink: var(--neel); --ink-muted: var(--neel); --line: var(--neel); --line-strong: var(--neel); --surface: var(--paper); --accent-ink: var(--neel); --up-ink: var(--neel); --down-ink: var(--neel); background: var(--flood) !important; color: var(--neel) !important; }
[class*="mm-flood-"] a { color: var(--neel); }
.mm-flood-kesar { --flood: var(--kesar); } .mm-flood-marigold { --flood: var(--marigold); } .mm-flood-haldi { --flood: var(--haldi); }
.mm-flood-rani { --flood: var(--rani); } .mm-flood-tota { --flood: var(--tota); } .mm-flood-morpankh { --flood: var(--morpankh); }
[class*="mm-flood-"] .wp-element-button, [class*="mm-flood-"] .mm-btn { background: var(--paper); }

/* ---------- Shapes ---------- */
.mm-card { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: var(--radius-lg); background: var(--surface); color: var(--ink); text-decoration: none; }
a.mm-card { transition: transform 90ms ease-out, box-shadow 90ms ease-out; }
a.mm-card:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow-sticker); color: var(--ink); }
.mm-panel { border-radius: var(--radius-xl); }
.is-style-mm-card { border-radius: var(--radius-lg); background: var(--surface); padding: 24px; }
.is-style-mm-callout { border-radius: var(--radius-lg); background: var(--surface); padding: 24px; box-shadow: var(--shadow-sticker); }
.mm-placeholder { border-radius: var(--radius-lg); background: var(--surface-raised); border: 2px dashed var(--line-strong); color: var(--ink-muted); display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; }

/* Buttons */
.wp-element-button, .wp-block-button__link { transition: transform 90ms ease-out, box-shadow 90ms ease-out; }
.wp-element-button:hover, .wp-block-button__link:hover { transform: translate(-1px, -1px); }
.wp-element-button:active, .wp-block-button__link:active { transform: translate(2px, 2px); box-shadow: var(--shadow-sticker-sm); }
.wp-block-button.is-style-mm-quiet .wp-block-button__link, .mm-btn-quiet { background: transparent !important; color: var(--ink) !important; border: 2px solid var(--line-strong) !important; box-shadow: none !important; }
.wp-block-button.is-style-mm-quiet .wp-block-button__link:hover, .mm-btn-quiet:hover { background: var(--surface-raised) !important; transform: none; }
.mm-btn { font-family: var(--font-text); font-size: 16px; font-weight: 600; line-height: 1; min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: var(--radius-md); border: 2px solid var(--neel); background: var(--accent); color: var(--on-bright); box-shadow: var(--shadow-sticker); cursor: pointer; text-decoration: none; white-space: nowrap; }

/* Sticker: post category labels and tags */
.mm-sticker, .wp-block-post-terms.is-style-mm-sticker a, .taxonomy-category.is-style-mm-sticker a { display: inline-block; padding: 0.4em 0.8em; border-radius: var(--radius-pill); border: 2px solid var(--neel); box-shadow: 2px 2px 0 0 var(--neel); background: var(--haldi); color: var(--neel) !important; font-family: var(--font-text); font-weight: 700; font-size: 14px; line-height: 1; white-space: nowrap; text-decoration: none; transform: rotate(-2deg); width: fit-content; align-self: flex-start; }
.wp-block-post-terms.is-style-mm-sticker .wp-block-post-terms__separator { display: none; }
.wp-block-post-terms.is-style-mm-sticker { display: flex; flex-wrap: wrap; gap: 8px; }
.mm-tone-tota { background: var(--tota) !important; } .mm-tone-morpankh { background: var(--morpankh) !important; } .mm-tone-rani { background: var(--rani) !important; } .mm-tone-paper { background: var(--paper) !important; } .mm-tone-marigold { background: var(--marigold) !important; }

/* Delta chip */
.mm-delta { display: inline-flex; align-items: center; gap: 0.35em; padding: 0.35em 0.7em; border-radius: var(--radius-pill); font-family: var(--font-data); font-weight: 600; font-size: 13px; letter-spacing: -0.02em; line-height: 1; color: var(--on-bright); white-space: nowrap; }
.mm-delta-up { background: var(--up-fill); } .mm-delta-down { background: var(--down-fill); } .mm-delta-flat { background: var(--surface-raised); color: var(--ink); }
[class*="mm-flood-"] .mm-delta { outline: 2px solid var(--neel); }

/* Ticker */
.mm-ticker { overflow: hidden; background: var(--surface); border-block: 1px solid var(--line); }
.mm-ticker-track { display: flex; width: max-content; animation: mm-ticker 40s linear infinite; }
.mm-ticker:hover .mm-ticker-track, .mm-ticker:focus-within .mm-ticker-track { animation-play-state: paused; }
.mm-ticker-row { display: flex; list-style: none; margin: 0; padding: 0; }
.mm-ticker-row li { display: flex; align-items: center; gap: 8px; padding: 12px 24px; font-family: var(--font-data); font-size: 13px; line-height: 18px; white-space: nowrap; }
.mm-ticker-label { color: var(--ink-muted); } .mm-ticker-value { color: var(--ink); font-weight: 600; }
.mm-ink-up { color: var(--up-ink); } .mm-ink-down { color: var(--down-ink); } .mm-ink-flat { color: var(--ink-muted); }
.mm-ticker-delta { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
@keyframes mm-ticker { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .mm-ticker { overflow-x: auto; } .mm-ticker-track { animation: none; } .wp-element-button, a.mm-card { transition: none; } }

/* Header */
.mm-header { background: var(--ground); border-bottom: 1px solid var(--line); }
.mm-logo { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.mm-logo svg { display: block; flex: none; }
.mm-logo-text { display: inline-flex; flex-direction: column; gap: 2px; }
.mm-tagline { font-family: var(--font-text); font-weight: 500; font-size: 13px; color: var(--ink); white-space: nowrap; line-height: 1.1; }
.mm-nav .wp-block-navigation-item__content { display: block; padding: 8px 12px; border-radius: var(--radius-pill); color: var(--ink); font-weight: 600; font-size: 16px; line-height: 20px; text-decoration: none; }
.mm-nav .wp-block-navigation-item__content:hover { background: var(--surface-raised); }
.mm-nav .current-menu-item > .wp-block-navigation-item__content, .mm-nav [aria-current="page"] { background: var(--ink); color: var(--ground); }
.mm-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ground) !important; color: var(--ink) !important; }
.mm-theme-toggle { white-space: nowrap; font-family: var(--font-text); font-size: 16px; font-weight: 600; min-height: 44px; padding: 0 16px; border-radius: var(--radius-md); border: 2px solid var(--line-strong); background: transparent; color: var(--ink); cursor: pointer; }
.mm-theme-toggle:hover { background: var(--surface-raised); }

/* Stripe (truck-art chevrons) */
.mm-stripe { overflow: hidden; width: 100%; background: var(--neel); line-height: 0; }
.mm-stripe svg { display: block; }

/* Stat cards */
.mm-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.mm-stat-top { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 16px; line-height: 24px; }
.mm-stat-top svg { color: var(--accent-ink); }
.mm-stat-value { font-family: var(--font-data); font-size: 48px; line-height: 1; font-weight: 700; letter-spacing: -0.05em; }
.mm-stat-unit { font-size: 0.45em; margin-left: 0.12em; letter-spacing: -0.02em; }
.mm-source { margin: 0; font-size: 13px; line-height: 18px; color: var(--ink-muted); }

@media (max-width: 600px) {
	.mm-grid.mm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.mm-stats .mm-card { padding: 16px; gap: 8px; }
	.mm-stats .mm-stat-value { font-size: 28px; }
	.mm-stats .mm-stat-top { font-size: 14px; line-height: 18px; }
}

/* Article cards */
.mm-article-title { margin: 0; font-family: var(--font-display); font-size: 26px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; }
.mm-article-meta { margin: 0; font-size: 13px; line-height: 18px; color: var(--ink-muted); }
.mm-wrap-card .mm-label { color: var(--ink-muted); }

/* Hero */
.mm-hero-title { font-size: clamp(56px, 8vw, 120px) !important; line-height: 0.92 !important; letter-spacing: -0.03em !important; max-width: 1100px; }

/* Daily Wrap table (written into each wrap post by the automation) */
.mm-wrap-table-box { overflow-x: auto; border-radius: var(--radius-lg); background: var(--surface); padding: 8px 24px; }
.mm-wrap-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 16px; line-height: 24px; }
.mm-wrap-table th, .mm-wrap-table td { padding: 12px; text-align: left; border: 0; }
.mm-wrap-table thead th { font-family: var(--font-data); font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-muted); }
.mm-wrap-table tbody tr { border-top: 1px solid var(--line); }
.mm-wrap-table .num { text-align: right; font-family: var(--font-data); font-size: 15px; font-weight: 600; }
.mm-wrap-table .prev { text-align: right; font-family: var(--font-data); font-size: 15px; color: var(--ink-muted); }
.mm-wrap-table .src { font-size: 13px; color: var(--ink-muted); }

/* Disclaimer box */
.mm-disclaimer { border-radius: var(--radius-lg); background: var(--surface-raised); padding: 24px; font-size: 16px; line-height: 24px; }
.mm-disclaimer p { margin: 0 0 8px; }

/* Signup (Jetpack Subscribe block inside a flood) */
.mm-subscribe .wp-block-jetpack-subscriptions input[type="email"] { min-height: 44px; border-radius: var(--radius-sm) !important; border: 2px solid var(--neel) !important; background: var(--paper) !important; color: var(--neel) !important; font-family: var(--font-text) !important; font-size: 16px !important; }
.mm-subscribe .wp-block-jetpack-subscriptions button { border-radius: var(--radius-md) !important; border: 2px solid var(--neel) !important; background: var(--marigold) !important; color: var(--neel) !important; box-shadow: 4px 4px 0 0 var(--neel) !important; font-family: var(--font-text) !important; font-weight: 600 !important; }

/* Footer */
.mm-footer { background: var(--surface); }
.mm-footer a { color: var(--ink); text-decoration: none; font-weight: 600; }
.mm-footer a:hover { color: var(--accent-ink); }

/* Post content niceties */
.wp-block-post-content a { color: var(--accent-ink); }
.wp-block-post-content blockquote { border-left: 0; margin: 0; padding: 24px; border-radius: var(--radius-lg); background: var(--surface); font-family: var(--font-display); font-size: 24px; line-height: 1.25; font-weight: 700; }
.wp-block-post-content figure img { border-radius: var(--radius-lg); }
.wp-block-post-featured-image img { border-radius: var(--radius-lg); }
.wp-block-query-pagination a { color: var(--ink); font-weight: 600; }
.wp-block-search__input { min-height: 44px; border-radius: var(--radius-sm); border: 2px solid var(--line-strong); background: var(--surface); color: var(--ink); }

/* ---------- 1.0.1: hero artwork, cards, desks, subscribe row ---------- */
.mm-card .mm-article-title, .mm-card .mm-article-meta { display: block; }
.mm-hero-split { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.mm-hero { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; min-width: 0; }
.mm-hero-split .mm-hero-title { font-size: clamp(48px, 6vw, 96px) !important; }
.mm-hero-excerpt { margin: 0; max-width: 640px; font-size: 20px; line-height: 30px; }
.mm-hero-art { position: relative; aspect-ratio: 1 / 1; width: 100%; max-width: 460px; justify-self: end; }
.mm-hero-bars { width: 100%; height: 100%; display: block; }
.mm-hero-chip { position: absolute; display: inline-flex; flex-direction: column; gap: 2px; padding: 10px 14px; border: 2px solid var(--neel); border-radius: 14px; color: var(--neel); box-shadow: var(--shadow-sticker); font-family: var(--font-data); }
.mm-hero-chip-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.mm-hero-chip-value { font-size: 24px; font-weight: 700; line-height: 1.1; }
.mm-hero-chip .mm-delta { --up-ink: var(--neel); --down-ink: var(--neel); color: var(--neel); font-size: 12px; }
.mm-desk-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--marigold); color: var(--neel); border: 2px solid var(--neel); }
.mm-desk-icon svg { display: block; }
.mm-split { display: grid !important; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.mm-split > * { width: auto !important; margin: 0 !important; }
.mm-contribute-points { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.mm-contribute-points li { display: flex; gap: 10px; align-items: center; }
.mm-contribute-points svg { flex: none; color: var(--accent-ink); }
@media (max-width: 960px) {
	.mm-hero-split { grid-template-columns: 1fr; gap: 40px; }
	.mm-hero-art { max-width: 340px; justify-self: center; }
	.mm-split { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.mm-hero-art { max-width: 280px; }
	.mm-hero-chip-value { font-size: 18px; }
	.mm-hero-chip { padding: 8px 10px; }
}

/* ---------- 1.0.3: legacy HTML posts ---------- */
/* Old posts pasted in as full HTML sit on a paper card, so their own dark-on-light colours stay readable in Night and Day. */
.mm-legacy {
	--ink: var(--neel); --ink-muted: #54486F; --line: rgba(20, 12, 44, 0.16); --accent-ink: #B03200; --surface: #FFFFFF;
	background: var(--paper); color: var(--neel); border-radius: var(--radius-lg, 24px);
	padding: clamp(20px, 4vw, 48px); box-sizing: border-box; overflow-wrap: break-word;
	font-family: var(--font-text); font-size: 18px; line-height: 1.6;
}
.mm-legacy *:not(code):not(pre):not(kbd):not(samp):not(svg):not(svg *) { font-family: var(--font-text) !important; }
.mm-legacy :is(h1, h2, h3, h4, h5, h6), .mm-legacy :is(h1, h2, h3, h4, h5, h6) * { font-family: var(--font-display) !important; letter-spacing: -0.01em; line-height: 1.15 !important; }
.mm-legacy :is(code, pre, kbd, samp) { font-family: var(--font-data) !important; }
.mm-legacy :is(td, th).num, .mm-legacy [class*="number"], .mm-legacy [class*="stat-value"], .mm-legacy [class*="metric"] { font-family: var(--font-data) !important; }
.mm-legacy * { max-width: 100%; box-sizing: border-box; }
.mm-legacy :is(img, video, iframe, svg) { height: auto; }
.mm-legacy table { border-collapse: collapse; }
@media (max-width: 700px) { .mm-legacy table { display: block; overflow-x: auto; } }
.mm-legacy a { color: var(--accent-ink); }
.mm-legacy > :first-child { margin-top: 0; }
.mm-legacy > :last-child { margin-bottom: 0; }

/* Author card */
.mm-author-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px 24px; align-items: center; padding: 24px; border-radius: var(--radius-lg); background: var(--surface); }
.mm-author-card > svg, .mm-author-card > .mm-logo { flex: none; }
.mm-author-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mm-author-kicker { font-family: var(--font-data); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); }
.mm-author-name { font-family: var(--font-display); font-weight: 800; font-size: 22px; line-height: 1.1; }
.mm-author-bio { margin: 4px 0 0; color: var(--ink-muted); font-size: 16px; line-height: 1.5; }
.mm-author-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
@media (max-width: 760px) { .mm-author-card { grid-template-columns: auto minmax(0, 1fr); } .mm-author-actions { grid-column: 1 / -1; justify-content: flex-start; } }
