:root{--green-900: #0b2e22;--green-800: #0f3d2e;--green-700: #145a40;--green-600: #1d7350;--green-100: #e3f0e6;--gold: #c9a227;--gold-soft: #e8cf7a;--gold-50: #fbf3d9;--cream: #fbf7ec;--paper: #fffdf8;--line: #ebe2cc;--ink: #18261f;--ink-2: #4c5a52;--ink-3: #7d877f;--laterite: #b5573c;--danger: #b4372a;--danger-50: #fbe9e6;--info: #2d6f9e;--radius: 18px;--shadow: 0 1px 2px rgb(24 38 31 / 6%), 0 8px 24px rgb(24 38 31 / 8%);--font: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--font-ml: "Noto Sans Malayalam", var(--font);color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}a{color:var(--green-700)}.ml{font-family:var(--font-ml)}.shell{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--cream);position:relative;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.shell.no-nav{padding-bottom:24px}@media(min-width:520px){body.phone{background:#e9e3d2}.shell{box-shadow:0 0 0 1px var(--line),0 20px 60px #00000014}}.hero{position:relative;height:230px;overflow:hidden;color:#fff}.hero.tall{height:300px}.hero>svg{position:absolute;inset:0;width:100%;height:100%}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0b2e228c,#0b2e2200 55%);pointer-events:none}.hero.dusk:after{background:linear-gradient(180deg,#1a1028a6,#1a102800 60%)}.hero-text{position:relative;z-index:1;padding:calc(18px + env(safe-area-inset-top)) 20px 0;text-shadow:0 1px 8px rgb(0 0 0 / 25%)}.hero-text .greet{font-family:var(--font-ml);font-size:15px;opacity:.95}.hero-text h1{font-size:26px;font-weight:700;letter-spacing:-.01em;margin-top:2px}.hero-text .sub{font-size:14px;opacity:.9;margin-top:4px}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.01em}.brand-mark{width:28px;height:28px;border-radius:9px;flex:none}.content{padding:0 16px}.lift{margin-top:-44px;position:relative;z-index:2}.kasavu{height:9px;background:linear-gradient(var(--gold),var(--gold)) top / 100% 3px no-repeat,linear-gradient(var(--gold-soft),var(--gold-soft)) bottom / 100% 1px no-repeat,repeating-linear-gradient(90deg,transparent 0 6px,var(--gold-soft) 6px 8px) center / 100% 2px no-repeat;opacity:.95}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:12px}.card-title{font-size:13px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.section{margin-top:18px}.section>h2{font-size:18px;font-weight:700;margin:0 4px 10px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.stack>*+*{margin-top:12px}.muted{color:var(--ink-2)}.faint{color:var(--ink-3);font-size:13px}.small{font-size:13px}.strong{font-weight:700}.center{text-align:center}.divider{height:1px;background:var(--line);margin:14px 0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:14px;border:1px solid transparent;font-weight:600;font-size:16px;cursor:pointer;background:var(--green-800);color:var(--cream);transition:transform .08s ease,background .15s ease,opacity .15s;text-decoration:none}.btn:active{transform:scale(.98)}.btn:hover{background:var(--green-700)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.block{width:100%}.btn.gold{background:var(--gold);color:var(--green-900)}.btn.gold:hover{background:#d6b13a}.btn.ghost{background:transparent;color:var(--green-800);border-color:var(--line)}.btn.ghost:hover{background:var(--green-100)}.btn.danger{background:transparent;color:var(--danger);border-color:#efc9c3}.btn.danger:hover{background:var(--danger-50)}.btn.sm{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}.btn.lg{min-height:56px;font-size:17px;border-radius:16px}.btn .spin{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.link{background:none;border:0;padding:0;color:var(--green-700);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.field{display:block}.field>span{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.input,.select,.textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}.textarea{min-height:76px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--green-600);box-shadow:0 0 0 3px #1d735026}.hint{font-size:12px;color:var(--ink-3);margin-top:6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip{flex:none;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;text-align:left;font-size:14px}.chip.on{border-color:var(--green-700);background:var(--green-100);box-shadow:inset 0 0 0 1px var(--green-700)}.chip .t{font-weight:600;display:block}.chip .s{font-size:12px;color:var(--ink-3)}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:22px;cursor:pointer}.stepper .val{font-size:26px;font-weight:700;min-width:86px;text-align:center}.stepper .val small{font-size:14px;color:var(--ink-3);font-weight:500}.check{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--green-700)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--green-100);color:var(--green-700);white-space:nowrap}.pill.gold{background:var(--gold-50);color:#8a6b10}.pill.red{background:var(--danger-50);color:var(--danger)}.pill.grey{background:#eeece6;color:var(--ink-2)}.pill.blue{background:#e4eff8;color:var(--info)}.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.fare-total{font-size:32px;font-weight:800;letter-spacing:-.02em}.fare-lines{font-size:14px;color:var(--ink-2)}.fare-lines .row{justify-content:space-between;padding:3px 0}.avatar{width:52px;height:52px;border-radius:16px;background:var(--gold-50);color:#8a6b10;display:grid;place-items:center;font-weight:800;font-size:20px;flex:none;overflow:hidden;border:2px solid var(--gold-soft)}.avatar img{width:100%;height:100%;object-fit:cover}.otp{border-radius:var(--radius);padding:16px;background:var(--green-800);color:var(--cream);text-align:center;position:relative;overflow:hidden}.otp:before,.otp:after{content:"";position:absolute;left:0;right:0;height:4px;background:var(--gold)}.otp:before{top:0;box-shadow:0 6px 0 -5px var(--gold-soft)}.otp:after{bottom:0;box-shadow:0 -6px 0 -5px var(--gold-soft)}.otp .digits{display:flex;justify-content:center;gap:10px;margin:10px 0 6px}.otp .digits span{width:52px;height:62px;border-radius:12px;background:#ffffff14;border:1px solid rgb(232 207 122 / 50%);display:grid;place-items:center;font-size:32px;font-weight:800;color:var(--gold-soft)}.otp-input{letter-spacing:.6em;text-align:center;font-size:28px;font-weight:700}.steps{display:flex;gap:4px;margin:4px 0 14px}.steps i{flex:1;height:5px;border-radius:3px;background:var(--line)}.steps i.on{background:var(--gold)}.radar{width:120px;height:120px;margin:8px auto 4px;position:relative;display:grid;place-items:center}.radar:before,.radar:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);animation:ping 2s ease-out infinite}.radar:after{animation-delay:1s}.radar .core{width:64px;height:64px;border-radius:50%;background:var(--green-800);display:grid;place-items:center;color:var(--gold-soft);z-index:1}@keyframes ping{0%{transform:scale(.5);opacity:1}to{transform:scale(1.2);opacity:0}}.timer{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;letter-spacing:-.02em}.nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:#fffdf8f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:20}.nav button{flex:1;border:0;background:none;padding:10px 0 12px;display:grid;justify-items:center;gap:3px;font-size:12px;font-weight:600;color:var(--ink-3);cursor:pointer}.nav button.on{color:var(--green-800)}.nav button.on svg{color:var(--gold)}.sheet-back{position:fixed;inset:0;background:#0b2e2273;z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet{width:100%;max-width:480px;max-height:92dvh;overflow:auto;background:var(--paper);border-radius:22px 22px 0 0;padding:8px 16px calc(20px + env(safe-area-inset-bottom));animation:up .2s ease-out}.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 12px}.sheet h3{font-size:20px;margin-bottom:14px}@keyframes up{0%{transform:translateY(30px);opacity:.4}}@keyframes fade{0%{opacity:0}}.toasts{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:60;display:grid;gap:8px;width:min(440px,calc(100% - 32px))}.toast{background:var(--ink);color:#fff;padding:12px 16px;border-radius:12px;font-size:14px;box-shadow:var(--shadow);animation:up .2s ease-out}.toast.error{background:var(--danger)}.empty{text-align:center;padding:28px 12px;color:var(--ink-3)}.empty svg{color:var(--gold);margin-bottom:8px}.list-item{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:0}.big-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:var(--radius);background:#ffffff24;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgb(255 255 255 / 25%)}.toggle{position:relative;width:64px;height:36px;border-radius:18px;border:0;background:#ffffff4d;cursor:pointer;flex:none;transition:background .2s}.toggle:after{content:"";position:absolute;top:4px;left:4px;width:28px;height:28px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 2px 6px #0003}.toggle.on{background:#3fbf7f}.toggle.on:after{transform:translate(28px)}.login{min-height:100dvh;display:flex;flex-direction:column}.login .hero{flex:1;min-height:340px;height:auto}.login .panel{background:var(--paper);border-radius:26px 26px 0 0;margin-top:-26px;position:relative;z-index:2;padding:26px 20px calc(28px + env(safe-area-inset-bottom))}.login .panel h1{font-size:28px;font-weight:800;letter-spacing:-.02em}.login .tag-ml{font-family:var(--font-ml);color:var(--green-700);font-size:16px;margin-top:6px}.gsi{display:flex;justify-content:center;min-height:44px}.stars{display:flex;gap:6px;justify-content:center}.stars button{background:none;border:0;font-size:36px;cursor:pointer;color:var(--line);padding:0;line-height:1}.stars button.on{color:var(--gold)}.offer{border:2px solid var(--gold);background:linear-gradient(180deg,var(--gold-50),var(--paper) 60%)}.earn{font-size:26px;font-weight:800;color:var(--green-700)}.banner{padding:12px 14px;border-radius:12px;background:var(--gold-50);border:1px solid var(--gold-soft);font-size:14px;color:#6d5410}.banner.blue{background:#e9f2f9;border-color:#c4dcee;color:var(--info)}
