*{box-sizing:border-box}

body{
margin:0;
font-family:Arial,sans-serif;
background:#f3f6fb;
color:#172033
}

.login-body{
min-height:100vh;
display:flex;
align-items:center;
justify-content:center;
background:#0f172a
}

.login-card{
width:min(430px,92%);
background:white;
padding:38px;
border-radius:20px;
box-shadow:0 25px 70px rgba(0,0,0,.35)
}

.login-icon{
font-size:48px;
text-align:center
}

.login-card h1{
text-align:center;
margin-bottom:5px
}

.login-card>p{
text-align:center;
color:#64748b;
margin-bottom:25px
}

label{
display:block;
margin:13px 0 6px;
font-weight:600
}

input,textarea,select{
width:100%;
padding:12px;
border:1px solid #cbd5e1;
border-radius:9px;
font-size:15px
}

button{
border:0;
border-radius:9px;
background:#2563eb;
color:white;
padding:11px 17px;
font-weight:bold;
cursor:pointer;
margin-top:12px
}

.login-card button{width:100%}

.sidebar{
position:fixed;
left:0;
top:0;
bottom:0;
width:250px;
background:#0f172a;
color:white;
display:flex;
flex-direction:column
}

.brand{
padding:25px 20px;
font-size:18px;
border-bottom:1px solid #334155
}

.brand div{
font-size:30px;
margin-bottom:7px
}

.sidebar nav{
padding:15px 10px;
flex:1
}

.sidebar nav a{
display:flex;
gap:11px;
align-items:center;
padding:13px;
margin:4px 0;
border-radius:9px;
text-decoration:none;
color:#cbd5e1
}

.sidebar nav a:hover,
.sidebar nav a.active{
background:#2563eb;
color:white
}

.sidebar-user{
padding:18px;
border-top:1px solid #334155
}

.sidebar-user small{
display:block;
color:#94a3b8;
margin:4px 0 12px
}

.sidebar-user a{
color:#fca5a5;
text-decoration:none;
font-size:13px
}

.content{
margin-left:250px;
padding:28px;
max-width:1500px
}

.topbar{
margin-bottom:25px
}

.topbar h1{
margin:0 0 5px;
font-size:28px
}

.topbar p{
margin:0;
color:#64748b
}

.welcome-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
gap:16px
}

.module-card,.panel{
background:white;
border-radius:15px;
padding:21px;
box-shadow:0 3px 16px rgba(15,23,42,.06)
}

.module-icon{font-size:34px}

.module-card h3{margin-bottom:7px}

.module-card p{
color:#64748b;
min-height:40px
}

.module-card a{
text-decoration:none;
color:#2563eb;
font-weight:bold
}

.panel{margin-top:20px}

.panel h2{margin-top:0}

.editor{
background:#f8fafc;
border:1px solid #e2e8f0;
padding:18px;
border-radius:12px;
margin-bottom:24px
}

.check{
display:flex;
gap:8px;
align-items:center
}

.check input{
width:auto
}

.news-item{
border-bottom:1px solid #e2e8f0;
padding:18px 0
}

.news-item:last-child{border-bottom:0}

.news-item small{
color:#64748b
}

.important{
display:inline-block;
background:#fee2e2;
color:#991b1b;
font-weight:bold;
padding:5px 8px;
border-radius:7px;
font-size:12px
}

.secondary{
background:#475569
}

.read-ok{
margin-top:12px;
color:#15803d;
font-weight:bold
}

.legend{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-bottom:20px
}

.legend span{
background:#eef2ff;
padding:9px 12px;
border-radius:8px
}

.muted{color:#64748b}

.alert.error{
background:#fee2e2;
color:#991b1b;
padding:10px;
border-radius:8px
}

table{
width:100%;
border-collapse:collapse
}

td,th{
text-align:left;
padding:11px;
border-bottom:1px solid #e2e8f0
}

@media(max-width:800px){

.sidebar{
width:75px
}

.brand strong,
.sidebar nav a:not(.active){
font-size:0
}

.brand{
padding:18px 12px
}

.sidebar nav a{
justify-content:center;
font-size:0
}

.sidebar nav a span{
font-size:23px
}

.sidebar-user strong,
.sidebar-user small{
display:none
}

.content{
margin-left:75px;
padding:15px
}

.topbar h1{
font-size:22px
}

}

.form-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:14px
}

.alert-ok{
background:#dcfce7;
color:#166534;
padding:12px 14px;
border-radius:9px;
margin-bottom:18px;
font-weight:600
}

