/* Truck traffic bans HUB — flat "tbc" design language shared with the
 * per-country pages (pages/truck_drivers_traffic_bans_country.php).
 * Tokens mirror that page 1:1; keep the two files in sync when changing them.
 * Theme = data-theme on <html> (light/dark). */

:root{
    --tbc-border:#e3e8ef; --tbc-card:#f7f9fc; --tbc-chip:#eef1f5; --tbc-face:#ffffff;
    --tbc-status-ban-bg:#fdeaea; --tbc-status-ban-bd:#f3c1c1;
    --tbc-status-ok-bg:#eefaf0;  --tbc-status-ok-bd:#cdead6;
    --tbc-warn-bg:#fff8e6; --tbc-warn-bd:#f0e3bf;
    --tbc-row-alt:#f7f9fc; --tbc-head-border:#e3e8ef; --tbc-cell-border:#eef1f5;
    --tbc-nav-bg:rgba(255,255,255,.94);
    --tbc-accent:#2563eb; --tbc-ban:#dc2626; --tbc-warn-text:#92400e;
}
[data-theme="dark"]{
    --tbc-border:#334155; --tbc-card:#1e293b; --tbc-chip:#293548; --tbc-face:#0f172a;
    --tbc-status-ban-bg:rgba(239,68,68,.16); --tbc-status-ban-bd:rgba(239,68,68,.4);
    --tbc-status-ok-bg:rgba(16,185,129,.15); --tbc-status-ok-bd:rgba(16,185,129,.35);
    --tbc-warn-bg:rgba(245,158,11,.15); --tbc-warn-bd:rgba(245,158,11,.35);
    --tbc-row-alt:#1e293b; --tbc-head-border:#475569; --tbc-cell-border:#334155;
    --tbc-nav-bg:rgba(15,23,42,.94);
    --tbc-accent:#60a5fa; --tbc-ban:#ef4444; --tbc-warn-text:#fcd34d;
}

/* ── Layout primitives (same metrics as the country page) ─────────────── */
.tbh-wrap{max-width:1000px;margin:0 auto;padding:0 1.25rem;}
.tbh-section,
.bans-container,
.hub-pages-section,.seo-content-section,.country-guide-section,.tips-section,.faq-section{
    max-width:1000px;margin:1.75rem auto;padding:0 1.25rem;scroll-margin-top:120px;}
.tbh-section>h2,
.hub-pages-section h2,.seo-content-section h2,.country-guide-section h2,.tips-section h2,.faq-section h2{
    font-size:1.15rem;font-weight:700;margin:0 0 .6rem;display:flex;align-items:center;gap:.45rem;}
.tbh-section>h2 .v2-icon,
.hub-pages-section h2 .v2-icon,.seo-content-section h2 .v2-icon,.country-guide-section h2 .v2-icon,
.tips-section h2 .v2-icon,.faq-section h2 .v2-icon{width:1.1rem;height:1.1rem;flex:none;}

