.cabhub { --p: var(--cabhub-primary, #f5b800); max-width: 980px; margin: 0 auto; font-family: inherit; position: relative; }
.cabhub-brand { font-weight: 700; font-size: 18px; padding: 6px 0; }
#cabhub-map { height: 340px; border-radius: 12px; overflow: hidden; z-index: 0; }
#cabhub-panel { padding: 14px 4px 24px; }
.cabhub h3 { margin: 0 0 8px; }
.cabhub label { display: block; font-size: 13px; font-weight: 600; margin: 10px 0 4px; }
.cabhub input:not([type=radio]):not([type=checkbox]), .cabhub select { width: 100%; padding: 10px 12px; border: 1px solid #cfd4da; border-radius: 8px; box-sizing: border-box; font-size: 15px; }
.cabhub .row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cabhub .row.between { justify-content: space-between; }
.cabhub .row input { flex: 1; }
.cabhub .hint { color: #6b7280; font-size: 13px; margin: 6px 0; }
.cabhub .fare { margin: 10px 0; font-size: 15px; }
.cabhub .seg { display: flex; flex-direction: column; gap: 4px; margin: 10px 0; }
.cabhub .seg label { font-weight: 500; margin: 0; }
.cabhub .card, .cabhub-box { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px; margin: 10px 0; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.cabhub button, .cabhub .btn { display: inline-block; padding: 10px 16px; border: 1px solid #cfd4da; border-radius: 8px; background: #fff; cursor: pointer; font-size: 15px; text-decoration: none; color: inherit; margin: 6px 6px 0 0; }
.cabhub button.primary { background: var(--p); border-color: var(--p); color: #111; font-weight: 700; }
.cabhub button.danger { background: #fff; border-color: #dc2626; color: #dc2626; }
.cabhub button.primary.danger { background: #dc2626; color: #fff; }
.cabhub button[disabled] { opacity: .5; cursor: default; }
.cabhub-pin span { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; font-size: 22px; background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.35); }
.cabhub-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: #111; color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 99999; max-width: 90%; }
.cabhub-note { padding: 16px; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 10px; }
.cabhub-err { background: #fee2e2; color: #991b1b; padding: 10px 12px; border-radius: 8px; margin-bottom: 12px; }
.cabhub-auth { display: grid; gap: 16px; grid-template-columns: 1fr; }
.cabhub-auth .cabhub-err { grid-column: 1 / -1; }
.cabhub-auth .cabhub-box input:not([type=checkbox]) { width: 100%; padding: 10px; border: 1px solid #cfd4da; border-radius: 8px; box-sizing: border-box; }
.cabhub-auth .cabhub-box input[type=submit], .cabhub-auth .cabhub-box button.primary { background: var(--cabhub-primary, #f5b800); border: 0; padding: 10px 16px; border-radius: 8px; font-weight: 700; cursor: pointer; }
@media (min-width: 860px) {
	.cabhub[data-mode=rider], .cabhub[data-mode=driver], .cabhub[data-mode=track] { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; align-items: start; }
	.cabhub-brand { grid-column: 1 / -1; }
	#cabhub-map { height: 560px; }
	.cabhub-auth { grid-template-columns: 1fr 1fr; }
}