.role-badge{
display:inline-block;
padding:5px 9px;
border-radius:20px;
font-size:12px;
font-weight:bold
}

.role-badge.admin{
background:#fee2e2;
color:#991b1b
}

.role-badge.deputy{
background:#fef3c7;
color:#92400e
}

.role-badge.employee{
background:#dbeafe;
color:#1d4ed8
}

.status-active{
color:#15803d;
font-weight:bold
}

.status-inactive{
color:#b91c1c;
font-weight:bold
}

/* ===== MOBILE / RESPONSIVE ===== */

.menu-toggle{
display:none;
border:0;
background:#2563eb;
color:white;
width:44px;
height:44px;
padding:0;
margin:0;
border-radius:10px;
font-size:24px;
align-items:center;
justify-content:center;
flex:0 0 44px
}

.menu-overlay{
display:none
}

.topbar{
display:flex;
align-items:center;
gap:14px
}

.news-image-link{
display:block;
margin:15px 0
}

.news-image{
display:block;
width:100%;
max-width:900px;
height:auto;
max-height:600px;
object-fit:contain;
border-radius:12px;
background:#f8fafc
}

.upload-hint{
font-size:12px;
color:#64748b;
margin-top:6px
}

textarea{
resize:vertical
}

img{
max-width:100%;
height:auto
}

@media(max-width:800px){

body{
overflow-x:hidden
}

.sidebar{
position:fixed !important;
top:0;
bottom:0;
left:0;
width:275px !important;
transform:translateX(-100%);
transition:transform .25s ease;
z-index:1001;
box-shadow:8px 0 30px rgba(0,0,0,.25)
}

body.menu-open .sidebar{
transform:translateX(0)
}

.menu-overlay{
display:block;
position:fixed;
inset:0;
background:rgba(15,23,42,.55);
opacity:0;
visibility:hidden;
transition:.25s;
z-index:1000
}

body.menu-open .menu-overlay{
opacity:1;
visibility:visible
}

.menu-toggle{
display:flex
}

.content{
margin-left:0 !important;
padding:14px !important;
width:100%
}

.brand{
padding:20px !important
}

.brand strong{
display:block !important;
font-size:18px !important
}

.sidebar nav a,
.sidebar nav a:not(.active){
font-size:15px !important;
justify-content:flex-start !important;
gap:12px
}

.sidebar nav a span{
font-size:20px !important
}

.sidebar-user{
padding:18px
}

.sidebar-user strong,
.sidebar-user small{
display:block !important
}

.topbar{
position:sticky;
top:0;
z-index:20;
background:#f3f6fb;
padding:8px 0 14px
}

.topbar h1{
font-size:20px !important;
line-height:1.25
}

.welcome-grid{
grid-template-columns:1fr !important
}

.module-card{
min-height:auto
}

.panel{
padding:16px;
overflow-x:auto
}

.form-grid{
grid-template-columns:1fr !important
}

table{
min-width:600px
}

.news-image{
max-height:none;
width:100%
}

.editor{
padding:14px
}

}

@media(max-width:420px){

.content{
padding:10px !important
}

.topbar h1{
font-size:18px !important
}

.module-card,
.panel{
border-radius:12px
}

}

/* ===== GRAFIK / KALENDARZ ===== */

.schedule-panel{
overflow:visible
}

.schedule-header{
display:flex;
justify-content:space-between;
align-items:center;
gap:20px;
margin-bottom:20px
}

.schedule-header h2{
margin-bottom:4px
}

.month-navigation{
display:flex;
align-items:center;
gap:15px;
background:#f1f5f9;
padding:8px 12px;
border-radius:10px
}

.month-navigation a{
width:36px;
height:36px;
display:flex;
align-items:center;
justify-content:center;
background:white;
border-radius:8px;
text-decoration:none;
font-size:20px;
color:#2563eb
}

.schedule-admin{
background:#f8fafc;
border:1px solid #e2e8f0;
padding:17px;
border-radius:12px;
margin-bottom:20px
}

.schedule-admin h3{
margin-top:0
}

.schedule-upload{
display:flex;
gap:10px;
align-items:center;
flex-wrap:wrap
}

.schedule-upload input[type=file]{
flex:1;
min-width:220px
}

.schedule-upload button{
margin:0
}

.employee-preview{
max-width:450px
}

.schedule-legend{
display:flex;
gap:10px;
flex-wrap:wrap;
margin:18px 0
}

.schedule-legend>div{
display:flex;
align-items:center;
gap:7px;
padding:8px 10px;
border-radius:8px;
background:#f1f5f9
}

.schedule-legend small{
color:#64748b
}

