/* ── Reset & Vars ─────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0F2D5C;--navy2:#1a3d7a;--navy3:#2251a3;
  --teal:#607d8b;--teal2:#4a626d;--teal-light:#eceff1;
  --bg:#f0f4fa;--bg2:#ffffff;--bg3:#f8fafc;
  --text:#0d1b2e;--text2:#4a5568;--text3:#718096;
  --border:#dde3ef;--border2:#c8d0e0;
  --red:#dc3545;--red-light:#fde8ea;--green:#198754;--amber:#e07b00;
  --sidebar:224px;--radius:3px;
  --shadow:0 2px 8px rgba(15,45,92,.10);
  --font:'Inter',system-ui,-apple-system,sans-serif;
}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.6;min-height:100vh;overflow-x:hidden}
a{text-decoration:none;color:inherit}
button{font-family:var(--font)}
input,select,textarea{font-family:var(--font)}

/* ── Cookie Banner ─────────────────────────────────────────── */
#cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--navy);color:#fff;padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem;z-index:9998;flex-wrap:wrap}
#cookie-banner p{font-size:.83rem;color:rgba(255,255,255,.8);flex:1;min-width:200px}
.c-btns{display:flex;gap:.5rem;flex-shrink:0}
/* Tlačítka v cookie liště (tmavé pozadí) — světlý obrys, čitelný text */
#cookie-banner .btn-ghost{background:transparent !important;color:#fff !important;border-color:rgba(255,255,255,.45) !important}
#cookie-banner .btn-ghost:hover{background:rgba(255,255,255,.18) !important;border-color:#fff !important;color:#fff !important}
@media (max-width:600px){
  #cookie-banner{padding:.85rem 1rem;gap:.6rem}
  #cookie-banner p{font-size:.78rem;min-width:0}
  .c-btns{width:100%}
  .c-btns .btn{flex:1}
}

/* ── Toast ──────────────────────────────────────────────────── */
#toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.toast{padding:.7rem 1.1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:.5rem;box-shadow:0 4px 16px rgba(0,0,0,.18);animation:slidein .25s ease;max-width:320px;pointer-events:auto}
.toast.success{background:#0f4c2a;color:#d1fae5}
.toast.error{background:#4c1010;color:#fee2e2}
.toast.info{background:var(--navy);color:#dbeafe}
@keyframes slidein{from{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}

/* ── Buttons ────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.2rem;border-radius:var(--radius);border:1.5px solid transparent;cursor:pointer;font-size:.88rem;font-weight:500;transition:all .18s;text-decoration:none}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-primary:hover{background:var(--navy2)}
.btn-ghost{background:transparent;color:var(--navy3);border-color:var(--border2)}
.btn-ghost:hover{background:var(--teal-light)}
.btn-danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn-danger:hover{background:#b02a37}
.btn-teal{background:var(--teal);color:#fff;border-color:var(--teal)}
.btn-teal:hover{background:var(--teal2)}
.btn-sm{padding:.38rem .8rem;font-size:.8rem}

/* ── Forms ──────────────────────────────────────────────────── */
.form-group{margin-bottom:1.1rem}
.form-group label{display:block;font-size:.82rem;font-weight:500;color:var(--text2);margin-bottom:.35rem}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6rem .85rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9rem;background:var(--bg3);color:var(--text);outline:none;transition:border .2s,box-shadow .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--navy3);box-shadow:0 0 0 3px rgba(34,81,163,.1)}
.form-group .hint{font-size:.77rem;color:var(--text3);margin-top:.3rem}
.err-msg{font-size:.8rem;color:var(--red);margin-top:.4rem;min-height:1.1rem}
.opt{color:var(--text3);font-weight:400}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:2.5rem}
.pw-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text3);font-size:17px;padding:.25rem}
.pw-strength{height:4px;border-radius:4px;margin-top:.4rem;transition:all .3s}
.secure-note{font-size:.78rem;color:var(--text3);display:flex;align-items:center;gap:.3rem}

