:root{--blue:#0c54ff;--navy:#1f2630;--muted:#9a9da3;--bg:#f5f6f8;--line:#e9eaed;--green:#00920c;font-family:Nunito,system-ui,sans-serif;color:var(--navy)}*{box-sizing:border-box}html{background:#151515}body{margin:0;background:#151515}button,input,select,textarea{font:inherit}.phone-shell{width:min(100%,480px);min-height:100dvh;margin:auto;background:var(--bg);position:relative;padding-bottom:74px;overflow:hidden}#app-header{height:62px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:10;border-bottom:1px solid #f0f0f0}#app-header>a img{width:165px;height:48px;object-fit:contain}#app-header button{border:0;background:none;font-size:24px;padding:7px}#app-header>div{display:flex}.loader{min-height:70vh;display:grid;place-items:center;color:#888}.welcome{min-height:100dvh;background:white;display:flex;flex-direction:column}.welcome-brand{text-align:center;padding:56px 20px 25px}.welcome-brand img{width:230px;height:95px;object-fit:contain}.welcome-brand h1{font-size:24px;margin:25px 0 3px}.welcome-brand p{color:#70757b;margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.welcome-art{margin:0 22px;height:245px;border-radius:18px;background:radial-gradient(circle at 70% 30%,#fff 0 8%,transparent 9%),linear-gradient(145deg,#dff0ff,#f9fcff 65%,#cddfff);display:grid;place-items:center;color:var(--blue);font-size:70px}.welcome-copy{padding:24px;text-align:center}.welcome-copy h2{margin:0 0 9px;font-size:22px}.welcome-copy p{color:#73777d;line-height:1.55}.welcome-actions{margin-top:auto;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.button{border:0;border-radius:7px;padding:13px 16px;font-weight:800;cursor:pointer}.button.primary{background:var(--blue);color:white}.button.secondary{background:#eef1f5;color:#333}.button.danger{background:#ffe8e8;color:#b52f2f}.auth-screen{min-height:100dvh;background:white;padding:34px 25px;display:flex;flex-direction:column}.back{border:0;background:none;align-self:flex-start;font-size:25px;padding:0;margin-bottom:35px}.auth-screen img{width:180px;height:65px;object-fit:contain;margin:0 auto 20px}.auth-screen h1{text-align:center;font-size:23px;margin:0}.auth-screen>p{text-align:center;color:#888;margin:6px 0 28px}.portal-form{display:grid;gap:16px}.portal-form label{display:grid;gap:7px;font-size:14px;font-weight:700}.portal-form input,.portal-form select,.portal-form textarea,.portal-search{border:1px solid #e1e3e7;border-radius:8px;padding:13px;background:white;outline:none;width:100%}.portal-form :is(input,select,textarea):focus,.portal-search:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgb(12 84 255/10%)}.remember{display:flex!important;grid-template-columns:auto 1fr;align-items:center;font-weight:400!important}.remember input{width:auto}.auth-links{text-align:center;font-size:14px;margin-top:18px}.auth-links a{color:var(--blue);font-weight:800}.form-message{min-height:20px;color:#b52f2f;font-size:14px}.screen{padding:14px 16px 28px}.search-box{position:relative}.portal-search{padding-left:44px;height:46px}.search-box:before{content:'⌕';position:absolute;left:15px;top:9px;font-size:24px}.brand-banner{height:250px;border-radius:4px;margin:18px 0;background:linear-gradient(145deg,#e8f5ff,#fff 45%,#cbdfff);display:grid;place-items:center;overflow:hidden}.brand-banner img{width:82%;height:70%;object-fit:contain}.available-card{background:var(--green);color:#fff;border-radius:6px;padding:14px 15px;margin-bottom:25px}.available-card h2{font-size:15px;margin:0 0 7px}.available-card p{font-size:14px;margin:0 0 12px}.available-card .button{display:block;margin-left:auto;background:#7b8395;color:white;padding:9px 14px}.section-title{font-size:18px;margin:20px 0 12px}.shortcut-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.shortcut{height:100px;background:white;border-radius:7px;display:grid;place-items:center;text-align:center;color:inherit;text-decoration:none;font-weight:700}.shortcut b{display:block;font-size:32px}.list-card{display:block;background:white;border-radius:8px;padding:17px;margin-bottom:12px;color:inherit;text-decoration:none;border-left:4px solid var(--blue)}.list-card h2{font-size:17px;margin:0 0 6px}.list-card p{font-size:13px;color:#7c8188;margin:3px 0}.badge{display:inline-block;border-radius:12px;background:#edf2ff;color:var(--blue);padding:4px 9px;font-size:11px}.badge.running{background:#ddf7e5;color:#167b3b}.screen-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.screen-head .back{margin:0}.screen-head h1{font-size:20px;margin:0}.detail-card,.profile-card{background:white;border-radius:8px;padding:20px}.detail-card h1{font-size:20px;margin:0 0 12px}.detail-card p{color:#72777e;line-height:1.55}.detail-card hr{border:0;border-top:1px solid var(--line);margin:18px 0}.question-progress{font-size:13px;color:#888;margin-bottom:8px}.question-card{background:white;border-radius:9px;padding:20px;margin-bottom:14px}.question-card h2{font-size:17px;line-height:1.4;margin:0 0 16px}.option{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-top:1px solid #f0f0f0}.option input{margin-top:4px}.question-card textarea{width:100%;border:1px solid #ddd;border-radius:7px;padding:12px}.submit-bar{position:sticky;bottom:74px;background:var(--bg);padding:12px 0}.submit-bar .button{width:100%}.city-list{display:grid;gap:10px}.city-item{background:white;border-radius:8px;padding:17px;display:flex;align-items:center;gap:13px}.city-item b{font-size:25px;color:var(--blue)}#bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);height:74px;background:white;display:grid;grid-template-columns:repeat(4,1fr);z-index:10;box-shadow:0 -4px 15px rgb(0 0 0/5%);padding-bottom:env(safe-area-inset-bottom)}#bottom-nav a{display:grid;place-items:center;align-content:center;gap:2px;color:#111;text-decoration:none;font-size:24px}#bottom-nav a span{font-size:10px}#bottom-nav a.active{color:var(--blue);border-bottom:3px solid var(--blue)}.portal-toast{position:fixed;z-index:50;left:50%;bottom:90px;transform:translate(-50%,100px);opacity:0;background:#202630;color:white;padding:12px 17px;border-radius:8px;transition:.2s;max-width:420px}.portal-toast.show{transform:translate(-50%,0);opacity:1}.empty-state{text-align:center;background:white;border-radius:9px;padding:45px 20px;color:#81858a}.empty-state b{display:block;font-size:36px;color:var(--blue);margin-bottom:10px}
@media(min-width:600px){.phone-shell{box-shadow:0 0 0 1px #333,0 30px 90px #000}.auth-screen,.welcome{min-height:100vh}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Camada responsiva e menu lateral; as regras anteriores permanecem como fallback. */
html{width:100%;min-width:0;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{width:100%;min-width:0;overflow-x:hidden}body.menu-open{overflow:hidden}.phone-shell{width:100%;max-width:480px;min-width:0;padding-bottom:calc(74px + env(safe-area-inset-bottom));overflow-x:clip}.welcome-art{min-height:220px;height:auto;background:white;color:inherit;font-size:inherit;overflow:hidden}.welcome-art img{display:block;width:100%;height:auto;max-height:245px;object-fit:contain}.brand-banner{height:auto;aspect-ratio:448/250;background:#e8f5ff}.brand-banner img{display:block;width:100%;height:100%;object-fit:cover}.shortcut{min-height:100px;height:auto;align-content:center;gap:6px;padding:10px}.shortcut img{width:38px;height:38px;object-fit:contain}.shortcut span{font-size:13px}.menu-backdrop{position:fixed;inset:0;z-index:19;border:0;background:rgb(8 15 29/48%);width:100%;height:100%;padding:0}.side-menu{position:fixed;z-index:20;top:0;bottom:0;left:max(0px,calc(50% - 240px));width:min(82vw,360px);padding:env(safe-area-inset-top) 18px max(20px,env(safe-area-inset-bottom));background:white;box-shadow:12px 0 36px rgb(12 31 68/18%);display:flex;flex-direction:column;transform:translateX(-105%);visibility:hidden;transition:transform .24s ease,visibility 0s linear .24s}.side-menu.open{transform:translateX(0);visibility:visible;transition-delay:0s}.side-menu-head{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.side-menu-head img{width:178px;height:52px;object-fit:contain}.side-menu-head button{border:0;background:none;font-size:32px;line-height:1;padding:8px}.side-menu nav{display:grid;padding:18px 0}.side-menu nav a{color:var(--navy);text-decoration:none;font-weight:800;padding:15px 10px;border-bottom:1px solid var(--line)}.side-menu nav a:focus-visible,.side-menu nav a:hover{color:var(--blue);background:#f5f8ff}.side-menu-logout{margin-top:auto;border:0;border-radius:7px;padding:13px 16px;background:#ffe8e8;color:#a52c2c;font-weight:800}.menu-backdrop[hidden]{display:none}
@media(max-width:599px){input,select,textarea{font-size:16px}.screen{padding-inline:max(12px,env(safe-area-inset-left))}.welcome-brand{padding-top:clamp(28px,8vh,56px)}.welcome-brand h1{font-size:clamp(20px,6vw,24px)}.welcome-actions{grid-template-columns:1fr}.auth-screen{padding-inline:max(18px,env(safe-area-inset-left))}.portal-toast{width:calc(100% - 32px)}}
@media(max-width:359px){.shortcut-grid{gap:8px}.shortcut{padding-inline:4px}.shortcut span{font-size:11px}#app-header>a img{width:140px}.screen-head h1{font-size:18px}}

/* Cadastro e confirmação por WhatsApp. */
.register-form{gap:15px}.register-form .button{margin-top:2px}.terms-consent{display:flex!important;align-items:flex-start;gap:10px!important;border-radius:7px;background:#819b10;color:#fff;padding:11px 10px;line-height:1.45}.terms-consent input{flex:0 0 auto;width:18px!important;height:18px;margin:1px 0 0;accent-color:#fff}.terms-consent span{font-weight:700}.terms-consent a{color:#fff;text-decoration:underline;text-underline-offset:2px}.otp-form{margin-top:8px}.otp-input{text-align:center;font-size:28px!important;font-weight:800;letter-spacing:.28em;font-variant-numeric:tabular-nums;padding-left:calc(13px + .28em)!important}.button:disabled{cursor:wait;opacity:.62}.button:focus-visible,.back:focus-visible,.auth-links a:focus-visible,.terms-consent a:focus-visible{outline:3px solid rgb(12 84 255/28%);outline-offset:3px}.portal-form small{color:#6f747b;font-weight:600;line-height:1.4}
@media(max-width:599px){.auth-screen{padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(32px,env(safe-area-inset-bottom))}.auth-screen .back{margin-bottom:20px}.auth-screen img{margin-bottom:14px}.auth-screen>p{margin-bottom:24px}.terms-consent{padding:12px}}