/* Page header */
.tbh-head{padding-top:1rem;}
.tbh-head h1{margin:0;font-size:1.5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.tbh-head h1 .v2-icon{width:1.4rem;height:1.4rem;flex:none;}
.tbh-sub{margin:.4rem 0 0;font-size:.95rem;opacity:.8;line-height:1.5;}
.tbh-updated{margin:.35rem 0 0;font-size:.85rem;opacity:.75;}
.tbh-updated .v2-icon{width:.9rem;height:.9rem;vertical-align:-2px;}

/* ── Shared components ported from the country page ───────────────────── */
.tbc-status{border:1px solid var(--tbc-status-ok-bd);background:var(--tbc-status-ok-bg);border-radius:14px;padding:1.1rem 1.25rem;}
.tbc-status.is-ban{border-color:var(--tbc-status-ban-bd);background:var(--tbc-status-ban-bg);}
.tbc-status .v2-icon{width:1.05rem;height:1.05rem;vertical-align:-2px;}

.tbc-nav{position:sticky;top:60px;z-index:50;display:flex;gap:.5rem;overflow-x:auto;padding:.55rem .1rem;margin:.75rem -.1rem 0;
    background:var(--tbc-nav-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);scrollbar-width:none;}
.nkd-app .tbc-nav{top:0;}
.tbc-nav::-webkit-scrollbar{display:none;}
.tbc-nav a{flex:0 0 auto;padding:.55rem .95rem;border:1px solid var(--tbc-border);border-radius:999px;
    background:var(--tbc-chip);font-size:.9rem;font-weight:600;text-decoration:none;color:inherit;min-height:44px;display:flex;align-items:center;}

.tbc-table{width:100%;border-collapse:collapse;font-size:.92rem;}
.tbc-table th{text-align:left;padding:.55rem .5rem;border-bottom:2px solid var(--tbc-head-border);}
.tbc-table td{padding:.5rem;border-bottom:1px solid var(--tbc-cell-border);vertical-align:top;}
.tbc-table tbody tr:nth-child(even){background:var(--tbc-row-alt);}
@media (max-width:640px){ .tbc-table{font-size:.86rem;} }

.tbc-card{border:1px solid var(--tbc-border);border-radius:12px;padding:.9rem 1rem;background:var(--tbc-card);}
.tbc-chips{display:flex;flex-wrap:wrap;gap:.5rem;}
.tbc-chips span{padding:.45rem .8rem;border:1px solid var(--tbc-border);border-radius:999px;background:var(--tbc-chip);font-size:.86rem;}
.tbc-switch{display:flex;flex-wrap:wrap;gap:.5rem;}
.tbc-switch a{padding:.55rem .9rem;border:1px solid var(--tbc-border);border-radius:10px;background:var(--tbc-card);
    text-decoration:none;color:inherit;font-weight:600;font-size:.9rem;min-height:44px;display:flex;align-items:center;gap:.45rem;}
.tbc-switch a img{width:22px;height:auto;border-radius:3px;flex:none;}
.tbc-switch a:hover{border-color:var(--tbc-accent);}

/* ── Country filter bar ────────────────────────────────────────────────── */
.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;}
.filter-btn,.find-country-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;
    border:1px solid var(--tbc-border);border-radius:999px;background:var(--tbc-chip);color:inherit;
    font-size:.88rem;font-weight:600;cursor:pointer;min-height:44px;transition:border-color .15s;}
.filter-btn img{width:20px;height:auto;border-radius:3px;}
.filter-btn:hover{border-color:var(--tbc-accent);}
.filter-btn.active{background:var(--tbc-accent);border-color:var(--tbc-accent);color:#fff;}
.find-country-btn{background:var(--tbc-status-ok-bg);border-color:var(--tbc-status-ok-bd);}
.find-country-btn:disabled{opacity:.65;cursor:not-allowed;}
.find-country-btn .v2-icon{width:1rem;height:1rem;}

/* ── Calendar ──────────────────────────────────────────────────────────── */
.bans-calendar{display:grid;gap:1rem;}
.date-section{border:1px solid var(--tbc-border);border-radius:12px;background:var(--tbc-card);overflow:hidden;}
.date-header{display:flex;align-items:center;gap:.8rem;padding:.75rem 1rem;border-bottom:1px solid var(--tbc-cell-border);}
.date-day{font-size:1.6rem;font-weight:800;line-height:1;min-width:2.2rem;text-align:center;}
.date-info{flex:1;min-width:0;}
.date-weekday{font-weight:700;font-size:.95rem;}
.date-full{font-size:.8rem;opacity:.7;}
.date-badge{padding:.3rem .75rem;border:1px solid var(--tbc-border);border-radius:999px;background:var(--tbc-chip);font-size:.8rem;font-weight:700;white-space:nowrap;}
.date-header.today .date-day{color:var(--tbc-ban);}
.date-header.today .date-badge{background:var(--tbc-status-ban-bg);border-color:var(--tbc-status-ban-bd);}
.date-header.tomorrow .date-badge{background:var(--tbc-warn-bg);border-color:var(--tbc-warn-bd);}
.date-header.weekend .date-weekday{color:var(--tbc-accent);}

.bans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;padding:1rem;}
.ban-card{display:flex;align-items:flex-start;gap:.75rem;padding:.8rem .9rem;border:1px solid var(--tbc-cell-border);border-radius:10px;background:var(--tbc-face);}
.ban-card.has-active{border-color:var(--tbc-status-ban-bd);background:var(--tbc-status-ban-bg);}
.ban-flag img{width:34px;height:auto;border-radius:5px;}
.ban-details{flex:1;min-width:0;}
.ban-country-name{font-weight:700;font-size:.98rem;margin-bottom:.35rem;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}
.ban-country-link{color:inherit;text-decoration:none;border-bottom:1px dotted var(--tbc-border);}
.ban-country-link:hover{color:var(--tbc-accent);border-bottom-color:var(--tbc-accent);}
.weight-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.12rem .5rem;border:1px solid var(--tbc-border);border-radius:999px;
    background:var(--tbc-chip);font-size:.72rem;font-weight:600;white-space:nowrap;}
