/* Shared scene: full-bleed artwork and a broad theme-tinted readability veil. */
.g-hero{background:var(--color-bg);--hero-focus:72% 46%}
.g-hero .g-banner,.g-hero .g-banner[src*="theme-banners/"]{object-fit:cover;object-position:var(--hero-focus);width:100%;height:100%}
.g-hero::after,.g-hero-buddy::after{background:linear-gradient(90deg,color-mix(in srgb,var(--color-bg) 92%,transparent) 0%,color-mix(in srgb,var(--color-bg) 78%,transparent) 24%,color-mix(in srgb,var(--color-bg) 48%,transparent) 48%,color-mix(in srgb,var(--color-bg) 14%,transparent) 72%,transparent 100%)}
.g-hero-copy{background:transparent}.g-hero-buddy{--hero-focus:65% 50%}
.module-icon{--module-icon-container:72px;--module-icon-art:64px;flex:0 0 var(--module-icon-container);width:var(--module-icon-container);height:var(--module-icon-container);background:transparent;padding:0}
.module-icon img{width:var(--module-icon-art);height:var(--module-icon-art);object-fit:contain;display:block;filter:none;mix-blend-mode:normal}
.module-icon-option .module-icon{--module-icon-container:56px;--module-icon-art:48px}
@media(min-width:768px) and (max-width:1100px){.module-icon{--module-icon-container:68px;--module-icon-art:56px}.module-icon-option .module-icon{--module-icon-container:56px;--module-icon-art:48px}}
@media(max-width:767px){.module-icon{--module-icon-container:64px;--module-icon-art:52px}.module-icon-option .module-icon{--module-icon-container:56px;--module-icon-art:48px}}
.setup-page{max-width:720px;margin:24px auto}.setup-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.setup-top select{max-width:160px}.setup-page h1{margin-top:20px}.setup-page form>label{display:grid;gap:8px;margin:16px 0}.setup-page input{width:100%;min-width:0}.setup-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.setup-actions button,.setup-themes button{min-height:48px}
.setup-themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.setup-themes button{display:grid;gap:12px;padding:12px;background:var(--preview-bg);color:var(--preview-ink);border:2px solid var(--color-border)}.setup-theme-art{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;height:70px;padding:8px;background:var(--preview-accent);border-radius:10px}.setup-theme-art i{border-radius:5px;background:var(--preview-bg)}.setup-theme-art i:first-child{grid-column:span 2}
.setup-buddies{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setup-buddies button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border:2px solid var(--color-border);background:var(--color-surface);min-width:0}.setup-buddies img{width:100%;max-width:200px;aspect-ratio:1;object-fit:contain}.setup-buddies span{font-weight:400;font-size:14px;line-height:1.5}.setup-page button[aria-pressed=true]{border:3px solid var(--color-primary);box-shadow:0 0 0 2px var(--color-accent)}.setup-finish{text-align:center}.setup-finish img{height:180px;max-width:100%;object-fit:contain}
.setup-page button,.setup-page input,.setup-page select,.schedule-calendar button{font-family:var(--font-ui);font-size:inherit;border-radius:12px;color:var(--color-primary)}.setup-actions button{padding:10px 18px;border:1px solid var(--color-border);background:var(--color-surface);font-weight:600}.setup-actions .primary{background:var(--color-primary);color:var(--color-surface)}.setup-page select{padding:10px;border:1px solid var(--color-border);background:var(--color-surface)}
body[data-setup=true] .sidebar,body[data-setup=true] #mobile-nav,body[data-setup=true] .topbar,body[data-setup=true] footer{display:none}body[data-setup=true] .app-shell{display:block}body[data-setup=true] .main-shell{margin:0}body[data-setup=true] main{padding:16px}
.schedule-calendar{max-width:680px;margin-inline:auto;padding:12px}.schedule-month{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.schedule-month h2{flex:1;margin:0;text-align:center;font-size:18px}.schedule-month button{min-width:44px;min-height:44px}.schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;text-align:center}.schedule-days>span{font-size:12px;line-height:32px}.schedule-days button{position:relative;min-width:0;min-height:46px;padding:4px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--color-text);font-weight:600}.schedule-days button[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-primary)}.schedule-days button[aria-current=date]{text-decoration:underline;text-underline-offset:4px}.schedule-days i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-primary);bottom:4px;left:calc(50% - 2px)}.schedule-selected h3{margin-top:24px}.schedule-selected li{overflow-wrap:anywhere}.schedule-selected summary{min-height:44px;cursor:pointer;font-weight:600}.setup-page button:focus-visible,.schedule-calendar button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}
@media(max-width:767px){.setup-page{margin:0;padding:20px}.setup-buddies{gap:10px}.setup-buddies button{padding:10px}.g-hero{--hero-focus:68% 45%}.g-hero-copy{max-width:62%;overflow-wrap:anywhere}.g-hero h1{font-size:24px}.schedule-calendar{padding:8px}.schedule-month{gap:4px}.schedule-month button:last-child{font-size:13px}.schedule-month h2{font-size:16px}}

.setup-modules { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.setup-modules button { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;padding:12px;border:1px solid var(--nav-border);border-radius:16px;background:var(--nav-surface);color:inherit; }
.setup-modules button[aria-pressed="true"] { background:var(--nav-active-background);outline:2px solid currentColor;outline-offset:-2px; }
.setup-modules strong { font-weight:600;overflow-wrap:anywhere; }
@media(max-width:767px) { .setup-modules {grid-template-columns:repeat(2,minmax(0,1fr));} }

@media(max-width:767px) { .setup-actions { display:grid;grid-template-columns:1fr; } .setup-actions button { width:100%;min-height:48px;white-space:normal; } }

