:root{--font-sans:'Nunito',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans";--fs-300:.8125rem;--fs-400:.9375rem;--fs-500:1.125rem;--fs-600:1.25rem;--fs-700:1.5rem;--fs-800:1.75rem;--radius:8px;--radius-sm:8px;--radius-md:12px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--color-bg-light:#f9fafb;--color-muted:#6b7280;--color-success:#16a34a;--color-danger:#dc2626;--color-info:#0284c7;--c-bg:#fff;--c-surface:#fafbfc;--c-surface-strong:#eef1f6;--c-text:#0f172a;--c-muted:#6b7280;--c-border:#e5e7eb;--c-border-strong:#d1d5db;--c-primary:#2563eb;--c-primary-contrast:#fff;--c-success:#16a34a;--c-danger:#dc2626;--c-warning:#d97706;--c-info:#0284c7;--shadow-1:0 1px 2px rgba(16,24,40,.06);--shadow-2:0 2px 6px rgba(16,24,40,.06);--container-max:1280px;--sidebar-width:280px;--gutter-x:var(--space-6)}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--c-bg);color:var(--c-text);font:400 var(--fs-400)/1.5 var(--font-sans)}
.app{min-height:100vh}
.app__aside{background:var(--c-surface);border-right:1px solid var(--c-border);position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);overflow-y:auto;overflow-x:hidden}
.brand{display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--gutter-x);font-weight:700;border-bottom:1px solid var(--c-border)}
.menu{padding:0 var(--gutter-x) var(--space-6)}
.menu__section{position:relative;margin:var(--space-5) var(--space-2) var(--space-3);padding-bottom:var(--space-2);color:var(--c-text);font-size:var(--fs-500);font-weight:700;letter-spacing:-.02em;border-bottom:1px solid var(--c-border)}
.menu__section::after{content:'';position:absolute;bottom:-1px;left:0;width:40px;height:1px;background:var(--c-primary)}
.menu__item{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;text-decoration:none;color:inherit;border-radius:var(--radius-sm)}
.menu__item:hover{background:#eef2ff}
.menu__item.is-active{background:#e8edff46;border:1px solid #dbe3ff}
/* Submenu items */
.menu__item.menu__sub{padding-left:1.5rem;font-size:calc(var(--fs-400) - 1px);opacity:.95}
.menu__item.menu__sub .fa{opacity:.9}
.app__main{display:flex;flex-direction:column;margin-left:var(--sidebar-width)}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--c-border);background:#fff;position:sticky;top:0;z-index:50;box-shadow:0 1px 0 var(--c-border),0 6px 16px rgba(16,24,40,.04)}
.topbar .breadcrumbs{margin-left:var(--gutter-x)}
.topbar .topbar__right{margin-right:var(--gutter-x)}
.breadcrumbs{display:flex;gap:.6rem;align-items:center;color:var(--c-muted);font-size:.8rem;font-weight:600}
.breadcrumbs a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:999px;padding:.25rem .6rem}
.breadcrumbs span{display:inline-flex;align-items:center;gap:.35rem}
.breadcrumbs a:hover{text-decoration:underline}
.breadcrumbs .sep{font-size:.75rem;opacity:.55;margin:0 .15rem}
.page-title{margin:0;font-size:2.25rem;font-weight:800;color:var(--c-text);letter-spacing:-.03em;line-height:1.1}
.page-title i{display:none}
.page-head{margin-top:var(--space-4);margin-bottom:var(--space-6);display:flex;align-items:center;justify-content:space-between;position:relative;padding-bottom:var(--space-4);border-bottom:2px solid var(--c-border-strong)}
.page-head::after{content:'';position:absolute;bottom:-2px;left:0;width:80px;height:2px;background:linear-gradient(90deg,var(--c-primary),var(--c-primary) 60%,transparent)}
/* Module-specific header adjustments */
.module-context .container{padding-top:var(--space-4)}
.module-context .page-head{margin-top:var(--space-4);margin-bottom:var(--space-5)}
.module-context .page-title{font-size:2rem;font-weight:800}
.module-context .page-title .title__sub{display:inline-block;margin-left:.5rem;color:var(--c-muted);font-weight:500;font-size:var(--fs-500)}
.page-head__actions{display:flex;gap:.5rem}
.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:var(--space-6) var(--space-8)}
/* Zmenšení horního odsazení obsahu, aby titulek nebyl tak nízko pod topbarem */
.app__main .container{padding-top:var(--space-4)}
@media (max-width:1024px){.container{padding-left:var(--space-6);padding-right:var(--space-6)}}
.grid-form{display:grid;grid-template-columns:1fr 360px;gap:var(--space-6)}
@media (max-width:1024px){.grid-form{grid-template-columns:1fr}}
.sticky{position:sticky;top:calc(64px + var(--space-6))}
.card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.card--info{border-left:3px solid var(--c-info)}
.card__header{padding:.85rem 1rem;border-bottom:1px solid var(--c-border);font-weight:600;display:flex;gap:.6rem;align-items:center}
.card__body{padding:1rem}
.card+.card{margin-top:var(--space-6)}
.form-row{margin-bottom:1rem}
.form-row label{display:block;margin-bottom:.4rem;font-weight:600;font-size:var(--fs-400)}
.form-row input[type="text"],.form-row input[type="email"],.form-row input[type="number"],.form-row input[type="password"],.form-row select,.form-row textarea{width:100%;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:.55rem .7rem;background:#fff}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid #93c5fd;outline-offset:2px}
.form-row small{display:block;margin-top:.4rem;color:var(--c-muted);font-size:var(--fs-300)}
.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}
.form__row{display:grid;gap:var(--space-4)}
.form__group{display:grid;gap:.4rem}
.form__label{font-weight:600}
.form__control,.form__select,.form__textarea{width:100%;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:.55rem .7rem;background:#fff}
/* Konsolidace výšek ovládacích prvků podle design-systemu */
.form__control,.form__select{min-height:40px}
.form__select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2.25rem;min-width:120px}
.form__textarea{min-height:180px;resize:vertical}
.form__control:focus,.form__select:focus,.form__textarea:focus{outline:2px solid #93c5fd;outline-offset:2px}
.form__hint{color:var(--c-muted);font-size:var(--fs-300)}
.inline{display:flex;gap:.5rem;align-items:center}
.day-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}
.day-checkbox:hover{border-color:var(--c-primary);background:#f0f5ff}
.day-checkbox input[type="checkbox"]{margin:0;cursor:pointer}
.day-checkbox input[type="checkbox"]:checked + span{color:var(--c-primary);font-weight:600}
ul,ol{padding-left:1.5rem;margin:.5rem 0}
li{margin:.35rem 0;line-height:1.6}
.editor{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:#fff}
.editor__toolbar{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;padding:.4rem;border-bottom:1px solid var(--c-border);background:var(--c-surface)}
.editor__btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}
.editor__btn:hover{background:#eef2ff;border-color:#dbe3ff}
.editor__content{min-height:220px;padding:.8rem}
.editor__sep{width:1px;height:24px;background:var(--c-border);margin:0 .25rem}
.tags{display:flex;gap:.4rem;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .55rem;background:#eef2ff;color:#1e40af;border:1px solid #c7d2fe;border-radius:999px;font-size:var(--fs-300)}
.tag .btn-x{border:none;background:transparent;cursor:pointer;line-height:1}
.tag-input{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:.4rem .5rem;background:#fff}
.tag-input input{border:none;outline:none;min-width:120px;padding:.35rem}
.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:nowrap}
@media (max-width:640px){.actions{flex-wrap:wrap}}
.btn{display:inline-flex;gap:.5rem;align-items:center;justify-content:center;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:.55rem .9rem;min-height:40px;background:#fff;color:#111;box-shadow:var(--shadow-1);text-decoration:none;font-size:var(--fs-400);line-height:1.5;cursor:pointer}
.btn--primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-contrast)}
.btn--primary:hover{filter:brightness(.98)}
.btn--subtle{background:#fff}
.btn--success{background:var(--c-success);border-color:var(--c-success);color:#fff}
.btn--success:hover{filter:brightness(.98)}
.btn--danger{background:#fee2e2;border-color:#fecaca;color:#7f1d1d}
.btn--icon{width:40px;height:40px;min-height:40px;display:grid;place-items:center;padding:0}
.btn--xs{padding:.35rem .55rem;min-height:32px;font-size:var(--fs-300)}
.btn-icon{border:none;background:transparent;cursor:pointer;padding:.25rem;line-height:1;transition:opacity .15s ease}
.btn-icon:hover{opacity:.7}
.btn-close{border:none;background:transparent;cursor:pointer;padding:.5rem;line-height:1;font-size:1.25rem;opacity:.6;transition:opacity .15s ease}
.btn-close:hover{opacity:1}
.switch{position:relative;display:inline-block;width:44px;height:26px}
.switch input{display:none}
.slider{position:absolute;cursor:pointer;inset:0;background:#e5e7eb;border-radius:999px;transition:.2s}
.slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:var(--shadow-1)}
.switch input:checked + .slider{background:#93c5fd}
.switch input:checked + .slider:before{transform:translateX(18px)}
.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .55rem;border-radius:999px;border:1px solid;font-size:var(--fs-300);white-space:nowrap}
.pill--success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.pill--danger{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}
.pill--published{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.pill--draft{background:#f1f5f9;border-color:#cbd5e1;color:#334155}
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--c-border);font-size:var(--fs-300);background:var(--c-surface);color:var(--c-text)}
.badge--success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.badge--warning{background:#fff7ed;border-color:#fed7aa;color:#7c2d12}
.badge--subtle{background:var(--c-surface);border-color:var(--c-border);color:var(--c-muted)}
.alert{padding:.6rem .75rem;border:1px solid;border-radius:var(--radius-sm)}
.alert--success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.alert--danger{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}
.alert--info{background:#f0f9ff;border-color:#bae6fd;color:#075985}
.table-responsive{overflow-x:auto}
.table{width:100%;border-collapse:collapse;border:1px solid var(--c-border);border-radius:var(--radius-sm);overflow:hidden}
.table th,.table td{padding:.75rem 1rem;border-bottom:1px solid var(--c-border);vertical-align:middle}
.table th{background:var(--c-surface);text-align:left;color:var(--c-muted);font-weight:600;font-size:var(--fs-300);text-transform:uppercase;letter-spacing:.03em}
.table tbody tr{background:#fff;transition:background-color .15s ease}
.table tbody tr:hover{background:var(--c-surface)}
.table tbody tr:last-child td{border-bottom:none}
.table .ta-right{text-align:right}
.table__actions{display:inline-flex;gap:.5rem;align-items:center;white-space:nowrap}
.table td:has(.table__actions){white-space:nowrap;width:1%}
.empty{text-align:center;color:var(--c-muted);padding:3rem;border:1px dashed var(--c-border);border-radius:var(--radius-md);background:#fff}
.pagination{display:flex;gap:.3rem;justify-content:flex-end}
.pagination a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--c-border);border-radius:8px;text-decoration:none;color:inherit}
.pagination a.is-active{background:#e8edff;border-color:#dbe3ff}
.topbar__right{display:flex;gap:var(--space-3);align-items:center}
.user-menu{position:relative}
.user-menu__trigger{display:flex;align-items:center;gap:.5rem;padding:.4rem .7rem;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-family:inherit;font-size:var(--fs-400)}
.user-menu__trigger:hover{background:var(--c-surface)}
.user-menu__dropdown{position:absolute;right:0;top:calc(100% + .25rem);background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:100}
.user-menu:hover .user-menu__dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.user-menu__header{padding:.75rem 1rem;border-bottom:1px solid var(--c-border)}
.user-menu__name{font-weight:600;display:block}
.user-menu__email{font-size:var(--fs-300);color:var(--c-muted)}
.user-menu__item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;text-decoration:none;color:inherit;transition:background .15s}
.user-menu__item:hover{background:var(--c-surface)}
.user-menu__item--danger{color:var(--c-danger)}
.user-menu__item--danger:hover{background:#fef2f2}
.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.4);z-index:999;cursor:pointer}
.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:1000;overflow-y:auto;padding:2rem 0}
.modal__dialog{position:relative;z-index:1001;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);width:min(560px,90vw);max-height:90vh;display:flex;flex-direction:column;margin:auto}
.modal__header{padding:1rem;border-bottom:1px solid var(--c-border);font-weight:600;flex-shrink:0;display:flex;align-items:center;gap:.5rem}
.modal__body{padding:1rem;overflow-y:auto;flex:1}
.modal__footer{padding:1rem;display:flex;justify-content:flex-end;gap:.5rem;border-top:1px solid var(--c-border);flex-shrink:0}
.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column-reverse;gap:.5rem;z-index:1100;pointer-events:none}
@media (max-width:640px){.toasts{left:50%;right:auto;transform:translateX(-50%);width:min(96vw,520px)}}
.toast{display:flex;align-items:flex-start;gap:.75rem;background:#fff;color:var(--c-text);padding:.85rem 1rem;border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(16,24,40,.12),0 1px 3px rgba(16,24,40,.08);border:1px solid var(--c-border-strong);min-width:280px;max-width:420px;overflow:hidden;pointer-events:auto}
.toast__icon{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;font-size:.875rem}
.toast__content{flex:1 1 auto}
.toast__title{font-weight:700;font-size:.9375rem;line-height:1.3;margin-bottom:.2rem}
.toast__message{font-size:.875rem;line-height:1.5;color:var(--c-muted)}
.toast__action{flex:0 0 auto;margin-left:.5rem;border:none;background:transparent;color:var(--c-primary);cursor:pointer;font-weight:600;font-size:.875rem;padding:.25rem .5rem;border-radius:4px;transition:background .15s}
.toast__action:hover{background:var(--c-surface)}
.toast--success{border-left:4px solid var(--c-success)}
.toast--success .toast__icon{color:var(--c-success);background:rgba(22,163,74,.1)}
.toast--error{border-left:4px solid var(--c-danger)}
.toast--error .toast__icon{color:var(--c-danger);background:rgba(220,38,38,.1)}
.toast--info{border-left:4px solid var(--c-info)}
.toast--info .toast__icon{color:var(--c-info);background:rgba(2,132,199,.1)}
@keyframes toast-in{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toast-out{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.95)}}
.toast--enter{animation:toast-in .22s cubic-bezier(.175,.885,.32,1.1) forwards}
.toast--leave{animation:toast-out .18s ease-in forwards}
.footer{text-align:center;padding:var(--space-8) var(--space-6);color:var(--c-muted);font-size:var(--fs-300);border-top:1px solid var(--c-border);background:var(--c-surface);margin-top:var(--space-8)}
.page-tree{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:#fff;max-height:480px;overflow-y:auto;padding:.5rem}
.page-tree__item{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;border-radius:6px;transition:background .15s}
.page-tree__item:hover{background:var(--c-surface)}
.page-tree__item[data-level="1"]{padding-left:1.5rem}
.page-tree__item[data-level="2"]{padding-left:3rem}
.page-tree__item[data-level="3"]{padding-left:4.5rem}
.page-tree__item[data-level="4"]{padding-left:6rem}
.page-tree__toggle{border:none;background:transparent;cursor:pointer;width:20px;height:20px;display:grid;place-items:center;padding:0;color:var(--c-muted);transition:transform .15s}
.page-tree__toggle i{font-size:.7rem}
.page-tree__toggle.is-expanded{transform:rotate(90deg)}
.page-tree__spacer{width:20px;height:20px;display:inline-block}
.page-tree__title{flex:1 1 auto;font-size:.9375rem}
.page-tree__perms{display:flex;gap:.25rem;align-items:center}
.page-tree__checkbox{display:inline-flex;cursor:pointer;position:relative}
.page-tree__checkbox input{position:absolute;opacity:0;pointer-events:none}
.page-tree__checkbox span{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--c-border);border-radius:6px;background:#fff;color:var(--c-muted);transition:all .15s}
.page-tree__checkbox span i{font-size:.8rem}
.page-tree__checkbox:hover span{background:var(--c-surface);border-color:var(--c-border-strong)}
.page-tree__checkbox input:checked + span{background:#e8edff;border-color:#93c5fd;color:var(--c-primary)}
.page-tree__checkbox--inherit input:checked + span{background:#f0fdf4;border-color:#86efac;color:#16a34a}
.page-tree__children{display:none}
.page-tree__children.is-expanded{display:block}
/* ========================================
   RESPONSIVE BREAKPOINTS
   Mobile: < 640px
   Tablet: 640px - 1024px
   Desktop: > 1024px
   ======================================== */

/* Tablet & Mobile: Sidebar jako overlay */
@media (max-width: 1024px) {
  .app__aside {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: 280px;
    z-index: 1001;
    transform: translateX(-100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    box-shadow: 4px 0 24px rgba(16,24,40,.15);
  }
  .app__aside.is-open {
    transform: translateX(0);
  }
  .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(16,24,40,.4);
    z-index: 1000;
    backdrop-filter: blur(2px);
  }
  .sidebar-overlay.is-active {
    display: block;
  }
  .app__main {
    margin-left: 0;
  }
  
  /* Topbar úpravy pro tablet/mobil */
  .topbar {
    padding: var(--space-2) var(--space-4);
    gap: var(--space-3);
  }
  .topbar .breadcrumbs {
    margin-left: 0;
    flex: 1;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .topbar .breadcrumbs::-webkit-scrollbar {
    display: none;
  }
  .topbar .topbar__right {
    margin-right: 0;
    gap: var(--space-2);
  }
  
  /* Topbar tlačítka - skrýt text na menších zařízeních */
  .topbar-btn__text {
    display: none;
  }
  .topbar-btn {
    width: 44px;
    padding: 0;
    justify-content: center;
  }
  .topbar-btn i {
    margin: 0;
  }
  
  /* Hamburger tlačítko */
  .sidebar-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--c-primary);
    font-size: 1.5rem;
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: background .2s ease;
  }
  .sidebar-toggle:hover {
    background: var(--c-surface);
  }
  .sidebar-toggle:active {
    background: var(--c-border);
  }
  
  /* Container menší paddingy */
  .container {
    padding: var(--space-4) var(--space-5);
  }
  .app__main .container {
    padding-top: var(--space-3);
  }
  
  /* Page head úpravy */
  .page-head {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
  }
  .page-head__actions {
    width: 100%;
    justify-content: flex-start;
  }
  
  /* Page title menší */
  .page-title {
    font-size: 1.75rem;
  }
  .module-context .page-title {
    font-size: 1.5rem;
  }
  
  /* Gridy na 1 sloupec */
  .grid-form {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
  
  /* Karty */
  .card {
    border-radius: var(--radius-sm);
  }
  .card__header {
    padding: .75rem;
    font-size: var(--fs-400);
  }
  .card__body {
    padding: .75rem;
  }
  .card + .card {
    margin-top: var(--space-4);
  }
  

  
  /* Formuláře */
  .form-row,
  .form__row {
    gap: var(--space-3);
  }
  .form__group {
    margin-bottom: var(--space-3);
  }
  .form__control,
  .form__select,
  .form__textarea {
    font-size: 1rem;
    padding: .65rem .75rem;
    min-height: 44px;
  }
  .form__select {
    min-height: 44px;
  }
  
  /* Tlačítka větší pro dotyk */
  .btn {
    min-height: 44px;
    padding: .65rem 1rem;
    font-size: var(--fs-400);
    gap: .4rem;
  }
  .btn--xs {
    min-height: 36px;
    padding: .45rem .65rem;
    font-size: .8rem;
  }
  .btn--icon {
    width: 44px;
    height: 44px;
    min-height: 44px;
  }
  
  /* Actions stack na menších obrazovkách */
  .actions {
    flex-wrap: wrap;
    gap: var(--space-3);
  }
  
  /* Tabulky responzivní úpravy - horizontální scroll */
  .table-responsive {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-sm);
    border: 1px solid var(--c-border);
    /* Scrollbar styling pro tablet */
    scrollbar-width: thin;
    scrollbar-color: var(--c-border) transparent;
  }
  .table-responsive::-webkit-scrollbar {
    height: 8px;
  }
  .table-responsive::-webkit-scrollbar-track {
    background: var(--c-surface);
    border-radius: 4px;
  }
  .table-responsive::-webkit-scrollbar-thumb {
    background: var(--c-border);
    border-radius: 4px;
  }
  .table-responsive::-webkit-scrollbar-thumb:hover {
    background: var(--c-border-strong);
  }
  .table-responsive .table {
    /* Tabulka může být širší než container */
    width: auto;
    min-width: 100%;
    max-width: none;
    margin-bottom: 0;
    font-size: .9rem;
  }
  .table th,
  .table td {
    padding: .65rem .75rem;
    font-size: .9rem;
    white-space: nowrap;
  }
  .table th {
    font-size: .8rem;
  }
  .table__actions {
    display: inline-flex;
    gap: .4rem;
    flex-wrap: nowrap;
  }
  .table__actions .btn {
    padding: .45rem .65rem;
    font-size: .8rem;
    min-height: 36px;
    white-space: nowrap;
  }
  
  /* User menu */
  .user-menu__trigger {
    padding: .5rem .65rem;
    font-size: var(--fs-300);
  }
  
  /* Modals */
  .modal__dialog {
    width: min(540px, 92vw);
    margin: 1rem auto;
  }
  .modal {
    padding: 1rem 0;
  }
}

/* Mobile only: < 640px */
@media (max-width: 640px) {
  /* Root font-size menší pro lepší proporce */
  html {
    font-size: 14px;
  }
  
  /* Topbar ještě kompaktnější */
  .topbar {
    padding: .5rem .75rem;
  }
  
  /* Breadcrumbs zjednodušené */
  .breadcrumbs {
    font-size: .65rem;
    gap: .3rem;
  }
  .breadcrumbs a {
    padding: .15rem .4rem;
    font-size: .65rem;
  }
  .breadcrumbs .sep {
    font-size: .6rem;
  }
  
  /* Topbar right - skrytí textů */
  .topbar__right .btn span {
    display: none;
  }
  .topbar__right .btn i {
    margin: 0;
  }
  .topbar__right {
    gap: .35rem;
  }
  
  /* User menu kompaktní */
  .user-menu__trigger span {
    display: none;
  }
  .user-menu__trigger {
    width: 38px;
    height: 38px;
    padding: 0;
    justify-content: center;
  }
  .user-menu__trigger i:first-child {
    font-size: 1.1rem;
  }
  .user-menu__trigger i:last-child {
    display: none;
  }
  
  /* Sidebar menší na mobilu */
  .app__aside {
    width: min(260px, 82vw);
  }
  .brand {
    padding: 1rem .75rem;
  }
  .menu {
    padding: 0 .75rem 1rem;
  }
  .menu__section {
    font-size: .7rem;
    margin: 1rem .25rem .5rem;
  }
  .menu__item {
    padding: .5rem .65rem;
    font-size: .85rem;
    gap: .5rem;
  }
  
  /* Container minimální paddingy */
  .container {
    padding: .75rem 1rem;
  }
  .app__main .container {
    padding-top: .5rem;
  }
  
  /* Page title ještě menší */
  .page-title {
    font-size: 1.35rem;
    line-height: 1.25;
  }
  .module-context .page-title {
    font-size: 1.2rem;
  }
  
  /* Page head */
  .page-head {
    margin-top: .5rem;
    margin-bottom: 1rem;
    padding-bottom: .75rem;
    gap: .75rem;
  }
  .page-head::after {
    width: 50px;
  }
  
  /* Akce pod sebou */
  .page-head__actions {
    flex-direction: column;
    width: 100%;
  }
  .page-head__actions .btn {
    width: 100%;
    justify-content: center;
  }
  
  /* Karty minimální padding */
  .card {
    font-size: .9rem;
  }
  .card__header {
    padding: .6rem .7rem;
    font-size: .85rem;
  }
  .card__body {
    padding: .7rem;
  }
  .card + .card {
    margin-top: .75rem;
  }
  
  /* Tlačítka kompaktní na mobilech */
  .btn {
    font-size: .85rem;
    padding: .5rem .7rem;
    min-height: 38px;
    gap: .35rem;
  }
  .btn--xs {
    font-size: .75rem;
    padding: .35rem .5rem;
    min-height: 32px;
  }
  .btn--icon {
    width: 38px;
    height: 38px;
    min-height: 38px;
  }
  .topbar__right .btn {
    width: 38px;
    height: 38px;
    min-height: 38px;
    padding: 0;
    font-size: 1rem;
  }
  
  /* Tabulky - horizontální scroll na mobilu */
  .table-responsive {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-sm);
    border: 1px solid var(--c-border);
    /* Scrollbar styling */
    scrollbar-width: thin;
    scrollbar-color: var(--c-border) transparent;
  }
  .table-responsive::-webkit-scrollbar {
    height: 6px;
  }
  .table-responsive::-webkit-scrollbar-track {
    background: transparent;
  }
  .table-responsive::-webkit-scrollbar-thumb {
    background: var(--c-border);
    border-radius: 3px;
  }
  .table-responsive::-webkit-scrollbar-thumb:hover {
    background: var(--c-border-strong);
  }
  .table-responsive .table {
    /* Tabulka může být širší než viewport */
    width: auto;
    min-width: 100%;
    max-width: none;
    margin-bottom: 0;
    font-size: .85rem;
    border-left: none;
    border-right: none;
  }
  .table th,
  .table td {
    padding: .6rem .7rem;
    font-size: .85rem;
    white-space: nowrap;
  }
  .table th {
    font-size: .8rem;
    padding: .55rem .7rem;
  }
  .table__actions {
    display: inline-flex;
    gap: .3rem;
    flex-wrap: nowrap;
  }
  .table__actions .btn {
    padding: .35rem .5rem;
    font-size: .75rem;
    min-height: 32px;
    white-space: nowrap;
  }
  
  /* Formuláře kompaktní */
  .form__control,
  .form__select,
  .form__textarea {
    font-size: .9rem;
    padding: .5rem .6rem;
    min-height: 38px;
  }
  .form__select {
    min-height: 38px;
  }
  .form__label {
    font-size: .85rem;
    margin-bottom: .3rem;
  }
  .form__hint {
    font-size: .75rem;
    margin-top: .3rem;
  }
  .form-actions {
    flex-direction: column;
    gap: .5rem;
    margin-top: 1rem;
  }
  .form-actions .btn {
    width: 100%;
    justify-content: center;
  }
  
  /* Alerts kompaktní */
  .alert {
    padding: .5rem .6rem;
    font-size: .8rem;
    line-height: 1.4;
  }
  
  /* Modals fullscreen na mobilu */
  .modal__dialog {
    width: 100vw;
    height: 100vh;
    max-height: 100vh;
    margin: 0;
    border-radius: 0;
    font-size: .9rem;
  }
  .modal__header {
    padding: .75rem;
    font-size: .9rem;
  }
  .modal__body {
    padding: .75rem;
  }
  .modal__footer {
    padding: .75rem;
    gap: .4rem;
  }
  .modal {
    padding: 0;
  }
  
  /* Toast na mobilu */
  .toast {
    min-width: auto;
    max-width: 100%;
    font-size: .8rem;
    padding: .7rem .85rem;
  }
  .toast__title {
    font-size: .85rem;
  }
  .toast__message {
    font-size: .75rem;
  }
  
  /* Settings grid na mobilu */
  .settings-grid {
    grid-template-columns: 1fr;
    gap: .75rem;
  }
  
  /* Pagination na mobilu */
  .pagination {
    gap: .15rem;
    justify-content: center;
    flex-wrap: wrap;
  }
  .pagination a {
    width: 34px;
    height: 34px;
    font-size: .8rem;
  }
  
  /* Pills a badges menší */
  .pill {
    font-size: .65rem;
    padding: .15rem .4rem;
  }
  .badge {
    font-size: .65rem;
    padding: .15rem .35rem;
  }
  
  /* Empty state */
  .empty {
    padding: 2rem 1rem;
    font-size: .85rem;
  }
  
  /* Switch menší */
  .switch {
    width: 40px;
    height: 24px;
  }
  .slider:before {
    height: 18px;
    width: 18px;
  }
  .switch input:checked + .slider:before {
    transform: translateX(16px);
  }
}

/* Extra small screens: < 400px */
@media (max-width: 400px) {
  /* Ještě menší container padding */
  .container {
    padding: 0.5rem 0.75rem;
  }
  
  /* Card ještě kompaktnější */
  .card__body {
    padding: 0.5rem;
  }
  .card__header {
    padding: 0.5rem;
    font-size: 0.8rem;
  }
  
  /* Tlačítka na celou šířku v headerech */
  .card__header {
    flex-direction: column;
    align-items: flex-start !important;
  }
  .card__header form {
    width: 100%;
  }
  .card__header .btn {
    width: 100%;
    justify-content: center;
    font-size: 0.8rem;
    padding: 0.5rem;
  }
  
  /* Page title ještě menší */
  .page-title {
    font-size: 1.2rem;
  }
  
  /* Formuláře na celou šířku */
  .form__control,
  .form__select,
  .form__textarea {
    font-size: 0.85rem;
    padding: 0.45rem 0.5rem;
  }
  
  /* Alert kompaktnější */
  .alert {
    padding: 0.5rem;
    font-size: 0.8rem;
  }
}

/* Enhanced Select Styling */
.form__select {
    color: var(--c-text);
    cursor: pointer;
    transition: all 0.2s ease;
    background-color: #fff;
    background-size: 16px;
}

.form__select:hover {
    border-color: var(--c-border-strong);
    background-color: var(--c-surface);
}

.form__select:focus {
    outline: 2px solid #93c5fd;
    outline-offset: 2px;
    border-color: var(--c-primary);
    background-color: #fff;
}

/* Modal Responsive Adjustments */
@media (max-width: 1024px) {
    .modal__dialog {
        width: 95vw !important;
    }
    
    .form__row[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }
}

/* Form Group in Modal */
.form__group {
    margin-bottom: 0;
}

/* Better checkbox styling */
.form__checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--c-primary);
}

/* Improved textarea */
.form__textarea {
    font-family: var(--font-sans);
    line-height: 1.6;
}

.form__textarea:focus {
    outline: 2px solid #93c5fd;
    outline-offset: 2px;
    border-color: var(--c-primary);
}