.weight-badge .weight-icon{width:.75rem;height:.75rem;}
/* Times flow horizontally as compact chips; only entries carrying extra info
   (Local badge / restriction details) break onto their own full-width row. */
.ban-times-list{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;}
.ban-time-entry{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25rem .5rem;min-width:0;}
.ban-time-entry.local-restriction,
.ban-time-entry:has(.restriction-details){flex:1 1 100%;}
.ban-time{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border:1px solid var(--tbc-border);border-radius:8px;
    background:var(--tbc-chip);font-size:.84rem;font-weight:600;white-space:nowrap;}
.ban-time-entry.active .ban-time{background:var(--tbc-ban);border-color:var(--tbc-ban);color:#fff;}
.ban-time .active-dot{width:6px;height:6px;background:#fff;border-radius:50%;animation:tbh-pulse 1.5s infinite;}
@keyframes tbh-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.ban-time-entry.local-restriction{border:1px solid var(--tbc-warn-bd);background:var(--tbc-warn-bg);border-radius:8px;padding:.35rem .55rem;}
.ban-time-entry.local-restriction .ban-time{border:none;background:transparent;padding:0;color:var(--tbc-warn-text);}
.ban-scope-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.12rem .5rem;border:1px solid var(--tbc-warn-bd);border-radius:999px;
    background:var(--tbc-warn-bg);color:var(--tbc-warn-text);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;cursor:help;}
.ban-scope-badge .scope-icon{width:.7rem;height:.7rem;}
.restriction-details{display:inline-flex;align-items:flex-start;gap:.25rem;font-size:.75rem;opacity:.85;line-height:1.35;min-width:0;}
.restriction-details .restriction-icon{width:12px;height:12px;flex:none;margin-top:2px;}
.ban-source-link{display:inline-flex;align-items:center;gap:.25rem;margin-top:.4rem;padding-top:.35rem;font-size:.72rem;opacity:.75;
    color:inherit;text-decoration:none;border-top:1px dashed var(--tbc-border);}
.ban-source-link:hover{color:var(--tbc-accent);opacity:1;}
.ban-source-link .source-icon{width:.7rem;height:.7rem;}
.no-bans-message{text-align:center;padding:2.5rem 1rem;opacity:.7;}
.no-bans-message .v2-icon{width:3rem;height:3rem;opacity:.4;display:block;margin:0 auto .75rem;}

/* ── Ferienreiseverordnung embed card ──────────────────────────────────── */
.tban-frv-card{border:1px solid var(--tbc-border);border-radius:12px;overflow:hidden;background:var(--tbc-card);}
.tban-frv-head{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;border-bottom:1px solid var(--tbc-cell-border);}
.tban-frv-flag{flex:none;display:flex;}
.tban-frv-flag img{width:34px;height:auto;border-radius:5px;}
.tban-frv-head h2{font-size:1.02rem;font-weight:700;margin:0;}
.tban-frv-head p{margin:.15rem 0 0;font-size:.85rem;opacity:.75;line-height:1.4;}
.tban-frv-btn{flex:none;display:flex;align-items:center;gap:.35rem;padding:.55rem .9rem;border:1px solid var(--tbc-border);border-radius:10px;
    background:var(--tbc-face);text-decoration:none;color:inherit;font-weight:600;font-size:.9rem;min-height:44px;white-space:nowrap;}
.tban-frv-btn:hover{border-color:var(--tbc-accent);}
/* Progressive day reveal (+7 per "See more" click) */
.date-section.frv-day-hidden{display:none;}
.frv-seemore-wrap{display:flex;justify-content:center;margin:1.1rem 0 .25rem;}
.frv-seemore{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.4rem;border:1px solid var(--tbc-border);
    border-radius:12px;background:var(--tbc-face);color:inherit;font-weight:600;font-size:.95rem;cursor:pointer;
    min-height:44px;transition:border-color .15s ease,background .15s ease;}
.frv-seemore:hover{border-color:var(--tbc-accent);background:var(--tbc-chip);}
.frv-seemore .v2-icon{width:1em;height:1em;}

.tban-frv-imglink{display:block;line-height:0;background:var(--tbc-chip);}
.tban-frv-imglink picture{display:block;}
.tban-frv-imglink img{max-width:100%;width:100%;height:auto;display:block;transition:opacity .15s ease;}
.tban-frv-imglink:hover img{opacity:.92;}

/* ── Related hub pages ─────────────────────────────────────────────────── */
.hub-pages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;}
.hub-page-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;padding:1.1rem .9rem;
    border:1px solid var(--tbc-border);border-radius:12px;background:var(--tbc-card);text-decoration:none;color:inherit;transition:border-color .15s;}
