
:root{
  --green:#064D2B;
  --green-2:#0B6B3A;
  --lime:#7FB832;
  --lime-soft:#EAF4D8;
  --cream:#F7F8F2;
  --paper:#FFFFFF;
  --ink:#183126;
  --muted:#66776E;
  --line:#DDE6DF;
  --shadow:0 12px 34px rgba(6,77,43,.10);
  --danger:#A33636;
}
*{box-sizing:border-box}
html{background:var(--cream)}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at top right, rgba(127,184,50,.09), transparent 30rem),
    var(--cream);
  color:var(--ink);
}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.toast{
  position:fixed;z-index:100;left:50%;bottom:24px;transform:translateX(-50%) translateY(120px);
  background:#11281D;color:#fff;padding:12px 16px;border-radius:999px;box-shadow:var(--shadow);
  opacity:0;transition:.25s;max-width:90vw;text-align:center
}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.activation-screen{
  min-height:100svh;display:grid;place-items:center;padding:28px 18px;
  background:
    radial-gradient(circle at 15% 5%, rgba(127,184,50,.24), transparent 28rem),
    linear-gradient(145deg,#F7F8F2 0%,#EFF5E8 100%);
}
.activation-card{
  width:min(440px,100%);background:rgba(255,255,255,.96);border:1px solid rgba(6,77,43,.10);
  border-radius:28px;padding:28px;box-shadow:0 28px 60px rgba(6,77,43,.14)
}
.brand-lockup{display:flex;align-items:center;gap:12px}
.brand-mark{
  display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--green);
  color:#fff;font-weight:900;letter-spacing:-.06em
}
.brand-name{font-size:18px;font-weight:900;letter-spacing:.03em}
.brand-tagline{font-size:12px;color:var(--muted);margin-top:2px}
.activation-icon{font-size:42px;margin:32px 0 8px}
.activation-card h1{font-size:32px;line-height:1.02;margin:0 0 12px;letter-spacing:-.04em}
.activation-card p{color:var(--muted);line-height:1.5}
.field{display:grid;gap:7px}
.field span,.mini-label{font-size:12px;font-weight:800;color:#4A6256;letter-spacing:.04em;text-transform:uppercase}
input,select{
  width:100%;min-height:48px;border:1px solid var(--line);border-radius:14px;padding:0 14px;background:#fff;color:var(--ink);outline:none
}
input:focus,select:focus{border-color:var(--lime);box-shadow:0 0 0 4px rgba(127,184,50,.13)}
.btn{
  min-height:46px;border:0;border-radius:14px;padding:0 17px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center;gap:8px
}
.btn-full{width:100%;margin-top:12px}
.btn-primary{background:var(--green);color:#fff}
.btn-secondary{background:var(--lime-soft);color:var(--green)}
.btn-ghost{background:#fff;color:var(--green);border:1px solid var(--line)}
.btn-danger{background:#FDEAEA;color:var(--danger)}
.micro{font-size:12px!important}
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));
  background:rgba(247,248,242,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(6,77,43,.07)
}
.compact .brand-mark{width:40px;height:40px;border-radius:13px}
.icon-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--green);font-size:20px}
.drawer{
  position:fixed;z-index:30;right:14px;top:70px;width:220px;background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow);border-radius:18px;padding:8px
}
.drawer button{width:100%;border:0;background:transparent;padding:13px 12px;border-radius:12px;text-align:left;font-weight:700;color:var(--ink)}
.drawer button:hover{background:var(--cream)}
.view{width:min(980px,100%);margin:auto;padding:20px 16px 96px}
.hero{
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:24px 4px 8px
}
.eyebrow{display:inline-block;background:var(--green);color:#fff;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:900;letter-spacing:.06em}
.hero h1,.page-heading h1{font-size:clamp(34px,7vw,58px);line-height:.98;letter-spacing:-.055em;margin:14px 0 12px;color:var(--green)}
.hero h1 span{color:var(--lime)}
.hero p,.page-heading p{max-width:690px;color:var(--muted);font-size:16px;line-height:1.5}
.hero-badge{display:grid;place-items:center;width:86px;height:86px;border-radius:28px;background:var(--lime-soft);color:var(--green);font-size:42px;font-weight:900}
.card{background:#fff;border:1px solid rgba(6,77,43,.08);border-radius:22px;box-shadow:0 10px 26px rgba(6,77,43,.06)}
.trip-card{padding:16px;margin-top:14px}
.trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.progress-card{padding:16px;margin:14px 0}
.progress-card>div:first-child{display:flex;justify-content:space-between;align-items:center}
.progress-card strong{font-size:16px}
#progressPercent{font-weight:900;color:var(--green)}
.progress-track{height:10px;background:#EDF2EE;border-radius:99px;overflow:hidden;margin:10px 0 14px}
.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--lime));transition:.2s}
.filters{display:flex;gap:8px;overflow:auto}
.chip{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--green);border-radius:999px;padding:9px 13px;font-weight:800;font-size:13px}
.chip.active{background:var(--green);color:#fff;border-color:var(--green)}
.categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.category-card{overflow:hidden;background:#fff;border:1px solid rgba(6,77,43,.10);border-radius:22px;box-shadow:0 10px 24px rgba(6,77,43,.055)}
.category-head{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--green),var(--green-2));color:#fff;padding:14px 16px}
.category-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.13);font-size:19px}
.category-head h2{font-size:16px;margin:0}
.item-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border-top:1px solid #EEF2EF}
.item-row:first-of-type{border-top:0}
.item-row.checked{background:#F6FAEF}
.item-check{position:relative;width:25px;height:25px;flex:0 0 25px}
.item-check input{position:absolute;opacity:0}
.fake-check{
  position:absolute;inset:0;border:2px solid #9DB1A6;border-radius:8px;background:#fff;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:900
}
.item-check input:checked + .fake-check{background:var(--green);border-color:var(--green)}
.item-check input:checked + .fake-check::after{content:"✓"}
.item-name{flex:1;font-size:15px}
.item-row.checked .item-name{text-decoration:line-through;color:#7C8E84}
.delete-item{border:0;background:transparent;color:#A6B2AB;font-size:18px;padding:2px 5px}
.add-card,.checkout-card{padding:18px;margin-top:14px}
.section-title-row,.checkout-head{display:flex;align-items:center;justify-content:space-between;gap:18px}
.section-title-row h2,.checkout-head h2{margin:3px 0 0;font-size:24px;letter-spacing:-.035em}
.add-grid{display:grid;grid-template-columns:1.3fr 1fr auto;gap:10px;margin-top:14px}
.total-input-wrap{
  display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:16px;padding:0 12px;background:#fff;min-width:165px
}
.total-input-wrap span{font-weight:900;color:var(--green)}
.total-input-wrap input{border:0;padding:0;box-shadow:none!important;font-size:24px;font-weight:900;text-align:right}
.checkout-actions{display:flex;gap:10px;margin-top:16px}
.tip-card{display:flex;gap:12px;align-items:flex-start;background:#F1F7E7;border:1px solid #D9E8BE;border-radius:20px;padding:16px;margin-top:14px}
.tip-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#fff;font-size:20px}
.tip-card p{margin:4px 0 0;color:var(--muted);line-height:1.45}
.page-heading{padding:24px 4px 8px}
.history-list{display:grid;gap:12px;margin-top:14px}
.history-card{padding:16px;background:#fff;border:1px solid var(--line);border-radius:20px}
.history-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.history-card h3{margin:0;font-size:18px}
.history-meta{color:var(--muted);font-size:13px;margin-top:4px}
.history-total{font-size:20px;font-weight:900;color:var(--green);white-space:nowrap}
.history-items{margin-top:12px;padding-top:12px;border-top:1px solid #EEF2EF;color:#4F6258;font-size:13px;line-height:1.5}
.history-actions{display:flex;gap:8px;margin-top:12px}
.settings-grid{display:grid;gap:12px;margin-top:14px}
.setting-card{padding:18px}
.setting-card h3{margin:0 0 7px}
.setting-card p{color:var(--muted);line-height:1.5}
.setting-card .btn{margin-right:8px;margin-top:8px}
.app-footer{
  background:var(--green);color:#fff;padding:22px max(18px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  display:flex;justify-content:center;gap:18px;align-items:center;flex-wrap:wrap
}
.app-footer span{color:#DDEBDD;font-size:13px}
.empty-state{padding:26px;text-align:center;background:#fff;border:1px dashed #C9D6CE;border-radius:20px;color:var(--muted)}
@media(max-width:720px){
  .hero{grid-template-columns:1fr}
  .hero-badge{display:none}
  .trip-grid,.categories,.add-grid{grid-template-columns:1fr}
  .checkout-head{align-items:flex-start;flex-direction:column}
  .total-input-wrap{width:100%}
  .checkout-actions{flex-direction:column}
  .checkout-actions .btn{width:100%}
}


/* ReadVale approved logo integration */
.brand-logo-img{
  display:block;
  width:220px;
  max-width:72vw;
  height:auto;
}
.activation-brand{
  background:#064D2B;
  border-radius:18px;
  padding:10px 14px;
  width:max-content;
  max-width:100%;
}
.activation-brand .brand-logo-img{
  width:205px;
}
.topbar{
  background:linear-gradient(135deg,#064D2B,#0B6B3A);
  border-bottom:3px solid #7FB832;
}
.header-logo{
  width:200px;
}
.topbar .icon-btn{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}
@media(max-width:480px){
  .header-logo{width:180px}
  .activation-brand .brand-logo-img{width:185px}
}
