
/* Vitala 1.5 — branded, accessible interface for all ages. */
:root{--bg:#f7f7f5;--ink:#161719;--muted:#656870;--line:#e8e8e5;--red:#aa2435;--green:#aa2435;--deep:#19191b;--mint:#faedef;--shadow:0 8px 26px rgba(20,22,24,.035)}
body{background:#f7f7f5;color:var(--ink);font-family:Inter,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;line-height:1.48}
button,input,select,textarea{accent-color:#aa2435}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #aa2435;outline-offset:2px}
.app{display:block;width:100%;min-height:100dvh}
.app .sidebar,.app .footer-nav,.px-mobile-menu{display:none!important}
.main{max-width:1120px;padding:26px clamp(16px,4vw,40px) 72px;margin:0 auto;min-width:0}
.card{background:#fff;border:1px solid #e9e9e7;border-radius:20px;box-shadow:0 8px 22px rgba(22,23,25,.03)}
.btn.primary,.btn.dark{background:#19191b;border-color:#19191b;color:#fff}.btn.soft{background:#faedef;color:#8e1c29;border-color:#f3d7dc}
.btn{min-height:44px}.link{min-height:36px}
.vn-app-header{height:70px;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,40px);background:rgba(255,255,255,.96);backdrop-filter:blur(15px);border-bottom:1px solid #eaeaec}
.vn-menu-button{min-width:86px;min-height:48px;display:flex;align-items:center;gap:10px;padding:7px 6px;border:0;border-radius:10px;background:transparent;font-size:15px;font-weight:760;color:#171719}
.vn-menu-button:hover{background:#f6f6f6}
.vn-menu-lines{width:22px;display:flex;flex-direction:column;gap:5px}
.vn-menu-lines i{height:2px;width:22px;background:#171719;border-radius:3px}
.vn-app-identity{display:flex;align-items:center;gap:10px;border:0;background:none;color:#171719;font-size:20px;font-weight:850;letter-spacing:-.7px}
.vn-app-identity img{border-radius:11px}.vn-header-spacer{width:86px}
.vn-layer{position:fixed;inset:0;z-index:1200;display:flex}
.vn-no-scroll{overflow:hidden}
.vn-shade{position:absolute;inset:0;background:rgba(8,9,11,.48);backdrop-filter:blur(2px)}
.vn-drawer{position:relative;display:flex;flex-direction:column;width:min(88vw,355px);height:100%;background:white;box-shadow:18px 0 50px rgba(0,0,0,.15);outline:0;animation:vn-in .22s ease both}
@keyframes vn-in{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.vn-drawer-top{display:flex;align-items:center;justify-content:space-between;padding:22px 19px 17px;border-bottom:1px solid #eee}
.vn-identity{display:flex;align-items:center;gap:11px}.vn-identity img{border-radius:12px}.vn-identity strong{display:block;font-size:21px;letter-spacing:-.7px}.vn-identity small{display:block;font-size:11px;color:#74767c}
.vn-close{width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:13px;background:#f5f5f6;color:#222;font-size:24px}
.vn-drawer-nav{display:block;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:17px 15px 25px}
.vn-home{width:100%;min-height:51px;display:flex;align-items:center;gap:13px;padding:12px 14px;text-align:left;border:0;background:transparent;border-radius:12px;font-weight:760;font-size:21px;color:#2a2b2e}
.vn-home span{font-size:15px}
.vn-home.active,.vn-cat-items button.active{background:#faeef0;color:#912131}
.vn-cat{margin-top:12px}.vn-cat-head{min-height:47px;width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;padding:12px 14px;text-align:left;border-radius:12px;color:#44464c;font-weight:800;font-size:14px}
.vn-cat-head:hover{background:#f6f6f7}.vn-cat-head b{font-size:19px;color:#777;font-weight:500}
.vn-cat-items{display:grid;gap:4px;border-left:2px solid #f0e9eb;margin:1px 0 4px 16px;padding-left:8px}
.vn-cat-items[hidden]{display:none}
.vn-cat-items button{display:flex;align-items:center;gap:12px;min-height:49px;width:100%;padding:11px 12px;border:0;border-radius:11px;background:#fff;text-align:left;color:#404147;font-size:14px;font-weight:650}
.vn-cat-items button>span{font-size:19px;width:25px;text-align:center;color:#7c7d83}
.nd-dashboard>.top{display:none!important}
.vn-home-tools{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.vn-home-tools button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;gap:9px;border-radius:13px;border:1px solid #e0e0e2;background:#fff;color:#232326;font-size:13px;font-weight:760}
.vn-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:18px 0 29px}
.vn-quick-card{background:white;border:1px solid #eaeaea;box-shadow:0 8px 22px rgba(22,23,25,.03);border-radius:20px;padding:21px;min-width:0}
.vn-quick-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.vn-quick-header h2{display:flex;align-items:center;gap:9px;margin:0;font-size:18px;font-weight:800;letter-spacing:-.4px}
.vn-quick-header h2 span{width:35px;height:35px;display:grid;place-items:center;background:#faeef0;border-radius:11px;color:#aa2435;font-size:21px}
.vn-water-total{font-size:12px;white-space:nowrap;color:#666a72}.vn-water-total b{font-size:16px;color:#222}
.vn-water-track{height:8px;border-radius:20px;background:#eeedef;overflow:hidden;margin:18px 0 15px}.vn-water-track span{display:block;height:100%;border-radius:20px;background:#aa2435}
.vn-water-actions{display:flex;flex-wrap:wrap;gap:8px}.vn-water-actions button{flex:1 1 88px;min-height:45px;border-radius:12px;border:1px solid #19191b;background:#19191b;color:white;font-size:12px;font-weight:760}
.vn-water-actions button.vn-minus{background:#f7f7f8;border-color:#e8e8e9;color:#232428}.vn-water-actions button:disabled{opacity:.35}
.vn-quick-button{min-height:44px;padding:10px 13px;border:0;border-radius:12px;background:#19191b;color:white;font-size:13px;font-weight:750;white-space:nowrap}
.vn-movement-stats{font-size:12px;color:#6c6f75;margin:18px 0 0}.vn-movement-stats b{font-size:27px;color:#1b1b1d;letter-spacing:-1px}.vn-movement-stats small{font-size:12px}
.vn-activity-list{list-style:none;padding:0;margin:13px 0 0}.vn-activity-list li{display:flex;gap:8px;justify-content:space-between;border-top:1px solid #f0f0f0;padding:9px 0;font-size:12px}
.vn-activity-search{display:flex;align-items:center;gap:10px;border:1px solid #dedfe0;border-radius:13px;padding:0 12px;margin:10px 0}.vn-activity-search input{width:100%;min-width:0;height:49px;border:0;background:transparent;outline:none}
.vn-activity-results{display:grid;gap:7px;max-height:355px;overflow:auto;margin:12px 0}
.vn-activity-results button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:54px;border:1px solid #ececed;background:white;border-radius:12px;padding:10px 12px}
.vn-activity-results button>span:first-child{font-size:21px}.vn-activity-results button>div{flex:1}.vn-activity-results strong,.vn-activity-results small{display:block}.vn-activity-results strong{font-size:13px}.vn-activity-results small{font-size:11px;color:#75757a}
.brand-logo,.splash-mark{background-color:#19191b!important;background-image:url("icons/vitala-mark.svg")!important;background-size:cover!important;background-position:center!important}
.brand-logo::before,.brand-logo::after,.splash-mark::before,.splash-mark::after{content:none!important}
.onboard-overlay{background:#f3f3f1}.onboard{box-shadow:0 18px 50px rgba(0,0,0,.08)}
@media(max-width:750px){.vn-app-header{height:66px;padding:0 14px}.vn-header-spacer{width:76px}.vn-app-identity{font-size:19px}.vn-app-identity img{width:32px;height:32px}.main{padding:18px 14px 64px}.vn-quick-grid{grid-template-columns:1fr;gap:12px;margin:18px 0 24px}.vn-quick-card{padding:17px}.vn-home-tools button{flex:1;white-space:nowrap}}
@media(max-width:350px){.vn-header-spacer{display:none}.vn-quick-header{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.vn-drawer{animation:none}}

/* Vitala account UX: accessible password toggle and single-column consent. */
.account-modal{max-width:min(520px,calc(100vw - 22px));}
.account-modal #cloud-auth-form{display:block;min-width:0;}
.account-modal #cloud-auth-form>.field{display:block;width:100%;min-width:0;}
.account-password-wrap{position:relative;display:block;width:100%;min-width:0;}
.account-modal .account-password-wrap input{width:100%;box-sizing:border-box;padding-right:106px;min-height:52px;}
.account-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;border-radius:10px;background:#f3f3f4;color:#252628;min-width:85px;min-height:40px;padding:8px 11px;font-size:13px;font-weight:750;cursor:pointer;}
.account-password-toggle:focus-visible{outline:3px solid #aa2435;outline-offset:2px;}
.account-modal .account-consent{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;width:100%;min-width:0;box-sizing:border-box;padding:15px;border:1px solid #e5e5e7;background:#fafafa;border-radius:15px;margin-top:16px;}
.account-consent input[type=checkbox]{width:21px;height:21px;min-width:21px;margin:2px 0 0;accent-color:#aa2435;}
.account-consent-copy{display:flex;flex-direction:column;gap:8px;min-width:0;width:100%;font-size:14px;line-height:1.55;overflow-wrap:anywhere;word-break:normal;}
.account-consent-copy label{display:block;margin:0;color:#313236;cursor:pointer;font-size:14px;line-height:1.55;font-weight:450;}
.account-consent-copy a{display:inline-block;align-self:flex-start;color:#962534;text-decoration:underline;text-underline-offset:3px;font-size:13px;font-weight:700;line-height:1.5;}
.account-modal .account-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.account-modal .account-tabs button{min-width:0;padding:10px 7px;white-space:normal;min-height:46px;}
@media(max-width:420px){.account-modal .account-consent{padding:13px 11px;gap:10px}.account-modal .account-tabs{gap:5px}.account-modal .account-tabs button{font-size:13px}}
