/* Web-app shell for the dashboard: the design's 390 px phone screens become a centred column. */
body.app { background:var(--oat); min-height:100vh; }
.app-col { max-width:480px; margin:0 auto; min-height:100vh; position:relative; background:var(--linen); background-image:var(--grain-soft); box-shadow:0 30px 80px -50px rgba(58,31,61,.45); }
.app-col .scr { position:relative; inset:auto; min-height:100vh; overflow:visible; }
.app-col .scr::before, .app-col .scr::after { display:none; }
.app-col .pad { overflow:visible; padding:22px 22px 110px; }
.app-col .tabs { position:fixed; left:50%; transform:translateX(-50%); width:100%; max-width:480px; bottom:0; height:auto; padding:8px 14px calc(12px + env(safe-area-inset-bottom)); }
.app-col .view[hidden] { display:none !important; }
.app-top { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 22px 0; }
.app-top img { height:30px; width:auto; }
.app-top a { font-size:.86rem; }
.launch-card { border-radius:22px; padding:18px 18px 18px 14px; background:var(--champagne); display:flex; gap:12px; align-items:center; }
.launch-card h3 { font-size:1.15rem; margin:0 0 4px; }
.launch-card p { margin:0; font-size:.88rem; }
.app-col .next .label-soon { font-size:.8rem; color:#EADCE6; margin:6px 0 0; }
.form-grid { display:grid; gap:14px; }
.app-col select, .app-col input[type=text], .app-col input[type=tel], .app-col input[type=email] { width:100%; }
.inline-kv { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.save-msg { font-size:.88rem; min-height:1.4em; margin:6px 0 0; }
.save-msg.ok { color:var(--sage); }
.save-msg.bad { color:var(--error); }
.dst-note { font-size:.82rem; color:var(--clay); margin:6px 0 0; }
.set-list a { font-weight:700; }
.member .btn { margin-top:12px; }
.member a { color:var(--champagne); }
.danger { color:var(--error) !important; }
@media (min-width:700px) { .app-col { margin-top:24px; margin-bottom:24px; min-height:calc(100vh - 48px); border-radius:36px; overflow:hidden; } .app-col .scr { min-height:calc(100vh - 48px); } .app-col .tabs { bottom:24px; border-radius:0 0 36px 36px; } }
@media (prefers-reduced-motion:reduce) { .app-col * { transition:none !important; animation:none !important; } }
