:root {
  --surface:#fff;--surface-soft:#f6f7f8;--surface-raised:rgba(255,255,255,.94);
  --text-primary:#222426;--text-secondary:#687077;--brand:#5d4232;--focus:#1769aa;
  --card-shadow:0 1px 2px rgba(28,33,38,.04),0 8px 24px rgba(28,33,38,.06);
  --ui-font:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI Variable","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
body { font-family:var(--ui-font); }
body.theme-clean { --paper:#f4f6f8;--line:#dfe3e7;--white:#fff;--surface:#fff;--surface-soft:#f5f7f9;--text-primary:#202124;--text-secondary:#697078;--brand:#315c87;--ink:#202124;--muted:#697078;background-image:radial-gradient(circle at 90% 0,rgba(190,215,239,.25),transparent 30%),linear-gradient(180deg,#f8fafc,#f2f4f6); }
body.theme-night { --paper:#151719;--line:#34383d;--white:#24272b;--surface:#24272b;--surface-soft:#2d3136;--surface-raised:rgba(35,38,42,.95);--text-primary:#f2f0ec;--text-secondary:#aeb3ba;--brand:#e5bda7;--ink:#f2f0ec;--muted:#aeb3ba;--card-shadow:0 10px 28px rgba(0,0,0,.22);background-color:#151719;background-image:radial-gradient(circle at 12% 2%,rgba(101,71,55,.38),transparent 32%),radial-gradient(circle at 92% 28%,rgba(76,82,120,.28),transparent 30%),linear-gradient(160deg,#191a1d,#131517);color-scheme:dark; }
body.theme-night .bottom-nav,body.theme-night .language-picker,body.theme-night .logout-button { background:rgba(31,34,38,.94); }
body.theme-night input,body.theme-night textarea,body.theme-night select { background:#292d31;color:var(--text-primary);border-color:#43484e; }
.theme-preview-clean .theme-swatch { background:linear-gradient(135deg,#fff,#eef2f5 58%,#bad5ec); }
.theme-preview-night .theme-swatch { background:linear-gradient(135deg,#17191c,#2d3137 55%,#63566e); }

.sr-only { clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px; }
.dashboard-header-v2 { align-items:flex-start;margin-bottom:24px; }
.dashboard-header-v2 .welcome-message { font-size:clamp(2rem,7.4vw,2.35rem);line-height:1.02;max-width:420px; }
.dashboard-header-v2 .round-button { background:var(--surface-raised);border:1px solid var(--line);box-shadow:0 4px 14px rgba(28,33,38,.06);height:40px;width:40px; }
.dashboard-header-v2 .round-button svg,.logout-button svg,.bottom-nav svg { fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7; }
.dashboard-header-v2 .round-button svg { height:18px;width:18px; }
.logout-button { align-items:center;display:flex;gap:5px;min-height:36px; }
.logout-button svg { height:14px;width:14px; }
.bottom-nav a { align-items:center;border-radius:12px;display:flex;flex-direction:column;gap:3px;justify-content:center;min-height:48px;min-width:56px; }
.bottom-nav svg { height:20px;width:20px; }.bottom-nav .is-current svg { stroke-width:2.1; }

.module-grid-v2 { gap:12px;grid-auto-rows:86px;grid-template-rows:repeat(6,86px); }
.module-card-v2 {
  --card-accent:#d9a98f;--accent-bg:#faeee8;
  background:var(--surface-raised);border:1px solid color-mix(in srgb,var(--card-accent) 25%,var(--line));border-radius:18px;box-shadow:var(--card-shadow);
  color:var(--text-primary);display:flex;flex-direction:column;isolation:isolate;overflow:hidden;padding:13px 14px;position:relative;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.module-card-v2::before { background:var(--card-accent);border-radius:0 0 4px 4px;content:"";height:3px;left:18px;opacity:.72;position:absolute;top:0;width:28px; }
.module-card-v2.accent-peach { --card-accent:#d69a79;--accent-bg:#f9ebe4; }
.module-card-v2.accent-lilac { --card-accent:#9f88c2;--accent-bg:#f1edf7; }
.module-card-v2.accent-sage { --card-accent:#729b6b;--accent-bg:#edf4eb; }
.module-card-v2.accent-sky { --card-accent:#6a9fbd;--accent-bg:#eaf3f8; }
.module-card-v2.accent-sun { --card-accent:#b99b32;--accent-bg:#faf4df; }
.module-card-v2:hover { border-color:color-mix(in srgb,var(--card-accent) 55%,var(--line));box-shadow:0 2px 3px rgba(28,33,38,.04),0 12px 28px rgba(28,33,38,.09);transform:translateY(-1px); }
.module-card-v2:active { transform:scale(.987); }.module-card-v2:focus-visible { outline:3px solid var(--focus);outline-offset:3px; }
.module-card-header { align-items:center;display:flex;gap:9px;min-height:32px;padding-right:18px;position:relative;z-index:2; }
.module-icon-wrap { align-items:center;background:var(--accent-bg);border-radius:10px;color:var(--card-accent)!important;display:flex;flex:0 0 32px;height:32px;justify-content:center; }
.module-icon { fill:none;height:17px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75;width:17px; }
.module-heading { display:block;flex:1;min-width:0; }.module-heading strong { color:var(--text-primary);display:block;font:650 .86rem/1.2 var(--ui-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.module-unread { align-items:center;background:#d74646;border:2px solid var(--surface);border-radius:999px;box-shadow:0 2px 7px rgba(111,25,25,.2);color:#fff!important;display:flex;font-size:.62rem;font-weight:800;height:10px;justify-content:center;min-width:10px;position:absolute;right:-4px;top:-4px; }
.module-unread-count { height:20px;min-width:20px;padding:0 5px;right:-5px;top:-6px; }
.module-open { color:var(--text-secondary);font:400 1.15rem/1 var(--ui-font);position:absolute;right:14px;top:20px; }.has-unread .module-open { display:none; }
.module-card-content { display:flex;flex:1;flex-direction:column;justify-content:center;min-height:0;padding-top:8px; }

.metric-primary { align-items:baseline;display:flex;gap:7px;min-width:0; }.metric-primary .metric-icon { align-self:center;color:initial;font-size:1.55rem;line-height:1; }
.metric-primary>strong { color:var(--text-primary);font:650 2rem/.9 var(--ui-font);letter-spacing:-.055em; }.metric-primary>span:last-child { color:var(--text-secondary);font-size:.7rem;font-weight:600;line-height:1.2;max-width:110px; }
.card-signals { display:flex;gap:5px;margin-top:9px;overflow:hidden; }.card-signals>span { align-items:center;background:var(--surface-soft);border-radius:7px;color:var(--text-secondary);display:flex;font-size:.61rem;font-weight:650;gap:3px;min-width:0;padding:4px 6px;white-space:nowrap; }.card-signals b { color:initial;font-size:.7rem; }

.module-status { display:flex;flex-direction:column;min-width:0;padding-right:18px; }.module-status strong { color:var(--text-primary);font:650 .92rem/1.22 var(--ui-font); }.module-status>span { color:var(--card-accent)!important;font-size:.66rem;font-weight:700;margin-top:3px; }.module-status small { color:var(--text-secondary);display:-webkit-box;font-size:.68rem;line-height:1.3;margin-top:5px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2; }
.media-summary { align-items:center;display:flex;gap:11px;min-width:0; }.media-summary>img,.media-placeholder { aspect-ratio:1;background:var(--surface-soft);border-radius:12px;display:grid;flex:0 0 58px;height:58px;object-fit:cover;place-items:center;width:58px; }.media-placeholder { color:var(--card-accent);font-size:1.25rem; }.media-summary>div { display:flex;flex:1;flex-direction:column;min-width:0; }
.media-summary small,.date-summary div>small,.next-summary small { color:var(--card-accent)!important;font-size:.59rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase; }.media-summary strong { color:var(--text-primary);display:-webkit-box;font:650 .84rem/1.22 var(--ui-font);margin-top:3px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2; }.media-summary>div>span:not(.inline-stats) { color:var(--text-secondary);font-size:.61rem;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.media-summary-compact>img,.media-summary-compact>.media-placeholder { border-radius:10px;flex-basis:50px;height:50px;width:50px; }.inline-stats { display:flex;gap:8px;margin-top:5px; }.inline-stats b { color:var(--text-secondary);font-size:.57rem;font-weight:600; }
.next-summary { align-items:center;display:flex;gap:8px;margin-top:8px;min-width:0; }.next-summary-icon,.action-symbol { align-items:center;background:var(--accent-bg);border-radius:9px;color:var(--card-accent)!important;display:flex;flex:0 0 29px;height:29px;justify-content:center;width:29px; }.next-summary p { display:flex;flex-direction:column;margin:0;min-width:0; }.next-summary strong { color:var(--text-primary);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.action-primary { align-items:center;display:flex;gap:10px; }.action-primary>div { display:flex;flex-direction:column;min-width:0; }.action-primary strong { color:var(--text-primary);font:650 1rem/1.15 var(--ui-font); }.action-primary small,.support-copy { color:var(--text-secondary)!important;display:-webkit-box;font-size:.68rem!important;line-height:1.28;margin-top:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2; }

.social-new { display:flex;flex-direction:column;gap:7px; }.status-label { align-self:flex-start;background:#d74646;border-radius:999px;color:#fff!important;font-size:.56rem;font-weight:800;letter-spacing:.06em;padding:3px 7px;text-transform:uppercase; }.social-quiet { display:flex;flex-direction:column;gap:8px; }.quiet-number { align-items:baseline;display:flex;gap:8px; }.quiet-number strong { color:var(--text-primary);font:650 2.35rem/.82 var(--ui-font);letter-spacing:-.07em; }.quiet-number span { color:var(--text-secondary);font-size:.76rem;font-weight:650;line-height:1.15;max-width:110px; }.social-quiet p { color:var(--text-secondary)!important;font-size:.72rem!important;margin:0; }

.date-summary { align-items:center;display:flex;gap:10px;min-width:0; }.date-summary time { align-items:center;background:var(--accent-bg);border-radius:11px;display:flex;flex:0 0 49px;flex-direction:column;height:54px;justify-content:center; }.date-summary time strong { color:var(--text-primary);font:650 1.5rem/.85 var(--ui-font); }.date-summary time small { color:var(--card-accent);font-size:.55rem;font-weight:750;margin-top:5px;text-transform:uppercase; }.date-summary>div { display:flex;flex-direction:column;min-width:0; }.date-summary>div>strong { color:var(--text-primary);display:-webkit-box;font-size:.78rem;line-height:1.2;margin-top:3px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2; }.date-summary>div>span { color:var(--text-secondary);font-size:.62rem;margin-top:4px; }
.empty-card-state { display:flex;flex-direction:column;justify-content:center;padding-right:20px; }.empty-card-state>span { align-items:center;background:var(--accent-bg);border-radius:9px;color:var(--card-accent)!important;display:flex;height:28px;justify-content:center;margin-bottom:6px;width:28px; }.empty-card-state strong { color:var(--text-primary);font-size:.8rem;line-height:1.2; }.empty-card-state small { color:var(--text-secondary);font-size:.64rem;line-height:1.25;margin-top:3px; }
.note-summary { align-items:flex-start;display:flex;gap:5px;min-height:0; }.quote-mark { color:var(--card-accent)!important;font:600 2rem/.75 Georgia,serif; }.note-summary p { color:var(--text-primary)!important;display:-webkit-box;font:500 .78rem/1.35 var(--ui-font)!important;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3; }.countdown-primary>span:last-child { display:flex;flex-direction:column;max-width:130px; }.countdown-primary>span b { color:var(--text-primary);display:block;font-size:.74rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

.module-size-2x2 .module-card-content,.module-size-1x2 .module-card-content { padding-top:12px; }.module-size-2x2 .metric-primary>strong,.module-size-1x2 .metric-primary>strong { font-size:2.65rem; }.module-size-2x2 .module-status strong,.module-size-1x2 .module-status strong { font-size:1rem; }.module-size-2x2 .media-summary>img,.module-size-1x2 .media-summary>img { flex-basis:64px;height:64px;width:64px; }
.module-size-1x1 .module-open,.module-size-1x1 .card-signals,.module-size-1x1 .module-status small,.module-size-1x1 .media-summary>div>span,.module-size-1x1 .inline-stats,.module-size-1x1 .support-copy,.module-size-1x1 .social-quiet p { display:none; }.module-size-1x1 { padding:10px 11px; }.module-size-1x1 .module-card-header { gap:7px;min-height:27px;padding-right:0; }.module-size-1x1 .module-icon-wrap { border-radius:8px;flex-basis:27px;height:27px; }.module-size-1x1 .module-icon { height:15px;width:15px; }.module-size-1x1 .module-heading strong { font-size:.73rem; }.module-size-1x1 .module-card-content { padding-top:5px; }.module-size-1x1 .metric-primary>strong { font-size:1.55rem; }.module-size-1x1 .metric-primary .metric-icon { font-size:1.15rem; }.module-size-1x1 .metric-primary>span:last-child { font-size:.54rem; }.module-size-1x1 .module-status strong { font-size:.75rem; }.module-size-1x1 .module-status>span { font-size:.57rem; }.module-size-1x1 .media-summary { gap:7px; }.module-size-1x1 .media-summary>img,.module-size-1x1 .media-placeholder { border-radius:8px;flex-basis:35px;height:35px;width:35px; }.module-size-1x1 .media-summary strong { font-size:.68rem; }.module-size-1x1 .quiet-number strong { font-size:1.7rem; }.module-size-1x1 .quiet-number span { font-size:.58rem; }

.page-header,.detail-header,.recipe-header { position:relative; }.page-header:not(.weather-page-header),.detail-header,.recipe-header { background:var(--surface-raised);border:1px solid var(--line);border-radius:22px;box-shadow:var(--card-shadow);margin:0 0 24px;padding:18px; }.page-header:not(.weather-page-header) h1,.detail-header h1,.recipe-header h1 { font-family:var(--ui-font);font-size:clamp(1.75rem,7vw,2.25rem);font-weight:650;letter-spacing:-.04em; }.page-header:not(.weather-page-header)>p:last-child,.recipe-header>p:last-child { color:var(--text-secondary);font-size:.82rem;line-height:1.5; }.back-link,.recipe-header>a:first-child { align-items:center;color:var(--text-secondary);display:inline-flex;font-size:.72rem;min-height:36px; }.detail-card,.recipe-section,.recipe-preferences,.event-card,.fitness-card-form,.foundation-form { border-color:var(--line);box-shadow:var(--card-shadow); }

@media (max-width:360px) { .shell { padding-left:14px;padding-right:14px; }.module-grid-v2 { gap:10px; }.module-card-v2 { border-radius:16px;padding-left:11px;padding-right:11px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;transition-duration:.01ms!important; }.module-card-v2:hover { transform:none; } }
