.cp-route-planner{display:grid;gap:24px}.cp-route-head{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cp-route-head label,.cp-route-search-label{display:grid;gap:7px;font-weight:600}.cp-route-head input,.cp-route-head textarea,.cp-route-search,.cp-route-stop textarea{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px;font:inherit}.cp-route-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(340px,1.2fr);gap:24px}.cp-route-places,.cp-route-stops-section,.cp-route-result{border:1px solid #e4e7ec;border-radius:16px;padding:18px;background:#fff}.cp-route-places h2,.cp-route-stops-section h2,.cp-route-result h2{margin-top:0}.cp-route-place-list{display:grid;gap:8px;max-height:560px;overflow:auto;margin-top:12px}.cp-route-place{display:flex;align-items:center;gap:10px;border:1px solid #e4e7ec;border-radius:12px;padding:8px;cursor:pointer}.cp-route-place:has(input:checked){border-color:#2271b1;background:#f0f7fc}.cp-route-place img{width:52px;height:52px;object-fit:cover;border-radius:8px}.cp-route-place span{display:grid;min-width:0}.cp-route-place small{color:#667085}.cp-route-stops{display:grid;gap:10px}.cp-route-stop{border:1px solid #dfe3e8;border-radius:12px;padding:12px}.cp-route-stop-top{display:flex;align-items:center;gap:8px}.cp-route-stop-number,.cp-route-number{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#2271b1;color:#fff;font-weight:700;flex:0 0 auto}.cp-route-stop-buttons{margin-left:auto;display:flex;gap:5px}.cp-route-stop-buttons button{border:1px solid #d0d5dd;background:#fff;border-radius:7px;min-width:30px;height:30px;cursor:pointer}.cp-route-stop small{display:block;color:#667085;margin:4px 0 8px 36px}.cp-route-roundtrip{display:block;margin:15px 0}.cp-route-actions{display:flex;gap:10px;flex-wrap:wrap}.cp-route-actions button{border:0;border-radius:10px;padding:11px 18px;cursor:pointer;font-weight:700}.cp-route-calculate{background:#eef2f6}.cp-route-save{background:#2271b1;color:#fff}.cp-route-message{min-height:24px;padding:8px 12px;border-radius:8px;background:#edf7ed}.cp-route-message:empty{display:none}.cp-route-message.is-error{background:#fff1f0;color:#b42318}.cp-route-summary{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.cp-route-summary span{padding:10px 14px;border-radius:10px;background:#f5f7fa}.cp-route-map,.cp-public-route-map{height:520px;border-radius:14px;overflow:hidden}.cp-route-legs{display:grid;gap:8px;margin-top:14px}.cp-route-legs>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #e4e7ec;padding:9px 0}.cp-public-route{display:grid;gap:20px;margin-top:25px}.cp-public-route-stops{list-style:none;padding:0;margin:0;display:grid;gap:12px}.cp-public-route-stops li{display:flex;align-items:flex-start;gap:12px;border:1px solid #e4e7ec;border-radius:14px;padding:14px}.cp-public-route-stops h3{margin:0 0 4px}.cp-route-address{margin:0;color:#667085}.cp-route-comment{margin-top:8px;padding:10px;background:#f5f7fa;border-radius:8px}.cp-route-drive{margin-left:auto;white-space:nowrap}.cp-share-route{display:flex;gap:10px;align-items:center}.cp-share-route input{flex:1;min-width:0;padding:9px;border:1px solid #d0d5dd;border-radius:8px}.cp-my-routes{display:grid;gap:10px}.cp-my-route{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #e4e7ec;border-radius:12px;padding:13px}.cp-my-route>div{display:grid;gap:4px}.cp-my-route>div:last-child{display:flex;gap:8px}.cp-route-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.cp-route-cards article{border:1px solid #e4e7ec;border-radius:14px;padding:16px}.cp-route-help{color:#667085}
@media(max-width:800px){.cp-route-head,.cp-route-layout{grid-template-columns:1fr}.cp-route-map,.cp-public-route-map{height:420px}.cp-route-cards{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.cp-route-cards{grid-template-columns:1fr}.cp-route-legs>div,.cp-my-route,.cp-public-route-stops li,.cp-share-route{align-items:stretch;flex-direction:column}.cp-route-drive{margin-left:40px}.cp-route-map,.cp-public-route-map{height:340px}}

.cp-route-start-section{border:1px solid #e4e7ec;border-radius:16px;padding:18px;background:#fff}.cp-route-start-section h2{margin-top:0}.cp-route-start-modes{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:14px}.cp-route-custom-start{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(340px,1.2fr);gap:18px}.cp-route-custom-start[hidden]{display:none}.cp-route-start-fields{display:grid;gap:12px;align-content:start}.cp-route-start-fields label{display:grid;gap:7px;font-weight:600}.cp-route-start-fields input,.cp-route-start-fields textarea{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px;font:inherit}.cp-start-search-row{display:flex;gap:8px}.cp-start-search-row input{flex:1;min-width:0}.cp-start-search-row button{border:0;border-radius:10px;padding:10px 16px;background:#2271b1;color:#fff;font-weight:700;cursor:pointer}.cp-start-results{display:grid;gap:6px;padding:8px;border:1px solid #e4e7ec;border-radius:10px;background:#fff}.cp-start-results button{text-align:left;border:0;background:#f5f7fa;border-radius:8px;padding:9px;cursor:pointer}.cp-start-map{height:330px;border-radius:14px;overflow:hidden}.cp-public-route-stops li.is-custom-start{border-width:2px}.cp-public-route-stops h3 small{font-size:.72em;font-weight:400;color:#667085}
@media(max-width:800px){.cp-route-custom-start{grid-template-columns:1fr}.cp-start-map{height:300px}}
@media(max-width:520px){.cp-start-search-row{flex-direction:column}.cp-route-start-modes{display:grid;gap:9px}}

.cp-route-guest-box{border:1px solid #c7d7e6;border-radius:16px;padding:16px 18px;background:#f3f8fc}.cp-route-guest-box strong{display:block;margin-bottom:5px}.cp-route-guest-box p{margin:0;color:#475467}.cp-route-guest-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.cp-route-guest-actions a{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 16px;font-weight:700;text-decoration:none}.cp-route-login-button{background:#2271b1;color:#fff}.cp-route-register-button{border:1px solid #2271b1;color:#2271b1;background:#fff}.cp-route-login-button:hover{color:#fff}.cp-route-save.is-guest-save{background:#2271b1;color:#fff}

/* Trasa Własna */
.cp-custom-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:24px;align-items:start;margin-top:20px}.cp-custom-builder,.cp-custom-map-section{background:#fff;border:1px solid #e1e5ea;border-radius:14px;padding:18px}.cp-custom-map,.cp-custom-result-map{height:480px;border-radius:12px;overflow:hidden;background:#eef1f4}.cp-custom-result-map{height:520px;margin-top:16px}.cp-custom-points{display:grid;gap:12px}.cp-custom-point{border:2px solid #e2e6eb;border-radius:12px;padding:14px;cursor:pointer;background:#fff}.cp-custom-point.is-active{border-color:#2271b1;background:#f4f9fd}.cp-custom-point-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cp-custom-point-head>span{font-weight:700;font-size:13px;letter-spacing:.04em}.cp-custom-point-head button{border:1px solid #ccd2d8;background:#fff;border-radius:7px;min-width:32px;height:32px;cursor:pointer}.cp-custom-point label{display:block;margin:8px 0;font-weight:600}.cp-custom-point input,.cp-custom-point textarea{display:block;width:100%;box-sizing:border-box;margin-top:5px}.cp-custom-coords{font-size:13px;color:#59636e;margin-top:8px}.cp-custom-search-results{display:grid;gap:5px;margin:8px 0}.cp-custom-search-results button{text-align:left;border:1px solid #d7dce1;background:#fff;border-radius:8px;padding:8px;cursor:pointer}.cp-custom-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:14px}.cp-add-via{border:1px solid #2271b1;background:#fff;color:#2271b1;border-radius:9px;padding:10px 14px;font-weight:600;cursor:pointer}.cp-custom-marker{background:transparent;border:0}.cp-custom-marker span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#2271b1;color:#fff;border:3px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.3);font-weight:700}.cp-custom-marker span::first-line{transform:rotate(45deg)}.cp-route-type-badge{display:inline-block;background:#2271b1;color:#fff;border-radius:999px;padding:6px 11px;font-weight:700;margin-bottom:12px}
@media(max-width:900px){.cp-custom-layout{grid-template-columns:1fr}.cp-custom-map,.cp-custom-result-map{height:390px}}@media(max-width:520px){.cp-custom-actions{align-items:stretch;flex-direction:column}.cp-custom-map,.cp-custom-result-map{height:330px}}

/* Trasa Własna 1.5.1 — przebudowany, czytelny interfejs */
.cp-custom-route-planner{display:grid;gap:22px;--cp-blue:#2271b1;--cp-green:#16803c;--cp-orange:#d97706;--cp-border:#dde3e9;--cp-muted:#667085;--cp-soft:#f7f9fb}
.cp-custom-hero{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;padding:24px;border:1px solid var(--cp-border);border-radius:18px;background:linear-gradient(135deg,#f3f8fc 0%,#fff 72%)}
.cp-custom-hero h2{font-size:clamp(26px,4vw,38px);line-height:1.1;margin:4px 0 8px}.cp-custom-hero p{margin:0;max-width:680px;color:#475467}.cp-custom-kicker{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--cp-blue)}
.cp-custom-steps{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.cp-custom-steps span{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:999px;background:#fff;border:1px solid var(--cp-border);font-size:13px;white-space:nowrap}.cp-custom-steps b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--cp-blue);color:#fff}
.cp-custom-details,.cp-custom-builder,.cp-custom-map-section,.cp-custom-result{border:1px solid var(--cp-border);border-radius:18px;background:#fff;padding:20px}
.cp-custom-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid #edf0f3}.cp-custom-section-heading>span{font-size:18px;font-weight:800}.cp-custom-section-heading small{color:var(--cp-muted);text-align:right}
.cp-custom-layout{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:22px;margin-top:0}.cp-custom-builder,.cp-custom-map-section{padding:20px}.cp-custom-map-section{position:sticky;top:28px}
.cp-custom-map-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.cp-custom-map-head div{display:grid;gap:2px}.cp-custom-map-head small{color:var(--cp-muted)}.cp-custom-map-hint{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eaf3fa;color:var(--cp-blue);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.cp-custom-map{height:560px;border:1px solid #d8dee5;border-radius:14px}.cp-custom-result-map{height:520px;border:1px solid #d8dee5;border-radius:14px}
.cp-custom-points{gap:14px;position:relative}.cp-custom-point{position:relative;border:1px solid var(--cp-border);border-left:5px solid #98a2b3;border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(16,24,40,.04);cursor:default;transition:border-color .15s,box-shadow .15s,background .15s}.cp-custom-point:hover{box-shadow:0 4px 14px rgba(16,24,40,.07)}.cp-custom-point.is-active{border-color:var(--cp-blue);border-left-color:var(--cp-blue);background:#f7fbfe;box-shadow:0 0 0 3px rgba(34,113,177,.1)}.cp-custom-point--start{border-left-color:var(--cp-green)}.cp-custom-point--finish{border-left-color:#b42318}.cp-custom-point--start.is-active{border-left-color:var(--cp-green)}.cp-custom-point--finish.is-active{border-left-color:#b42318}
.cp-custom-point-head{margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #edf0f3}.cp-custom-point-role{display:flex;align-items:center;gap:10px}.cp-custom-point-role>div{display:grid;gap:1px}.cp-custom-point-role strong{font-size:14px;letter-spacing:.04em}.cp-custom-point-role small{color:var(--cp-muted);font-size:12px}.cp-custom-role-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef2f6;color:#344054;font-weight:800}.cp-custom-point--start .cp-custom-role-icon{background:#eaf7ee;color:var(--cp-green)}.cp-custom-point--finish .cp-custom-role-icon{background:#fff0ee;color:#b42318}.cp-custom-point.is-active .cp-custom-role-icon{outline:2px solid rgba(34,113,177,.18)}
.cp-custom-point-tools{display:flex;gap:5px}.cp-custom-point-head button{border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:8px;min-width:32px;height:32px;font-weight:700}.cp-custom-point-head button:hover{background:#f2f4f7}.cp-custom-remove{color:#b42318!important}
.cp-custom-point-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px}.cp-custom-point label{display:grid;gap:6px;margin:0;font-size:13px;font-weight:700;color:#344054}.cp-custom-point label small{font-weight:400;color:var(--cp-muted)}.cp-custom-point input,.cp-custom-point textarea{margin:0;border:1px solid #cfd6dd;border-radius:10px;padding:10px 11px;background:#fff;font:inherit}.cp-custom-point input:focus,.cp-custom-point textarea:focus{border-color:var(--cp-blue);box-shadow:0 0 0 3px rgba(34,113,177,.1);outline:0}.cp-custom-comment-label{margin-top:12px!important}.cp-start-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.cp-custom-search{padding:0 15px!important;white-space:nowrap}.cp-custom-search-results{border:1px solid #dce2e8;border-radius:10px;padding:7px;background:#fff;box-shadow:0 8px 20px rgba(16,24,40,.08)}.cp-custom-search-results button:hover{background:#eef6fc}
.cp-custom-coords{display:flex;align-items:center;gap:7px;margin-top:11px;padding:8px 10px;border-radius:9px;background:#f2f4f7;color:#667085;font-size:12px}.cp-custom-coords span{width:8px;height:8px;border-radius:50%;background:#98a2b3}.cp-custom-coords.is-ready{background:#ecf8ef;color:#166534}.cp-custom-coords.is-ready span{background:#16a34a}
.cp-add-via{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding:13px;border:1px dashed var(--cp-blue);background:#f8fbfe;color:var(--cp-blue);border-radius:12px;font-weight:800}.cp-add-via:hover{background:#eef7fd}.cp-add-via span{font-size:20px;line-height:1}
.cp-custom-roundtrip-row{display:flex!important;align-items:flex-start;gap:10px;margin:14px 0 0!important;padding:13px;border-radius:12px;background:var(--cp-soft);border:1px solid #e4e7ec}.cp-custom-roundtrip-row input{width:auto!important;margin-top:3px!important}.cp-custom-roundtrip-row>span{display:grid;gap:2px}.cp-custom-roundtrip-row small{color:var(--cp-muted);font-weight:400}
.cp-custom-primary-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:16px}.cp-custom-primary-actions button{min-height:48px;font-size:15px}.cp-custom-calculate{background:#eef2f6}.cp-custom-save{background:var(--cp-blue);color:#fff}
.cp-custom-result .cp-route-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cp-custom-result .cp-route-summary span{display:grid;gap:5px;padding:14px 16px;border:1px solid #e4e7ec;background:#f8fafc}.cp-custom-result .cp-route-summary small{color:var(--cp-muted)}.cp-custom-result .cp-route-summary strong{font-size:20px}.cp-custom-legs>div{padding:12px 0}.cp-custom-legs>div span{color:var(--cp-muted);white-space:nowrap}
@media(max-width:1000px){.cp-custom-layout{grid-template-columns:1fr}.cp-custom-map-section{position:static}.cp-custom-map{height:420px}.cp-custom-hero{align-items:flex-start;flex-direction:column}.cp-custom-steps{justify-content:flex-start}}
@media(max-width:700px){.cp-custom-hero,.cp-custom-details,.cp-custom-builder,.cp-custom-map-section,.cp-custom-result{padding:16px}.cp-custom-point-grid,.cp-custom-result .cp-route-summary{grid-template-columns:1fr}.cp-custom-primary-actions{grid-template-columns:1fr}.cp-custom-section-heading{align-items:flex-start;flex-direction:column;gap:4px}.cp-custom-section-heading small{text-align:left}.cp-custom-map,.cp-custom-result-map{height:360px}}
@media(max-width:480px){.cp-custom-steps{display:grid;width:100%;justify-content:stretch}.cp-custom-steps span{white-space:normal}.cp-start-search-row{grid-template-columns:1fr}.cp-custom-search{min-height:42px}.cp-custom-point-head{align-items:flex-start}.cp-custom-point-tools{margin-left:auto}.cp-custom-map,.cp-custom-result-map{height:310px}}

/* Route tools: print and e-mail */
.cp-route-tools{position:relative;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px}
.cp-route-tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #263746;border-radius:9px;background:#263746;color:#fff!important;font:inherit;font-weight:700;cursor:pointer;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}
.cp-route-tool:hover{background:#172530;transform:translateY(-1px);box-shadow:0 5px 12px rgba(15,23,42,.13)}
.cp-route-email-toggle{border-color:#f5b700;background:#f5b700;color:#1b1b1b!important}.cp-route-email-toggle:hover{background:#dda600}
.cp-route-email-panel{position:absolute;z-index:1000;top:calc(100% + 8px);left:0;width:min(430px,calc(100vw - 34px));box-sizing:border-box;padding:18px;border:1px solid #dfe4e8;border-radius:12px;background:#fff;color:#20242a;box-shadow:0 16px 40px rgba(15,23,42,.18)}
.cp-route-email-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.cp-route-email-head strong{font-size:17px}.cp-route-email-close{border:0;background:transparent;color:#505862;font-size:26px;line-height:1;cursor:pointer}
.cp-route-email-panel label{display:grid;gap:6px;margin:0 0 12px;font-weight:700}.cp-route-email-panel label small{font-weight:400;color:#6b7280}.cp-route-email-panel input[type=email],.cp-route-email-panel textarea{box-sizing:border-box;width:100%;padding:10px 11px;border:1px solid #cfd6dd;border-radius:8px;background:#fff;color:#20242a;font:inherit}.cp-route-email-panel input:focus,.cp-route-email-panel textarea:focus{outline:0;border-color:#2271b1;box-shadow:0 0 0 3px rgba(34,113,177,.12)}
.cp-route-email-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.cp-route-email-send{min-height:42px;padding:9px 16px;border:0;border-radius:8px;background:#f5b700;color:#171717;font:inherit;font-weight:800;cursor:pointer}.cp-route-email-send:disabled{opacity:.65;cursor:wait}
.cp-route-email-status{min-height:20px;margin-top:10px;font-size:14px;font-weight:600}.cp-route-email-status.is-success{color:#157347}.cp-route-email-status.is-error{color:#b42318}
.cp-route-print-header{display:none}
@media(max-width:600px){.cp-route-tools{display:grid;grid-template-columns:1fr 1fr}.cp-route-tool{width:100%;padding-inline:10px}.cp-route-email-panel{position:fixed;z-index:999999;top:50%;left:50%;width:calc(100vw - 28px);max-width:430px;transform:translate(-50%,-50%)} }

@media print{
  @page{margin:14mm}
  body *{visibility:hidden!important}
  .cp-public-route.cp-is-printing,.cp-public-route.cp-is-printing *{visibility:visible!important}
  .cp-public-route.cp-is-printing{position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#000!important;box-shadow:none!important;border:0!important}
  .cp-public-route.cp-is-printing .cp-route-tools,.cp-public-route.cp-is-printing .cp-share-route,.cp-public-route.cp-is-printing .cp-route-drive{display:none!important}
  .cp-public-route.cp-is-printing .cp-route-print-header{display:block!important;margin:0 0 16px;padding:0 0 12px;border-bottom:2px solid #222}
  .cp-public-route.cp-is-printing .cp-route-print-header h1{margin:0 0 5px;font-size:25px;color:#000}.cp-public-route.cp-is-printing .cp-route-print-header p{margin:0 0 4px}.cp-public-route.cp-is-printing .cp-route-print-header small{word-break:break-all;color:#555}
  .cp-public-route.cp-is-printing .cp-public-route-map{height:280px!important;border:1px solid #999!important;page-break-inside:avoid}
  .cp-public-route.cp-is-printing .cp-route-summary{page-break-inside:avoid}.cp-public-route.cp-is-printing .cp-public-route-stops li{page-break-inside:avoid;background:#fff!important;color:#000!important;box-shadow:none!important}
  .cp-public-route.cp-is-printing a{color:#000!important;text-decoration:none!important}
}
