* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
    background: #f4f6f8;
    color: #1f2937;
}

a {
    color: #0f766e;
}

.topbar,
.admin-nav {
    display: flex;
    gap: 18px;
    align-items: center;
    padding: 14px 22px;
    background: #111827;
    color: white;
}

.topbar a,
.admin-nav a {
    color: white;
    text-decoration: none;
}

.admin-nav span {
    flex: 1;
}

.container {
    max-width: 1200px;
    margin: 30px auto;
    padding: 0 18px;
}

.public-layout {
    display: grid;
    grid-template-columns: 1fr 390px;
    min-height: calc(100vh - 50px);
}

#region-map {
    min-height: calc(100vh - 50px);
}

.side-panel {
    background: white;
    border-left: 1px solid #e5e7eb;
    padding: 22px;
    overflow-y: auto;
    max-height: calc(100vh - 50px);
}

.side-panel h2 {
    margin-top: 0;
}

.company-list {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.company-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 15px;
    background: #fff;
}

.company-card h3 {
    margin: 0 0 6px;
}

.company-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
    font-size: 14px;
}

.muted,
.empty,
.hint {
    color: #6b7280;
}

.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
}

.login-box {
    width: 360px;
    background: white;
    padding: 28px;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

label {
    display: block;
    margin: 14px 0 6px;
    font-weight: bold;
}

input,
textarea,
select {
    width: 100%;
    padding: 11px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    font-size: 15px;
    background: white;
}

input[type="color"] {
    height: 46px;
    padding: 4px;
}

textarea {
    min-height: 110px;
}

button,
.button {
    display: inline-block;
    border: 0;
    background: #0f766e;
    color: white;
    padding: 11px 16px;
    border-radius: 10px;
    text-decoration: none;
    cursor: pointer;
    font-size: 15px;
    margin-top: 12px;
}

.secondary {
    background: #6b7280;
}

.alert {
    background: #fee2e2;
    color: #991b1b;
    padding: 12px;
    border-radius: 10px;
    margin-bottom: 14px;
}

.cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.card {
    background: white;
    padding: 24px;
    border-radius: 16px;
    box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.card span {
    display: block;
    color: #6b7280;
}

.card strong {
    font-size: 38px;
}

.headline {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.filter {
    background: white;
    padding: 16px;
    margin-bottom: 18px;
    border-radius: 14px;
}

table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 12px;
    overflow: hidden;
}

th,
td {
    padding: 13px;
    border-bottom: 1px solid #e5e7eb;
    text-align: left;
    vertical-align: top;
}

th {
    background: #f9fafb;
}

.form {
    background: white;
    padding: 22px;
    border-radius: 16px;
    box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.checkbox {
    display: flex;
    gap: 10px;
    align-items: center;
}

.checkbox input {
    width: auto;
}

.color-dot {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 99px;
    margin-right: 8px;
    vertical-align: middle;
    border: 1px solid #d1d5db;
}

@media (max-width: 900px) {
    .public-layout {
        grid-template-columns: 1fr;
    }

    #region-map {
        min-height: 520px;
    }

    .side-panel {
        max-height: none;
        border-left: 0;
        border-top: 1px solid #e5e7eb;
    }
}

@media (max-width: 700px) {
    .cards,
    .grid {
        grid-template-columns: 1fr;
    }

    .admin-nav {
        flex-wrap: wrap;
    }

    table {
        font-size: 13px;
    }
}


.svg-map-wrap {
    padding: 28px;
    background: #f8fafc;
}

.svg-map-wrap h1 {
    margin-top: 0;
}

#cz-svg-map {
    width: 100%;
    max-width: 980px;
    height: auto;
    display: block;
    margin: 0 auto;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.svg-region {
    cursor: pointer;
    outline: none;
}

.svg-region path {
    stroke: #111827;
    stroke-width: 2;
    transition: .15s ease;
}

.svg-region text {
    pointer-events: none;
    text-anchor: middle;
    font-size: 15px;
    font-weight: 700;
    fill: #111827;
}

.svg-region .svg-count {
    font-size: 12px;
    font-weight: 400;
    fill: #374151;
}

.svg-region:hover path,
.svg-region.active path,
.svg-region:focus path {
    filter: brightness(1.12);
    stroke-width: 4;
}

@media (max-width: 900px) {
    .svg-map-wrap {
        padding: 16px;
    }

    .svg-region text {
        font-size: 13px;
    }

    .svg-region .svg-count {
        font-size: 11px;
    }
}


/* Lepší vzhled SVG mapy ČR */
.svg-map-wrap {
    padding: 30px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

#cz-svg-map {
    width: 100%;
    max-width: 1050px;
    min-height: 520px;
    display: block;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid #dbe3ea;
    border-radius: 24px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .10);
}

.map-country {
    transform-origin: center;
}

.svg-region {
    cursor: pointer;
    outline: none;
}

.svg-region path {
    stroke: #ffffff;
    stroke-width: 4;
    stroke-linejoin: round;
    stroke-linecap: round;
    transition: .18s ease;
}

.svg-region text {
    pointer-events: none;
    text-anchor: middle;
    font-size: 15px;
    font-weight: 800;
    fill: #0f172a;
    paint-order: stroke;
    stroke: rgba(255,255,255,.85);
    stroke-width: 4px;
    stroke-linejoin: round;
}

.svg-region .svg-count {
    font-size: 12px;
    font-weight: 700;
    fill: #334155;
}

.svg-region:hover path,
.svg-region.active path,
.svg-region:focus path {
    filter: brightness(1.08) saturate(1.15);
    stroke: #111827;
    stroke-width: 5;
}

.svg-region.active text {
    fill: #000000;
}

@media (max-width: 900px) {
    #cz-svg-map {
        min-height: 430px;
    }

    .svg-region text {
        font-size: 12px;
        stroke-width: 3px;
    }

    .svg-region .svg-count {
        font-size: 10px;
    }
}

