:root{color:#171d1c;background:#f5faf8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.4;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit}button,input,textarea{font:inherit}h1,h2,p{margin-top:0}.page-shell,.public-route-shell{background:radial-gradient(circle at top right,rgb(130 183 57 / 20%),transparent 18rem),linear-gradient(180deg,#f8fcf3,#eef8e8 55%,#f5faf8);margin:0 auto;min-height:100vh}.page-shell{display:grid;gap:18px;max-width:520px;padding:0 20px 28px}.public-route-shell{align-items:center;display:flex}.brand-header{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8fcf3e5;border-bottom:1px solid rgb(130 183 57 / 16%);display:flex;gap:10px;margin:0 -20px;padding:max(12px,env(safe-area-inset-top)) 20px 12px;position:sticky;top:0;z-index:10}.brand-logo{background:#fff;border:1px solid rgb(130 183 57 / 22%);border-radius:999px;box-shadow:0 8px 22px #82b7392e;height:40px;object-fit:contain;padding:4px;width:40px}.brand-name{color:#82b739;font-size:1.08rem;font-weight:800;letter-spacing:0;line-height:1;margin:0}.brand-subtitle{color:#6c7672;font-size:.76rem;font-weight:600;margin:2px 0 0}.panel,.public-route-panel{background:#fff;border:1px solid rgb(130 183 57 / 16%);border-radius:24px;box-shadow:0 18px 44px #2d561217,0 2px 10px #82b73914}.public-route-panel{margin:0 auto;max-width:440px;padding:20px;width:100%}.public-route-panel h1{color:#13220d;font-size:2rem;line-height:1;margin-bottom:12px}.trip-panel,.form-panel,.state-panel{padding:20px}.state-panel{align-self:center;justify-self:center;max-width:420px;text-align:center;width:100%}.eyebrow{color:#6fa12d;font-size:.76rem;font-weight:700;letter-spacing:0;margin:0 0 4px;text-transform:none}h1{color:#171d1c;font-size:1.42rem;font-weight:750;line-height:1.15;margin-bottom:0}h2{font-size:1.08rem;font-weight:750;line-height:1.15;margin-bottom:8px}.muted{color:#5e6d56}.trip-card-heading{align-items:start;display:flex;justify-content:space-between;margin-bottom:18px}.route-visual{display:grid;gap:14px;grid-template-columns:16px minmax(0,1fr);padding:2px 0 16px}.route-track{align-items:center;display:grid;justify-items:center;padding:2px 0}.route-dot{background:#fff;border:2px solid #82b739;box-shadow:0 4px 10px #82b7392e;border-radius:999px;display:block;height:13px;width:13px}.route-dot-solid{background:#82b739;border:4px solid #eef8e5;height:15px;width:15px}.route-line{border-left:1px dashed #9ac969;height:40px}.route-stops{display:grid;gap:20px}.route-stops div{align-items:center;display:flex;gap:10px;justify-content:space-between;min-width:0}.route-stops strong{color:#171d1c;font-size:1rem;font-weight:700;overflow-wrap:anywhere}.route-stops span,.trip-meta dt,.status-facts dt{color:#64715d;font-size:.74rem;font-weight:650;text-transform:none}.trip-meta{display:grid;gap:10px;grid-template-columns:1fr .75fr .9fr;margin:0}.trip-meta div{background:linear-gradient(180deg,#f2faeb,#f8fcf4);border:1px solid rgb(130 183 57 / 18%);border-radius:14px;box-shadow:0 8px 18px #82b73914;min-width:0;padding:11px}.trip-meta dd,.status-facts dd{color:#171d1c;font-size:.88rem;font-weight:750;margin:4px 0 0;overflow-wrap:anywhere}.driver-row{align-items:center;background:#f6fbf1;border:1px solid rgb(130 183 57 / 14%);border-radius:18px;display:grid;gap:12px;grid-template-columns:44px minmax(0,1fr);margin-top:16px;padding:10px}.driver-avatar{align-items:center;background:#82b739;border-radius:999px;color:#fff;display:inline-flex;font-weight:800;height:44px;justify-content:center;width:44px}.driver-row strong,.driver-row span{display:block}.driver-row strong{color:#171d1c;font-size:.95rem;font-weight:750}.driver-row span{color:#727d79;font-size:.82rem;margin-top:2px}form,.booking-form,.status-box{display:grid;gap:14px}.form-heading{display:grid;gap:2px}.form-heading h2,.form-heading p{margin-bottom:0}.form-heading p,label small,.success-next-step{color:#747f7b;font-size:.82rem}.field-grid{display:grid;gap:10px}label{color:#252d2b;display:grid;font-size:.78rem;font-weight:650;gap:7px;text-transform:none}label span{color:#78846f;font-size:.75rem;font-weight:600}input,textarea{background:transparent;border:0;color:#171d1c;min-height:46px;outline:none;padding:11px 12px;text-transform:none;width:100%}input:focus,textarea:focus{box-shadow:none}.input-shell{align-items:center;background:#f4faef;border:1px solid transparent;border-radius:16px;display:grid;grid-template-columns:40px minmax(0,1fr);overflow:hidden}.input-shell:focus-within{background:#fff;border-color:#82b739;box-shadow:0 0 0 3px #82b73929,0 8px 20px #82b7391a}.input-shell>span{color:#82b739;font-size:1.1rem;font-weight:700;justify-self:center}.seat-control-field{display:grid;gap:8px}.seat-control-field>span{color:#252d2b;font-size:.78rem;font-weight:650;text-transform:none}.seat-control{align-items:center;background:#f4faef;border:1px solid rgb(130 183 57 / 18%);border-radius:16px;display:inline-grid;gap:8px;grid-template-columns:42px 58px 42px;padding:6px;width:max-content}.seat-control input{background:transparent;font-size:1.05rem;font-weight:750;min-height:40px;padding:0;text-align:center}.seat-control button{border-radius:12px;box-shadow:none;font-size:1.2rem;min-height:40px;padding:0}.seat-control button:first-child{background:#fff;border-color:#fff;color:#82b739}textarea{background:#f4faef;border-radius:14px;min-height:70px;resize:vertical}.note-details{background:#eef8e5;border:1px solid #ddecce;border-radius:16px;padding:10px 12px}.note-details summary{color:#4b771b;cursor:pointer;font-size:.84rem;font-weight:700}.note-details label{margin-top:9px}button{border-radius:12px;cursor:pointer;display:inline-flex;font-weight:750;justify-content:center;min-height:46px;padding:11px 16px}.primary-button,button:not(.secondary-button){background:#82b739;border:1px solid #72a52f;box-shadow:0 14px 26px #3d5c1c2e,0 0 0 4px #82b7391a;color:#fff}button:disabled{background:#b7c8a5;border-color:#b7c8a5;box-shadow:none;cursor:not-allowed}.secondary-button{background:#f7fcf3;border:1px solid #82b739;box-shadow:0 8px 18px #82b7391a;color:#4b771b}.secondary-button:disabled{background:#f0f5ea;color:#849477}.error-box,.notice-box,.success-inline{border-radius:12px;font-size:.86rem;margin-bottom:0;padding:9px 10px}.error-box{background:#fff2f2;border:1px solid #f0c4c4;color:#9c1d1d}.notice-box{background:#fff8e8;border:1px solid #ecd390;color:#750}.success-inline{background:#f0f8e8;border:1px solid #cfe6b6;color:#365c20}.status-box h2{margin-bottom:0}.notification-card{background:linear-gradient(180deg,#f1faea,#fbfef8);border:1px solid rgb(130 183 57 / 18%);border-radius:18px;box-shadow:0 10px 24px #82b7391a;display:grid;gap:10px;padding:12px}.notification-card strong{color:#22351a;display:block;font-weight:750;margin-bottom:2px}.notification-card p{color:#62735a;font-size:.84rem;margin-bottom:0}.status-facts{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin:0}.status-facts div{background:#f6fbf1;border:1px solid rgb(130 183 57 / 16%);border-radius:12px;padding:8px 9px}.success-box{display:grid;gap:5px;padding:8px 0 4px;text-align:center}.success-icon{align-items:center;background:#82b739;border-radius:999px;box-shadow:0 12px 24px #82b73940,0 0 0 8px #82b7391a;color:#fff;display:inline-flex;font-size:1.4rem;font-weight:900;height:44px;justify-content:center;justify-self:center;width:44px}.success-box h2,.success-box p{margin-bottom:0}.success-box p{color:#4f6244}.share-code{border-left:4px solid #82b739;color:#26391c;font-weight:700;margin-bottom:14px;overflow-wrap:anywhere;padding-left:12px}.text-link{color:#4b771b;display:inline-flex;font-weight:700;margin-top:8px;text-decoration-color:#82b739;text-underline-offset:4px}.loader{animation:spin .8s linear infinite;border:3px solid #dfe8d5;border-radius:999px;border-top-color:#82b739;height:34px;margin:0 auto 12px;width:34px}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:560px){.field-grid{grid-template-columns:1fr 1fr}}@media(min-width:860px){.page-shell{align-content:center;grid-template-columns:1fr .9fr;max-width:900px;padding:22px}.brand-header{grid-column:1 / -1}.trip-panel,.form-panel{align-self:start}.state-panel{grid-column:1 / -1}}
