:root{
  --tc-bg:#f5f7f9;
  --tc-surface:#fff;
  --tc-surface-2:#f8fafc;
  --tc-text:#111827;
  --tc-muted:#667085;
  --tc-line:#e4e9ee;
  --tc-navy:#0b2d44;
  --tc-navy-2:#123f5d;
  --tc-accent:#f58220;
  --tc-accent-2:#ff9d4d;
  --tc-green:#138a62;
  --tc-radius:22px;
  --tc-shadow:0 18px 46px rgba(13,34,50,.10);
}
.tc-shell{width:min(1360px,calc(100% - 32px));margin:0 auto;padding:26px 0 56px;color:var(--tc-text);font:inherit}
.tc-shell *{box-sizing:border-box}.tc-shell button,.tc-shell input{font:inherit}.tc-form label{display:block;min-width:0}
.tc-hero{padding:8px 0 22px}.tc-kicker{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--tc-accent)}.tc-kicker:before{content:"";width:26px;height:3px;border-radius:99px;background:currentColor}
.tc-hero h1{margin:.45rem 0 .55rem;max-width:none;font-size:clamp(2rem,3vw,3.15rem);font-weight:850;line-height:1.04;letter-spacing:-.035em;color:var(--tc-text)}
.tc-hero p{max-width:none;margin:0;color:var(--tc-muted);font-size:1rem;line-height:1.55}
@media(min-width:980px){.tc-hero h1,.tc-hero p{white-space:nowrap}}
.tc-card,.tc-map-card{background:var(--tc-surface);border:1px solid var(--tc-line);border-radius:var(--tc-radius);box-shadow:var(--tc-shadow)}
.tc-search-card{position:relative;overflow:visible;padding:24px 28px}.tc-search-card:before{content:"";position:absolute;left:1px;top:1px;bottom:1px;width:4px;border-radius:21px 0 0 21px;background:linear-gradient(180deg,var(--tc-accent),var(--tc-accent-2));pointer-events:none}
.tc-grid{display:grid;gap:18px}.tc-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tc-form label>span,.tc-field-label{display:block;margin:0 0 6px;font-size:.76rem;font-weight:850;color:#35404c;letter-spacing:.01em}
.tc-form input{appearance:none;width:100%;height:44px;border:1px solid #dce2e8;border-radius:11px;background:#fff;color:var(--tc-text);padding:0 12px;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}.tc-form input:hover{border-color:#cbd3db}.tc-form input:focus{border-color:var(--tc-accent);box-shadow:0 0 0 3px rgba(245,130,32,.11)}
.tc-route-points{gap:20px}.tc-location-field{position:relative;min-width:0;width:100%}.tc-location-field>label{width:100%}.tc-location-input-wrap{position:relative;width:100%}.tc-location-input{width:100%!important;height:66px!important;border-radius:15px!important;padding:0 50px 0 18px!important;font-size:1.05rem!important;font-weight:760}.tc-location-input::placeholder{font-weight:500;color:#98a2b3}.tc-location-dot{position:absolute;right:18px;top:50%;width:11px;height:11px;margin-top:-5.5px;border:3px solid rgba(245,130,32,.22);border-radius:50%;background:var(--tc-accent);pointer-events:none}
.tc-location-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.tc-location-btn{appearance:none;border:1px solid var(--tc-line);border-radius:9px;background:#fff;color:var(--tc-navy);padding:7px 10px;font-size:.72rem;font-weight:850;cursor:pointer;transition:.16s ease}.tc-location-btn:hover{border-color:rgba(245,130,32,.7);color:var(--tc-accent);background:#fff9f4}.tc-location-btn span{margin-right:5px}
.tc-suggestions{position:absolute;z-index:40;left:0;right:0;top:98px;padding:7px;background:#fff;border:1px solid var(--tc-line);border-radius:14px;box-shadow:0 18px 40px rgba(13,34,50,.16);max-height:310px;overflow:auto}.tc-suggestion{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;border:0;border-radius:10px;background:#fff;padding:11px 12px;text-align:left;cursor:pointer;color:var(--tc-text)}.tc-suggestion:hover{background:#fff7ef}.tc-suggestion strong{display:block;font-size:.9rem;line-height:1.3}.tc-suggestion small{flex:0 0 auto;color:var(--tc-muted);font-size:.68rem;text-transform:uppercase}
.tc-vehicle-section{margin-top:18px}.tc-vehicle-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.tc-vehicle-option{appearance:none;min-width:0;min-height:58px;border:1px solid var(--tc-line);border-radius:13px;background:#fff;color:var(--tc-navy);padding:8px 10px;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s}.tc-vehicle-option:hover{transform:translateY(-1px);border-color:#cfd6dd;box-shadow:0 7px 20px rgba(13,34,50,.06)}.tc-vehicle-option.is-selected{border-color:var(--tc-accent);background:linear-gradient(180deg,#fffaf5,#fff5eb);color:var(--tc-accent);box-shadow:0 0 0 3px rgba(245,130,32,.08)}.tc-vehicle-name{font-size:.72rem;font-weight:900;text-align:left;line-height:1.15;white-space:normal}.tc-vehicle-icon{display:block;flex:0 0 auto;width:42px;height:28px;background:currentColor;mask-position:center;mask-repeat:no-repeat;mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain}.tc-vehicle-icon-motorcycle{mask-image:url('../images/vehicle-motorcycle.svg');-webkit-mask-image:url('../images/vehicle-motorcycle.svg')}.tc-vehicle-icon-car{mask-image:url('../images/vehicle-car.svg');-webkit-mask-image:url('../images/vehicle-car.svg')}.tc-vehicle-icon-camper{mask-image:url('../images/vehicle-camper.svg');-webkit-mask-image:url('../images/vehicle-camper.svg')}.tc-vehicle-icon-van{mask-image:url('../images/vehicle-van.svg');-webkit-mask-image:url('../images/vehicle-van.svg')}.tc-vehicle-icon-truck{mask-image:url('../images/vehicle-truck.svg');-webkit-mask-image:url('../images/vehicle-truck.svg')}.tc-vehicle-icon-bus{mask-image:url('../images/vehicle-bus.svg');-webkit-mask-image:url('../images/vehicle-bus.svg')}
.tc-vehicle-data-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-top:16px;padding-top:15px;border-top:1px solid var(--tc-line)}.tc-cost-fields,.tc-dimension-fields{display:flex;align-items:flex-start;gap:8px;min-width:0}.tc-cost-fields{flex:0 0 auto}.tc-dimension-fields{flex:1 1 auto;justify-content:flex-end;flex-wrap:nowrap}.tc-compact-field{width:118px;min-width:0}.tc-field-consumption{width:132px}.tc-field-fuel{width:126px}.tc-compact-field[hidden]{display:none!important}.tc-compact-field input{height:38px;border-radius:9px;padding:0 10px}.tc-input-unit{position:relative}.tc-input-unit input{padding-right:48px}.tc-input-unit span{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.67rem;font-weight:850;color:var(--tc-muted);pointer-events:none}.tc-field-note{display:block;margin-top:4px;color:#8a94a2;font-size:.61rem;line-height:1.25}
.tc-actions{display:flex;align-items:center;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--tc-line)}.tc-primary{display:inline-flex;align-items:center;justify-content:center;min-width:145px;min-height:46px;border:0;border-radius:12px;padding:0 22px;font-weight:900;background:linear-gradient(135deg,var(--tc-accent),var(--tc-accent-2));color:#fff;box-shadow:0 10px 25px rgba(245,130,32,.22);cursor:pointer;transition:transform .16s,box-shadow .16s,opacity .16s}.tc-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 13px 31px rgba(245,130,32,.3)}.tc-primary:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.tc-primary.is-loading{opacity:.76}.tc-status{color:var(--tc-muted);font-size:.8rem;line-height:1.4}.tc-status.is-error{color:#b42318;font-weight:750}
.tc-results{scroll-margin-top:30px;margin-top:20px}.tc-result-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin:0 2px 10px}.tc-result-head>div{display:flex;gap:9px;align-items:center;font-weight:900;font-size:.92rem}.tc-result-head b{color:var(--tc-accent)}.tc-result-head small{color:var(--tc-muted);font-size:.72rem}.tc-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tc-result-card{position:relative;overflow:hidden;background:var(--tc-surface);border:1px solid var(--tc-line);border-radius:16px;padding:17px 18px;min-height:178px;box-shadow:0 8px 30px rgba(20,26,32,.05);cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s;outline:none}.tc-result-card:hover:not(.is-unavailable),.tc-result-card:focus-visible:not(.is-unavailable){transform:translateY(-2px);border-color:#cfd6dd;box-shadow:0 14px 34px rgba(20,26,32,.09)}.tc-result-card-active{border-color:rgba(245,130,32,.58);background:linear-gradient(180deg,#fff 0%,#fff8f2 100%)}.tc-result-card-active:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--tc-accent)}.tc-result-card>span{display:block;color:var(--tc-muted);font-size:.69rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.tc-result-card>strong{display:block;margin:.5rem 0 .38rem;font-size:1.7rem;line-height:1;letter-spacing:-.035em;color:var(--tc-navy)}.tc-result-card>small{display:block;color:var(--tc-muted);font-weight:700;font-size:.78rem}.tc-result-card.is-unavailable{background:#fafbfc;cursor:not-allowed;opacity:.78}.tc-route-roads{margin-top:8px;color:var(--tc-navy);font-size:.72rem;font-weight:800;line-height:1.35}.tc-route-verification{display:inline-flex;align-items:center;gap:5px;margin-top:9px;padding:5px 8px;border-radius:999px;background:#eaf8f2;color:#0b6d4e;font-size:.66rem;font-weight:900}.tc-route-verification.is-warning{background:#fff4e8;color:#9a5a12}.tc-cost-breakdown{display:flex;gap:12px;flex-wrap:wrap;margin-top:11px;padding-top:10px;border-top:1px dashed var(--tc-line);font-size:.72rem;color:var(--tc-muted)}.tc-cost-breakdown b{color:var(--tc-text)}.tc-route-unavailable{margin-top:9px;color:#8a5a1f;font-size:.72rem;line-height:1.4}.tc-view-route{display:flex!important;align-items:center;justify-content:flex-end;gap:6px;margin-top:10px;color:var(--tc-navy)!important;font-size:.72rem!important;font-weight:900!important;text-transform:none!important;letter-spacing:0!important}.tc-result-card-active .tc-view-route{color:var(--tc-accent)!important}.tc-map-head em{font-style:normal;color:var(--tc-accent);font-size:.72rem;font-weight:900;margin-top:2px}.tc-diagnostic-note{margin-top:9px;color:#8a5a1f;font-size:.72rem;line-height:1.45}
.tc-map-card{margin-top:16px;overflow:hidden}.tc-map-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--tc-line)}.tc-map-head>div:first-child{display:flex;flex-direction:column;gap:3px}.tc-map-head strong{color:var(--tc-navy)}.tc-map-head span{color:var(--tc-muted);font-size:.75rem}.tc-map-legend{display:flex;align-items:center;gap:8px;color:var(--tc-muted);font-size:.69rem}.tc-map-legend i{width:22px;height:4px;border-radius:3px}.tc-map-legend .fast{background:var(--tc-accent)}.tc-map-legend .eco{background:var(--tc-green)}.tc-map-legend .free{background:var(--tc-navy)}
.tc-route-map,.tc-picker-map{position:relative;height:480px;background:#eaf0f3;overflow:hidden;touch-action:none;cursor:grab}.tc-route-map.is-dragging,.tc-picker-map.is-dragging{cursor:grabbing}.tc-map-tiles{position:absolute;inset:0;overflow:hidden;background:#e6ecef}.tc-map-tile{position:absolute;width:256px;height:256px;max-width:none!important;user-select:none;pointer-events:none}.tc-map-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.tc-map-line{fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(255,255,255,.9));transition:opacity .15s,stroke-width .15s}.tc-map-line.is-dimmed{opacity:.16!important;stroke-width:3}.tc-map-line.is-active{opacity:1!important;stroke-width:8!important;filter:drop-shadow(0 2px 2px rgba(255,255,255,1)) drop-shadow(0 2px 5px rgba(10,35,52,.18))}.tc-map-line-fastest{stroke:var(--tc-accent);stroke-width:6}.tc-map-line-economical{stroke:var(--tc-green);stroke-width:4;stroke-dasharray:12 8}.tc-map-line-no_tolls{stroke:var(--tc-navy);stroke-width:4;stroke-dasharray:6 8;opacity:.88}.tc-map-marker circle{fill:#fff;stroke:var(--tc-navy);stroke-width:4}.tc-map-marker text{text-anchor:middle;font:bold 13px system-ui,sans-serif;fill:var(--tc-navy)}.tc-map-marker-picker circle{fill:var(--tc-accent);stroke:#fff;stroke-width:4;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}.tc-map-controls{position:absolute;z-index:6;right:12px;top:12px;display:flex;flex-direction:column;border-radius:10px;overflow:hidden;box-shadow:0 5px 14px rgba(0,0,0,.18)}.tc-map-controls button{width:38px;height:38px;border:0;border-bottom:1px solid #e5e7eb;background:#fff;color:var(--tc-navy);font-size:1.35rem;font-weight:800;cursor:pointer}.tc-map-controls button:last-child{border-bottom:0}.tc-map-controls button:hover{background:#f8fafc}.tc-map-attribution{position:absolute;z-index:6;right:6px;bottom:5px;background:rgba(255,255,255,.86);padding:2px 5px;border-radius:4px;color:#5f6874;font-size:10px;line-height:1.25}
.tc-map-picker[hidden]{display:none}.tc-modal-open{overflow:hidden}.tc-map-picker{position:fixed;z-index:10000;inset:0;display:flex;align-items:center;justify-content:center;padding:24px}.tc-map-picker-backdrop{position:absolute;inset:0;background:rgba(5,23,36,.72);backdrop-filter:blur(3px)}.tc-map-picker-panel{position:relative;width:min(1050px,96vw);max-height:92vh;background:#fff;border-radius:22px;box-shadow:0 28px 90px rgba(0,0,0,.35);overflow:hidden}.tc-map-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--tc-line)}.tc-map-picker-head>div{display:flex;flex-direction:column;gap:3px}.tc-map-picker-head strong{font-size:1rem;color:var(--tc-navy)}.tc-map-picker-head span{font-size:.78rem;color:var(--tc-muted)}.tc-map-picker-x{border:0;background:#f2f4f7;color:#344054;width:34px;height:34px;border-radius:50%;font-size:1.35rem;cursor:pointer}.tc-picker-map{height:min(62vh,620px)}.tc-map-picker-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-top:1px solid var(--tc-line)}.tc-map-picker-foot>span{font-size:.82rem;color:var(--tc-muted);max-width:70%}.tc-picker-use{min-width:190px}
@media(max-width:1180px){.tc-vehicle-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.tc-vehicle-data-row{align-items:flex-start;flex-direction:column}.tc-dimension-fields{justify-content:flex-start;flex-wrap:wrap}.tc-preview-grid{grid-template-columns:1fr}.tc-result-card{min-height:auto}}
@media(max-width:760px){.tc-shell{width:min(100% - 22px,1360px);padding:22px 0 42px}.tc-grid-2,.tc-grid-3{grid-template-columns:1fr}.tc-search-card{padding:18px}.tc-actions{align-items:stretch;flex-direction:column}.tc-primary{width:100%}.tc-result-head{align-items:flex-start;flex-direction:column}.tc-map-head{align-items:flex-start;flex-direction:column}.tc-route-map{height:360px}.tc-hero h1{font-size:2.1rem;white-space:normal}.tc-hero p{white-space:normal}.tc-cost-fields,.tc-dimension-fields{width:100%;flex-wrap:wrap}.tc-compact-field,.tc-field-consumption,.tc-field-fuel{width:calc(50% - 4px)}.tc-map-picker{padding:10px}.tc-picker-map{height:62vh}.tc-map-picker-foot{align-items:stretch;flex-direction:column}.tc-map-picker-foot>span{max-width:none}.tc-picker-use{width:100%}}
@media(max-width:560px){.tc-vehicle-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-location-actions{display:grid;grid-template-columns:1fr 1fr}.tc-location-btn{width:100%}.tc-location-input{font-size:.95rem!important}.tc-suggestions{top:98px}.tc-map-legend{display:none}.tc-compact-field,.tc-field-consumption,.tc-field-fuel{width:100%}}

/* v0.3.6 UI polish */
.tc-vehicle-option{min-height:76px;padding:7px 9px;gap:8px;flex-direction:column;justify-content:center;background:linear-gradient(180deg,#fff,#fbfcfd)}
.tc-vehicle-option.is-selected{background:linear-gradient(180deg,#fffaf4,#fff3e7)}
.tc-vehicle-image-wrap{display:flex;align-items:center;justify-content:center;width:76px;height:38px;overflow:hidden}
.tc-vehicle-image{display:block;width:76px;height:38px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(11,45,68,.10))}
.tc-vehicle-name{text-align:center;font-size:.69rem;line-height:1.15}
.tc-vehicle-option.is-selected .tc-vehicle-image{filter:drop-shadow(0 2px 3px rgba(245,130,32,.18))}
.tc-route-delta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.tc-delta-chip{display:inline-flex;align-items:center;min-height:26px;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:950;letter-spacing:-.01em;line-height:1}
.tc-delta-chip.is-save{background:#e9f8f1;color:#08724e;border:1px solid #c8eddc}
.tc-delta-chip.is-time{background:#fff3e8;color:#a4510b;border:1px solid #ffd9b8}
.tc-delta-chip.is-worse{background:#fff0f0;color:#a83c3c;border:1px solid #f3c9c9}
.tc-route-actions{display:none;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--tc-line)}
.tc-result-card-active .tc-route-actions{display:flex}
.tc-route-action{appearance:none;border:1px solid #d9e2e8;border-radius:9px;background:#fff;color:var(--tc-navy);padding:7px 10px;font-size:.69rem;font-weight:900;cursor:pointer;transition:.15s ease}
.tc-route-action:hover{border-color:#8db9df;background:#f3f9ff;color:#0f63aa}
.tc-route-action-maps{background:#eaf4ff;border-color:#c8e0f6;color:#0d63a9}
.tc-map-line{stroke-width:2.2;stroke-dasharray:none!important;opacity:.62;filter:none}
.tc-map-line-fastest{stroke:#f58220;stroke-width:2.6}
.tc-map-line-economical{stroke:#2e8b69;stroke-width:2.5;stroke-dasharray:none!important}
.tc-map-line-no_tolls{stroke:#224e70;stroke-width:2.5;stroke-dasharray:none!important;opacity:.72}
.tc-map-line.is-dimmed{opacity:.18!important;stroke-width:1.8!important}
.tc-map-line.is-active{stroke:#1476d4!important;opacity:1!important;stroke-width:4.2!important;filter:drop-shadow(0 1px 1px rgba(255,255,255,.95))}
.tc-map-legend i{height:3px!important;border-radius:99px!important;background:#1476d4!important}
@media(max-width:1180px){.tc-vehicle-option{min-height:70px}.tc-vehicle-image-wrap,.tc-vehicle-image{width:68px;height:34px}}
.tc-map-line.is-active{stroke-width:3.7!important}
.tc-map-legend i.fast{background:#f58220!important}.tc-map-legend i.eco{background:#2e8b69!important}.tc-map-legend i.free{background:#224e70!important}


/* v0.3.7 toll-station breakdown */
.tc-toll-card{margin-top:16px;background:var(--tc-surface);border:1px solid var(--tc-line);border-radius:var(--tc-radius);box-shadow:var(--tc-shadow);overflow:hidden}
.tc-toll-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--tc-line)}
.tc-toll-head>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.tc-toll-head strong{color:var(--tc-navy);font-size:.96rem}.tc-toll-head span{color:var(--tc-accent);font-size:.8rem;font-weight:900}.tc-toll-head small{max-width:48%;color:var(--tc-muted);font-size:.67rem;text-align:right;line-height:1.35}
.tc-toll-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:5px 18px 12px}.tc-toll-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf0f2}.tc-toll-index{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#1476d4;color:#fff;font-size:.72rem}.tc-toll-name{min-width:0;display:flex;flex-direction:column;gap:2px}.tc-toll-name strong{color:var(--tc-text);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-toll-name span{color:var(--tc-muted);font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-toll-price{color:var(--tc-navy);font-size:.82rem}.tc-toll-empty{grid-column:1/-1;padding:16px 0;color:var(--tc-muted);font-size:.8rem;font-weight:700}
.tc-map-marker-toll circle{fill:#1476d4;stroke:#fff;stroke-width:3;filter:drop-shadow(0 2px 4px rgba(0,0,0,.28))}.tc-map-marker-toll text{fill:#fff;font-size:10px;font-weight:900}.tc-map-marker-toll{pointer-events:auto;cursor:help}
@media(max-width:760px){.tc-toll-head{align-items:flex-start;flex-direction:column}.tc-toll-head small{max-width:none;text-align:left}.tc-toll-list{grid-template-columns:1fr}}

/* v0.3.8 responsive density + mobile-first polish */
@media (min-width:1280px){
  .tc-toll-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px;padding:4px 16px 10px}
  .tc-toll-row{grid-template-columns:27px minmax(0,1fr) auto;gap:8px;padding:8px 0}
  .tc-toll-index{width:23px;height:23px;font-size:.65rem}
  .tc-toll-name strong{font-size:.73rem}
  .tc-toll-name span{font-size:.59rem}
  .tc-toll-price{font-size:.76rem;font-weight:900}
  .tc-toll-head{padding:12px 16px}
  .tc-toll-head strong{font-size:.9rem}
  .tc-toll-head span{font-size:.73rem}
  .tc-toll-head small{font-size:.61rem;max-width:44%}
}

@media (min-width:761px) and (max-width:1279px){
  .tc-toll-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:4px 14px 10px}
  .tc-toll-row{grid-template-columns:27px minmax(0,1fr) auto;gap:8px;padding:9px 0}
  .tc-toll-index{width:23px;height:23px;font-size:.65rem}
  .tc-toll-name strong{font-size:.74rem}
  .tc-toll-name span{font-size:.6rem}
  .tc-toll-price{font-size:.77rem;font-weight:900}
}

@media (max-width:760px){
  .tc-shell{width:min(100% - 16px,1360px);padding:14px 0 34px}
  .tc-hero{padding:4px 2px 14px}
  .tc-hero h1{font-size:clamp(1.65rem,8vw,2rem);line-height:1.02;margin:.35rem 0 .45rem}
  .tc-hero p{font-size:.86rem;line-height:1.45}
  .tc-search-card{padding:15px 13px;border-radius:17px}
  .tc-location-input{height:54px!important;padding:0 42px 0 14px!important;font-size:.92rem!important}
  .tc-location-dot{right:14px}
  .tc-location-actions{gap:6px;margin-top:6px}
  .tc-location-btn{min-height:38px;padding:7px 8px;font-size:.68rem}
  .tc-vehicle-section{margin-top:14px}
  .tc-vehicle-picker{gap:6px}
  .tc-vehicle-option{min-height:66px;padding:6px 5px;border-radius:11px}
  .tc-vehicle-image-wrap,.tc-vehicle-image{width:60px;height:30px}
  .tc-vehicle-name{font-size:.64rem}
  .tc-vehicle-data-row{gap:10px;margin-top:12px;padding-top:12px}
  .tc-cost-fields,.tc-dimension-fields{gap:6px}
  .tc-compact-field,.tc-field-consumption,.tc-field-fuel{width:calc(50% - 3px)}
  .tc-compact-field input{height:36px}
  .tc-actions{gap:10px;margin-top:12px;padding-top:12px}
  .tc-primary{min-height:44px}
  .tc-status{font-size:.72rem}
  .tc-results{margin-top:14px}
  .tc-result-head{gap:7px;margin-bottom:8px}
  .tc-result-head>div{font-size:.78rem;line-height:1.35;flex-wrap:wrap}
  .tc-result-head small{font-size:.65rem}
  .tc-preview-grid{gap:8px}
  .tc-result-card{padding:14px 14px;min-height:auto;border-radius:14px}
  .tc-result-card>span{font-size:.62rem}
  .tc-result-card>strong{font-size:1.45rem;margin:.38rem 0 .3rem}
  .tc-result-card>small{font-size:.7rem}
  .tc-route-delta{gap:5px;margin-top:8px}
  .tc-delta-chip{min-height:24px;padding:4px 7px;font-size:.64rem}
  .tc-route-roads,.tc-cost-breakdown,.tc-view-route,.tc-route-unavailable{font-size:.66rem!important}
  .tc-route-actions{gap:6px;margin-top:9px;padding-top:8px}
  .tc-route-action{flex:1 1 0;text-align:center;padding:8px 7px;font-size:.64rem}
  .tc-diagnostic-note{font-size:.63rem;margin-top:7px}
  .tc-toll-card{margin-top:12px;border-radius:16px}
  .tc-toll-head{padding:11px 12px;gap:7px}
  .tc-toll-head>div{gap:7px}
  .tc-toll-head strong{font-size:.84rem}
  .tc-toll-head span{font-size:.7rem}
  .tc-toll-head small{font-size:.59rem;line-height:1.3}
  .tc-toll-list{grid-template-columns:1fr;gap:0;padding:2px 12px 8px}
  .tc-toll-row{grid-template-columns:25px minmax(0,1fr) auto;gap:8px;padding:8px 0}
  .tc-toll-index{width:22px;height:22px;font-size:.62rem}
  .tc-toll-name strong{font-size:.73rem}
  .tc-toll-name span{font-size:.59rem}
  .tc-toll-price{font-size:.76rem;font-weight:900}
  .tc-map-card{margin-top:12px;border-radius:16px}
  .tc-map-head{padding:11px 12px;gap:7px}
  .tc-map-head strong{font-size:.88rem}
  .tc-map-head span,.tc-map-head em{font-size:.64rem}
  .tc-route-map{height:320px}
  .tc-map-controls{right:8px;top:8px}
  .tc-map-controls button{width:34px;height:34px}
}

@media (max-width:420px){
  .tc-location-actions{grid-template-columns:1fr}
  .tc-vehicle-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-compact-field,.tc-field-consumption,.tc-field-fuel{width:100%}
  .tc-route-action{flex:1 1 100%}
  .tc-toll-head small{display:none}
  .tc-route-map{height:290px}
}

/* v0.4.0 intermediate stops, saved vehicles, selective toll avoidance */
.tc-via-section{margin-top:10px;padding:10px 0 2px;border-top:1px solid #edf1f4}
.tc-via-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tc-via-toolbar-after{margin-top:9px}
.tc-via-toolbar small{color:var(--tc-muted);font-size:.68rem}
.tc-secondary{appearance:none;border:1px solid #d9e2e8;border-radius:9px;background:#fff;color:var(--tc-navy);padding:8px 11px;font-size:.72rem;font-weight:900;cursor:pointer;transition:.15s ease}
.tc-secondary:hover{border-color:#f3a35e;background:#fff8f1;color:#a95007}
.tc-via-list{display:grid;gap:8px;margin-top:0}
.tc-via-row{display:grid;grid-template-columns:52px minmax(0,1fr) 38px;align-items:end;gap:8px;padding:9px;background:#fbfcfd;border:1px solid #e7edf1;border-radius:12px}
.tc-via-order{display:flex;gap:4px;padding-bottom:2px}.tc-via-order button,.tc-via-remove{appearance:none;border:1px solid #dce4e9;background:#fff;color:#526371;border-radius:8px;width:24px;height:32px;font-weight:900;cursor:pointer}.tc-via-remove{width:36px;color:#a23f3f;font-size:1.1rem}.tc-via-order button:hover,.tc-via-remove:hover{border-color:#f3a35e;background:#fff8f1}
.tc-via-location label{width:100%}.tc-via-location .tc-location-input{height:44px!important;font-size:.82rem!important}.tc-via-location .tc-suggestions{top:68px}
.tc-vehicle-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.tc-vehicle-profiles{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tc-vehicle-profiles select{height:34px;min-width:180px;border:1px solid #d9e2e8;border-radius:8px;background:#fff;padding:0 30px 0 9px;font-size:.69rem;color:var(--tc-text)}
.tc-mini-btn{appearance:none;border:1px solid #d9e2e8;border-radius:8px;background:#fff;padding:7px 9px;font-size:.65rem;font-weight:900;color:var(--tc-navy);cursor:pointer}.tc-mini-btn:hover{background:#f7fafc}.tc-mini-btn-danger{color:#a23f3f}
.tc-detour-result{margin-top:10px;border-color:#bcd7ee;background:linear-gradient(180deg,#f8fcff,#fff);max-width:none}
.tc-toll-head-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.tc-toll-head-actions>span{font-size:.66rem;font-weight:900;color:#0f63aa;background:#eaf4ff;border:1px solid #c9e0f4;border-radius:999px;padding:5px 8px}.tc-detour-button{padding:7px 10px}.tc-detour-button:disabled{opacity:.45;cursor:not-allowed}
.tc-toll-row{grid-template-columns:27px minmax(0,1fr) auto auto!important}.tc-toll-avoid{appearance:none;border:1px solid #d9e2e8;background:#fff;color:#526371;border-radius:8px;padding:5px 7px;font-size:.6rem;font-weight:900;cursor:pointer;white-space:nowrap}.tc-toll-avoid:hover{border-color:#1476d4;color:#0f63aa;background:#f2f8ff}.tc-toll-avoid.is-selected{border-color:#1476d4;background:#1476d4;color:#fff}.tc-toll-avoid:disabled{opacity:.35;cursor:not-allowed}
.tc-map-marker-via circle{fill:#f58220;stroke:#fff;stroke-width:3;filter:drop-shadow(0 2px 4px rgba(0,0,0,.22))}.tc-map-marker-via text{fill:#fff;font-size:9px;font-weight:950}
.tc-map-line-detour{stroke:#1476d4;stroke-width:2.5;opacity:.78}

@media(max-width:900px){.tc-vehicle-section-head{align-items:flex-start;flex-direction:column}.tc-vehicle-profiles{width:100%}.tc-vehicle-profiles select{flex:1 1 180px}.tc-toll-head-actions{width:100%;margin-left:0;justify-content:flex-start}}
@media(max-width:760px){.tc-via-row{grid-template-columns:44px minmax(0,1fr) 34px;padding:7px}.tc-via-order{flex-direction:column}.tc-via-order button{height:22px;width:30px;font-size:.65rem}.tc-via-remove{width:32px}.tc-vehicle-profiles{display:grid;grid-template-columns:1fr auto auto}.tc-vehicle-profiles select{min-width:0;width:100%}.tc-toll-head-actions{display:grid;grid-template-columns:auto 1fr;gap:6px}.tc-detour-button{width:100%}.tc-toll-row{grid-template-columns:24px minmax(0,1fr) auto!important}.tc-toll-avoid{grid-column:2/4;justify-self:start;margin-top:-2px}}
@media(max-width:420px){.tc-vehicle-profiles{grid-template-columns:1fr 1fr}.tc-vehicle-profiles select{grid-column:1/-1}.tc-via-toolbar{align-items:flex-start;flex-direction:column}.tc-via-toolbar .tc-secondary{width:100%}.tc-toll-head-actions{grid-template-columns:1fr}.tc-toll-head-actions>span{justify-self:start}}

/* v0.4.1 route flow + unified map picker search */
.tc-route-flow{display:grid;gap:12px}
.tc-route-location-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.tc-route-location-row .tc-location-field{min-width:0}
.tc-location-actions-inline{display:flex;gap:7px;margin:0 0 1px;align-items:center;white-space:nowrap}
.tc-location-actions-inline .tc-location-btn{min-height:48px;padding:9px 12px}
.tc-via-section{margin:0;padding:4px 0;border-top:0}
.tc-via-toolbar{padding:2px 0 0}
.tc-via-toolbar-after{padding-top:6px}
.tc-via-list:not(:empty){margin:9px 0 3px}
.tc-via-row{grid-template-columns:52px minmax(0,1fr) auto 38px;align-items:end}
.tc-via-map-btn{align-self:end;min-height:44px;margin-bottom:0;padding:8px 10px;white-space:nowrap}
.tc-map-picker-panel{overflow:visible}
.tc-map-picker-search{position:relative;padding:12px 14px 10px;background:#fff;border-bottom:1px solid #e8edf1;z-index:8}
.tc-map-picker-search>label{display:block;margin:0 0 5px;color:var(--tc-navy);font-size:.72rem;font-weight:900}
.tc-map-picker-search-wrap{position:relative}
.tc-map-picker-search-wrap input{width:100%;height:44px;border:1px solid #d8e1e7;border-radius:10px;background:#fbfcfd;color:var(--tc-text);font:inherit;font-size:.82rem;padding:0 42px 0 12px;outline:none;transition:.15s ease}
.tc-map-picker-search-wrap input:focus{border-color:#f58220;box-shadow:0 0 0 3px rgba(245,130,32,.12);background:#fff}
.tc-map-picker-search-wrap>span{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#728390;font-size:1rem;pointer-events:none}
.tc-picker-suggestions{top:76px;left:14px;right:14px;z-index:50;max-height:240px;overflow:auto}
@media(max-width:900px){
  .tc-route-location-row{grid-template-columns:1fr}
  .tc-location-actions-inline{margin-top:-4px;display:grid;grid-template-columns:1fr 1fr}
  .tc-location-actions-inline .tc-location-btn{min-height:40px;justify-content:center}
  .tc-via-row{grid-template-columns:44px minmax(0,1fr) 34px;align-items:end}
  .tc-via-map-btn{grid-column:2/4;justify-self:start;min-height:36px;margin-top:-2px;padding:7px 9px}
  .tc-via-remove{grid-column:3;grid-row:1}
}
@media(max-width:520px){
  .tc-location-actions-inline{grid-template-columns:1fr}
  .tc-via-row{grid-template-columns:38px minmax(0,1fr) 32px;gap:6px}
  .tc-via-map-btn{grid-column:2/4;width:100%;justify-content:center}
  .tc-map-picker-search{padding:10px}
  .tc-picker-suggestions{left:10px;right:10px;top:72px}
}


/* v0.4.2 strict + visible selective toll bypass */
.tc-detour-state{margin:0 0 10px;border-radius:10px;padding:9px 11px;font-size:.72rem;font-weight:850;line-height:1.35;border:1px solid transparent}
.tc-detour-state.is-pending{background:#fff7e8;border-color:#f4c46d;color:#8a5200}
.tc-detour-state.is-working{background:#eef6ff;border-color:#a9cfee;color:#0d5f9f}
.tc-detour-state.is-success{background:#edf9f0;border-color:#9cd3aa;color:#246a35}
.tc-detour-state.is-error{background:#fff1f1;border-color:#e7aaaa;color:#9a3333}
.tc-toll-row{transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.tc-toll-row.is-detour-selected{background:#fff8ec!important;border-color:#f1ba55!important;box-shadow:inset 3px 0 0 #f59d16}
.tc-toll-row.is-detour-selected .tc-toll-index{background:#f59d16!important;color:#fff!important}
.tc-toll-avoid.is-selected{border-color:#f59d16!important;background:#f59d16!important;color:#fff!important}
.tc-detour-button:not(:disabled){border-color:#f59d16;background:#fff8ec;color:#8a5200}
.tc-detour-button.is-working{opacity:.75;cursor:progress}
.tc-map-marker-toll-avoid circle{fill:#f59d16!important;stroke:#fff;stroke-width:3.5}
.tc-map-marker-toll-avoid text{fill:#fff!important;font-size:11px!important;font-weight:950}
.tc-detour-result .tc-route-verification{background:#edf9f0;border:1px solid #a9d7b3;color:#246a35;padding:7px 9px;border-radius:9px}
@media(max-width:760px){.tc-detour-state{font-size:.69rem;padding:8px 9px}.tc-toll-row.is-detour-selected{box-shadow:inset 2px 0 0 #f59d16}}
/* 0.4.4 toll matching audit badges */
.tc-toll-match-badge{display:inline-flex;align-items:center;width:max-content;margin-top:3px;padding:2px 6px;border-radius:999px;font-style:normal;font-size:.54rem;font-weight:900;line-height:1.2;border:1px solid transparent}
.tc-toll-match-badge.is-official{color:#176b3a;background:#edf9f1;border-color:#bfe4ca}
.tc-toll-match-badge.is-conflict{color:#9b4e00;background:#fff4e6;border-color:#f3c98d}
.tc-toll-match-badge.is-candidate{color:#665500;background:#fffbe6;border-color:#e8dc8a}
.tc-toll-match-badge.is-crosscheck{color:#5a4678;background:#f6f0ff;border-color:#d9c6f4}
.tc-toll-match-badge.is-here{color:#526371;background:#f3f6f8;border-color:#dce4e9}
.tc-toll-conflict-note{display:block;color:#9b4e00;font-size:.54rem;font-weight:800;line-height:1.2;margin-top:2px}
.tc-toll-row.is-local-matched .tc-toll-index{background:#176b6b}
@media(max-width:760px){.tc-toll-match-badge,.tc-toll-conflict-note{font-size:.52rem}}

/* v0.4.5 larger route map + persistent bypass visibility */
.tc-route-map{height:720px!important}
.tc-toll-row.is-detour-avoided{background:#fff8ec!important;border-color:#f1ba55!important;box-shadow:inset 3px 0 0 #f59d16}
.tc-toll-row.is-detour-avoided .tc-toll-index{background:#f59d16!important;color:#fff!important;font-size:.8rem}
.tc-toll-match-badge.is-avoided{color:#8a5200;background:#fff1d8;border-color:#f1ba55}
.tc-toll-price-avoided{display:flex;flex-direction:column;align-items:flex-end;gap:1px;color:#8a5200!important;line-height:1.05}
.tc-toll-price-avoided del{font-size:.66rem;color:#9c7a4c;font-weight:700}
.tc-toll-price-avoided span{font-size:.78rem;color:#c36e00;font-weight:950}
.tc-map-marker-toll-avoid circle{fill:#f59d16!important;stroke:#fff!important;stroke-width:3.5!important}
.tc-map-marker-toll-avoid text{fill:#fff!important;font-size:11px!important;font-weight:950!important}

@media(max-width:760px){
  .tc-route-map{height:480px!important}
  .tc-toll-row.is-detour-avoided{box-shadow:inset 2px 0 0 #f59d16}
}
@media(max-width:420px){
  .tc-route-map{height:435px!important}
}

/* v0.6.2: clearer unavailable toll-free route state */
.tc-result-card.is-no-tolls-unverified {
  border-color: #f0b35f;
  background: #fffaf2;
}
.tc-result-card.is-no-tolls-unverified > strong[data-total] {
  color: #b66a09;
  font-size: 1.65rem;
}
.tc-result-card.is-no-tolls-unverified [data-summary] {
  color: #7a4a09;
  font-weight: 800;
  line-height: 1.35;
}
.tc-result-card.is-no-tolls-unverified .tc-route-unavailable {
  color: #7a4a09;
  background: #fff3db;
  border: 1px solid #f0cf9a;
  border-radius: 10px;
  padding: 10px 12px;
  margin-top: 10px;
}

/* v0.7.0 International vignette engine */
/* v0.7.1: visually separate cross-border vignette charges from route/toll cards. */
.tc-vignette-card{
  margin-top:18px;
  background:linear-gradient(180deg,#fffafa 0%,#ffffff 48%);
  border:3px solid #e02b2b;
  border-radius:var(--tc-radius);
  box-shadow:
    0 0 0 1px rgba(224,43,43,.08),
    0 10px 24px rgba(174,25,25,.16),
    0 22px 52px rgba(13,34,50,.10);
  overflow:hidden;
  position:relative;
  isolation:isolate;
}
.tc-vignette-card:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(224,43,43,.055),transparent 22%,transparent 78%,rgba(224,43,43,.035));
}
.tc-vignette-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:15px 18px 11px;border-bottom:1px solid #f2caca;background:linear-gradient(180deg,#fff3f3 0%,#fffafa 100%)}
.tc-vignette-head>div{display:flex;align-items:baseline;gap:10px}.tc-vignette-head strong{font-size:.94rem;color:var(--tc-navy)}.tc-vignette-head span{font-size:.72rem;font-weight:800;color:var(--tc-muted)}.tc-vignette-head small{max-width:560px;text-align:right;color:var(--tc-muted);font-size:.66rem;line-height:1.4}
.tc-vignette-list{display:grid;gap:0;padding:0 18px 8px}.tc-vignette-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(250px,1.4fr) minmax(170px,.8fr) auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0f2}.tc-vignette-row:last-child{border-bottom:0}
.tc-vignette-country{display:flex;align-items:center;gap:9px;min-width:0}.tc-vignette-country>b{display:flex;align-items:center;justify-content:center;min-width:35px;height:27px;border-radius:8px;background:#173d67;color:#fff;font-size:.64rem;letter-spacing:.05em}.tc-vignette-country>div{display:flex;flex-direction:column;min-width:0}.tc-vignette-country strong{font-size:.8rem;color:var(--tc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-vignette-country span{font-size:.61rem;font-weight:900;color:#0b6d4e;margin-top:2px}
.tc-vignette-select{display:flex;flex-direction:column;gap:4px}.tc-vignette-select>span{font-size:.59rem;font-weight:900;color:var(--tc-muted);text-transform:uppercase;letter-spacing:.05em}.tc-vignette-select select{width:100%;height:38px;border:1px solid #dbe2e7;border-radius:9px;background:#fff;color:var(--tc-text);padding:0 10px;font-size:.72rem;font-weight:750;outline:none}.tc-vignette-select select:focus{border-color:#8db8dc;box-shadow:0 0 0 3px rgba(20,118,212,.08)}
.tc-vignette-selected{display:flex;flex-direction:column;gap:2px}.tc-vignette-selected>span{font-size:.59rem;font-weight:900;color:var(--tc-accent);text-transform:uppercase;letter-spacing:.04em}.tc-vignette-selected>strong{font-size:.78rem;color:var(--tc-navy)}.tc-vignette-warning{display:block;margin-top:3px;color:#9a5a12;font-size:.59rem;line-height:1.3}
.tc-vignette-official-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border:1px solid #cfe0ec;border-radius:9px;background:#f4f9fc;color:#0f63aa!important;font-size:.64rem;font-weight:900;text-decoration:none!important;white-space:nowrap}.tc-vignette-official-link:hover{background:#eaf5fb;border-color:#9fc4dc}.tc-vignette-unavailable{color:#8a5a1f;font-size:.69rem;line-height:1.4}.tc-vignette-row.is-unavailable{grid-template-columns:minmax(150px,.8fr) 1fr auto;background:#fffaf4}
@media(max-width:980px){.tc-vignette-row{grid-template-columns:minmax(140px,.7fr) minmax(220px,1.3fr) minmax(150px,.8fr)}.tc-vignette-official-link{grid-column:2/4;justify-self:start}.tc-vignette-row.is-unavailable{grid-template-columns:minmax(140px,.7fr) 1fr}.tc-vignette-row.is-unavailable .tc-vignette-official-link{grid-column:2}}
@media(max-width:760px){.tc-vignette-card{margin-top:14px;border-width:2px;border-radius:16px;box-shadow:0 0 0 1px rgba(224,43,43,.07),0 8px 20px rgba(174,25,25,.14),0 16px 34px rgba(13,34,50,.08)}.tc-vignette-head{align-items:flex-start;flex-direction:column;padding:12px 13px 9px;gap:4px}.tc-vignette-head small{max-width:none;text-align:left}.tc-vignette-list{padding:0 12px 5px}.tc-vignette-row,.tc-vignette-row.is-unavailable{grid-template-columns:1fr;gap:9px;padding:12px 0}.tc-vignette-country strong{font-size:.82rem}.tc-vignette-select select{height:40px;font-size:.71rem}.tc-vignette-official-link,.tc-vignette-row.is-unavailable .tc-vignette-official-link{grid-column:1;justify-self:stretch}.tc-vignette-selected{padding:7px 9px;background:#fffafa;border:1px solid #f4dddd;border-radius:8px}}


/* v0.7.2 international vignette vehicle classification fields */
.tc-international-vehicle-row{margin-top:12px;padding:12px 14px;border:1px solid #e5eaf0;border-radius:13px;background:#fbfcfd}
.tc-international-vehicle-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:9px}.tc-international-vehicle-head strong{color:var(--tc-navy);font-size:.76rem}.tc-international-vehicle-head small{color:var(--tc-muted);font-size:.64rem}
.tc-international-vehicle-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tc-international-vehicle-fields .tc-compact-field{width:auto}
.tc-form select{appearance:auto;width:100%;height:38px;border:1px solid #dce2e8;border-radius:9px;background:#fff;color:var(--tc-text);padding:0 8px;outline:none;font-size:.72rem}.tc-form select:focus{border-color:var(--tc-accent);box-shadow:0 0 0 3px rgba(245,130,32,.11)}
@media(max-width:900px){.tc-international-vehicle-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.tc-international-vehicle-row{padding:10px}.tc-international-vehicle-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-field-front-axle-height{grid-column:1/-1}}
@media(max-width:420px){.tc-international-vehicle-fields{grid-template-columns:1fr}.tc-field-front-axle-height{grid-column:auto}}

/* v0.7.4 vector basemap: MapLibre is loaded without its UI controls; these minimal
   rules are sufficient for the canvas while our existing overlay/controls remain authoritative. */
.tc-map-tiles.is-vector-map,.tc-map-tiles.maplibregl-map{position:absolute;inset:0;overflow:hidden;background:#e6ecef;font:12px/20px system-ui,sans-serif}
.tc-map-tiles .maplibregl-canvas-container{position:absolute;inset:0;width:100%;height:100%}
.tc-map-tiles .maplibregl-canvas{position:absolute;left:0;top:0;outline:0}
.tc-map-tiles .maplibregl-control-container{display:none!important}

/* v0.7.9 stable selective-bypass identities */
.tc-toll-match-badge.is-new-route{background:#eaf4ff;color:#0f63aa;border:1px solid #bdd9f3}
.tc-toll-match-badge.is-skipped-route{background:#f3f4f6;color:#667085;border:1px solid #d9dee5}
.tc-toll-row.is-detour-new{box-shadow:inset 3px 0 0 #1476d4}
.tc-toll-row.is-detour-skipped{opacity:.72;background:#fafbfc}
.tc-toll-row.is-detour-skipped .tc-toll-index{background:#7c8794}
.tc-toll-cancel{border-color:#f59d16!important;background:#fff!important;color:#b96800!important}
.tc-toll-cancel:hover{background:#fff5e6!important;color:#8a4e00!important}
.tc-toll-action-empty{display:block;min-width:1px}
@media(max-width:760px){.tc-toll-row.is-detour-new{box-shadow:inset 2px 0 0 #1476d4}}


/* v0.7.10 mobile polish + keep accent rail inside the calculator card */
.tc-search-card:before{left:1px;top:1px;bottom:1px;border-radius:calc(var(--tc-radius) - 1px) 0 0 calc(var(--tc-radius) - 1px)}
@media(max-width:520px){
  .tc-hero{padding-top:4px}
  .tc-hero h1{font-size:clamp(1.68rem,7.45vw,1.95rem);line-height:1.01;letter-spacing:-.045em;max-width:100%}
  .tc-search-card{padding-left:20px;padding-right:18px}
  .tc-search-card:before{left:1px;top:1px;bottom:1px;width:3px}
}

/* v0.7.11 temporary traffic detour notice */
.tc-traffic-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:flex-start;margin:0 0 12px;padding:12px 14px;border:1px solid #f1b56f;border-left:4px solid var(--tc-accent);border-radius:12px;background:linear-gradient(180deg,#fffaf3 0%,#fff6e9 100%);box-shadow:0 7px 20px rgba(154,90,18,.08);color:#71420d}
.tc-traffic-alert[hidden]{display:none!important}.tc-traffic-alert-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#fff0d9;color:#b6650d;font-size:.9rem;font-weight:900}.tc-traffic-alert strong{display:block;color:#8f4f08;font-size:.82rem;font-weight:900;line-height:1.25}.tc-traffic-alert span{display:block;margin-top:3px;color:#77501f;font-size:.74rem;line-height:1.45}.tc-traffic-alert small{display:block;margin-top:5px;color:#9a5a12;font-size:.68rem;font-weight:800;line-height:1.4}
@media(max-width:760px){.tc-traffic-alert{grid-template-columns:auto minmax(0,1fr);padding:11px 12px;margin-bottom:10px}.tc-traffic-alert strong{font-size:.78rem}.tc-traffic-alert span{font-size:.69rem}.tc-traffic-alert small{font-size:.64rem}}

/* v0.7.12 zone-aware bypass */
.tc-toll-match-badge.is-reentry-toll{background:#fff0d9;border-color:#f3b456;color:#8a5200}
.tc-toll-row.is-detour-new .is-reentry-toll{font-weight:900}

/* v0.7.16: map toll-state colours */
.tc-map-marker-toll-new circle{fill:var(--tc-green)!important;stroke:#fff!important;stroke-width:3.5!important}
.tc-map-marker-toll-new text{fill:#fff!important;font-size:11px!important;font-weight:950!important}
.tc-map-marker-toll-avoid circle{fill:var(--tc-accent)!important;stroke:#fff!important;stroke-width:3.5!important}
.tc-map-marker-toll-avoid text{fill:#fff!important;font-size:11px!important;font-weight:950!important}

/* v0.7.17 consolidated UI cleanup */
/* Search-card accent: fully inside the card with rounded caps. */
.tc-search-card:before{
  left:1px!important;
  top:14px!important;
  bottom:14px!important;
  width:4px!important;
  border-radius:999px!important;
}

/* Saved vehicle selector left, save/delete actions right on one desktop row. */
.tc-vehicle-section-head{display:block!important;margin-bottom:10px!important}
.tc-vehicle-section-head>.tc-field-label{display:block;margin-bottom:7px}
.tc-vehicle-profiles{
  display:grid!important;
  grid-template-columns:minmax(220px,1fr) auto auto!important;
  align-items:center!important;
  gap:7px!important;
  width:100%!important;
}
.tc-vehicle-profiles select{min-width:0!important;width:100%!important}

/* Cost summary under every result card: easier to scan. */
.tc-cost-breakdown{font-size:.82rem!important;gap:16px!important;align-items:baseline}
.tc-cost-breakdown span{font-weight:700}
.tc-cost-breakdown b{font-size:.94rem!important;font-weight:950!important;color:var(--tc-text)!important}

/* Toll section heading is intentionally stronger/uppercase. */
.tc-toll-head strong{text-transform:uppercase;letter-spacing:.025em}

/* Map toll-state legend. */
.tc-map-head-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.tc-map-toll-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px;margin-top:7px;color:var(--tc-muted);font-size:.66rem;font-weight:800}
.tc-map-toll-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.tc-map-legend-marker{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 5px rgba(13,34,50,.18);color:#fff;font-size:.58rem;font-weight:950;line-height:1}
.tc-map-legend-marker.is-normal{background:#1476d4}
.tc-map-legend-marker.is-new{background:var(--tc-green)}
.tc-map-legend-marker.is-avoided{background:var(--tc-accent)}

@media(max-width:760px){
  .tc-search-card:before{top:12px!important;bottom:12px!important;width:3px!important}
  .tc-vehicle-profiles{grid-template-columns:minmax(0,1fr) auto auto!important}
  .tc-cost-breakdown{font-size:.78rem!important;gap:11px!important}
  .tc-cost-breakdown b{font-size:.9rem!important}
  .tc-map-toll-legend{font-size:.62rem;gap:6px 10px}
  .tc-map-legend-marker{width:19px;height:19px}
}
@media(max-width:520px){
  .tc-vehicle-profiles{grid-template-columns:1fr 1fr!important}
  .tc-vehicle-profiles select{grid-column:1/-1!important}
  .tc-vehicle-profiles .tc-mini-btn{width:100%}
}
/* v0.7.17 final accent-rail correction: use the card border itself, so the orange
   line follows the rounded frame and can never protrude outside it. */
.tc-search-card{border-left:4px solid var(--tc-accent)!important}
.tc-search-card:before{display:none!important}
@media(max-width:760px){.tc-search-card{border-left-width:3px!important}}
/* v0.7.20 official fuel selector */
.tc-field-fuel-type{width:154px}.tc-field-fuel-type select{height:38px;border-radius:9px;padding:0 10px;width:100%;border:1px solid var(--tc-line);background:#fff;color:var(--tc-ink)}
@media(max-width:760px){.tc-field-fuel-type{width:calc(50% - 4px)}}
@media(max-width:560px){.tc-field-fuel-type{width:100%}}


/* v0.7.23 regional fuel breakdown */
.tc-fuel-card{margin-top:16px;background:var(--tc-surface);border:1px solid var(--tc-line);border-radius:var(--tc-radius);box-shadow:var(--tc-shadow);overflow:hidden}
.tc-fuel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 18px;border-bottom:1px solid var(--tc-line)}
.tc-fuel-head>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.tc-fuel-head strong{color:var(--tc-navy);font-size:.9rem}.tc-fuel-head span{color:var(--tc-green);font-size:.75rem;font-weight:900}.tc-fuel-head small{color:var(--tc-muted);font-size:.65rem;text-align:right}
.tc-fuel-region-list{padding:4px 18px 12px}.tc-fuel-region-row{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(4,minmax(90px,.7fr));align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f2}.tc-fuel-region-row:last-child{border-bottom:0}
.tc-fuel-region-row>strong{font-size:.76rem;color:var(--tc-text)}.tc-fuel-region-row>span{display:flex;flex-direction:column;gap:2px;font-size:.72rem;color:var(--tc-navy);font-weight:850}.tc-fuel-region-row>span b{font-size:.56rem;text-transform:uppercase;letter-spacing:.04em;color:var(--tc-muted)}
.tc-fuel-region-row.is-fallback,.tc-fuel-region-row.is-foreign{background:#fffaf4;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}.tc-fuel-region-note{grid-column:span 2;color:#8a5a1f!important;font-weight:700!important}
@media(max-width:760px){.tc-fuel-head{align-items:flex-start;flex-direction:column;gap:5px}.tc-fuel-head small{text-align:left}.tc-fuel-region-row{grid-template-columns:1fr 1fr;gap:7px 12px}.tc-fuel-region-row>strong{grid-column:1/-1}.tc-fuel-region-note{grid-column:1/-1!important}}
/* v0.7.24 compact regional fuel breakdown */
.tc-fuel-head-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.tc-fuel-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfe0ee;background:#fff;color:var(--tc-navy);border-radius:8px;padding:7px 10px;font-size:.68rem;font-weight:850;white-space:nowrap;cursor:pointer}
.tc-fuel-toggle:hover{border-color:var(--tc-accent);color:var(--tc-accent)}
.tc-fuel-toggle-icon{font-size:.9rem;line-height:1;transition:transform .18s ease}.tc-fuel-toggle[aria-expanded="true"] .tc-fuel-toggle-icon{transform:rotate(180deg)}
.tc-fuel-region-list[hidden]{display:none!important}
@media(max-width:760px){.tc-fuel-head-tools{width:100%;justify-content:space-between;align-items:center}.tc-fuel-toggle{margin-left:auto}.tc-fuel-head small{max-width:65%}}

