/* Shared responsive safeguards. Business logic and page-specific layouts stay untouched. */
img,video,svg{max-width:100%}
input,select,textarea,button{min-width:0;max-width:100%}
.container,.panel,.card,.admin-head,.admin-links,.action-row,.form-grid{min-width:0}
.panel,.card,.detail-list dd,td,th,p,li,a,strong,small{overflow-wrap:anywhere}
.admin-head{gap:16px;flex-wrap:wrap}
.admin-head>div:first-child{min-width:0}
.admin-head h1{margin-block:0;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15;overflow-wrap:anywhere}
.admin-links,.action-row{max-width:100%}
.admin-links a,.action-row a,.action-row button{min-height:44px}
.table-wrap{max-width:100%;border-radius:12px;-webkit-overflow-scrolling:touch}
.table-wrap table{min-width:100%}
.responsive-card-table td,.responsive-card-table th{vertical-align:top}
.provider-staff-edit-form{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center}
.provider-staff-edit-form input,.provider-staff-edit-form button{margin-top:0}
.appointment-customer-contact{display:none}

button,.button-link,.secondary-button,.danger-button,.logout-link{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:11px 16px;border-radius:11px;font-size:.94rem;font-weight:800;line-height:1.25;text-align:center;text-decoration:none}
button,.primary-link{border:1px solid var(--accent);background:var(--accent);color:#fff}
.button-link,.secondary,.secondary-button{border:1px solid #cbd9d4;background:#f5f8f7;color:#284c3f}
.button-link.primary-link{border-color:var(--accent);background:var(--accent);color:#fff}
.danger-button,.admin-link-button{border-color:#f3b7b3;background:#fff1f1;color:#a52820}
.logout-link{border:1px solid transparent;background:transparent;color:#526b61}
button:focus-visible,.button-link:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,.logout-link:focus-visible{outline:3px solid rgba(31,122,90,.28);outline-offset:2px}
.error-box,.success-box,.notice-box,.form-alert{border-radius:12px;line-height:1.55}
.filter-form{padding:18px;border-radius:16px}
.filter-actions{gap:10px}

.admin-dashboard-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0}
.admin-dashboard-nav-card{display:flex;min-width:0;flex-direction:column;gap:7px;padding:19px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.045)}
.admin-dashboard-nav-card h2{margin:0 0 5px;color:#176b4e;font-size:1rem;letter-spacing:.04em;text-transform:uppercase}
.admin-dashboard-nav-card a{display:flex;min-height:42px;align-items:center;padding:9px 11px;border-radius:10px;color:#284c3f;font-weight:750;line-height:1.3;text-decoration:none;overflow-wrap:anywhere}
.admin-dashboard-nav-card a:hover,.admin-dashboard-nav-card a:focus-visible{background:#eaf7f1;color:#176b4e}
.admin-dashboard-nav-card-quick{grid-column:span 2}

@media(max-width:1024px){
  .admin-dashboard-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:800px){
  .container{width:100%;padding:24px 16px}
  .hero,.panel,.card{max-width:100%}
  .panel{padding:18px}
  .admin-head{align-items:flex-start;flex-direction:column;margin-bottom:18px}
  .admin-links{width:100%;align-items:stretch;flex-direction:column;gap:8px}
  .admin-links>a,.admin-links>.button-link,.admin-links form,.admin-links button{width:100%;margin:0;text-align:center}
  .action-row{align-items:stretch;flex-direction:column}
  .action-row>a,.action-row>button,.action-row>form,.action-row>form>button{width:100%;margin:0;text-align:center}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .inline-form{display:grid;width:100%;grid-template-columns:minmax(0,1fr);margin-right:0}
  .inline-form select,.inline-form button{width:100%;min-width:0}
  .provider-staff-edit-form{grid-template-columns:minmax(0,1fr)}
  .provider-staff-edit-form .compact-check{min-height:44px}
  button,.button-link{white-space:normal}

  .responsive-card-table{display:block;min-width:0!important}
  .responsive-card-table thead,.responsive-card-table>tbody>tr:first-child:not(:last-child):has(th){display:none}
  .responsive-card-table tbody{display:grid;gap:14px}
  .responsive-card-table tr{display:grid;min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(16,24,40,.04)}
  .responsive-card-table td{display:grid;min-width:0;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:10px;border-bottom:1px solid var(--line);padding:9px 0}
  .responsive-card-table td:last-child{border-bottom:0}
  .responsive-card-table td::before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:800;line-height:1.4;text-transform:uppercase}
  .responsive-card-table td[colspan]{display:block;text-align:center}
  .responsive-card-table td[colspan]::before{content:none}
  .responsive-card-table .actions{min-width:0}
  .responsive-card-table .actions .button-link{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;margin:0 0 8px;text-align:center}
  .admin-appointments-table.responsive-card-table{min-width:0!important;table-layout:auto}
  .admin-appointments-table.responsive-card-table colgroup{display:none}
  .admin-appointments-table.responsive-card-table .cell-phone,.admin-appointments-table.responsive-card-table .cell-email{display:none}
  .appointment-customer-contact{display:block;margin-top:5px;color:var(--muted);font-size:.82rem;font-weight:500;overflow-wrap:anywhere}
  .admin-status-form{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  .admin-status-form select,.admin-status-form button{width:100%;min-height:44px!important;font-size:.9rem!important}
  .admin-action-links{gap:8px 14px!important}
  .admin-action-links a,.admin-link-button{display:inline-flex;min-height:44px;align-items:center}
}

@media(max-width:700px){
  .admin-dashboard-nav{grid-template-columns:minmax(0,1fr)}
  .admin-dashboard-nav-card-quick{grid-column:auto}
}

@media(max-width:390px){
  .container{padding-inline:12px}
  .panel{padding:15px}
  .responsive-card-table td{grid-template-columns:minmax(0,1fr);gap:4px}
  .site-footer nav{align-items:flex-start;flex-direction:column;gap:10px}
}

/* Platform admin /admin/businesses:
   - large desktop: wide, horizontally scrollable table
   - <=1400px: readable partner cards, because 14 columns become too dense */
.admin-businesses-table-wrap{overflow-x:auto}
.admin-businesses-table-wrap .responsive-card-table{min-width:1480px;table-layout:auto}
.admin-businesses-table-wrap .responsive-card-table th,
.admin-businesses-table-wrap .responsive-card-table td{overflow-wrap:normal;word-break:normal}
.admin-businesses-table-wrap .responsive-card-table th{white-space:nowrap}
.admin-businesses-table-wrap .responsive-card-table .actions{min-width:230px}
.admin-businesses-table-wrap .responsive-card-table .actions .button-link{margin:0 6px 6px 0}

@media(max-width:1400px){
  .admin-businesses-table-wrap{overflow-x:visible}
  .admin-businesses-table-wrap .responsive-card-table{
    display:block;
    min-width:0!important;
    width:100%;
    table-layout:auto
  }
  .admin-businesses-table-wrap .responsive-card-table thead{display:none}
  .admin-businesses-table-wrap .responsive-card-table tbody{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    width:100%
  }
  .admin-businesses-table-wrap .responsive-card-table tr{
    display:grid;
    min-width:0;
    padding:16px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 5px 16px rgba(16,24,40,.04)
  }
  .admin-businesses-table-wrap .responsive-card-table td{
    display:grid;
    min-width:0;
    grid-template-columns:minmax(130px,.8fr) minmax(0,1.2fr);
    gap:12px;
    border-bottom:1px solid var(--line);
    padding:9px 0;
    overflow-wrap:anywhere;
    word-break:normal
  }
  .admin-businesses-table-wrap .responsive-card-table td:last-child{border-bottom:0}
  .admin-businesses-table-wrap .responsive-card-table td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:12px;
    font-weight:800;
    line-height:1.4;
    text-transform:uppercase
  }
  .admin-businesses-table-wrap .responsive-card-table td[colspan]{
    display:block;
    text-align:center
  }
  .admin-businesses-table-wrap .responsive-card-table td[colspan]::before{content:none}
  .admin-businesses-table-wrap .responsive-card-table .actions{min-width:0}
  .admin-businesses-table-wrap .responsive-card-table .actions .button-link{
    display:flex;
    width:100%;
    min-height:44px;
    align-items:center;
    justify-content:center;
    margin:0 0 8px;
    text-align:center
  }
}

@media(max-width:900px){
  .admin-businesses-table-wrap .responsive-card-table tbody{
    grid-template-columns:minmax(0,1fr)
  }
}

@media(max-width:560px){
  .admin-businesses-table-wrap .responsive-card-table td{
    grid-template-columns:minmax(0,1fr);
    gap:4px
  }
}



/* P12.2 partnerfelügyeleti állapotjelzés – admin felületeken, mobilbarát. */
.p12-access-banner{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  align-items:flex-start;
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  line-height:1.5;
}
.p12-access-banner strong{font-weight:800}
.p12-access-banner--restricted{border-left:5px solid #b7791f}
.p12-access-banner--suspended,.p12-access-banner--banned{border-left:5px solid #b42318}
@media(max-width:560px){
  .p12-access-banner{display:block;padding:13px 14px}
  .p12-access-banner strong,.p12-access-banner span{display:block}
  .p12-access-banner span{margin-top:5px}
}


/* P1-G főoldali multi-category kártyák – a home sablonból kiemelve, cache-elhetően. */
#manual-search.rai-category-browser { margin:42px 0 24px; padding:0; }
#manual-search .rai-category-intro { margin-bottom:22px; }
#manual-search .rai-category-intro .manual-search-kicker { margin-bottom:6px!important; }
#manual-search .rai-category-intro h2 { margin:0 0 8px; font-size:clamp(30px,4vw,42px); line-height:1.05; color:#112d24; }
#manual-search .rai-category-intro p { max-width:860px; margin:0; color:#667085; font-size:16px; line-height:1.55; }
#manual-search .rai-category-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; align-items:stretch; }
#manual-search .rai-category-card { --cat:#16835f; --cat-soft:#edf8f3; display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid #d9e6df; border-radius:20px; background:#fff; box-shadow:0 12px 30px rgba(16,24,40,.07); }
#manual-search .rai-category-card:nth-child(2) { --cat:#bd7b12; --cat-soft:#fff8eb; }
#manual-search .rai-category-card:nth-child(3) { --cat:#176fb2; --cat-soft:#eef7ff; }
#manual-search .rai-category-card:nth-child(4) { --cat:#7145c7; --cat-soft:#f6f1ff; }
#manual-search .rai-category-card:nth-child(5) { --cat:#c7374f; --cat-soft:#fff1f4; }
#manual-search .rai-category-head { display:grid; grid-template-columns:48px minmax(0,1fr); gap:11px; align-items:center; padding:16px 15px 13px; background:linear-gradient(180deg,var(--cat-soft),#fff); }
#manual-search .rai-category-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--cat); color:#fff; font-size:23px; font-weight:900; box-shadow:0 7px 18px rgba(16,24,40,.12); }
#manual-search .rai-category-title { min-width:0; }
#manual-search .rai-category-title h3 { margin:0 0 4px; color:#122f25; font-size:19px; line-height:1.1; }
#manual-search .rai-category-title p { margin:0; color:#667085; font-size:12px; line-height:1.35; }
#manual-search .rai-category-items { display:grid; gap:6px; padding:8px 10px 10px; }
#manual-search .rai-category-item { position:relative; display:flex; min-width:0; min-height:39px; align-items:center; padding:8px 30px 8px 10px; border:1px solid #e8eeeb; border-radius:10px; background:#fafcfb; color:#233f35; text-decoration:none; font-size:13px; font-weight:750; line-height:1.25; overflow-wrap:anywhere; }
#manual-search .rai-category-item::after { content:'›'; position:absolute; right:10px; color:var(--cat); font-size:20px; font-weight:900; }
#manual-search .rai-category-item:hover, #manual-search .rai-category-item:focus-visible { outline:none; border-color:var(--cat); background:var(--cat-soft); }
#manual-search .rai-category-more { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; margin:auto 10px 10px; padding:10px 12px; border-radius:11px; background:var(--cat); color:#fff; text-decoration:none; font-size:13px; font-weight:900; text-align:center; }
#manual-search .rai-category-more:hover, #manual-search .rai-category-more:focus-visible { filter:brightness(.94); outline:3px solid rgba(31,122,90,.18); outline-offset:2px; }
#manual-search .rai-category-empty { margin:8px 10px; padding:12px; border:1px dashed #cfded7; border-radius:10px; color:#667085; font-size:13px; }
@media (max-width:1100px) { #manual-search .rai-category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:780px) { #manual-search .rai-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) {
  #manual-search.rai-category-browser { margin-top:30px; }
  #manual-search .rai-category-grid { grid-template-columns:1fr; gap:12px; }
  #manual-search .rai-category-card { border-radius:17px; }
  #manual-search .rai-category-head { grid-template-columns:44px minmax(0,1fr); padding:14px; }
  #manual-search .rai-category-icon { width:44px; height:44px; font-size:21px; }
  #manual-search .rai-category-title h3 { font-size:20px; }
  #manual-search .rai-category-title p { font-size:13px; }
  #manual-search .rai-category-items { gap:7px; padding:8px 10px 10px; }
  #manual-search .rai-category-item { min-height:46px; padding:11px 34px 11px 12px; font-size:14px; }
  #manual-search .rai-category-more { min-height:48px; font-size:14px; }
}