/* ── AUTH ───────────────────────────────────────────────────── */
#auth-screen{display:flex;min-height:100vh}
.auth-left{width:400px;min-width:300px;background:var(--navy);display:flex;flex-direction:column;justify-content:center;padding:3rem 2.5rem;color:#fff;flex-shrink:0}
.auth-brand{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;color:#fff;display:inline-block;margin-bottom:2.5rem}
.auth-brand-cz{color:var(--teal)}
.auth-left h1{font-size:1.85rem;font-weight:800;margin-bottom:.75rem;letter-spacing:-.02em;line-height:1.2}
.auth-left p{font-size:.95rem;color:rgba(255,255,255,.7);margin-bottom:2rem;line-height:1.7}
.auth-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}
.auth-points li{display:flex;align-items:center;gap:.6rem;font-size:.92rem;color:rgba(255,255,255,.88)}
.auth-points svg.ti{width:18px;height:18px;color:var(--teal);flex-shrink:0}
.auth-right{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg)}
.auth-card{background:var(--bg2);border-radius:4px;padding:2.5rem;width:100%;max-width:420px;box-shadow:var(--shadow);border:1px solid var(--border)}
.auth-card h2{font-size:1.2rem;font-weight:600;margin-bottom:.2rem}
.auth-sub{color:var(--text3);font-size:.87rem;margin-bottom:1.75rem}
.auth-tabs{display:flex;gap:.25rem;background:var(--bg3);border-radius:var(--radius);padding:.3rem;margin-bottom:1.75rem;border:1px solid var(--border)}
.auth-tabs .tab{flex:1;text-align:center;padding:.48rem;border-radius:3px;font-size:.87rem;font-weight:500;color:var(--text3);transition:all .18s}
.auth-tabs .tab.active{background:var(--bg2);color:var(--navy);box-shadow:0 1px 4px rgba(15,45,92,.12)}
.back-link{display:flex;align-items:center;gap:.4rem;color:var(--text3);font-size:.85rem;cursor:pointer;margin-bottom:1.25rem;width:fit-content}
.back-link:hover{color:var(--navy)}
.link{color:var(--navy3);cursor:pointer;font-size:.85rem}
.link:hover{text-decoration:underline}
.progress-bar{height:4px;border-radius:4px;background:var(--border);margin:1.25rem 0;overflow:hidden}
.progress-fill{height:100%;background:var(--teal);border-radius:4px;transition:width .4s}
.demo-hint{margin-top:1rem;padding:.75rem;background:var(--teal-light);border-radius:3px;font-size:.78rem;color:var(--navy)}

/* ── APP LAYOUT ─────────────────────────────────────────────── */
#app{display:flex;flex-direction:column;min-height:100vh}
.topbar{height:56px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 1.1rem;gap:.85rem;position:sticky;top:0;z-index:100;flex-shrink:0}
.topbar-logo{font-size:.98rem;font-weight:700;color:var(--navy);letter-spacing:-.01em;display:flex;align-items:center;flex-shrink:0}
.topbar-search{flex:1;max-width:360px;position:relative}
.topbar-search svg.ti,.topbar-search i{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--text3);width:16px;height:16px;font-size:16px;vertical-align:baseline;pointer-events:none}
.topbar-search input{width:100%;padding:.42rem .85rem .42rem 2.2rem;border:1.5px solid var(--border);border-radius:3px;font-size:.84rem;background:var(--bg3);color:var(--text);outline:none;transition:border .2s,box-shadow .2s}
.topbar-search input:focus{border-color:var(--navy3);box-shadow:0 0 0 3px rgba(34,81,163,.1)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.icon-btn{position:relative;width:34px;height:34px;border-radius:50%;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--text2)}
.icon-btn:hover{background:var(--bg3)}
.notif-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--bg2)}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.77rem;font-weight:600;cursor:pointer;flex-shrink:0;text-decoration:none}
.hamburger{display:none;background:none;border:none;cursor:pointer;font-size:22px;color:var(--text);padding:.2rem;flex-shrink:0}
.app-body{display:flex;flex:1;min-height:0}
.sidebar{width:var(--sidebar);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto}
.nav-group-label{padding:.7rem .85rem .2rem;font-size:.68rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
.nav-item{display:flex;align-items:center;gap:.55rem;padding:.52rem .9rem;border-radius:3px;margin:1px .45rem;cursor:pointer;font-size:.87rem;color:var(--text2);transition:background .15s,color .15s;text-decoration:none;background:none;border:none;width:calc(100% - .9rem)}
.nav-item:hover{background:var(--bg3)}
.nav-item.active{background:var(--teal-light);color:var(--navy)}
.nav-item svg.ti,.nav-item i{font-size:18px;flex-shrink:0;color:var(--text3)}
.nav-item.active svg.ti,.nav-item.active i{color:var(--teal2)}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border);padding:.4rem}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:199}
.content{flex:1;padding:1.6rem 1.75rem;overflow-y:auto;min-width:0}

