*{box-sizing:border-box;margin:0;padding:0}:root{--kid-primary:#373084;--kid-accent:#4338ca;--kid-mid:#a5b4fc;--kid-light:#eef2ff;--kid-grad:linear-gradient(160deg, #373084 0%, #4338ca 100%);--kid-bar:linear-gradient(160deg, #373084 0%, #4338ca 100%);--work-primary:#0f4c5c;--work-accent:#0e6e82;--work-mid:#67e8f9;--work-light:#e0f7fa;--work-grad:linear-gradient(160deg, #0f4c5c 0%, #0e6e82 55%, #0f4c5c 100%);--work-bar:linear-gradient(160deg, #0f4c5c 0%, #0e6e82 100%);--life-primary:#881337;--life-accent:#9f1239;--life-mid:#fda4af;--life-light:#fff1f2;--life-grad:linear-gradient(160deg, #881337 0%, #9f1239 55%, #881337 100%);--life-bar:linear-gradient(160deg, #881337 0%, #9f1239 100%);--grey:#6b7280;--border:#e5e7eb;--bg:#f4f4ff;--white:#fff;--amber:#b45309;--red:#ef4444;--text:#111827;--text-muted:#6b7280;--primary:var(--kid-primary);--accent:var(--kid-accent);--mid:var(--kid-mid);--light:var(--kid-light);--grad:var(--kid-grad);--bar-grad:var(--kid-bar)}.mode-kid{--primary:var(--kid-primary);--accent:var(--kid-accent);--mid:var(--kid-mid);--light:var(--kid-light);--grad:var(--kid-grad);--bar-grad:var(--kid-bar)}.mode-work{--primary:var(--work-primary);--accent:var(--work-accent);--mid:var(--work-mid);--light:var(--work-light);--grad:var(--work-grad);--bar-grad:var(--work-bar)}.mode-life{--primary:var(--life-primary);--accent:var(--life-accent);--mid:var(--life-mid);--light:var(--life-light);--grad:var(--life-grad);--bar-grad:var(--life-bar)}body{background:var(--bg);color:var(--text);max-width:430px;min-height:100vh;margin:0 auto;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.auth-screen{background:linear-gradient(160deg,#373084 0%,#4338ca 100%);flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;padding:0 24px 32px;display:flex;overflow-y:auto}.auth-logo{text-align:center;margin-bottom:8px;padding-top:60px}.auth-logo h1{color:#fff;letter-spacing:2px;font-size:34px;font-weight:800}.auth-tagline{color:#ffffff80;margin-top:6px;font-size:13px}.auth-modes{justify-content:center;gap:8px;margin:14px 0 0;display:flex}.auth-mode-chip{border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700}.auth-mode-kid{color:#a5b4fc;background:#a5b4fc26}.auth-mode-work{color:#67e8f9;background:#67e8f926}.auth-mode-life{color:#fda4af;background:#fda4af26}.auth-card{width:100%;margin-top:28px}.auth-card h2{color:#fff;margin-bottom:20px;font-size:20px;font-weight:700}.auth-screen .form-group label{color:#fff9}.auth-screen .form-group input,.auth-screen .form-group select,.auth-screen .form-group textarea{color:#fff;background:#ffffff14;border:1px solid #ffffff2e;border-radius:10px}.auth-screen .form-group input:focus,.auth-screen .form-group select:focus{border-color:#ffffff73;outline:none}.auth-screen .form-group input::placeholder{color:#ffffff4d}.auth-screen .form-group select option{color:#fff;background:#2d2878}.auth-screen .error-msg{color:#fca5a5;background:#ef444426;border:1px solid #ef444440}.auth-screen .success-msg{color:#6ee7b7;background:#10b98126;border:1px solid #10b98140}.auth-screen .btn-primary{color:#373084;background:#fff;font-weight:700}.auth-screen .btn-ghost{color:#ffffff80}.form-group{margin-bottom:16px}.form-group label{color:var(--grey);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:10px;outline:none;padding:12px 14px;font-size:16px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary)}.btn{cursor:pointer;text-align:center;border:none;border-radius:10px;width:100%;padding:14px;font-size:15px;font-weight:600;transition:opacity .15s;display:block}.btn:active{opacity:.85}.btn-primary{background:var(--bar-grad);color:#fff}.btn-secondary{background:var(--light);color:var(--primary)}.btn-ghost{color:var(--grey);background:0 0;padding:10px;font-size:14px}.btn+.btn{margin-top:10px}.error-msg{color:var(--red);background:#fee2e2;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:14px}.success-msg{color:#065f46;background:#ecfdf5;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:14px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.top-bar{background:var(--grad);color:#fff;z-index:100;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:19px 16px 16px;display:flex;position:sticky;top:0}.page-content{flex:1;padding:14px 14px 96px}.bottom-nav{border-top:.5px solid var(--border);z-index:100;background:#fff;width:100%;max-width:430px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{cursor:pointer;color:#bbb;letter-spacing:.3px;text-transform:uppercase;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px 12px;font-size:9px;font-weight:500;transition:color .15s;display:flex}.nav-item.active{color:var(--primary)}.nav-icon{width:18px;height:18px}.card{border:.5px solid var(--border);background:#fff;border-radius:14px;margin-bottom:10px;padding:16px}.card-title{color:#111;font-size:15px;font-weight:700}.card-sub{color:var(--grey);margin-top:2px;font-size:12px}.badge{text-transform:uppercase;letter-spacing:.3px;border-radius:20px;padding:3px 10px;font-size:10px;font-weight:700;display:inline-block}.badge-primary{background:var(--light);color:var(--primary)}.badge-green{color:#065f46;background:#ecfdf5}.badge-amber{color:#92400e;background:#fffbeb}.badge-grey{background:var(--bg);color:var(--grey)}.section-label{color:var(--grey);text-transform:uppercase;letter-spacing:1px;margin:18px 0 8px;font-size:10px;font-weight:700}.ride-card{border:.5px solid var(--border);background:#fff;border-radius:14px;margin-bottom:10px;overflow:hidden}.ride-card-header{padding:14px 16px 12px}.ride-card-header .event-name{color:#fff;font-size:14px;font-weight:700}.ride-card-header .event-meta{color:#ffffffa6;margin-top:2px;font-size:11px}.ride-card-body{align-items:flex-start;padding:12px 16px;transition:background .2s;display:flex}.stats-row{gap:8px;margin-bottom:12px;display:flex}.stat-card{border:.5px solid var(--border);text-align:center;background:#fff;border-radius:12px;flex:1;padding:12px 10px}.stat-value{color:#111;font-size:20px;font-weight:800}.stat-label{color:var(--grey);text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:10px}.karma-ring{width:120px;height:120px;margin:0 auto 16px;position:relative}.karma-ring svg{transform:rotate(-90deg)}.karma-ring .ring-bg{fill:none;stroke:var(--border);stroke-width:7px}.karma-ring .ring-fill{fill:none;stroke:url(#karmaGrad);stroke-width:7px;stroke-linecap:round}.karma-center{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.karma-score{color:#111;font-size:28px;font-weight:800}.karma-label{color:var(--grey);letter-spacing:.5px;font-size:10px;font-weight:700}.fuel-hero{background:var(--grad);color:#fff;text-align:center;border-radius:16px;margin-bottom:12px;padding:20px}.fuel-hero .amount{font-size:40px;font-weight:800}.fuel-hero .amount-label{color:#ffffff8c;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:12px}.fuel-stats{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.fuel-stat{text-align:center;background:#ffffff1a;border-radius:10px;padding:10px}.fuel-stat .val{font-size:18px;font-weight:700}.fuel-stat .lbl{color:#ffffff8c;text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:10px}.modal-overlay{z-index:200;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:85vh;padding:24px;position:relative;overflow-y:auto}.modal h2{color:#111;margin-bottom:20px;font-size:18px;font-weight:700}.modal-close{cursor:pointer;width:32px;height:32px;color:var(--grey);z-index:1;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex;position:absolute;top:16px;right:16px}.profile-panel-overlay{z-index:300;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}.profile-panel{background:var(--bg);width:100%;max-width:430px;height:100%;animation:.28s cubic-bezier(.25,.46,.45,.94) slideInRight;overflow-y:auto}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.profile-panel-header{background:var(--grad);color:#fff;z-index:10;justify-content:space-between;align-items:center;padding:16px 16px 14px;display:flex;position:sticky;top:0}.confirm-screen{text-align:center;padding:32px 16px}.confirm-icon{margin-bottom:16px;font-size:52px}.confirm-screen h2{color:#111;margin-bottom:8px;font-size:22px;font-weight:800}.confirm-screen p{color:var(--grey);font-size:15px;line-height:1.5}.loading{min-height:200px;color:var(--grey);justify-content:center;align-items:center;font-size:14px;display:flex}.empty{text-align:center;padding:40px 16px}.empty-icon{margin-bottom:12px}.empty h3{color:#111;margin-bottom:6px;font-size:16px;font-weight:700}.empty p{color:var(--grey);font-size:14px;line-height:1.5}.divider{background:var(--border);height:.5px;margin:16px 0}.nudge{background:#fffbeb;border:.5px solid #fde68a;border-radius:12px;align-items:center;gap:10px;margin-bottom:10px;padding:12px 14px;display:flex}.nudge-icon{flex-shrink:0;width:18px;height:18px}.nudge-text{color:#78350f;flex:1;font-size:13px;line-height:1.4}.work-card{border:.5px solid var(--border);background:#fff;border-radius:12px;margin-bottom:10px;padding:14px}.work-card-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.work-icon{background:var(--light);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.welcome-card{background:var(--grad);border-radius:14px 14px 0 0;margin-bottom:0;padding:16px}.welcome-card-ext{background:var(--grad);border-bottom-right-radius:14px;border-bottom-left-radius:14px;margin-bottom:12px;padding:0 16px 16px}input,textarea,select{-webkit-appearance:none;font-size:16px!important}input[type=date],input[type=time],input[type=datetime-local]{min-height:48px}.swipe-to-delete .ride-card,.swipe-to-delete .card{border-radius:14px;margin-bottom:0}