.legend-d,
.legend-n{
font-weight:900;
font-size:18px
}

.legend-u{
font-size:19px
}

.legend-saturday{
background:#dcfce7 !important;
color:#166534;
font-weight:bold
}

.legend-holiday{
background:#fee2e2 !important;
color:#991b1b;
font-weight:bold
}

.calendar{
display:grid;
grid-template-columns:repeat(7,minmax(0,1fr));
gap:5px
}

.calendar-weekday{
text-align:center;
font-weight:bold;
padding:10px 3px;
color:#475569
}

.calendar-day{
position:relative;
min-height:135px;
border:1px solid #e2e8f0;
border-radius:10px;
background:white;
padding:9px;
overflow:hidden
}

/* SOBOTA */
.calendar-day.saturday-day{
background:#dcfce7;
border-color:#86efac
}

/* NIEDZIELA + ŚWIĘTA */
.calendar-day.holiday-day{
background:#fee2e2;
border-color:#fca5a5
}

.empty-day{
background:#f8fafc;
border-style:dashed
}

.calendar-number{
font-size:15px;
font-weight:800;
margin-bottom:5px
}

.holiday-name{
font-size:9px;
font-weight:bold;
color:#991b1b;
line-height:1.15;
margin-bottom:5px
}

.shift-content{
display:flex;
align-items:center;
justify-content:center;
min-height:76px;
text-align:center
}

.shift{
width:100%;
background:rgba(255,255,255,.82);
border-radius:9px;
padding:7px 4px;
box-shadow:0 1px 4px rgba(15,23,42,.07)
}

.shift-code{
font-size:27px;
font-weight:900;
line-height:1
}

.shift-title{
font-size:13px;
font-weight:800;
margin-top:4px
}

.shift-hours{
font-size:11px;
margin-top:3px;
color:#475569
}

.shift-d .shift-code{
color:#1d4ed8
}

.shift-n .shift-code{
color:#312e81
}

.vacation-icon{
font-size:25px
}

.shift-u .shift-title{
color:#b45309
}

@media(max-width:800px){

.schedule-header{
align-items:flex-start;
flex-direction:column
}

.month-navigation{
width:100%;
justify-content:space-between
}

.schedule-upload{
display:block
}

.schedule-upload input[type=file]{
width:100%;
min-width:0
}

.schedule-upload button{
width:100%;
margin-top:10px
}

.schedule-legend{
font-size:12px
}

.calendar{
gap:2px
}

.calendar-weekday{
font-size:10px;
padding:6px 1px
}

.calendar-day{
padding:4px 2px;
border-radius:6px;
min-height:100px
}

.calendar-number{
font-size:12px;
padding-left:2px
}

.holiday-name{
font-size:7px
}

.shift-content{
min-height:60px
}

.shift{
padding:5px 1px;
border-radius:6px
}

.shift-code{
font-size:19px
}

.shift-title{
font-size:9px
}

.shift-hours{
font-size:8px;
word-break:break-word
}

.vacation-icon{
font-size:18px
}

}

@media(max-width:420px){

.calendar-day{
min-height:92px
}

.shift-hours{
font-size:7px
}

}

/* ===== WERYFIKACJA IMPORTU GRAFIKU ===== */

.schedule-verification{
margin-top:18px;
background:white;
border:2px solid #bfdbfe;
border-radius:12px;
padding:18px
}

.schedule-verification h3{
margin-top:0
}

.mapping-table-wrap{
overflow-x:auto
}

.mapping-table{
min-width:800px
}

.mapping-table select{
min-width:240px
}

.mapping-counts{
white-space:nowrap;
font-size:13px
}

.mapping-ok{
display:inline-block;
background:#dcfce7;
color:#166534;
font-weight:bold;
padding:7px 9px;
border-radius:8px
}

.mapping-none{
display:inline-block;
background:#fef3c7;
color:#92400e;
font-weight:bold;
padding:7px 9px;
border-radius:8px
}

.confirm-import-button{
margin-top:18px;
background:#15803d;
font-size:15px;
padding:13px 18px
}

@media(max-width:800px){

.schedule-verification{
padding:12px
}

.mapping-table-wrap{
margin-left:-12px;
margin-right:-12px;
padding:0 12px
}

.mapping-table{
min-width:720px
}

}

/* ===== GRAFIK JAKO OBRAZ ===== */

.schedule-image-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:18px
}

.schedule-upload-box{
background:#f8fafc;
border:1px solid #e2e8f0;
border-radius:12px;
padding:17px;
margin-bottom:20px
}