/* ── Page header ────────────────────────────────────────────── */
.page-header{margin-bottom:1.4rem}
.page-header h2{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}
.page-header p{color:var(--text3);font-size:.87rem;margin-top:.15rem}

/* ── Stat cards ─────────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.9rem;margin-bottom:1.5rem}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:1rem 1.15rem}
.stat-label{font-size:.73rem;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}
.stat-value{font-size:1.7rem;font-weight:700;color:var(--text);line-height:1}
.stat-delta{font-size:.77rem;margin-top:.25rem}
.stat-delta.up{color:var(--green)}.stat-delta.down{color:var(--red)}.stat-delta.neutral{color:var(--text3)}

/* ── Cards ──────────────────────────────────────────────────── */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:3px;overflow:hidden;margin-bottom:0}
.card-header{padding:.9rem 1.15rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-header h3{font-size:.93rem;font-weight:600}
.card-body{padding:1.15rem}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}
.two-col-wide{display:grid;grid-template-columns:1.4fr 1fr;gap:1.25rem}

/* ── Filter panel ───────────────────────────────────────────── */
.filter-panel{background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:1.1rem 1.25rem;margin-bottom:1.1rem}
/* GPS okolí lišta v katalogu */
.filter-gps{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.9rem;padding-bottom:.9rem;border-bottom:1px solid var(--border)}
.filter-gps-active{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;background:var(--navy);color:#fff;padding:.5rem .8rem;border-radius:4px;flex:1}
.filter-gps-label{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600}
.filter-gps-label .ti{width:15px;height:15px}
.filter-gps-radius{display:flex;gap:.35rem;flex-wrap:wrap}
.f-r-btn{border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:3px;padding:.28rem .6rem;font-size:.8rem;cursor:pointer;transition:.15s}
.f-r-btn:hover{background:rgba(255,255,255,.15)}
.f-r-btn.active{background:#fff;color:var(--navy);font-weight:600;border-color:#fff}
.filter-gps-off{margin-left:auto;background:transparent;border:none;color:rgba(255,255,255,.85);font-size:.8rem;cursor:pointer;text-decoration:underline}
.filter-gps-off:hover{color:#fff}
/* Odznak vzdálenosti na kartě */
.dist-tag{position:absolute;top:.6rem;right:.6rem;background:var(--teal);color:#fff;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:100px}
@media (max-width:600px){
  .filter-gps{flex-direction:column;align-items:stretch}
  .filter-gps-active{flex-direction:column;align-items:stretch;gap:.5rem}
  .filter-gps-radius{justify-content:center}
  .f-r-btn{flex:1;text-align:center}
  .filter-gps-off{margin-left:0;text-align:center}
}
.filter-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem;align-items:flex-end}
.filter-row:last-child{margin-bottom:0;align-items:center}
.filter-group{display:flex;flex-direction:column;gap:.3rem;min-width:140px;flex:1}
.filter-label{font-size:.78rem;font-weight:500;color:var(--text2);display:flex;align-items:center;gap:.25rem}
.filter-group select,.filter-input{padding:.48rem .75rem;border:1.5px solid var(--border);border-radius:3px;font-size:.84rem;background:var(--bg3);color:var(--text);outline:none;transition:border .2s}
.filter-group select:focus,.filter-input:focus{border-color:var(--navy3)}
.filter-meta{align-items:center;flex-wrap:wrap;gap:.75rem}
.filter-check{display:flex;align-items:flex-start;gap:.5rem;font-size:.83rem;cursor:pointer;line-height:1.4}
.filter-check input[type=checkbox]{cursor:pointer;accent-color:var(--teal);width:18px;height:18px;flex:0 0 18px;margin:0;margin-top:.05rem}
.result-count{margin-left:auto;font-size:.8rem;color:var(--text3)}

/* ── Job cards ──────────────────────────────────────────────── */
.jobs-list{display:flex;flex-direction:column;gap:.65rem}
.job-card{background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:1rem 1.15rem;cursor:pointer;transition:border-color .18s,box-shadow .18s;position:relative}
.job-card:hover{border-color:var(--navy3);box-shadow:0 2px 10px rgba(34,81,163,.1)}
.job-card:focus-visible{outline:2px solid var(--navy3);outline-offset:2px}
.job-title{font-size:.96rem;font-weight:600;color:var(--text);margin-bottom:.2rem}
.job-company{font-size:.83rem;color:var(--text3);display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.job-meta{display:flex;gap:.5rem;margin-top:.55rem;flex-wrap:wrap;align-items:center}
.new-tag{position:absolute;top:.75rem;right:.75rem;background:var(--teal);color:#fff;font-size:.68rem;padding:.12rem .5rem;border-radius:3px;font-weight:500}

/* ── Badges ─────────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:.2rem;padding:.18rem .55rem;border-radius:3px;font-size:.75rem;font-weight:500}
.badge-blue{background:#dbeafe;color:#1e40af}
.badge-green{background:#d1fae5;color:#065f46}
.badge-amber{background:#fef3c7;color:#92400e}
.badge-red{background:#fee2e2;color:#991b1b}
.badge-gray{background:#f1f5f9;color:#475569}
.badge-purple{background:#ede9fe;color:#5b21b6}

/* ── Pagination ─────────────────────────────────────────────── */
.pagination{display:flex;align-items:center;gap:.35rem;margin-top:1.1rem;justify-content:center;flex-wrap:wrap}
.page-btn{padding:.38rem .72rem;border:1.5px solid var(--border);border-radius:3px;background:var(--bg2);cursor:pointer;font-size:.83rem;color:var(--text2);transition:all .15s;font-family:var(--font)}
.page-btn:hover{border-color:var(--navy3);color:var(--navy)}
.page-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}

/* ── Modal ──────────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(5,20,50,.45);display:none;align-items:center;justify-content:center;padding:1rem}
.modal-box{background:var(--bg2);border-radius:4px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(15,45,92,.25)}
.modal-header{padding:1.15rem 1.4rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--bg2);z-index:10}
.modal-body{padding:1.4rem}
.detail-row{display:flex;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--border)}
.detail-row:last-child{border-bottom:none}
.d-label{width:145px;font-size:.8rem;color:var(--text3);flex-shrink:0;padding-top:.05rem}
.d-val{font-size:.87rem;flex:1}

/* ── Settings ───────────────────────────────────────────────── */
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--border)}
.setting-row:last-child{border-bottom:none}
.s-label{font-size:.88rem;font-weight:500}
.s-desc{font-size:.79rem;color:var(--text3);margin-top:.12rem}
.toggle{position:relative;width:44px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.slider-t{position:absolute;inset:0;background:var(--border2);border-radius:3px;cursor:pointer;transition:.25s}
.slider-t:before{content:'';position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.25s}
.toggle input:checked + .slider-t{background:var(--teal)}
.toggle input:checked + .slider-t:before{transform:translateX(20px)}
.profile-avatar{width:68px;height:68px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700}

/* ── Contact ────────────────────────────────────────────────── */
.contact-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}
.ci-label{font-size:.77rem;color:var(--text3);margin-bottom:.2rem;display:flex;align-items:center;gap:.25rem}

/* ── Alerts ─────────────────────────────────────────────────── */
.alert-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border)}
.alert-item:last-child{border-bottom:none}
.alert-meta{flex:1;font-size:.85rem}
.alert-name{font-weight:600;margin-bottom:.2rem}
.alert-tags{display:flex;gap:.35rem;flex-wrap:wrap}

