2026-10-03 13:33:50 +02:00
/* USWDS `sans` role resolves to "Public Sans Web"; faces declared here so Vite fingerprints the files. */
@ font-face { font-family : 'Public Sans Web' ; font-style : normal ; font-weight : 300 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-Light.woff2' ) format ( 'woff2' ) ; }
@ font-face { font-family : 'Public Sans Web' ; font-style : normal ; font-weight : 400 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-Regular.woff2' ) format ( 'woff2' ) ; }
@ font-face { font-family : 'Public Sans Web' ; font-style : italic ; font-weight : 400 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-Italic.woff2' ) format ( 'woff2' ) ; }
@ font-face { font-family : 'Public Sans Web' ; font-style : normal ; font-weight : 500 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-Medium.woff2' ) format ( 'woff2' ) ; }
@ font-face { font-family : 'Public Sans Web' ; font-style : normal ; font-weight : 600 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-SemiBold.woff2' ) format ( 'woff2' ) ; }
@ font-face { font-family : 'Public Sans Web' ; font-style : normal ; font-weight : 700 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-Bold.woff2' ) format ( 'woff2' ) ; }
@ font-face { font-family : 'Public Sans Web' ; font-style : italic ; font-weight : 700 ; font-display : swap ; src : url ( '../assets/fonts/public-sans/PublicSans-BoldItalic.woff2' ) format ( 'woff2' ) ; }
/* Layout glue only. Colour, type, spacing and components come from USWDS. */
* , * :: before , * :: after { box-sizing : border-box ; }
html , body , # root { height : 100 % ; }
body { margin : 0 ; }
2026-10-03 15:02:13 +02:00
. kbb-app { display : flex ; flex-direction : column ; height : 100 % ; height : 100 dvh ; min-height : 0 ; }
2026-10-03 13:33:50 +02:00
. kbb-main { flex : 1 ; min-height : 0 ; overflow : auto ; background : #fff ; }
. kbb-main : focus { outline : none ; }
. kbb-narrow { max-width : 44 rem ; }
. kbb-main--split { display : grid ; grid-template-columns : minmax ( 0 , 1 fr ) ; grid-template-rows : minmax ( 0 , 1 fr ) ; overflow : hidden ; }
. kbb-panel { overflow : auto ; padding : 1 rem 1 rem 2 rem ; background : #fff ; min-width : 0 ; }
. kbb-map-wrap { position : relative ; min-height : 0 ; height : 100 % ; }
. kbb-map { position : absolute ; inset : 0 ; }
@ media ( min-width : 64em ) {
. kbb-main--split { grid-template-columns : minmax ( 24 rem , 30 rem ) minmax ( 0 , 1 fr ) ; }
. kbb-panel { border-right : 1 px solid #dfe1e2 ; }
}
2026-10-03 15:02:13 +02:00
/* phone held sideways: keep list and map side by side */
@ media ( max-width : 63 . 99em ) and ( orientation : landscape ) {
. kbb-main--split { grid-template-columns : minmax ( 16 rem , 22 rem ) minmax ( 0 , 1 fr ) ; }
. kbb-panel { border-right : 1 px solid #dfe1e2 ; padding-bottom : 1 rem ; }
2026-10-03 13:33:50 +02:00
}
. kbb-place-btn { appearance : none ; cursor : pointer ; font : inherit ; color : inherit ; }
. kbb-place-btn : hover { background : #f0f0f0 ; }
. kbb-place-btn : focus-visible , . kbb-pin : focus-visible { outline : 0.25 rem solid #2491ff ; outline-offset : 0 ; }
. kbb-source { display : flex ; flex-wrap : wrap ; gap : 0.25 rem 1.25 rem ; }
. kbb-source > div { display : flex ; align-items : center ; gap : 0.4 rem ; }
. kbb-source dt :: after { content : ':' ; }
. kbb-source dd { margin : 0 ; }
. kbb-legend { position : absolute ; left : 0.5 rem ; bottom : 1.75 rem ; z-index : 2 ; max-width : 17 rem ; padding : 0.5 rem 0.75 rem ; background : #fff ; border : 1 px solid #565c65 ; border-radius : 0.25 rem ; font-size : 0.875 rem ; }
. kbb-legend summary { cursor : pointer ; font-weight : 700 ; }
. kbb-legend ul { margin-top : 0.5 rem !important ; }
. kbb-legend li { padding : 0.15 rem 0 ; }
. kbb-swatch { flex : none ; width : 0.9 rem ; height : 0.9 rem ; border : 2 px solid ; border-radius : 50 % ; margin-right : 0.5 rem ; }
. kbb-map-note { position : absolute ; top : 0.5 rem ; left : 0.5 rem ; right : 3.5 rem ; z-index : 2 ; }
. kbb-pin { display : flex ; align-items : center ; justify-content : center ; width : 1.75 rem ; height : 1.75 rem ; border-radius : 50 % ; border : 2 px solid #1b1b1b ; background : #fff ; color : #1b1b1b ; font : 700 0.875 rem / 1 inherit ; padding : 0 ; }
. kbb-pin--start { background : #005ea2 ; color : #fff ; border-color : #fff ; }
. kbb-pin--end { background : #1b1b1b ; color : #fff ; border-color : #fff ; }
. kbb-pin--barrier { background : #ffbe2e ; cursor : pointer ; }
. kbb-pin--barrier . usa-icon { width : 1.1 rem ; height : 1.1 rem ; fill : currentColor ; }
. kbb-pin--hard { background : #b50909 ; color : #fff ; border-color : #fff ; }
@ media ( prefers-reduced-motion : reduce ) { * { scroll-behavior : auto !important ; } }
2026-10-03 14:29:28 +02:00
/* ---- profile / tooltips ---- */
. kbb-step { display : flex ; align-items : center ; gap : 0.6 rem ; margin : 0 0 0.5 rem ; }
. kbb-step__n { display : inline-flex ; align-items : center ; justify-content : center ; flex : none ; width : 2 rem ; height : 2 rem ; border-radius : 50 % ; background : #005ea2 ; color : #fff ; font-size : 1 rem ; font-weight : 700 ; }
. kbb-choice { display : grid ; grid-template-columns : repeat ( auto - fit , minmax ( 13 rem , 1 fr ) ) ; gap : 0.5 rem ; }
. kbb-choice . usa-radio { margin : 0 ; }
. kbb-choice . usa-radio__label { margin-top : 0 ; height : 100 % ; }
. kbb-tip { position : relative ; display : inline-flex ; margin-left : 0.25 rem ; }
. kbb-tip__btn { appearance : none ; display : inline-flex ; align-items : center ; justify-content : center ; min-width : 2.75 rem ; min-height : 2.75 rem ; padding : 0 ; background : none ; border : 0 ; border-radius : 50 % ; color : #005ea2 ; cursor : pointer ; }
. kbb-tip__btn : hover { background : #e7f6f8 ; }
. kbb-tip__btn : focus-visible { outline : 0.25 rem solid #2491ff ; }
. kbb-tip__bubble { position : absolute ; z-index : 20 ; top : 100 % ; left : -0.5 rem ; width : max-content ; max-width : min ( 19 rem , 78 vw ) ; padding : 0.6 rem 0.75 rem ; background : #1b1b1b ; color : #fff ; border-radius : 0.25 rem ; font-size : 0.9 rem ; line-height : 1.4 ; font-weight : 400 ; box-shadow : 0 2 px 8 px rgba ( 0 , 0 , 0 , 0.3 ) ; }
. kbb-tip__bubble [ hidden ] { display : none ; }
/* ---- dashboard ---- */
. kbb-wide { max-width : 64 rem ; }
. kbb-kpis { display : grid ; grid-template-columns : repeat ( auto - fit , minmax ( 11 rem , 1 fr ) ) ; gap : 0.75 rem ; margin-bottom : 1 rem !important ; }
. kbb-kpi { display : flex ; flex-direction : column ; padding : 0.9 rem 1 rem ; border : 1 px solid #dfe1e2 ; border-left : 0.35 rem solid #005ea2 ; border-radius : 0.25 rem ; background : #fff ; }
. kbb-kpi__v { font-size : 1.9 rem ; font-weight : 700 ; line-height : 1.1 ; color : #1b1b1b ; }
. kbb-kpi__l { font-size : 0.9 rem ; margin-top : 0.25 rem ; color : #3d4551 ; }
. kbb-kpi__s { font-size : 0.8 rem ; color : #565c65 ; }
. kbb-bar { min-width : 8 rem ; white-space : nowrap ; }
. kbb-bar span { display : inline-block ; height : 0.75 rem ; vertical-align : middle ; }
. kbb-bar__k { background : #00a91c ; }
. kbb-bar__s { background : #ffbe2e ; }
. kbb-bar__u { background : #a9aeb1 ; }
. kbb-rank { display : inline-flex ; align-items : center ; justify-content : center ; width : 1.9 rem ; height : 1.9 rem ; margin-right : 0.6 rem ; border-radius : 50 % ; background : #1b1b1b ; color : #fff ; font-weight : 700 ; }
/* ---- access card ---- */
. kbb-card { position : fixed ; inset : 0 ; z-index : 100 ; overflow : auto ; padding : 1 rem ; background : rgba ( 27 , 27 , 27 , 0.7 ) ; }
. kbb-card__sheet { max-width : 46 rem ; margin : 0 auto ; padding : 1.5 rem ; background : #fff ; border-radius : 0.25 rem ; }
. kbb-card__bar { display : flex ; flex-wrap : wrap ; gap : 0.5 rem ; margin-bottom : 1 rem ; }
. kbb-card__bar . usa-button { margin : 0 ; }
@ media print {
. kbb-app > : not ( . kbb-card ) { display : none !important ; }
. kbb-card { position : static ; padding : 0 ; background : none ; overflow : visible ; }
. kbb-card__sheet { max-width : none ; padding : 0 ; }
. kbb-card__bar { display : none ; }
}
/* ---- high contrast (settings) ---- */
: root [ data-contrast = 'high' ] { --kbb-border : #1b1b1b ; }
: root [ data-contrast = 'high' ] body { color : #000 ; }
: root [ data-contrast = 'high' ] . text-base-dark , : root [ data-contrast = 'high' ] . text-base , : root [ data-contrast = 'high' ] . usa-hint { color : #1b1b1b !important ; }
: root [ data-contrast = 'high' ] . border-base-lighter { border-color : #1b1b1b !important ; }
: root [ data-contrast = 'high' ] . usa-input , : root [ data-contrast = 'high' ] . usa-select , : root [ data-contrast = 'high' ] . usa-textarea { border-width : 2 px ; border-color : #000 ; }
: root [ data-contrast = 'high' ] . usa-button--outline { box-shadow : inset 0 0 0 3 px #1b1b1b ; color : #1b1b1b ; }
: root [ data-motion = 'reduce' ] * { transition : none !important ; animation : none !important ; }
/* ---- header ---- */
. kbb-head { display : flex ; flex-wrap : wrap ; align-items : center ; gap : 0.5 rem 1.25 rem ; padding : 0.6 rem 1 rem ; }
. kbb-head__nav { order : 3 ; width : 100 % ; overflow-x : auto ; }
. kbb-head__tools { display : flex ; align-items : center ; gap : 0.75 rem ; margin-left : auto ; }
. kbb-head__user { display : none ; }
@ media ( min-width : 40em ) { . kbb-head__user { display : inline-flex ; align-items : center ; } }
@ media ( min-width : 64em ) { . kbb-head__nav { order : 0 ; width : auto ; flex : 1 ; } }
. usa-range { max-width : 100 % ; width : 100 % ; }
. kbb-result : focus { outline : none ; }
. kbb-head__brand { font-size : 1.1 rem ; }
. kbb-banner-detail { display : none ; }
@ media ( min-width : 40em ) { . kbb-banner-detail { display : inline ; } . kbb-head__brand { font-size : 1.35 rem ; } }
. usa-site-alert . usa-alert { padding-top : 0.25 rem ; padding-bottom : 0.25 rem ; }
/* ---- evidence ---- */
. kbb-measure-canvas { display : block ; width : 100 % ; max-height : 22 rem ; object-fit : contain ; background : #1b1b1b ; border-radius : 0.25 rem ; touch-action : manipulation ; cursor : crosshair ; }
. kbb-thumb { width : 5.5 rem ; height : 5.5 rem ; object-fit : cover ; border-radius : 0.25 rem ; border : 1 px solid #a9aeb1 ; flex : none ; }
/* ---- live guidance banner ---- */
. kbb-guide { display : flex ; flex-wrap : wrap ; align-items : center ; gap : 0.5 rem 1 rem ; padding : 0.75 rem 1 rem ; background : #1b1b1b ; color : #fff ; border-bottom : 4 px solid #00bde3 ; }
. kbb-guide__main { flex : 1 1 18 rem ; min-width : 0 ; }
. kbb-guide__headline { margin : 0 ; font-size : 1.35 rem ; font-weight : 700 ; line-height : 1.25 ; display : flex ; align-items : center ; }
. kbb-guide__headline . usa-icon { flex : none ; fill : #00bde3 ; }
. kbb-guide__barrier { margin : 0.35 rem 0 0 ; padding : 0.3 rem 0.6 rem ; background : #ffbe2e ; color : #1b1b1b ; font-weight : 700 ; border-radius : 0.25 rem ; display : inline-flex ; align-items : center ; }
. kbb-guide__meta { margin : 0.25 rem 0 0 ; font-size : 0.9 rem ; color : #dfe1e2 ; }
. kbb-guide__actions { display : flex ; flex-wrap : wrap ; gap : 0.5 rem ; }
. kbb-guide . usa-button--inverse [ aria-pressed = 'true' ] { background : #fff ; color : #1b1b1b ; box-shadow : none ; }
/* ---- basemap switch ---- */
. kbb-basemap { position : absolute ; top : 0.5 rem ; left : 0.5 rem ; z-index : 2 ; display : flex ; background : #fff ; border-radius : 0.25 rem ; box-shadow : 0 1 px 4 px rgba ( 0 , 0 , 0 , 0.4 ) ; }
. kbb-basemap button { appearance : none ; border : 0 ; background : #fff ; color : #005ea2 ; font : inherit ; font-weight : 700 ; padding : 0.55 rem 0.9 rem ; min-height : 2.75 rem ; cursor : pointer ; }
. kbb-basemap button : first-child { border-radius : 0.25 rem 0 0 0.25 rem ; }
. kbb-basemap button : last-child { border-radius : 0 0.25 rem 0.25 rem 0 ; }
. kbb-basemap button [ aria-pressed = 'true' ] { background : #005ea2 ; color : #fff ; }
. kbb-basemap button : focus-visible { outline : 0.25 rem solid #2491ff ; outline-offset : -0.25 rem ; }
. kbb-me { width : 1.4 rem ; height : 1.4 rem ; border-radius : 50 % ; background : #1a73e8 ; border : 3 px solid #fff ; box-shadow : 0 0 0 3 px rgba ( 26 , 115 , 232 , 0.35 ) ; }
. kbb-guide__voice { display : flex ; }
. kbb-guide__select { margin : 0 ; min-height : 2.5 rem ; padding : 0.4 rem 2 rem 0.4 rem 0.6 rem ; background-color : transparent ; color : #fff ; border : 2 px solid #fff ; font-size : 0.95 rem ; }
. kbb-guide__select option { color : #1b1b1b ; }
2026-10-03 15:02:13 +02:00
/* ================= mobile ================= */
. usa-tag { white-space : nowrap ; }
. kbb-sheet__handle { display : none ; }
. kbb-nav__icon { display : none ; }
. kbb-filters > summary { cursor : pointer ; font-weight : 700 ; color : #005ea2 ; line-height : 2.75 rem ; }
. kbb-filters > summary : focus-visible { outline : 0.25 rem solid #2491ff ; }
@ media ( max-width : 63 . 99em ) , ( pointer : coarse ) {
/* touch targets >= 44 px (WCAG 2.5.5 / platform guidance) */
. usa-button--small { min-height : 2.75 rem ; padding-left : 1 rem ; padding-right : 1 rem ; }
. usa-button--unstyled { display : inline-flex ; align-items : center ; min-height : 2.75 rem ; }
. usa-checkbox__label , . usa-radio__label { min-height : 2.75 rem ; padding-top : 0.6 rem ; padding-bottom : 0.6 rem ; }
details > summary { min-height : 2.75 rem ; }
. kbb-legend summary { display : flex ; align-items : center ; min-height : 2.75 rem ; }
. kbb-head__tools . usa-button { min-width : 2.75 rem ; min-height : 2.75 rem ; }
. maplibregl-ctrl-group button { width : 2.75 rem ; height : 2.75 rem ; }
. usa-button { min-height : 2.75 rem ; }
. usa-input , . usa-select { height : 2.75 rem ; }
. kbb-pin :: after { content : '' ; position : absolute ; inset : -0.45 rem ; }
2026-10-03 17:08:38 +02:00
. font-sans-3xs , . font-sans-2xs { font-size : 0.875 rem !important ; line-height : 1.4 !important ; }
2026-10-03 15:02:13 +02:00
}
@ media ( max-width : 63 . 99em ) {
/* chrome budget: slim header + bottom tab bar, prototype banner moves out of the way */
. kbb-proto { display : none ; }
. kbb-app { padding-bottom : calc ( 3.5 rem + env ( safe - area - inset - bottom ) ) ; }
. kbb-head { flex-wrap : nowrap ; padding : 0.35 rem 0.75 rem ; }
. kbb-head__brand { font-size : 1.05 rem ; line-height : 1.2 ; min-width : 0 ; }
. kbb-head__tools { gap : 0.5 rem ; flex : none ; }
. kbb-head__nav { position : fixed ; left : 0 ; right : 0 ; bottom : 0 ; z-index : 50 ; width : auto ; order : 0 ; overflow : visible ; background : #fff ; border-top : 1 px solid #a9aeb1 ; padding-bottom : env ( safe - area - inset - bottom ) ; }
. kbb-head__nav . kbb-nav { display : flex ; width : 100 % ; box-shadow : none ; }
. kbb-head__nav . usa-button-group__item { flex : 1 1 0 ; min-width : 0 ; margin : 0 ; }
. kbb-head__nav . kbb-nav__btn . usa-button { display : flex ; flex-direction : column ; align-items : center ; justify-content : center ; gap : 0.1 rem ; width : 100 % ; min-height : 3.5 rem ; margin : 0 ; padding : 0.25 rem 0.1 rem ; border-radius : 0 ; box-shadow : none ; background : #fff ; color : #3d4551 ; font-size : 0.8125 rem ; font-weight : 400 ; line-height : 1.1 ; }
. kbb-head__nav . kbb-nav__btn . usa-button [ aria-current = 'page' ] { background : #e7f6f8 ; color : #00548a ; font-weight : 700 ; box-shadow : inset 0 0.25 rem 0 #005ea2 ; }
. kbb-head__nav . kbb-nav__btn . usa-button : focus-visible { outline : 0.25 rem solid #2491ff ; outline-offset : -0.25 rem ; }
. kbb-nav__icon { display : block ; fill : currentColor ; }
. kbb-narrow . usa-intro { font-size : 1.05 rem ; line-height : 1.4 ; }
. kbb-legend { bottom : auto ; top : 7 rem ; left : auto ; right : 0.5 rem ; max-width : min ( 17 rem , calc ( 100 vw - 4 rem ) ) ; }
. kbb-map-note { top : 3.9 rem ; right : 3.75 rem ; }
. kbb-guide { padding : 0.5 rem 0.75 rem ; gap : 0.5 rem ; }
. kbb-guide . usa-button , . kbb-guide__select { min-height : 2.75 rem ; }
. kbb-guide__actions { flex-wrap : nowrap ; width : 100 % ; gap : 0.4 rem ; }
. kbb-guide__actions > * { flex : 1 1 0 ; min-width : 0 ; }
. kbb-guide__actions > . kbb-guide__voice { flex-grow : 1.5 ; }
. kbb-guide . usa-button { padding-left : 0.4 rem ; padding-right : 0.4 rem ; font-size : 0.9 rem ; line-height : 1.1 ; }
. kbb-guide__select { width : 100 % ; font-size : 0.9 rem ; padding-right : 1.6 rem ; }
. kbb-guide__headline { font-size : 1.25 rem ; }
. is-guiding { padding-bottom : 0 ; }
. is-guiding . kbb-head { display : none ; }
}
/* ---- bottom sheet (phone, portrait) ---- */
@ media ( max-width : 63 . 99em ) and ( orientation : portrait ) {
. kbb-main--split { display : block ; position : relative ; --sheet-h : 55 % ; }
. kbb-main--split . is-peek { --sheet-h : 6.5 rem ; }
. kbb-main--split . is-half { --sheet-h : 55 % ; }
. kbb-main--split . is-full { --sheet-h : 100 % ; }
. kbb-map-wrap { position : absolute ; inset : 0 ; height : auto ; }
. kbb-panel { position : absolute ; left : 0 ; right : 0 ; bottom : 0 ; z-index : 5 ; height : var ( - - sheet - h ) ; padding : 0 1 rem 2 rem ; border-radius : 1 rem 1 rem 0 0 ; box-shadow : 0 -2 px 12 px rgba ( 0 , 0 , 0 , 0.3 ) ; overscroll-behavior : contain ; transition : height 0.2 s ease ; }
. kbb-main--split . is-peek . kbb-panel { overflow : hidden ; }
. kbb-sheet__handle { display : flex ; align-items : center ; justify-content : center ; position : sticky ; top : 0 ; z-index : 2 ; width : calc ( 100 % + 2 rem ) ; min-height : 2.75 rem ; margin : 0 -1 rem ; padding : 0 ; border : 0 ; background : #fff ; border-radius : 1 rem 1 rem 0 0 ; touch-action : none ; cursor : grab ; }
. kbb-sheet__handle :: before { content : '' ; width : 2.75 rem ; height : 0.3 rem ; border-radius : 0.15 rem ; background : #71767a ; }
. kbb-sheet__handle : focus-visible { outline : 0.25 rem solid #2491ff ; outline-offset : -0.25 rem ; }
/* keep OSM attribution and map controls above the sheet */
. kbb-map-wrap . maplibregl-ctrl-bottom-left , . kbb-map-wrap . maplibregl-ctrl-bottom-right { bottom : var ( - - sheet - h ) ; transition : bottom 0.2 s ease ; }
. is-guiding . kbb-panel { display : none ; }
. is-guiding . kbb-map-wrap . maplibregl-ctrl-bottom-left , . is-guiding . kbb-map-wrap . maplibregl-ctrl-bottom-right { bottom : 0 ; }
}
/* ---- short screens (phone sideways): reclaim height ---- */
@ media ( max-height : 30em ) and ( orientation : landscape ) {
. kbb-app { padding-bottom : calc ( 3 rem + env ( safe - area - inset - bottom ) ) ; }
. kbb-head__nav . kbb-nav__btn . usa-button { min-height : 3 rem ; flex-direction : row ; gap : 0.4 rem ; }
. kbb-head__brand { font-size : 1 rem ; }
. kbb-legend { top : 0.5 rem ; right : 3.75 rem ; }
}
@ media ( prefers-reduced-motion : reduce ) { . kbb-panel , . kbb-map-wrap . maplibregl-ctrl-bottom-left , . kbb-map-wrap . maplibregl-ctrl-bottom-right { transition : none ; } }
2026-10-03 17:08:38 +02:00
/* USWDS styles bare [type=search] for its header search (no right border, 2rem tall); undo that for our form field */
. usa-input [ type = 'search' ] { float : none ; width : 100 % ; height : 2.5 rem ; border : 1 px solid #565c65 ; border-radius : 0 ; padding : 0 0.5 rem ; font-size : 1.06 rem ; }
@ media ( max-width : 63 . 99em ) , ( pointer : coarse ) { . usa-input [ type = 'search' ] { height : 2.75 rem ; } }
. kbb-acct { display : flex ; flex-wrap : wrap ; align-items : center ; gap : 0.25 rem 0.5 rem ; flex : 1 1 14 rem ; min-width : 0 ; }
. kbb-hot { display : flex ; align-items : flex-start ; gap : 0.6 rem ; flex-wrap : wrap ; }
. kbb-hot . kbb-rank { margin-right : 0 ; flex : none ; }
. kbb-hot__body { flex : 1 1 10 rem ; min-width : 0 ; }
. kbb-hot . usa-button { flex : none ; }
@ media ( max-width : 39 . 99em ) { . kbb-hot . usa-button { width : 100 % ; } }
@ media ( max-width : 23em ) { . kbb-head__brand { font-size : 0.9 rem ; } . kbb-head__brand . usa-icon { width : 1.5 rem ; height : 1.5 rem ; margin-right : 0.4 rem !important ; } }
/* ---- city panel: tabs, inbox ---- */
. kbb-tabs { display : flex ; gap : 0.25 rem ; margin : 0.5 rem 0 1 rem ; border-bottom : 2 px solid #dfe1e2 ; overflow-x : auto ; scrollbar-width : none ; }
. kbb-tabs :: -webkit-scrollbar { display : none ; }
. kbb-tab { appearance : none ; flex : none ; display : inline-flex ; align-items : center ; gap : 0.4 rem ; min-height : 2.75 rem ; padding : 0.5 rem 0.9 rem ; margin-bottom : -2 px ; background : none ; border : 0 ; border-bottom : 4 px solid transparent ; font : inherit ; font-weight : 700 ; color : #454545 ; cursor : pointer ; white-space : nowrap ; }
. kbb-tab : hover { background : #f0f0f0 ; }
. kbb-tab [ aria-selected = 'true' ] { color : #005ea2 ; border-bottom-color : #005ea2 ; }
. kbb-tab : focus-visible { outline : 0.25 rem solid #2491ff ; outline-offset : -0.25 rem ; }
. kbb-tab__badge , . kbb-nav__badge { display : inline-flex ; align-items : center ; justify-content : center ; min-width : 1.4 rem ; height : 1.4 rem ; padding : 0 0.35 rem ; border-radius : 0.7 rem ; background : #b50909 ; color : #fff ; font-size : 0.8 rem ; font-weight : 700 ; line-height : 1 ; }
. kbb-tabpanel : focus { outline : none ; }
. kbb-nav__badge { margin-left : 0.35 rem ; }
. kbb-nav__btn { position : relative ; }
. kbb-chips { display : flex ; flex-wrap : wrap ; gap : 0.5 rem ; margin-bottom : 0.75 rem ; }
. kbb-chip { appearance : none ; display : inline-flex ; align-items : center ; gap : 0.4 rem ; min-height : 2.75 rem ; padding : 0.4 rem 0.9 rem ; border : 2 px solid #005ea2 ; border-radius : 1.5 rem ; background : #fff ; color : #005ea2 ; font : inherit ; font-weight : 700 ; cursor : pointer ; }
. kbb-chip . is-on { background : #005ea2 ; color : #fff ; }
. kbb-chip : focus-visible { outline : 0.25 rem solid #2491ff ; outline-offset : 2 px ; }
. kbb-chip__n { padding : 0 0.45 rem ; border-radius : 0.7 rem ; background : rgba ( 0 , 0 , 0 , 0.12 ) ; font-size : 0.85 rem ; }
. kbb-chip . is-on . kbb-chip__n { background : rgba ( 255 , 255 , 255 , 0.25 ) ; }
. kbb-q-bar { display : flex ; flex-wrap : wrap ; align-items : flex-end ; justify-content : space-between ; gap : 0.75 rem ; margin-bottom : 0.75 rem ; }
. kbb-q-sort { display : flex ; align-items : center ; gap : 0.5 rem ; margin-left : auto ; }
. kbb-q-sort . usa-select { width : auto ; max-width : 16 rem ; }
. kbb-q-item { display : flex ; gap : 0.75 rem ; padding : 1 rem ; margin-bottom : 0.75 rem ; border : 1 px solid #dfe1e2 ; border-radius : 0.25 rem ; background : #fff ; }
. kbb-q-item__body { flex : 1 ; min-width : 0 ; }
. kbb-q-actions { display : flex ; flex-wrap : wrap ; align-items : center ; gap : 0.5 rem ; margin-top : 0.75 rem ; }
. kbb-q-done { display : flex ; flex-wrap : wrap ; align-items : center ; justify-content : space-between ; gap : 0.25 rem 1 rem ; padding : 0.25 rem 0 ; border-bottom : 1 px solid #dfe1e2 ; }
@ media ( max-width : 39 . 99em ) {
. kbb-q-item { flex-direction : column ; }
. kbb-q-actions . usa-button : not ( . usa-button--unstyled ) { flex : 1 1 0 ; }
. kbb-q-sort { margin-left : 0 ; width : 100 % ; }
. kbb-q-sort . usa-select { flex : 1 ; max-width : none ; }
}
@ media ( max-width : 63 . 99em ) {
/* tab bar: badge floats on the icon instead of widening the label */
. kbb-nav__badge { position : absolute ; top : 0.2 rem ; left : calc ( 50 % + 0.4 rem ) ; margin : 0 ; min-width : 1.15 rem ; height : 1.15 rem ; font-size : 0.7 rem ; }
}