:root{--color-bg: #f0fdfa;--color-surface: #ffffff;--color-text: #134e4a;--color-text-muted: #5f7a78;--color-primary: #0d9488;--color-primary-hover: #0f766e;--color-danger: #dc2626;--color-border: #99f6e4;--shadow: 0 4px 24px rgba(13, 148, 136, .12);--radius: 12px;--font: "Segoe UI", system-ui, -apple-system, sans-serif;--max-width: 960px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--color-text);background:linear-gradient(160deg,#ecfdf5,#f0fdfa 40%,#e0f2fe);min-height:100vh;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}#root{min-height:100vh}.app-shell{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;width:min(100% - 2rem,var(--max-width));margin:0 auto;padding:1.5rem 0 3rem}.navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:.75rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;box-shadow:var(--shadow)}.brand{font-weight:700;font-size:1.15rem;color:var(--color-text);text-decoration:none;display:flex;align-items:center;gap:.4rem}.brand:hover{text-decoration:none;color:var(--color-primary)}.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-left:auto}.nav-links a{color:var(--color-text-muted);font-weight:500;text-decoration:none}.nav-links a:hover,.nav-links a.active{color:var(--color-primary);text-decoration:none}.nav-user{display:flex;align-items:center;gap:.5rem}.nav-user-name{font-size:.9rem;color:var(--color-text-muted);text-decoration:none;font-weight:600}.nav-user-name:hover{color:var(--color-primary);text-decoration:underline}.config-banner{width:100%;margin:0;padding:.35rem .75rem;background:#fef3c7;color:#92400e;font-size:.85rem;border-radius:6px}.site-footer{text-align:center;padding:1rem;font-size:.85rem;color:var(--color-text-muted);border-top:1px solid var(--color-border);background:#fff9}.site-footer-links{margin:.35rem 0 0}.site-footer-links a{color:var(--color-text-muted)}.site-footer-links a:hover{color:var(--color-primary)}.legal-page h1{margin-top:0}.legal-section{margin-top:1.5rem}.legal-section h2{font-size:1rem;margin:0 0 .5rem;color:var(--color-primary)}.legal-section p{margin:0 0 .75rem;color:var(--color-text)}.legal-section p:last-child{margin-bottom:0}.legal-meta{margin-top:2rem;font-size:.85rem;color:var(--color-text-muted)}.card{background:var(--color-surface);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--color-border)}.hero{display:grid;gap:2rem}@media(min-width:720px){.hero{grid-template-columns:1fr 1fr;align-items:start}}.hero-text h1{font-size:clamp(1.75rem,4vw,2.25rem);margin:0 0 .75rem;line-height:1.2}.hero-text p{color:var(--color-text-muted);margin:0 0 .5rem}.hero-hint{margin-top:1rem!important}.search-card h2{margin:0 0 1rem;font-size:1.1rem}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0 0 .25rem}.page-header-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}.page-subtitle{color:var(--color-text-muted);margin:0}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500}input,textarea{font:inherit;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text)}input:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.form-grid{display:grid;gap:1rem}@media(min-width:520px){.form-grid{grid-template-columns:1fr 1fr}}.form-error{color:var(--color-danger);background:#fef2f2;padding:.6rem .75rem;border-radius:8px;margin:0 0 1rem}.auth-card{max-width:420px;margin:0 auto}.auth-form,.offer-form{display:flex;flex-direction:column;gap:1rem}.auth-switch{margin-top:1rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}.auth-notice{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.75rem;margin-bottom:1rem;font-size:.9rem}.auth-notice p{margin:0 0 .5rem}.btn-link{background:none;border:none;padding:0;font:inherit;color:var(--color-primary);font-weight:600;cursor:pointer;text-decoration:underline}.btn-link:disabled{opacity:.5;cursor:not-allowed}.form-page{max-width:560px;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.1rem;border-radius:8px;font:inherit;font-weight:600;cursor:pointer;border:none;text-decoration:none;transition:background .15s,color .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);color:#fff;text-decoration:none}.btn-ghost{background:transparent;color:var(--color-primary);border:1px solid var(--color-border)}.btn-ghost:hover{background:#ccfbf1}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.nav-cta.active{background:var(--color-primary);color:#fff!important;border-radius:8px;padding:.35rem .75rem}.ride-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.ride-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.ride-route{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.ride-city{font-size:1.15rem;font-weight:700}.ride-arrow{color:var(--color-primary);font-size:1.25rem}.ride-meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--color-text-muted);font-size:.9rem;margin:0 0 .5rem}.ride-seats{font-weight:600;color:var(--color-primary)}.ride-description{margin:.5rem 0;color:var(--color-text-muted)}.ride-driver{margin:.5rem 0 0;font-size:.9rem}.ride-phone{font-weight:600}.ride-no-phone{color:var(--color-text-muted);font-style:italic}.ride-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.ride-booking-actions{align-items:flex-end}.ride-seats-picker{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:500}.ride-seats-picker select{min-width:7rem;padding:.4rem .5rem;font:inherit}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.form-success{color:var(--color-primary);background:#ecfdf5;padding:.6rem .75rem;border-radius:8px;margin:0 0 1rem}.field-hint{font-size:.8rem;font-weight:400;color:var(--color-text-muted)}input:disabled{background:#f1f5f9;color:var(--color-text-muted);cursor:not-allowed}.empty-state{text-align:center}.empty-state p{margin-bottom:1rem}.loading-state{color:var(--color-text-muted);text-align:center}.config-card code{background:#ecfdf5;padding:.15rem .4rem;border-radius:4px}.search-page .search-toolbar{margin-bottom:1.25rem}.search-toolbar-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.results-count{color:var(--color-text-muted);font-size:.9rem;margin:0 0 1rem}.ride-bookings{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--color-border)}.ride-bookings-title{margin:0 0 .5rem;font-size:.95rem}.ride-bookings-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.ride-booking-item{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem;padding:.6rem .75rem;background:#f8fafc;border-radius:8px}.ride-bookings-empty{margin:.75rem 0 0;font-size:.9rem;color:var(--color-text-muted)}.ride-booked-badge{font-size:.85rem;font-weight:600;color:var(--color-primary);align-self:center}.ride-own-hint,.ride-full-hint{font-size:.85rem;color:var(--color-text-muted);align-self:center}.booked-rides-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.booked-ride-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.booked-ride-card.is-expanded{border-color:var(--color-primary)}.booked-ride-summary{width:100%;text-align:left;background:transparent;border:none;padding:1.25rem;cursor:pointer;font:inherit;color:inherit}.booked-ride-summary:hover{background:#f8fafc}.booked-ride-preview{margin:.5rem 0;color:var(--color-text-muted);font-size:.9rem}.booked-ride-toggle{display:inline-block;margin-top:.25rem;font-size:.85rem;font-weight:600;color:var(--color-primary)}.booked-ride-detail{padding:0 1.25rem 1.25rem;border-top:1px dashed var(--color-border)}.booked-ride-countdown{margin:1rem 0 .75rem;font-size:1.05rem;font-weight:700;color:var(--color-primary)}.booked-ride-facts{display:grid;gap:.75rem;margin:0 0 1rem}.booked-ride-facts div{display:grid;gap:.15rem}.booked-ride-facts dt{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.booked-ride-facts dd{margin:0;font-size:.95rem}