/* ── Loading ─────────────────────────────────────────────────── */
.loading-dots{display:flex;align-items:center;gap:4px;padding:1rem 0}
.loading-dots span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);animation:bounce .9s infinite}
.loading-dots span:nth-child(2){animation-delay:.18s}
.loading-dots span:nth-child(3){animation-delay:.36s}
@keyframes bounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-8px)}}
.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--bg3) 50%,var(--border) 75%);background-size:400%;animation:shimmer 1.3s infinite;border-radius:6px;display:inline-block}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* ── Chart bars ─────────────────────────────────────────────── */
.chart-bars{display:flex;align-items:flex-end;gap:5px;height:100px;margin-top:.75rem}
.chart-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}
.chart-bar{background:var(--navy);border-radius:4px 4px 0 0;width:100%;min-height:3px;transition:height .5s ease,background .2s}
.chart-bar:hover{background:var(--teal)}
.chart-lbl{font-size:.62rem;color:var(--text3);text-align:center;line-height:1.2}

/* ── Empty state ─────────────────────────────────────────────── */
.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--text3)}
.empty-state svg.ti,.empty-state i{font-size:44px;opacity:.28;display:block;margin-bottom:.75rem}

/* ── Responsive ─────────────────────────────────────────────── */
@media(max-width:900px){
  .two-col,.two-col-wide{grid-template-columns:1fr}
}
@media(max-width:768px){
  .auth-left{display:none}
  .hamburger{display:flex}
  .sidebar{position:fixed;top:56px;left:-240px;height:calc(100vh - 56px);z-index:200;transition:left .25s}
  .sidebar.open{left:0}
  .sidebar-overlay.open{display:block}
  .content{padding:1rem}
  .stats-grid{grid-template-columns:1fr 1fr}
  .filter-row{gap:.5rem}
  .filter-group{min-width:calc(50% - .25rem)}
  .topbar-search{max-width:180px}
  .form-grid-2{grid-template-columns:1fr}
}
@media(max-width:480px){
  .auth-card{padding:1.5rem}
  .stats-grid{grid-template-columns:1fr 1fr}
  .topbar-search{display:none}
  .filter-group{min-width:100%}
}
textarea{resize:vertical}

