/* FrOdo family design: shared, loaded after each app's legacy stylesheet. */
:root { --primary:#193b42; --accent:#216570; --bg:#f4f6f6; --card-bg:#fff; --card:#fff; --text:#20383e; --ink:#20383e; --muted:#52676d; --line:#dce5e7; --soft-orange:#f0c46b; --accent-soft:#e8f2f3; --sage:#286957; --font-ui:system-ui,-apple-system,"Segoe UI",sans-serif; --font-display:Georgia,serif; }
html { scroll-padding-top:96px; }
body { font-family:var(--font-ui); background:var(--bg); color:var(--text); line-height:1.6; }
button,input,select,textarea { font-family:var(--font-ui); }
button,a,input,select,textarea { touch-action:manipulation; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid #237c93!important; outline-offset:3px!important; }
input:not([type=checkbox]):not([type=radio]),select,textarea { border:1px solid #b9cbd0; border-radius:10px; font-size:1rem; min-height:44px; }
input[type=checkbox],input[type=radio] { accent-color:var(--accent); }
img { max-width:100%; }
.hub-chrome { background:#fff; border-bottom:1px solid var(--line); box-shadow:0 2px 12px #173d4406; }
.hub-chrome-inner { max-width:1440px; padding:12px 28px; flex-wrap:wrap; }
.hub-chrome-brand { font-size:1.55rem; letter-spacing:-.05em; }
.hub-chrome-nav { flex:1; }
.hub-chrome-nav a { font-size:.9rem; min-height:44px; border-radius:8px; font-weight:600; }
.hub-chrome-account { font-size:.875rem; }
.hub-more { position:relative; }
.hub-more summary { cursor:pointer; padding:10px 14px; border:1px solid var(--line); border-radius:8px; font-size:.875rem; }
.hub-more nav { position:absolute; right:0; top:52px; display:grid; width:240px; background:#fff; padding:10px; border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 48px #18383e20; max-height:65vh; overflow:auto; }
.hub-more a { padding:10px 12px; border-radius:6px; color:var(--text); text-decoration:none; }
.hub-more a:hover,.hub-more a[aria-current] { background:var(--accent-soft); }
body.has-hub-chrome .site-header { background:#fff; color:var(--text); padding:28px max(24px,calc((100vw - 1180px)/2)); border-bottom:1px solid var(--line); text-align:left; }
.site-header h1 { font-family:var(--font-display); font-weight:500; font-size:clamp(1.9rem,3vw,2.7rem); letter-spacing:-.035em; line-height:1.2; }
.site-header .tagline { color:var(--muted); font-size:1rem; margin-top:8px; }
main,#main-hub-content { max-width:1240px; width:100%; margin:0 auto; padding:28px; }
.hub-layout,.hub-main { max-width:1180px; }
.hub-home-banner { background:#193b42; color:#fff; padding:36px; border-radius:18px; border:0; box-shadow:none; }
.hub-home-banner::before { background:#ecc477; height:3px; }
.hub-home-banner h1 { color:white; font-size:clamp(2rem,4vw,3.2rem); font-weight:500; max-width:650px; }
.hub-home-banner .hub-home-kicker { color:#f0ca81; font-size:.875rem; }
.hub-home-banner .quote,.hub-home-banner .hub-home-lede { color:#e1ecee; font-size:1rem; }
.hub-app-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.hub-app-tile { min-height:146px; padding:22px; background:white; border:1px solid var(--line); box-shadow:none; border-radius:14px; }
.hub-app-tile::before { display:none; }
.hub-app-tile:hover { box-shadow:0 8px 24px #173d4410; border-color:#7da5ac; }
.hub-app-tile-title { font-size:1.05rem; }
.hub-app-section-title { font-size:.9rem; letter-spacing:.07em; }
.hub-app-section[aria-label="Family Fun"] { background:#e7f1ed; border-color:#d1e3db; padding:24px; }
.hub-app-tile-desc,.dash-list,.dash-meta,.dash-item-sub,.dash-empty { font-size:.9rem; }
.widget-card,.form-container,.tab-content,.folder-section,.shopping-panel,.panel,.card { border-color:var(--line); border-radius:14px; box-shadow:0 3px 12px #173d4405; }
.widget-card h3,.dash-widget h3 { color:var(--accent); font-size:.9rem; }
.action-btn,.add-recipe-btn,.btn-gold { border-radius:10px; }
.toolbar { gap:12px; flex-wrap:wrap; }
.sync-disclosure { margin:0 0 20px; background:white; border:1px solid var(--line); border-radius:10px; font-size:.875rem; }
.sync-disclosure summary { padding:10px 16px; cursor:pointer; color:var(--muted); }
.sync-disclosure .offline-sync-panel { margin:0; border:0; border-top:1px solid var(--line); background:#f8fafb; }
.lock-box { background:white; color:var(--text); box-shadow:0 25px 80px #0003; padding:36px; border-radius:20px; }
#lock-screen { background:#173c44; }
.lock-box h1,.lock-box h2 { font-family:var(--font-display); }
.lock-box p { color:var(--muted); }
.lock-box button { background:var(--primary); color:white; border-radius:10px; }
.hub-footer { padding:28px; text-align:center; font-size:.875rem; color:var(--muted); }
@media(max-width:700px) { .hub-chrome-inner { padding:10px 16px; gap:8px; } .hub-chrome-nav { order:3; flex-basis:100%; } .hub-chrome-account { display:none; } .hub-more { margin-left:auto; } main,#main-hub-content { padding:18px 16px; } .hub-home-banner { padding:24px; } .hub-app-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .hub-app-tile { padding:16px; min-height:142px; } .daily-widgets { grid-template-columns:1fr; } }
@media(max-width:360px) { .hub-app-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }
@media print { .hub-chrome,.hub-footer,.sync-disclosure { display:none!important; } }

*,*::before,*::after{box-sizing:border-box;}
body{margin:0;}

.hub-home-banner .hub-welcome-activity{color:#e1ecee;border-color:#52747b;}