@media (max-width: 600px) {
    .svg-map-wrap {
        padding: 12px;
    }

    #cz-svg-map {
        min-height: 360px;
        border-radius: 16px;
    }
}


/* Styl podobný partnerské stránce: mapa + seznam firem */
.partner-page {
    background: #f7f7f7;
}

.partner-header {
    background: #ffffff;
    border-bottom: 1px solid #e5e7eb;
}

.partner-header-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.partner-header nav {
    display: flex;
    gap: 18px;
}

.partner-header a {
    color: #111827;
    text-decoration: none;
    font-weight: 700;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-logo {
    width: 58px;
    height: 38px;
    border-radius: 8px;
    background: #f58220;
    color: #111827;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.brand span {
    display: block;
    color: #6b7280;
    font-size: 13px;
}

.hero {
    background: linear-gradient(135deg, #111827 0%, #273244 100%);
    color: #ffffff;
    padding: 48px 0;
}

.hero h1 {
    font-size: clamp(32px, 4vw, 52px);
    margin: 0 0 10px;
}

.hero h2 {
    font-size: clamp(20px, 2.4vw, 30px);
    font-weight: 500;
    margin: 0;
    color: #f3f4f6;
}

.eyebrow {
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: 13px;
    font-weight: 900;
    color: #f58220;
}

.partner-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 34px;
    margin-bottom: 50px;
}

.map-card,
.company-section {
    background: #ffffff;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
    padding: 24px;
}

.map-title-row {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 24px;
    align-items: end;
    margin-bottom: 18px;
}

.map-title-row h2,
.company-section-head h2 {
    margin: 0 0 6px;
    font-size: 30px;
}

.map-title-row p,
.company-section-head p {
    margin: 0;
    color: #6b7280;
}

#cz-svg-map {
    background: #fafafa;
    border: 0;
    box-shadow: none;
    border-radius: 12px;
    min-height: 500px;
}

