.ols-card { max-width: 640px; margin: 0 auto; padding: 24px; background: #fff; border-radius: 10px; box-shadow: 0 2px 12px rgba(0,0,0,0.08); }
.ols-card h2 { margin-top: 0; font-family: Georgia, serif; }
.ols-row { margin-bottom: 14px; }
.ols-row label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 14px; }
.ols-row input[type=text], .ols-row input[type=tel], .ols-row input[type=email], .ols-row input[type=number], .ols-row input[type=datetime-local], .ols-row textarea {
    width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; box-sizing: border-box;
}
.ols-row-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ols-btn {
    background: #111; color: #fff; border: none; padding: 12px 20px; border-radius: 6px;
    font-weight: 600; cursor: pointer; margin-top: 8px;
}
.ols-btn:hover { background: #333; }
.ols-btn-secondary { background: #999; }
.ols-estimate-box { margin-top: 20px; padding: 16px; background: #f7f5f0; border-radius: 8px; }
.ols-price { font-size: 22px; font-weight: 700; }
.ols-error { color: #b00020; margin-top: 12px; font-weight: 600; }
.ols-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 9999; }
.ols-modal-content { background: #fff; padding: 24px; border-radius: 10px; max-width: 420px; text-align: center; }
.ols-trip-block { border: 1px solid #eee; border-radius: 8px; padding: 16px; margin-bottom: 20px; }
.ols-map { border-radius: 8px; margin: 12px 0; }

/* ---- Staff Dashboard (password-gated Drivers/Fare Zones/Complaints panel) ---- */
.ols-mini-admin{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width:1100px; margin:0 auto; color:#1B1D1F; }
.ols-mini-login{ max-width:340px; margin:100px auto; text-align:center; background:#fff; padding:40px 30px; border-radius:10px; box-shadow:0 2px 16px rgba(0,0,0,0.08); }
.ols-mini-login h2{ margin-top:0; font-size:20px; }
.ols-mini-login input[type=password]{ width:100%; padding:10px; border:1px solid #ccc; border-radius:6px; margin-bottom:14px; box-sizing:border-box; }
.ols-mini-login button{ width:100%; background:#1B1D1F; color:#fff; border:none; padding:12px; border-radius:6px; font-weight:600; cursor:pointer; }
.ols-mini-error{ color:#b00020; font-size:13px; margin-bottom:10px; }

.ols-mini-topbar{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-bottom:1px solid #e2e0d8; margin-bottom:20px; }
.ols-mini-brand{ font-weight:700; font-size:17px; }
.ols-mini-logout{ background:none; border:1px solid #ccc; padding:8px 14px; border-radius:6px; cursor:pointer; font-size:13px; }

.ols-mini-tabs{ display:flex; gap:4px; margin-bottom:24px; border-bottom:1px solid #e2e0d8; }
.ols-mini-tabs a{ padding:10px 18px; text-decoration:none; color:#5b5b54; font-size:14px; font-weight:600; border-bottom:2px solid transparent; }
.ols-mini-tabs a.active{ color:#1B1D1F; border-bottom-color:#A9834F; }

.ols-mini-grid{ display:grid; grid-template-columns:340px 1fr; gap:36px; align-items:start; }
.ols-mini-form label{ display:block; font-size:12px; font-weight:600; color:#5b5b54; margin:10px 0 4px; }
.ols-mini-form input, .ols-mini-form select{ width:100%; padding:8px 10px; border:1px solid #ccc; border-radius:5px; box-sizing:border-box; font-size:14px; }
.ols-mini-form h4{ margin:16px 0 4px; font-size:13px; color:#2F3D35; }
.ols-mini-row3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
.ols-mini-form button[type=submit]{ margin-top:16px; background:#1B1D1F; color:#fff; border:none; padding:10px 20px; border-radius:6px; font-weight:600; cursor:pointer; }
.ols-mini-cancel{ margin-left:10px; font-size:13px; color:#5b5b54; }

.ols-mini-table{ width:100%; border-collapse:collapse; font-size:13px; }
.ols-mini-table th{ text-align:left; padding:8px 10px; border-bottom:2px solid #e2e0d8; color:#5b5b54; font-size:12px; text-transform:uppercase; letter-spacing:0.04em; }
.ols-mini-table td{ padding:10px; border-bottom:1px solid #eee; vertical-align:top; }
.ols-mini-table a{ color:#A9834F; text-decoration:none; margin-right:10px; }
.ols-mini-link-btn{ background:none; border:none; color:#b00020; text-decoration:underline; cursor:pointer; font-size:13px; padding:0; }
.ols-mini-inline-form select{ font-size:13px; padding:4px; }

@media (max-width:800px){ .ols-mini-grid{ grid-template-columns:1fr; } }
