/* =====================================================
   BERES — style.css v1.2 (final, ringan ±6KB, mobile-first)
   PT. Felicia Transportasi Indonesia
   ===================================================== */
:root{
  --primary:#00A884; --primary-dark:#008F70; --primary-soft:#E6F7F2;
  --bg:#F5F7F9; --card:#fff; --text:#1E2A32; --muted:#6B7A84;
  --border:#DDE4E8; --line:#EEF2F4;
  --danger:#E5484D; --warning:#F5A524; --info:#2F80ED;
  --radius:14px; --shadow:0 1px 3px rgba(0,0,0,.05);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;padding-bottom:calc(70px + env(safe-area-inset-bottom))}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button{font-family:inherit}

/* ---------- Topbar ---------- */
.topbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;padding:10px 14px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.brand{display:flex;align-items:center;gap:8px;min-width:0}
.brand-logo{width:32px;height:32px;border-radius:8px}
.brand-name{font-weight:800;font-size:20px;color:var(--primary)}
.city-btn{flex-shrink:0;background:var(--primary-soft);color:var(--primary-dark);padding:7px 12px;border-radius:20px;font-size:13px;font-weight:600;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- Layout ---------- */
.container{max-width:640px;margin:0 auto;padding:14px}
.center{text-align:center}
.muted{color:var(--muted)}
.danger{color:var(--danger)}

/* ---------- Home ---------- */
.hero h1{font-size:20px}
.hero p{color:var(--muted);margin:2px 0 14px}
.grid-6{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.service{background:var(--card);border-radius:var(--radius);padding:14px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:600;font-size:13px;box-shadow:var(--shadow)}
.service:active{transform:scale(.97)}
.s-icon{font-size:26px}
.section{margin-top:20px}
.section h2{font-size:16px;margin-bottom:10px}

/* ---------- Card & List ---------- */
.card{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);margin-bottom:12px}
.merchant{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.merchant img{width:46px;height:46px;border-radius:10px;object-fit:cover;background:#eee;flex-shrink:0}
.m-name{font-weight:600}
.m-sub{font-size:12px;color:var(--muted)}
.list-item{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.list-item:last-child{border-bottom:0}
.empty{text-align:center;color:var(--muted);padding:18px 0;font-size:14px}

/* ---------- Badge Status ---------- */
.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;background:var(--primary-soft);color:var(--primary-dark);text-transform:capitalize}
.badge.yellow{background:#FFF4DE;color:#9A6B15}
.badge.red{background:#FDEBEC;color:#B3261E}
.badge.blue{background:#E8F1FD;color:#1D5FBF}
.badge.gray{background:#EDF1F3;color:#5A6B76}

/* ---------- Form ---------- */
label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}
.input,select.input,textarea.input{width:100%;padding:13px;border:1.5px solid var(--border);border-radius:12px;font-size:15px;margin-bottom:10px;background:#fff;font-family:inherit;color:var(--text)}
.input:focus,textarea.input:focus,select.input:focus{outline:none;border-color:var(--primary)}
textarea.input{min-height:90px;resize:vertical;line-height:1.45}
.btn{display:block;width:100%;background:var(--primary);color:#fff;border:0;border-radius:12px;padding:13px;font-size:15px;font-weight:700;text-align:center;cursor:pointer;min-height:44px}
.btn:active{background:var(--primary-dark)}
.btn.outline{background:#fff;color:var(--text);border:1.5px solid var(--border)}
.btn.danger-bg{background:var(--danger)}
.mini-btn{border:0;background:var(--primary-soft);color:var(--primary-dark);font-weight:700;border-radius:10px;padding:10px;font-size:12px;cursor:pointer;min-height:40px}

/* ---------- Wallet ---------- */
.balance{font-size:26px;font-weight:800;margin:6px 0}

/* ---------- Bottom Navigation ---------- */
.bottomnav{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;box-shadow:0 -1px 4px rgba(0,0,0,.06);z-index:50;padding-bottom:env(safe-area-inset-bottom)}
.bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font-size:17px;color:var(--muted);min-height:44px}
.bottomnav a span{font-size:11px;font-weight:600}
.bottomnav a.active{color:var(--primary)}

/* ---------- Map Picker (Bike/Car/Delivery) ---------- */
.tabs{display:flex;gap:8px;margin-bottom:10px}
.tab{flex:1;padding:12px 6px;border-radius:12px;border:1.5px solid var(--border);background:#fff;font-weight:700;font-size:13px;color:var(--muted);text-align:center;cursor:pointer;min-height:44px}
.tab.active{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-soft)}
.point-row{display:flex;gap:10px;align-items:stretch}
.point-map{flex:1.15;min-height:240px;border-radius:12px;overflow:hidden;background:#E8EEF1;position:relative;z-index:1}
.point-side{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.point-side .lbl{font-size:12px;font-weight:700;color:var(--muted)}
.point-side textarea{flex:1;resize:none;padding:10px;border:1.5px solid var(--border);border-radius:12px;font-size:13px;line-height:1.45;background:#fff;font-family:inherit;min-height:110px}
.point-side textarea:focus{outline:none;border-color:var(--primary)}
.geo-label{font-size:11px;color:var(--muted);background:#F1F5F7;border-radius:8px;padding:6px 8px}
@media (max-width:340px){.point-row{flex-direction:column}}
.leaflet-container{font:inherit}

/* ---------- Toast & Skeleton ---------- */
.toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#1E2A32;color:#fff;padding:10px 16px;border-radius:12px;font-size:13px;z-index:99;box-shadow:0 4px 14px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .25s}
.toast.show{opacity:1}
.skeleton{background:linear-gradient(90deg,#EDF1F3 25%,#F7FAFB 50%,#EDF1F3 75%);background-size:200% 100%;animation:sh 1.2s infinite;border-radius:8px}
@keyframes sh{to{background-position:-200% 0}}

/* ===== v1.3 — Redesign home & nav ala mockup ===== */
body{background:#EEF3FA}
.topbar{background:#F5F8FD;box-shadow:0 1px 4px rgba(20,40,80,.05);padding:12px 16px;position:sticky;top:0;z-index:60}

.brand-logo{border-radius:10px}
.brand-name{color:#12306B;font-size:22px;letter-spacing:.2px}
.city-btn{background:transparent;color:#1D63C9;font-weight:700}
.hero{margin:4px 2px 14px;position:relative}
.hero h1{font-size:23px;color:#132449;line-height:1.3}
.hero .dots{position:absolute;right:6px;top:2px;font-size:15px;opacity:.9}
.jasa-banner{display:block;background:linear-gradient(120deg,#E3F4E7,#CFE9DC);border-radius:18px;padding:16px;position:relative;overflow:hidden;margin-bottom:14px;box-shadow:0 2px 8px rgba(20,60,40,.06)}
.jasa-banner h2{font-size:16px;color:#173B2A;margin-bottom:6px}
.jasa-banner p{font-size:12.5px;color:#33544A;max-width:72%;line-height:1.55}
.jasa-banner .cta{display:inline-block;margin-top:12px;background:#22A05C;color:#fff;font-weight:700;font-size:13px;padding:10px 20px;border-radius:24px}
.jasa-banner .art{position:absolute;right:8px;bottom:-6px;font-size:60px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.15))}
.jasa-banner .chips{position:absolute;right:12px;top:12px;display:flex;gap:6px}
.jasa-banner .chips span{width:34px;height:34px;border-radius:50%;background:#BFE3F7;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.loc-card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 10px rgba(20,40,80,.07);margin-bottom:18px}
.loc-card .small{font-size:13px;color:#33415C}
.loc-card .big{font-size:19px;font-weight:800;color:#132449;margin:4px 0 12px}
.loc-card .btn-blue{display:block;background:#2D63B8;color:#fff;text-align:center;font-weight:700;padding:12px;border-radius:26px;font-size:14px}
.grid-services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 8px;margin:4px 0 20px}
.grid-services a{display:flex;flex-direction:column;align-items:center;gap:9px;background:transparent;box-shadow:none;font-weight:700;font-size:13px;color:#1E2A32}
.grid-services a:active{transform:scale(.96)}
.grid-services .ic{font-size:42px;line-height:1;filter:drop-shadow(0 3px 4px rgba(0,0,0,.12))}
/* bottom nav v2 */
.bottomnav{background:#fff;box-shadow:0 -4px 18px rgba(20,40,80,.09);align-items:flex-end}
.bottomnav a{color:#8A94A6;padding:9px 0 12px;min-height:52px}
.bottomnav a.active{color:#2D63B8}
.bottomnav .ni{font-size:19px}
.bnav-pay{position:relative;transform:translateY(-16px)}
.bnav-pay .circle{width:54px;height:54px;border-radius:50%;background:#2D63B8;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 3px;box-shadow:0 6px 16px rgba(45,99,184,.45);border:4px solid #fff}
.bnav-pay .bal{position:absolute;top:-4px;right:calc(50% - 40px);background:#22A05C;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.bnav-badge{position:absolute;top:6px;left:calc(50% + 4px);background:#2D63B8;color:#fff;font-size:9px;font-weight:700;min-width:15px;height:15px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-style:normal}