/* IČ/OSVČ tag */
.ic-tag{position:absolute;top:.75rem;left:.75rem;background:var(--amber);color:#fff;font-size:.68rem;padding:.12rem .5rem;border-radius:3px;font-weight:600}
.ic-tag-inline{background:var(--teal-light);color:var(--teal2);font-size:.75rem;padding:.15rem .55rem;border-radius:3px;font-weight:500;display:inline-block}
.job-addr{color:var(--text3);font-size:.78rem}
.sep{opacity:.35;margin:0 .2rem}
.fav-btn{margin-left:auto;background:none;border:none;cursor:pointer;padding:.22rem .4rem;border-radius:6px}
.fav-btn:hover{background:var(--bg3)}
.page-ellipsis{color:var(--text3);padding:0 .25rem}

/* Kontaktní linky v modalu */
.contact-link{color:var(--navy3);text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;font-size:.88rem}
.contact-link:hover{text-decoration:underline}
.ares-link{color:var(--navy3);font-size:.8rem;text-decoration:none;margin-left:.4rem}
.ares-link:hover{text-decoration:underline}

/* Spin animace */
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Kraj checkbox tagy ──────────────────────────────────────── */
.kraj-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  padding: .4rem 0;
}
.kraj-wrap input[type=checkbox] { display: none; }
.kraj-wrap label {
  display: inline-flex;
  align-items: center;
  padding: .28rem .7rem;
  border-radius:3px;
  border: 1.5px solid var(--border);
  background: var(--bg3);
  color: var(--text2);
  font-size: .82rem;
  cursor: pointer;
  transition: all .15s;
  user-select: none;
  white-space: nowrap;
}
.kraj-wrap label:hover { border-color: var(--teal); color: var(--teal2); }
.kraj-wrap input[type=checkbox]:checked + label {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  font-weight: 600;
}
.filter-group-wide { flex-basis: 100%; min-width: 100%; }
.opt { font-size: .75rem; color: var(--text3); font-weight: 400; }