.schedule-upload-box h3{
margin-top:0
}

.schedule-image-upload{
display:flex;
align-items:center;
gap:12px
}

.schedule-image-upload input{
flex:1
}

.schedule-image-upload button{
margin:0;
white-space:nowrap
}

.schedule-meta{
margin:15px 0;
font-size:13px;
color:#64748b
}

.schedule-picture-container{
position:relative;
cursor:zoom-in;
background:#f8fafc;
border:1px solid #e2e8f0;
border-radius:14px;
padding:10px;
overflow:hidden
}

.schedule-picture{
display:block;
width:100%;
height:auto;
max-height:none;
object-fit:contain;
margin:auto
}

.schedule-zoom-hint{
position:absolute;
right:18px;
bottom:18px;
background:rgba(15,23,42,.85);
color:white;
padding:8px 11px;
border-radius:8px;
font-size:12px
}

.schedule-fullscreen{
display:none;
position:fixed;
inset:0;
z-index:5000;
background:rgba(0,0,0,.94);
align-items:center;
justify-content:center;
padding:25px;
overflow:auto
}

.schedule-fullscreen.show{
display:flex
}

.schedule-fullscreen img{
max-width:none;
max-height:none;
width:auto;
height:auto;
min-width:80%;
object-fit:contain
}

.schedule-close{
position:fixed;
right:20px;
top:15px;
z-index:5001;
width:48px;
height:48px;
border-radius:50%;
background:white;
color:#111827;
font-size:30px;
line-height:1;
padding:0;
margin:0
}

.empty-schedule{
text-align:center;
padding:50px 20px;
color:#64748b
}

.empty-schedule>div{
font-size:50px
}

.empty-schedule h3{
color:#172033
}

@media(max-width:800px){

.schedule-image-panel{
padding:12px
}

.schedule-image-upload{
display:block
}

.schedule-image-upload input{
width:100%
}

.schedule-image-upload button{
width:100%;
margin-top:10px
}

.schedule-picture-container{
padding:4px;
border-radius:9px
}

.schedule-zoom-hint{
right:10px;
bottom:10px
}

.schedule-fullscreen{
padding:55px 5px 15px;
align-items:flex-start
}

.schedule-fullscreen img{
width:100%;
min-width:100%;
height:auto
}

}

/* ===== DNI WOLNE ===== */

.dayoff-header{
display:flex;
justify-content:space-between;
align-items:flex-start;
gap:20px;
margin-bottom:18px
}

.deadline-open,
.deadline-closed{
padding:10px 13px;
border-radius:9px;
font-size:13px
}

.deadline-open{
background:#dcfce7;
color:#166534
}

.deadline-closed{
background:#fee2e2;
color:#991b1b
}

.dayoff-info{
background:#eff6ff;
color:#1e40af;
padding:11px;
border-radius:9px;
margin:15px 0
}

.dayoff-calendar{
display:grid;
grid-template-columns:repeat(7,minmax(0,1fr));
gap:5px
}

.dayoff-weekday{
font-weight:bold;
text-align:center;
padding:8px 2px;
color:#475569
}

.dayoff-day{
min-height:105px;
border:1px solid #e2e8f0;
border-radius:9px;
padding:8px;
background:white;
cursor:pointer;
position:relative
}

.dayoff-day input{
display:none
}

.dayoff-day.saturday-day{
background:#dcfce7;
border-color:#86efac
}

.dayoff-day.holiday-day{
background:#fee2e2;
border-color:#fca5a5
}

.dayoff-day.selected{
outline:3px solid #2563eb;
background:#dbeafe
}

.dayoff-number{
font-size:16px;
font-weight:900
}

.dayoff-holiday{
font-size:9px;
color:#991b1b;
font-weight:bold;
margin-top:4px
}

.dayoff-selected-text{
display:none;
position:absolute;
left:6px;
right:6px;
bottom:7px;
text-align:center;
font-weight:bold;
color:#1d4ed8;
font-size:12px
}

.dayoff-day.selected .dayoff-selected-text{
display:block
}

.dayoff-save{
margin-top:18px;
background:#15803d
}

.section-divider{
border:0;
border-top:1px solid #e2e8f0;
margin:28px 0
}

.dayoff-summary{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:10px
}

.dayoff-person{
border:1px solid #e2e8f0;
padding:12px;
border-radius:10px
}

.dayoff-person small{
display:block;
margin-top:7px;
color:#64748b
}

.dayoff-chips{
display:flex;
flex-wrap:wrap;
gap:5px;
margin-top:8px
}