.svg-region path {
    stroke: #ffffff;
    stroke-width: 5;
}

.svg-region:hover path,
.svg-region.active path,
.svg-region:focus path {
    stroke: #111827;
    stroke-width: 6;
    filter: brightness(1.08);
}

.svg-region.active path {
    fill: #f58220;
}

.ax-company-list {
    display: grid;
    gap: 22px;
}

.ax-company-card {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 22px;
    padding: 22px 0;
    border-bottom: 1px solid #e5e7eb;
}

.ax-company-card:last-child {
    border-bottom: 0;
}

.company-logo-placeholder {
    width: 110px;
    height: 82px;
    border-radius: 12px;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    color: #f58220;
    font-size: 42px;
    font-weight: 900;
    display: grid;
    place-items: center;
}

.company-content h3 {
    margin: 0 0 8px;
    font-size: 22px;
}

.company-content p {
    margin: 6px 0;
}

.contact-lines {
    display: grid;
    gap: 5px;
    margin-top: 10px !important;
}

.contact-lines a {
    color: #f58220;
    font-weight: 700;
}

.empty {
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    border-radius: 14px;
    padding: 20px;
}

@media (max-width: 800px) {
    .partner-header-inner,
    .map-title-row {
        grid-template-columns: 1fr;
        display: grid;
    }

    .partner-header-inner {
        justify-items: start;
    }

    .ax-company-card {
        grid-template-columns: 1fr;
    }

    .company-logo-placeholder {
        width: 100%;
        height: 70px;
    }

    .map-card,
    .company-section {
        padding: 16px;
    }

    #cz-svg-map {
        min-height: 360px;
    }
}


/* Wikimedia SVG mapa ČR */
.wikimap-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 28px;
    align-items: start;
}

.wikimap-image-box {
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 22px;
    text-align: center;
}

.wikimap-image {
    width: 100%;
    max-width: 760px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.map-note {
    color: #6b7280;
    font-size: 14px;
    margin: 14px 0 0;
}

.region-buttons {
    display: grid;
    gap: 9px;
}

.region-button {
    width: 100%;
    border: 1px solid #e5e7eb;
    background: #ffffff;
    color: #111827;
    border-radius: 12px;
    padding: 12px 14px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    cursor: pointer;
    text-align: left;
    font-weight: 700;
    margin: 0;
}

.region-button strong {
    min-width: 34px;
    height: 28px;
    border-radius: 999px;
    background: #f58220;
    color: #111827;
    display: grid;
    place-items: center;
    font-size: 13px;
}

.region-button:hover,
.region-button.active {
    border-color: #f58220;
    background: #fff7ed;
}

@media (max-width: 980px) {
    .wikimap-layout {
        grid-template-columns: 1fr;
    }

    .region-buttons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .region-buttons {
        grid-template-columns: 1fr;
    }

    .wikimap-image-box {
        padding: 10px;
    }
}


/* Klikací překryv nad Wikimedia mapou */
.wikimap-click-wrap {
    position: relative;
    max-width: 850px;
    margin: 0 auto;
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 18px;
    overflow: hidden;
}

.wikimap-click-wrap .wikimap-image {
    width: 100%;
    display: block;
    position: relative;
    z-index: 1;
}

.click-overlay {
    position: absolute;
    inset: 18px;
    width: calc(100% - 36px);
    height: calc(100% - 36px);
    z-index: 2;
    pointer-events: none;
}

.map-hit-region {
    pointer-events: auto;
    cursor: pointer;
    outline: none;
}

.map-hit-region path {
    fill: transparent;
    stroke: transparent;
    stroke-width: 5;
    transition: .18s ease;
}

.map-hit-region:hover path,
.map-hit-region:focus path {
    fill: rgba(245, 130, 32, .35);
    stroke: #f58220;
}

.map-hit-region.active path {
    fill: rgba(245, 130, 32, .62);
    stroke: #111827;
    stroke-width: 6;
}

@media (max-width: 560px) {
    .wikimap-click-wrap {
        padding: 8px;
    }

    .click-overlay {
        inset: 8px;
        width: calc(100% - 16px);
        height: calc(100% - 16px);
    }
}


/* Přesné barvení krajů přes canvas */
.canvas-map-box {
    position: relative;
    max-width: 880px;
    margin: 0 auto;
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 18px;
    overflow: hidden;
}

#cz-map-canvas {
    width: 100%;
    height: auto;
    display: block;
    cursor: pointer;
}

