:root{--top:#0b3033;--side:#1c2428;--active:#00867d;--accent:#e5a116;--bg:#edf1f3;--panel:#fff;--text:#28363c;--muted:#69777d;--border:#ccd5d9;--danger:#b42318;--ok:#237747}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:inherit}
.topbar{position:fixed;left:0;right:0;top:0;height:60px;background:var(--top);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;z-index:30}.brand{font-size:20px;font-weight:700}.top-actions{display:flex;gap:18px;align-items:center}.top-actions a{text-decoration:none}
.sidebar{position:fixed;left:0;top:60px;bottom:0;width:260px;background:var(--side);color:#edf3f4;display:flex;flex-direction:column}.sidebar nav{flex:1;padding-top:10px}.nav-link{display:flex;gap:11px;align-items:center;padding:12px 18px;text-decoration:none;border-left:4px solid transparent}.nav-link:hover{background:#293236}.nav-link.active{background:var(--active);border-left-color:#78ddd6;font-weight:700}.version{padding:14px 18px;color:#a7b3b7;border-top:1px solid #333c40}
.content{margin-left:260px;padding:84px 24px 36px}.breadcrumbs{color:var(--muted);font-size:12px;margin-bottom:12px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-head h1{margin:0}.panel,.card{background:#fff;border:1px solid var(--border);box-shadow:0 1px 2px #0001}.pad{padding:20px}.narrow{width:min(470px,100%);padding:28px;border-top:5px solid var(--accent)}
.center-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#0b3033,#176064)}.card h1{font-size:22px;margin-top:0}.muted,.footnote{color:var(--muted)}.footnote{text-align:center;margin-top:18px;font-size:12px}
label{display:block;font-weight:700;margin-top:12px}input,select{display:block;width:100%;padding:9px 10px;border:1px solid #adb8bd;margin-top:5px;font:inherit}.btn{display:inline-block;border:1px solid transparent;padding:9px 14px;font-weight:700;text-decoration:none;cursor:pointer;background:#fff}.btn.primary{background:var(--accent);border-color:#c88708}.btn.secondary{border-color:var(--border)}.btn.full{width:100%;margin-top:16px;text-align:center}
.alert{padding:12px 14px;margin:12px 0;border:1px solid}.alert.error{background:#fff1f0;color:var(--danger);border-color:#e5aaa5}.alert.success{background:#eff9f2;color:var(--ok);border-color:#a9d8b9}
.two-column{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #dde3e6;text-align:left;vertical-align:middle}th{background:#f2f5f6;font-size:12px;text-transform:uppercase}.subrow td{background:#f8fafb}.reset-form{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:10px;align-items:end}.inline{display:inline}.link{border:0;background:none;color:#006d66;text-decoration:underline;cursor:pointer;padding:3px}.danger{color:var(--danger)}.ok{color:var(--ok)}.badge{font-size:11px;background:#e6eef1;padding:3px 6px;border-radius:10px}
.metrics{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:16px}.metrics>div{background:#fff;border:1px solid var(--border);padding:18px}.metrics span{display:block;color:var(--muted);margin-bottom:10px}.metrics strong{font-size:20px}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tiles a{background:#fff;border:1px solid var(--border);padding:22px;text-decoration:none}.tiles strong,.tiles span{display:block}.tiles strong{font-size:18px;margin-bottom:10px}.tiles span{color:var(--muted)}
.tabs{display:flex;background:#f5f7f8;border-bottom:1px solid var(--border)}.tabs button{padding:13px 18px;border:0;border-right:1px solid var(--border);background:transparent;font-weight:700}.tabs .active{background:#fff;border-top:3px solid var(--active);padding-top:10px}
@media(max-width:950px){.two-column{grid-template-columns:1fr}.reset-form{grid-template-columns:1fr}.brand{font-size:15px}}
@media(max-width:720px){.sidebar{width:74px}.nav-link span:last-child{display:none}.nav-link{justify-content:center}.content{margin-left:74px;padding-left:12px;padding-right:12px}.metrics,.tiles{grid-template-columns:1fr}.brand{max-width:64vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Alpha 1.1b — zwarta i czytelna macierz uprawnień */
.permissions-page{
 max-width:1320px;
}

.permissions-head{
 align-items:flex-start;
 gap:18px;
}

.page-description{
 margin:7px 0 0;
 max-width:760px;
 line-height:1.45;
}

.permissions-form{
 display:flex;
 flex-direction:column;
 gap:16px;
}

.permissions-toolbar,
.permissions-save-bar{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:20px;
 padding:15px 18px;
 background:#fff;
 border:1px solid var(--border);
 box-shadow:0 1px 2px #0001;
}

.permissions-toolbar>div,
.permissions-save-bar>div{
 display:flex;
 flex-direction:column;
 gap:4px;
}

.permission-group{
 overflow:hidden;
 background:#fff;
 border:1px solid var(--border);
 box-shadow:0 1px 2px #0001;
}

.permission-group-title{
 padding:13px 17px;
 background:#e8eef0;
 border-bottom:1px solid var(--border);
}

.permission-group-title h2{
 margin:0;
 font-size:17px;
 color:#213238;
}

.permission-group-title p{
 margin:3px 0 0;
 color:#69777d;
 font-size:12px;
}

.permission-list{
 display:flex;
 flex-direction:column;
}

.permission-item{
 padding:14px 17px;
 border-bottom:1px solid #dce3e6;
}

.permission-item:last-child{
 border-bottom:0;
}

.permission-item:nth-child(even){
 background:#fafbfc;
}

.permission-item:hover{
 background:#f2f8f7;
}

.permission-item-main{
 display:grid;
 grid-template-columns:minmax(260px,1fr) minmax(430px,auto);
 gap:22px;
 align-items:center;
}

.permission-description{
 min-width:0;
}

.permission-description strong{
 display:block;
 margin-bottom:4px;
 font-size:14px;
 line-height:1.3;
}

.permission-description span{
 display:block;
 color:#748188;
 font-family:Consolas,Monaco,monospace;
 font-size:11px;
 overflow-wrap:anywhere;
}

.permission-options{
 display:grid;
 grid-template-columns:repeat(3,minmax(120px,1fr));
 gap:8px;
 min-width:430px;
}

.decision-option{
 position:relative;
 display:flex;
 align-items:center;
 justify-content:center;
 min-height:38px;
 margin:0;
 padding:0;
 cursor:pointer;
 border:1px solid #bfc9ce;
 background:#fff;
 font-weight:700;
 font-size:12px;
 text-align:center;
}

.decision-option input{
 position:absolute;
 opacity:0;
 width:1px;
 height:1px;
}

.decision-option span{
 display:flex;
 align-items:center;
 justify-content:center;
 width:100%;
 min-height:38px;
 padding:7px 10px;
}

.decision-option.inherit input:checked+span{
 background:#e9edef;
 color:#39494f;
 box-shadow:inset 0 0 0 2px #7e8b91;
}

.decision-option.allow input:checked+span{
 background:#e7f6ec;
 color:#1f6e40;
 box-shadow:inset 0 0 0 2px #2c8650;
}

.decision-option.deny input:checked+span{
 background:#fff0ef;
 color:#a52319;
 box-shadow:inset 0 0 0 2px #c04439;
}

.decision-option:hover span{
 background:#f3f6f7;
}

.permission-validity{
 margin-top:10px;
 border-top:1px dashed #cbd4d8;
 padding-top:8px;
}

.permission-validity summary{
 display:inline-block;
 cursor:pointer;
 color:#506169;
 font-size:12px;
 font-weight:700;
}

.permission-validity summary:hover{
 color:#006f68;
}

.permission-dates{
 display:grid;
 grid-template-columns:repeat(2,minmax(210px,300px));
 gap:14px;
 margin-top:10px;
}

.permission-dates label{
 margin:0;
 font-size:12px;
 color:#506169;
}

.permission-dates input{
 margin-top:5px;
 height:38px;
}

.permissions-save-bar{
 position:sticky;
 bottom:0;
 z-index:12;
 border-top:3px solid var(--active);
 box-shadow:0 -4px 16px #0002;
}

.alert.info{
 background:#eef7fb;
 border-color:#acd0df;
 color:#245d73;
}

@media(max-width:1050px){
 .permission-item-main{
  grid-template-columns:1fr;
  gap:12px;
 }

 .permission-options{
  min-width:0;
  width:100%;
 }
}

@media(max-width:760px){
 .permissions-head,
 .permissions-toolbar,
 .permissions-save-bar{
  flex-direction:column;
  align-items:stretch;
 }

 .permissions-toolbar .btn,
 .permissions-save-bar .btn{
  width:100%;
 }

 .permission-item{
  padding:13px 12px;
 }

 .permission-options{
  grid-template-columns:1fr;
 }

 .decision-option,
 .decision-option span{
  min-height:40px;
 }

 .permission-dates{
  grid-template-columns:1fr;
 }

 .permission-group-title{
  padding:12px;
 }
}

/* Alpha 1.1c — ikony modułów w menu bocznym */
.nav-link{
 min-height:46px;
}

.nav-icon{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 width:22px;
 height:22px;
 flex:0 0 22px;
 color:#cbd5d9;
}

.nav-icon svg{
 display:block;
 width:20px;
 height:20px;
 fill:currentColor;
}

.nav-link:hover .nav-icon,
.nav-link.active .nav-icon{
 color:#ffffff;
}

.nav-label{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}

@media(max-width:720px){
 .nav-link .nav-label{
  display:none;
 }

 .nav-icon{
  width:24px;
  height:24px;
  flex-basis:24px;
 }

 .nav-icon svg{
  width:22px;
  height:22px;
 }
}

/* Alpha 1.2 — Wyszukiwarka członków */
.member-search-page{
 max-width:1500px;
}

.member-search-heading{
 margin-bottom:14px;
}

.member-search-heading h1{
 font-size:22px;
 font-weight:700;
}

.member-search-panel{
 padding:18px 20px;
 margin-bottom:16px;
}

.member-search-form{
 display:flex;
 flex-direction:column;
 gap:16px;
}

.member-search-fields{
 display:grid;
 grid-template-columns:repeat(3,minmax(190px,1fr));
 gap:14px 18px;
}

.member-search-fields label{
 margin:0;
}

.member-search-actions{
 display:flex;
 justify-content:flex-end;
 gap:10px;
 padding-top:2px;
}

.member-results-panel{
 overflow:hidden;
}

.member-results-header{
 display:flex;
 align-items:center;
 justify-content:space-between;
 padding:14px 17px;
 background:#f4f6f7;
 border-bottom:1px solid var(--border);
}

.member-results-header h2{
 margin:0 0 3px;
 font-size:16px;
}

.members-table{
 min-width:980px;
 table-layout:auto;
}

.members-table th{
 white-space:nowrap;
}

.members-table td{
 color:#111;
 white-space:nowrap;
}

.members-table tbody tr{
 transition:background-color .08s ease;
}

.members-table tbody tr:hover{
 filter:brightness(.98);
}

.member-row-active{
 background:#fff;
}

.member-row-inactive{
 background:#f2f3f4;
}

.member-row-suspended{
 background:#fff4e5;
}

.member-row-removed{
 background:#fdecec;
}

.member-id-link{
 display:inline-flex;
 align-items:center;
 gap:8px;
 color:#111;
 font-weight:700;
 text-decoration:none;
}

.member-envelope{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 width:25px;
 height:23px;
 border-radius:2px;
 background:#1776d2;
 color:#fff;
 box-shadow:inset 0 -1px 0 rgba(0,0,0,.16);
}

.member-envelope svg{
 display:block;
 width:16px;
 height:16px;
 fill:currentColor;
}

.member-id-link:hover .member-envelope{
 background:#0f65b8;
}

.member-id-link:hover{
 text-decoration:underline;
}

.empty-results{
 padding:28px!important;
 text-align:center!important;
 color:#5e6c72!important;
 background:#fff!important;
}

.member-card-page{
 max-width:1250px;
}

.member-card-head{
 align-items:flex-start;
}

.member-card-head h1{
 margin-bottom:4px;
}

.member-card-head p{
 margin:0;
}

.member-card-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(260px,1fr));
 gap:0;
 padding:18px;
}

.member-card-field{
 display:grid;
 grid-template-columns:minmax(140px,42%) 1fr;
 gap:14px;
 padding:12px 14px;
 border-bottom:1px solid #dce3e6;
}

.member-card-field:nth-child(odd){
 border-right:1px solid #dce3e6;
}

.member-card-field span{
 color:#5e6b71;
 font-size:12px;
 font-weight:700;
}

.member-card-field strong{
 color:#111;
}

@media(max-width:1050px){
 .member-search-fields{
  grid-template-columns:repeat(2,minmax(190px,1fr));
 }
}

@media(max-width:760px){
 .member-search-fields{
  grid-template-columns:1fr;
 }

 .member-search-actions{
  flex-direction:column-reverse;
 }

 .member-search-actions .btn{
  width:100%;
  text-align:center;
 }

 .member-card-grid{
  grid-template-columns:1fr;
 }

 .member-card-field:nth-child(odd){
  border-right:0;
 }

 .member-card-field{
  grid-template-columns:1fr;
  gap:5px;
 }
}

/* Alpha 1.3 — aktywne kafelki Kadry */
.attention-tiles{
 display:grid;
 grid-template-columns:repeat(4,minmax(180px,1fr));
 gap:14px;
 margin-bottom:18px;
}

.attention-tile{
 display:grid;
 grid-template-columns:1fr auto;
 grid-template-areas:
  "title count"
  "description count";
 gap:4px 16px;
 min-height:96px;
 padding:16px 17px;
 border:1px solid var(--border);
 color:#111;
 text-decoration:none;
 box-shadow:0 1px 2px #0001;
}

.attention-tile.clear{
 background:#fff;
}

.attention-tile.upcoming{
 background:#fff4e5;
}

.attention-tile.overdue{
 background:#fdecec;
}

.attention-tile:hover{
 filter:brightness(.985);
 border-color:#9daeb5;
}

.attention-tile-title{
 grid-area:title;
 align-self:end;
 font-weight:700;
 font-size:15px;
}

.attention-tile-count{
 grid-area:count;
 align-self:center;
 justify-self:end;
 font-size:34px;
 line-height:1;
 color:#111;
}

.attention-tile-description{
 grid-area:description;
 align-self:start;
 color:#536168;
 font-size:12px;
}

.attention-list-page{
 max-width:1400px;
}

.attention-table td{
 color:#111;
}

@media(max-width:1100px){
 .attention-tiles{
  grid-template-columns:repeat(2,minmax(180px,1fr));
 }
}

@media(max-width:680px){
 .attention-tiles{
  grid-template-columns:1fr;
 }

 .attention-tile{
  min-height:82px;
 }
}

/* Alpha 1.4 — dodawanie członka i komunikaty uprawnień */
.member-search-heading{
 align-items:center;
}

.member-create-page{
 max-width:1150px;
}

.member-create-panel{
 padding:20px;
}

.member-create-form{
 display:flex;
 flex-direction:column;
 gap:20px;
}

.member-create-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(260px,1fr));
 gap:16px 20px;
}

.member-create-grid label{
 margin:0;
}

.generated-member-id{
 grid-column:1/-1;
 display:grid;
 grid-template-columns:180px 1fr;
 gap:15px;
 align-items:center;
 padding:13px 15px;
 background:#f2f5f6;
 border:1px solid var(--border);
}

.generated-member-id span{
 font-size:12px;
 font-weight:700;
 color:#59676d;
}

.generated-member-id strong{
 color:#111;
}

.member-create-actions{
 display:flex;
 justify-content:flex-end;
 gap:10px;
 padding-top:16px;
 border-top:1px solid #dce3e6;
}

.form-errors{
 margin:8px 0 0 19px;
 padding:0;
}

.bottom-system-message{
 margin-top:18px;
 padding:15px 17px;
 border:1px solid #ddaaa7;
 background:#fdecec;
 color:#111;
 line-height:1.5;
 box-shadow:0 1px 2px #0001;
}

.bottom-system-message.permission-denied{
 border-left:5px solid #bb3d35;
}

@media(max-width:760px){
 .member-search-heading{
  align-items:stretch;
  flex-direction:column;
 }

 .member-search-heading .btn{
  width:100%;
  text-align:center;
 }

 .member-create-grid{
  grid-template-columns:1fr;
 }

 .generated-member-id{
  grid-column:auto;
  grid-template-columns:1fr;
  gap:5px;
 }

 .member-create-actions{
  flex-direction:column-reverse;
 }

 .member-create-actions .btn{
  width:100%;
  text-align:center;
 }
}

/* Alpha 1.5 — Karta Personalna Członka */
.personal-card-panel{
 margin-bottom:18px;
 background:#fff;
 border:1px solid var(--border);
 box-shadow:0 2px 8px #0002;
 scroll-margin-top:78px;
}

.personal-card-top{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:20px;
 padding:16px 18px;
 background:var(--top);
 color:#fff;
}

.personal-card-caption{
 display:block;
 margin-bottom:5px;
 font-size:11px;
 font-weight:700;
 letter-spacing:.08em;
 opacity:.82;
}

.personal-card-top h1{
 margin:0 0 6px;
 font-size:23px;
}

.personal-card-top p{
 margin:0;
 color:#dce8e9;
}

.personal-card-top p span{
 margin:0 8px;
 opacity:.6;
}

.personal-card-close{
 display:flex;
 align-items:center;
 justify-content:center;
 width:34px;
 height:34px;
 flex:0 0 34px;
 border:1px solid rgba(255,255,255,.35);
 color:#fff;
 text-decoration:none;
 font-size:26px;
 line-height:1;
}

.personal-card-close:hover{
 background:rgba(255,255,255,.12);
}

.personal-card-identity{
 display:grid;
 grid-template-columns:150px 1fr;
 gap:20px;
 padding:18px;
 border-bottom:1px solid var(--border);
}

.member-photo-placeholder{
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 width:140px;
 height:175px;
 background:#eef2f3;
 border:1px solid #c5d0d4;
 color:#65747a;
}

.member-photo-placeholder svg{
 width:65px;
 height:65px;
 fill:#89979d;
 margin-bottom:12px;
}

.member-photo-placeholder span{
 font-size:11px;
 font-weight:700;
}

.personal-card-summary{
 display:flex;
 flex-direction:column;
 justify-content:center;
 gap:8px;
}

.personal-card-summary strong{
 font-size:24px;
 color:#111;
}

.personal-card-summary span{
 color:#303d42;
}

.personal-data-tiles{
 display:grid;
 grid-template-columns:repeat(4,minmax(190px,1fr));
 gap:12px;
 padding:14px 18px;
 background:#f3f6f7;
 border-bottom:1px solid var(--border);
}

.personal-tile{
 display:flex;
 flex-direction:column;
 min-height:118px;
 padding:13px 14px;
 border:1px solid #c8d1d5;
 color:#111;
 text-decoration:none;
}

.personal-tile.neutral{
 background:#fff;
}

.personal-tile.warning{
 background:#fff4e5;
}

.personal-tile.alert{
 background:#fdecec;
}

.personal-tile:hover{
 border-color:#7d929b;
 filter:brightness(.99);
}

.personal-tile-title{
 margin-bottom:10px;
 font-size:12px;
 font-weight:700;
 color:#536168;
}

.personal-tile strong{
 margin-bottom:9px;
 font-size:17px;
 color:#111;
}

.personal-tile small{
 display:block;
 margin-top:3px;
 color:#2e3a3f;
 font-size:11px;
}

.personal-card-tabs{
 display:flex;
 overflow-x:auto;
 background:#e8edef;
 border-bottom:1px solid var(--border);
}

.personal-card-tabs button{
 flex:0 0 auto;
 padding:12px 15px;
 border:0;
 border-right:1px solid #c9d2d6;
 background:transparent;
 color:#26363c;
 font-weight:700;
}

.personal-card-tabs button.active{
 background:#fff;
 border-top:3px solid var(--active);
 padding-top:9px;
}

.personal-card-body{
 padding:18px;
}

.personal-card-profile-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(230px,1fr));
 border:1px solid #d6dee1;
}

.personal-card-profile-grid>div{
 display:grid;
 grid-template-columns:minmax(140px,42%) 1fr;
 gap:12px;
 padding:11px 13px;
 border-bottom:1px solid #dce3e6;
}

.personal-card-profile-grid>div:nth-child(odd){
 border-right:1px solid #dce3e6;
}

.personal-card-profile-grid span{
 color:#5d6a70;
 font-size:12px;
 font-weight:700;
}

.personal-card-profile-grid strong{
 color:#111;
}

.card-modal-backdrop{
 position:fixed;
 inset:0;
 z-index:100;
 display:flex;
 align-items:flex-start;
 justify-content:center;
 overflow:auto;
 padding:40px 20px;
 background:rgba(13,28,31,.68);
}

.card-modal-window{
 width:min(1120px,100%);
 max-height:calc(100vh - 80px);
 overflow:auto;
 background:#fff;
 border:1px solid #9eacb2;
 box-shadow:0 18px 55px #0008;
}

.card-modal-head{
 position:sticky;
 top:0;
 z-index:3;
 display:flex;
 align-items:center;
 justify-content:space-between;
 padding:14px 17px;
 background:var(--top);
 color:#fff;
}

.card-modal-head h2{
 margin:0;
 font-size:19px;
}

.card-modal-close{
 display:flex;
 align-items:center;
 justify-content:center;
 width:32px;
 height:32px;
 border:1px solid rgba(255,255,255,.35);
 color:#fff;
 text-decoration:none;
 font-size:25px;
}

.card-modal-content{
 padding:18px;
}

.card-update-form{
 margin-bottom:24px;
 padding:17px;
 background:#f5f7f8;
 border:1px solid var(--border);
}

.card-form-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(230px,1fr));
 gap:15px 18px;
}

.card-form-grid label{
 margin:0;
}

.card-form-grid .wide{
 grid-column:1/-1;
}

.card-form-grid textarea{
 display:block;
 width:100%;
 margin-top:5px;
 padding:9px 10px;
 border:1px solid #adb8bd;
 font:inherit;
 resize:vertical;
}

.card-form-actions{
 display:flex;
 justify-content:flex-end;
 gap:10px;
 margin-top:16px;
 padding-top:15px;
 border-top:1px solid #d7dfe2;
}

.card-modal-content h3{
 margin:22px 0 10px;
 font-size:16px;
}

.history-table{
 min-width:850px;
}

.form-hint{
 margin:12px 0 0;
 color:#59676d;
 font-size:12px;
}

@media(max-width:1050px){
 .personal-data-tiles{
  grid-template-columns:repeat(2,minmax(190px,1fr));
 }
}

@media(max-width:760px){
 .personal-card-identity{
  grid-template-columns:1fr;
 }

 .member-photo-placeholder{
  width:120px;
  height:150px;
 }

 .personal-data-tiles{
  grid-template-columns:1fr;
 }

 .personal-card-profile-grid{
  grid-template-columns:1fr;
 }

 .personal-card-profile-grid>div:nth-child(odd){
  border-right:0;
 }

 .personal-card-profile-grid>div{
  grid-template-columns:1fr;
  gap:5px;
 }

 .card-form-grid{
  grid-template-columns:1fr;
 }

 .card-form-grid .wide{
  grid-column:auto;
 }

 .card-form-actions{
  flex-direction:column-reverse;
 }

 .card-form-actions .btn{
  width:100%;
  text-align:center;
 }

 .card-modal-backdrop{
  padding:12px;
 }

 .card-modal-window{
  max-height:calc(100vh - 24px);
 }
}

/* Alpha 1.6 — pełna Karta Personalna */
.personal-card-backdrop{
 z-index:90;
}

.personal-card-modal{
 width:min(1280px,100%);
}

.personal-card-modal-head{
 align-items:center;
}

.personal-card-head-actions{
 display:flex;
 align-items:center;
 gap:10px;
}

.personal-edit-button{
 padding:8px 12px;
 background:var(--accent);
 border-color:#c88708;
 color:#182226;
}

.personal-card-modal-content{
 padding:0;
}

.personal-card-main-grid{
 display:grid;
 grid-template-columns:160px minmax(280px,1fr) minmax(260px,.8fr);
 gap:20px;
 padding:20px;
 border-bottom:1px solid var(--border);
}

.personal-card-primary-data,
.personal-card-service-data{
 display:flex;
 flex-direction:column;
 justify-content:center;
 gap:4px;
}

.personal-primary-row{
 display:grid;
 grid-template-columns:150px 1fr;
 gap:12px;
 padding:10px 0;
 border-bottom:1px solid #dce3e6;
}

.personal-primary-row span{
 color:#59686e;
 font-size:12px;
 font-weight:700;
}

.personal-primary-row strong{
 color:#111;
}

.personal-primary-row.emphasized strong{
 font-size:20px;
}

.personal-card-contact-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(180px,1fr));
 border-bottom:1px solid var(--border);
}

.personal-card-contact-grid>div{
 padding:13px 15px;
 border-right:1px solid #dce3e6;
 border-bottom:1px solid #dce3e6;
}

.personal-card-contact-grid>div:nth-child(3n){
 border-right:0;
}

.personal-card-contact-grid .wide{
 grid-column:span 2;
}

.personal-card-contact-grid span{
 display:block;
 margin-bottom:5px;
 color:#59686e;
 font-size:12px;
 font-weight:700;
}

.personal-card-contact-grid strong{
 color:#111;
}

.member-edit-page{
 max-width:1350px;
}

.personal-edit-form{
 display:flex;
 flex-direction:column;
 gap:16px;
}

.personal-edit-section{
 padding:18px;
}

.personal-edit-section h2{
 margin:0 0 16px;
 font-size:18px;
}

.personal-edit-section h3{
 margin:20px 0 10px;
 font-size:14px;
}

.personal-edit-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(200px,1fr));
 gap:14px 18px;
}

