/*
 * Tiles theme, a friendlier tile-based layout for the owner and member areas.
 *
 * Loads AFTER the base public stylesheet, so it only carries the DELTA from
 * Classic. Same full feature set as Classic, nothing removed. All rules are
 * scoped under .tiled-home so nothing outside the themed dashboards is touched.
 *
 * Design intent: one calm screen, hierarchy by depth. A big adaptive hero, two
 * big daily tiles, then lighter tools, then compact numbers, then a quiet list.
 * Text is given room and balanced so words never break awkwardly across lines.
 */

.tiled-home { display: flex; flex-direction: column; }
.tiled-home * { overflow-wrap: break-word; }

/* Greeting */
.tiled-home .th-greet {
	display: flex; align-items: center; gap: var(--sp-3);
	flex-wrap: wrap; margin: var(--sp-2) 0 var(--sp-5);
}
.tiled-home .th-greet__hi {
	font-family: var(--font-display); font-weight: 800;
	font-size: var(--fs-lg); letter-spacing: -0.02em; line-height: 1.1; color: var(--ink);
}
.tiled-home .th-greet__venue {
	margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
	background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-pill);
	padding: 6px 13px; font-size: var(--fs-sm); font-weight: 650; color: var(--ink-soft);
}

/* Adaptive "right now" hero, the signature element */
.tiled-home .th-hero { border-radius: var(--r-xl); padding: var(--sp-5); position: relative; overflow: hidden; }
.tiled-home .th-hero__top { display: flex; align-items: center; gap: var(--sp-4); }
.tiled-home .th-hero__n {
	flex: none; width: 60px; height: 60px; border-radius: var(--r-lg);
	display: grid; place-items: center;
	font-family: var(--font-display); font-weight: 800; font-size: var(--fs-xl);
}
.tiled-home .th-hero__n svg { width: 30px; height: 30px; }
.tiled-home .th-hero__tx { flex: 1; min-width: 0; }
.tiled-home .th-hero__tx b {
	display: block; font-family: var(--font-display); font-size: var(--fs-md);
	font-weight: 750; letter-spacing: -0.01em; line-height: 1.2; text-wrap: balance;
}
.tiled-home .th-hero__tx span { display: block; font-size: var(--fs-sm); margin-top: 3px; text-wrap: pretty; }
.tiled-home .th-hero__go {
	display: inline-block; margin-top: var(--sp-4);
	background: #fff; color: var(--act-hover); font-weight: 750; font-size: var(--fs-base);
	padding: 11px 22px; border-radius: var(--r-pill); text-decoration: none;
	box-shadow: 0 4px 12px rgba(16, 40, 44, 0.12);
}
/* urgent */
.tiled-home .th-hero--urgent { background: linear-gradient(135deg, var(--act), var(--act-hover)); color: #fff; box-shadow: 0 16px 32px -14px rgba(14, 110, 104, 0.7); }
.tiled-home .th-hero--urgent::after { content: ""; position: absolute; right: -34px; top: -34px; width: 150px; height: 150px; border-radius: 50%; background: radial-gradient(circle, rgba(240, 167, 44, 0.4), transparent 70%); }
.tiled-home .th-hero--urgent .th-hero__top, .tiled-home .th-hero--urgent .th-hero__go { position: relative; }
.tiled-home .th-hero--urgent .th-hero__n { background: rgba(255, 255, 255, 0.17); }
.tiled-home .th-hero--urgent .th-hero__tx span { color: #c3e2de; }
/* clear */
.tiled-home .th-hero--clear { background: var(--act-wash); color: var(--act-hover); }
.tiled-home .th-hero--clear .th-hero__n { background: #fff; color: var(--good-600); }
.tiled-home .th-hero--clear .th-hero__tx span { color: var(--act); }

/* Sections: big gaps between, tight within */
.tiled-home .th-sec { margin-top: var(--sp-8); }
.tiled-home .th-sec__label {
	font-family: var(--font-display); font-weight: 700; font-size: var(--fs-sm);
	color: var(--ink-soft); margin: 0 0 var(--sp-3); padding: 0 2px;
}

/* Primary tiles (the daily work) */
.tiled-home .th-primary { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.tiled-home .th-ptile {
	position: relative; display: flex; flex-direction: column;
	background: var(--bg-card); border-radius: var(--r-xl); padding: var(--sp-4);
	min-height: 108px; box-shadow: var(--shadow-card);
	text-decoration: none; color: inherit; transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.tiled-home .th-ptile:hover { transform: translateY(-2px); box-shadow: var(--shadow-pop); }
.tiled-home .th-ptile:focus-visible { outline: none; box-shadow: var(--ring); }
.tiled-home .th-ptile__ic { width: 48px; height: 48px; border-radius: var(--r-md); display: grid; place-items: center; margin-bottom: var(--sp-3); }
.tiled-home .th-ptile__ic svg { width: 24px; height: 24px; }
.tiled-home .th-ic--act { background: var(--act-wash); color: var(--act-hover); }
.tiled-home .th-ic--sun { background: var(--sun-wash); color: #b9791a; }
.tiled-home .th-ptile__lb { font-family: var(--font-display); font-weight: 750; font-size: var(--fs-md); letter-spacing: -0.01em; line-height: 1.15; text-wrap: balance; }
.tiled-home .th-ptile__st { font-size: var(--fs-sm); color: var(--ink-faint); margin-top: 3px; font-weight: 600; }
.tiled-home .th-ptile__st.is-hot { color: var(--match); font-weight: 750; }
.tiled-home .th-ptile__cnt {
	position: absolute; top: var(--sp-4); right: var(--sp-4);
	min-width: 26px; height: 26px; padding: 0 7px; border-radius: 13px;
	background: var(--match); color: #fff;
	font-family: var(--font-display); font-weight: 800; font-size: var(--fs-base);
	display: grid; place-items: center; box-shadow: 0 4px 10px rgba(206, 61, 110, 0.4);
}

/* Your move teaser (one card, links to the full briefing) */
.tiled-home .th-move { background: var(--bg-card); border: 1px solid var(--line); border-left: 3px solid var(--match); border-radius: var(--r-lg); padding: var(--sp-4); }
.tiled-home .th-move__top { display: flex; align-items: flex-start; gap: var(--sp-3); }
.tiled-home .th-move__ic { width: 34px; height: 34px; flex: none; border-radius: 10px; background: var(--match-wash); color: var(--match); display: grid; place-items: center; }
.tiled-home .th-move__ic svg { width: 18px; height: 18px; }
.tiled-home .th-move h4 { font-family: var(--font-display); font-weight: 750; font-size: var(--fs-base); margin: 0; letter-spacing: -0.01em; text-wrap: balance; }
.tiled-home .th-move p { margin: 4px 0 0; font-size: var(--fs-sm); color: var(--ink-soft); line-height: 1.5; text-wrap: pretty; }
.tiled-home .th-move__row { display: flex; align-items: center; gap: var(--sp-4); margin-top: var(--sp-4); flex-wrap: wrap; }
.tiled-home .th-move__row .btn-act { padding: 9px 18px; font-size: var(--fs-sm); }
.tiled-home .th-move__see { font-size: var(--fs-sm); font-weight: 650; color: var(--act); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.tiled-home .th-move__see svg { width: 14px; height: 14px; }
.tiled-home .th-receipt { display: flex; align-items: center; gap: 8px; margin-top: var(--sp-3); font-size: var(--fs-xs); color: var(--good-600); font-weight: 600; }
.tiled-home .th-receipt__chk { width: 18px; height: 18px; flex: none; border-radius: 6px; background: var(--good-100); display: grid; place-items: center; }
.tiled-home .th-receipt__chk svg { width: 11px; height: 11px; }

/* Grow tiles (flat, lighter than primary) */
.tiled-home .th-grow { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr)); gap: var(--sp-3); }
.tiled-home .th-gtile { display: flex; flex-direction: column; background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-4); min-height: 82px; text-decoration: none; color: inherit; transition: background 0.12s ease; }
.tiled-home .th-gtile:hover { background: var(--wash-50); }
.tiled-home .th-gtile__ic { width: 36px; height: 36px; border-radius: var(--r-md); display: grid; place-items: center; margin-bottom: var(--sp-2); background: var(--wash-100); color: var(--petrol-600); }
.tiled-home .th-gtile__ic svg { width: 18px; height: 18px; }
.tiled-home .th-gtile__lb { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-base); letter-spacing: -0.01em; line-height: 1.15; text-wrap: balance; }
.tiled-home .th-gtile__st { font-size: var(--fs-xs); color: var(--ink-faint); margin-top: 3px; font-weight: 600; }

/* Numbers strip + trends disclosure */
.tiled-home .th-stats { display: flex; background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.tiled-home .th-stats__s { flex: 1; text-align: center; padding: var(--sp-4) var(--sp-2); border-right: 1px solid var(--line); }
.tiled-home .th-stats__s:last-child { border-right: 0; }
.tiled-home .th-stats__s b { display: block; font-family: var(--font-display); font-weight: 800; font-size: var(--fs-xl); color: var(--act); letter-spacing: -0.02em; }
.tiled-home .th-stats__s span { display: block; font-size: var(--fs-xs); color: var(--ink-faint); margin-top: 2px; font-weight: 600; }
.tiled-home .th-trends-toggle { margin-top: var(--sp-2); display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); font-weight: 650; color: var(--act); cursor: pointer; padding: 8px 2px; user-select: none; background: none; border: 0; }
.tiled-home .th-trends-toggle svg { width: 14px; height: 14px; transition: transform 0.2s ease; }
.tiled-home .th-trends-toggle.is-open svg { transform: rotate(90deg); }
.tiled-home .th-trends { display: none; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: var(--sp-4); margin-top: var(--sp-3); }
.tiled-home .th-trends.is-open { display: grid; }

/* Manage list (quiet, dividers) */
.tiled-home .th-manage { background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.tiled-home .th-manage a { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); text-decoration: none; color: var(--ink); border-top: 1px solid var(--line); font-size: var(--fs-base); font-weight: 600; min-height: 48px; }
.tiled-home .th-manage a:first-child { border-top: 0; }
.tiled-home .th-manage__ic { width: 20px; height: 20px; flex: none; color: var(--ink-faint); }
.tiled-home .th-manage__ic svg { width: 20px; height: 20px; }
.tiled-home .th-manage__ct { margin-left: auto; display: flex; align-items: center; gap: 8px; color: var(--ink-faint); }
.tiled-home .th-manage__ct .b { background: var(--match-wash); color: var(--match); font-weight: 750; font-size: var(--fs-xs); padding: 2px 8px; border-radius: var(--r-pill); }
.tiled-home .th-manage__ct svg { width: 16px; height: 16px; }

/* Venue switcher cards keep their base styling, just spaced under the heading */
.tiled-home .card-grid { margin-top: var(--sp-3); }

/* ============================================================================
 * Carry the Tiles look to EVERY owner page, not just the dashboard.
 *
 * Scoped through .portal-nav__scan, the "Open The Pass" button that appears
 * only in the OWNER nav (the member account nav has no scan button), so the
 * public site and the member area are left exactly as Classic. This is a
 * visual restyle only, no page is restructured and no feature is touched.
 * ============================================================================ */

/* Owner nav: warmer, roomier, a clearer active tab */
.portal-nav:has(.portal-nav__scan) { border-radius: var(--r-xl); box-shadow: var(--shadow-card); padding: var(--sp-4); gap: var(--sp-4); }
.portal-nav:has(.portal-nav__scan) .portal-nav__scan { border-radius: var(--r-lg); }
.portal-nav:has(.portal-nav__scan) .portal-tab { min-height: 46px; padding: 0 16px; }
.portal-nav:has(.portal-nav__scan) .portal-tab.is-here { box-shadow: 0 4px 12px rgba(14, 110, 104, 0.28); }

/* Owner page shells: balanced headings, and long words never force sideways scroll */
.section:has(.portal-nav__scan) * { overflow-wrap: break-word; }
.section:has(.portal-nav__scan) h1,
.section:has(.portal-nav__scan) h2 { text-wrap: balance; }

/* Cards and notes: rounder and softer, the tile warmth */
.section:has(.portal-nav__scan) .card { border-radius: var(--r-xl); box-shadow: var(--shadow-card); }
.section:has(.portal-nav__scan) .memory-note { border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); }
.section:has(.portal-nav__scan) .panel { border-radius: var(--r-xl); }

/* Friendly buttons: the default CTAs get a comfortable tap size; inline-styled
   utility buttons carry their own padding and are deliberately left as they are. */
.section:has(.portal-nav__scan) .btn:not([style]) { min-height: 46px; padding: 12px 22px; font-size: var(--fs-base); font-weight: 700; }

/* Comfortable, rounded form controls (native controls like checkboxes untouched) */
.section:has(.portal-nav__scan) input[type="text"],
.section:has(.portal-nav__scan) input[type="email"],
.section:has(.portal-nav__scan) input[type="tel"],
.section:has(.portal-nav__scan) input[type="number"],
.section:has(.portal-nav__scan) input[type="date"],
.section:has(.portal-nav__scan) input[type="time"],
.section:has(.portal-nav__scan) input[type="password"],
.section:has(.portal-nav__scan) input[type="search"],
.section:has(.portal-nav__scan) select,
.section:has(.portal-nav__scan) textarea {
	border-radius: var(--r-md); border: 1px solid var(--line);
	padding: 11px 14px; font-size: var(--fs-base);
	background: var(--bg-card); color: var(--ink);
}
.section:has(.portal-nav__scan) input:focus,
.section:has(.portal-nav__scan) select:focus,
.section:has(.portal-nav__scan) textarea:focus {
	outline: none; border-color: var(--act); box-shadow: var(--ring);
}

/* Stat tiles keep the friendly radius */
.section:has(.portal-nav__scan) .stat { border-radius: var(--r-lg); }

/* ============================================================================
 * Compact owner nav: the tab grid folds behind one Menu toggle, so an owner
 * page opens on content instead of a screen of links. Open The Pass stays out,
 * always one thumb away. On a wide screen theme.js adds .is-wide + [open] so
 * the tabs read inline exactly as Classic does.
 * ============================================================================ */

.portal-nav--fold .portal-menu > summary {
	list-style: none; cursor: pointer;
	display: flex; align-items: center; gap: var(--sp-2);
	min-height: 46px; padding: 0 14px;
	border-radius: var(--r-pill);
	background: var(--bg-dip); color: var(--ink);
	font-family: var(--font-display); font-weight: 700; font-size: var(--fs-sm);
}
.portal-nav--fold .portal-menu > summary::-webkit-details-marker { display: none; }
.portal-nav--fold .portal-menu > summary::marker { content: ""; }
.portal-nav--fold .portal-menu > summary:hover { background: var(--act-wash); color: var(--act-hover); }
.portal-nav--fold .portal-menu > summary:focus-visible { outline: none; box-shadow: var(--ring); }
.portal-nav--fold .portal-menu__label { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.portal-nav--fold .portal-menu__here {
	font-family: var(--font-body); font-weight: 650; color: var(--act);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.portal-nav--fold .portal-menu__chev { margin-left: auto; display: flex; transition: transform 0.2s ease; }
.portal-nav--fold .portal-menu__chev svg { width: 16px; height: 16px; }
.portal-nav--fold .portal-menu[open] > summary .portal-menu__chev { transform: rotate(90deg); }
.portal-nav--fold .portal-menu > .portal-nav__tabs { margin-top: var(--sp-3); }

/* Wide screens: show the tabs inline and drop the toggle */
.portal-nav--fold.is-wide .portal-menu > summary { display: none; }
.portal-nav--fold.is-wide .portal-menu > .portal-nav__tabs { margin-top: 0; }

/* ============================================================================
 * Homepage: concierge-led hero. The wall of equal mood chips becomes a living
 * concierge prompt plus a one-row mood swipe, so the hero fits one screen and
 * real content peeks up under the fold. Own class (.mood-hero), so the base
 * .hero used elsewhere is untouched.
 * ============================================================================ */

.mood-hero { background: linear-gradient(160deg, #153138 0%, var(--bg-ink, #10282C) 72%); color: var(--ink-on-dark, #F2F7F6); position: relative; overflow: hidden; }
.mood-hero::after { content: ""; position: absolute; right: -70px; top: -40px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(240, 167, 44, 0.15), transparent 70%); pointer-events: none; }
.mood-hero > .wrap { position: relative; padding-top: var(--sp-8); padding-bottom: var(--sp-10); }
.mood-hero h1 { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-hero); line-height: 1.03; letter-spacing: -0.025em; margin: 0; text-wrap: balance; }
.mood-hero__lead { color: var(--ink-on-dark-soft, #A9C0BD); font-size: var(--fs-md); line-height: 1.5; margin: var(--sp-3) 0 0; max-width: 36ch; }

/* The living concierge prompt, a real "I want ..." input */
.mood-ask { display: flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-6); background: rgba(255, 255, 255, 0.10); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: var(--r-pill); padding: 6px 6px 6px 18px; max-width: 520px; transition: background 0.15s ease, border-color 0.15s ease; }
.mood-ask:hover { background: rgba(255, 255, 255, 0.13); }
.mood-ask:focus-within { background: rgba(255, 255, 255, 0.15); border-color: rgba(240, 167, 44, 0.55); box-shadow: 0 0 0 3px rgba(240, 167, 44, 0.18); }
.mood-ask__ic { flex: none; color: var(--sun); display: flex; }
.mood-ask__ic svg { width: 20px; height: 20px; }
.mood-ask__pre { flex: none; color: var(--ink-on-dark-soft, #A9C0BD); font-size: var(--fs-md); }
.mood-ask__input { flex: 1; min-width: 0; background: transparent; border: 0; outline: none; color: #fff; font: inherit; font-size: var(--fs-md); font-weight: 600; caret-color: var(--sun); padding: 8px 0; }
.mood-ask__input::placeholder { color: #fff; opacity: 0.85; font-weight: 600; transition: opacity 0.25s ease; }
.mood-ask.is-cycling .mood-ask__input::placeholder { opacity: 0; }
.mood-ask__go { flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--act); color: #fff; display: grid; place-items: center; border: 0; cursor: pointer; transition: background 0.15s ease; }
.mood-ask__go:hover { background: var(--act-hover); }
.mood-ask__go svg { width: 20px; height: 20px; }

/* The one-row mood swipe */
.mood-express { position: relative; margin-top: var(--sp-5); }
.mood-express__lab { font-size: var(--fs-sm); color: var(--ink-on-dark-soft, #A9C0BD); font-weight: 600; margin-bottom: var(--sp-3); }
.mood-rail { display: flex; gap: 9px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.mood-rail::-webkit-scrollbar { display: none; }
.mood-rail__chip { flex: none; scroll-snap-align: start; display: inline-flex; align-items: center; border-radius: var(--r-pill); padding: 11px 16px; font-size: var(--fs-base); font-weight: 600; white-space: nowrap; text-decoration: none; background: rgba(255, 255, 255, 0.12); color: #fff; }
.mood-rail__chip:hover { background: rgba(255, 255, 255, 0.2); }
.mood-rail__chip.is-lead { background: var(--sun); color: var(--ink); }
.mood-rail__weather { flex: none; scroll-snap-align: start; display: inline-flex; align-items: center; border-radius: var(--r-pill); padding: 11px 16px; font-size: var(--fs-base); font-weight: 650; white-space: nowrap; text-decoration: none; background: rgba(240, 167, 44, 0.16); color: #ffd489; border: 1px solid rgba(240, 167, 44, 0.3); }
.mood-express::after { content: ""; position: absolute; right: 0; bottom: 6px; top: 30px; width: 34px; pointer-events: none; background: linear-gradient(90deg, transparent, var(--bg-ink, #10282C)); }

/* ---- Shared tiled owner sub-pages (requests, pickup, opportunities, ...) ---- */

.tiled-home .th-page-head { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; margin: var(--sp-2) 0 var(--sp-5); }
.tiled-home .th-page-head h1 { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-xl); letter-spacing: -0.02em; margin: 0; line-height: 1.1; }
.tiled-home .th-page-head .th-page-sub { flex-basis: 100%; font-size: var(--fs-sm); color: var(--ink-soft); margin-top: var(--sp-1); }

/* Friendlier, bigger touch targets for every button on a tiled owner page */
.tiled-home .btn { min-height: 44px; padding: 11px 20px; border-radius: var(--r-pill); font-weight: 700; }
.tiled-home .btn-lg { min-height: 52px; }

/* Inputs on tiled owner pages: calm, comfortable, touch friendly */
.tiled-home input[type="text"], .tiled-home input[type="date"], .tiled-home input[type="time"],
.tiled-home input[type="tel"], .tiled-home input[type="number"], .tiled-home input:not([type]), .tiled-home select, .tiled-home textarea {
	font: inherit; font-size: var(--fs-sm); border: 1px solid var(--line-strong);
	border-radius: var(--r-md); padding: 11px 13px; min-height: 44px; background: var(--bg-card); color: var(--ink);
}

/* A calm highlight strip, e.g. tonight's bookings */
.tiled-home .th-strip { background: var(--act-wash); color: var(--act-hover); border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5); font-weight: 650; }
.tiled-home .th-strip b { font-family: var(--font-display); }

/* Disclosures (settings, insights) so the page leads with what needs action */
.tiled-home details.th-fold { background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-3) var(--sp-4); }
.tiled-home details.th-fold[open] { padding-bottom: var(--sp-4); }
.tiled-home details.th-fold > summary { cursor: pointer; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-base); list-style: none; display: flex; align-items: center; gap: 8px; }
.tiled-home details.th-fold > summary::-webkit-details-marker { display: none; }
.tiled-home details.th-fold > summary .th-fold__ic { width: 18px; height: 18px; color: var(--act); }
.tiled-home details.th-fold > summary .th-fold__ic svg { width: 18px; height: 18px; }

/* Section subheads within a tiled page */
.tiled-home .th-subhead { font-family: var(--font-display); font-weight: 750; font-size: var(--fs-md); margin: var(--sp-6) 0 var(--sp-3); letter-spacing: -0.01em; }
.tiled-home .th-subhead .th-count { color: var(--ink-faint); font-weight: 700; }

/* Action cards (a table request, a pickup order, ...) */
.tiled-home .th-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-xl); padding: var(--sp-4) var(--sp-5); box-shadow: var(--shadow-card); }
.tiled-home .th-card + .th-card { margin-top: var(--sp-3); }
.tiled-home .th-card__top { display: flex; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; }
.tiled-home .th-card__name { font-family: var(--font-display); font-weight: 750; font-size: var(--fs-md); letter-spacing: -0.01em; }
.tiled-home .th-card__meta { font-size: var(--fs-sm); color: var(--ink-soft); margin-top: 4px; line-height: 1.55; }
.tiled-home .th-card__meta a { color: var(--act); text-decoration: none; }
.tiled-home .th-card__quote { margin-top: 8px; font-size: var(--fs-sm); color: var(--ink); font-style: italic; }

/* The big-button action row */
.tiled-home .th-do { display: flex; gap: var(--sp-2); margin-top: var(--sp-4); flex-wrap: wrap; align-items: center; }
.tiled-home .th-do form { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.tiled-home .th-do .btn-danger { color: #B3261E; }

/* A compact history row */
.tiled-home .th-row { display: flex; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; align-items: center; padding: var(--sp-3) var(--sp-4); background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--r-md); font-size: var(--fs-sm); }
.tiled-home .th-row + .th-row { margin-top: var(--sp-2); }