.map-loading {
    position: absolute;
    inset: 18px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.86);
    color: #111827;
    font-weight: 800;
    text-align: center;
}

@media (max-width: 560px) {
    .canvas-map-box {
        padding: 8px;
    }

    .map-loading {
        inset: 8px;
    }
}


/* Přesná vložená SVG mapa od uživatele */
.exact-map-box {
    max-width: 900px;
    margin: 0 auto;
    background: #fafafa;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 20px;
    text-align: center;
    overflow: hidden;
}

.exact-cz-map {
    width: 100%;
    max-width: 820px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.exact-cz-map path[id] {
    cursor: pointer;
    stroke: #ffffff;
    stroke-width: 1.2;
    transition: .18s ease;
    outline: none;
    fill-rule: evenodd;
}

.exact-cz-map path[id]:hover,
.exact-cz-map path[id]:focus {
    filter: brightness(1.08) saturate(1.15);
    stroke: #111827;
    stroke-width: 2.2;
}

.exact-cz-map path[id].active {
    fill: #f58220 !important;
    stroke: #111827;
    stroke-width: 2.6;
    filter: saturate(1.1);
}

@media (max-width: 560px) {
    .exact-map-box {
        padding: 8px;
        border-radius: 12px;
    }
}


/* Úprava: světlejší mapa + firmy vpravo */
.map-company-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 24px;
    align-items: start;
}

.exact-map-box {
    max-width: none;
    margin: 0;
}

.exact-cz-map path[id] {
    stroke: #ffffff !important;
    stroke-width: 1.4 !important;
}

.exact-cz-map path[id]:hover,
.exact-cz-map path[id]:focus {
    stroke: #111827 !important;
    stroke-width: 2.4 !important;
    filter: brightness(1.03) saturate(1.2);
}

.exact-cz-map path[id].active {
    fill: #d71920 !important;
    stroke: #111827 !important;
    stroke-width: 3 !important;
}

.company-side-panel {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 18px;
    max-height: 720px;
    overflow-y: auto;
}

.company-side-panel .company-section-head h2 {
    font-size: 24px;
}

.company-side-panel .ax-company-card {
    grid-template-columns: 70px 1fr;
    gap: 14px;
    padding: 16px 0;
}

.company-side-panel .company-logo-placeholder {
    width: 58px;
    height: 58px;
    font-size: 28px;
}

.company-side-panel .company-content h3 {
    font-size: 18px;
}

.company-side-panel .company-content p {
    font-size: 14px;
}

@media (max-width: 980px) {
    .map-company-layout {
        grid-template-columns: 1fr;
    }

    .company-side-panel {
        max-height: none;
    }
}

@media (max-width: 560px) {
    .company-side-panel .ax-company-card {
        grid-template-columns: 1fr;
    }

    .company-side-panel .company-logo-placeholder {
        width: 100%;
        height: 56px;
    }
}


/* Logo firmy + registrační tlačítko */
.register-company-btn {
    display: inline-block;
    margin-top: 14px;
    background: #d71920;
    color: #ffffff !important;
    text-decoration: none;
    padding: 11px 16px;
    border-radius: 8px;
    font-weight: 800;
}

.register-company-btn:hover {
    background: #b31318;
}