/* ── Detail inzeratu (SEO stranka) ───────────────────────────── */
.job-detail-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding: 1.1rem clamp(1.2rem,4vw,3rem);
  max-width: 1400px;
  margin: 0 auto;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.job-detail-logo {
  display: flex;
  align-items: center;
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--navy);
  text-decoration: none;
  white-space: nowrap;
}
@media (max-width:560px){ .job-detail-logo{ font-size:1.35rem; } }
.jd-logo-cz { color: var(--teal); }
.job-detail-page {
  max-width: 900px;
  margin: 2rem auto;
  padding: 0 clamp(1.2rem,4vw,3rem);
}
.job-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  gap: .75rem;
  flex-wrap: wrap;
}
.job-detail-card .detail-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 1rem;
  padding: .65rem 0;
  border-bottom: 1px solid var(--border);
  align-items: start;
}
.job-detail-card .detail-row:last-child { border-bottom: none; }
.job-detail-card .d-label {
  font-size: .82rem;
  color: var(--text3);
  font-weight: 600;
}
.job-detail-card .d-val {
  font-size: .92rem;
  color: var(--text);
}
.job-detail-source {
  text-align: center;
  font-size: .78rem;
  color: var(--text3);
  margin-top: 1rem;
}
@media (max-width: 600px) {
  .job-detail-card .detail-row {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
}

/* ── SVG sprite ikony (nahrazuje Tabler webfont) ─────────────── */
svg.ti {
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: -0.125em;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}
/* Vyplnene ikony (heart-filled apod.) */
svg.ti-heart-filled {
  fill: currentColor;
  stroke: none;
}

/* Odkaz zpět na úvod na login stránce */
.auth-home-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text3);margin-bottom:1.25rem;transition:color .15s}
.auth-home-link:hover{color:var(--navy)}
.auth-home-link svg.ti{width:14px;height:14px}

