/* CIPEK ERP v0.7.1: sirsi layout, dashboard skupiny, finance ovladani a dialogy */
.dashboard{max-width:1560px;padding-left:32px;padding-right:32px}
.alert{max-width:1560px}
.topbar{padding-left:32px;padding-right:32px}
.dashboard-groups{display:grid;gap:30px;margin-top:26px}.dashboard-group{padding:24px;border:1px solid rgba(140,180,255,.16);border-radius:22px;background:rgba(8,20,40,.45)}.group-heading{display:flex;align-items:center;gap:14px;margin-bottom:18px}.group-heading h2{margin:0 0 4px}.group-heading p{margin:0;color:#aebbd4}.group-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#142f56;font-size:24px}.tiles-group{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}.settings-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{min-height:150px}.tile h3{margin:6px 0 8px;font-size:19px}.tile-icon{display:block;font-size:28px;line-height:1}.tile-link{display:inline-block;margin-top:12px;padding:5px 9px;border-radius:999px;background:#132a4d;color:#91bfff;font-size:12px}
.finance-period-panel{display:grid;gap:16px;margin-bottom:18px}.finance-period-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;align-items:center}.period-switcher{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px;padding:10px;border:1px solid rgba(140,180,255,.16);border-radius:16px;background:rgba(7,18,36,.55)}.period-arrow{height:42px;display:grid;place-items:center;border-radius:11px;background:#eef3ff;color:#173b78;font-size:27px;font-weight:800}.period-value{text-align:center}.period-value span{display:block;color:#91a1bf;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.period-value strong{display:block;margin-top:3px;font-size:1.08rem}.finance-view-toggle{white-space:nowrap;text-align:center}.finance-filter-row{display:flex;gap:12px;align-items:end;justify-content:space-between}.finance-type-filter{min-width:260px}.finance-type-filter label{display:block;font-weight:650}.finance-type-filter select{width:100%;margin-top:8px;padding:12px 14px;border:1px solid #29466f;border-radius:12px;background:#08172c;color:#fff}
.table-action{display:inline-block;padding:7px 11px;border:1px solid #4f8cff;border-radius:10px;color:#9bc7ff;font-weight:700;white-space:nowrap}.table-action:hover{background:#17365f;color:#fff}.section-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.erp-dialog{width:min(920px,calc(100vw - 32px));max-height:90vh;padding:0;border:1px solid rgba(140,180,255,.25);border-radius:20px;background:#0d203e;color:#eaf0ff;box-shadow:0 30px 100px rgba(0,0,0,.55)}.erp-dialog::backdrop{background:rgba(2,8,18,.76);backdrop-filter:blur(3px)}.dialog-form{padding:24px}.dialog-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.dialog-heading h2{margin:0 0 5px}.dialog-heading p{margin:0;color:#aebbd4}.dialog-close{width:42px;height:42px;padding:0;border-radius:50%;font-size:26px;background:#18365f}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.erp-dialog .form-grid input,.erp-dialog .form-grid select,.erp-dialog .form-grid textarea{width:100%;margin-top:8px;padding:13px 14px;border:1px solid #29466f;border-radius:12px;background:#08172c;color:#fff}
@media(max-width:1200px){.tiles-group{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-period-row{grid-template-columns:1fr}.finance-view-toggle{order:3}.settings-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard{padding-left:16px;padding-right:16px}.topbar{padding-left:16px;padding-right:16px}.tiles-group,.settings-tiles{grid-template-columns:1fr}.finance-filter-row{align-items:stretch;flex-direction:column}.finance-type-filter{width:100%;min-width:0}.dashboard-group{padding:18px}.dialog-form{padding:18px}}

/* v0.7.2 */
.job-meta-compact {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px 28px;
  padding: 22px 26px;
  align-items: start;
}
.job-meta-compact > div { min-width: 0; }
.job-meta-compact strong { display: block; margin-bottom: 7px; }
.job-meta-compact p { margin: 0; }
.job-meta-compact .job-meta-text { grid-column: span 3; }
.status-inline-form { margin: 0; }
.status-inline-form select { width: 100%; max-width: 260px; }
.attachment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 16px;
  border: 1px solid rgba(120,160,255,.22);
  border-radius: 14px;
}
.attachment-grid label { min-width: 0; }
.attachment-grid .full { grid-column: 1 / -1; }
.attachment-grid input[type=file] { width: 100%; margin-top: 8px; }
@media (max-width: 850px) {
  .job-meta-compact { grid-template-columns: 1fr; }
  .job-meta-compact .job-meta-text { grid-column: auto; }
  .attachment-grid { grid-template-columns: 1fr; }
  .attachment-grid .full { grid-column: auto; }
}

/* v0.7.2.1 - citelne stavy zakazek v tabulkach */
.badge.status-new,
.badge.status-in_progress,
.badge.status-waiting,
.badge.status-completed,
.badge.status-cancelled {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 11px;
  border: 1px solid currentColor;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .01em;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.badge.status-new { background:#dbeafe; color:#1e3a8a; }
.badge.status-in_progress { background:#fef3c7; color:#78350f; }
.badge.status-waiting { background:#ede9fe; color:#4c1d95; }
.badge.status-completed { background:#dcfce7; color:#14532d; }
.badge.status-cancelled { background:#fee2e2; color:#7f1d1d; }


/* v0.7.3 - uzivatelske menu, profily a sprava uctu */
.user-menu{position:relative;margin-left:auto}.user-menu-trigger{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid transparent;border-radius:11px;background:transparent;color:#eef4ff;cursor:pointer}.user-menu-trigger:hover,.user-menu-trigger[aria-expanded="true"]{background:#112846;border-color:#29466f}.user-menu-trigger .role{font-size:10px;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:#17365f;color:#b9d7ff}.user-chevron{font-size:12px;color:#8eadd1}.user-menu-panel{position:absolute;z-index:1000;right:0;top:calc(100% + 10px);width:min(340px,calc(100vw - 24px));padding:18px;border:1px solid #29466f;border-radius:16px;background:#0d203e;box-shadow:0 24px 70px rgba(0,0,0,.5)}.user-menu-panel[hidden]{display:none}.user-menu-name{font-size:18px;font-weight:800;margin-bottom:12px}.user-menu-panel dl{margin:0;display:grid;gap:9px}.user-menu-panel dl div{display:grid;grid-template-columns:72px 1fr;gap:10px}.user-menu-panel dt{color:#91a1bf}.user-menu-panel dd{margin:0;overflow-wrap:anywhere}.user-menu-actions{display:flex;gap:10px;margin-top:18px}.user-menu-actions .button{flex:1;text-align:center}.button.danger{background:#7f1d1d;color:#fff}.profile-form{max-width:1050px}
@media(max-width:900px){.topbar nav{display:none}.user-menu-trigger .role{display:none}}


/* v0.7.4 - dvoufázové ověření */
.verification-code { text-align:center; font-size:2rem; font-weight:800; letter-spacing:.45em; font-variant-numeric:tabular-nums; }
.login-card form .secondary { margin-top:.65rem; }
.login-cancel { display:block; text-align:center; margin-top:1rem; }
.profile-security { margin-top:1.5rem; }
.profile-security .section-heading { margin-bottom:.75rem; }
.profile-security .section-heading h2 { margin-bottom:.25rem; }
.device-agent { max-width:34rem; overflow-wrap:anywhere; font-size:.88rem; }
button.small { padding:.5rem .75rem; font-size:.82rem; }

/* v0.7.5 - pevne leve menu a jednoducha horni lista */
:root{--erp-topbar-height:64px;--erp-sidebar-width:252px}
.erp-app{padding-top:var(--erp-topbar-height)}
.erp-app .topbar{position:fixed;inset:0 0 auto 0;height:var(--erp-topbar-height);z-index:1100;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(5,14,28,.96);box-shadow:0 8px 28px rgba(0,0,0,.18)}
.erp-app .topbar .brand-link{display:flex;align-items:center;height:100%;font-size:15px;letter-spacing:.02em}
.erp-app .topbar .user-menu{margin-left:auto}
.app-layout{min-height:calc(100vh - var(--erp-topbar-height))}
.sidebar{position:fixed;left:0;top:var(--erp-topbar-height);bottom:0;width:var(--erp-sidebar-width);z-index:900;padding:20px 14px;border-right:1px solid rgba(140,180,255,.16);background:rgba(6,17,34,.94);backdrop-filter:blur(14px);overflow-y:auto}
.sidebar-nav{display:flex;flex-direction:column;gap:7px}
.sidebar-link{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 13px;border:1px solid transparent;border-radius:13px;color:#b8c8e2;font-weight:700;transition:background .16s,border-color .16s,color .16s,transform .16s}
.sidebar-link:hover{background:#102847;border-color:#29466f;color:#fff;transform:translateX(2px)}
.sidebar-link.active{background:linear-gradient(135deg,#173d70,#112c50);border-color:#4f8cff;color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.sidebar-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;font-size:18px;line-height:1}
.app-content{max-width:none;margin:0 0 0 var(--erp-sidebar-width);padding:34px clamp(24px,3vw,52px);min-height:calc(100vh - var(--erp-topbar-height))}
.erp-app .alert{max-width:none}
@media(max-width:900px){
  :root{--erp-sidebar-width:82px}
  .sidebar{padding:16px 10px}
  .sidebar-link{justify-content:center;padding:10px}
  .sidebar-link span:last-child{display:none}
  .sidebar-icon{font-size:20px}
  .erp-app .user-menu-trigger>span:first-child{display:inline}
}
@media(max-width:620px){
  :root{--erp-topbar-height:58px;--erp-sidebar-width:0px}
  .erp-app .topbar{height:var(--erp-topbar-height);padding:0 14px}
  .sidebar{position:sticky;top:var(--erp-topbar-height);width:100%;height:auto;padding:8px 10px;border-right:0;border-bottom:1px solid rgba(140,180,255,.16);overflow-x:auto;overflow-y:hidden}
  .sidebar-nav{flex-direction:row;gap:6px;min-width:max-content}
  .sidebar-link{min-height:42px;padding:8px 11px}
  .sidebar-link span:last-child{display:inline}
  .sidebar-icon{width:22px;height:22px;font-size:16px}
  .app-content{margin-left:0;padding:22px 14px}
  .erp-app .user-menu-trigger .role{display:none}
}

.contact-role-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:4px}.role-checkbox{display:flex!important;align-items:flex-start!important;gap:12px;padding:16px;border:1px solid #29466f;border-radius:14px;background:#0b1d38}.role-checkbox input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}.role-checkbox span{display:flex;flex-direction:column;gap:4px}.role-checkbox small{color:#91a1bf;font-weight:400;line-height:1.45}@media(max-width:700px){.contact-role-options{grid-template-columns:1fr}}

/* Příjmy a výdaje: barevné rozlišení typu a částky */
.finance-type-badge{font-weight:800;border:1px solid transparent}
.finance-type-income{background:#163f32;color:#9af0c4;border-color:#2b7659}
.finance-type-expense{background:#4b2028;color:#ffb6c1;border-color:#8f3544}
.finance-amount{font-weight:800}
.finance-amount-income{color:#69e0a3}
.finance-amount-expense{color:#ff7b8c}

/* v0.7.16: kompaktnejsi formulare prijmu a vydaju */
.finance-form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.finance-form-grid > .full {
    grid-column: 1 / -1;
}
.finance-form-grid textarea {
    min-height: 92px;
}
@media (max-width: 1180px) {
    .finance-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 700px) {
    .finance-form-grid {
        grid-template-columns: 1fr;
    }
    .finance-form-grid > .full {
        grid-column: 1;
    }
}

/* v0.7.17: přílohy finančního pohybu v jednom řádku */
.finance-attachments-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    padding: 16px;
    border: 1px solid rgba(120,160,255,.22);
    border-radius: 14px;
}
.finance-attachments-row label { min-width: 0; }
.finance-attachments-row input[type=file] { width: 100%; margin-top: 8px; }
.finance-attachments-row small { display: block; margin-top: 7px; color: #91a1bf; }
@media (max-width: 1180px) {
    .finance-attachments-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .finance-attachments-row { grid-template-columns: 1fr; }
}

/* v0.7.19: přehled financí bez sloupce platby */
.finance-overview-table .finance-amount-cell {
    min-width: 150px;
    white-space: nowrap;
}
.finance-overview-table .finance-amount {
    display: inline-block;
    white-space: nowrap;
}
.finance-overview-table th:nth-child(3) {
    min-width: 250px;
}
.finance-overview-table th:nth-child(4) {
    width: 100%;
}

/* v0.7.20 - prohlizec ulozenych souboru */
.file-browser-layout{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:20px;align-items:start}.file-tree{position:sticky;top:92px;display:flex;flex-direction:column;gap:8px}.file-tree h2{margin:8px 0 4px;font-size:16px}.file-tree-link{display:block;padding:10px 12px;border:1px solid transparent;border-radius:10px;color:#dce8ff}.file-tree-link:hover,.file-tree-link.active{background:#17365f;border-color:#4f8cff;color:#fff}.file-browser-content{display:grid;gap:18px}.file-folder h2{margin-top:0}.file-cost-group{border-top:1px solid rgba(140,180,255,.15);padding:12px 0}.file-cost-group summary{cursor:pointer;font-weight:750;color:#fff}.stored-file-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:12px}.stored-file{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;padding:12px;border:1px solid rgba(140,180,255,.18);border-radius:12px;background:#091a33;color:#fff}.stored-file span{grid-row:1/3;font-size:24px}.stored-file small{color:#9eb1d0}@media(max-width:900px){.file-browser-layout{grid-template-columns:1fr}.file-tree{position:static}}


/* v0.7.22: datum vystaveni u prijmu z faktur a nezalamovane castky nakladu */
.job-costs-table .job-cost-description {
  width: 100%;
  min-width: 220px;
  overflow-wrap: anywhere;
}
.job-costs-table .job-cost-amount {
  width: 1%;
  min-width: 135px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.job-costs-table th:nth-child(4) {
  min-width: 135px;
  white-space: nowrap;
}

/* v0.7.23 - přiřazené zakázky v seznamu faktur */
.invoice-job-cell{min-width:220px}
.invoice-job-cell a{display:block;font-weight:700;line-height:1.35}
.invoice-job-cell a+a{margin-top:5px}

/* v0.7.24 - kompaktni rozlozeni formulare faktury */
.invoice-form-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.invoice-form-grid > .invoice-link-field{
  grid-column:span 2;
}
.invoice-form-grid > .invoice-grid-spacer{
  display:none;
}
.invoice-form-grid > .full{
  grid-column:1 / -1;
}
@media(max-width:1180px){
  .invoice-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .invoice-form-grid > .invoice-link-field{grid-column:span 1}
}
@media(max-width:700px){
  .invoice-form-grid{grid-template-columns:1fr}
  .invoice-form-grid > .invoice-link-field,
  .invoice-form-grid > .full{grid-column:1}
}

/* v0.7.26 - odpočet zálohové faktury */
.invoice-item-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.deposit-deduction-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.deposit-deduction-wrap select{min-width:260px;padding:12px 14px;border:1px solid #29466f;border-radius:12px;background:#08172c;color:#fff}@media(max-width:700px){.invoice-item-actions,.deposit-deduction-wrap{align-items:stretch;flex-direction:column}.deposit-deduction-wrap select{min-width:0;width:100%}}

/* v0.7.27 - výběr zálohové faktury v dialogu */
.deposit-dialog{width:min(620px,calc(100vw - 32px));padding:0;border:1px solid #315785;border-radius:18px;background:#0d1e39;color:#fff;box-shadow:0 28px 90px rgba(0,0,0,.55)}
.deposit-dialog::backdrop{background:rgba(2,8,18,.72);backdrop-filter:blur(3px)}
.deposit-dialog-card{padding:22px}
.deposit-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.deposit-dialog-heading h3{margin:0 0 5px;font-size:22px}
.deposit-dialog-heading p{margin:0;color:#aebbd4}
.deposit-dialog-close{padding:2px 10px;background:transparent;color:#cfe0ff;font-size:28px;line-height:1}
.deposit-dialog-list{display:grid;gap:10px}
.deposit-dialog-option{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:15px 16px;border:1px solid #29466f;border-radius:12px;background:#08172c;color:#fff;text-align:left}
.deposit-dialog-option:hover{border-color:#4f8cff;background:#10294d}
.deposit-dialog-option span{white-space:nowrap;color:#9fc5ff;font-weight:800}
.deposit-dialog-actions{display:flex;justify-content:flex-end;margin-top:18px}

/* v0.7.28 - korektni zobrazeni odpoctu zalohy a oprava poznamky */
#open-deposit-dialog[hidden]{display:none!important}
.invoice-form-grid > label.full{display:block}
.invoice-form-grid > label.full textarea{display:block;width:100%;min-height:96px;margin-top:8px}
