:root{--ink:#15231b;--muted:#647069;--forest:#173b2b;--forest-2:#245a40;--lime:#d7f06e;--paper:#f5f7f2;--card:#fff;--line:#dde4dc;--warn:#a74435;--shadow:0 14px 40px rgba(23,59,43,.11);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper)}body{min-height:100dvh;overflow-x:hidden}.hidden{display:none!important}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}.ambient{position:fixed;border-radius:50%;filter:blur(4px);pointer-events:none;opacity:.45}.ambient-a{width:280px;height:280px;background:#d7f06e;right:-130px;top:-120px}.ambient-b{width:260px;height:260px;background:#b9ddcf;left:-150px;bottom:10%}.app-shell{position:relative;z-index:1;max-width:760px;margin:auto;min-height:100dvh}.center-card{min-height:100dvh;display:grid;place-content:center;text-align:center;gap:14px}.brand-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:19px;background:var(--forest);color:var(--lime);font-size:21px;font-weight:850;letter-spacing:-1px;box-shadow:var(--shadow)}.center-card .brand-mark{margin:auto}.center-card h1{font-size:22px;margin:0}.loader{width:24px;height:24px;border:3px solid #d8ded9;border-top-color:var(--forest);border-radius:50%;margin:auto;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.auth-view{min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 20px 30px;display:flex;flex-direction:column}.auth-brand{display:flex;align-items:center;gap:12px;font-weight:800}.auth-brand .brand-mark{width:44px;height:44px;border-radius:14px;font-size:17px}.auth-card{margin:auto 0;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.8);border-radius:30px;padding:28px 22px;box-shadow:var(--shadow)}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:850;color:var(--forest-2)}.auth-card h1{font-size:32px;line-height:1.03;letter-spacing:-1.3px;margin:0 0 12px;max-width:460px}.muted{color:var(--muted);line-height:1.5}.stack{display:grid;gap:10px;margin-top:25px}.stack label{font-size:13px;font-weight:750}.stack input,.stack textarea,.field{width:100%;min-height:50px;border:1px solid var(--line);border-radius:15px;background:white;padding:12px 14px;outline:none}.stack input:focus,.stack textarea:focus,.field:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px rgba(36,90,64,.12)}.code-input{font-size:27px;letter-spacing:.5em;text-align:center;font-weight:800}.primary{min-height:52px;border:0;border-radius:15px;background:var(--forest);color:white;font-weight:800;padding:12px 18px}.primary:active{transform:translateY(1px)}.fallbacks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fallbacks button,.secondary{min-height:44px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--forest);font-weight:700}.fallbacks button:first-child{grid-column:1/-1}.status-text{min-height:22px;margin:14px 0 0;color:var(--muted);font-size:14px}.status-text.error{color:var(--warn)}.privacy-note{font-size:12px;color:var(--muted);text-align:center;max-width:460px;margin:20px auto 0;line-height:1.45}
.portal{min-height:100dvh;padding:0 16px calc(92px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:max(18px,env(safe-area-inset-top)) 2px 14px;background:linear-gradient(var(--paper) 75%,rgba(245,247,242,0));backdrop-filter:blur(8px)}.topbar h1{font-size:28px;letter-spacing:-.8px;margin:0}.icon-button{width:46px;height:46px;border:1px solid var(--line);border-radius:15px;background:white;color:var(--forest);font-weight:900}.page{display:none;animation:up .18s ease}.page.active{display:block}@keyframes up{from{opacity:.4;transform:translateY(5px)}}
.hero{background:var(--forest);color:white;border-radius:28px;padding:24px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:160px;height:160px;background:var(--lime);opacity:.16;border-radius:50%;right:-50px;top:-60px}.hero .label{color:#cbd8d1;font-size:13px}.hero .amount{font-size:40px;font-weight:850;letter-spacing:-1.8px;margin:7px 0}.hero .subrow{display:flex;gap:16px;font-size:13px;color:#e2e9e5}.quick-grid,.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:14px 0}.quick-action,.card{border:1px solid var(--line);background:rgba(255,255,255,.93);border-radius:21px;padding:17px;text-align:left;min-height:92px}.quick-action{display:flex;flex-direction:column;justify-content:space-between;font-weight:750;color:var(--ink)}.quick-action .icon{font-size:22px;color:var(--forest-2)}.section-title{display:flex;align-items:end;justify-content:space-between;margin:23px 2px 10px}.section-title h2{margin:0;font-size:20px;letter-spacing:-.4px}.section-title span{font-size:12px;color:var(--muted)}.card{min-height:auto}.card.full{grid-column:1/-1}.card h3{margin:0 0 7px;font-size:16px}.card p{margin:4px 0;color:var(--muted);line-height:1.42}.metric{font-size:27px;font-weight:830;letter-spacing:-.6px}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#e7efe9;color:var(--forest);padding:6px 10px;font-size:12px;font-weight:750}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#45a66d}.list{display:grid;gap:10px}.list-item{display:flex;justify-content:space-between;gap:14px;border:1px solid var(--line);background:white;border-radius:18px;padding:15px}.list-item strong{display:block}.list-item small{color:var(--muted)}.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.action-row button,.action{min-height:44px;border:0;border-radius:13px;background:#e8eee9;color:var(--forest);font-weight:760;padding:9px 14px}.action-row .accent,.action.accent{background:var(--lime)}.error-card{border:1px solid #eccdc8;background:#fff7f5;border-radius:18px;padding:16px;color:#7a382f}.empty{padding:36px 18px;text-align:center;color:var(--muted)}
.bottom-nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(760px,100%);height:calc(72px + env(safe-area-inset-bottom));padding:8px 8px env(safe-area-inset-bottom);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid rgba(210,220,213,.9);display:grid;grid-template-columns:repeat(5,1fr)}.bottom-nav button{position:relative;border:0;background:transparent;color:#778179;font-size:10px;font-weight:750;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border-radius:13px}.bottom-nav button span{font-size:20px;line-height:1}.bottom-nav button.active{color:var(--forest);background:#edf2ed}.badge{position:absolute;right:18%;top:6px;width:9px;height:9px;border-radius:50%;background:#d5503f;border:2px solid white}
.toast{position:fixed;z-index:50;left:50%;top:18px;transform:translateX(-50%);max-width:calc(100% - 28px);background:#15231b;color:white;border-radius:14px;padding:11px 16px;box-shadow:var(--shadow);font-size:14px}.sheet{width:min(720px,calc(100% - 16px));border:0;border-radius:25px 25px 0 0;padding:12px 18px calc(24px + env(safe-area-inset-bottom));margin:auto auto 0;background:#fff;box-shadow:0 -20px 70px rgba(20,40,28,.2)}.sheet::backdrop{background:rgba(12,27,18,.35);backdrop-filter:blur(2px)}.sheet-handle{width:42px;height:5px;border-radius:5px;background:#d7dcd8;margin:0 auto 16px}.sheet h2{margin:0 0 10px}.sheet>button{width:100%;min-height:50px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;font-weight:750}.form-sheet .stack{margin-top:10px}.form-sheet menu{display:flex;gap:8px;padding:0;margin:16px 0 0}.form-sheet menu button{flex:1;min-height:48px;border-radius:14px;border:1px solid var(--line);background:white;font-weight:750}.form-sheet menu .primary{background:var(--forest);color:white}
.chat-page.active{height:calc(100dvh - 156px);display:flex;flex-direction:column}.chat-messages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:9px;padding:8px 2px 12px}.bubble{max-width:86%;padding:11px 13px;border-radius:18px;background:white;border:1px solid var(--line);align-self:flex-start;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.driver{align-self:flex-end;background:var(--forest);color:white;border-color:var(--forest)}.bubble .meta{font-size:10px;opacity:.65;margin-top:5px;display:flex;gap:8px}.bubble .attachments{display:grid;gap:5px;margin-top:8px}.bubble .attachments a{color:inherit;font-weight:700}.bubble img,.bubble video{max-width:100%;border-radius:12px;margin-top:6px}.chat-composer{display:grid;grid-template-columns:46px 1fr 46px;gap:7px;align-items:end;background:white;border:1px solid var(--line);border-radius:20px;padding:7px;box-shadow:var(--shadow)}.chat-composer textarea{resize:none;border:0;outline:0;padding:10px 5px;max-height:120px}.attach-button,.send-button{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;border:0;background:#edf2ed;color:var(--forest);font-size:22px}.send-button{background:var(--forest);color:white}.checklist{padding-left:20px;color:var(--muted);line-height:1.55}.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.numbers button{aspect-ratio:1;border:0;border-radius:14px;background:#e8eee9;font-weight:850;font-size:18px}.skeleton-grid:before{content:"";display:block;height:190px;border-radius:28px;background:linear-gradient(90deg,#e8ece8 25%,#f4f6f3 50%,#e8ece8 75%);background-size:200% 100%;animation:shine 1.2s infinite}@keyframes shine{to{background-position:-200% 0}}
@media(min-width:700px){.portal{padding-left:24px;padding-right:24px}.auth-card{padding:38px}.quick-grid{grid-template-columns:repeat(4,1fr)}.card-grid{grid-template-columns:repeat(3,1fr)}.hero{padding:30px}.sheet{border-radius:25px;margin:auto;max-height:85vh}.sheet::backdrop{background:rgba(12,27,18,.4)}}
.bubble audio{display:block;max-width:100%;width:260px;margin-top:6px}.boundary-link{display:inline-flex;align-items:center;text-decoration:none;margin-bottom:8px}.photo-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.photo-preview img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.quick-action{text-decoration:none}
.privacy-note a{display:inline-flex;align-items:center;min-height:44px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