/* ── Globální pojistka: tmavá tlačítka mají vždy bílý text ───── */
.btn-primary, .btn-teal, .btn-danger,
.btn-primary *, .btn-teal *, .btn-danger * { color:#fff !important; }
.btn-primary svg.ti, .btn-teal svg.ti, .btn-danger svg.ti { stroke:#fff !important; color:#fff !important; }

/* ── NEPRŮSTŘELNÁ pojistka: tmavá tlačítka = bílý text (konec souboru) ── */
a.btn-primary, button.btn-primary, .btn.btn-primary,
a.btn-teal, button.btn-teal, .btn.btn-teal,
a.btn-danger, button.btn-danger, .btn.btn-danger,
.btn-primary, .btn-teal, .btn-danger {
  color:#ffffff !important;
}
.btn-primary svg, .btn-teal svg, .btn-danger svg { stroke:#ffffff !important; }

/* ── Detail inzerátu — moderní vzhled ───────────────────────── */
.jd-hero{padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}
.jd-title{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;color:var(--navy);letter-spacing:-.02em;line-height:1.2;margin:0 0 .5rem}
.jd-company{font-size:1.05rem;color:var(--text2);font-weight:500;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.jd-ares{font-size:.75rem;font-weight:600;color:var(--teal);border:1px solid var(--teal);border-radius:3px;padding:.1rem .45rem;text-decoration:none}
.jd-ares:hover{background:var(--teal);color:#fff}
.jd-badge{display:inline-block;margin-top:.75rem;margin-right:.4rem;font-size:.78rem;font-weight:600;padding:.25rem .6rem;border-radius:3px}
.jd-badge-osvc{background:var(--teal-light);color:var(--teal2)}
.jd-badge-ozp{background:#fff4e5;color:#9a6700}

.jd-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:4px;overflow:hidden;margin-bottom:2rem}
.jd-tile{background:#fff;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.25rem}
.jd-tile-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);font-weight:600}
.jd-tile-value{font-size:1.05rem;font-weight:600;color:var(--navy)}
.jd-tile-salary{color:var(--teal2)}

.jd-section{margin-bottom:2rem}
.jd-h2{font-size:1.2rem;font-weight:700;color:var(--navy);margin:0 0 .85rem;padding-bottom:.5rem;border-bottom:2px solid var(--teal)}
.jd-desc{font-size:.97rem;line-height:1.75;color:var(--text);white-space:normal}
.jd-enrich{color:var(--text2);font-size:.93rem}
.jd-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 2rem;margin:0}
.jd-fact{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}
.jd-fact dt{color:var(--text3);font-size:.9rem}
.jd-fact dd{margin:0;font-weight:600;color:var(--text);font-size:.9rem;text-align:right}
.jd-contacts{background:var(--teal-light);border-radius:4px;padding:1.25rem 1.5rem}
.jd-contacts .jd-h2{border-bottom-color:rgba(0,0,0,.1)}
.jd-contacts .contact-link{color:var(--navy);font-weight:600}

/* Podobné nabídky na stránce nenalezeného inzerátu */
.jd-similar-list{display:grid;gap:.6rem}
.jd-similar-card{display:block;padding:.85rem 1rem;background:#fff;border:1px solid var(--line);border-radius:6px;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.jd-similar-card:hover{border-color:var(--teal);box-shadow:0 4px 12px rgba(0,0,0,.06)}
.jd-similar-title{display:block;font-weight:600;color:var(--navy);margin-bottom:.2rem}
.jd-similar-meta{display:block;font-size:.85rem;color:var(--text2)}

/* ============================================================
   Reklamní / afiliátní bloky (rotující) — responzivní
   ============================================================ */
.ad-slot{margin:1.5rem 0;width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem .9rem}
.ad-label{font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);opacity:.7;text-align:left;margin-bottom:.55rem;display:flex;align-items:center;gap:.4rem}
.ad-label::before{content:'';display:inline-block;width:11px;height:11px;border:1px solid currentColor;border-radius:2px;opacity:.6;background:repeating-linear-gradient(45deg,transparent,transparent 2px,currentColor 2px,currentColor 3px)}
.ad-affiliate{width:100%;display:flex;flex-direction:column;align-items:center}
.ad-affiliate .heureka-affiliate-category{width:100%;display:flex;justify-content:center}
.ad-affiliate iframe{max-width:100%}
.ad-affiliate img{max-width:100%;height:auto;display:inline-block}
.ad-affiliate a{display:inline-block;line-height:0}
.ad-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg2);border:1px dashed var(--border);border-radius:var(--radius);color:var(--text3);font-size:.8rem;min-height:90px;width:100%;margin:1.5rem 0}
.ad-placeholder::before{content:'Místo pro reklamu'}
.ad-inline{grid-column:1/-1}
@media (max-width:600px){
  .ad-placeholder{min-height:60px}
}

/* ── Administrace uživatelů ──────────────────────────────── */
.admin-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.admin-search{display:flex;align-items:center;gap:.5rem;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:.5rem .8rem;flex:1;min-width:220px}
.admin-search .ti{width:16px;height:16px;color:var(--text3)}
.admin-search input{border:none;background:transparent;outline:none;width:100%;font-size:.9rem;color:var(--text)}
.admin-stats{font-size:.82rem;color:var(--text3);white-space:nowrap}
.admin-user-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:1.1rem 1.25rem;margin-bottom:.9rem}
.admin-user-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:.6rem}
.admin-user-name{font-weight:700;font-size:1rem;color:var(--navy)}
.admin-user-date{font-size:.78rem;color:var(--text3);white-space:nowrap}
.admin-badge{display:inline-block;font-size:.68rem;font-weight:700;padding:.12rem .5rem;border-radius:100px;margin-left:.35rem;vertical-align:middle}
.admin-badge-ok{background:#e3f3ea;color:#2c7a4d}
.admin-badge-warn{background:#fdeede;color:#b5701a}
.admin-badge-admin{background:var(--navy);color:#fff}
.admin-badge-mail{background:#e7f0fb;color:#2b6cb0}
.admin-user-meta{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.85rem;color:var(--text2);margin-bottom:.75rem}
.admin-user-meta span{display:inline-flex;align-items:center;gap:.35rem}
.admin-user-meta .ti{width:14px;height:14px;color:var(--text3)}
.admin-user-note{margin-bottom:.75rem}
.admin-user-note label{display:block;font-size:.76rem;font-weight:600;color:var(--text3);margin-bottom:.3rem}
.admin-user-note textarea{width:100%;border:1.5px solid var(--border);border-radius:6px;padding:.5rem .7rem;font-size:.85rem;font-family:inherit;resize:vertical;background:var(--bg3);color:var(--text);outline:none;margin-bottom:.5rem}
.admin-user-note textarea:focus{border-color:var(--navy3)}
.admin-user-actions{display:flex;gap:.5rem;flex-wrap:wrap}
@media (max-width:600px){
  .admin-toolbar{flex-direction:column;align-items:stretch}
  .admin-stats{text-align:center}
  .admin-user-actions .btn{flex:1}
}

/* Písmeno "d" v logu — stejná barva jako .cz */
.logo-d{color:var(--teal)}
.topbar-cz{color:var(--teal)}

/* ── GPS poloha v alerts formuláři ──────────────────────── */
.al-gps{display:flex;flex-direction:column;gap:.6rem}
.al-gps-fields{display:flex;flex-direction:column;gap:.35rem}
.al-gps-coords{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.al-gps-coords input{flex:1;min-width:90px;border:1.5px solid var(--border);border-radius:6px;padding:.5rem .7rem;font-size:.85rem;background:var(--bg3);color:var(--text);outline:none}
.al-gps-coords input:focus{border-color:var(--navy3)}
.al-gps-coords select{border:1.5px solid var(--border);border-radius:6px;padding:.5rem .6rem;font-size:.85rem;background:var(--bg3);color:var(--text);cursor:pointer;outline:none}
.al-gps-clear{width:34px;height:34px;flex:0 0 34px;border:1.5px solid var(--border);background:var(--bg3);border-radius:6px;font-size:1.2rem;line-height:1;color:var(--text3);cursor:pointer;transition:.15s}
.al-gps-clear:hover{border-color:var(--red);color:var(--red)}
.al-gps-hint{font-size:.78rem;color:var(--text3)}
@media (max-width:560px){
  .al-gps-coords{flex-direction:column;align-items:stretch}
  .al-gps-coords input,.al-gps-coords select{width:100%}
  .al-gps-clear{width:100%;flex:auto}
}

/* ── Rozbalovací sekce ve formuláři filtru ──────────────── */
.al-section{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;overflow:hidden}
.al-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--bg3);border:none;padding:.7rem .9rem;font-size:.88rem;font-weight:600;color:var(--navy);cursor:pointer;transition:background .15s}
.al-section-toggle:hover{background:var(--bg2)}
.al-section-toggle span{display:flex;align-items:center;gap:.5rem}
.al-section-toggle .ti{width:16px;height:16px}
.al-section-chevron{transition:transform .2s}
.al-section-toggle.is-open .al-section-chevron{transform:rotate(180deg)}
.al-section-body{padding:.9rem;border-top:1px solid var(--border)}
.al-section-body .form-group:last-child{margin-bottom:0}

/* ── Lišta impersonace (admin v cizím účtu) ───────────────── */
.imp-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:#fff3cd;border:1px solid #e0c878;border-radius:var(--radius);padding:.7rem 1rem;margin-bottom:1.25rem;font-size:.9rem;color:#6b5615}
.imp-banner strong{color:#4a3c0a}
.imp-back{display:inline-flex;align-items:center;gap:.4rem;background:#0F2D5C;color:#fff;border:none;border-radius:var(--radius);padding:.5rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}
.imp-back:hover{background:#0a2147}
.imp-back .ti{width:15px;height:15px}