.hub-page-card:hover{border-color:var(--tbc-accent);}
.hub-page-card .hub-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;
    background:var(--tbc-chip);border:1px solid var(--tbc-border);margin-bottom:.35rem;}
.hub-page-card .hub-icon .v2-icon{width:1.3rem;height:1.3rem;}
.hub-page-card h3{font-size:.95rem;font-weight:600;margin:0;}
.hub-page-card p{font-size:.82rem;opacity:.75;margin:0;line-height:1.4;}
@media (max-width:768px){ .hub-pages-grid{grid-template-columns:repeat(2,1fr);} }

/* ── SEO prose ─────────────────────────────────────────────────────────── */
.seo-content-section p{margin:.5rem 0;line-height:1.65;opacity:.92;}

/* ── Country guide ─────────────────────────────────────────────────────── */
.guide-intro{margin:0 0 1rem;font-size:.95rem;line-height:1.6;opacity:.85;}
.bans-compare-wrap{overflow-x:auto;margin:.5rem 0 1.25rem;}
.country-guide-card{border:1px solid var(--tbc-border);border-radius:10px;background:var(--tbc-card);margin:0 0 .6rem;}
.country-guide-card[open]{border-color:var(--tbc-accent);}
.country-guide-card summary{display:flex;align-items:center;gap:.6rem;padding:.75rem .9rem;cursor:pointer;font-weight:600;list-style:none;}
.country-guide-card summary::-webkit-details-marker{display:none;}
.country-guide-card summary::after{content:'\25BE';opacity:.55;transition:transform .2s;}
.country-guide-card[open] summary::after{transform:rotate(180deg);}
.country-guide-card summary img{width:28px;height:auto;border-radius:4px;}
.country-guide-name{font-size:1rem;}
.country-guide-meta{margin-left:auto;font-size:.8rem;opacity:.7;font-weight:500;white-space:nowrap;}
.country-guide-body{padding:0 .9rem .9rem;border-top:1px solid var(--tbc-cell-border);}
@media (max-width:768px){ .country-guide-meta{display:none;} }

/* ── Tips ──────────────────────────────────────────────────────────────── */
.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;}
.tip-card{border:1px solid var(--tbc-border);border-radius:12px;background:var(--tbc-card);padding:1rem;}
.tip-card h3{font-size:.95rem;font-weight:600;margin:0 0 .45rem;display:flex;align-items:center;gap:.4rem;}
.tip-card h3 .v2-icon{width:1rem;height:1rem;flex:none;}
.tip-card p{font-size:.88rem;opacity:.85;margin:0;line-height:1.55;}
@media (max-width:768px){ .tips-grid{grid-template-columns:1fr;} }

/* ── FAQ (details/summary, first item open — same as the country page) ─── */
.faq-section details{border:1px solid var(--tbc-border);border-radius:10px;padding:.7rem .9rem;margin:0 0 .6rem;}
.faq-section summary{font-weight:600;cursor:pointer;}
.faq-section details p{margin:.55rem 0 0;line-height:1.6;opacity:.92;}