.company-logo-image {
    width: 58px;
    height: 58px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #ffffff;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.company-logo-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.current-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px 0 10px;
    padding: 10px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.current-logo img {
    max-width: 120px;
    max-height: 70px;
    object-fit: contain;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    padding: 6px;
}

.admin-logo-thumb {
    width: 42px;
    height: 42px;
    object-fit: contain;
    vertical-align: middle;
    margin-right: 10px;
    background: #fff;
    border: 1px solid #e5e7eb;
    padding: 3px;
}


/* Úpravy IDCT Network logo + registrace vedle výběru kraje */
.brand-logo-only {
    display: flex;
    align-items: center;
}

.brand-logo-only img {
    max-width: 210px;
    max-height: 62px;
    display: block;
}

.map-actions {
    display: grid;
    gap: 10px;
    align-items: stretch;
}

.map-actions .register-company-btn {
    margin-top: 0;
    text-align: center;
    border-radius: 8px;
}

@media (min-width: 981px) {
    .map-actions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .brand-logo-only img {
        max-width: 170px;
    }
}


/* Registrace v horním menu */
.partner-header nav {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.top-register-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #d71920;
    color: #ffffff !important;
    text-decoration: none;
    padding: 10px 14px;
    border-radius: 8px;
    font-weight: 800;
    transition: .18s ease;
}

.top-register-link:hover {
    background: #b31318;
    transform: translateY(-1px);
}


/* Oprava responzivity pro mobilní telefony */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.container {
    width: 100%;
    max-width: 1240px;
}

.partner-header-inner {
    width: 100%;
}

.exact-map-box {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.exact-cz-map {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

.map-company-layout {
    width: 100%;
}

.company-side-panel {
    min-width: 0;
}

@media (max-width: 900px) {
    .partner-header-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 14px;
    }

    .partner-header nav {
        width: 100%;
        justify-content: center;
    }

    .brand-logo-only img {
        max-width: 190px;
        height: auto;
    }

    .hero {
        padding: 32px 0;
    }

    .hero h1 {
        font-size: 30px;
        line-height: 1.15;
    }

    .hero h2 {
        font-size: 20px;
        line-height: 1.3;
    }

    .map-title-row {
        grid-template-columns: 1fr !important;
        gap: 16px;
    }

    .map-actions {
        width: 100%;
    }

    #region-select {
        width: 100%;
    }

    .map-company-layout {
        grid-template-columns: 1fr !important;
        gap: 18px;
    }

    .exact-map-box {
        padding: 10px;
        border-radius: 12px;
    }

    .company-side-panel {
        max-height: none;
        width: 100%;
    }
}

@media (max-width: 600px) {
    .container {
        padding-left: 10px;
        padding-right: 10px;
    }

    .map-card {
        padding: 12px !important;
        border-radius: 12px;
    }

    .exact-map-box {
        padding: 6px;
    }

    .exact-cz-map {
        display: block;
        transform: none;
    }

    .top-register-link {
        width: 100%;
        padding: 11px 12px;
    }

    .partner-header nav a {
        width: 100%;
        text-align: center;
    }

    .company-side-panel {
        padding: 12px;
        border-radius: 12px;
    }

    .company-side-panel .ax-company-card {
        grid-template-columns: 1fr !important;
    }

    .company-logo-placeholder,
    .company-logo-image {
        width: 100% !important;
        height: 58px !important;
    }

    .company-logo-image img {
        max-height: 52px;
    }

    .company-content h3 {
        font-size: 18px;
    }

    .contact-lines {
        word-break: break-word;
    }
}

@media (max-width: 420px) {
    .hero h1 {
        font-size: 26px;
    }

    .hero h2 {
        font-size: 18px;
    }

    .map-title-row h2,
    .company-section-head h2 {
        font-size: 22px !important;
    }

    .exact-map-box {
        margin-left: -4px;
        margin-right: -4px;
    }
}


/* Administrace: firma ve více krajích */
.region-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
    padding: 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #f8fafc;
}

.region-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 600;
}