.dayoff-chips span{
background:#dbeafe;
color:#1d4ed8;
padding:5px 8px;
border-radius:20px;
font-weight:bold
}


/* ===== URLOPY ===== */

.leave-layout{
display:grid;
grid-template-columns:2fr 1fr;
gap:18px
}

.leave-form-box,
.leave-info-box{
background:#f8fafc;
border:1px solid #e2e8f0;
padding:17px;
border-radius:12px
}

.leave-form-box h3,
.leave-info-box h3{
margin-top:0
}

.leave-history-title{
margin-top:27px
}

.leave-list,
.admin-leave-list{
display:grid;
gap:12px
}

.leave-card,
.admin-leave-card{
border:1px solid #e2e8f0;
border-radius:12px;
padding:15px
}

.leave-card-main,
.admin-leave-head{
display:flex;
align-items:center;
justify-content:space-between;
gap:12px
}

.leave-status{
display:inline-block;
font-size:12px;
font-weight:bold;
padding:6px 9px;
border-radius:20px;
white-space:nowrap
}

.leave-status.pending{
background:#fef3c7;
color:#92400e
}

.leave-status.approved{
background:#dcfce7;
color:#166534
}

.leave-status.rejected{
background:#fee2e2;
color:#991b1b
}

.leave-decision-info{
font-size:12px;
color:#64748b;
margin-top:8px
}

.leave-decision-note{
background:#f8fafc;
border-left:3px solid #94a3b8;
padding:8px 10px;
margin-top:10px
}

.leave-decision-form{
margin-top:14px;
background:#f8fafc;
padding:12px;
border-radius:9px
}

.leave-buttons{
display:flex;
gap:8px;
margin-top:9px
}

.leave-buttons button{
margin:0
}

.approve-button{
background:#15803d
}

.reject-button{
background:#dc2626
}


@media(max-width:800px){

.dayoff-header{
flex-direction:column
}

.deadline-open,
.deadline-closed{
width:100%
}

.dayoff-calendar{
gap:2px
}

.dayoff-weekday{
font-size:10px
}

.dayoff-day{
padding:4px;
min-height:75px;
border-radius:6px
}

.dayoff-number{
font-size:12px
}

.dayoff-holiday{
font-size:7px
}

.dayoff-selected-text{
font-size:8px;
bottom:4px
}

.leave-layout{
grid-template-columns:1fr
}

.leave-card-main,
.admin-leave-head{
align-items:flex-start;
flex-direction:column
}

.leave-buttons{
display:grid;
grid-template-columns:1fr 1fr
}

.leave-buttons button{
width:100%
}

}

/* ===== UPROSZCZONY START NA TELEFONIE ===== */

.menu-toggle{
width:auto;
min-width:92px;
padding:0 13px;
gap:7px;
font-size:17px;
font-weight:700
}

.menu-toggle span:first-child{
font-size:22px
}

.menu-text{
display:inline
}

@media(max-width:800px){

/*
Na stronie START na telefonie chowamy duże kafelki.
Zostają od razu aktualności.
*/
.welcome-grid{
display:none !important
}

/*
Przycisk MENU czytelny na telefonie
*/
.menu-toggle{
display:flex !important;
align-items:center;
justify-content:center
}

/*
Aktualności wykorzystują całą szerokość telefonu
*/
.content{
width:100%;
max-width:none
}

.panel{
width:100%
}

.news-item{
padding:15px 0
}

.news-item h3{
font-size:17px
}

.news-item p{
font-size:14px;
line-height:1.5
}

}

/* Ukrycie opisów pod kafelkami na stronie głównej */
.welcome-grid p {
    display: none !important;
}

/* ===== TARGETY / PREMIE ===== */

.resource-upload{
background:#f8fafc;
border:1px solid #e2e8f0;
border-radius:12px;
padding:16px;
margin-bottom:20px
}

.resource-upload h3{
margin-top:0
}

.resource-image-card{
margin-top:15px
}

.resource-image{
display:block;
width:100%;
height:auto;
max-width:100%;
border-radius:12px;
border:1px solid #e2e8f0;
cursor:zoom-in
}

.resource-meta{
font-size:12px;
color:#64748b;
margin-top:10px
}

.danger-button{
background:#dc2626 !important;
color:white !important;
margin-top:12px
}

.empty-resource{
text-align:center;
padding:40px 15px;
background:#f8fafc;
border-radius:12px;
color:#64748b
}

.schedule-delete-form{
margin-bottom:15px
}

@media(max-width:800px){

.resource-upload{
padding:12px
}

.resource-image{
width:100%;
}

}