.personal-edit-grid label{
 margin:0;
}

.address-grid{
 grid-template-columns:1fr 1.5fr 2fr .7fr .7fr;
}

.checkbox-label{
 display:flex;
 align-items:center;
 gap:8px;
 margin:18px 0 0;
 font-weight:700;
}

.checkbox-label input{
 width:auto;
 margin:0;
}

.personal-edit-actions{
 position:sticky;
 bottom:0;
 z-index:10;
 display:flex;
 justify-content:flex-end;
 gap:10px;
 padding:15px 18px;
 background:#fff;
 border:1px solid var(--border);
 border-top:3px solid var(--active);
 box-shadow:0 -4px 16px #0002;
}

@media(max-width:1050px){
 .personal-card-main-grid{
  grid-template-columns:140px 1fr;
 }

 .personal-card-service-data{
  grid-column:2;
 }

 .personal-edit-grid{
  grid-template-columns:repeat(2,minmax(200px,1fr));
 }

 .address-grid{
  grid-template-columns:repeat(2,minmax(180px,1fr));
 }
}

@media(max-width:760px){
 .personal-card-main-grid{
  grid-template-columns:1fr;
 }

 .personal-card-service-data{
  grid-column:auto;
 }

 .personal-card-contact-grid{
  grid-template-columns:1fr;
 }

 .personal-card-contact-grid .wide{
  grid-column:auto;
 }

 .personal-card-contact-grid>div{
  border-right:0;
 }

 .personal-primary-row{
  grid-template-columns:1fr;
  gap:4px;
 }

 .personal-edit-grid,
 .address-grid{
  grid-template-columns:1fr;
 }

 .personal-edit-actions{
  flex-direction:column-reverse;
 }

 .personal-edit-actions .btn{
  width:100%;
  text-align:center;
 }

 .personal-card-head-actions{
  gap:6px;
 }

 .personal-edit-button{
  font-size:11px;
  padding:7px 8px;
 }
}