.region-checkbox input {
    width: auto;
}

@media (max-width: 700px) {
    .region-checkbox-grid {
        grid-template-columns: 1fr;
    }
}

/* Veřejná registrace - boční panel */
.registration-overlay[hidden]{display:none!important}.registration-overlay{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.55);display:flex;justify-content:flex-end}.registration-drawer{width:min(100%,560px);height:100%;overflow-y:auto;background:#fff;padding:26px;box-shadow:-12px 0 40px #0002;color:#172033}.registration-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.registration-heading h2{margin:0 0 7px}.registration-heading p{margin:0;color:#64748b}.registration-close{border:0;background:#f1f5f9;border-radius:8px;font-size:28px;cursor:pointer;padding:0 12px}.registration-drawer form>label,.registration-grid label{display:block;font-weight:650;margin:12px 0}.registration-drawer input:not([type=checkbox]),.registration-drawer textarea{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:8px;margin-top:6px;font:inherit}.registration-drawer fieldset{border:1px solid #cbd5e1;border-radius:10px;padding:12px}.registration-drawer legend{font-weight:700}.registration-regions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.registration-regions label{font-size:13px;display:flex;align-items:center;gap:7px}.registration-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.registration-consent{display:flex!important;gap:10px;align-items:flex-start;font-size:13px}.registration-submit{border:0;border-radius:9px;background:#d10920;color:white;font-weight:700;padding:14px 18px;width:100%;cursor:pointer}.registration-submit:disabled{opacity:.5}.registration-message{min-height:20px}.registration-error{color:#b91c1c}.registration-success{color:#166534}.registration-trap{position:absolute;left:-9999px}.registration-open{overflow:hidden}@media(max-width:550px){.registration-drawer{padding:16px}.registration-regions,.registration-grid{grid-template-columns:1fr}}

/* IDCT: responsive slide-out registration */
#registration-overlay[hidden]{display:none!important}
#registration-overlay{position:fixed!important;inset:0!important;z-index:99999!important;background:#101b2b99!important;display:flex!important;justify-content:flex-end!important;align-items:stretch!important}
#registration-overlay .registration-drawer{display:flex!important;flex-direction:column!important;width:min(100%,620px)!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;padding:0!important;background:#fff!important;color:#1c293b!important;box-shadow:-15px 0 50px #0003!important;box-sizing:border-box!important}
#registration-overlay .registration-heading{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:15px!important;margin:0!important;padding:25px 28px!important;border-bottom:1px solid #e7ebf0!important}
#registration-overlay .registration-eyebrow{display:block;color:#d10920;font-size:10px;font-weight:800;letter-spacing:1.4px;margin-bottom:9px}
#registration-overlay .registration-heading h2{margin:0 0 8px!important;font-size:25px!important}
#registration-overlay .registration-heading p{margin:0!important;color:#6a7687!important;font-size:13px!important}
#registration-overlay .registration-close{border:0!important;background:#f1f3f6!important;border-radius:9px!important;width:36px!important;height:36px!important;font-size:25px!important;cursor:pointer}
#registration-overlay #registration-form{display:flex!important;flex-direction:column!important;flex:1!important;min-height:0!important;margin:0!important;overflow:hidden!important}
#registration-overlay .registration-body{overflow-y:auto!important;flex:1!important;min-height:0!important;padding:8px 28px 22px!important}
#registration-overlay .registration-section{padding:20px 0!important;border-bottom:1px solid #e8edf2!important}
#registration-overlay .registration-section-title{display:flex!important;align-items:center!important;gap:12px!important;margin-bottom:17px!important}
#registration-overlay .registration-section-title>b{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#fff0f2;color:#c70e26;font-size:12px}
#registration-overlay .registration-section-title h3{font-size:16px!important;margin:0 0 3px!important}
#registration-overlay .registration-section-title p{font-size:12px!important;color:#788497!important;margin:0!important}
#registration-overlay .registration-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
#registration-overlay .registration-grid label,#registration-overlay .registration-description{display:block!important;min-width:0!important;font-size:12px!important;font-weight:700!important;margin:0!important}
#registration-overlay .registration-grid .registration-full{grid-column:1/-1!important}
#registration-overlay em{font-style:normal;color:#d10920}
#registration-overlay .registration-grid input:not([type=checkbox]),#registration-overlay textarea{box-sizing:border-box!important;display:block!important;width:100%!important;min-width:0!important;height:44px!important;padding:11px!important;margin:7px 0 0!important;background:white!important;border:1px solid #d7dfe8!important;border-radius:9px!important;font-size:13px!important;font-weight:400!important}
#registration-overlay textarea{height:90px!important;resize:vertical!important}
#registration-overlay .registration-region-fieldset{min-width:0!important;border:1px solid #e4e9ef!important;border-radius:11px!important;background:#fafbfc!important;padding:12px!important}
#registration-overlay .registration-region-tools{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px;font-size:12px;color:#6c7889}
#registration-overlay .registration-region-tools button{border:0;background:none;color:#d10920;font-weight:700;cursor:pointer}
#registration-overlay .registration-regions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
#registration-overlay .registration-regions label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;margin:0!important;padding:10px!important;background:white!important;border:1px solid #e5eaf0!important;border-radius:8px!important;font-size:12px!important;font-weight:600!important;line-height:1.3!important;cursor:pointer!important}
#registration-overlay .registration-regions label:has(input:checked){background:#fff1f3!important;border-color:#e7a1ac!important}
#registration-overlay input[type=checkbox]{appearance:auto!important;display:inline-block!important;flex:0 0 15px!important;width:15px!important;height:15px!important;margin:0!important;padding:0!important;accent-color:#d10920!important}
#registration-overlay .registration-footer{padding:16px 28px 19px!important;border-top:1px solid #e8edf2!important;background:#fff!important}
#registration-overlay .registration-consent{display:flex!important;align-items:flex-start!important;gap:9px!important;font-size:11px!important;font-weight:400!important;line-height:1.5!important;color:#617085!important;margin:0!important}
#registration-overlay .registration-footer-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
#registration-overlay .registration-footer-row small{font-size:11px;color:#8b95a4}
#registration-overlay .registration-submit{width:auto!important;background:#d10920!important;color:white!important;border:0!important;border-radius:9px!important;padding:13px 19px!important;font-weight:700!important;cursor:pointer!important}
#registration-overlay .registration-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:620px){#registration-overlay .registration-heading{padding:18px!important}#registration-overlay .registration-heading h2{font-size:21px!important}#registration-overlay .registration-body{padding:7px 18px 18px!important}#registration-overlay .registration-footer{padding:13px 18px!important}#registration-overlay .registration-regions{grid-template-columns:1fr!important}#registration-overlay .registration-footer-row{flex-wrap:wrap}#registration-overlay .registration-submit{width:100%!important}}

/* Modal registration matching IDCT configurator reference */
#registration-overlay{align-items:center!important;justify-content:center!important;padding:22px!important;box-sizing:border-box!important;backdrop-filter:blur(6px)!important;background:rgba(10,18,27,.64)!important}
#registration-overlay .registration-drawer{width:min(100%,660px)!important;height:auto!important;max-height:min(92dvh,880px)!important;border-radius:22px!important;box-shadow:0 24px 85px #0005!important}
#registration-overlay .registration-heading{text-align:center!important;justify-content:center!important;position:relative!important;padding:29px 52px 21px!important}
#registration-overlay .registration-heading h2{font-size:27px!important}
#registration-overlay .registration-close{position:absolute!important;right:17px!important;top:17px!important}
#registration-overlay .registration-body{padding:0 30px 12px!important}
#registration-overlay .registration-section{padding:15px 0!important}
#registration-overlay .registration-section-title{margin-bottom:12px!important}
#registration-overlay .registration-footer{padding:13px 30px 19px!important}
#registration-overlay .registration-region-fieldset{border:0!important;background:transparent!important;padding:0!important}
#registration-overlay .registration-region-toggle{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;padding:13px 15px!important;border:1px solid #d7dfe8!important;border-radius:10px!important;background:#fff!important;color:#263449!important;font-size:13px!important;font-weight:600!important;text-align:left!important;cursor:pointer!important}
#registration-overlay .registration-region-toggle[aria-expanded=true]{border-color:#d10920!important}
#registration-overlay .registration-region-panel{margin-top:8px!important;padding:13px!important;border:1px solid #e4e9ef!important;border-radius:10px!important;background:#fafbfc!important}
#registration-overlay .registration-region-panel[hidden]{display:none!important}
#registration-overlay .registration-regions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:620px){#registration-overlay{padding:10px!important}#registration-overlay .registration-drawer{max-height:96dvh!important;border-radius:16px!important}#registration-overlay .registration-heading{padding:22px 46px 16px!important}#registration-overlay .registration-body{padding:0 17px 12px!important}#registration-overlay .registration-footer{padding:12px 17px!important}#registration-overlay .registration-regions{grid-template-columns:1fr!important}}

/* IDCT logo orange: registrace a zavírací křížek */
a.top-register-link, a.top-register-link:visited {background:#f58220!important;color:#fff!important;}
a.top-register-link:hover, a.top-register-link:focus-visible {background:#dc6b0c!important;color:#fff!important;}
#registration-overlay .registration-close {background:#f58220!important;color:#fff!important;border-color:#f58220!important;}
#registration-overlay .registration-close:hover, #registration-overlay .registration-close:focus-visible {background:#dc6b0c!important;color:#fff!important;}

/* Sjednocení všech akcentů registračního modalu s oranžovou barvou loga */
#registration-overlay .registration-eyebrow{color:#f58220!important}
#registration-overlay .registration-section-title>b{background:#fff2e7!important;color:#f58220!important}
#registration-overlay em{color:#f58220!important}
#registration-overlay .registration-submit{background:#f58220!important;color:#fff!important}
#registration-overlay .registration-submit:hover,#registration-overlay .registration-submit:focus-visible{background:#dc6b0c!important}
#registration-overlay .registration-region-tools button{color:#f58220!important}
#registration-overlay .registration-region-toggle[aria-expanded=true]{border-color:#f58220!important}
#registration-overlay .registration-regions label:has(input:checked){background:#fff5ec!important;border-color:#f5b37b!important;color:#a94f00!important}
#registration-overlay input[type=checkbox]{accent-color:#f58220!important}
#registration-overlay .registration-grid input:focus,#registration-overlay textarea:focus{outline:2px solid #f5822040!important;border-color:#f58220!important}
#registration-overlay .registration-drawer:focus{outline:none!important}
#registration-overlay .registration-close{background:#f58220!important;color:white!important}

/* CZ/SK country switch and responsive SVG */
.country-switch{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.country-choice{border:1px solid #e2e8f0;background:#fff;color:#263449;padding:10px 15px;border-radius:9px;cursor:pointer;font-weight:700}
.country-choice.active{background:#f58220;color:#fff;border-color:#f58220}
#exact-cz-map,#exact-sk-map{max-width:100%;width:100%;height:auto;display:block;touch-action:manipulation}
#exact-cz-map path.exact-region,#exact-sk-map path.exact-region{cursor:pointer;stroke:#fff;stroke-width:1;transition:filter .12s}
#exact-cz-map path.exact-region:hover,#exact-sk-map path.exact-region:hover{filter:brightness(.92)}
#exact-cz-map path.exact-region.active,#exact-sk-map path.exact-region.active{fill:#f58220!important;stroke:#1c293b;stroke-width:2}
@media(max-width:650px){.country-choice{flex:1 1 140px;font-size:12px}}