/* ===== ZARZĄDZANIE KONTAMI ===== */

.user-actions{
display:flex;
gap:6px;
flex-wrap:wrap;
align-items:center
}

.user-actions form{
margin:0
}

.user-actions button{
margin:0;
padding:7px 10px;
white-space:nowrap
}

@media(max-width:800px){

.user-actions{
flex-direction:column;
align-items:stretch
}

.user-actions button{
width:100%
}

}

/* ===== RESET HASŁA ===== */

.password-reset-form{
display:flex;
gap:6px;
align-items:center;
flex-wrap:wrap
}

.password-reset-form input{
width:170px;
margin:0
}

.password-reset-form button{
margin:0
}

@media(max-width:800px){

.password-reset-form{
width:100%;
flex-direction:column
}

.password-reset-form input,
.password-reset-form button{
width:100%
}

}

/* ===== SZKOLENIA ===== */

.training-editor{
background:#f8fafc;
border:1px solid #e2e8f0;
border-radius:12px;
padding:18px;
margin-bottom:25px
}

.training-editor h3{
margin-top:0
}

.training-section-title{
margin-top:25px
}

.training-list,
.training-admin-list{
display:grid;
gap:12px
}

.training-card,
.training-admin-card{
border:1px solid #e2e8f0;
border-radius:12px;
padding:16px;
background:white
}

.training-card-head{
display:flex;
justify-content:space-between;
align-items:flex-start;
gap:12px
}

.training-card-head h3{
margin-top:0
}

.training-status{
display:inline-block;
padding:6px 10px;
border-radius:20px;
font-size:12px;
font-weight:800;
white-space:nowrap
}

.training-status.pending{
background:#fef3c7;
color:#92400e
}

.training-status.completed{
background:#dcfce7;
color:#166534
}

.training-link{
display:inline-block;
font-weight:700
}

.training-completed{
margin-top:10px;
font-size:12px;
color:#166534;
font-weight:700
}

.training-admin-card{
display:grid;
grid-template-columns:1fr auto;
gap:10px;
align-items:center
}

.training-admin-card form{
grid-column:1/-1;
margin:0
}

@media(max-width:800px){

.training-editor{
padding:12px
}

.training-card-head{
flex-direction:column
}

.training-admin-card{
grid-template-columns:1fr
}

}

/* ===== SZKOLENIA - NOWY UKŁAD ===== */

.training-editor{
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:14px;
    padding:18px;
    margin-bottom:24px;
}

.training-editor h3{
    margin-top:0;
    margin-bottom:18px;
}

.training-simple-form{
    display:grid;
    gap:14px;
}

.training-cards{
    display:grid;
    gap:14px;
    margin-top:15px;
}

.training-card{
    border-radius:14px;
    padding:16px;
    border:1px solid #e2e8f0;
}

.training-card.pending{
    background:#fef2f2;
    border-color:#fca5a5;
}

.training-card.completed{
    background:#f0fdf4;
    border-color:#86efac;
}

.training-card-title{
    font-size:20px;
    font-weight:800;
    margin-bottom:8px;
}

.training-card-meta{
    font-size:13px;
    color:#475569;
    margin-bottom:14px;
}

.training-done-form{
    margin:0;
}

.training-done-text{
    font-weight:700;
    color:#166534;
    margin-top:8px;
}

.training-report{
    display:grid;
    gap:16px;
    margin-top:20px;
}

.training-report-person{
    border:1px solid #e2e8f0;
    border-radius:14px;
    padding:16px;
    background:#fff;
}

.training-report-person h3{
    margin:0 0 12px 0;
}

.training-chip-list{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.training-chip{
    display:inline-block;
    padding:10px 14px;
    border-radius:999px;
    font-weight:700;
    font-size:14px;
}

.training-chip.completed{
    background:#dcfce7;
    color:#166534;
}

.training-chip.pending{
    background:#dbeafe;
    color:#1d4ed8;
}

@media (max-width: 768px){
    .training-card-title{
        font-size:18px;
    }

    .training-chip{
        width:100%;
        text-align:left;
        border-radius:12px;
    }
}

/* ===== SZKOLENIA PROSTE ===== */

.training-assign-box{
background:#f8fafc;
border:1px solid #e2e8f0;
border-radius:14px;
padding:18px;
margin-bottom:26px
}

.training-assign-box h3{
margin-top:0
}

.training-assign-form{
display:grid;
grid-template-columns:1fr 1fr auto;
gap:12px;
align-items:end
}

.training-assign-form button{
margin:0
}

.training-my-title{
margin-top:20px
}

.training-task-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:14px;
margin-top:14px
}