/* Alpha 1.7 — panel Kadry i zakładki Karty Personalnej */
.cadre-dashboard-page{max-width:1500px}
.cadre-dashboard-head{align-items:center}
.cadre-actions-panel{margin-top:16px;padding:18px}
.cadre-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px}
.cadre-action{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid var(--border);background:#fff;color:#111;text-decoration:none}
.cadre-action:hover{background:#f4f7f8;border-color:#9eafb6}
.cadre-action strong{font-size:15px}
.cadre-action span{color:#5d6a70;font-size:12px}
.personal-card-tabs a{flex:0 0 auto;padding:12px 15px;border-right:1px solid #c9d2d6;color:#26363c;font-weight:700;text-decoration:none;white-space:nowrap}
.personal-card-tabs a.active{background:#fff;border-top:3px solid var(--active);padding-top:9px}
.personal-tab-section h3{margin:0 0 14px;font-size:16px}
.personal-card-profile-grid .wide{grid-column:1/-1}
.personal-tab-placeholder{padding:28px;text-align:center;background:#f6f8f9;border:1px solid #d7dfe2}
.personal-tab-placeholder strong{display:block;margin-bottom:7px;font-size:17px}
.personal-tab-placeholder p{margin:0;color:#607077}
@media(max-width:760px){
 .cadre-dashboard-head{flex-direction:column;align-items:stretch}
 .cadre-dashboard-head .btn{width:100%;text-align:center}
 .cadre-actions-grid{grid-template-columns:1fr}
}

/* Alpha 1.8 - dokument osobowy KAD0001 */
.personal-documents-section{
 display:flex;
 flex-direction:column;
 gap:14px;
}

.personal-documents-head h3{
 margin:0 0 5px;
}

.personal-documents-head p{
 margin:0;
}

.personal-document-card{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:20px;
 padding:16px 17px;
 border:1px solid var(--border);
 background:#f7f9fa;
}

.personal-document-card>div{
 display:flex;
 flex-direction:column;
 gap:5px;
}

.personal-document-card strong{
 font-size:15px;
 color:#111;
}

.personal-document-card span{
 color:#59676d;
 font-size:12px;
}

.document-history-title{
 margin:8px 0 0!important;
}

@media(max-width:760px){
 .personal-document-card{
  flex-direction:column;
  align-items:stretch;
 }

 .personal-document-card .btn{
  width:100%;
  text-align:center;
 }
}

/* Alpha 1.9 — konfiguracja jednostki */
.unit-config-page{
 max-width:1450px;
}

.unit-config-layout{
 display:grid;
 grid-template-columns:minmax(0,1fr) 360px;
 gap:16px;
 margin-bottom:16px;
}

.unit-config-panel,
.unit-logo-panel{
 min-width:0;
}

.fixed-layout-notice,
.document-header-lock{
 margin-bottom:16px;
 padding:12px 14px;
 border:1px solid #d8b56c;
 background:#fff6e4;
 color:#111;
 line-height:1.45;
}

.unit-config-form{
 display:flex;
 flex-direction:column;
 gap:13px;
}

.unit-config-form label,
.unit-logo-form label{
 margin:0;
}

.unit-config-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(180px,1fr));
 gap:14px;
}

.unit-config-actions{
 display:flex;
 justify-content:flex-end;
 padding-top:4px;
}

.unit-logo-preview{
 display:flex;
 align-items:center;
 justify-content:center;
 height:250px;
 margin-bottom:16px;
 padding:15px;
 border:1px solid var(--border);
 background:#f4f6f7;
}

.unit-logo-preview img{
 display:block;
 max-width:100%;
 max-height:220px;
 width:auto;
 height:auto;
 object-fit:contain;
}

.unit-logo-preview span{
 color:#647278;
 font-weight:700;
}

.unit-logo-help{
 margin:10px 0 0;
 font-size:12px;
 line-height:1.45;
}

.document-header-preview-panel{
 margin-bottom:20px;
}

.official-header-preview{
 display:grid;
 grid-template-columns:180px minmax(0,1fr);
 gap:28px;
 align-items:center;
 min-height:150px;
 padding:22px 24px;
 border:1px solid #cdd5d8;
 background:#fff;
 color:#000;
 font-family:Arial,sans-serif;
}

.official-header-logo{
 display:flex;
 align-items:center;
 justify-content:flex-start;
 height:105px;
}

.official-header-logo img{
 display:block;
 max-width:155px;
 max-height:105px;
 width:auto;
 height:auto;
 object-fit:contain;
}

.official-header-data{
 display:flex;
 flex-direction:column;
 align-items:flex-end;
 justify-content:center;
 min-width:0;
 text-align:right;
 line-height:1.32;
}

.official-header-data strong{
 margin-bottom:3px;
 font-size:24px;
}

.official-header-data>span{
 font-size:18px;
}

.official-header-contacts{
 white-space:nowrap;
 font-size:16px!important;
}

@media(max-width:1050px){
 .unit-config-layout{
  grid-template-columns:1fr;
 }

 .unit-config-grid{
  grid-template-columns:1fr;
 }

 .official-header-preview{
  grid-template-columns:140px minmax(0,1fr);
 }

 .official-header-data strong{
  font-size:20px;
 }

 .official-header-data>span{
  font-size:15px;
 }

 .official-header-contacts{
  font-size:12px!important;
 }
}

@media(max-width:720px){
 .official-header-preview{
  grid-template-columns:1fr;
 }

 .official-header-logo{
  justify-content:center;
 }

 .official-header-data{
  align-items:flex-end;
 }

 .official-header-contacts{
  white-space:normal;
 }
}

/* Alpha 2.0 — Opinia służbowa KAD0002 / KAD0003 */
.service-opinion-editor-page{max-width:1450px}
.service-opinion-head-actions{display:flex;gap:10px;align-items:center}
.service-opinion-form{display:flex;flex-direction:column;gap:16px}
.service-opinion-form-section h2{margin:0 0 16px}
.service-opinion-form-section h3{margin:20px 0 10px;font-size:15px}
.service-opinion-form-section label{margin-bottom:13px}
.service-opinion-form-section textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #adb8bd;font:inherit;resize:vertical}
.service-opinion-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px 18px}
.service-opinion-auto-data{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));border:1px solid var(--border);margin-bottom:17px}
.service-opinion-auto-data>div{padding:11px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.service-opinion-auto-data span{display:block;margin-bottom:4px;color:#5e6b70;font-size:11px;font-weight:700}
.service-opinion-auto-data strong{color:#111}
.service-opinion-checkboxes{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:8px 15px;padding:13px;border:1px solid var(--border);background:#f7f9fa}
.service-opinion-checkboxes label{display:flex;align-items:flex-start;gap:7px;margin:0;font-weight:400;line-height:1.35}
.service-opinion-checkboxes input{width:auto;margin-top:2px}
.service-opinion-save-bar{position:sticky;bottom:0;z-index:15;display:flex;justify-content:flex-end;gap:10px;padding:14px 17px;background:#fff;border:1px solid var(--border);border-top:3px solid var(--active);box-shadow:0 -4px 16px #0002}
.cadre-documents-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.history-actions{white-space:nowrap}
.history-actions a{margin-right:10px}
@media(max-width:900px){
 .service-opinion-auto-data{grid-template-columns:repeat(2,minmax(160px,1fr))}
 .service-opinion-checkboxes{grid-template-columns:1fr}
}
@media(max-width:700px){
 .service-opinion-head-actions,.cadre-documents-head{flex-direction:column;align-items:stretch}
 .service-opinion-grid,.service-opinion-auto-data{grid-template-columns:1fr}
 .service-opinion-save-bar{flex-direction:column-reverse}
 .service-opinion-save-bar .btn{width:100%;text-align:center}
}


/* Alpha 2.1 — rozdzielone części opinii */
.service-opinion-part-cards{
 display:grid;
 grid-template-columns:repeat(2,minmax(280px,1fr));
 gap:14px;
}
@media(max-width:800px){
 .service-opinion-part-cards{grid-template-columns:1fr}
}


/* Alpha 2.2 — modal opinii i checklisty */
.opinion-modal-backdrop{z-index:110}
.opinion-modal-window{
 width:min(1320px,100%);
 max-height:calc(100vh - 40px);
}
.modal-form-section{
 padding:0;
 border:0;
}
.opinion-criteria-table{
 min-width:760px;
 margin:10px 0 20px;
 border:1px solid var(--border);
}
.opinion-criteria-head,
.opinion-criteria-row{
 display:grid;
 grid-template-columns:minmax(320px,1fr) repeat(6,56px);
}
.opinion-criteria-head{
 background:#e8edef;
 font-weight:700;
}
.opinion-criteria-head span,
.opinion-criteria-row>span,
.opinion-criteria-row label{
 display:flex;
 align-items:center;
 justify-content:center;
 min-height:42px;
 padding:7px;
 border-right:1px solid var(--border);
 border-bottom:1px solid var(--border);
}
.opinion-criteria-head span:first-child,
.opinion-criteria-row>span{
 justify-content:flex-start;
}
.opinion-criteria-row label{
 margin:0;
 cursor:pointer;
}
.opinion-criteria-row input{
 width:auto;
 margin:0;
}
.opinion-modal-actions{
 position:sticky;
 bottom:0;
 z-index:5;
 margin:20px -18px -18px;
 padding:14px 18px;
 background:#fff;
 box-shadow:0 -4px 14px #0002;
}
@media(max-width:850px){
 .opinion-criteria-table{overflow-x:auto}
 .opinion-modal-actions{flex-direction:column-reverse}
 .opinion-modal-actions .btn{width:100%;text-align:center}
}


/* Alpha 2.4 — zapis i bezpośrednie generowanie PDF */
.opinion-modal-actions button{
 min-width:180px;
}


/* Alpha 2.7 — pełne nazwy ocen bez numerów */
.opinion-criteria-head,
.opinion-criteria-row{
 grid-template-columns:minmax(390px,1fr) repeat(6,minmax(92px,1fr));
}

.criterion-score-label{
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 min-height:62px!important;
 padding:7px 5px!important;
 font-size:11px;
 line-height:1.15;
 text-align:center;
 white-space:normal;
}

.criteria-table.compact-12 .score-label{
 font-size:5.9pt;
 line-height:1.05;
 text-align:center;
 overflow-wrap:normal;
 word-break:normal;
 hyphens:auto;
}

.criteria-table .score-head{
 height:auto;
}

.criteria-table .score-head .vertical{
 writing-mode:horizontal-tb;
 transform:none;
 white-space:normal;
 font-size:6pt;
 line-height:1.08;
}


/* Alpha 2.7a — pełne nazwy ocen */
.opinion-criteria-head,
.opinion-criteria-row{
 grid-template-columns:minmax(420px,1fr) repeat(6,minmax(118px,1fr));
}

.criterion-score-label{
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 min-height:68px!important;
 padding:8px 6px!important;
 font-size:11px!important;
 font-weight:700;
 line-height:1.15!important;
 text-align:center;
 white-space:normal;
}

.named-score-option{
 display:flex!important;
 flex-direction:column;
 align-items:center!important;
 justify-content:center!important;
 gap:5px;
 min-height:62px!important;
 margin:0!important;
 padding:5px!important;
 text-align:center;
 cursor:pointer;
}

.named-score-option input{
 width:auto!important;
 margin:0!important;
}

.named-score-option span{
 display:block;
 font-size:10px;
 line-height:1.12;
 font-weight:600;
}

.criteria-table.compact-12 .score-label,
.criteria-table .score-label{
 font-size:5.8pt!important;
 line-height:1.05!important;
 text-align:center!important;
 white-space:normal!important;
 word-break:normal!important;
 overflow-wrap:normal!important;
}

.criteria-table .score-head .vertical{
 writing-mode:horizontal-tb!important;
 transform:none!important;
 white-space:normal!important;
}


/* Alpha 2.8 — Część I, przesunięcie terminu opiniowania */
.postponement-checklist{
 grid-template-columns:1fr!important;
 margin-bottom:20px;
}

.postponement-checklist label{
 display:grid!important;
 grid-template-columns:24px minmax(0,1fr);
 align-items:start!important;
 gap:9px!important;
 padding:10px 11px;
 border:1px solid var(--border);
 background:#fff;
}

.postponement-checklist label + label{
 margin-top:7px!important;
}

.postponement-checklist input{
 margin-top:2px!important;
}

.postponement-checklist span{
 line-height:1.4;
}


/* Alpha 2.9 — wnioski o skierowanie na badania */
.medical-request-cards{margin-top:14px}


/* Alpha 3.0 — bezpieczne usuwanie członków */
.member-delete-button,
.member-delete-confirm{
 border-color:#a72d2d!important;
 background:#b83a3a!important;
 color:#fff!important;
}

.member-delete-button:hover,
.member-delete-confirm:hover{
 background:#9f2e2e!important;
}

.member-delete-backdrop{
 z-index:140;
}

.member-delete-modal{
 width:min(650px,100%);
}

.member-delete-modal-head{
 border-bottom-color:#d8a3a3;
}

.member-delete-warning{
 margin-bottom:18px;
 padding:14px 16px;
 border:1px solid #dc9999;
 background:#fdeaea;
 color:#111;
}

.member-delete-warning strong{
 display:block;
 margin-bottom:8px;
 font-size:15px;
}

.member-delete-warning p{
 margin:5px 0;
 line-height:1.45;
}

.member-delete-summary{
 display:grid;
 grid-template-columns:150px minmax(0,1fr);
 margin-bottom:18px;
 border:1px solid var(--border);
}

.member-delete-summary span,
.member-delete-summary strong{
 padding:10px 12px;
 border-bottom:1px solid var(--border);
}

.member-delete-summary span{
 background:#f1f4f5;
 font-size:12px;
 font-weight:700;
}

.member-delete-form label{
 display:block;
 margin-bottom:15px;
 font-weight:700;
}

.member-delete-form textarea,
.member-delete-form input{
 display:block;
 width:100%;
 margin-top:7px;
}

@media(max-width:650px){
 .member-delete-summary{
  grid-template-columns:1fr;
 }
}


/* Alpha 3.1 — zakładka Wyszkolenie */
.training-tab-section{display:flex;flex-direction:column;gap:16px}
.training-kpp-card{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:16px;
 padding:14px 16px;
 border:1px solid var(--border);
 background:#f7f9fa;
}
.training-kpp-card>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.training-kpp-label{font-weight:800;font-size:16px}
.training-kpp-card strong{font-size:15px}
.training-kpp-card small{color:#4f5e63}
.training-section-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:16px;
}
.training-section-head h3{margin:0 0 4px}
.training-table{width:100%;border-collapse:collapse}
.training-table th,.training-table td{
 padding:10px 11px;
 border-bottom:1px solid var(--border);
 text-align:left;
 vertical-align:top;
}
.training-table th{background:#edf1f2;font-size:12px}
.training-expired{background:#fdecec}
.training-archived-label{
 display:inline-block;
 margin-left:7px;
 padding:2px 5px;
 border:1px solid #9b7d2b;
 background:#fff4cf;
 font-size:9px;
 font-weight:800;
}
.training-modal-window{width:min(920px,100%)}
.training-form label{display:block;margin-bottom:14px;font-weight:700}
.training-form select,.training-form input,.training-form textarea{
 display:block;
 width:100%;
 margin-top:6px;
}
.link-button{
 padding:0;
 border:0;
 background:none;
 font:inherit;
 cursor:pointer;
 text-decoration:underline;
}
.danger-link{color:#9c2525}
@media(max-width:720px){
 .training-section-head,.training-kpp-card{
  flex-direction:column;
  align-items:stretch;
 }
}


/* Alpha 3.2 — dynamiczne kafelki Kadry */
.cadre-dynamic-information,
.cadre-live-note{
 margin:12px 0 18px;
 padding:11px 14px;
 border-left:4px solid #2d7378;
 background:#edf6f6;
 font-size:13px;
 line-height:1.45;
}

.attention-open-member{
 white-space:nowrap;
}

.attention-table td{
 vertical-align:middle;
}

.attention-tile-count{
 font-variant-numeric:tabular-nums;
}

@media(max-width:760px){
 .attention-open-member{
  display:block;
  width:100%;
  text-align:center;
 }
}


/* Alpha 3.3 — wnioski o wypłatę ekwiwalentu */
.equivalent-request-cards{margin-top:14px}
.equivalent-request-modal{width:min(980px,100%)}
.equivalent-legal-information{
 margin:14px 0;
 padding:12px 14px;
 border-left:4px solid #2d7378;
 background:#edf6f6;
 font-size:12px;
 line-height:1.45;
}
.equivalent-calculation-fields input[readonly]{
 background:#edf1f2;
 font-weight:700;
}

.config-section-separator{margin:26px 0 20px;border:0;border-top:1px solid #d5dcde}
.equivalent-recipient-preview{margin:12px 0 18px;padding:12px 14px;border-left:4px solid #2d7378;background:#edf6f6;line-height:1.45}
.equivalent-events-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 10px}
.equivalent-events-toolbar span{display:block;margin-top:3px;font-size:12px;color:#5d696d}
.equivalent-events-table input[type=checkbox]{width:18px;height:18px}


/* Alpha 3.5 — Umundurowanie */
.uniform-tab-head,
.uniform-multi-head{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:16px;
}
.uniform-tab-actions{
 display:flex;
 gap:10px;
}
.uniform-operation-table select{
 min-width:280px;
}
.uniform-operation-total{
 margin:18px 0;
 text-align:right;
 font-size:15px;
}
.uniform-operation-total strong{
 margin-left:8px;
 font-size:18px;
}
.uniform-remove-row{
 min-width:36px;
 padding:6px 10px;
}
@media(max-width:760px){
 .uniform-tab-head,
 .uniform-multi-head{
  align-items:stretch;
  flex-direction:column;
 }
 .uniform-tab-actions{
  width:100%;
 }
 .uniform-tab-actions .btn{
  flex:1;
  text-align:center;
 }
}


/* Alpha 3.5a — aktualna wartość umundurowania członka */
.uniform-value-summary{
 display:inline-flex;
 flex-direction:column;
 align-items:flex-start;
 min-width:290px;
 margin:0 0 18px;
 padding:14px 18px;
 border-left:5px solid #2d7378;
 background:#edf6f6;
 box-shadow:0 1px 3px #0001;
}
.uniform-value-summary span{
 font-size:12px;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.25px;
 color:#4a5d61;
}
.uniform-value-summary strong{
 margin-top:4px;
 font-size:25px;
 line-height:1.15;
 color:#183f42;
}
.uniform-value-summary small{
 margin-top:5px;
 max-width:330px;
 font-size:11px;
 line-height:1.35;
 color:#667477;
}
.uniform-unit-value-note{
 display:block;
 margin-top:2px;
 color:#667477;
 white-space:nowrap;
}


/* CBDOSP UI Kit 1.0 — Alpha 3.6 */
:root{
 --cbd-bg:#edf1f2;
 --cbd-surface:#ffffff;
 --cbd-surface-soft:#f5f7f8;
 --cbd-border:#ccd6d8;
 --cbd-border-strong:#9faeb1;
 --cbd-text:#203235;
 --cbd-muted:#657579;
 --cbd-navy:#112f33;
 --cbd-navy-deep:#092326;
 --cbd-teal:#176a70;
 --cbd-teal-dark:#0f565b;
 --cbd-blue:#315f7b;
 --cbd-orange:#dd9300;
 --cbd-orange-dark:#b97700;
 --cbd-danger:#b94343;
 --cbd-radius:4px;
 --cbd-shadow-sm:0 1px 3px rgba(8,34,37,.12);
 --cbd-shadow-lg:0 22px 70px rgba(0,0,0,.38);
 --cbd-font:Arial,"Segoe UI",sans-serif;
}

.cbd-modal-page{
 min-height:100vh;
 padding:18px;
 background:var(--cbd-bg);
 color:var(--cbd-text);
 font-family:var(--cbd-font);
 box-sizing:border-box;
}
.cbd-modal-page *,
.cbd-modal-page *::before,
.cbd-modal-page *::after{
 box-sizing:border-box;
}
.cbd-form-shell{
 min-height:calc(100vh - 36px);
 border:1px solid var(--cbd-border);
 border-radius:var(--cbd-radius);
 background:var(--cbd-surface);
 box-shadow:var(--cbd-shadow-sm);
 overflow:hidden;
}
.cbd-form-shell form{
 display:flex;
 min-height:calc(100vh - 38px);
 flex-direction:column;
}
.cbd-person-strip{
 display:grid;
 grid-template-columns:1fr 1.5fr 1fr;
 border-bottom:1px solid var(--cbd-border);
 background:var(--cbd-surface-soft);
}
.cbd-person-strip__item{
 display:flex;
 min-height:74px;
 flex-direction:column;
 justify-content:center;
 gap:5px;
 padding:14px 20px;
 border-right:1px solid var(--cbd-border);
}
.cbd-person-strip__item:last-child{
 border-right:0;
}
.cbd-person-strip__label{
 font-size:10px;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.5px;
 color:var(--cbd-muted);
}
.cbd-person-strip__item strong{
 font-size:15px;
 color:var(--cbd-text);
}
.cbd-person-strip__person strong{
 font-size:18px;
}
.cbd-form-toolbar{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:20px;
 padding:18px 20px 14px;
}
.cbd-form-toolbar h2{
 margin:0 0 4px;
 font-size:17px;
 color:var(--cbd-text);
}
.cbd-form-toolbar p{
 margin:0;
 font-size:12px;
 color:var(--cbd-muted);
}
.cbd-btn-icon{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:7px;
}
.cbd-btn-icon span{
 font-size:17px;
 line-height:1;
}
.cbd-table-frame{
 position:relative;
 min-height:190px;
 margin:0 20px;
 border:1px solid var(--cbd-border-strong);
 background:var(--cbd-surface);
 overflow:auto;
}
.cbd-data-table{
 width:100%;
 min-width:790px;
 margin:0;
 border-collapse:collapse;
}
.cbd-data-table th{
 padding:11px 10px;
 border-right:1px solid var(--cbd-border);
 border-bottom:1px solid var(--cbd-border-strong);
 background:#e8edef;
 color:#33494d;
 font-size:11px;
 font-weight:700;
 text-align:left;
 text-transform:uppercase;
 letter-spacing:.28px;
 white-space:nowrap;
}
.cbd-data-table td{
 height:54px;
 padding:8px 10px;
 border-right:1px solid #dde4e5;
 border-bottom:1px solid #dde4e5;
 background:#fff;
 vertical-align:middle;
}
.cbd-data-table th:last-child,
.cbd-data-table td:last-child{
 border-right:0;
}
.cbd-data-table tbody tr:last-child td{
 border-bottom:0;
}
.cbd-data-table tbody tr:hover td{
 background:#f6fafa;
}
.cbd-data-table tbody tr.is-complete td:first-child{
 box-shadow:inset 4px 0 0 var(--cbd-teal);
}
.uniform-operation-return
.cbd-data-table tbody tr.is-complete td:first-child{
 box-shadow:inset 4px 0 0 var(--cbd-blue);
}
.cbd-col-lp{
 width:58px;
 text-align:center!important;
}
.cbd-col-actions{
 width:56px;
}
.uniform-row-number,
.uniform-row-size,
.uniform-row-unit-value,
.uniform-row-usable-period,
.uniform-row-actions{
 text-align:center;
}
.uniform-row-product{
 min-width:330px;
}
.cbd-data-table select{
 width:100%;
 min-height:37px;
 padding:7px 34px 7px 10px;
 border:1px solid #afbdc0;
 border-radius:var(--cbd-radius);
 background:#fff;
 color:var(--cbd-text);
 font:inherit;
}
.cbd-data-table select:focus{
 outline:0;
 border-color:var(--cbd-teal);
 box-shadow:0 0 0 3px rgba(23,106,112,.14);
}
.cbd-icon-button{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 width:32px;
 height:32px;
 padding:0;
 border:1px solid var(--cbd-border);
 border-radius:var(--cbd-radius);
 background:#fff;
 color:var(--cbd-text);
 font-size:20px;
 line-height:1;
 cursor:pointer;
}
.cbd-icon-button.danger{
 border-color:#dfb6b6;
 color:var(--cbd-danger);
}
.cbd-icon-button.danger:hover{
 border-color:var(--cbd-danger);
 background:var(--cbd-danger);
 color:#fff;
}
.cbd-empty-state{
 position:absolute;
 inset:43px 0 0;
 display:flex;
 align-items:center;
 justify-content:center;
 flex-direction:column;
 gap:6px;
 padding:30px;
 text-align:center;
 color:var(--cbd-muted);
}
.cbd-empty-state[hidden]{
 display:none!important;
}
.cbd-empty-state strong{
 color:var(--cbd-text);
 font-size:15px;
}
.cbd-empty-state span{
 font-size:12px;
}
.cbd-form-balance{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 gap:30px;
 margin-top:auto;
 padding:28px 20px 22px;
}
.cbd-form-balance__meta{
 display:flex;
 gap:18px;
 font-size:12px;
 color:var(--cbd-muted);
}
.cbd-form-balance__meta strong{
 color:var(--cbd-text);
}
.cbd-form-balance__value{
 display:flex;
 align-items:flex-end;
 flex-direction:column;
 gap:4px;
}
.cbd-form-balance__value span{
 font-size:11px;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.35px;
 color:var(--cbd-muted);
}
.cbd-form-balance__value strong{
 font-size:28px;
 line-height:1;
 color:var(--cbd-text);
}
.cbd-form-footer{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:18px;
 padding:14px 20px;
 border-top:1px solid var(--cbd-border);
 background:var(--cbd-surface-soft);
}
.cbd-form-footer__actions{
 display:flex;
 align-items:center;
 gap:10px;
}
.cbd-form-footer .btn{
 min-width:130px;
 border-radius:var(--cbd-radius);
}
.cbd-form-footer .btn.primary,
.cbd-form-toolbar .btn.primary{
 background:var(--cbd-orange);
 border-color:var(--cbd-orange-dark);
 color:#162326;
}
.cbd-form-footer .btn.primary:hover,
.cbd-form-toolbar .btn.primary:hover{
 background:#eba514;
}

/* Profesjonalny modal CBDOSP */
body.uniform-modal-open{
 overflow:hidden;
}
.uniform-operation-modal[hidden]{
 display:none!important;
}
.uniform-operation-modal{
 position:fixed;
 inset:0;
 z-index:9999;
 display:flex;
 align-items:center;
 justify-content:center;
 padding:32px;
}
.uniform-operation-modal-backdrop{
 position:absolute;
 inset:0;
 background:rgba(5,25,28,.76);
 backdrop-filter:blur(3px);
}
.uniform-operation-modal-dialog{
 position:relative;
 z-index:1;
 display:flex;
 width:min(1180px,calc(100vw - 64px));
 height:min(820px,calc(100vh - 64px));
 flex-direction:column;
 border:1px solid #789094;
 border-radius:6px;
 background:var(--cbd-surface);
 box-shadow:var(--cbd-shadow-lg);
 overflow:hidden;
}
.uniform-operation-modal-header{
 display:flex;
 min-height:72px;
 align-items:center;
 justify-content:space-between;
 gap:18px;
 padding:13px 16px 13px 20px;
 border-bottom:4px solid var(--cbd-teal);
 background:var(--cbd-navy);
 color:#fff;
}
.uniform-operation-modal-header h2{
 margin:2px 0 0;
 color:#fff;
 font-size:20px;
 font-weight:600;
}
.uniform-operation-modal-kicker{
 display:block;
 font-size:10px;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.55px;
 color:#a8c3c6;
}
.uniform-operation-modal-close{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 width:40px;
 height:40px;
 border:1px solid rgba(255,255,255,.16);
 border-radius:4px;
 background:rgba(255,255,255,.04);
 color:#fff;
 font-size:26px;
 line-height:1;
 cursor:pointer;
}
.uniform-operation-modal-close:hover{
 border-color:rgba(255,255,255,.35);
 background:rgba(255,255,255,.12);
}
.uniform-operation-modal-body{
 position:relative;
 flex:1;
 min-height:0;
 background:var(--cbd-bg);
}
.uniform-operation-modal-body iframe{
 position:relative;
 z-index:2;
 display:block;
 width:100%;
 height:100%;
 border:0;
 background:var(--cbd-bg);
 opacity:0;
 transition:opacity .18s ease;
}
.uniform-operation-modal-body iframe.is-ready{
 opacity:1;
}
.uniform-operation-modal-loading{
 position:absolute;
 inset:0;
 z-index:1;
 display:flex;
 align-items:center;
 justify-content:center;
 color:var(--cbd-muted);
 font-size:13px;
}
.uniform-operation-modal-loading[hidden]{
 display:none!important;
}

@media(max-width:760px){
 .uniform-operation-modal{
  padding:0;
 }
 .uniform-operation-modal-dialog{
  width:100vw;
  height:100vh;
  border:0;
  border-radius:0;
 }
 .uniform-operation-modal-header{
  min-height:64px;
 }
 .cbd-modal-page{
  padding:10px;
 }
 .cbd-form-shell{
  min-height:calc(100vh - 20px);
 }
 .cbd-form-shell form{
  min-height:calc(100vh - 22px);
 }
 .cbd-person-strip{
  grid-template-columns:1fr;
 }
 .cbd-person-strip__item{
  min-height:auto;
  border-right:0;
  border-bottom:1px solid var(--cbd-border);
 }
 .cbd-form-toolbar{
  align-items:stretch;
  flex-direction:column;
 }
 .cbd-form-toolbar .btn{
  width:100%;
 }
 .cbd-table-frame{
  margin-inline:10px;
 }
 .cbd-form-balance,
 .cbd-form-footer{
  align-items:stretch;
  flex-direction:column;
 }
 .cbd-form-footer__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
 }
 .cbd-form-footer .btn{
  width:100%;
 }
}

@media print{
 body{
  background:#fff!important;
 }
 .cbd-modal-page{
  padding:0;
  background:#fff;
 }
 .cbd-form-shell{
  min-height:auto;
  border:1px solid #000;
  box-shadow:none;
 }
 .cbd-form-toolbar .btn,
 .cbd-col-actions,
 .uniform-row-actions,
 .cbd-form-footer{
  display:none!important;
 }
 .cbd-table-frame{
  min-height:360px;
 }
}


/* Alpha 3.7 — ewidencja działań ratowniczo-gaśniczych */
.member-actions-register{
 min-height:260px;
}
.member-actions-heading{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:20px;
 margin-bottom:14px;
 padding:14px 16px;
 border:1px solid #cfd8da;
 border-left:4px solid #176a70;
 background:#f5f7f8;
}
.member-actions-heading h2{
 margin:0 0 4px;
 color:#203235;
 font-size:18px;
}
.member-actions-heading p{
 margin:0;
}
.member-actions-counter{
 display:flex;
 min-width:120px;
 flex-direction:column;
 align-items:flex-end;
 gap:3px;
}
.member-actions-counter span{
 color:#657579;
 font-size:10px;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.4px;
}
.member-actions-counter strong{
 color:#176a70;
 font-size:25px;
 line-height:1;
}
.member-actions-table-wrap{
 border:1px solid #cfd8da;
 background:#fff;
}
.member-actions-table{
 width:100%;
 margin:0;
}
.member-actions-table th{
 white-space:nowrap;
}
.member-actions-table td{
 vertical-align:middle;
}
.member-action-status{
 display:inline-block;
 padding:4px 7px;
 border:1px solid #b8cbcd;
 border-radius:3px;
 background:#eef5f5;
 color:#245c61;
 font-size:11px;
 font-weight:700;
 white-space:nowrap;
}
.member-action-status--cancelled{
 border-color:#dfb8b8;
 background:#fff1f1;
 color:#9d3535;
}
.member-action-status--draft{
 border-color:#dec993;
 background:#fff8e5;
 color:#795900;
}
.member-actions-empty{
 display:flex;
 min-height:180px;
 align-items:center;
 justify-content:center;
 gap:18px;
 padding:28px;
 border:1px dashed #b9c6c8;
 background:#fafcfc;
 color:#657579;
}
.member-actions-empty__mark{
 display:flex;
 width:58px;
 height:58px;
 align-items:center;
 justify-content:center;
 border-radius:50%;
 background:#e4eeee;
 color:#176a70;
 font-size:13px;
 font-weight:800;
}
.member-actions-empty h3{
 margin:0 0 5px;
 color:#203235;
 font-size:16px;
}
.member-actions-empty p{
 max-width:530px;
 margin:0;
 font-size:12px;
 line-height:1.5;
}
@media(max-width:900px){
 .member-actions-heading{
  align-items:flex-start;
  flex-direction:column;
 }
 .member-actions-counter{
  align-items:flex-start;
 }
 .member-actions-table{
  min-width:1200px;
 }
}


/* Alpha 3.7a — filtry ewidencji działań */
.member-actions-filters{
 display:grid;
 grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(145px,1fr)) auto;
 align-items:end;
 gap:10px;
 margin-bottom:8px;
 padding:12px;
 border:1px solid #cfd8da;
 background:#f5f7f8;
}
.member-actions-search,
.member-actions-filter{
 display:flex;
 flex-direction:column;
 gap:5px;
}
.member-actions-search label,
.member-actions-filter label{
 color:#526467;
 font-size:10px;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.35px;
}
.member-actions-search__field{
 position:relative;
}
.member-actions-search__field>span{
 position:absolute;
 top:50%;
 left:10px;
 transform:translateY(-50%);
 color:#657579;
 font-size:18px;
 pointer-events:none;
}
.member-actions-search input,
.member-actions-filter input,
.member-actions-filter select{
 width:100%;
 min-height:37px;
 border:1px solid #b8c5c7;
 border-radius:3px;
 background:#fff;
 color:#203235;
 font:inherit;
}
.member-actions-search input{
 padding:7px 10px 7px 34px;
}
.member-actions-filter input,
.member-actions-filter select{
 padding:7px 9px;
}
.member-actions-search input:focus,
.member-actions-filter input:focus,
.member-actions-filter select:focus{
 outline:0;
 border-color:#176a70;
 box-shadow:0 0 0 3px rgba(23,106,112,.12);
}
.member-actions-filter-actions{
 display:flex;
 align-items:flex-end;
}
.member-actions-filter-actions .btn{
 min-height:37px;
 white-space:nowrap;
}
.member-actions-filter-result{
 display:flex;
 justify-content:flex-end;
 margin:0 0 8px;
 color:#657579;
 font-size:11px;
}
.member-actions-filter-result strong{
 color:#203235;
}
.member-actions-table tr[hidden]{
 display:none;
}
.member-actions-no-results{
 display:flex;
 min-height:150px;
 align-items:center;
 justify-content:center;
 flex-direction:column;
 gap:5px;
 padding:24px;
 color:#657579;
 text-align:center;
}
.member-actions-no-results[hidden]{
 display:none!important;
}
.member-actions-no-results strong{
 color:#203235;
 font-size:14px;
}
.member-actions-no-results span{
 font-size:12px;
}
@media(max-width:1250px){
 .member-actions-filters{
  grid-template-columns:repeat(3,minmax(180px,1fr));
 }
}
@media(max-width:760px){
 .member-actions-filters{
  grid-template-columns:1fr;
 }
 .member-actions-filter-actions .btn{
  width:100%;
 }
}


/* Alpha 3.7d — panel filtrów zawsze widoczny */
.member-actions-filters{display:grid!important;visibility:visible!important;opacity:1!important;}
.member-actions-filter-result{display:flex!important;}


/* Alpha 4.0 — Kwatermistrz: pojazdy i wyposażenie */
.qm-dashboard-page,.qm-vehicles-page,.qm-vehicle-card-page,.qm-form-page,.qm-equipment-page{max-width:1540px}
.qm-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.qm-summary-card{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid #cfd9da;background:#fff;text-decoration:none;color:#233437;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.qm-summary-card:hover{border-color:#167078;transform:translateY(-1px)}
.qm-summary-card span{font-size:12px;color:#647579;text-transform:uppercase;font-weight:700;letter-spacing:.3px}
.qm-summary-card strong{font-size:30px;color:#176a70}
.qm-summary-card.warning strong{color:#bb6418}
.qm-launch-panel{padding:18px}
.qm-launch-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px}
.qm-launch-grid a{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid #d3dcde;background:#f7f9f9;text-decoration:none;color:#203235}
.qm-launch-grid strong{font-size:17px}.qm-launch-grid span{color:#68777a;line-height:1.45}
.qm-filter-bar{display:grid;grid-template-columns:minmax(280px,2fr) minmax(180px,1fr) minmax(200px,1fr) auto;gap:12px;align-items:end;padding:15px;margin-bottom:10px}
.qm-filter-bar.compact{grid-template-columns:minmax(320px,1fr) auto}
.qm-filter-bar label,.qm-inline-form label,.qm-vehicle-form label{display:flex;flex-direction:column;gap:6px}
.qm-filter-bar label span,.qm-inline-form label span,.qm-vehicle-form label span,.qm-notes>span{font-size:11px;font-weight:700;color:#56686c;text-transform:uppercase;letter-spacing:.25px}
.qm-filter-bar input,.qm-filter-bar select,.qm-inline-form input,.qm-inline-form select,.qm-vehicle-form input,.qm-vehicle-form select,.qm-vehicle-form textarea{width:100%;min-height:39px;padding:8px 10px;border:1px solid #bfcacc;border-radius:3px;background:#fff;color:#203235}
.qm-filter-actions,.qm-head-actions,.qm-form-footer{display:flex;gap:8px;align-items:center}
.qm-result-count{margin:10px 0;color:#657579;font-size:13px}
.qm-table-panel{padding:0;overflow:hidden}.qm-table-panel table{margin:0;width:100%}
.qm-vehicle-table td{vertical-align:middle}.qm-vehicle-table small,.history-table td small{display:block;margin-top:3px;color:#6e7d80}
.qm-readiness{display:inline-flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}
.qm-readiness:before{content:"";width:9px;height:9px;border-radius:50%;background:#7b8a8d}
.qm-readiness.ready:before{background:#21864e}.qm-readiness.limited:before{background:#d18a15}.qm-readiness.out_of_service:before{background:#c33d38}
.qm-due{display:inline-block;padding:3px 7px;border-radius:3px;background:#eef2f2;color:#566568;white-space:nowrap}
.qm-due.valid{background:#e5f4eb;color:#176b3d}.qm-due.soon{background:#fff1d4;color:#9b5b00}.qm-due.overdue{background:#fde4e2;color:#a92f2b}
.qm-vehicle-form{padding:0;overflow:hidden}.qm-form-section{padding:20px;border-bottom:1px solid #d8e0e1}.qm-form-section h2{margin:0 0 15px;font-size:17px}
.qm-form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.qm-form-grid .wide{grid-column:span 2}.qm-form-grid .full{grid-column:1/-1}
.qm-form-footer{justify-content:flex-end;padding:16px 20px;background:#f6f8f8}
.qm-vehicle-hero{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:1px;margin-bottom:16px;border:1px solid #ced8da;background:#ced8da}
.qm-vehicle-hero>div{display:flex;flex-direction:column;gap:7px;padding:14px 16px;background:#fff}.qm-vehicle-hero span{font-size:10px;font-weight:700;text-transform:uppercase;color:#657579}.qm-vehicle-hero strong{font-size:15px}
.qm-card-tabs{display:flex;gap:0;border-bottom:1px solid #c9d4d6;margin-bottom:16px;overflow-x:auto}.qm-card-tabs a{padding:12px 17px;text-decoration:none;color:#506266;font-weight:700;border-bottom:3px solid transparent;white-space:nowrap}.qm-card-tabs a.active{color:#176a70;border-bottom-color:#176a70;background:#f4f8f8}
.qm-data-panel{padding:18px}.qm-data-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}
.qm-data-grid>div{padding:13px;border:1px solid #d8e0e1;background:#f8fafa;display:flex;flex-direction:column;gap:5px}.qm-data-grid span{font-size:10px;font-weight:700;text-transform:uppercase;color:#68787b}.qm-data-grid strong{font-size:14px;color:#203235}
.qm-notes{margin-top:14px;padding:14px;border-left:3px solid #176a70;background:#f7f9f9}.qm-notes p{margin:6px 0 0;line-height:1.5}
.qm-inline-form-panel{padding:18px;margin-bottom:14px}.qm-inline-form-panel h2{margin:0 0 14px;font-size:17px}
.qm-inline-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}.qm-inline-form .wide{grid-column:span 2}.qm-inline-form button{min-height:39px}
.qm-history-panel{padding:18px}.qm-history-entry{position:relative;display:flex;gap:12px;padding:0 0 18px 3px}.qm-history-entry:not(:last-child):after{content:"";position:absolute;left:7px;top:13px;bottom:0;width:1px;background:#cbd5d7}.qm-history-dot{position:relative;z-index:1;width:10px;height:10px;border-radius:50%;margin-top:5px;background:#176a70}.qm-history-entry div:last-child{display:flex;flex-direction:column;gap:4px}.qm-history-entry span{font-size:12px;color:#718083}
@media(max-width:1050px){.qm-summary-grid{grid-template-columns:repeat(2,1fr)}.qm-filter-bar{grid-template-columns:1fr 1fr}.qm-form-grid,.qm-data-grid{grid-template-columns:repeat(2,1fr)}.qm-inline-form{grid-template-columns:repeat(2,1fr)}.qm-vehicle-hero{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.qm-summary-grid,.qm-launch-grid,.qm-filter-bar,.qm-form-grid,.qm-data-grid,.qm-inline-form,.qm-vehicle-hero{grid-template-columns:1fr}.qm-form-grid .wide,.qm-inline-form .wide{grid-column:auto}.qm-filter-actions{flex-wrap:wrap}.qm-vehicle-table{min-width:1050px}}


/* Alpha 4.0a — formularze modalne zgodne z architekturą CBDOSP */
body:has(.cbdosp-modal-backdrop){overflow:hidden}
.cbdosp-modal-backdrop{
 position:fixed;
 inset:0;
 z-index:1200;
 display:flex;
 align-items:flex-start;
 justify-content:center;
 padding:46px 22px 28px;
 background:rgba(17,31,34,.72);
 overflow-y:auto;
 backdrop-filter:blur(2px);
}
.cbdosp-modal{
 width:min(1120px,100%);
 max-height:calc(100vh - 74px);
 display:flex;
 flex-direction:column;
 background:#fff;
 border:1px solid #9eabad;
 border-radius:4px;
 box-shadow:0 24px 70px rgba(0,0,0,.38);
 animation:cbdospModalIn .16s ease-out;
}
@keyframes cbdospModalIn{
 from{opacity:0;transform:translateY(-10px) scale(.992)}
 to{opacity:1;transform:translateY(0) scale(1)}
}
.cbdosp-modal-header{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:20px;
 padding:16px 20px;
 color:#fff;
 background:#23383b;
 border-bottom:4px solid #167078;
}
.cbdosp-modal-header h2{
 margin:3px 0 0;
 color:#fff;
 font-size:21px;
}
.cbdosp-modal-kicker{
 display:block;
 font-size:10px;
 font-weight:700;
 color:#b9cbcd;
 text-transform:uppercase;
 letter-spacing:.45px;
}
.cbdosp-modal-close{
 display:grid;
 place-items:center;
 flex:0 0 36px;
 width:36px;
 height:36px;
 color:#fff;
 border:1px solid rgba(255,255,255,.32);
 border-radius:3px;
 text-decoration:none;
 font-size:28px;
 line-height:1;
}
.cbdosp-modal-close:hover{background:rgba(255,255,255,.1);color:#fff}
.cbdosp-modal-body{
 overflow-y:auto;
 overscroll-behavior:contain;
 background:#f2f5f5;
}
.qm-vehicle-form-modal{
 display:flex;
 flex:1;
 min-height:0;
 flex-direction:column;
 padding:0;
 border:0;
 box-shadow:none;
 overflow:hidden;
}
.qm-vehicle-form-modal .qm-form-section{
 padding:18px 20px;
 background:#fff;
}
.qm-vehicle-form-modal .qm-form-section+ .qm-form-section{
 margin-top:10px;
}
.qm-vehicle-form-modal .qm-form-section h3{
 margin:0 0 14px;
 color:#24373a;
 font-size:16px;
}
.cbdosp-modal-footer{
 display:flex;
 justify-content:flex-end;
 gap:9px;
 padding:14px 20px;
 border-top:1px solid #cbd5d7;
 background:#f7f9f9;
}
@media(max-width:680px){
 .cbdosp-modal-backdrop{padding:0}
 .cbdosp-modal{min-height:100vh;max-height:none;border:0;border-radius:0}
 .cbdosp-modal-header{position:sticky;top:0;z-index:2}
 .cbdosp-modal-footer{position:sticky;bottom:0;z-index:2}
}


/* Alpha 4.1 — przypisywanie wyposażenia z magazynu do pojazdu */
.qm-equipment-tab-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:24px;
 padding:18px 20px;
}
.qm-equipment-tab-head h2{margin:0 0 4px}
.qm-equipment-tab-head p{margin:0}
.qm-equipment-picker-modal{width:min(1240px,100%)}
.qm-equipment-picker-form{
 display:flex;
 flex:1;
 min-height:0;
 flex-direction:column;
 overflow:hidden;
}
.qm-equipment-picker-info{
 display:flex;
 align-items:center;
 gap:12px;
 padding:15px 20px;
 background:#eaf2f2;
 border-bottom:1px solid #c8d5d6;
}
.qm-equipment-picker-info strong{font-size:16px;color:#20383b}
.qm-equipment-picker-info span{color:#63777a}
.qm-equipment-picker-filters{
 display:grid;
 grid-template-columns:minmax(260px,1fr) minmax(220px,340px);
 gap:14px;
 padding:16px 20px;
 background:#fff;
}
.qm-equipment-picker-filters label,
.qm-equipment-location-field label{
 display:flex;
 flex-direction:column;
 gap:6px;
}
.qm-equipment-picker-filters label span,
.qm-equipment-location-field label span{
 font-size:12px;
 font-weight:700;
 color:#344c4f;
}
.qm-warehouse-summary{
 padding:0 20px 10px;
 background:#fff;
 color:#63777a;
 font-size:13px;
}
.qm-equipment-picker-table{
 margin:0 20px 16px;
 border:1px solid #cbd5d7;
 background:#fff;
}
.qm-equipment-picker-table tbody tr.qm-equipment-option{cursor:pointer}
.qm-equipment-picker-table tbody tr.qm-equipment-option:hover{background:#f0f7f7}
.qm-equipment-picker-table tbody tr.qm-equipment-option:has(input:checked){background:#e4f2f1}
.qm-check-column{width:44px;text-align:center}
.qm-check-column input{width:18px;height:18px;accent-color:#167078}
.qm-equipment-location-field{
 padding:16px 20px 20px;
 background:#fff;
 border-top:1px solid #d7dfe0;
}
.qm-equipment-location-field p{
 margin:7px 0 0;
 color:#718184;
 font-size:12px;
}
.qm-selected-counter{
 margin-right:auto;
 color:#4b6265;
 font-size:13px;
}
.qm-selected-counter strong{color:#173f43}
.cbdosp-modal-footer button:disabled{
 opacity:.55;
 cursor:not-allowed;
}
@media(max-width:760px){
 .qm-equipment-tab-head{align-items:stretch;flex-direction:column}
 .qm-equipment-tab-head .btn{text-align:center}
 .qm-equipment-picker-filters{grid-template-columns:1fr}
 .qm-selected-counter{width:100%;margin:0 0 4px}
 .qm-equipment-picker-modal .cbdosp-modal-footer{flex-wrap:wrap}
}


/* Alpha 4.2 — wycofanie pojazdu ze stanu */
.btn.danger{
 color:#fff;
 background:#a82f2f;
 border-color:#8d2424;
}
.btn.danger:hover{
 color:#fff;
 background:#8f2727;
 border-color:#741d1d;
}
.cbdosp-modal-header-danger{
 background:#522b2b;
 border-bottom-color:#b54435;
}
.qm-withdraw-modal{width:min(720px,100%)}
.qm-withdraw-warning{
 display:flex;
 flex-direction:column;
 gap:4px;
 padding:18px 20px;
 background:#fff3e9;
 border-bottom:1px solid #e2c8b3;
}
.qm-withdraw-warning strong{font-size:18px;color:#432e28}
.qm-withdraw-warning span{color:#72594f}
.qm-withdraw-blocked{
 margin:20px;
 padding:16px;
 color:#6c2424;
 background:#fff0f0;
 border:1px solid #d9a4a4;
 border-left:5px solid #a82f2f;
}
.qm-withdraw-blocked strong{display:block;margin-bottom:6px}
.qm-withdraw-blocked p{margin:0;line-height:1.5}
.qm-withdraw-fields{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:16px;
 padding:20px;
 background:#fff;
}
.qm-withdraw-fields label{
 display:flex;
 flex-direction:column;
 gap:6px;
}
.qm-withdraw-fields label>span{
 color:#344c4f;
 font-size:12px;
 font-weight:700;
}
.qm-withdraw-fields .full{grid-column:1/-1}
.qm-confirm-withdraw{
 flex-direction:row!important;
 align-items:flex-start;
 padding:12px;
 background:#f7f1f1;
 border:1px solid #dac4c4;
}
.qm-confirm-withdraw input{
 flex:0 0 auto;
 width:18px;
 height:18px;
 margin-top:1px;
 accent-color:#a82f2f;
}
.qm-confirm-withdraw span{
 font-size:13px!important;
 line-height:1.4;
}
@media(max-width:620px){
 .qm-withdraw-fields{grid-template-columns:1fr}
 .qm-withdraw-fields .full{grid-column:auto}
}


/* Alpha 4.3 — badania techniczne i ubezpieczenia OC */
.qm-term-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:14px}
.qm-current-terms-grid,.qm-term-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.qm-current-term-card{display:flex;min-height:175px;flex-direction:column;padding:20px;color:#24373a;background:#fff;border:1px solid #bdcacc;border-top:5px solid #167078;border-radius:4px;box-shadow:0 3px 12px rgba(27,53,57,.08);text-decoration:none;transition:.15s ease}
.qm-current-term-card:hover{color:#24373a;border-color:#167078;transform:translateY(-1px);box-shadow:0 7px 18px rgba(27,53,57,.13)}
.qm-current-term-card.empty{border-top-color:#9aa9ab;background:#f8fafa}
.qm-current-term-type{margin-bottom:18px;color:#53696c;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.qm-current-term-card>strong{font-size:18px}.qm-current-term-card dl{margin:20px 0 10px}.qm-current-term-card dl div{display:flex;justify-content:space-between;gap:18px;padding-top:10px;border-top:1px solid #e0e6e7}.qm-current-term-card dt{color:#6b7c7f}.qm-current-term-card dd{margin:0;font-weight:700;text-align:right}.qm-current-term-card small{margin-top:auto;color:#167078;font-weight:700}
.qm-table-title{padding:15px 18px;border-bottom:1px solid #d4ddde}.qm-table-title h2{margin:0;font-size:16px}
.qm-term-modal{width:min(780px,100%)}.qm-term-form{display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden}.qm-term-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px;background:#fff}.qm-term-fields label{display:flex;flex-direction:column;gap:6px}.qm-term-fields label span{color:#344c4f;font-size:12px;font-weight:700}.qm-term-fields .full{grid-column:1/-1}
.qm-term-details-modal{width:min(680px,100%)}.qm-term-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff}.qm-term-details-grid>div{display:flex;min-height:90px;flex-direction:column;gap:7px;padding:18px 20px;border-right:1px solid #e0e6e7;border-bottom:1px solid #e0e6e7}.qm-term-details-grid>div:nth-child(2n){border-right:0}.qm-term-details-grid>div.full{grid-column:1/-1;border-right:0}.qm-term-details-grid span{color:#6a7b7e;font-size:12px;font-weight:700;text-transform:uppercase}.qm-term-details-grid strong{color:#273b3e;font-size:15px;font-weight:700;line-height:1.45}
@media(max-width:850px){.qm-current-terms-grid,.qm-term-history-grid{grid-template-columns:1fr}.qm-term-actions{align-items:stretch;flex-direction:column}.qm-term-actions .btn{text-align:center}}
@media(max-width:600px){.qm-term-fields,.qm-term-details-grid{grid-template-columns:1fr}.qm-term-fields .full,.qm-term-details-grid>div.full{grid-column:auto}.qm-term-details-grid>div{border-right:0}}


/* Alpha 4.4 — magazyny sprzętu i umundurowania */
.qm-warehouse-page .qm-summary-grid{margin-bottom:18px}
.qm-warehouse-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.qm-stock-modal{width:min(920px,100%)}
.qm-stock-form-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:16px;
 padding:20px;
 background:#fff;
}
.qm-stock-form-grid label{
 display:flex;
 flex-direction:column;
 gap:6px;
}
.qm-stock-form-grid label>span{
 color:#344c4f;
 font-size:12px;
 font-weight:700;
}
.qm-stock-form-grid .wide{grid-column:1/-1}
.qm-low-stock{background:#fff4e5}
.qm-low-stock td:first-child{box-shadow:inset 4px 0 0 #d97817}
.qm-table-panel small{display:block;margin-top:3px;color:#718184}
.qm-launch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){
 .qm-warehouse-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .qm-launch-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
 .qm-stock-form-grid{grid-template-columns:1fr}
 .qm-stock-form-grid .wide{grid-column:auto}
 .qm-warehouse-summary-grid{grid-template-columns:1fr}
}


/* Alpha 4.7 — cykl życia umundurowania i wybrakowanie */
.qm-head-actions,.qm-row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.qm-category-badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:50%;font-weight:800;border:1px solid #9aa}
.qm-category-badge.category-a{background:#e7f6ec;color:#17653a;border-color:#83c59d}
.qm-category-badge.category-b{background:#fff5d9;color:#7a5700;border-color:#d8bb63}
.qm-category-badge.category-c{background:#f9e2e2;color:#8a2727;border-color:#d99b9b}
.qm-category-c{background:#fff0f0;opacity:.82}
.qm-period-preview{padding:14px;background:#eef6f5;border:1px solid #b9d1ce}
.qm-disposal-modal{width:min(1050px,100%)}
.qm-disposal-form{padding:0 0 20px}.qm-disposal-form h3{margin:0;padding:0 20px 12px}
.qm-disposal-form .table-wrap{margin:0 20px;max-height:420px;overflow:auto;border:1px solid #ccd5d6}

/* CBDOSP 4.9 — zintegrowany Magazyn Kwatermistrza */
.warehouse-tabs{margin:0 0 18px;overflow-x:auto;white-space:nowrap}
.warehouse-dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}
.warehouse-dashboard-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.warehouse-row-link{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--border,#d9dee6);text-decoration:none;color:inherit}
.warehouse-row-link:last-child{border-bottom:0}.warehouse-row-link span{color:var(--muted,#667085);text-align:right}
.warehouse-document-line{display:grid;grid-template-columns:1.2fr 1.8fr .6fr;gap:10px;margin-bottom:10px}
.inventory-actual{max-width:130px}
.qm-head-actions form{display:inline-flex;margin:0}
@media(max-width:950px){.warehouse-dashboard-columns,.warehouse-dashboard-bottom{grid-template-columns:1fr}.warehouse-document-line{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.breadcrumbs,.page-head .qm-head-actions,.qm-filter-bar,.warehouse-tabs{display:none!important}.content{margin:0!important;padding:0!important}.panel{box-shadow:none!important;border:1px solid #bbb!important}}

/* CBDOSP 5.0 — Modal First Design System */
:root{--cbd-modal-radius:16px;--cbd-modal-shadow:0 28px 80px rgba(15,39,43,.28);--cbd-focus:#2f7c75}
body.cbdosp-modal-open{overflow:hidden}
.cbdosp-modal-backdrop{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,32,35,.56);backdrop-filter:blur(7px);animation:cbdBackdropIn .18s ease-out}
.cbdosp-modal{width:min(760px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.65);border-radius:var(--cbd-modal-radius);box-shadow:var(--cbd-modal-shadow);animation:cbdModalIn .2s ease-out}
.cbdosp-modal.cbdosp-modal-lg{width:min(1120px,100%)}
.cbdosp-modal.cbdosp-modal-fullscreen{width:calc(100vw - 36px);height:calc(100vh - 36px);max-height:none;border-radius:18px}
.cbdosp-modal-header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 24px;background:linear-gradient(135deg,#173f42,#256c68);color:#fff}
.cbdosp-modal-header h2{margin:3px 0 0;color:#fff}.cbdosp-modal-kicker{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.78}
.cbdosp-modal-close{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#fff;text-decoration:none;font-size:28px;line-height:1;background:rgba(255,255,255,.12)}
.cbdosp-modal-close:hover{background:rgba(255,255,255,.22)}
.cbdosp-modal-body{flex:1;overflow:auto;padding:24px}.cbdosp-modal-footer{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;background:#f8fafb;border-top:1px solid #dfe7e8}
.cbdosp-modal input:focus,.cbdosp-modal select:focus,.cbdosp-modal textarea:focus{outline:3px solid rgba(47,124,117,.18);border-color:var(--cbd-focus)}
.cbdosp-modal-document .cbdosp-modal-body{padding:0}.cbdosp-document-layout{padding:24px}.cbdosp-document-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.cbdosp-document-items{border:1px solid #d8e1e2;border-radius:12px;overflow:auto}.cbdosp-document-items .warehouse-document-line{padding:10px;margin:0;border-bottom:1px solid #e5ebec}.cbdosp-document-items .warehouse-document-line:last-child{border-bottom:0}
.cbdosp-confirm-message{font-size:16px;line-height:1.55;color:#314649}.cbdosp-unsaved-dot{display:none;width:8px;height:8px;border-radius:50%;background:#e39b20;margin-left:8px}.cbdosp-modal.is-dirty .cbdosp-unsaved-dot{display:inline-block}
.cbdosp-quick-trigger{position:fixed;right:24px;bottom:24px;z-index:3000;width:54px;height:54px;border:0;border-radius:50%;background:#1f6763;color:#fff;font-size:28px;box-shadow:0 14px 34px rgba(22,77,74,.3);cursor:pointer}
.cbdosp-command-search{width:100%;font-size:18px;padding:14px 16px;border:1px solid #cbd7d8;border-radius:12px}.cbdosp-command-list{display:grid;gap:8px;margin-top:16px}.cbdosp-command-item{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border:1px solid #dfe7e8;border-radius:11px;text-decoration:none;color:#243d40}.cbdosp-command-item:hover,.cbdosp-command-item.is-active{background:#edf7f6;border-color:#8fb9b5}.cbdosp-command-item small{color:#708285}
@keyframes cbdBackdropIn{from{opacity:0}to{opacity:1}}@keyframes cbdModalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:760px){.cbdosp-modal-backdrop{padding:0}.cbdosp-modal,.cbdosp-modal.cbdosp-modal-fullscreen{width:100vw;height:100vh;max-height:none;border-radius:0}.cbdosp-document-toolbar{grid-template-columns:1fr}.cbdosp-modal-header,.cbdosp-modal-body{padding:18px}.cbdosp-modal-footer{padding:13px 18px}.cbdosp-quick-trigger{right:16px;bottom:16px}}

/* CBDOSP 5.2 — przewijane modale i profesjonalny panel magazynowy */
.cbdosp-modal-backdrop{overflow:hidden!important}
.cbdosp-modal{min-height:0!important}
.cbdosp-modal>form,.cbdosp-modal-form{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}
.cbdosp-modal-body{min-height:0!important;overflow-y:scroll!important;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;-webkit-overflow-scrolling:touch}
.cbdosp-modal-body::-webkit-scrollbar,.cbdosp-document-items::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{width:12px;height:12px}
.cbdosp-modal-body::-webkit-scrollbar-track,.cbdosp-document-items::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track{background:#edf2f3}
.cbdosp-modal-body::-webkit-scrollbar-thumb,.cbdosp-document-items::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:#7c9799;border:3px solid #edf2f3;border-radius:10px}
.cbdosp-modal-body::-webkit-scrollbar-thumb:hover,.cbdosp-document-items::-webkit-scrollbar-thumb:hover,.table-wrap::-webkit-scrollbar-thumb:hover{background:#426f71}
.cbdosp-modal-header,.cbdosp-modal-footer{flex:0 0 auto}
.cbdosp-modal-document .cbdosp-modal-body{overflow-y:scroll!important}
.cbdosp-document-layout{min-height:100%;padding-bottom:36px}
.cbdosp-document-items{max-height:calc(100vh - 390px);overflow:auto;scrollbar-gutter:stable}
.warehouse-dashboard-bottom{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.warehouse-tabs{position:sticky;top:64px;z-index:20;background:#fff;border:1px solid #d8e1e2;border-radius:10px;padding:0 8px;box-shadow:0 4px 12px rgba(19,55,58,.06)}
@media(max-width:760px){.warehouse-tabs{top:56px}.cbdosp-modal-body{overflow-y:scroll!important}.cbdosp-document-items{max-height:none}}

/* CBDOSP 5.3 — formularze magazynowe klasy ERP */
.warehouse-erp-modal{background:#eef2f4;border-radius:14px}.warehouse-erp-form{background:#eef2f4}
.warehouse-erp-header{align-items:center;padding:14px 20px;background:linear-gradient(135deg,#123c40,#1d625f)}
.warehouse-erp-titleblock{min-width:0}.warehouse-erp-titleline{display:flex;align-items:center;gap:14px;margin-top:5px}.warehouse-doc-symbol{display:grid;place-items:center;min-width:58px;height:48px;padding:0 12px;border:1px solid rgba(255,255,255,.38);border-radius:9px;background:rgba(255,255,255,.13);font-size:19px;font-weight:900;letter-spacing:.05em}.warehouse-erp-titleline h2{font-size:21px;margin:0}.warehouse-erp-titleline p{margin:3px 0 0;color:rgba(255,255,255,.76);font-size:13px}.warehouse-erp-header-meta{display:flex;align-items:center;gap:10px}.warehouse-status-badge{padding:7px 11px;border-radius:999px;background:#f3b632;color:#3e2a00;font-size:11px;font-weight:900;letter-spacing:.08em}
.warehouse-erp-body{padding:16px 18px 26px!important;background:#eef2f4}.warehouse-erp-card{margin-bottom:14px;border:1px solid #d7e0e3;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(21,53,59,.05)}.warehouse-erp-card-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;border-bottom:1px solid #e1e7e9;background:#f8fafb}.warehouse-erp-card-head>div{display:flex;align-items:center;gap:10px}.warehouse-erp-card-head h3{margin:0;font-size:15px;color:#173d40}.warehouse-erp-card-head small{color:#728186}.warehouse-erp-step{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#1f6763;color:#fff;font-size:11px;font-weight:900}
.warehouse-erp-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding:15px 16px}.warehouse-erp-fields label{display:flex;flex-direction:column;gap:6px}.warehouse-erp-fields label>span{font-size:11px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;color:#53686c}.warehouse-erp-fields input,.warehouse-erp-fields select,.warehouse-erp-fields textarea{width:100%;min-height:40px;border:1px solid #c8d4d7;border-radius:7px;background:#fff;padding:9px 10px;font:inherit}.warehouse-erp-fields textarea{min-height:62px;resize:vertical}.warehouse-erp-fields .wide{grid-column:1/-1}
.warehouse-erp-items-head{position:sticky;top:0;z-index:4}.warehouse-erp-table-wrap{overflow:auto;max-height:calc(100vh - 500px);min-height:180px}.warehouse-erp-table-head,.warehouse-erp-line{display:grid;grid-template-columns:48px minmax(220px,1.25fr) minmax(260px,1.45fr) 110px 70px 90px 150px 120px 170px 42px;align-items:center;gap:8px;min-width:1420px}.warehouse-erp-table-head{position:sticky;top:0;z-index:3;padding:9px 12px;background:#e7edef;border-bottom:1px solid #cbd7da;color:#4e6367;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.warehouse-erp-line{margin:0;padding:8px 12px;border-bottom:1px solid #e4eaec;background:#fff}.warehouse-erp-line:nth-child(even){background:#fbfcfc}.warehouse-erp-line:focus-within{background:#f0f8f7;box-shadow:inset 3px 0 #27756f}.warehouse-line-number{text-align:center;color:#64777b;font-weight:800}.warehouse-erp-line select,.warehouse-erp-line input{width:100%;height:38px;border:1px solid #c9d4d7;border-radius:6px;background:#fff;padding:7px 9px}.warehouse-line-unit{text-align:center;font-weight:700;color:#52686c}.warehouse-line-remove{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:#9b4141;font-size:22px;cursor:pointer}.warehouse-line-remove:hover{background:#fff0f0}.warehouse-erp-empty-hint{padding:10px 14px;border-top:1px solid #e1e7e9;background:#fafcfc;color:#627579;font-size:12px}
.warehouse-erp-summary{display:grid;grid-template-columns:180px 180px 1fr;gap:10px;margin-left:auto;max-width:720px}.warehouse-erp-summary>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #d2dddf;border-radius:9px;background:#fff}.warehouse-erp-summary span{font-size:11px;font-weight:800;text-transform:uppercase;color:#627579}.warehouse-erp-summary strong{font-size:18px;color:#153f42}.warehouse-erp-summary-note{border-color:#9bc2be!important;background:#eef8f7!important}
.warehouse-erp-footer{justify-content:space-between;padding:11px 18px;background:#fff}.warehouse-erp-footer-info{color:#65777b;font-size:12px}.warehouse-key{display:inline-block;padding:2px 6px;border:1px solid #cad5d7;border-bottom-width:2px;border-radius:4px;background:#f7f9fa;font-weight:800}.warehouse-separator{margin:0 7px}.warehouse-erp-actions{display:flex;gap:9px}
@media(max-width:1100px){.warehouse-erp-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.warehouse-erp-summary{grid-template-columns:1fr 1fr}.warehouse-erp-summary-note{grid-column:1/-1}}
@media(max-width:700px){.warehouse-erp-header{align-items:flex-start}.warehouse-erp-titleline p,.warehouse-status-badge,.warehouse-erp-footer-info{display:none}.warehouse-erp-fields{grid-template-columns:1fr}.warehouse-erp-fields .wide{grid-column:auto}.warehouse-erp-summary{grid-template-columns:1fr}.warehouse-erp-summary-note{grid-column:auto}.warehouse-erp-footer{justify-content:flex-end}.warehouse-erp-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.warehouse-erp-actions .btn:last-child{grid-column:1/-1}.warehouse-erp-table-wrap{max-height:none}}

/* Kartoteka produktu — profesjonalny formularz danych podstawowych */
.warehouse-master-modal{width:min(1080px,100%);background:#f1f4f5}.warehouse-master-form{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}.warehouse-master-header{padding:17px 22px}.warehouse-master-header p{margin:5px 0 0;color:rgba(255,255,255,.72);font-size:13px}.warehouse-master-body{display:grid;grid-template-columns:250px 1fr;gap:0;padding:0!important;background:#f1f4f5}.warehouse-master-sidebar{padding:25px 22px;background:#183f42;color:#fff}.warehouse-master-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:18px;border-radius:13px;background:rgba(255,255,255,.12);font-size:29px}.warehouse-master-sidebar h3{margin:0 0 8px;color:#fff}.warehouse-master-sidebar p,.warehouse-master-sidebar li{color:rgba(255,255,255,.72);font-size:13px;line-height:1.55}.warehouse-master-sidebar ul{padding-left:18px}.warehouse-master-content{padding:18px;overflow:auto}.warehouse-master-section{margin-bottom:14px;border:1px solid #d6dfe1;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(20,52,57,.05)}.warehouse-master-section>header{display:flex;gap:11px;padding:13px 15px;border-bottom:1px solid #e1e7e9;background:#f9fbfb}.warehouse-master-section>header>span{display:grid;place-items:center;width:29px;height:29px;border-radius:7px;background:#1f6763;color:#fff;font-size:11px;font-weight:900}.warehouse-master-section h3{margin:0;font-size:14px}.warehouse-master-section header p{margin:2px 0 0;color:#728185;font-size:12px}.warehouse-master-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:15px}.warehouse-master-grid label{display:flex;flex-direction:column;gap:6px}.warehouse-master-grid label>span{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#52676b}.warehouse-master-grid input,.warehouse-master-grid select,.warehouse-master-grid textarea{width:100%;min-height:41px;border:1px solid #c7d2d5;border-radius:7px;background:#fff;padding:9px 10px;font:inherit}.warehouse-master-grid .wide{grid-column:1/-1}.warehouse-input-suffix{display:flex}.warehouse-input-suffix input{border-radius:7px 0 0 7px}.warehouse-input-suffix>span{display:flex;align-items:center;padding:0 10px;border:1px solid #c7d2d5;border-left:0;border-radius:0 7px 7px 0;background:#f1f4f5;color:#5f7377;font-size:12px}.warehouse-master-footer{justify-content:space-between}.warehouse-master-footer>div:last-child{display:flex;gap:9px}.warehouse-master-required{color:#718286;font-size:12px}
@media(max-width:780px){.warehouse-master-body{grid-template-columns:1fr}.warehouse-master-sidebar{display:none}.warehouse-master-grid{grid-template-columns:1fr}.warehouse-master-grid .wide{grid-column:auto}}


/* CBDOSP 5.4 — czasookresy używalności i klasy A/B/C */
.warehouse-line-category{min-width:155px}
.warehouse-life-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-weight:700;font-size:12px;border:1px solid #cbd5d5;background:#f3f7f7}
.warehouse-life-badge.life-a{border-color:#6ca67b;background:#edf8f0}
.warehouse-life-badge.life-b{border-color:#d0a33b;background:#fff8e3}
.warehouse-life-badge.life-c{border-color:#b64b43;background:#fff0ef}

.warehouse-period-cell{display:grid;grid-template-columns:auto 76px;gap:6px;align-items:center}.warehouse-period-cell label{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;white-space:nowrap}.warehouse-full-document-table{min-width:1250px}.warehouse-full-document-table th{white-space:nowrap}


/* Alpha 5.6 — dane pozycji dokumentu wyłącznie z kartoteki/partii */
.warehouse-readonly-cell{min-height:42px;display:flex;align-items:center;padding:8px 10px;border:1px solid #d9e0e7;border-radius:7px;background:#f4f7f9;color:#263746;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.warehouse-line-category{justify-content:center;text-transform:none}
.warehouse-line-value{justify-content:flex-end;font-variant-numeric:tabular-nums}
.warehouse-line-period{justify-content:center;font-size:.88rem}
.warehouse-erp-line select[name="equipment_id[]"] option[disabled]{color:#8a949d}

/* CBDOSP 6.0 — nowy pulpit Kwatermistrza / układ ERP */
.warehouse-erp-page{padding:0!important;background:#edf1f3;min-height:calc(100vh - 60px)}
.warehouse-erp-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:calc(100vh - 60px)}
.warehouse-erp-nav{background:#173f42;color:#fff;padding:18px 12px;box-shadow:4px 0 18px rgba(16,45,48,.12)}
.warehouse-erp-nav-brand{padding:5px 10px 20px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:14px}.warehouse-erp-nav-brand span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#8fc0bd}.warehouse-erp-nav-brand strong{display:block;margin-top:5px;font-size:16px}
.warehouse-erp-nav-group{margin:16px 0}.warehouse-erp-nav-group small{display:block;padding:0 10px 7px;color:#7fa7a5;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.1em}.warehouse-erp-nav-group a{display:flex;gap:10px;align-items:center;padding:10px;border-radius:7px;color:#dbe8e7;text-decoration:none;margin:2px 0}.warehouse-erp-nav-group a i{width:22px;text-align:center;font-style:normal;color:#9fc3c0}.warehouse-erp-nav-group a:hover{background:rgba(255,255,255,.08)}.warehouse-erp-nav-group a.active{background:#fff;color:#17484a;font-weight:800;box-shadow:0 5px 14px rgba(0,0,0,.15)}
.warehouse-erp-workspace{min-width:0;padding:22px}.warehouse-erp-topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:18px}.warehouse-erp-topbar h1{margin:4px 0;font-size:27px;color:#173f42}.warehouse-erp-topbar p{margin:0;color:#64777b}.warehouse-erp-actions-top{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.warehouse-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.warehouse-kpi-grid a{padding:17px 18px;border:1px solid #d5dfe1;border-radius:10px;background:#fff;text-decoration:none;color:#1d3c3f;box-shadow:0 3px 11px rgba(26,56,60,.05)}.warehouse-kpi-grid span,.warehouse-kpi-grid small{display:block;color:#6b7d80}.warehouse-kpi-grid strong{display:block;font-size:27px;margin:5px 0}.warehouse-kpi-grid a.danger strong{color:#a53d38}
.warehouse-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.warehouse-erp-card{border:1px solid #d5dfe1;border-radius:10px;background:#fff;overflow:hidden}.warehouse-erp-card>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #e2e8e9}.warehouse-erp-card h2{font-size:15px;margin:0}.warehouse-erp-card header a{font-size:12px}.warehouse-list>a,.warehouse-list>div{display:grid;grid-template-columns:150px 1fr 90px;gap:12px;padding:12px 16px;border-bottom:1px solid #edf1f2;text-decoration:none;color:#233e40}.warehouse-list span{color:#687b7e}.warehouse-list time{text-align:right;color:#819093;font-size:12px}
.warehouse-erp-toolbar{display:flex;gap:9px;align-items:center;padding:12px;border:1px solid #d5dfe1;border-radius:9px 9px 0 0;background:#fff}.warehouse-erp-toolbar .search{display:flex;align-items:center;flex:1;min-width:240px;border:1px solid #c9d5d7;border-radius:7px;background:#fff}.warehouse-erp-toolbar .search span{padding-left:10px;font-size:20px;color:#668}.warehouse-erp-toolbar input,.warehouse-erp-toolbar select{height:40px;border:1px solid #c9d5d7;border-radius:7px;padding:0 10px}.warehouse-erp-toolbar .search input{border:0;flex:1;outline:0}
.warehouse-grid-card{background:#fff;border:1px solid #d5dfe1;border-top:0;border-radius:0 0 9px 9px;overflow:hidden}.warehouse-grid-head{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid #dce4e6}.warehouse-grid-head strong,.warehouse-grid-head span{margin-right:10px}.warehouse-grid-head span{font-size:12px;color:#758689}.warehouse-grid-head button,.warehouse-grid-head a{border:0;background:none;color:#286763;font:inherit;font-size:12px;cursor:pointer;margin-left:14px;text-decoration:none}
.warehouse-erp-table{overflow:auto}.warehouse-erp-table table{width:100%;border-collapse:collapse;min-width:1120px}.warehouse-erp-table th{position:sticky;top:0;background:#e8edef;color:#52666a;text-align:left;text-transform:uppercase;letter-spacing:.04em;font-size:10px;padding:10px;border-bottom:1px solid #ccd7d9}.warehouse-erp-table td{padding:10px;border-bottom:1px solid #e6ecee;font-size:13px}.warehouse-erp-table tbody tr:hover,.warehouse-erp-table tbody tr:focus{background:#eef8f7;outline:none}.warehouse-erp-table td a{text-decoration:none;color:#193f42}.warehouse-erp-table td a small{display:block;color:#7b8b8e;margin-top:3px}.warehouse-erp-table .num{text-align:right;font-variant-numeric:tabular-nums}.warehouse-location-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2f3;color:#435d60}.warehouse-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.warehouse-status.ok{background:#e7f5eb;color:#28713b}.warehouse-status.warn{background:#fff4d9;color:#8a6410}.warehouse-status.bad{background:#fde9e7;color:#9b3833}.warehouse-grid-card>footer{display:flex;justify-content:space-between;padding:10px 14px;background:#f7f9fa;color:#748588;font-size:11px}
@media(max-width:1050px){.warehouse-erp-shell{grid-template-columns:72px minmax(0,1fr)}.warehouse-erp-nav-brand strong,.warehouse-erp-nav-group small,.warehouse-erp-nav-group a span{display:none}.warehouse-erp-nav-group a{justify-content:center}.warehouse-erp-nav-group a i{font-size:18px}.warehouse-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.warehouse-erp-shell{display:block}.warehouse-erp-nav{display:flex;overflow:auto;padding:8px}.warehouse-erp-nav-brand{display:none}.warehouse-erp-nav-group{display:flex;margin:0}.warehouse-erp-nav-group small{display:none}.warehouse-erp-nav-group a span{display:block;white-space:nowrap}.warehouse-erp-workspace{padding:14px}.warehouse-erp-topbar{display:block}.warehouse-erp-actions-top{justify-content:flex-start;margin-top:12px}.warehouse-kpi-grid,.warehouse-dashboard-grid{grid-template-columns:1fr}.warehouse-erp-toolbar{flex-wrap:wrap}.warehouse-erp-toolbar .search{flex-basis:100%}}

/* CBDOSP 6.0 — autonomiczny moduł Kwatermistrza */
body.warehouse-standalone{margin:0;background:#f5f7fb;color:#101828;font-family:Inter,Segoe UI,Arial,sans-serif;overflow-x:hidden}.warehouse-app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.warehouse-app-sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:linear-gradient(180deg,#071421,#0a1c2c 70%,#081523);color:#d9e4ed;z-index:80;display:flex;flex-direction:column;box-shadow:8px 0 28px rgba(7,20,33,.08)}.warehouse-app-brand{display:flex;flex-direction:column;padding:20px 20px 18px;border-bottom:1px solid rgba(255,255,255,.09);text-decoration:none}.warehouse-app-brand strong{color:#fff;font-size:21px;letter-spacing:.02em}.warehouse-app-brand span{color:#20c3af;font-size:14px;margin-top:3px}.warehouse-app-menu{padding:12px 8px 20px;overflow:auto;flex:1}.warehouse-app-menu section{margin:0 0 12px}.warehouse-app-menu h3{margin:12px 12px 6px;font-size:10px;letter-spacing:.13em;color:#8294a6}.warehouse-app-menu a{display:flex;align-items:center;gap:11px;min-height:38px;padding:0 12px;border-radius:6px;color:#e6edf3;text-decoration:none;font-size:13px;font-weight:550}.warehouse-app-menu a i{font-style:normal;width:18px;text-align:center;color:#b5c4d0}.warehouse-app-menu a:hover{background:rgba(255,255,255,.07)}.warehouse-app-menu a.active{background:#087f7c;color:#fff;box-shadow:inset 3px 0 #36d1bd}.warehouse-app-sidebar footer{padding:14px 17px;border-top:1px solid rgba(255,255,255,.09);display:grid;gap:4px}.warehouse-app-sidebar footer strong,.warehouse-app-sidebar footer small{font-size:11px;color:#91a4b6}.warehouse-app-sidebar footer a{font-size:12px;color:#d8e7ee;text-decoration:none;margin-top:7px}.warehouse-app-stage{grid-column:2;min-width:0}.warehouse-app-userbar{height:68px;background:#fff;border-bottom:1px solid #e5eaf0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:40}.warehouse-menu-toggle{border:0;background:transparent;font-size:21px;color:#17212b;cursor:pointer}.warehouse-user-actions{display:flex;align-items:center;gap:10px}.warehouse-user-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#071421;color:#fff;font-size:12px;font-weight:700}.warehouse-user-actions div{display:grid;gap:2px}.warehouse-user-actions strong{font-size:12px}.warehouse-user-actions a{font-size:11px;color:#64748b;text-decoration:none}.warehouse-standalone main.content{margin:0!important;max-width:none!important;padding:24px 28px 80px!important;background:#f5f7fb;min-height:calc(100vh - 68px)}.warehouse-standalone .warehouse-erp-page{padding:0!important}.warehouse-standalone .warehouse-erp-page>.warehouse-erp-shell{display:block}.warehouse-standalone .warehouse-erp-page .warehouse-erp-nav{display:none}.warehouse-standalone .warehouse-erp-workspace{padding:24px 28px 88px;min-width:0}.warehouse-standalone main.content>.warehouse-erp-nav{display:none}.warehouse-standalone .breadcrumbs{font-size:11px;color:#768399;margin-bottom:7px}.warehouse-standalone .page-head,.warehouse-standalone .warehouse-erp-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.warehouse-standalone .page-head h1,.warehouse-standalone .warehouse-erp-topbar h1{font-size:25px;line-height:1.2;margin:0 0 5px;color:#111827}.warehouse-standalone .page-head p,.warehouse-standalone .warehouse-erp-topbar p{margin:0;color:#64748b;font-size:13px}.warehouse-standalone .warehouse-erp-actions-top,.warehouse-standalone .qm-head-actions{display:flex;gap:8px;flex-wrap:wrap}.warehouse-standalone .warehouse-kpi-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}.warehouse-standalone .warehouse-kpi-grid a,.warehouse-standalone .warehouse-erp-card,.warehouse-standalone .panel,.warehouse-standalone .warehouse-grid-card{border:1px solid #e1e7ee!important;box-shadow:0 2px 10px rgba(15,23,42,.035)!important;border-radius:10px!important;background:#fff}.warehouse-standalone .warehouse-kpi-grid a{padding:18px}.warehouse-standalone .warehouse-kpi-grid strong{font-size:27px}.warehouse-standalone .warehouse-erp-toolbar,.warehouse-standalone .qm-filter-bar{background:#fff;border:1px solid #e1e7ee;border-radius:10px;padding:12px;display:flex;gap:10px;align-items:end;margin-bottom:14px}.warehouse-standalone input,.warehouse-standalone select,.warehouse-standalone textarea{border:1px solid #d7dee7;border-radius:6px;background:#fff;min-height:39px;padding:8px 10px;color:#172033}.warehouse-standalone .btn{border-radius:6px;min-height:39px;padding:9px 14px;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.warehouse-standalone .btn.primary{background:#078d80;border-color:#078d80;color:#fff}.warehouse-standalone .btn.secondary{background:#fff;border:1px solid #d8e0e8;color:#253244}.warehouse-standalone .warehouse-grid-card,.warehouse-standalone .qm-table-panel{overflow:hidden}.warehouse-standalone .table-wrap,.warehouse-standalone .warehouse-erp-table{overflow:auto}.warehouse-standalone table{width:100%;border-collapse:collapse;background:#fff}.warehouse-standalone th{background:#f8fafc;color:#475569;text-transform:none;font-size:11px;font-weight:700;padding:11px 12px;border-bottom:1px solid #e5eaf0;white-space:nowrap}.warehouse-standalone td{font-size:12px;padding:11px 12px;border-bottom:1px solid #edf1f5;color:#253244;vertical-align:middle}.warehouse-standalone tbody tr:hover{background:#f8fbfd}.warehouse-standalone .warehouse-status,.warehouse-standalone .qm-readiness{border-radius:999px;padding:4px 9px;font-size:11px;font-weight:650}.warehouse-standalone .warehouse-status.ok,.warehouse-standalone .qm-readiness.ready{background:#eaf8ef;color:#16803b}.warehouse-standalone .warehouse-status.warn{background:#fff5de;color:#a86300}.warehouse-standalone .warehouse-status.bad{background:#feecec;color:#c52f35}.warehouse-standalone .warehouse-location-pill{background:transparent;padding:0;color:#27384a}.warehouse-standalone .warehouse-dashboard-grid{gap:14px}.warehouse-standalone .warehouse-erp-nav{display:none!important}.warehouse-standalone .cbdosp-modal-backdrop{z-index:120}.warehouse-standalone .alert{margin-bottom:14px}.warehouse-standalone .warehouse-grid-card footer{padding:12px 15px;background:#fff}.warehouse-standalone .warehouse-erp-toolbar .search{flex:1;min-width:250px}.warehouse-standalone .warehouse-erp-toolbar .search input{width:100%}.warehouse-standalone .qm-filter-bar label{display:grid;gap:5px}.warehouse-standalone .qm-filter-bar label span{font-size:11px;color:#667085}.warehouse-standalone .qm-filter-bar .wide{flex:1}.warehouse-standalone .qm-filter-bar input{width:100%;box-sizing:border-box}.warehouse-standalone .warehouse-dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:1100px){.warehouse-app-shell{grid-template-columns:220px minmax(0,1fr)}.warehouse-app-sidebar{width:220px}.warehouse-standalone .warehouse-kpi-grid{grid-template-columns:repeat(2,1fr)}.warehouse-standalone .warehouse-erp-toolbar,.warehouse-standalone .qm-filter-bar{flex-wrap:wrap}}
@media(max-width:760px){.warehouse-app-shell{display:block}.warehouse-app-stage{grid-column:auto}.warehouse-app-sidebar{transform:translateX(-102%);transition:.2s;width:264px}.warehouse-app-sidebar.open{transform:none}.warehouse-standalone main.content,.warehouse-standalone .warehouse-erp-workspace{padding:18px 14px 80px!important}.warehouse-app-userbar{padding:0 14px}.warehouse-standalone .warehouse-kpi-grid,.warehouse-standalone .warehouse-dashboard-grid,.warehouse-standalone .warehouse-dashboard-columns{grid-template-columns:1fr}.warehouse-standalone .page-head,.warehouse-standalone .warehouse-erp-topbar{display:grid}.warehouse-user-actions strong{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* CBDOSP Kwatermistrz 6.1 — profesjonalny widok magazynu */
.warehouse-stock-page{padding:24px 28px 72px!important}.warehouse-stock-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.warehouse-stock-heading h1{margin:2px 0 5px;font-size:27px;color:#101828}.warehouse-stock-heading p{margin:0;color:#667085;font-size:13px}.warehouse-stock-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.warehouse-stock-kpis{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-bottom:14px}.warehouse-stock-kpis article{padding:15px 16px;border:1px solid #e1e7ee;border-radius:9px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.03)}.warehouse-stock-kpis span,.warehouse-stock-kpis small{display:block;color:#667085;font-size:11px}.warehouse-stock-kpis strong{display:block;margin:5px 0 2px;color:#101828;font-size:24px;line-height:1}.warehouse-stock-kpis article.alerted{border-color:#f2c9c9;background:#fffafa}.warehouse-stock-kpis article.alerted strong{color:#c43236}.warehouse-stock-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 190px 170px 160px auto auto;gap:8px;padding:11px;margin-bottom:14px;border:1px solid #e1e7ee;border-radius:9px;background:#fff}.warehouse-stock-toolbar select{width:100%}.warehouse-stock-search{display:flex;align-items:center;border:1px solid #d7dee7;border-radius:6px;overflow:hidden}.warehouse-stock-search span{padding:0 10px;color:#667085;font-size:18px}.warehouse-stock-search input{width:100%;border:0!important;outline:0;box-sizing:border-box}.warehouse-stock-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;align-items:start}.warehouse-stock-grid,.warehouse-stock-details{border:1px solid #e1e7ee;border-radius:10px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.035);overflow:hidden}.warehouse-stock-grid>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border-bottom:1px solid #e7ecf1}.warehouse-stock-grid>header strong{font-size:14px}.warehouse-stock-grid>header span{margin-left:9px;color:#667085;font-size:11px}.warehouse-stock-grid>header a,.warehouse-stock-grid>header button{margin-left:14px;border:0;background:none;color:#087f7c;font:inherit;font-size:12px;text-decoration:none;cursor:pointer}.warehouse-stock-table-wrap{overflow:auto;max-height:calc(100vh - 365px);min-height:360px}.warehouse-stock-table{min-width:1050px}.warehouse-stock-table th{position:sticky;top:0;z-index:2}.warehouse-stock-table .check{width:32px;text-align:center}.warehouse-stock-table .num{text-align:right;font-variant-numeric:tabular-nums}.warehouse-stock-table td a{text-decoration:none;color:#172033}.warehouse-stock-table td a small{display:block;margin-top:3px;color:#7b8794}.warehouse-stock-row{cursor:pointer}.warehouse-stock-row.selected{background:#edf9f7!important;box-shadow:inset 3px 0 #078d80}.warehouse-stock-grid>footer{display:flex;justify-content:space-between;padding:11px 14px;color:#667085;font-size:11px;border-top:1px solid #edf1f5}.warehouse-stock-details{position:sticky;top:86px;min-height:430px}.warehouse-stock-empty{display:grid;place-items:center;text-align:center;padding:80px 24px;color:#667085}.warehouse-stock-empty span{font-size:32px;color:#99a6b5}.warehouse-stock-empty strong{margin-top:12px;color:#344054}.warehouse-stock-empty p{max-width:220px;font-size:12px}.warehouse-detail-head{display:flex;gap:12px;padding:18px;border-bottom:1px solid #e7ecf1}.warehouse-detail-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:9px;background:#e9f8f6;color:#087f7c;font-size:20px}.warehouse-detail-head small{color:#667085}.warehouse-detail-head h2{margin:2px 0;font-size:16px;color:#101828}.warehouse-detail-head p{margin:0;color:#667085;font-size:12px}.warehouse-stock-details dl{margin:0;padding:8px 18px}.warehouse-stock-details dl div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #edf1f5}.warehouse-stock-details dt{color:#667085;font-size:11px}.warehouse-stock-details dd{margin:0;text-align:right;color:#253244;font-size:12px}.warehouse-detail-notes{padding:4px 18px 14px}.warehouse-detail-notes small{color:#667085}.warehouse-detail-notes p{margin:5px 0 0;color:#344054;font-size:12px}.warehouse-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 18px 18px;border-top:1px solid #e7ecf1}.warehouse-detail-actions .btn{font-size:12px}
@media(max-width:1280px){.warehouse-stock-kpis{grid-template-columns:repeat(3,1fr)}.warehouse-stock-toolbar{grid-template-columns:minmax(260px,1fr) 1fr 1fr}.warehouse-stock-toolbar .btn{width:100%}.warehouse-stock-layout{grid-template-columns:1fr}.warehouse-stock-details{position:static;min-height:0}.warehouse-stock-table-wrap{max-height:none}}
@media(max-width:760px){.warehouse-stock-page{padding:18px 14px 72px!important}.warehouse-stock-heading{display:grid;align-items:start}.warehouse-stock-actions{justify-content:flex-start}.warehouse-stock-kpis{grid-template-columns:1fr 1fr}.warehouse-stock-toolbar{grid-template-columns:1fr}.warehouse-stock-grid>header,.warehouse-stock-grid>footer{align-items:flex-start;gap:8px}.warehouse-stock-grid>header{display:grid}.warehouse-stock-grid>footer{display:grid}.warehouse-detail-actions{grid-template-columns:1fr}}

/* CBDOSP 6.2 — rejestr i obieg dokumentów magazynowych */
.warehouse-doc-filters{display:grid;grid-template-columns:minmax(260px,2fr) minmax(170px,1fr) minmax(150px,1fr) 150px 150px auto;gap:14px;align-items:end}
.warehouse-doc-register td small{display:block;color:var(--muted,#6b7280);margin-top:3px}
.warehouse-doc-status{display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em}
.warehouse-doc-status.draft{background:#fff7d6;color:#8a5b00;border:1px solid #f0d67b}
.warehouse-doc-status.approved{background:#dcfce7;color:#166534;border:1px solid #86efac}
.warehouse-doc-status.cancelled{background:#f3f4f6;color:#4b5563;border:1px solid #d1d5db;text-decoration:line-through}
.btn.danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}.btn.danger:hover{background:#ffe4e6}
@media(max-width:1180px){.warehouse-doc-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.warehouse-doc-filters .wide,.warehouse-doc-filters .qm-filter-actions{grid-column:1/-1}}

/* CBDOSP 6.3 — karty odpowiedzialności członków i magazyny pojazdów */
.warehouse-assignment-page{padding:24px 28px 72px!important}.warehouse-assignment-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.warehouse-assignment-hero>div{padding:16px 18px;border:1px solid #e1e7ee;border-radius:9px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.03)}.warehouse-assignment-hero span{display:block;color:#667085;font-size:11px}.warehouse-assignment-hero strong{display:block;margin-top:6px;color:#101828;font-size:20px}.warehouse-assignment-ok{color:#16803b!important}.warehouse-assignment-warn{color:#c43236!important}.warehouse-section-title{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 16px;border-bottom:1px solid #e7ecf1}.warehouse-section-title h2{margin:0;color:#101828;font-size:15px}.warehouse-section-title p{margin:4px 0 0;color:#667085;font-size:12px}.warehouse-entity-link{color:#087f7c;text-decoration:none}.warehouse-entity-link:hover{text-decoration:underline}.warehouse-personal-integration-head{margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb}
@media(max-width:900px){.warehouse-assignment-hero{grid-template-columns:1fr 1fr}.warehouse-section-title{align-items:flex-start;display:grid}}
@media(max-width:560px){.warehouse-assignment-page{padding:18px 14px 72px!important}.warehouse-assignment-hero{grid-template-columns:1fr}}

/* ETAP 125 — Przebieg służby w OSP */
.service-history-list{display:flex;flex-direction:column;gap:14px;margin-top:16px}.service-history-card{border:1px solid #d4dde1;background:#fff;border-radius:10px;overflow:hidden}.service-history-card>header{display:flex;justify-content:space-between;gap:18px;padding:16px 18px;background:#f6f8f9;border-bottom:1px solid #dfe5e8}.service-history-card h4{margin:6px 0 5px;font-size:18px}.service-history-card p{margin:0;color:#66757c;font-size:13px}.service-history-kind{display:inline-flex;padding:4px 8px;border-radius:12px;background:#e9eef1;font-size:11px;font-weight:800;text-transform:uppercase}.service-history-kind.parallel{background:#eaf2ff;color:#315e98}.service-history-kind.current_home{background:#e9f6ed;color:#2d7045}.service-history-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.service-history-actions form{margin:0}.service-history-notes{padding:12px 18px;border-bottom:1px solid #e4e9eb}.service-function-section{padding:14px 18px 18px}.service-function-section h5{margin:0 0 10px}.service-function-empty,.service-history-empty{padding:18px;border:1px dashed #cbd5d9;background:#f9fafb;color:#718087;text-align:center}.service-history-modal-window{width:min(760px,100%)}.service-history-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.service-history-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.service-history-form-grid label.wide{grid-column:1/-1}.service-history-form-grid input,.service-history-form-grid select,.service-history-form-grid textarea{width:100%;padding:10px 11px;border:1px solid #bfcbd0;border-radius:6px}.service-history-form-grid small{font-weight:400;color:#748188}.service-history-initial-function{border-top:1px solid #dde4e7}.service-history-initial-function h3{padding:16px 18px 0;margin:0}.service-history-initial-function h3 small{font-weight:400}.service-function-dialog{width:min(680px,calc(100% - 30px));border:0;border-radius:10px;padding:0;box-shadow:0 20px 70px rgba(0,0,0,.25)}.service-function-dialog::backdrop{background:rgba(20,30,35,.55)}.service-function-dialog form>header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#243640;color:#fff}.service-function-dialog form>header h2{margin:3px 0 0}.service-function-dialog form>header button{border:0;background:transparent;color:#fff;font-size:26px}.service-function-dialog .card-form-actions{padding:0 18px 18px}@media(max-width:760px){.service-history-card>header{flex-direction:column}.service-history-form-grid{grid-template-columns:1fr}.service-history-form-grid label.wide{grid-column:auto}}

/* ETAP 127 — globalny pływający przycisk + wyłączony */
.cbdosp-quick-trigger{display:none!important}


/* ETAP 128 — trwałe ograniczenie zdjęcia Karty Personalnej */
.personal-card-modal .personal-card-main-grid .member-photo-placeholder,
.personal-card-modal .member-photo-placeholder{
 position:relative!important;
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 overflow:hidden!important;
 width:160px!important;
 height:200px!important;
 min-width:160px!important;
 min-height:200px!important;
 max-width:160px!important;
 max-height:200px!important;
 padding:0!important;
 box-sizing:border-box!important;
 background:#eef2f3;
 border:1px solid #c5d0d4;
}

.personal-card-modal .member-photo-placeholder.has-photo img,
.personal-card-modal .member-photo-placeholder img{
 display:block!important;
 width:100%!important;
 height:100%!important;
 min-width:0!important;
 min-height:0!important;
 max-width:100%!important;
 max-height:100%!important;
 object-fit:cover!important;
 object-position:center top!important;
 margin:0!important;
 padding:0!important;
 border:0!important;
 position:static!important;
 transform:none!important;
}

.member-photo-edit-section .member-photo-preview{
 position:relative!important;
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
 overflow:hidden!important;
 width:180px!important;
 height:225px!important;
 min-width:180px!important;
 min-height:225px!important;
 max-width:180px!important;
 max-height:225px!important;
 padding:0!important;
 box-sizing:border-box!important;
 background:#eef2f3;
 border:1px solid #c5d0d4;
}

.member-photo-edit-section .member-photo-preview img{
 display:block!important;
 width:100%!important;
 height:100%!important;
 max-width:100%!important;
 max-height:100%!important;
 object-fit:cover!important;
 object-position:center top!important;
 margin:0!important;
 padding:0!important;
 position:static!important;
 transform:none!important;
}

@media(max-width:760px){
 .personal-card-modal .personal-card-main-grid .member-photo-placeholder,
 .personal-card-modal .member-photo-placeholder{
  width:120px!important;
  height:150px!important;
  min-width:120px!important;
  min-height:150px!important;
  max-width:120px!important;
  max-height:150px!important;
 }

 .member-photo-edit-section .member-photo-preview{
  width:150px!important;
  height:188px!important;
  min-width:150px!important;
  min-height:188px!important;
  max-width:150px!important;
  max-height:188px!important;
 }
}


/* ETAP 129 — Przebieg służby OSP: podzakładki i tabele */
.service-register-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.service-register-head h3{margin:0 0 5px}
.service-register-tabs{display:flex;gap:0;overflow-x:auto;border:1px solid #cfd8dc;background:#eef2f3;margin-bottom:16px}
.service-register-tabs a{flex:0 0 auto;padding:11px 15px;border-right:1px solid #cfd8dc;text-decoration:none;font-weight:700;color:#34474f;background:#eef2f3}
.service-register-tabs a.active{background:#fff;color:#173f42;border-top:3px solid var(--active);padding-top:8px}
.service-register-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}
.service-register-toolbar h4{margin:0 0 4px;font-size:16px}.service-register-toolbar p{margin:0;color:#6b787e;font-size:12px}
.service-register-table{min-width:760px}.service-register-table th,.service-register-table td{vertical-align:middle}
.service-register-table form{margin:0}
.service-compact-modal{width:min(620px,calc(100% - 30px))!important;max-height:calc(100vh - 80px)}
.service-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.service-compact-grid label{display:flex;flex-direction:column;gap:5px;margin:0;font-weight:700}
.service-compact-grid label.wide{grid-column:1/-1}
.service-compact-grid input,.service-compact-grid select,.service-compact-grid textarea{width:100%;margin:0;padding:9px 10px;border:1px solid #b9c5c9}
@media(max-width:700px){.service-register-toolbar{align-items:flex-start;flex-direction:column}.service-compact-grid{grid-template-columns:1fr}.service-compact-grid label.wide{grid-column:auto}}


/* ETAP 130 — niezależne modale rejestrów przebiegu służby */
.service-register-modal[hidden]{display:none!important}
.service-register-modal{z-index:5200}
.service-modal-close.card-modal-close{
 border:1px solid rgba(255,255,255,.35);
 background:transparent;
 cursor:pointer;
}

/* ETAP 134 — dodatkowe podzakładki */
.service-register-tabs{flex-wrap:wrap}


/* ETAP 136 — modale: Pełnione funkcje / Stopnie funkcyjne / Dystynkcje */
.service-profile-register-modal[hidden]{display:none!important}
.service-profile-register-modal{z-index:5300}
.service-profile-modal-close.card-modal-close{
 border:1px solid rgba(255,255,255,.35);
 background:transparent;
 cursor:pointer;
}

/* ETAP 138 — stabilne otwieranie modali przez GET */
.service-inline-open-form{margin:0;padding:0;display:inline-flex}.service-inline-open-form .btn{margin:0}


/* ETAP 178 — przebudowa WYŁĄCZNIE Karty Personalnej Członka.
   Pozostałe interfejsy CBDOSP pozostają bez zmian. */
.personal-card-backdrop{
 align-items:center;
 padding:18px;
}
.personal-card-modal{
 width:min(1480px,calc(100vw - 36px));
 max-height:calc(100vh - 36px);
 display:flex;
 flex-direction:column;
 overflow:hidden;
 border-radius:7px;
 box-shadow:0 24px 70px rgba(0,0,0,.30);
}
.personal-card-modal .personal-card-identity-head{
 position:relative;
 display:grid;
 grid-template-columns:minmax(230px,.75fr) minmax(320px,2fr) minmax(60px,.35fr);
 align-items:center;
 min-height:70px;
 padding:0;
 gap:0;
 background:var(--ok);
 border-bottom:1px solid rgba(255,255,255,.22);
 color:#fff;
}
.personal-card-modal .personal-card-identity-head h2{
 margin:0;
 padding:18px 22px;
 color:#fff;
 text-align:center;
 font-size:25px;
 letter-spacing:.025em;
}
.personal-card-modal .personal-card-identity-head .membership-terminated-name{
 color:#fff!important;
}
.personal-card-header-id{
 align-self:stretch;
 display:flex;
 align-items:center;
 gap:7px;
 padding:0 20px;
 border-right:1px solid rgba(255,255,255,.22);
 font-size:14px;
}
.personal-card-header-id strong{
 font-size:20px;
 letter-spacing:.04em;
}
.personal-card-main-close{
 justify-self:end;
 margin-right:14px;
 color:#fff!important;
 border-color:transparent!important;
 background:transparent!important;
 font-size:30px!important;
}
.personal-card-modal-content{
 min-height:0;
 display:flex;
 flex-direction:column;
 overflow:hidden;
}
.personal-card-overview{
 flex:0 0 auto;
 display:grid;
 grid-template-columns:180px minmax(250px,1.15fr) minmax(250px,1fr) minmax(270px,1.05fr);
 border-bottom:1px solid var(--border);
 background:#fff;
}
.personal-card-photo-column{
 padding:14px;
 display:flex;
 align-items:center;
 justify-content:center;
 border-right:1px solid #d7dfe2;
}
.personal-card-modal .personal-card-overview .member-photo-placeholder{
 width:150px!important;
 height:188px!important;
 min-width:150px!important;
 min-height:188px!important;
 max-width:150px!important;
 max-height:188px!important;
 border-radius:4px;
}
.personal-card-overview-section{
 min-width:0;
 padding:14px 20px 12px;
 border-right:1px solid #d7dfe2;
}
.personal-card-overview-section:last-child{border-right:0}
.personal-card-overview-section h3{
 margin:0 0 10px;
 padding-bottom:8px;
 border-bottom:1px solid #e3e8ea;
 color:#26363c;
 font-size:14px;
 text-align:center;
}
.personal-card-overview-section dl{
 margin:0;
 display:flex;
 flex-direction:column;
 gap:0;
}
.personal-card-overview-section dl>div{
 display:grid;
 grid-template-columns:minmax(115px,43%) 1fr;
 gap:10px;
 align-items:start;
 min-height:29px;
 padding:5px 0;
}
.personal-card-overview-section dt{
 color:#59686e;
 font-size:12px;
 font-weight:700;
}
.personal-card-overview-section dd{
 margin:0;
 min-width:0;
 color:#111;
 font-size:13px;
 font-weight:700;
 overflow-wrap:anywhere;
}
.personal-card-registry-link{
 color:var(--ok);
 text-decoration:none;
 font-weight:800;
}
.personal-card-registry-link:hover{text-decoration:underline}

.personal-card-workspace{
 min-height:0;
 flex:1 1 auto;
 display:grid;
 grid-template-columns:260px minmax(0,1fr);
 overflow:hidden;
 background:#fff;
}
.personal-card-modal .personal-card-tabs{
 min-height:0;
 display:flex;
 flex-direction:column;
 overflow-y:auto;
 overflow-x:hidden;
 background:#e8edef;
 border:0;
 border-right:1px solid var(--border);
}
.personal-card-modal .personal-card-tabs a{
 flex:0 0 auto;
 display:block;
 padding:12px 15px;
 border:0;
 border-bottom:1px solid #cfd8dc;
 background:#e8edef;
 color:#26363c;
 font-weight:700;
 text-decoration:none;
 white-space:normal;
}
.personal-card-modal .personal-card-tabs a:hover{
 background:#dfe6e9;
}
.personal-card-modal .personal-card-tabs a.active{
 padding:12px 15px;
 background:var(--top);
 border:0;
 border-left:4px solid var(--active);
 color:#fff;
}
.personal-card-modal .personal-card-body{
 min-width:0;
 min-height:0;
 overflow:auto;
 padding:18px;
 background:#fff;
}
.personal-card-modal .personal-card-profile-grid{
 max-width:none;
}
.personal-card-modal .personal-data-tiles.personal-service-status-tiles{
 margin:0 0 16px;
 padding:0;
 background:transparent;
 border:0;
 grid-template-columns:repeat(4,minmax(175px,1fr));
}
.personal-card-modal .personal-service-status-tiles .personal-tile{
 min-height:108px;
 border-radius:4px;
}
.personal-card-footer-actions{
 flex:0 0 auto;
 display:flex;
 justify-content:flex-end;
 align-items:center;
 gap:10px;
 padding:12px 16px;
 border-top:1px solid var(--border);
 background:#f7f9fa;
}
.personal-card-footer-actions .personal-edit-button{
 background:var(--accent);
 border-color:#c88708;
 color:#182226;
}
.personal-card-footer-actions .member-delete-button{
 background:#fff1f0;
 border-color:#e5aaa5;
 color:var(--danger);
}
.personal-card-modal .service-register-head{
 gap:14px;
 flex-wrap:wrap;
}
.personal-card-modal .service-register-print-actions{
 display:flex;
 gap:8px;
 flex-wrap:wrap;
}

@media(max-width:1180px){
 .personal-card-overview{
  grid-template-columns:160px repeat(3,minmax(230px,1fr));
  overflow-x:auto;
 }
 .personal-card-modal .personal-card-overview .member-photo-placeholder{
  width:132px!important;
  height:165px!important;
  min-width:132px!important;
  min-height:165px!important;
  max-width:132px!important;
  max-height:165px!important;
 }
 .personal-card-modal .personal-data-tiles.personal-service-status-tiles{
  grid-template-columns:repeat(2,minmax(190px,1fr));
 }
}
@media(max-width:820px){
 .personal-card-backdrop{padding:8px;align-items:flex-start}
 .personal-card-modal{
  width:calc(100vw - 16px);
  max-height:calc(100vh - 16px);
 }
 .personal-card-modal .personal-card-identity-head{
  grid-template-columns:1fr auto;
 }
 .personal-card-header-id{
  border-right:0;
  border-bottom:1px solid rgba(255,255,255,.18);
 }
 .personal-card-modal .personal-card-identity-head h2{
  grid-column:1/-1;
  grid-row:2;
  font-size:20px;
  padding:12px 16px;
  border-top:1px solid rgba(255,255,255,.18);
 }
 .personal-card-main-close{
  grid-column:2;
  grid-row:1;
 }
 .personal-card-overview{
  grid-template-columns:140px 250px 250px 270px;
 }
 .personal-card-workspace{
  grid-template-columns:205px minmax(0,1fr);
 }
 .personal-card-modal .personal-card-tabs a{
  font-size:12px;
  padding:11px 10px;
 }
}
@media(max-width:620px){
 .personal-card-workspace{
  display:flex;
  flex-direction:column;
 }
 .personal-card-modal .personal-card-tabs{
  flex:0 0 auto;
  flex-direction:row;
  overflow-x:auto;
  border-right:0;
  border-bottom:1px solid var(--border);
 }
 .personal-card-modal .personal-card-tabs a{
  white-space:nowrap;
  border-right:1px solid #cfd8dc;
  border-bottom:0;
 }
 .personal-card-modal .personal-card-tabs a.active{
  border-left:0;
  border-top:3px solid var(--active);
  padding-top:8px;
 }
 .personal-card-modal .personal-data-tiles.personal-service-status-tiles{
  grid-template-columns:1fr;
 }
 .personal-card-footer-actions{
  flex-direction:column-reverse;
  align-items:stretch;
 }
 .personal-card-footer-actions .btn{text-align:center}
}


/* ETAP 179 — kompaktowa Karta Personalna.
   Zmiany ograniczone wyłącznie do .personal-card-modal. */
.personal-card-backdrop{
 padding:8px!important;
}

.personal-card-modal{
 width:min(1540px,calc(100vw - 16px))!important;
 max-height:calc(100vh - 16px)!important;
 height:calc(100vh - 16px)!important;
}

.personal-card-modal .personal-card-identity-head{
 min-height:46px!important;
 height:46px!important;
 grid-template-columns:minmax(190px,.7fr) minmax(300px,2fr) minmax(44px,.22fr)!important;
}

.personal-card-modal .personal-card-identity-head h2{
 padding:8px 14px!important;
 font-size:19px!important;
 line-height:1.05!important;
}

.personal-card-header-id{
 padding:0 14px!important;
 font-size:11px!important;
 line-height:1!important;
}

.personal-card-header-id strong{
 font-size:15px!important;
}

.personal-card-main-close{
 margin-right:8px!important;
 font-size:24px!important;
 line-height:1!important;
}

.personal-card-overview{
 flex:0 0 150px!important;
 min-height:150px!important;
 max-height:150px!important;
 grid-template-columns:122px minmax(210px,1.12fr) minmax(210px,1fr) minmax(230px,1.04fr)!important;
 overflow:hidden!important;
}

.personal-card-photo-column{
 padding:7px!important;
}

.personal-card-modal .personal-card-overview .member-photo-placeholder{
 width:102px!important;
 height:128px!important;
 min-width:102px!important;
 min-height:128px!important;
 max-width:102px!important;
 max-height:128px!important;
}

.personal-card-modal .personal-card-overview .member-photo-placeholder span{
 font-size:10px!important;
}

.personal-card-overview-section{
 padding:7px 12px 6px!important;
}

.personal-card-overview-section h3{
 margin:0 0 4px!important;
 padding-bottom:4px!important;
 font-size:11px!important;
 line-height:1.05!important;
}

.personal-card-overview-section dl{
 gap:0!important;
}

.personal-card-overview-section dl>div{
 grid-template-columns:minmax(96px,42%) 1fr!important;
 gap:6px!important;
 min-height:18px!important;
 padding:1px 0!important;
}

.personal-card-overview-section dt{
 font-size:9.5px!important;
 line-height:1.15!important;
}

.personal-card-overview-section dd{
 font-size:10px!important;
 line-height:1.15!important;
}

.personal-card-workspace{
 flex:1 1 auto!important;
 min-height:0!important;
 grid-template-columns:205px minmax(0,1fr)!important;
}

/* Pasek boczny ma być widoczny w całości bez przewijania */
.personal-card-modal .personal-card-tabs{
 overflow:hidden!important;
 min-height:0!important;
}

.personal-card-modal .personal-card-tabs a{
 padding:5px 9px!important;
 min-height:28px!important;
 display:flex!important;
 align-items:center!important;
 font-size:10px!important;
 line-height:1.05!important;
}

.personal-card-modal .personal-card-tabs a.active{
 padding:5px 9px!important;
 min-height:28px!important;
 border-left-width:3px!important;
}

/* Pole prezentacji zakładek ma zajmować zdecydowaną większość modala */
.personal-card-modal .personal-card-body{
 min-height:0!important;
 padding:10px!important;
 font-size:11px!important;
 overflow:auto!important;
}

.personal-card-modal .personal-card-body h2{
 font-size:17px!important;
 margin:0 0 8px!important;
}

.personal-card-modal .personal-card-body h3{
 font-size:13px!important;
 margin:8px 0 6px!important;
}

.personal-card-modal .personal-card-body p,
.personal-card-modal .personal-card-body label,
.personal-card-modal .personal-card-body td,
.personal-card-modal .personal-card-body th,
.personal-card-modal .personal-card-body input,
.personal-card-modal .personal-card-body select,
.personal-card-modal .personal-card-body textarea,
.personal-card-modal .personal-card-body button,
.personal-card-modal .personal-card-body .btn{
 font-size:10px!important;
}

.personal-card-modal .personal-card-body td,
.personal-card-modal .personal-card-body th{
 padding:5px 7px!important;
 line-height:1.15!important;
}

.personal-card-modal .personal-card-body input,
.personal-card-modal .personal-card-body select{
 min-height:28px!important;
 padding:4px 7px!important;
}

.personal-card-modal .personal-data-tiles.personal-service-status-tiles{
 margin:0 0 8px!important;
 gap:7px!important;
}

.personal-card-modal .personal-service-status-tiles .personal-tile{
 min-height:76px!important;
 padding:8px!important;
}

.personal-card-modal .personal-service-status-tiles .personal-tile strong{
 font-size:12px!important;
}

.personal-card-modal .personal-service-status-tiles .personal-tile small,
.personal-card-modal .personal-service-status-tiles .personal-tile span{
 font-size:9px!important;
}

.personal-card-footer-actions{
 flex:0 0 42px!important;
 min-height:42px!important;
 padding:5px 9px!important;
 gap:7px!important;
}

.personal-card-footer-actions .btn{
 padding:7px 11px!important;
 font-size:10px!important;
}

/* Przy typowym ekranie desktopowym:
   46px nagłówek + 150px panel górny + 42px stopka = 238px.
   Reszta wysokości, tj. zwykle ponad 70%, pozostaje dla obszaru zakładek. */
@media(min-height:760px) and (min-width:1000px){
 .personal-card-workspace{
  min-height:calc(100vh - 270px)!important;
 }
}

@media(max-width:1180px){
 .personal-card-overview{
  grid-template-columns:112px 210px 210px 230px!important;
  overflow-x:auto!important;
 }
 .personal-card-modal .personal-card-overview .member-photo-placeholder{
  width:92px!important;
  height:116px!important;
  min-width:92px!important;
  min-height:116px!important;
  max-width:92px!important;
  max-height:116px!important;
 }
 .personal-card-workspace{
  grid-template-columns:185px minmax(0,1fr)!important;
 }
 .personal-card-modal .personal-card-tabs a{
  font-size:9.5px!important;
 }
}

@media(max-width:820px){
 .personal-card-modal{
  height:calc(100vh - 8px)!important;
  max-height:calc(100vh - 8px)!important;
 }
 .personal-card-overview{
  max-height:138px!important;
  min-height:138px!important;
  flex-basis:138px!important;
 }
 .personal-card-workspace{
  grid-template-columns:175px minmax(0,1fr)!important;
 }
}



/* ETAP 180 — wszystkie 12 zakładek Karty Personalnej widoczne jednocześnie.
   Funkcje i pozostały interfejs CBDOSP bez zmian. */
.personal-card-modal .personal-card-tabs{
 display:grid!important;
 grid-template-rows:repeat(12,minmax(0,1fr))!important;
 align-content:stretch!important;
 height:100%!important;
 min-height:0!important;
 overflow:hidden!important;
}
.personal-card-modal .personal-card-tabs a,
.personal-card-modal .personal-card-tabs a.active{
 min-height:0!important;
 height:auto!important;
 padding:2px 8px!important;
 font-size:9px!important;
 line-height:1!important;
 display:flex!important;
 align-items:center!important;
}
.personal-card-workspace{
 min-height:0!important;
 overflow:hidden!important;
}
.personal-card-modal .personal-card-body{
 min-height:0!important;
 overflow:auto!important;
}


/* ETAP 181 — stała wysokość panelu bocznego Karty Personalnej.
   Panel NIE zmienia wysokości zależnie od wybranej zakładki.
   Zmiany wyłącznie w modalnej Karcie Personalnej. */

.personal-card-modal{
 height:calc(100vh - 16px)!important;
 max-height:calc(100vh - 16px)!important;
 display:flex!important;
 flex-direction:column!important;
 overflow:hidden!important;
}

.personal-card-modal-content{
 flex:1 1 auto!important;
 min-height:0!important;
 display:flex!important;
 flex-direction:column!important;
 overflow:hidden!important;
}

/* Górny blok ma stałą wysokość */
.personal-card-overview{
 flex:0 0 150px!important;
 height:150px!important;
 min-height:150px!important;
 max-height:150px!important;
}

/* Obszar zakładek otrzymuje stałą wysokość wynikającą z modala,
   a nie z zawartości aktywnej zakładki */
.personal-card-workspace{
 flex:1 1 auto!important;
 height:auto!important;
 min-height:0!important;
 display:grid!important;
 grid-template-columns:205px minmax(0,1fr)!important;
 overflow:hidden!important;
}

/* Lewy panel zawsze wypełnia 100% wysokości obszaru roboczego */
.personal-card-modal .personal-card-tabs{
 height:100%!important;
 min-height:0!important;
 max-height:none!important;
 overflow:hidden!important;
 align-self:stretch!important;
}

/* Prawa część przewija się niezależnie — nie wpływa na wysokość lewego panelu */
.personal-card-modal .personal-card-body{
 height:100%!important;
 min-height:0!important;
 max-height:none!important;
 overflow-y:auto!important;
 overflow-x:hidden!important;
 align-self:stretch!important;
}

/* Stopka ma stałą wysokość */
.personal-card-footer-actions{
 flex:0 0 42px!important;
 height:42px!important;
 min-height:42px!important;
 max-height:42px!important;
 box-sizing:border-box!important;
}

/* 12 zakładek rozłożonych równomiernie na całej stałej wysokości panelu */
.personal-card-modal .personal-card-tabs{
 display:grid!important;
 grid-template-rows:repeat(12,minmax(0,1fr))!important;
}

.personal-card-modal .personal-card-tabs a,
.personal-card-modal .personal-card-tabs a.active{
 min-height:0!important;
 height:auto!important;
 overflow:hidden!important;
}

/* Desktop: panel boczny ma zawsze identyczną wysokość niezależnie od zakładki */
@media(min-width:821px){
 .personal-card-workspace{
  min-height:calc(100vh - 258px)!important;
 }
}

/* Mniejsze ekrany zachowują stały panel w ramach dostępnej wysokości */
@media(max-width:820px){
 .personal-card-overview{
  flex-basis:138px!important;
  height:138px!important;
  min-height:138px!important;
  max-height:138px!important;
 }
 .personal-card-workspace{
  min-height:0!important;
 }
}


/* ETAP 182 — usunięcie pionowej kreski z nagłówka Karty Personalnej.
   Tylko nagłówek modalnej Karty Personalnej. */
.personal-card-modal .personal-card-header-id{
 border-right:0!important;
}
.personal-card-modal .personal-card-identity-head > *{
 border-right-color:transparent!important;
}


/* ETAP 183 — aktywne kafelki Badania / KPP / KRK / RSPTS. */
.personal-card-modal .personal-service-status-tiles a{
 pointer-events:auto!important;
 cursor:pointer!important;
 position:relative!important;
 z-index:2!important;
}
.personal-card-status-modal-backdrop{
 z-index:1300!important;
}
.personal-card-status-modal-backdrop .card-modal-window{
 position:relative!important;
 z-index:1301!important;
}


/* ETAP 184 — wymuszone, niezależne otwieranie modalów statusowych. */
.personal-card-status-modal-backdrop{
 display:flex!important;
 visibility:visible!important;
 opacity:1!important;
 pointer-events:auto!important;
 position:fixed!important;
 inset:0!important;
 z-index:2147483000!important;
 align-items:center!important;
 justify-content:center!important;
 padding:18px!important;
 overflow:auto!important;
 background:rgba(13,28,31,.76)!important;
}
.personal-card-status-modal-backdrop .card-modal-window{
 display:block!important;
 visibility:visible!important;
 opacity:1!important;
 position:relative!important;
 z-index:2147483001!important;
 width:min(1120px,calc(100vw - 36px))!important;
 max-height:calc(100vh - 36px)!important;
 overflow:auto!important;
}
html.personal-card-status-modal-open .personal-card-backdrop{
 pointer-events:none!important;
}
html.personal-card-status-modal-open .personal-card-status-modal-backdrop{
 pointer-events:auto!important;
}
.personal-card-modal .personal-service-status-tiles > a{
 pointer-events:auto!important;
 cursor:pointer!important;
}


/* ETAP 185 — niezależne modale statusowe i lokalne zamykanie Karty Personalnej. */
.personal-card-modal button.personal-card-main-close{
 border:0!important;
 background:transparent!important;
 color:inherit!important;
 cursor:pointer!important;
 padding:0!important;
}
.personal-card-modal a[data-personal-status-modal]{
 cursor:pointer!important;
 pointer-events:auto!important;
}
.personal-card-modal a[data-personal-status-modal][aria-busy="true"]{
 opacity:.65!important;
}
body > .personal-card-status-modal-backdrop{
 display:flex!important;
 position:fixed!important;
 inset:0!important;
 z-index:2147483000!important;
 visibility:visible!important;
 opacity:1!important;
 pointer-events:auto!important;
 align-items:center!important;
 justify-content:center!important;
 overflow:auto!important;
 padding:18px!important;
 background:rgba(13,28,31,.76)!important;
}
body > .personal-card-status-modal-backdrop .card-modal-window{
 position:relative!important;
 z-index:2147483001!important;
 width:min(1120px,calc(100vw - 36px))!important;
 max-height:calc(100vh - 36px)!important;
 overflow:auto!important;
}


/* ETAP 186 — szerszy, czytelniejszy panel boczny Karty Personalnej
   z niezależnym pionowym suwakiem. */
@media(min-width:821px){
 .personal-card-workspace{
  grid-template-columns:250px minmax(0,1fr)!important;
 }

 .personal-card-modal .personal-card-tabs{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  align-self:stretch!important;
  scrollbar-gutter:stable!important;
  padding-right:3px!important;
 }

 .personal-card-modal .personal-card-tabs a,
 .personal-card-modal .personal-card-tabs a.active{
  flex:0 0 auto!important;
  min-height:36px!important;
  height:auto!important;
  padding:8px 12px!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  white-space:normal!important;
  overflow:visible!important;
 }

 .personal-card-modal .personal-card-tabs::-webkit-scrollbar{
  width:8px;
 }

 .personal-card-modal .personal-card-tabs::-webkit-scrollbar-track{
  background:rgba(0,0,0,.05);
  border-radius:8px;
 }

 .personal-card-modal .personal-card-tabs::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.28);
  border-radius:8px;
 }

 .personal-card-modal .personal-card-tabs{
  scrollbar-width:thin;
 }
}

@media(min-width:821px) and (max-width:1180px){
 .personal-card-workspace{
  grid-template-columns:225px minmax(0,1fr)!important;
 }
}


/* ETAP 187 — optymalizacja szerokości panelu bocznego.
   Więcej szerokości pozostaje dla właściwej zawartości zakładek. */
@media(min-width:1181px){
 .personal-card-workspace{
  grid-template-columns:190px minmax(0,1fr)!important;
 }
}

@media(min-width:821px) and (max-width:1180px){
 .personal-card-workspace{
  grid-template-columns:180px minmax(0,1fr)!important;
 }
}

@media(min-width:821px){
 .personal-card-modal .personal-card-tabs{
  padding-right:2px!important;
 }

 .personal-card-modal .personal-card-tabs a,
 .personal-card-modal .personal-card-tabs a.active{
  min-height:34px!important;
  padding:7px 9px!important;
  font-size:10px!important;
  line-height:1.15!important;
 }
}


/* ETAP 188 — osoba do kontaktu w nagłym wypadku w kolumnie DANE KONTAKTOWE. */
.personal-card-modal .personal-card-overview-section .personal-card-emergency-contact,
.personal-card-modal .personal-card-overview-section .personal-card-emergency-contact dt,
.personal-card-modal .personal-card-overview-section .personal-card-emergency-contact dd,
.personal-card-modal .personal-card-overview-section .personal-card-emergency-contact strong,
.personal-card-modal .personal-card-overview-section .personal-card-emergency-contact span{
 color:#b00020!important;
}
.personal-card-modal .personal-card-emergency-contact:first-of-type{
 margin-top:4px!important;
 padding-top:4px!important;
 border-top:1px solid rgba(176,0,32,.28)!important;
}


/* ETAP 190 — wyraźne rozdzielenie danych członka i osoby alarmowej. */
.personal-card-modal .personal-card-emergency-separator{
 display:block!important;
 height:0!important;
 margin:5px 0 4px!important;
 border-top:1px solid rgba(176,0,32,.42)!important;
}
.personal-card-modal .personal-card-emergency-heading{
 display:block!important;
 margin:0 0 3px!important;
 padding:0!important;
 color:#b00020!important;
 font-size:8.5px!important;
 line-height:1.1!important;
 font-weight:700!important;
 letter-spacing:.02em!important;
}
.personal-card-modal .personal-card-emergency-heading + .personal-card-emergency-contact{
 margin-top:0!important;
 padding-top:0!important;
 border-top:0!important;
}


/* ETAP 191 — DANE KONTAKTOWE:
   dane członka u góry pola, kontakt awaryjny przy dolnej krawędzi, bez linii. */
.personal-card-modal .personal-card-overview-section:has(.personal-card-contact-layout){
 display:flex!important;
 flex-direction:column!important;
 min-height:0!important;
 overflow:hidden!important;
}
.personal-card-modal .personal-card-contact-layout{
 flex:1 1 auto!important;
 min-height:0!important;
 display:flex!important;
 flex-direction:column!important;
 justify-content:space-between!important;
 overflow:hidden!important;
}
.personal-card-modal .personal-card-member-contact{
 flex:0 0 auto!important;
 margin:0!important;
}
.personal-card-modal .personal-card-emergency-block{
 flex:0 0 auto!important;
 margin-top:auto!important;
 padding:0!important;
 border:0!important;
}
.personal-card-modal .personal-card-emergency-separator{
 display:none!important;
 border:0!important;
 margin:0!important;
 height:0!important;
}
.personal-card-modal .personal-card-emergency-heading{
 margin:0 0 2px!important;
 padding:0!important;
 border:0!important;
 color:#b00020!important;
 font-size:8px!important;
 line-height:1!important;
 font-weight:700!important;
 letter-spacing:0!important;
 white-space:nowrap!important;
}
.personal-card-modal .personal-card-emergency-list{
 margin:0!important;
 padding:0!important;
}
.personal-card-modal .personal-card-emergency-contact{
 margin:0!important;
 padding:0!important;
 border:0!important;
}
.personal-card-modal .personal-card-emergency-contact dt,
.personal-card-modal .personal-card-emergency-contact dd,
.personal-card-modal .personal-card-emergency-contact strong,
.personal-card-modal .personal-card-emergency-contact span{
 color:#b00020!important;
}


/* ETAP 232 — rozszerzona Wyszukiwarka członków */
.member-search-tabs{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px;
 margin:0 0 14px;
}
.member-search-tabs a{
 display:flex;
 flex-direction:column;
 gap:4px;
 min-height:72px;
 padding:14px 16px;
 border:1px solid #d9e0e6;
 border-radius:8px;
 background:#fff;
 color:#26343a;
 text-decoration:none;
 box-shadow:0 1px 2px rgba(0,0,0,.025);
}
.member-search-tabs a:hover{
 border-color:#aebac2;
 background:#fbfcfd;
}
.member-search-tabs a.active{
 border-color:#0d5960;
 box-shadow:inset 0 3px 0 #0d5960;
 background:#f7fbfb;
}
.member-search-tabs strong{
 font-size:14px;
 line-height:1.25;
}
.member-search-tabs span{
 color:#6b777c;
 font-size:12px;
 line-height:1.35;
}
.member-search-section-head{
 padding:0 0 14px;
 margin-bottom:14px;
 border-bottom:1px solid #e3e7e9;
}
.member-search-section-head h2{
 margin:0 0 4px;
 font-size:18px;
}
.member-search-section-head p{
 margin:0;
 color:#68757a;
 font-size:12px;
}
.member-search-fields-three{
 grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.member-search-fields-four{
 grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.member-register-search-table td{
 vertical-align:middle;
}
.member-training-validity{
 display:inline-flex;
 align-items:center;
 min-height:24px;
 padding:3px 8px;
 border-radius:999px;
 font-size:11px;
 font-weight:700;
 white-space:nowrap;
}
.member-training-validity.valid{
 background:#e8f5ed;
 color:#24633c;
}
.member-training-validity.expired{
 background:#fdecec;
 color:#a01f1f;
}
@media(max-width:1000px){
 .member-search-tabs{grid-template-columns:1fr}
 .member-search-fields-three,
 .member-search-fields-four{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:640px){
 .member-search-fields-three,
 .member-search-fields-four{grid-template-columns:1fr!important}
}


/* ETAP 232A — kompaktowy wygląd wyszukiwarek */
.member-search-tabs{
  gap:8px;
  margin-bottom:10px;
}
.member-search-tabs a{
  min-height:50px;
  padding:9px 13px;
  gap:2px;
  border-radius:7px;
}
.member-search-tabs strong{
  font-size:13px;
  line-height:1.2;
}
.member-search-tabs span{
  font-size:11px;
  line-height:1.25;
}

.member-search-panel{
  padding:16px 18px !important;
}
.member-search-form{
  gap:12px !important;
}
.member-search-fields{
  gap:10px 14px !important;
}
.member-search-fields label{
  gap:5px !important;
  font-size:12px !important;
}
.member-search-fields input,
.member-search-fields select{
  min-height:36px !important;
  height:36px !important;
  padding:6px 10px !important;
  font-size:12px !important;
}
.member-search-actions{
  margin-top:12px !important;
  gap:8px !important;
}
.member-search-actions .btn{
  min-height:34px !important;
  height:34px !important;
  padding:6px 14px !important;
  font-size:12px !important;
  line-height:20px !important;
}
.member-search-section-head{
  padding-bottom:10px;
  margin-bottom:10px;
}
.member-search-section-head h2{
  font-size:16px;
}
.member-search-section-head p{
  font-size:11px;
}


/* ETAP 232B — równa przestrzeń i minimalna wysokość wyszukiwarek */
.member-search-tabs{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  align-items:stretch;
  gap:8px !important;
  margin-bottom:8px !important;
}
.member-search-tabs a{
  min-height:42px !important;
  height:42px !important;
  padding:6px 11px !important;
  justify-content:center;
}
.member-search-tabs strong{
  font-size:12px !important;
  line-height:1.15 !important;
}
.member-search-tabs span{
  font-size:10px !important;
  line-height:1.15 !important;
}

.member-search-panel{
  padding:10px 12px !important;
}
.member-search-form{
  margin:0 !important;
  gap:7px !important;
}
.member-search-fields{
  gap:7px 10px !important;
  align-items:end;
}
.member-search-fields label{
  gap:2px !important;
  font-size:10.5px !important;
  line-height:1.05 !important;
}
.member-search-fields input,
.member-search-fields select{
  min-height:26px !important;
  height:26px !important;
  padding:2px 7px !important;
  font-size:10.5px !important;
  line-height:18px !important;
}
.member-search-actions{
  margin-top:6px !important;
  gap:6px !important;
}
.member-search-actions .btn{
  min-height:26px !important;
  height:26px !important;
  padding:2px 10px !important;
  font-size:10.5px !important;
  line-height:18px !important;
}

/* Nie pokazujemy dodatkowych opisów wewnątrz trybów wyszukiwania */
.member-search-section-head{
  display:none !important;
}


/* ETAP 232D — maksymalnie kompaktowe tabele wyników wszystkich wyszukiwarek */
.member-results-panel{
  margin-top:8px !important;
}
.member-results-header{
  min-height:0 !important;
  padding:6px 10px !important;
}
.member-results-header .muted{
  font-size:10.5px !important;
  line-height:1.15 !important;
}

.member-results-panel .table-wrap{
  margin:0 !important;
}
.member-results-panel .members-table{
  font-size:11px !important;
}
.member-results-panel .members-table thead th{
  height:28px !important;
  min-height:28px !important;
  padding:4px 8px !important;
  font-size:10px !important;
  line-height:1.05 !important;
  vertical-align:middle !important;
}
.member-results-panel .members-table tbody tr{
  height:32px !important;
  min-height:32px !important;
}
.member-results-panel .members-table tbody td{
  height:32px !important;
  min-height:32px !important;
  padding:3px 8px !important;
  font-size:11px !important;
  line-height:1.1 !important;
  vertical-align:middle !important;
}
.member-results-panel .member-id-link{
  gap:6px !important;
  line-height:1 !important;
}
.member-results-panel .member-envelope{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.member-results-panel .member-envelope svg{
  width:14px !important;
  height:14px !important;
}
.member-results-panel .member-training-validity{
  min-height:20px !important;
  padding:2px 6px !important;
  font-size:9.5px !important;
  line-height:1 !important;
}
.member-results-panel .empty-results{
  height:auto !important;
  padding:8px !important;
}


/* ETAP 232E — jednolita wysokość 28 px dla każdego wiersza wyników */
.member-results-panel .members-table thead tr,
.member-results-panel .members-table tbody tr{
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
}
.member-results-panel .members-table thead th,
.member-results-panel .members-table tbody td{
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
  padding:2px 7px !important;
  line-height:1 !important;
  vertical-align:middle !important;
}
.member-results-panel .member-envelope{
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  min-height:22px !important;
}
.member-results-panel .member-envelope svg{
  width:13px !important;
  height:13px !important;
}
.member-results-panel .member-training-validity{
  min-height:18px !important;
  height:18px !important;
  padding:1px 5px !important;
}


/* ETAP 232F — podciągnięcie wyszukiwarek pod nagłówek */
.member-search-heading{
  margin-bottom:8px !important;
  padding-bottom:0 !important;
}
.member-search-heading h1{
  margin-bottom:0 !important;
}
.member-search-tabs{
  margin-top:0 !important;
}


/* ETAP 233 — przycisk wydruku wyników wyszukiwania */
.member-results-header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}
.member-search-print-button{
  width:26px;
  height:26px;
  min-width:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #bfc8cd;
  border-radius:4px;
  background:#fff;
  color:#26343a;
  text-decoration:none;
  cursor:pointer;
}
.member-search-print-button:hover{
  background:#f2f5f6;
  border-color:#87969d;
}
.member-search-print-button svg{
  width:15px;
  height:15px;
  fill:currentColor;
}


/* ETAP 234 — eksport wyników do Excel */
.member-results-header{
  position:relative;
}
.member-results-header > .member-search-print-button,
.member-results-header > .member-search-export-button{
  flex:0 0 auto;
}
.member-search-export-button{
  width:26px;
  height:26px;
  min-width:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #bfc8cd;
  border-radius:4px;
  background:#fff;
  color:#1f6f43;
  text-decoration:none;
  cursor:pointer;
  margin-left:4px;
}
.member-search-export-button:hover{
  background:#f0f7f3;
  border-color:#6d9c80;
}
.member-search-export-button svg{
  width:15px;
  height:15px;
  fill:currentColor;
}
/* obie ikony pozostają przy prawej krawędzi paska */
.member-results-header{
  justify-content:flex-start !important;
}
.member-results-header > div:first-child{
  margin-right:auto;
}


/* ETAP 235 — sortowanie wyników po kolumnach */
.member-sort-link{
  display:flex;
  align-items:center;
  gap:4px;
  width:100%;
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
}
.member-sort-link:hover{
  color:#0d5960;
}
.member-sort-arrows{
  margin-left:auto;
  font-size:8px;
  line-height:1;
  opacity:.72;
}


/* ==========================================================
   CBDOSP TableTools — ETAP 236
   Wspólne sortowanie, wydruk i eksport tabel systemowych.
   ========================================================== */
.cbdosp-tabletools-bar{
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 5px;
  padding:2px 0;
}
.cbdosp-tabletools-summary{
  min-width:0;
  display:flex;
  align-items:center;
}
.cbdosp-tabletools-count{
  color:#66727a;
  font-size:12px;
  line-height:1.2;
  white-space:nowrap;
}
.cbdosp-tabletools-actions{
  display:flex;
  align-items:center;
  gap:4px;
  margin-left:auto;
}
.cbdosp-tabletools-button{
  width:26px;
  height:26px;
  min-width:26px;
  padding:0;
  border:1px solid #bfc8cd;
  border-radius:4px;
  background:#fff;
  color:#3d4b52;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.cbdosp-tabletools-button:hover{
  background:#f4f7f8;
  border-color:#86969e;
}
.cbdosp-tabletools-button:focus-visible,
.cbdosp-tabletools-sortable:focus-visible{
  outline:2px solid #2b7f86;
  outline-offset:1px;
}
.cbdosp-tabletools-button svg{
  width:15px;
  height:15px;
  fill:currentColor;
}
.cbdosp-tabletools-button.cbdosp-tabletools-excel{
  color:#1f6f43;
}
.cbdosp-tabletools-sortable{
  position:relative;
  cursor:pointer;
  user-select:none;
  padding-right:19px !important;
}
.cbdosp-tabletools-sortable:hover{
  background-color:rgba(17,89,96,.06);
}
.cbdosp-tabletools-sort-marker{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  font-size:8px;
  line-height:1;
  opacity:.68;
}
.cbdosp-tabletools-sorted .cbdosp-tabletools-sort-marker{
  opacity:1;
  color:#0d5960;
}
@media (max-width:700px){
  .cbdosp-tabletools-bar{min-height:30px}
  .cbdosp-tabletools-count{font-size:11px}
}