.training-task-card{
border-radius:14px;
padding:18px;
border:2px solid transparent
}

/* NIEWYKONANE - CZERWONE */
.training-task-card.pending{
background:#fee2e2;
border-color:#fca5a5
}

/* WYKONANE - ZIELONE */
.training-task-card.completed{
background:#dcfce7;
border-color:#86efac
}

.training-task-name{
font-size:19px;
font-weight:900;
margin-bottom:10px
}

.training-task-state{
font-size:13px;
font-weight:800;
margin-bottom:12px
}

.training-task-state.pending{
color:#991b1b
}

.training-task-state.completed{
color:#166534
}

.training-complete-form{
margin:0
}

.training-complete-form button{
background:#15803d;
margin:0
}


/* RAPORT */

.training-report-legend{
display:flex;
gap:10px;
margin:10px 0 18px
}

.training-report-legend span{
padding:6px 10px;
border-radius:20px;
font-size:12px;
font-weight:800
}

.training-legend-done{
background:#dcfce7;
color:#166534
}

.training-legend-pending{
background:#dbeafe;
color:#1d4ed8
}

.training-report-grid{
display:grid;
gap:14px
}

.training-report-person{
border:1px solid #e2e8f0;
border-radius:14px;
padding:16px;
background:#fff
}

.training-report-person h3{
margin:0 0 12px
}

.training-report-items{
display:flex;
flex-direction:column;
gap:8px
}

.training-report-row{
display:flex;
align-items:center;
gap:7px
}

.training-report-chip{
display:inline-block;
padding:9px 13px;
border-radius:10px;
font-weight:800;
font-size:14px
}

/* W RAPORCIE WYKONANE - ZIELONE */
.training-report-chip.completed{
background:#dcfce7;
color:#166534
}

/* W RAPORCIE NIEWYKONANE - NIEBIESKIE */
.training-report-chip.pending{
background:#dbeafe;
color:#1d4ed8
}

.training-delete-mini{
margin:0
}

.training-delete-mini button{
background:#fee2e2 !important;
color:#991b1b !important;
padding:7px 9px !important;
margin:0 !important
}


@media(max-width:800px){

.training-assign-form{
grid-template-columns:1fr
}

.training-assign-form button{
width:100%
}

.training-task-grid{
grid-template-columns:1fr
}

.training-report-row{
align-items:stretch
}

.training-report-chip{
flex:1
}

}

/* ===== POTWIERDZENIA AKTUALNOŚCI ===== */

.news-read-report{
margin-top:14px;
padding-top:12px;
border-top:1px solid #e2e8f0
}

.news-read-report>strong{
display:block;
margin-bottom:9px
}

.news-read-list{
display:flex;
flex-direction:column;
gap:6px
}

.news-reader{
display:flex;
justify-content:space-between;
align-items:center;
gap:10px;
padding:7px 10px;
background:#f0fdf4;
border-radius:8px;
color:#166534;
font-weight:700
}

.news-reader small{
font-weight:400;
color:#64748b
}

.news-read-empty{
font-size:13px;
color:#64748b
}

@media(max-width:800px){

.news-reader{
align-items:flex-start;
flex-direction:column;
gap:2px
}

}

/* ===== EDYCJA POJEDYNCZEJ AKTUALNOŚCI ===== */

.news-entry-actions{
margin-top:14px
}

.news-edit-button,
.news-edit-cancel{
display:inline-block;
padding:9px 13px;
border-radius:8px;
text-decoration:none;
font-weight:700
}

.news-entry-edit-form{
background:#f8fafc;
border:1px solid #dbe3ef;
border-radius:12px;
padding:16px
}

.news-entry-edit-form h3{
margin-top:0
}

.news-edit-image{
margin:14px 0
}

.news-edit-image img{
display:block;
max-width:300px;
max-height:220px;
width:auto;
height:auto;
border-radius:8px;
margin-bottom:8px
}

.news-edit-actions{
display:flex;
gap:8px;
align-items:center;
margin-top:14px
}

@media(max-width:800px){

.news-edit-image img{
max-width:100%
}

.news-edit-actions{
flex-direction:column;
align-items:stretch
}

.news-edit-actions button,
.news-edit-actions a{
width:100%;
text-align:center
}

}

.news-entry-actions{
display:flex;
align-items:center;
gap:8px;
flex-wrap:wrap
}

.news-entry-actions form{
margin:0
}

.news-entry-actions .danger-button{
margin:0
}

/* ===== ZMIANA HASŁA ===== */

.password-panel{
max-width:700px
}

.password-change-form{
max-width:520px;
background:#f8fafc;
border:1px solid #e2e8f0;
border-radius:14px;
padding:18px;
margin-top:18px
}

.password-change-form label{
display:block;
font-weight:700;
margin-top:12px;
margin-bottom:5px
}

.password-change-form input{
width:100%
}

.password-change-form button{
margin-top:18px
}

.alert-error{
background:#fee2e2;
color:#991b1b;
padding:11px 13px;
border-radius:9px;
margin:12px 0
}

@media(max-width:800px){

.password-panel{
max-width:none
}

.password-change-form{
max-width:none;
padding:13px
}

}

/* ===== ZBIORCZY KALENDARZ DYSPOZYCJI ===== */

.staff-calendar-print-area{
margin-top:20px;
margin-bottom:28px
}

.staff-calendar-header{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:15px;
margin-bottom:14px
}

.staff-calendar-header h3{
margin-top:0;
margin-bottom:8px
}

.staff-calendar-legend{
display:flex;
gap:8px;
flex-wrap:wrap
}

.staff-calendar-legend span{
display:inline-block;
padding:5px 9px;
border-radius:7px;
font-size:13px;
font-weight:700
}

.legend-dayoff{
background:#dbeafe
}

.legend-leave{
background:#fef3c7
}

.staff-calendar-print-button{
white-space:nowrap
}

.staff-calendar{
display:grid;
grid-template-columns:repeat(7,minmax(0,1fr));
border-top:1px solid #cbd5e1;
border-left:1px solid #cbd5e1
}

.staff-calendar-weekday{
font-weight:800;
text-align:center;
padding:9px 4px;
background:#f1f5f9;
border-right:1px solid #cbd5e1;
border-bottom:1px solid #cbd5e1
}

.staff-calendar-day{
min-height:125px;
padding:7px;
background:white;
border-right:1px solid #cbd5e1;
border-bottom:1px solid #cbd5e1
}

.staff-calendar-day.empty{
background:#f8fafc
}

.staff-calendar-day.saturday{
background:#f0fdf4
}

.staff-calendar-day.sunday{
background:#fef2f2
}

.staff-calendar-day-number{
font-size:17px;
font-weight:800;
margin-bottom:5px
}

.staff-calendar-holiday{
font-size:10px;
color:#b91c1c;
font-weight:700;
margin-bottom:5px
}

.staff-calendar-person{
font-size:11px;
font-weight:700;
padding:4px 5px;
border-radius:5px;
margin-top:3px;
line-height:1.2
}

.staff-calendar-person.dayoff{
background:#dbeafe
}

.staff-calendar-person.leave{
background:#fef3c7
}


@media(max-width:800px){

.staff-calendar-header{
display:block
}

.staff-calendar-print-button{
margin-top:10px
}

.staff-calendar{
font-size:11px
}

.staff-calendar-day{
min-height:85px;
padding:4px
}

.staff-calendar-person{
font-size:9px;
padding:3px
}

}


@media print{

body.print-dayoff-calendar *{
visibility:hidden !important
}

body.print-dayoff-calendar #dayoffPrintArea,
body.print-dayoff-calendar #dayoffPrintArea *{
visibility:visible !important
}

body.print-dayoff-calendar #dayoffPrintArea{
position:absolute;
left:0;
top:0;
width:100%;
margin:0
}

body.print-dayoff-calendar .staff-calendar-print-button{
display:none !important
}

body.print-dayoff-calendar .staff-calendar-day{
min-height:28mm
}

body.print-dayoff-calendar .staff-calendar-person{
font-size:10px
}

body.print-dayoff-calendar,
body.print-dayoff-calendar .staff-calendar-day,
body.print-dayoff-calendar .staff-calendar-person,
body.print-dayoff-calendar .staff-calendar-weekday{
-webkit-print-color-adjust:exact !important;
print-color-adjust:exact !important
}

}


/* ===== USUWANIE DYSPOZYCJI ===== */

.staff-calendar-person{
display:flex;
align-items:center;
justify-content:space-between;
gap:4px
}

.dayoff-admin-delete{
margin:0;
padding:0
}

.dayoff-admin-delete button{
width:19px;
height:19px;
min-width:19px;
padding:0;
margin:0;
border:0;
border-radius:50%;
background:#dc2626;
color:#fff;
font-size:14px;
font-weight:800;
line-height:19px;
cursor:pointer
}

.dayoff-admin-delete button:hover{
background:#b91c1c
}

@media print{

.dayoff-admin-delete{
display:none !important
}

}
