
:root{--navy:#082f5f;--blue:#1769e0;--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#68758a;--green:#18a558;--amber:#e7a310;--red:#db3a34;--line:#dfe6ef;--purple:#7c3aed}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}
.top{height:64px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:10}
.brand{font-weight:850;color:var(--navy);font-size:21px}.brand span{color:var(--blue)}.shell{display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 64px)}
.side{background:var(--navy);padding:18px 12px}.side button{width:100%;border:0;background:transparent;color:#dbe9ff;text-align:left;padding:12px 14px;border-radius:9px;margin:3px 0;cursor:pointer}
.side button.active,.side button:hover{background:#0f4a8f;color:#fff}.content{padding:24px;max-width:1500px;width:100%;margin:auto}
h1{margin:0 0 18px;font-size:28px}h2{margin:0 0 12px;font-size:20px}h3{margin:0 0 8px;font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}
.card{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 2px 10px rgba(13,38,76,.04)}
.grid-kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.kpi .v{font-size:28px;font-weight:850;margin-top:8px}
.two{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-top:16px}.list{display:flex;flex-direction:column;gap:10px}
.task-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:white;border:1px solid var(--line);border-left:5px solid var(--amber);border-radius:12px;padding:14px}.task-card.red{border-left-color:var(--red)}
.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef4ff;color:var(--blue);font-size:12px;font-weight:750}.badge.green{background:#e9f8f0;color:var(--green)}.badge.red{background:#fdeceb;color:var(--red)}.badge.amber{background:#fff5da;color:#b97800}.badge.purple{background:#f0eaff;color:var(--purple)}
.btn{border:0;border-radius:9px;padding:11px 14px;font-weight:750;cursor:pointer;background:var(--blue);color:white}.btn.secondary{background:white;color:var(--blue);border:1px solid var(--blue)}.btn.green{background:var(--green)}.btn.amber{background:var(--amber)}.btn.red{background:var(--red)}.btn.gray{background:#64748b}.btn.purple{background:var(--purple)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;background:white}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}.table th{background:#f7f9fc;color:#44516a}
.hero{display:grid;grid-template-columns:1fr 220px;gap:20px}.qr{width:190px;border:1px solid var(--line);border-radius:12px;padding:8px;background:white}.meta{display:grid;grid-template-columns:150px 1fr;gap:7px;font-size:14px}
.phone{max-width:540px;margin:auto}.progress{height:10px;background:#e6ebf2;border-radius:10px;overflow:hidden;margin:8px 0 18px}.progress>div{height:100%;background:var(--green)}
.task-main{font-size:22px;font-weight:850;margin:13px 0}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.status-grid .btn{padding:14px 10px}
.form{display:grid;gap:12px}.form label{font-weight:750;font-size:13px}.form input,.form select,.form textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:white}.form textarea{min-height:100px}
.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#071e39,#0d4b90)}.login-card{width:min(440px,92vw);padding:28px;background:white;border-radius:18px}.login-card input{width:100%;padding:13px;border:1px solid var(--line);border-radius:9px;margin:7px 0 12px}.login-card .btn{width:100%}
.notice{padding:12px;border-radius:10px;background:#eef5ff;color:#214c80;margin:12px 0}.ok{background:#eaf8f0;color:#176d3d}.err{background:#fdeceb;color:#9a251f}
.modal{position:fixed;inset:0;background:rgba(4,18,36,.55);display:grid;place-items:center;padding:20px;z-index:30}.modal-card{background:white;border-radius:16px;padding:20px;width:min(650px,96vw);max-height:90vh;overflow:auto}
@media(max-width:1000px){.grid-kpi{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr}.shell{grid-template-columns:1fr}.side{display:none}.content{padding:16px}.hero{grid-template-columns:1fr}}
@media(max-width:640px){.grid-kpi{grid-template-columns:repeat(2,1fr)}.top{padding:0 12px}.content{padding:12px}.status-grid{grid-template-columns:1fr}.task-card{align-items:flex-start}.brand{font-size:18px}}

/* ProMaintenance 3.1 */
.operator-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}
.big-action{min-height:110px;border:0;border-radius:16px;background:white;box-shadow:0 2px 10px rgba(13,38,76,.06);border:1px solid var(--line);font-size:34px;color:var(--blue);cursor:pointer}
.big-action span{display:block;font-size:17px;font-weight:800;margin-top:8px}.big-action.danger{color:var(--red)}
.operator-panel{max-width:720px;margin:auto}.center-card{text-align:center;padding:30px}.scan-icon{font-size:84px;color:var(--blue);line-height:1}
.bars{display:flex;flex-direction:column;gap:11px;margin-top:10px}.bar-row{display:grid;grid-template-columns:130px 1fr 58px;gap:10px;align-items:center}.bar-label{font-size:13px;font-weight:700}.bar-track{height:14px;background:#edf1f6;border-radius:20px;overflow:hidden}.bar-fill{height:100%;background:var(--blue);border-radius:20px}
.trend{height:190px;display:flex;align-items:flex-end;gap:6px;padding-top:20px;overflow:hidden}.trend-col{flex:1;min-width:20px;text-align:center}.trend-bar{width:100%;max-width:32px;margin:auto;background:var(--blue);border-radius:5px 5px 0 0}.trend-col span{display:block;font-size:9px;color:var(--muted);transform:rotate(-45deg);margin-top:8px}
.risk{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);border-left:5px solid var(--amber);border-radius:10px;margin:8px 0;background:#fff}.risk-high{border-left-color:var(--red);background:#fffafa}.risk-score{font-size:22px;font-weight:850;color:var(--red)}
.task-type{display:inline-block;background:#eaf2ff;color:var(--blue);font-weight:800;border-radius:999px;padding:6px 10px;margin:8px 0}
.criteria-box{background:#f8fbff;border:1px solid #cfe0f6;border-radius:12px;padding:14px;margin:14px 0}.criteria-box b{display:block;color:var(--navy);margin-bottom:5px}
.task-info{padding:8px 0;border-bottom:1px solid var(--line)}.instruction-media{margin:14px 0}.instruction-media img,.instruction-media video{width:100%;max-height:330px;object-fit:contain;border-radius:12px;border:1px solid var(--line);background:#f6f8fb}
.timeline{position:relative;margin-left:18px}.timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:#d9e2ee}.timeline-item{position:relative;padding-left:34px;margin-bottom:16px}.timeline-dot{position:absolute;left:0;top:18px;width:18px;height:18px;border-radius:50%;background:var(--green);border:4px solid #eaf8f0;z-index:2}.timeline-item.failure .timeline-dot{background:var(--red);border-color:#fdeceb}.timeline-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.timeline-img{width:100px;height:75px;object-fit:cover;border-radius:8px;margin:8px 6px 0 0;border:1px solid var(--line)}
.admin-task{padding:9px 0;border-bottom:1px solid var(--line)}
@media(max-width:640px){.operator-actions{grid-template-columns:1fr 1fr}.big-action{min-height:96px}.bar-row{grid-template-columns:95px 1fr 48px}.timeline-head{align-items:flex-start;flex-direction:column}}

/* 3.1.3 Administrator UX */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.page-head h1{margin-bottom:4px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}.compact{padding:7px 10px;font-size:12px}.machine-code{display:inline-block;background:#eef4ff;color:var(--blue);padding:4px 7px;border-radius:7px;font-weight:800;font-size:12px}
.machine-table td{vertical-align:middle}.tool-card{margin-bottom:16px;border-left:4px solid var(--blue)}.tool-head,.section-head,.admin-card-head,.plan-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.tool-head h2,.admin-card-head h2{margin-bottom:4px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:grid;gap:5px}.form-grid .full{grid-column:1/-1}
.plan-editor{border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0;background:#fbfcfe}.plan-editor-head{padding-bottom:12px;border-bottom:1px solid var(--line)}.plan-editor-head h3{margin:7px 0 2px}
.checklist-editor{margin-top:10px}.checklist-row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.checklist-row:last-child{border-bottom:0}.task-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:var(--blue);font-weight:800}.task-content{min-width:0}
.task-create-box{background:white;border:1px dashed #b8c7dc;border-radius:12px;padding:14px;margin:12px 0}.admin-card{min-height:100%}.admin-icon{font-size:32px;color:var(--blue);background:#eef4ff;width:54px;height:54px;display:grid;place-items:center;border-radius:14px}
@media(max-width:760px){.page-head,.tool-head,.admin-card-head,.plan-editor-head{flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.checklist-row{grid-template-columns:30px 1fr}.checklist-row>div:last-child{grid-column:2}.page-actions{width:100%}.page-actions .btn{flex:1}}

/* 3.1.4 assignment + QR */
.person-chip{display:inline-block;background:#eef4ff;color:var(--navy);border:1px solid #d9e6f7;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;margin:2px}
.assigned-list{display:flex;flex-direction:column;gap:8px}.assigned-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.assigned-row:last-child{border-bottom:0}
.qr-panel{text-align:center}.qr-panel h2,.qr-panel p{text-align:left}.qr-preview{width:210px;height:210px;object-fit:contain;border:1px solid var(--line);border-radius:12px;padding:8px;background:white;margin:10px auto 14px}.center-actions{justify-content:center}

/* 3.1.5 responsibility + notifications + my machines */
.person-chip.primary{background:#e9f8f0;color:var(--green);border-color:#c9ead8}
.notify-card{margin-top:16px;border-left:4px solid var(--amber)}.notify-head{display:flex;align-items:center;justify-content:space-between}.notify-count{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;font-weight:850}
.notification{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.notification:last-child{border-bottom:0}.notification.critical{color:#9a251f}
.machine-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.my-machine-card{display:flex;flex-direction:column;gap:10px}.my-machine-head{display:flex;align-items:flex-start;justify-content:space-between}.my-machine-head h2{margin:8px 0 3px}.machine-mini-icon{font-size:32px;color:var(--blue);background:#eef4ff;width:50px;height:50px;border-radius:14px;display:grid;place-items:center}

/* 3.1.6 guaranteed assignment QR UI */
.person-chip{display:inline-block;background:#eef4ff;color:var(--navy);border:1px solid #d9e6f7;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;margin:2px}
.person-chip.primary{background:#e9f8f0;color:var(--green);border-color:#c9ead8}
.assigned-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.assigned-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.assigned-row:last-child{border-bottom:0}
.qr-panel{text-align:center}.qr-panel .section-head{text-align:left}
.qr-preview{display:block;width:220px;height:220px;object-fit:contain;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;margin:12px auto}
.center-actions{justify-content:center}

/* 3.2.0 archive/delete machine */
.badge.archived{background:#eef0f3;color:#596270}

/* Operator mobile fix */
.mobile-back{width:100%;margin-top:12px}

/* 3.2.3 mobile navigation on every account */
@media(max-width:1000px){
  .side{
    display:flex !important;
    position:sticky;
    top:64px;
    z-index:9;
    width:100%;
    padding:8px 10px;
    gap:6px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    background:var(--navy);
    border-bottom:1px solid rgba(255,255,255,.12);
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .side::-webkit-scrollbar{display:none}
  .side button{
    width:auto;
    min-width:max-content;
    flex:0 0 auto;
    margin:0;
    padding:10px 12px;
    text-align:center;
    border-radius:9px;
    font-size:13px;
  }
  .shell{display:block}
  .content{padding-top:14px}
}
@media(max-width:640px){
  .side{top:64px;padding:7px 8px}
  .side button{font-size:12px;padding:9px 10px}
}

/* 3.2.4 definitive mobile navigation */
.mobile-nav{display:none}

@media (max-width:1000px){
  .desktop-nav{display:none !important}
  .shell{display:block !important;grid-template-columns:1fr !important}
  .content{
    padding:14px 12px 92px !important;
  }

  .mobile-nav{
    display:flex !important;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:9999;
    height:74px;
    padding:7px 6px calc(7px + env(safe-area-inset-bottom));
    box-sizing:content-box;
    background:var(--navy);
    border-top:1px solid rgba(255,255,255,.16);
    box-shadow:0 -4px 18px rgba(0,0,0,.18);
    overflow-x:auto;
    overflow-y:hidden;
    gap:4px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .mobile-nav::-webkit-scrollbar{display:none}
  .mobile-nav button{
    display:flex !important;
    flex:1 0 92px;
    min-width:92px;
    height:60px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#dbe9ff;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:7px 8px;
    margin:0;
    font-size:11px;
    font-weight:700;
    line-height:1.2;
    white-space:normal;
    cursor:pointer;
  }
  .mobile-nav button.active{
    background:rgba(255,255,255,.14);
    color:#fff;
  }
}

@media (min-width:1001px){
  .desktop-nav{display:block !important}
  .mobile-nav{display:none !important}
}

/* 3.2.5 iPhone/Safari definitive navigation */
@media (max-width:1000px){
  html,body{min-height:100%;overflow-x:hidden}
  body{padding-bottom:calc(86px + env(safe-area-inset-bottom)) !important}
  .mobile-nav{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    transform:none !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    z-index:2147483647 !important;
    min-height:70px !important;
    background:#071e39 !important;
  }
}

/* 3.2.6 improvements */
.improvement-note{background:#fffbea;border:1px solid #f1df9b;border-radius:10px;padding:10px}

/* 3.2.7 three-shift task logic */
.shift-section{margin-top:14px}.warning-section{border-left:4px solid var(--amber)}.overdue-section{border-left:4px solid var(--red)}
.shift-settings{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.shift-edit-row{display:grid;grid-template-columns:1.1fr 1fr 1fr auto auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}
.shift-edit-row label{display:grid;gap:5px}.shift-active{display:flex!important;align-items:center;gap:6px;padding-bottom:8px}
@media(max-width:760px){.shift-edit-row{grid-template-columns:1fr 1fr}.shift-edit-row label:first-child{grid-column:1/-1}.shift-edit-row .btn{grid-column:1/-1}}

/* 3.3.1 Harmonogram 12M */
.sched-filters{margin-bottom:14px}.sched-filters .form-grid{align-items:end}.sched-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.sched-summary b{font-size:28px;color:var(--blue)}.sched-summary span{font-size:12px;color:var(--muted)}
.sched-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--muted)}.sched-legend span{display:flex;align-items:center;gap:6px}.lg{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid var(--line)}.lg.planned{background:#eef4ff}.lg.done{background:#e9f8f0}.lg.overdue{background:#fdeceb}
.sched-kpis{grid-template-columns:repeat(6,1fr)!important;margin-bottom:14px}.month-kpi{padding:12px}.month-kpi b{font-size:24px;color:var(--navy)}
.schedule-year-wrap{padding:0;overflow:hidden}.schedule-scroll{overflow:auto;width:100%}.schedule-year{border-collapse:separate;border-spacing:0;width:100%;min-width:1180px}.schedule-year th,.schedule-year td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px;text-align:center}.schedule-year thead th{position:sticky;top:0;background:#f6f8fb;z-index:2;font-size:11px;text-transform:uppercase;color:var(--muted)}.schedule-year .machine-col{position:sticky;left:0;z-index:3;background:#fff;text-align:left;min-width:220px;max-width:260px}.schedule-year thead .machine-col{z-index:4;background:#f6f8fb}
.sched-cell{cursor:pointer;min-width:68px;transition:.15s}.sched-cell:hover{outline:2px solid rgba(0,74,173,.25);outline-offset:-2px}.sched-cell b{display:block;font-size:18px}.sched-mini{font-size:9px;color:var(--muted)}.sched-empty{background:#fafbfc;color:#b5bdc8;cursor:default}.sched-planned{background:#eef4ff;color:var(--blue)}.sched-done{background:#e9f8f0;color:var(--green)}.sched-overdue{background:#fdeceb;color:var(--red)}
.schedule-upcoming{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.schedule-upcoming:last-child{border-bottom:0}
.schedule-modal{max-width:820px;max-height:88vh;overflow:auto;position:relative}.modal-x{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:30px;cursor:pointer;color:var(--muted)}.month-plan{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0}.month-plan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.month-event{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
@media(max-width:1100px){.sched-kpis{grid-template-columns:repeat(4,1fr)!important}}
@media(max-width:760px){.sched-kpis{grid-template-columns:repeat(2,1fr)!important}.schedule-year{min-width:1050px}.schedule-year .machine-col{min-width:180px}.sched-cell{min-width:60px}.month-event{grid-template-columns:1fr auto}.month-event .btn{grid-column:1/-1}}

/* 3.4.1 Production Readiness UI */
.profile-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.profile-row:last-child{border-bottom:0}.text-warn{color:var(--amber)}
code{background:#f3f5f8;border:1px solid var(--line);border-radius:5px;padding:2px 5px}

/* 3.5 Pilot Ready */
.compact-select{max-width:190px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff}
.issue-modal{max-width:860px;max-height:90vh;overflow:auto;position:relative}
.issue-time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.issue-time-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafc}
.issue-time-grid span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.issue-time-grid b{font-size:12px}.tech-kpi{margin-top:14px}.kpi-note{margin:6px 0 14px}
.pilot-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.pilot-score{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:850;background:#fff3d7;color:#8a5a00}
.pilot-score.ok{background:#e9f8f0;color:var(--green)}.pilot-check{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.pilot-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900}.pilot-dot.ok{background:#e9f8f0;color:var(--green)}.pilot-dot.bad{background:#fdeceb;color:var(--red)}
@media(max-width:760px){.issue-time-grid{grid-template-columns:1fr 1fr}.issue-table{min-width:1050px}.pilot-check{grid-template-columns:auto 1fr}.pilot-check>.badge{grid-column:2}}

/* 3.6 Motogodziny / koszty / Pareto */
.inner-card{margin-top:16px;background:#f8fbff}.meter-form{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;align-items:end}.meter-history{margin-top:12px;display:grid;gap:6px}.meter-history>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12px}.meter-history span{color:var(--muted)}
.cost-grid{margin-top:12px}.cost-total{display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafc}.cost-total span{font-size:11px;color:var(--muted)}.cost-total b{font-size:18px}
.pareto-controls{margin:14px 0}.pareto-row{display:grid;grid-template-columns:32px minmax(180px,1.6fr) minmax(120px,2fr) 90px 60px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.pareto-rank{width:28px;height:28px;border-radius:50%;background:#eef4ff;color:var(--blue);display:grid;place-items:center;font-weight:800}.pareto-bar{height:12px;background:#eef1f5;border-radius:999px;overflow:hidden}.pareto-bar span{display:block;height:100%;background:var(--blue);border-radius:999px}.pareto-value{text-align:right;font-weight:750}.pareto-cum{text-align:right;font-size:12px;color:var(--muted)}
@media(max-width:760px){.meter-form{grid-template-columns:1fr}.pareto-row{grid-template-columns:30px 1fr 65px}.pareto-bar{grid-column:2/-1}.pareto-cum{display:none}}

/* 3.7 Reliability */
.rel-method{display:flex;gap:14px;align-items:flex-start}.rel-method b{min-width:160px}.rel-method span{color:var(--muted);font-size:13px}
.rel-risk-row{display:grid;grid-template-columns:32px 1fr 54px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.rel-rank{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:var(--blue);font-weight:800}
.rel-score{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:16px;font-weight:900}.small-score{width:36px;height:36px;font-size:13px}
.risk-low{background:#e9f8f0;color:var(--green)}.risk-medium{background:#fff3d7;color:#8a5a00}.risk-critical{background:#fdeceb;color:var(--red)}
.rel-warning{display:flex;justify-content:space-between;gap:12px;padding:11px;border-left:4px solid var(--amber);background:#fffaf0;margin:8px 0;border-radius:8px}.rel-warning.high{border-left-color:#e58b00}.rel-warning.critical{border-left-color:var(--red);background:#fff3f2}
.rel-bars{display:grid;gap:9px}.rel-bar-row{display:grid;grid-template-columns:minmax(110px,1.2fr) 2fr 90px;gap:8px;align-items:center;font-size:12px}.rel-track{height:11px;background:#eef1f5;border-radius:99px;overflow:hidden}.rel-track span{display:block;height:100%;background:var(--blue);border-radius:99px}.rel-bar-row b{text-align:right}
.rel-trend{height:175px;display:flex;align-items:flex-end;gap:7px;padding-top:15px}.rel-trend-col{flex:1;min-width:20px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:150px}.rel-trend-bar{width:100%;max-width:28px;background:var(--blue);border-radius:5px 5px 0 0}.rel-trend-col span{font-size:9px;color:var(--muted);margin-top:5px}.rel-table{min-width:1100px}.text-red{color:var(--red);font-weight:700}.text-green{color:var(--green);font-weight:700}
@media(max-width:760px){.rel-method{display:block}.rel-method b{display:block;margin-bottom:5px}.rel-bar-row{grid-template-columns:90px 1fr 70px}}

/* 3.8 Asset Strategy */
.asset-strategy-card{margin-bottom:16px}.asset-active{display:flex!important;align-items:center;gap:8px}
.counter-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}.counter-chip{border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;background:#fff}.counter-chip.active{border-color:var(--blue);background:#eef4ff}.counter-chip span{display:block;font-size:11px;color:var(--muted)}.counter-chip b{font-size:18px}
.rca-box{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fffaf0}.rca-box textarea{min-height:62px}
.asset-dist{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.asset-dist>div{display:flex;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.asset-dist span{color:var(--muted);font-size:12px}.asset-dist b{font-size:16px}
@media(max-width:760px){.counter-summary{grid-template-columns:repeat(2,1fr)}.asset-dist{grid-template-columns:1fr}}

/* 3.9 Documentation / Safety / Repair Verification */
.safety-gate{border-top:4px solid #e58b00}.safety-check{display:flex!important;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffaf0}.safety-check input{width:20px;height:20px;flex:0 0 auto}
.safety-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.safety-tags span{font-size:11px;font-weight:750;padding:5px 8px;border-radius:999px;background:#fff1cc;color:#7c5100;border:1px solid #f0d28b}.safety-tags.compact{margin:5px 0}.safety-tags.compact span{font-size:10px;padding:3px 6px}
.safety-config{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fffaf0}.safety-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:9px 0}.safety-grid label{display:flex!important;align-items:center;gap:6px;font-size:12px}
.docs-modal{max-width:900px;max-height:90vh;overflow:auto;position:relative}.docs-list,.docs-admin-list{display:grid;gap:8px;margin-top:10px}.doc-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff}.doc-row b{display:block;margin-top:5px}
.verify-card{margin-top:16px;border-top:4px solid var(--blue)}.verify-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.verify-row:last-child{border-bottom:0}
.notice.warning{background:#fff7df;border-color:#f0d28b;color:#6d4d00}
@media(max-width:760px){.safety-grid{grid-template-columns:1fr 1fr}.doc-row,.verify-row{display:block}.doc-row .row-actions,.verify-row .row-actions{margin-top:10px}.docs-modal{max-width:96vw}}

/* 3.9.1 monitoring czasu czynności */
.task-time-box,.task-time-total{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.task-time-box>div,.task-time-total>div{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.task-time-box span,.task-time-total span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.task-time-box b,.task-time-total b{font-size:16px}
.task-start-btn{font-weight:850}
.time-monitor{margin-top:5px}
@media(max-width:600px){.task-time-box,.task-time-total{grid-template-columns:1fr}}

.timeline-time{margin:8px 0;padding:8px 10px;border-radius:8px;background:#f8fafc;border:1px solid var(--line);font-size:12px}
.time-details{margin:8px 0}.time-details summary{cursor:pointer;font-weight:700;font-size:12px}.time-detail-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:11px}.time-detail-row span:last-child{color:var(--muted);text-align:right}


/* =========================================================
   3.9.2 UI POLISHED — visual-only refinement
   ========================================================= */

:root{
  --navy:#0b2f55;
  --navy-2:#123f70;
  --blue:#2563eb;
  --blue-soft:#eef4ff;
  --bg:#f6f8fb;
  --card:#ffffff;
  --text:#172033;
  --muted:#66758a;
  --green:#159455;
  --amber:#d99100;
  --red:#d43d38;
  --purple:#7657d6;
  --line:#e3e8ef;
  --line-strong:#d3dbe6;
  --shadow-sm:0 1px 2px rgba(15,23,42,.03),0 6px 18px rgba(15,23,42,.035);
  --shadow-md:0 10px 30px rgba(15,23,42,.08);
  --radius:14px;
  --radius-sm:10px;
}

html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font:inherit}
button,.btn,.big-action,.sched-cell,.counter-chip{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease,color .16s ease}
button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(37,99,235,.16);
  outline-offset:1px;
}

/* App chrome */
.top{
  height:68px;
  padding:0 26px;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(150%) blur(12px);
  -webkit-backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
.brand{
  font-size:20px;
  letter-spacing:-.35px;
  color:var(--navy);
  font-weight:800;
}
.brand span{color:var(--blue)}
.shell{grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 68px)}
.side{
  background:linear-gradient(180deg,#0a2d50 0%,#0b355e 100%);
  padding:18px 12px 24px;
  border-right:1px solid rgba(255,255,255,.04);
}
.side button{
  color:#dce7f4;
  padding:11px 13px;
  margin:2px 0;
  border-radius:10px;
  font-size:13px;
  font-weight:650;
  letter-spacing:.01em;
}
.side button:hover{background:rgba(255,255,255,.08);color:#fff}
.side button.active{
  background:#fff;
  color:var(--navy);
  box-shadow:0 5px 18px rgba(0,0,0,.12);
  font-weight:800;
}
.content{
  max-width:1480px;
  padding:28px 30px 42px;
}

/* Typography */
h1,h2,h3{color:#12243b;letter-spacing:-.025em}
h1{font-size:28px;font-weight:800;margin-bottom:18px}
h2{font-size:19px;font-weight:800}
h3{font-size:15px;font-weight:800}
.page-head{margin-bottom:20px}
.page-head h1{font-size:28px;margin-bottom:4px}
.page-head p{margin:0}
.small{font-size:12px}
.muted{color:var(--muted)}

/* Cards and surfaces */
.card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow-sm);
  background:var(--card);
}
.card:hover{border-color:#dce3ec}
.inner-card{background:#fbfcfe}
.grid-kpi{gap:14px}
.kpi{
  min-height:108px;
  position:relative;
  overflow:hidden;
}
.kpi:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:#d8e5fb;
}
.kpi .v{
  font-size:30px;
  line-height:1;
  margin-top:10px;
  letter-spacing:-.04em;
  color:#102a4b;
}
.two{gap:18px;margin-top:18px}

/* Buttons */
.btn{
  min-height:40px;
  border-radius:10px;
  padding:9px 14px;
  font-weight:750;
  letter-spacing:.005em;
  box-shadow:none;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(37,99,235,.13)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn.secondary{
  border:1px solid var(--line-strong);
  color:#284b78;
  background:#fff;
}
.btn.secondary:hover{background:#f7faff;border-color:#bfcde0}
.btn.green{background:#178950}.btn.green:hover{box-shadow:0 5px 14px rgba(21,148,85,.17)}
.btn.amber{background:#d8940b}.btn.red{background:#cf403b}.btn.gray{background:#66758a}.btn.purple{background:#7155c8}
.compact{min-height:32px;padding:6px 10px;font-size:11px}
.row-actions{gap:7px}

/* Forms */
.form{gap:13px}
.form label{font-size:12px;font-weight:750;color:#314158}
.form input,.form select,.form textarea,.compact-select{
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  min-height:42px;
  padding:10px 11px;
  box-shadow:0 1px 1px rgba(15,23,42,.015);
}
.form textarea{min-height:96px;resize:vertical}
.form input:hover,.form select:hover,.form textarea:hover{border-color:#bdc8d6}
.form input:focus,.form select:focus,.form textarea:focus{
  border-color:#7ea8ea;
  box-shadow:0 0 0 3px rgba(37,99,235,.09);
  outline:none;
}
.form-grid{gap:14px}

/* Tables */
.table-wrap{
  border-radius:var(--radius);
  scrollbar-width:thin;
  scrollbar-color:#c9d2df transparent;
}
.table{border-collapse:separate;border-spacing:0}
.table th{
  position:relative;
  background:#f8fafc;
  color:#59687d;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-size:10px;
  font-weight:800;
  padding:11px 13px;
  border-bottom:1px solid var(--line-strong);
}
.table td{
  padding:13px;
  font-size:13px;
  vertical-align:middle;
  border-bottom:1px solid #edf0f4;
}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover td{background:#fbfcfe}

/* Labels / badges */
.badge{
  padding:4px 8px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.025em;
  border:1px solid transparent;
}
.badge.green{border-color:#cdebdc}
.badge.red{border-color:#f2c9c7}
.badge.amber{border-color:#f0dba6}
.badge.purple{border-color:#ded2fb}
.machine-code{
  background:#f0f5fd;
  color:#285da7;
  border:1px solid #dbe7f6;
  border-radius:8px;
}

/* Task / work cards */
.task-card{
  border:1px solid var(--line);
  border-left:4px solid #d8a020;
  border-radius:12px;
  padding:13px 14px;
  box-shadow:none;
}
.task-card:hover{border-color:#d5dde8;background:#fdfefe}
.task-main{font-size:21px;line-height:1.3;margin:12px 0 14px}
.task-type{
  background:#edf4ff;
  color:#285da7;
  padding:5px 9px;
  font-size:11px;
  letter-spacing:.025em;
}
.criteria-box{
  background:#f8fbff;
  border-color:#dbe6f4;
  padding:13px;
}
.task-info{padding:7px 0;color:#43526a}
.progress{height:8px;background:#edf1f5}
.progress>div{background:linear-gradient(90deg,#1a9a58,#37b46e)}
.task-time-box>div,.task-time-total>div{
  background:#f8fafc;
  border-color:#e1e7ef;
  padding:12px;
}
.task-time-box b,.task-time-total b{color:#17355b}

/* Operator screen */
.phone{max-width:600px}
.phone>.card{
  padding:20px;
  box-shadow:0 10px 30px rgba(15,23,42,.07);
}
.operator-actions{gap:12px}
.big-action{
  border-radius:14px;
  box-shadow:var(--shadow-sm);
  font-size:30px;
}
.big-action:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#cfdbea}
.big-action span{font-size:15px}
.status-grid{gap:9px}
.status-grid .btn{min-height:48px;font-size:13px}
.task-start-btn{
  min-height:52px;
  background:#173f70;
  font-size:14px;
}

/* Notifications / notices */
.notice{
  border:1px solid #dbe6f5;
  border-radius:10px;
  background:#f3f7fd;
  color:#31577f;
  padding:11px 12px;
}
.notice.ok,.ok{background:#edf8f2;color:#236842;border-color:#d5ecdf}
.notice.warning{background:#fff9e9;color:#735314;border-color:#f0dfae}
.err{border:1px solid #f0cac7}
.notification,.verify-row{padding:12px 0}
.notify-card{border-left:0;border-top:3px solid #dfa020}
.verify-card{border-top:3px solid var(--blue)}

/* Timeline */
.timeline{margin-left:12px}
.timeline:before{background:#dce3ec}
.timeline-item{padding-left:34px;margin-bottom:18px}
.timeline-dot{width:16px;height:16px;left:1px;top:19px;border-width:3px}
.timeline-item>.card{padding:15px 16px}
.timeline-time{background:#f8fafc;border-color:#e2e7ee}

/* Admin */
.tool-card{border-left:0;border-top:3px solid var(--blue)}
.plan-editor{
  background:#fbfcfd;
  border-color:#e0e6ed;
  padding:17px;
}
.task-create-box{
  border:1px dashed #bdcadb;
  background:#fbfdff;
}
.admin-icon,.machine-mini-icon{
  background:#f0f5fd;
  color:#2b62ab;
}

/* Documents / safety */
.doc-row{
  padding:12px 13px;
  border-color:#e2e7ee;
  background:#fff;
}
.doc-row:hover{background:#fbfcfe}
.safety-gate{border-top:3px solid #dc980b}
.safety-check,.safety-config,.rca-box{border-color:#eadbb7;background:#fffaf0}
.safety-tags span{background:#fff5dc;border-color:#efd9a2}
.docs-modal{box-shadow:var(--shadow-md)}

/* Modals */
.modal{
  background:rgba(10,24,43,.58);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.modal-card{
  border:1px solid rgba(255,255,255,.3);
  border-radius:16px;
  padding:22px;
  box-shadow:0 24px 70px rgba(4,18,36,.22);
}
.modal-x{
  width:36px;height:36px;
  display:grid;place-items:center;
  border-radius:50%;
  font-size:24px;
}
.modal-x:hover{background:#f2f5f8;color:#21354e}

/* Login */
.login{
  background:
    radial-gradient(circle at 20% 15%,rgba(50,111,194,.32),transparent 30%),
    linear-gradient(145deg,#081d34 0%,#0b335d 55%,#0e497e 100%);
}
.login-card{
  width:min(420px,92vw);
  padding:30px;
  border-radius:18px;
  box-shadow:0 25px 70px rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.5);
}
.login-card input{min-height:46px}
.login-card .btn{min-height:46px}

/* Charts / analytical blocks */
.bar-track,.rel-track{background:#eef1f5}
.bar-fill,.rel-track span,.pareto-bar span,.rel-trend-bar{background:#3478d4}
.risk,.rel-warning{box-shadow:none}
.rel-risk-row,.pareto-row{border-bottom-color:#edf0f4}
.rel-score{font-size:15px}
.counter-chip{border-color:#e0e6ee}
.counter-chip:hover{transform:translateY(-1px);border-color:#c7d4e4}
.counter-chip.active{background:#edf4ff;border-color:#a9c4e8}
.asset-dist>div{background:#fbfcfe;border-color:#e1e7ef}

/* Schedule */
.schedule-year th,.schedule-year td{border-color:#e5e9ef}
.schedule-year thead th{background:#f7f9fb;color:#607086}
.schedule-year .machine-col{box-shadow:3px 0 8px rgba(15,23,42,.025)}
.sched-cell:hover{outline-color:rgba(37,99,235,.22)}
.sched-summary{background:#f9fbfe}

/* Responsive refinement */
@media(max-width:1000px){
  .content{padding:18px 16px 100px}
  .top{height:62px;padding:0 16px}
  .shell{min-height:calc(100vh - 62px)}
  .grid-kpi{gap:10px}
  .card{padding:15px}
  .mobile-nav{
    min-height:68px!important;
    background:rgba(8,37,66,.98)!important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-top:1px solid rgba(255,255,255,.08);
    box-shadow:0 -8px 24px rgba(15,23,42,.14);
    padding:5px 6px calc(5px + env(safe-area-inset-bottom))!important;
  }
  .mobile-nav button{
    min-width:88px;
    height:56px;
    border-radius:10px;
    color:#cfddec;
    font-size:10.5px;
  }
  .mobile-nav button.active{
    background:rgba(255,255,255,.12);
    color:#fff;
  }
}
@media(max-width:760px){
  h1,.page-head h1{font-size:24px}
  h2{font-size:18px}
  .page-head{gap:12px}
  .card{border-radius:12px}
  .grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{min-height:96px}
  .kpi .v{font-size:25px}
  .hero{gap:14px}
  .meta{grid-template-columns:110px minmax(0,1fr)}
  .operator-actions{grid-template-columns:1fr 1fr}
  .big-action{min-height:92px}
  .phone>.card{padding:16px}
  .status-grid .btn{min-height:50px}
  .table td{padding:11px}
}
@media(max-width:440px){
  .content{padding-left:10px;padding-right:10px}
  .brand{font-size:17px}
  .grid-kpi{gap:8px}
  .kpi{padding:13px;min-height:90px}
  .kpi .v{font-size:23px}
  .operator-actions{gap:8px}
  .big-action{min-height:86px;font-size:27px}
  .big-action span{font-size:13px}
  .task-main{font-size:19px}
  .status-grid{gap:8px}
  .status-grid .btn{font-size:12px}
  .meta{grid-template-columns:95px minmax(0,1fr);font-size:12px}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition:none!important}
}


/* 3.9.3 MOBILE HEADER + NAV — visual only */
.brand{display:flex;align-items:center;gap:7px;white-space:nowrap}
.brand-gear{font-size:25px;line-height:1}
.brand-name{display:flex;align-items:baseline;font-size:20px;font-weight:850;color:var(--navy)}
.brand-name>span{color:var(--blue)}
.brand-name>small{font-size:12px;color:var(--blue);font-weight:850;margin-left:6px}
.top-user{display:flex;align-items:center;gap:10px;margin-left:auto}
.user-avatar{display:none}
.user-copy{display:flex;align-items:center;gap:4px;color:#1a2940}
.user-copy b{font-size:13px}.user-copy small{font-size:12px;color:var(--muted)}
.logout-icon{display:none}
.desktop-nav .nav-icon{display:inline-block;min-width:20px;margin-right:3px}
.desktop-nav .nav-label{display:inline}

@media(max-width:1000px){
  .top{height:78px!important;padding:0 14px!important;gap:10px}
  .shell{min-height:calc(100vh - 78px)!important}
  .brand{gap:6px;min-width:0}
  .brand-gear{font-size:28px}
  .brand-name{display:flex;flex-wrap:wrap;align-content:center;width:158px;font-size:18px;line-height:1.05}
  .brand-name>small{display:block;width:100%;font-size:12px;margin:5px 0 0 29px}
  .top-user{gap:7px;min-width:0}
  .user-avatar{display:grid;width:34px;height:34px;border-radius:50%;place-items:center;background:#eef4ff;border:1px solid #d8e4f4;color:#173f70;font-size:14px}
  .user-copy{display:flex;flex-direction:column;align-items:flex-start;gap:0;line-height:1.15;max-width:112px}
  .user-copy b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:112px}
  .user-copy small{font-size:10.5px;margin-top:3px}
  .logout-btn{min-width:58px!important;min-height:52px!important;padding:5px 7px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:12px!important;font-size:10.5px!important}
  .logout-icon{display:block;font-size:22px;line-height:1;color:var(--blue)}
  .content{padding-bottom:116px!important}
  .mobile-nav{min-height:82px!important;height:auto!important;display:flex!important;align-items:stretch!important;gap:4px!important;padding:7px 7px calc(7px + env(safe-area-inset-bottom))!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity}
  .mobile-nav button{flex:1 0 82px!important;min-width:82px!important;height:68px!important;padding:6px 5px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;border-radius:12px!important;scroll-snap-align:start;color:#d8e5f3!important;line-height:1.05!important;text-align:center!important}
  .mobile-nav .nav-icon{display:block!important;font-size:25px!important;line-height:25px!important;min-height:25px!important;margin:0!important;color:#fff}
  .mobile-nav .nav-label{display:block!important;font-size:10.5px!important;font-weight:750!important;white-space:normal!important;max-width:78px}
  .mobile-nav button.active{background:rgba(255,255,255,.12)!important;box-shadow:inset 0 -3px 0 #3b82f6!important}
  .mobile-nav button.active .nav-icon,.mobile-nav button.active .nav-label{color:#65a4ff!important}
}
@media(max-width:520px){
  .top{padding:0 10px!important}
  .brand-name{width:138px;font-size:16px}
  .brand-name>small{margin-left:26px}
  .brand-gear{font-size:25px}
  .user-avatar{display:none}
  .user-copy{max-width:90px}.user-copy b{max-width:90px;font-size:11px}.user-copy small{font-size:10px}
  .logout-btn{min-width:54px!important}
}
@media(max-width:390px){
  .brand-name{width:120px;font-size:15px}.brand-name>small{font-size:11px;margin-left:24px}
  .brand-gear{font-size:23px}.user-copy{max-width:74px}.user-copy b{max-width:74px}
}

/* 3.9.4 MAINTENANCE branding */
.brand-logo{display:block;width:300px;max-width:32vw;height:42px;object-fit:contain;object-position:left center}
@media(max-width:640px){.brand-logo{width:185px;max-width:46vw;height:48px}}
@media(max-width:390px){.brand-logo{width:160px;max-width:43vw;height:44px}}

/* 3.9.5 — logo na ekranie logowania */
.login-brand{display:flex;justify-content:center;align-items:center;margin:0 auto 18px;padding:6px 0 12px}
.login-brand img{display:block;width:min(330px,82vw);max-height:92px;object-fit:contain}
@media(max-width:600px){.login-card{padding:24px 20px}.login-brand{margin-bottom:14px}.login-brand img{width:min(290px,78vw);max-height:78px}}


/* 3.9.6 DOCUMENT VIEWER */
.doc-viewer-modal{z-index:3000;padding:0!important;background:rgba(8,25,46,.72)}
.doc-viewer-card{width:min(1180px,96vw)!important;height:min(92vh,1000px);max-width:none!important;padding:0!important;overflow:hidden!important;display:flex;flex-direction:column;border-radius:18px!important}
.doc-viewer-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}
.doc-viewer-head>div{min-width:0}.doc-viewer-head b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-preview-frame{display:block;width:100%;height:100%;flex:1;border:0;background:#eef2f7}
.doc-preview{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto;background:#eef2f7;padding:16px}
.doc-preview.image img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 22px rgba(0,0,0,.12)}
.doc-preview.video video{width:min(100%,1000px);max-height:100%;background:#000;border-radius:10px}
@media(max-width:700px){
 .doc-viewer-modal{padding:0!important;align-items:stretch!important}
 .doc-viewer-card{width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important}
 .doc-viewer-head{grid-template-columns:auto minmax(0,1fr) auto;gap:7px;padding:10px 8px calc(10px + env(safe-area-inset-top))}
 .doc-viewer-head .btn{padding:8px!important;font-size:10px!important;min-height:38px!important}
 .doc-viewer-head .small{display:none}
 .doc-preview{padding:8px}
}


/* 4.0.3 — Harmonogram 12M: kompaktowe miesiące + podsumowanie roku */
.schedule-month-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:14px 0 16px;
}
.schedule-month-tile{
  appearance:none;
  text-align:left;
  background:#fff;
  color:var(--text);
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px 15px;
  min-height:128px;
  cursor:pointer;
  box-shadow:var(--shadow-sm);
}
.schedule-month-tile:hover{
  transform:translateY(-1px);
  border-color:#bfcde0;
  box-shadow:0 8px 22px rgba(15,23,42,.07);
}
.month-tile-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.month-number{
  display:grid;
  place-items:center;
  width:24px;height:24px;
  border-radius:8px;
  background:#f2f5f9;
  color:#718096;
  font-size:10px;
}
.month-total{
  margin-top:8px;
  font-size:28px;
  line-height:1;
  font-weight:850;
  color:#12375f;
  letter-spacing:-.04em;
}
.month-total small{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:0}
.month-status{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:10px;
  font-size:11px;
  font-weight:750;
}
.month-status .done{color:#168651}
.month-status .overdue{color:#c74740}
.month-status .planned{color:#527099}
.month-progress{
  height:5px;
  border-radius:999px;
  overflow:hidden;
  background:#edf1f5;
  margin-top:11px;
}
.month-progress span{display:block;height:100%;background:#2f75cf;border-radius:999px}
.schedule-month-tile.month-alert{border-top:3px solid #d24b43}
.schedule-month-tile.month-done{border-top:3px solid #17945a}
.schedule-month-focus{background:#fff8de!important;box-shadow:inset 0 0 0 1px #e9c869!important}
.annual-summary{margin-top:16px}
.annual-summary-title h2{margin-bottom:3px}
.annual-summary-title p{margin:0}
.annual-summary-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.annual-summary-grid>div{
  padding:13px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f9fbfd;
}
.annual-summary-grid span{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  margin-bottom:5px;
}
.annual-summary-grid b{font-size:21px;color:#17375d}
.annual-summary-grid .ok-text{color:#168651}
.annual-summary-grid .bad-text{color:#c74740}

@media(max-width:1100px){
  .schedule-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .annual-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .schedule-month-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .schedule-month-tile{min-height:116px;padding:12px}
  .month-total{font-size:24px}
  .annual-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:390px){
  .schedule-month-grid{grid-template-columns:1fr}
  .annual-summary-grid{grid-template-columns:1fr 1fr}
}

/* 4.0.4 — Machine Card UI */
.machine-page{max-width:1400px;margin:0 auto}
.machine-header-card{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;margin-bottom:14px}
.machine-eyebrow,.section-kicker{font-size:10px;font-weight:850;letter-spacing:.09em;color:#6a7c92;text-transform:uppercase}
.machine-title-block h1{margin:2px 0 2px;font-size:30px}
.machine-subtitle{color:var(--muted);font-size:13px}
.machine-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.machine-status,.machine-chip{padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800;border:1px solid var(--line)}
.machine-status.ok{color:#167f4c;background:#eef9f3;border-color:#d0ebdc}
.machine-status.warning{color:#a05b00;background:#fff7e5;border-color:#edd8a6}
.machine-chip{background:#f6f8fb;color:#4a5c74}
.machine-qr-compact{display:flex;align-items:center;gap:10px;min-width:190px}
.machine-qr-compact .qr{width:72px;height:72px;margin:0}
.machine-qr-compact div{display:flex;flex-direction:column}.machine-qr-compact span{font-size:11px;color:var(--muted)}

.machine-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.machine-kpi-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 15px;box-shadow:var(--shadow-sm);border-top:3px solid #d8e5f6}
.machine-kpi-card span{display:block;color:var(--muted);font-size:11px;font-weight:750}
.machine-kpi-card b{display:block;font-size:20px;color:#17375d;margin:5px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.machine-kpi-card small{color:#718096;font-size:10px}
.machine-kpi-card.soon{border-top-color:#d99a12}.machine-kpi-card.overdue,.machine-kpi-card.alert{border-top-color:#d14a43}
.machine-kpi-card.planned{border-top-color:#3478d4}

.machine-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px;padding:5px;background:#eef2f7;border-radius:12px;width:max-content;max-width:100%}
.machine-tabs button{border:0;background:transparent;padding:8px 12px;border-radius:8px;font-weight:750;color:#52647b;cursor:pointer}
.machine-tabs button:hover{background:#fff;color:#17375d;box-shadow:0 1px 4px rgba(15,23,42,.05)}

.machine-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}
.machine-main-column{display:grid;gap:16px}
.machine-side-column{display:grid;gap:16px;position:sticky;top:84px}
.machine-next-pm{border-top:3px solid #3478d4}.machine-next-pm.soon{border-top-color:#d99a12}.machine-next-pm.overdue{border-top-color:#d14a43}
.next-pm-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.next-pm-meta>div{padding:11px;background:#f8fafc;border:1px solid var(--line);border-radius:10px}
.next-pm-meta span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.next-pm-meta b{font-size:12px;color:#283b54}
.machine-primary-action{min-width:210px}
.machine-meter-card{overflow:hidden}
.machine-counter-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin:12px 0}
.machine-add-reading{border-top:1px solid var(--line);padding-top:10px;margin-top:8px}
.machine-add-reading summary{cursor:pointer;color:#245a9c;font-size:12px;font-weight:800;margin-bottom:10px}
.compact-history{margin-top:10px}
.machine-plan-list{display:grid;gap:8px}
.machine-plan-row,.machine-issue-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf0f4}
.machine-plan-row:last-child,.machine-issue-row:last-child{border-bottom:0}
.issue-count{display:grid;place-items:center;min-width:34px;height:34px;border-radius:10px;background:#eef3f8;color:#48607b;font-weight:850}.issue-count.has-issues{background:#fff0ee;color:#c5443e}
.machine-info-list{margin-top:10px}.machine-info-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf0f4}.machine-info-list>div:last-child{border-bottom:0}.machine-info-list span{color:var(--muted);font-size:11px}.machine-info-list b{text-align:right;font-size:12px}
.machine-person{display:flex;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid #edf0f4}.machine-person:last-child{border-bottom:0}.person-dot{width:30px;height:30px;border-radius:50%;background:#eaf2ff;color:#2961a9;display:grid;place-items:center;font-weight:850}.machine-person div{display:flex;flex-direction:column}.machine-person small{color:var(--muted);font-size:10px}
.machine-qr-card{text-align:center}.machine-qr-card .qr{width:135px;height:135px}.machine-qr-card>b,.machine-qr-card>span{display:block}.machine-qr-card>span{font-size:11px;color:var(--muted);margin:3px 0 10px}.machine-qr-card .row-actions{justify-content:center}

@media(max-width:1100px){
 .machine-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .machine-layout{grid-template-columns:1fr}
 .machine-side-column{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
 .machine-header-card{align-items:flex-start;padding:16px}
 .machine-qr-compact{display:none}
 .machine-title-block h1{font-size:25px}
 .machine-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .machine-kpi-card{padding:12px}.machine-kpi-card b{font-size:17px}
 .machine-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap}.machine-tabs button{white-space:nowrap}
 .next-pm-meta{grid-template-columns:1fr}
 .machine-counter-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .machine-side-column{grid-template-columns:1fr}
 .machine-qr-card .qr{width:120px;height:120px}
}
@media(max-width:420px){
 .machine-kpi-grid{grid-template-columns:1fr 1fr}
 .machine-kpi-card b{font-size:16px}
 .machine-badges{gap:5px}
}

/* 4.0.5 — Reports UI */
.reports-page{max-width:1400px;margin:0 auto}
.report-page-head{margin-bottom:14px}
.report-page-head h1{margin:2px 0 3px}
.report-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.report-type-card{
  appearance:none;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px 14px;
  display:grid;grid-template-columns:38px minmax(0,1fr) 24px;gap:10px;align-items:center;text-align:left;
  color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm)
}
.report-type-card:hover{transform:translateY(-1px);border-color:#bdcce0;box-shadow:0 7px 20px rgba(15,23,42,.06)}
.report-type-card.active{border-color:#8db3ea;background:#f7faff;box-shadow:inset 0 0 0 1px #bfd4f1}
.report-type-icon{width:36px;height:36px;border-radius:10px;background:#eef4fd;color:#285fa7;display:grid;place-items:center;font-weight:850;font-size:15px}
.report-type-copy{display:flex;flex-direction:column;gap:3px}
.report-type-copy b{font-size:13px;color:#17375d}
.report-type-copy small{font-size:10px;line-height:1.35;color:var(--muted)}
.report-type-check{width:22px;height:22px;border-radius:50%;background:#edf8f3;color:#178b52;display:grid;place-items:center;font-weight:900}

.report-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.report-builder-card{padding:20px}
.report-filter-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;margin-top:15px}
.report-filter-grid label{font-size:11px;font-weight:800;color:#405269}
.report-filter-grid select,.report-filter-grid input{width:100%;min-height:42px;margin-top:5px;border:1px solid var(--line-strong);border-radius:10px;padding:9px 10px;background:#fff}
.report-periods{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:14px 0 17px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.report-periods>span{font-size:11px;color:var(--muted);font-weight:750;margin-right:3px}
.period-chip{border:1px solid var(--line);background:#fff;color:#48617f;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:800;cursor:pointer}
.period-chip:hover,.period-chip.active{background:#edf4ff;border-color:#aac4e7;color:#245b9e}

.report-export-panel{background:#f8fafc;border:1px solid var(--line);border-radius:13px;padding:14px}
.report-export-copy{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px}
.report-export-copy span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:850}
.report-export-copy b{font-size:12px;color:#31455e}
.report-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.report-format-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}
.report-format-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.06)}
.report-format-btn.pdf:hover{border-color:#e0aaa6}.report-format-btn.excel:hover{border-color:#9fceb5}
.format-icon{min-width:44px;height:40px;border-radius:9px;display:grid;place-items:center;font-size:11px;font-weight:900}
.report-format-btn.pdf .format-icon{background:#fff0ef;color:#be3934}
.report-format-btn.excel .format-icon{background:#edf8f2;color:#18844f}
.report-format-btn>span:last-child{display:flex;flex-direction:column}.report-format-btn b{font-size:12px;color:#263b55}.report-format-btn small{font-size:9px;color:var(--muted);margin-top:2px}

.report-side{display:grid;gap:16px}
.report-stat-list{margin-top:9px}.report-stat-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f4}
.report-stat-list>div:last-child{border-bottom:0}.report-stat-list span{font-size:10px;color:var(--muted)}.report-stat-list b{font-size:11px;text-align:right}
.report-help-row{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid #edf0f4}.report-help-row:last-child{border-bottom:0}
.report-help-row>div{display:flex;flex-direction:column;gap:2px}.report-help-row b{font-size:11px}.report-help-row small{font-size:9px;color:var(--muted);line-height:1.35}
.mini-format{min-width:36px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:9px;font-weight:900}.mini-format.pdf{background:#fff0ef;color:#be3934}.mini-format.excel{background:#edf8f2;color:#18844f}

@media(max-width:1100px){
 .report-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .report-layout{grid-template-columns:1fr}
 .report-side{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
 .report-type-grid{grid-template-columns:1fr}
 .report-filter-grid{grid-template-columns:1fr}
 .report-export-copy{align-items:flex-start;flex-direction:column}
 .report-side{grid-template-columns:1fr}
}
@media(max-width:480px){
 .report-export-actions{grid-template-columns:1fr}
 .report-type-card{grid-template-columns:34px minmax(0,1fr) 20px;padding:11px}
}

/* 4.0.6 — Machine card redesign */
.machine-redesign{max-width:1420px;margin:0 auto}
.machine-tabs-top{
  margin:0 0 12px;
  width:100%;
  border-radius:0;
  padding:0;
  background:transparent;
  border-bottom:1px solid var(--line);
  gap:4px;
}
.machine-tabs-top button{
  border-radius:0;
  padding:11px 16px;
  border-bottom:3px solid transparent;
}
.machine-tabs-top button.active,
.machine-tabs-top button:hover{
  background:transparent;
  box-shadow:none;
  border-bottom-color:#2d6cdf;
  color:#235da8;
}

.machine-header-wide{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:20px 24px;
  margin-bottom:12px;
}
.machine-header-qr{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:190px}
.qr-large-header{width:128px!important;height:128px!important;margin:0!important;border:1px solid var(--line);border-radius:12px;padding:7px;background:#fff}
.qr-header-actions{display:flex;gap:6px}
.qr-header-actions .btn{min-height:32px;padding:6px 9px;font-size:10px}

.machine-top-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(330px,.95fr);
  gap:12px;
  margin-bottom:12px;
}
.machine-info-panel,.machine-responsibility-panel{min-height:210px}
.machine-info-panel h2,.machine-responsibility-panel h2{margin:2px 0 12px}
.machine-tech-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}
.machine-tech-grid>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid #eef1f4}
.machine-tech-grid span{color:var(--muted);font-size:11px}
.machine-tech-grid b{font-size:12px;color:#273a54}
.crit-dot{display:inline-block;width:8px;height:8px;background:#dfa216;border-radius:50%;margin-right:6px}
.machine-empty-people{min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center}
.empty-people-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#f1f4f8;color:#527096;font-size:24px}

.machine-operational-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(330px,.95fr);
  gap:12px;
  align-items:start;
}
.machine-left-stack,.machine-right-stack{display:grid;gap:12px}
.machine-counter-form{
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  gap:10px;
  align-items:end;
  margin-top:12px;
}
.machine-counter-form label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:800;color:#34475f}
.machine-counter-form select,
.machine-counter-form input{
  height:42px!important;
  min-height:42px!important;
  box-sizing:border-box;
  border:1px solid var(--line-strong);
  border-radius:10px;
  padding:9px 10px;
  background:#fff;
}
.machine-counter-form .btn{height:42px;min-height:42px}

.machine-counter-cards{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px;
  margin:0;
}
.counter-card{
  appearance:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm)
}
.counter-card:hover,.counter-card.active{border-color:#a7c3e9;background:#f7faff}
.counter-card span{display:block;color:#5c6f86;font-size:10px}
.counter-card b{display:block;color:#17375d;font-size:20px;margin:6px 0 2px}
.counter-card small{color:#7b899a;font-size:9px}

.machine-maintenance-card,.machine-pm-card,.machine-doc-card{padding:17px}
.machine-ok-state{display:flex;align-items:center;gap:10px;padding:12px 2px}
.machine-ok-state>span{width:36px;height:36px;border-radius:50%;background:#eaf8f0;color:#168951;display:grid;place-items:center;font-size:18px;font-weight:900}
.machine-ok-state>div{display:flex;flex-direction:column}.machine-ok-state small{color:var(--muted);font-size:10px;margin-top:2px}

.machine-plan-compact-list{display:grid;gap:2px;margin:6px 0 10px}
.machine-plan-compact{
  display:grid;grid-template-columns:28px minmax(0,1fr) 160px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #edf0f4
}
.machine-plan-compact:last-child{border-bottom:0}
.plan-icon{width:26px;height:26px;border-radius:8px;background:#edf4ff;color:#2b69bd;display:grid;place-items:center;font-size:13px}
.plan-copy{display:flex;flex-direction:column}.plan-copy b{font-size:11px}.plan-copy small{font-size:9px;color:var(--muted);margin-top:2px}
.plan-next{text-align:right;display:flex;flex-direction:column}.plan-next span{font-size:9px;color:var(--muted)}.plan-next b{font-size:9px;color:#168951;margin-top:2px}

.machine-work-table th,.machine-work-table td{font-size:10px}
.qr-preview-modal{max-width:440px;text-align:center}
.qr-modal-code{font-size:12px;color:var(--muted);margin-bottom:10px}
.qr-modal-image{width:min(280px,70vw);height:auto;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff}
.qr-preview-modal .center-actions{justify-content:center}

@media(max-width:1100px){
  .machine-top-grid,.machine-operational-grid{grid-template-columns:1fr}
  .machine-counter-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .machine-header-wide{align-items:flex-start;padding:16px}
  .machine-header-qr{min-width:125px}
  .qr-large-header{width:96px!important;height:96px!important}
  .machine-tech-grid{grid-template-columns:1fr}
  .machine-counter-form{grid-template-columns:1fr}
  .machine-counter-form .btn{width:100%}
  .machine-counter-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .machine-plan-compact{grid-template-columns:28px minmax(0,1fr)}
  .plan-next{grid-column:2;text-align:left}
}
@media(max-width:480px){
  .machine-header-wide{flex-direction:column}
  .machine-header-qr{width:100%;flex-direction:row;justify-content:space-between}
  .qr-header-actions{flex-direction:column}
  .machine-tabs-top{overflow-x:auto;flex-wrap:nowrap}
  .machine-tabs-top button{white-space:nowrap}
}


/* =========================================================
   ProMaintenance 4.0.7 — FINAL UI POLISH
   Warstwa wyłącznie wizualna: bez zmian logiki aplikacji
   ========================================================= */

:root{
  --navy:#0b355f;
  --navy-2:#082b50;
  --blue:#246fe5;
  --blue-strong:#175fd0;
  --blue-soft:#edf4ff;
  --bg:#f5f7fa;
  --card:#ffffff;
  --text:#17243a;
  --muted:#6b7b91;
  --green:#168a52;
  --green-soft:#ebf8f1;
  --amber:#d89412;
  --amber-soft:#fff6df;
  --red:#ca4740;
  --red-soft:#fff0ee;
  --purple:#7452c8;
  --line:#e1e7ee;
  --line-strong:#cbd5e1;
  --shadow-sm:0 1px 2px rgba(15,23,42,.025),0 5px 14px rgba(15,23,42,.035);
  --shadow-md:0 8px 28px rgba(15,23,42,.075);
  --radius:14px;
  --radius-sm:10px;
}

html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Arial,sans-serif;
  font-size:14px;
  line-height:1.48;
  letter-spacing:-.005em;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font-family:inherit}
button,a,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,transform .16s ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none!important;
  box-shadow:0 0 0 3px rgba(36,111,229,.17)!important;
  border-color:#83adeb!important;
}

/* Top bar */
.top{
  height:68px;
  padding:0 24px;
  background:rgba(255,255,255,.97);
  backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid #e7ebf0;
  box-shadow:0 1px 0 rgba(15,23,42,.015);
}
.brand-logo{height:34px!important;max-width:270px!important;object-fit:contain}
.top-user{gap:11px}
.user-avatar{
  width:8px!important;height:8px!important;
  overflow:hidden;color:#2f77df!important;
  background:#2f77df;border-radius:50%;
  font-size:0!important;flex:none;
}
.user-copy{gap:1px}
.user-copy b{font-size:12px;color:#17243a;letter-spacing:-.01em}
.user-copy small{font-size:10px;color:#7a899d}
.logout-btn{
  min-height:38px!important;
  border-color:#d5deea!important;
  color:#294d77!important;
  padding:8px 13px!important;
  background:#fff!important;
}
.logout-btn:hover{background:#f7faff!important;border-color:#a9c2e5!important}

/* Layout + sidebar */
.shell{grid-template-columns:244px minmax(0,1fr)}
.side{
  background:linear-gradient(180deg,var(--navy-2) 0%,var(--navy) 100%);
  padding:19px 13px 26px;
  border-right:1px solid rgba(255,255,255,.04);
}
.side button{
  min-height:44px;
  padding:10px 13px;
  margin:2px 0;
  border-radius:10px;
  color:#dce8f5;
  font-size:12px;
  font-weight:650;
  letter-spacing:.005em;
  display:flex;align-items:center;gap:10px;
}
.side .nav-icon{width:17px;min-width:17px;text-align:center;opacity:.86}
.side button:hover{background:rgba(255,255,255,.075);color:#fff}
.side button.active{
  background:#fff;
  color:#17395f;
  box-shadow:0 5px 16px rgba(0,20,50,.13);
}
.side button.active .nav-icon{color:#2b6dbe}
.content{
  padding:28px 30px 42px;
  max-width:1540px;
}

/* Typography */
h1,h2,h3{color:#17243a;letter-spacing:-.035em}
h1{font-size:27px;line-height:1.12;font-weight:780;margin-bottom:18px}
h2{font-size:18px;line-height:1.2;font-weight:760}
h3{font-size:14px;line-height:1.3;font-weight:740}
p{margin-top:0}
.muted{color:#728197}
.small{font-size:11px}
.section-kicker,.machine-eyebrow{
  color:#647790!important;
  font-size:9.5px!important;
  font-weight:820!important;
  letter-spacing:.12em!important;
}

/* Cards */
.card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow-sm);
}
.card:hover{border-color:#d8e0e9}
.inner-card{box-shadow:none!important;background:#fbfcfd!important}
.grid-kpi{gap:11px}
.kpi{
  min-height:105px;
  padding:15px 16px;
  overflow:hidden;
  position:relative;
}
.kpi:after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#d9e6f6;
}
.kpi .muted{font-size:10.5px;font-weight:700}
.kpi .v{font-size:25px!important;letter-spacing:-.045em;color:#17395f}
.two{gap:14px;margin-top:14px}

/* Buttons */
.btn{
  min-height:40px;
  border-radius:9px;
  padding:9px 14px;
  background:var(--blue);
  font-size:11px;
  font-weight:770;
  letter-spacing:.01em;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.btn:hover{background:var(--blue-strong);transform:translateY(-1px);box-shadow:0 5px 13px rgba(23,95,208,.14)}
.btn:active{transform:translateY(0)}
.btn.secondary{
  background:#fff;
  color:#315d91;
  border:1px solid #cfd9e6;
  box-shadow:none;
}
.btn.secondary:hover{background:#f7faff;color:#1d5fb3;border-color:#9fbce2}
.btn.green{background:#188b54}.btn.green:hover{background:#117745}
.btn.red{background:#c64a43}.btn.red:hover{background:#ae3e38}
.btn.amber{background:#cf8c10}.btn.amber:hover{background:#b87908}
.compact{min-height:32px!important;padding:6px 10px!important;font-size:10px!important}

/* Forms */
.form,.form-grid{gap:13px}
.form label,.form-grid label{font-size:10.5px!important;font-weight:750!important;color:#3d4e64!important}
input,select,textarea,
.form input,.form select,.form textarea{
  min-height:42px;
  border:1px solid var(--line-strong);
  border-radius:9px;
  padding:9px 11px;
  background:#fff;
  color:#24344a;
  box-shadow:0 1px 1px rgba(15,23,42,.015);
}
textarea{line-height:1.45}
input:hover,select:hover,textarea:hover{border-color:#aebdce}
input::placeholder,textarea::placeholder{color:#9aa8b8}
select{cursor:pointer}

/* Statuses */
.badge{
  padding:5px 8px;
  border:1px solid #d8e3f1;
  background:#f0f5fc;
  color:#38618d;
  font-size:9.5px;
  font-weight:780;
  letter-spacing:.02em;
}
.badge.green{background:var(--green-soft);color:#167a49;border-color:#cbe9da}
.badge.red{background:var(--red-soft);color:#b73c36;border-color:#efd0cd}
.badge.amber{background:var(--amber-soft);color:#a46606;border-color:#efdca9}
.badge.purple{background:#f3effd;color:#6944ba;border-color:#ded4f4}
.notice{
  border:1px solid #d9e7f8;
  background:#f2f7fe;
  color:#325f91;
  border-radius:10px;
  padding:11px 13px;
}
.notice.ok{background:#edf8f2;border-color:#d2ebde;color:#176f43}
.notice.err{background:#fff0ee;border-color:#f0d2cf;color:#a93d37}

/* Tables */
.table-wrap{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.table{border-collapse:separate;border-spacing:0}
.table th{
  background:#f8fafc;
  color:#5d6e84;
  font-size:9.5px!important;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
  border-bottom:1px solid var(--line);
  padding:10px 12px;
  white-space:nowrap;
}
.table td{
  font-size:11px!important;
  color:#34445a;
  padding:11px 12px;
  border-bottom:1px solid #edf1f4;
}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover td{background:#fbfdff}

/* Task list / PM */
.task-card{
  border:1px solid var(--line);
  border-left:3px solid #d9a12b;
  border-radius:11px;
  padding:13px 14px;
  box-shadow:0 1px 2px rgba(15,23,42,.02);
}
.task-card:hover{background:#fcfdff;border-color:#d6dee8}
.task-card.red{border-left-color:#ca4740}
.task-card h3{font-size:14px}
.task-type{
  padding:5px 9px;
  font-size:10px;
  background:#eef4ff;
  color:#2f65a7;
}
.criteria-box{
  border-color:#d7e2ef;
  background:#f8fafc;
  padding:13px;
}
.criteria-box b{font-size:11px}
.status-grid{gap:8px}
.status-grid .btn{min-height:48px;border-radius:10px}

/* Operator */
.operator-panel{max-width:760px}
.operator-actions{gap:10px}
.big-action{
  min-height:105px;
  border-radius:14px;
  box-shadow:var(--shadow-sm);
  border:1px solid var(--line);
  font-size:29px;
}
.big-action:hover{border-color:#b8cce6;background:#f9fbfe;transform:translateY(-1px);box-shadow:var(--shadow-md)}
.big-action span{font-size:13px;font-weight:760}
.phone .card{padding:17px}
.phone .task-main{font-size:21px;line-height:1.22}
.phone .progress{height:7px;background:#edf1f5}
.phone .progress>div{background:#2b75db}
.instruction-media img,.instruction-media video{border-radius:10px;background:#f8fafc}
.time-monitor{color:#61738a!important}

/* Dashboard charts + risk */
.bar-track{height:9px;background:#eef2f6}
.bar-fill{background:linear-gradient(90deg,#3a80df,#2367c4)}
.bar-label{font-size:10.5px}
.trend-bar{background:linear-gradient(180deg,#4b89e0,#2468c9)}
.risk{
  border:1px solid var(--line);
  border-left:3px solid #d5941e;
  border-radius:10px;
  padding:11px 12px;
  background:#fff;
}
.risk-high{border-left-color:#c94942;background:#fffafa}
.risk-score{font-size:18px;color:#b7413b}

/* Timeline */
.timeline{margin-left:10px}
.timeline:before{left:7px;width:1px;background:#dce3eb}
.timeline-item{padding-left:30px;margin-bottom:13px}
.timeline-dot{
  left:0;top:17px;
  width:15px;height:15px;
  border:3px solid #e8f5ee;
  box-shadow:0 0 0 2px #fff;
}
.timeline-item>.card{padding:14px}
.timeline-head b{font-size:12px}
.timeline-img{border-radius:9px;border-color:#dce3eb}

/* Documentation */
.docs-list,.docs-admin-list{gap:7px}
.doc-row{
  border:1px solid #e2e7ed;
  border-radius:10px;
  padding:10px 11px;
  box-shadow:none;
}
.doc-row:hover{background:#f9fbfd;border-color:#cbd7e4}
.doc-row b{font-size:11px;margin-top:4px}

/* Safety / LOTO */
.safety-gate{
  border-top:3px solid #cf8b10!important;
  box-shadow:var(--shadow-sm)!important;
}
.safety-check,.safety-config,.rca-box{
  border:1px solid #eadcb9!important;
  background:#fffaf0!important;
  border-radius:10px!important;
}
.safety-check{padding:11px!important}
.safety-tags{gap:5px}
.safety-tags span{
  padding:4px 7px!important;
  font-size:9.5px!important;
  background:#fff4d9!important;
  color:#8d610e!important;
}

/* Notifications / verification */
.notification,.verify-row{padding:11px 2px}
.notify-card{border-left:0!important;border-top:3px solid #d79a24!important}
.verify-card{border-top:3px solid #2a70d3!important}
.notify-count{min-width:27px;height:27px;font-size:10px}

/* Reliability / analysis generic view */
.tech-kpi .kpi{min-height:100px}
.kpi-note{margin:3px 0 14px;padding-left:2px}
.bars,.trend{margin-top:14px}

/* Admin */
.tool-card{border-left:0!important;border-top:3px solid #2c74d6!important}
.plan-editor{
  border-color:#e0e6ed;
  background:#fafbfd;
  box-shadow:none;
}
.checklist-row{border-bottom-color:#e9edf2}
.task-number{background:#eef4fb;color:#2d68a9}
.task-create-box{border-color:#bdcbdc;background:#fbfcfe}

/* Modals */
.modal{
  background:rgba(10,24,42,.5);
  backdrop-filter:blur(4px);
}
.modal-card{
  border:1px solid rgba(255,255,255,.7);
  border-radius:16px;
  box-shadow:0 22px 70px rgba(15,23,42,.22);
}
.modal-x{
  border-radius:8px!important;
}
.qr-modal-image{
  box-shadow:0 2px 12px rgba(15,23,42,.055);
}

/* Login */
.login{
  background:
    radial-gradient(circle at 20% 10%,rgba(36,111,229,.22),transparent 32%),
    linear-gradient(145deg,#071d34,#0b3d70);
}
.login-card{
  border:1px solid rgba(255,255,255,.4);
  border-radius:20px;
  box-shadow:0 26px 80px rgba(0,15,35,.28);
}
.login-brand img{max-width:280px!important}

/* Machine page finishing */
.machine-header-wide,.machine-info-panel,.machine-responsibility-panel,
.machine-meter-card,.machine-maintenance-card,.machine-pm-card,
.machine-recent-work,.machine-doc-card{
  box-shadow:var(--shadow-sm)!important;
}
.machine-tabs-top{border-bottom-color:#dde4ec!important}
.machine-tabs-top button{font-size:11px!important;font-weight:720!important;color:#52657c!important}
.machine-tabs-top button.active{color:#1e5fb2!important}
.machine-tech-grid>div{border-bottom-color:#eef1f4!important}
.machine-tech-grid span{font-size:10px!important}
.machine-tech-grid b{font-size:11px!important}
.machine-counter-form select,.machine-counter-form input{border-color:#ccd6e2!important}
.counter-card{box-shadow:0 1px 2px rgba(15,23,42,.02)!important}
.machine-plan-compact{border-bottom-color:#edf0f3!important}
.qr-large-header{box-shadow:0 2px 9px rgba(15,23,42,.04)}
.machine-empty-people{color:#52657d}

/* Reports */
.report-type-card{box-shadow:var(--shadow-sm)!important}
.report-type-card:hover{box-shadow:0 8px 22px rgba(15,23,42,.06)!important}
.report-type-card.active{background:#f6f9fe!important;border-color:#94b7e6!important}
.report-export-panel{background:#fafbfd!important}
.report-format-btn{box-shadow:none!important}
.report-format-btn:hover{background:#fff;box-shadow:0 5px 15px rgba(15,23,42,.05)!important}

/* 12M schedule */
.schedule-month-tile{box-shadow:var(--shadow-sm)!important;border-color:var(--line)!important}
.schedule-month-tile:hover{box-shadow:0 8px 22px rgba(15,23,42,.055)!important}
.annual-summary-grid>div{background:#fafbfd!important;border-color:#e3e8ee!important}

/* Mobile */
@media(max-width:1000px){
  .top{height:66px;padding:0 14px}
  .shell{min-height:calc(100vh - 66px)}
  .content{padding:16px 14px 112px!important}
  .desktop-nav{display:none!important}
  .mobile-nav{
    background:rgba(8,43,80,.98)!important;
    backdrop-filter:blur(15px);
    border-top:1px solid rgba(255,255,255,.07);
    box-shadow:0 -8px 28px rgba(4,24,46,.16);
  }
  .mobile-nav button{
    border-radius:10px!important;
    color:#d7e3ef!important;
  }
  .mobile-nav button.active{
    background:rgba(255,255,255,.1)!important;
    box-shadow:inset 0 -2px 0 #5c9cff!important;
  }
  .mobile-nav .nav-icon{font-size:23px!important}
  .mobile-nav .nav-label{font-size:9.5px!important;font-weight:700!important}
}
@media(max-width:760px){
  body{font-size:13px}
  h1{font-size:23px}
  h2{font-size:17px}
  .card{padding:14px;border-radius:12px}
  .content{padding-left:11px!important;padding-right:11px!important}
  .grid-kpi{gap:8px}
  .kpi{min-height:92px;padding:12px}
  .kpi .v{font-size:21px!important}
  .page-head{gap:12px}
  .page-actions .btn{min-height:38px}
  .task-card{padding:12px;gap:10px}
  .operator-actions{gap:8px}
  .big-action{min-height:92px;font-size:25px}
  .big-action span{font-size:11px}
  .table th,.table td{padding:9px 10px}
  .modal{padding:10px}
  .modal-card{padding:16px;width:min(96vw,650px)}
  .machine-header-wide{padding:14px!important}
  .machine-title-block h1{font-size:23px!important}
}
@media(max-width:480px){
  .brand-logo{height:27px!important;max-width:205px!important}
  .top{padding:0 10px}
  .user-copy b{font-size:10.5px}
  .user-copy small{font-size:9px}
  .logout-btn{min-height:34px!important;padding:6px 9px!important}
  .content{padding-bottom:108px!important}
  .grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .status-grid{grid-template-columns:1fr 1fr}
  .machine-counter-cards{gap:6px!important}
  .counter-card{padding:10px}
  .counter-card b{font-size:17px}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}


/* 4.0.8 — Human-centered PM timing */
.task-time-human{
  grid-template-columns:1fr 1.35fr!important;
  align-items:stretch;
}
.task-time-human>div{
  min-height:72px;
}
.time-background-note{
  background:#f8fafc!important;
}
.time-background-note b{
  color:#3f5d7c!important;
  font-size:13px!important;
}
.time-background-note small{
  display:block;
  margin-top:5px;
  color:#7d8b9c;
  font-size:9.5px;
  line-height:1.35;
}
.task-time-total small{
  display:block;
  margin-top:5px;
  color:#7d8b9c;
  font-size:9.5px;
  font-weight:500;
  line-height:1.35;
}
@media(max-width:640px){
  .task-time-human{grid-template-columns:1fr!important}
}


/* 4.0.9 — PM time analytics / predictive readiness */
.task-time-human.standard-only,
.task-time-total.standard-only{
  grid-template-columns:1fr!important;
}
.task-time-human.standard-only>div,
.task-time-total.standard-only>div{
  max-width:360px;
}

.pm-time-analytics{overflow:hidden}
.pm-time-policy{
  margin:12px 0 14px;
  background:#f6f8fb!important;
  border-color:#dfe5ec!important;
  color:#53657a!important;
}
.pm-time-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.pm-time-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:14px;
}
.pm-time-card:hover{border-color:#cbd6e3;background:#fcfdff}
.pm-time-card-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding-bottom:11px;border-bottom:1px solid #edf0f4;
}
.pm-time-card-head>div{display:flex;flex-direction:column;gap:2px}
.pm-time-card-head>b{font-size:12px}
.pm-time-card-head small{font-size:9.5px;color:var(--muted)}
.pm-time-assessment{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:#f1f5fa;
  border:1px solid #dce4ed;
  color:#48617c;
  font-size:8.5px;
  font-weight:820;
  white-space:nowrap;
}
.pm-time-latest>span{
  display:block;margin:11px 0 7px;color:#697b90;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em
}
.pm-time-values{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.pm-time-values>div{
  padding:9px;
  border:1px solid #e4e9ef;
  border-radius:9px;
  background:#fafbfd;
}
.pm-time-values small{display:block;color:#77869a;font-size:8.5px;margin-bottom:3px}
.pm-time-values b{font-size:11px;color:#273c55}
.pm-time-history{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-top:8px;
}
.pm-time-history>div{
  display:flex;flex-direction:column;gap:2px;padding:8px 9px;
  border-radius:9px;background:#f6f9fc;
}
.pm-time-history span{font-size:8.5px;color:#77869a}
.pm-time-history b{font-size:10.5px;color:#31506f}
.pm-time-interpretation{
  margin-top:9px;
  padding:9px 10px;
  border-left:3px solid #7fa7d5;
  background:#f8fafc;
  color:#586b80;
  font-size:9.5px;
  line-height:1.4;
}
@media(max-width:1050px){
  .pm-time-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .pm-time-values,.pm-time-history{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pm-time-card-head{flex-direction:column}
}


/* 4.0.10 — Harmonogram 12M: filtry + podsumowanie w dwóch kolumnach */
.schedule-overview-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);
  gap:14px;
  margin-bottom:14px;
  align-items:stretch;
}
.schedule-filter-panel,
.schedule-summary-panel{
  min-height:100%;
  padding:18px;
}
.schedule-filter-panel h2,
.schedule-summary-panel h2{
  margin:2px 0 4px;
}
.schedule-filter-panel>p,
.schedule-summary-panel>p{
  margin-bottom:14px;
}
.schedule-filter-column{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  max-width:560px;
}
.schedule-filter-column label{
  display:grid;
  grid-template-columns:125px minmax(0,1fr);
  align-items:center;
  gap:12px;
  font-size:10.5px;
  font-weight:760;
  color:#405269;
}
.schedule-filter-column select{
  width:100%;
  min-height:42px;
  border:1px solid var(--line-strong);
  border-radius:9px;
  background:#fff;
  padding:8px 10px;
}
.schedule-filter-legend{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.schedule-filter-legend .legend{
  margin:0;
}
.schedule-summary-panel{
  display:flex;
  flex-direction:column;
}
.schedule-total-result{
  margin:4px 0 14px;
  padding:17px 18px;
  border:1px solid #dbe5f1;
  border-radius:12px;
  background:#f7faff;
}
.schedule-total-result b{
  display:block;
  font-size:38px;
  line-height:1;
  letter-spacing:-.05em;
  color:#173b67;
}
.schedule-total-result span{
  display:block;
  margin-top:5px;
  color:#6d7e93;
  font-size:11px;
  font-weight:730;
}
.schedule-summary-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:auto;
}
.schedule-summary-metrics>div{
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfcfd;
}
.schedule-summary-metrics span{
  display:block;
  color:#748398;
  font-size:9.5px;
  margin-bottom:3px;
}
.schedule-summary-metrics b{
  color:#29445f;
  font-size:16px;
}
.schedule-summary-metrics .ok-text{color:#168651}
.schedule-summary-metrics .bad-text{color:#c74740}

@media(max-width:980px){
  .schedule-overview-grid{grid-template-columns:1fr}
  .schedule-filter-column{max-width:none}
}
@media(max-width:600px){
  .schedule-filter-column label{
    grid-template-columns:1fr;
    gap:5px;
  }
  .schedule-summary-metrics{grid-template-columns:1fr 1fr}
  .schedule-total-result b{font-size:32px}
}

.pm-time-empty{margin-top:12px;padding:14px 16px;background:#f8fafc!important;border-color:#dfe6ee!important;color:#3f536b!important}
.pm-time-empty b{display:block;margin-bottom:4px}


/* 4.0.13 — PM time trend chart */
.pm-time-analysis-row{
  display:grid;
  grid-template-columns:minmax(180px,.72fr) minmax(300px,1.28fr);
  gap:12px;
  align-items:stretch;
  margin:12px 0 4px;
}
.pm-time-analysis-summary{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:150px;
  padding:14px;
  border:1px solid #e1e7ee;
  border-radius:11px;
  background:#f8fafc;
}
.pm-time-analysis-summary .analysis-label{
  font-size:9px;
  color:#76869a;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:800;
}
.pm-time-analysis-summary b{
  margin:6px 0 5px;
  font-size:15px;
  color:#38516e;
}
.pm-time-analysis-summary small{
  color:#6d7d90;
  font-size:9.5px;
  line-height:1.45;
}
.pm-time-chart{
  min-height:150px;
  border:1px solid #e1e7ee;
  border-radius:11px;
  background:#fff;
  padding:10px 11px 8px;
}
.pm-time-chart-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#53677f;
  font-size:9px;
  margin-bottom:3px;
}
.pm-time-chart-head>span{font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.pm-time-chart-head>div{display:flex;align-items:center;gap:5px;color:#7b8999}
.line-key{display:inline-block;width:16px;height:2px;margin-left:5px;border-radius:2px}
.line-key.standard{background:#8fa4bd}
.line-key.actual{background:#2b73d2}
.pm-time-chart svg{display:block;width:100%;height:116px;overflow:visible}
.chart-grid{stroke:#e9edf2;stroke-width:1}
.pm-line-standard{
  fill:none;
  stroke:#8fa4bd;
  stroke-width:2;
  stroke-dasharray:5 4;
  vector-effect:non-scaling-stroke;
}
.pm-line-actual{
  fill:none;
  stroke:#2b73d2;
  stroke-width:2.5;
  vector-effect:non-scaling-stroke;
}
.pm-chart-dots circle{fill:#2b73d2;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.pm-time-chart-foot{font-size:8.5px;color:#8794a4;text-align:right;margin-top:-2px}
.pm-time-chart-empty{
  min-height:150px;
  display:grid;
  place-items:center;
  border:1px dashed #d9e0e8;
  border-radius:11px;
  background:#fafbfd;
  color:#8995a4;
  font-size:10px;
}
@media(max-width:760px){
  .pm-time-analysis-row{grid-template-columns:1fr}
  .pm-time-analysis-summary{min-height:auto}
}


/* 4.0.14 — scalable PM time analytics */
.pm-time-overview{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);
  gap:14px;
  margin:14px 0;
}
.pm-time-filters{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:9px;
}
.pm-time-filters label{
  font-size:9.5px;
  font-weight:780;
  color:#51647b;
}
.pm-time-filters input,.pm-time-filters select{
  display:block;
  width:100%;
  min-height:40px;
  margin-top:5px;
}
.pm-time-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.pm-time-kpis>div{
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafbfd;
}
.pm-time-kpis span{display:block;font-size:8.5px;color:#78879a;margin-bottom:4px}
.pm-time-kpis b{font-size:18px;color:#294762}
.pm-time-table-wrap{margin-top:4px}
.pm-time-table td{vertical-align:middle}
.pm-time-table tbody tr[data-assessment="STANDARD DO WERYFIKACJI"] td:first-child{box-shadow:inset 3px 0 0 #d39a29}
.pm-time-table tbody tr[data-assessment="ZA MAŁO DANYCH"] td:first-child{box-shadow:inset 3px 0 0 #90a3ba}
.pm-time-table tbody tr[data-assessment="STANDARD STABILNY"] td:first-child{box-shadow:inset 3px 0 0 #4a9a70}
.pm-time-detail-modal{max-width:920px}
.pm-time-detail-assessment{
  margin:12px 0;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
}
.pm-time-detail-assessment span{display:block;font-size:8.5px;color:#79889a;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.pm-time-detail-assessment b{display:block;margin:5px 0 3px;color:#3b536e}
.pm-time-detail-assessment small{color:#6b7c90;line-height:1.4}
@media(max-width:1100px){
  .pm-time-overview{grid-template-columns:1fr}
}
@media(max-width:760px){
  .pm-time-filters{grid-template-columns:1fr}
  .pm-time-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pm-time-table{min-width:820px}
}


/* ============================================================
   ProMaintenance 4.0.15 — LOGIC + UI PROFESSIONAL POLISH
   ============================================================ */

/* Global rhythm */
.content{padding-top:24px!important}
.page-head{
  align-items:flex-end;
  gap:18px;
  margin-bottom:16px;
  padding-bottom:13px;
  border-bottom:1px solid #e8edf2;
}
.page-head h1{margin:0 0 4px!important}
.page-head p{margin:0!important;max-width:820px}
.page-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}

/* Cleaner cards */
.card{
  background:#fff;
  border-color:#e2e8ef!important;
  box-shadow:0 1px 2px rgba(15,23,42,.018),0 7px 20px rgba(15,23,42,.025)!important;
}
.card:hover{border-color:#d7e0e9!important}

/* KPI cards - clearer hierarchy */
.grid-kpi{grid-auto-rows:1fr}
.kpi{
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-top:3px solid #dce8f7!important;
}
.kpi .muted{letter-spacing:.015em}
.kpi .v{margin-top:5px}

/* Tables */
.table-wrap{
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#cbd6e2 transparent;
}
.table thead th,.table>tbody:first-child>tr:first-child th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f8fafc;
}
.table td:first-child,.table th:first-child{padding-left:14px}
.table td:last-child,.table th:last-child{padding-right:14px}
.table tbody tr{transition:background .12s ease}
.table tbody tr:hover td{background:#f9fbfd}

/* Reliability layout */
.pm-time-analytics.scalable{
  padding:20px;
}
.pm-time-overview{
  border-top:1px solid #edf1f4;
  padding-top:14px;
}
.pm-time-filters{
  align-content:start;
}
.pm-time-filters label{
  color:#465b74!important;
  letter-spacing:.01em;
}
.pm-time-kpis{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
}
.pm-time-kpis>div{
  min-height:66px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.pm-time-kpis span{line-height:1.25}
.pm-time-table-wrap{
  max-height:580px;
}
.pm-time-table th{
  top:0;
  z-index:3;
}
.pm-time-table tbody tr[data-assessment="BRAK STANDARDU"] td:first-child{
  box-shadow:inset 3px 0 0 #8a6dc8;
}
.pm-time-assessment{
  font-weight:820!important;
  letter-spacing:.035em;
}
.pm-time-table-footer{
  min-height:42px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-top:10px;
}
.pm-time-source{
  margin-top:8px;
  color:#76869a;
  font-size:9px;
  text-align:right;
}

/* Machine page */
.machine-header-wide{
  border-top:3px solid #dce8f7!important;
}
.machine-top-grid,.machine-operational-grid{gap:14px!important}
.machine-tech-grid>div{min-height:36px;align-items:center}
.machine-counter-form label{letter-spacing:.01em}
.counter-card{min-height:92px}
.machine-plan-compact:hover{background:#fafcfe}

/* QR actions */
.qr-header-actions .btn{
  min-width:86px;
  justify-content:center;
}
.qr-large-header{
  background:#fff;
  border-color:#d5e0ec!important;
}

/* Timeline */
.timeline-item>.card{
  border-left:0!important;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.timeline-item>.card:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(15,23,42,.045)!important;
}
.timeline-time{
  margin-top:9px;
  padding:8px 10px;
  border-radius:8px;
  background:#f7f9fc;
  color:#51677f;
}

/* Forms */
label>input,label>select,label>textarea{
  margin-top:4px;
}
input[type="date"],input[type="number"],input[type="search"],select{
  min-height:42px;
}
.form input:disabled,.form select:disabled,input:disabled,select:disabled{
  background:#f1f4f7!important;
  color:#7a8999!important;
}

/* Better status contrast without visual alarm overload */
.badge.green{background:#edf8f2!important;color:#117848!important}
.badge.amber{background:#fff7e5!important;color:#9a6208!important}
.badge.red{background:#fff1ef!important;color:#ae3d37!important}
.text-red{color:#b5453f!important}
.text-green{color:#16804d!important}

/* Sidebar */
.side{
  box-shadow:inset -1px 0 rgba(255,255,255,.025);
}
.side button{
  position:relative;
}
.side button.active:before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:#3f83e5;
}

/* Dashboard/chart polish */
.bars{gap:9px}
.bar-track{height:8px!important}
.bar-fill{border-radius:999px}
.trend-col{min-width:28px}
.trend-bar{border-radius:5px 5px 2px 2px}

/* Documentation */
.doc-row{
  align-items:center;
}
.doc-row .row-actions{
  opacity:.82;
}
.doc-row:hover .row-actions{
  opacity:1;
}

/* Empty states */
.notice:not(.err):not(.ok){
  background:#f7f9fc!important;
  border-color:#e0e7ef!important;
  color:#52667e!important;
}

/* Mobile refinement */
@media(max-width:1000px){
  .mobile-nav{
    overflow-x:auto!important;
    justify-content:flex-start!important;
    scroll-snap-type:x proximity;
    padding-left:7px!important;
    padding-right:7px!important;
  }
  .mobile-nav button{
    min-width:78px!important;
    flex:0 0 auto!important;
    scroll-snap-align:start;
  }
  .mobile-nav button.active{
    color:#fff!important;
  }
}
@media(max-width:760px){
  .page-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .page-actions{width:100%}
  .page-actions>.btn,.page-actions>select{flex:1}
  .pm-time-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .pm-time-table-footer{align-items:flex-start;flex-direction:column}
  .pm-time-table-wrap{max-height:none}
}
@media(max-width:480px){
  .content{padding-top:13px!important}
  .card{border-radius:11px!important}
  .page-head{padding-bottom:10px;margin-bottom:12px}
  .btn{min-height:42px}
  .compact{min-height:34px!important}
}


/* 4.0.17 — Moje usprawnienia + 5 akcji operatora */
.operator-actions-five{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
}
.operator-actions-five .big-action{
  min-width:0;
  min-height:108px;
}
.my-improvements-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.my-improvement-card{
  display:flex;
  flex-direction:column;
  min-height:240px;
}
.my-improvement-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding-bottom:11px;
  border-bottom:1px solid var(--line);
}
.my-improvement-head h2{margin:3px 0 2px}
.my-improvement-body{padding:12px 0;flex:1}
.my-improvement-body b{display:block;font-size:10px;color:#4b6179;margin-bottom:3px}
.my-improvement-body p{font-size:11px;color:#62748a;margin:0 0 10px;line-height:1.45}
.my-improvement-foot{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-top:9px;
  border-top:1px solid var(--line);
  color:#6e7e91;
  font-size:10px;
}
.my-improvement-foot b{color:#344b65}
.empty-state{text-align:center;padding:38px 20px}
.empty-state-icon{width:54px;height:54px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:#2d6fd0;font-size:24px}
.empty-state h2{margin-bottom:6px}

@media(max-width:1200px){
  .operator-actions-five{
    display:flex!important;
    overflow-x:auto;
    gap:9px!important;
    padding-bottom:5px;
    scroll-snap-type:x proximity;
  }
  .operator-actions-five .big-action{
    flex:0 0 190px;
    scroll-snap-align:start;
  }
  .my-improvements-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .operator-actions-five .big-action{flex-basis:155px;min-height:96px}
  .my-improvements-grid{grid-template-columns:1fr}
}


/* 4.0.18 — Mobile Operator Dashboard: "Moja praca" one tile per row */
@media(max-width:700px){
  .operator-actions-five{
    display:grid!important;
    grid-template-columns:1fr!important;
    overflow:visible!important;
    gap:9px!important;
    padding-bottom:0!important;
  }

  .operator-actions-five .big-action{
    width:100%!important;
    min-width:0!important;
    flex:none!important;
    min-height:86px!important;
    scroll-snap-align:none!important;
  }
}


/* 4.0.19 — Dashboard UR mobile KPI grid */
.manager-kpi-stack .tech-kpi{
  margin-top:14px;
}

@media(max-width:700px){
  /* Na telefonie wszystkie KPI Kierownika tworzą jeden ciągły układ,
     dzięki czemu nie ma luki pomiędzy "Odroczone" i "MTTR". */
  .manager-kpi-stack{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:10px;
  }

  .manager-kpi-stack > .grid-kpi{
    display:contents!important;
  }

  .manager-kpi-stack .kpi{
    width:100%;
    min-width:0;
    min-height:92px;
    margin:0!important;
  }

  .manager-kpi-stack .tech-kpi{
    margin-top:0!important;
  }
}

@media(max-width:360px){
  .manager-kpi-stack{
    gap:7px;
  }
  .manager-kpi-stack .kpi{
    min-height:88px;
    padding:10px!important;
  }
  .manager-kpi-stack .kpi .v{
    font-size:19px!important;
  }
}


/* 4.0.20 — mobile machine cards for manager/admin */
.machine-mobile-cards{display:none}

@media(max-width:760px){
  .machine-desktop-table{display:none!important}
  .machine-mobile-cards{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .machine-mobile-card{
    padding:14px!important;
    border-radius:12px!important;
  }
  .machine-mobile-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:11px;
    border-bottom:1px solid var(--line);
  }
  .machine-mobile-head h2{
    margin:4px 0 1px;
    font-size:18px;
  }
  .machine-mobile-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:11px;
  }
  .machine-mobile-meta>div{
    padding:9px 10px;
    background:#f8fafc;
    border:1px solid #e5eaf0;
    border-radius:9px;
  }
  .machine-mobile-meta span,
  .machine-mobile-people>span{
    display:block;
    color:#748397;
    font-size:9px;
    font-weight:780;
    text-transform:uppercase;
    letter-spacing:.045em;
    margin-bottom:3px;
  }
  .machine-mobile-meta b{
    font-size:11px;
    color:#334b66;
  }
  .machine-mobile-people{
    margin-top:11px;
  }
  .machine-mobile-people>div{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
  }
  .machine-mobile-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    margin-top:12px;
  }
  .machine-mobile-actions .btn{
    width:100%;
    min-height:42px;
  }
}

@media(min-width:761px){
  .machine-desktop-table{display:block}
  .machine-mobile-cards{display:none!important}
}

.demo-badge{display:inline-flex;align-items:center;margin-left:10px;padding:4px 7px;border-radius:999px;background:#edf4ff;border:1px solid #cfe0f7;color:#2a66b1;font-size:9px;font-weight:850;letter-spacing:.08em}
@media(max-width:480px){.demo-badge{font-size:8px;padding:3px 6px;margin-left:6px}}


/* === 4.0.22: disciplined PM and UR action controls ====================== */
.task-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) 132px;
  align-items:center;
  column-gap:24px;
}
.task-card-actions{
  width:132px;
  min-width:132px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:8px;
  justify-self:end;
}
.task-card-actions .badge{
  align-self:flex-end;
  min-height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  margin:0;
}
.btn.task-primary-action{
  width:112px;
  min-width:112px;
  height:38px;
  min-height:38px;
  align-self:flex-end;
  margin:0;
  padding:0 16px;
  border-radius:8px;
  box-shadow:none;
  font-size:11px;
  font-weight:750;
  letter-spacing:.025em;
  transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.btn.task-primary-action:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(29,78,216,.12)}
.btn.task-primary-action:active{transform:none}

.issue-table th.issue-actions-head{
  text-align:right;
  padding-right:16px;
}
.issue-actions-cell{
  width:158px;
  min-width:158px;
  text-align:right;
  vertical-align:middle!important;
}
.issue-row-actions{
  width:148px;
  margin-left:auto;
  display:flex!important;
  flex-direction:column;
  align-items:stretch!important;
  gap:7px!important;
}
.issue-row-actions .issue-action-control{
  box-sizing:border-box;
  width:148px!important;
  min-width:148px!important;
  max-width:148px!important;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  border-radius:8px!important;
  font-size:10px!important;
  font-weight:700;
  line-height:1!important;
  box-shadow:none!important;
}
.issue-row-actions select.issue-action-control{
  padding:0 30px 0 11px!important;
  background-position:right 10px center;
}
.issue-row-actions .issue-details-btn{
  background:#fff;
  color:#25496f;
  border:1px solid #cbd8e6;
}
.issue-row-actions .issue-details-btn:hover{
  background:#f6f9fc;
  border-color:#aebfd1;
  color:#163a60;
}

/* Keep dense operational views professional on narrower screens. */
@media(max-width:760px){
  .task-card{grid-template-columns:minmax(0,1fr) 118px;column-gap:12px}
  .task-card-actions{width:118px;min-width:118px}
  .btn.task-primary-action{width:104px;min-width:104px}
}
@media(max-width:520px){
  .task-card{grid-template-columns:minmax(0,1fr) 108px;column-gap:10px}
  .task-card-actions{width:108px;min-width:108px;gap:6px}
  .btn.task-primary-action{width:100px;min-width:100px;height:36px;min-height:36px;padding:0 10px}
  .task-card-actions .badge{font-size:9px}
}


/* 4.0.23 — Zlecenia UR: dopracowanie akcji */
.issue-actions-cell{
  width:172px!important;
  min-width:172px!important;
}

.issue-row-actions{
  width:162px!important;
  min-width:162px!important;
  margin-left:auto;
}

.issue-row-actions .issue-action-control{
  width:162px!important;
  min-width:162px!important;
  max-width:162px!important;
  height:36px!important;
  min-height:36px!important;
}

/* Szczegóły — delikatny jasnoniebieski */
.issue-row-actions .issue-details-btn{
  background:#eef6ff!important;
  color:#215f9f!important;
  border:1px solid #c9ddf3!important;
}

.issue-row-actions .issue-details-btn:hover{
  background:#e2f0ff!important;
  color:#174f89!important;
  border-color:#a9caec!important;
}

/* Zmień status — ta sama szerokość i wysokość co Szczegóły */
.issue-row-actions select.issue-action-control{
  background:#fff!important;
  border:1px solid #cbd8e6!important;
  color:#334e68!important;
  padding:0 32px 0 12px!important;
  border-radius:8px!important;
}

/* minimalnie szersza kolumna Akcje, bez rozpychania tabeli */
.issue-actions-head{
  width:172px!important;
  min-width:172px!important;
}


/* 4.0.24 — unified execution buttons */
/* WYKONAJ / OTWÓRZ PRZEGLĄD: ten sam język wizualny co "SZCZEGÓŁY" w Zleceniach UR */
.btn.execute-light,
.btn.task-primary-action.execute-light{
  background:#eef6ff!important;
  color:#215f9f!important;
  border:1px solid #c9ddf3!important;
  box-shadow:none!important;
}

.btn.execute-light:hover,
.btn.task-primary-action.execute-light:hover{
  background:#e2f0ff!important;
  color:#174f89!important;
  border-color:#a9caec!important;
  box-shadow:0 4px 10px rgba(33,95,159,.10)!important;
}

.btn.execute-light:active,
.btn.task-primary-action.execute-light:active{
  background:#d9ebff!important;
  transform:none!important;
}


/* ============================================================
   ProMaintenance 4.0.25 — UNIFIED PROFESSIONAL BUTTON SYSTEM
   Spójny język wizualny przycisków w całej aplikacji.
   ============================================================ */

/* Bazowy przycisk — spokojny, jasnoniebieski, bez "PowerPointowego" ciężaru */
.btn{
  min-height:38px!important;
  height:auto;
  padding:8px 14px!important;
  border-radius:8px!important;
  border:1px solid #c9ddf3!important;
  background:#eef6ff!important;
  color:#215f9f!important;
  font-size:10.5px!important;
  font-weight:750!important;
  letter-spacing:.018em!important;
  line-height:1.15!important;
  box-shadow:none!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-decoration:none;
  white-space:nowrap;
}

.btn:hover{
  background:#e2f0ff!important;
  color:#174f89!important;
  border-color:#a9caec!important;
  box-shadow:0 3px 9px rgba(33,95,159,.09)!important;
  transform:translateY(-1px);
}

.btn:active{
  background:#d9ebff!important;
  transform:none!important;
  box-shadow:none!important;
}

/* Wariant neutralny */
.btn.secondary{
  background:#fff!important;
  color:#405b78!important;
  border-color:#cfd9e5!important;
}
.btn.secondary:hover{
  background:#f7f9fc!important;
  color:#244a72!important;
  border-color:#b7c7d8!important;
}

/* Semantyczne akcje — delikatne tła, kolor niesie znaczenie, ale nie dominuje */
.btn.green{
  background:#edf8f2!important;
  color:#16764a!important;
  border-color:#cbe8d9!important;
}
.btn.green:hover{
  background:#e2f4ea!important;
  color:#105f3b!important;
  border-color:#abd8c1!important;
}

.btn.red{
  background:#fff1ef!important;
  color:#ad423b!important;
  border-color:#efcfcb!important;
}
.btn.red:hover{
  background:#fde7e4!important;
  color:#92342f!important;
  border-color:#dfb6b1!important;
}

.btn.amber{
  background:#fff7e8!important;
  color:#94610b!important;
  border-color:#ecd9aa!important;
}
.btn.amber:hover{
  background:#fff1d2!important;
  color:#7f5108!important;
  border-color:#dec481!important;
}

/* Wszystkie kompaktowe akcje mają identyczną wysokość */
.btn.compact{
  min-height:34px!important;
  height:34px!important;
  padding:0 11px!important;
  border-radius:8px!important;
  font-size:9.5px!important;
}

/* Linki stylizowane jak przyciski */
a.btn{
  box-sizing:border-box;
}

/* Akcje w wierszach tabel — równe i czytelne */
.row-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  flex-wrap:wrap;
}
.row-actions .btn,
.row-actions select{
  margin:0!important;
}

/* Selecty akcji mają ten sam system wymiarów co przyciski */
.compact-select,
.issue-action-control{
  min-height:34px!important;
  height:34px!important;
  border-radius:8px!important;
  border:1px solid #cfd9e5!important;
  background:#fff!important;
  color:#405b78!important;
  font-size:9.5px!important;
  font-weight:700!important;
  box-shadow:none!important;
}

/* Zlecenia UR — jedna kolumna akcji o równych wymiarach */
.issue-row-actions .issue-action-control{
  width:162px!important;
  min-width:162px!important;
  max-width:162px!important;
  height:36px!important;
  min-height:36px!important;
}
.issue-row-actions .issue-details-btn{
  background:#eef6ff!important;
  color:#215f9f!important;
  border-color:#c9ddf3!important;
}

/* PM / checklist / przeglądy — wszystkie akcje wykonawcze w tym samym stylu */
.btn.execute-light,
.btn.task-primary-action,
.btn.task-primary-action.execute-light{
  background:#eef6ff!important;
  color:#215f9f!important;
  border:1px solid #c9ddf3!important;
  box-shadow:none!important;
}
.btn.execute-light:hover,
.btn.task-primary-action:hover,
.btn.task-primary-action.execute-light:hover{
  background:#e2f0ff!important;
  color:#174f89!important;
  border-color:#a9caec!important;
}

/* Formularze i modale — przyciski bez przypadkowych różnic */
.form .btn,
.modal .btn,
.page-actions .btn,
.machine-mobile-actions .btn,
.qr-header-actions .btn,
.report-export-actions .btn,
.report-format-btn{
  border-radius:8px!important;
}

/* Raporty: zachowujemy kafelkowy charakter formatów, ale spójny promień i cień */
.report-format-btn{
  box-shadow:none!important;
}
.report-format-btn:hover{
  box-shadow:0 3px 10px rgba(15,23,42,.06)!important;
}

/* Big action pozostaje kafelkiem nawigacyjnym, nie klasycznym buttonem */
.big-action{
  border:1px solid #dbe4ed!important;
  background:#fff!important;
  color:#254867!important;
  box-shadow:0 1px 2px rgba(15,23,42,.02)!important;
  border-radius:12px!important;
}
.big-action:hover{
  background:#f8fbfe!important;
  border-color:#bfd2e5!important;
  box-shadow:0 5px 14px rgba(15,23,42,.045)!important;
}
.big-action.danger{
  color:#9c413c!important;
  background:#fffafa!important;
  border-color:#efd7d4!important;
}

/* Disabled */
.btn:disabled,
.btn[disabled]{
  background:#f1f4f7!important;
  color:#9aa7b5!important;
  border-color:#e0e5eb!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
  transform:none!important;
}

/* Mobile: pełna czytelność, ale bez gigantycznych przycisków */
@media(max-width:760px){
  .btn{
    min-height:40px!important;
    padding:9px 13px!important;
  }
  .btn.compact{
    min-height:36px!important;
    height:36px!important;
    padding:0 10px!important;
  }
  .row-actions{
    gap:6px!important;
  }
}

@media(max-width:480px){
  .btn{
    min-height:40px!important;
  }
  .page-actions .btn{
    flex:1 1 auto;
  }
}


/* ============================================================
   ProMaintenance 4.0.26 — Unified contextual actions
   ============================================================ */

/* Jeden kolor dla wskazanych akcji nawigacyjnych / otwierających */
.btn.app-action-light{
  background:#eef6ff!important;
  color:#215f9f!important;
  border:1px solid #c9ddf3!important;
  box-shadow:none!important;
}

.btn.app-action-light:hover{
  background:#e2f0ff!important;
  color:#174f89!important;
  border-color:#a9caec!important;
  box-shadow:0 3px 9px rgba(33,95,159,.09)!important;
}

.btn.app-action-light:active{
  background:#d9ebff!important;
  transform:none!important;
  box-shadow:none!important;
}

/* Maszyny — OTWÓRZ ma tę samą spokojną hierarchię */
.machine-table td:last-child .app-action-light{
  min-width:94px;
}

/* Historia / Timeline — akcja zawsze równo do prawej */
.history-action-head{
  width:152px;
  min-width:152px;
  text-align:right!important;
  padding-right:16px!important;
}
.history-action-cell{
  width:152px;
  min-width:152px;
  text-align:right!important;
  vertical-align:middle!important;
}
.history-open-btn{
  width:136px!important;
  min-width:136px!important;
  justify-content:center;
  margin-left:auto!important;
}

/* Karta maszyny — WYŚWIETL / POBIERZ równe */
.qr-header-actions{
  width:100%;
  justify-content:center;
}
.qr-header-actions .machine-card-action{
  width:96px!important;
  min-width:96px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 9px!important;
}

/* Karta maszyny — akcje sekcji mają identyczny styl */
.machine-section-action{
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
}

.machine-recent-work .section-head{
  align-items:center!important;
}

.machine-pm-card > .machine-section-action{
  margin-top:4px;
}

/* Na telefonie przyciski pozostają czytelne i nie rozciągają nagłówków */
@media(max-width:760px){
  .history-action-head,
  .history-action-cell{
    width:140px;
    min-width:140px;
  }
  .history-open-btn{
    width:128px!important;
    min-width:128px!important;
  }
  .qr-header-actions .machine-card-action{
    width:94px!important;
    min-width:94px!important;
  }
}



/* ============================================================
   ProMaintenance 4.0.27 — Active machine checkbox alignment
   ============================================================ */
.form-grid .asset-active{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  align-self:end!important;
  gap:10px!important;
  min-height:44px!important;
  height:44px!important;
  margin:0!important;
  padding:0 2px!important;
  color:#253b55!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  white-space:nowrap!important;
}

.form-grid .asset-active input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  min-height:22px!important;
  max-width:22px!important;
  max-height:22px!important;
  margin:0!important;
  padding:0!important;
  border:1.5px solid #aebfd1!important;
  border-radius:6px!important;
  background:#fff!important;
  display:inline-grid!important;
  place-content:center!important;
  cursor:pointer;
  box-shadow:none!important;
}

.form-grid .asset-active input[type="checkbox"]::before{
  content:"";
  width:10px;
  height:6px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) scale(0);
  transform-origin:center;
  margin-top:-2px;
}

.form-grid .asset-active input[type="checkbox"]:checked{
  background:#2f6fed!important;
  border-color:#2f6fed!important;
}

.form-grid .asset-active input[type="checkbox"]:checked::before{
  transform:rotate(-45deg) scale(1);
}

.form-grid .asset-active input[type="checkbox"]:focus-visible{
  outline:3px solid rgba(47,111,237,.16)!important;
  outline-offset:2px;
}

@media(max-width:760px){
  .form-grid .asset-active{
    min-height:42px!important;
    height:42px!important;
    font-size:13px!important;
  }
}


/* ============================================================
   ProMaintenance 4.0.28 — Chart value labels
   ============================================================ */

/* Dashboard UR — Usterki, ostatnie 14 dni */
.trend{
  padding-top:30px!important;
}
.trend-col{
  position:relative;
}
.trend-value{
  min-height:22px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin-bottom:5px;
  color:#425b77;
  font-size:10px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

/* Reliability — 12-month failure / cost trends */
.rel-trend{
  padding-top:34px!important;
}
.rel-trend-col{
  position:relative;
}
.rel-trend-value{
  min-height:24px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin-bottom:5px;
  color:#425b77;
  font-size:9.5px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

/* Cost labels may be wider than bars; keep them readable without crowding. */
.rel-trend-col[title*="zł"] .rel-trend-value{
  font-size:9px;
}

@media(max-width:760px){
  .trend-value{
    font-size:9px;
  }
  .rel-trend-value{
    font-size:8.5px;
  }
  .rel-trend{
    overflow-x:auto;
    padding-bottom:4px;
  }
  .rel-trend-col{
    min-width:34px;
  }
}



/* ============================================================
   ProMaintenance 4.0.29 — PROFESSIONAL INDUSTRIAL BUTTON SYSTEM
   Quiet hierarchy: primary / secondary / tertiary / destructive
   ============================================================ */

:root{
  --pm-navy:#0b3558;
  --pm-navy-hover:#174f7a;
  --pm-action-bg:#f5f8fb;
  --pm-action-bg-hover:#edf3f8;
  --pm-action-border:#d6e0ea;
  --pm-action-border-hover:#b9c9d8;
  --pm-action-text:#294b69;
  --pm-muted:#667b90;
}

/* Global button reset: compact and application-like rather than presentation-like */
.btn{
  min-height:36px!important;
  height:36px!important;
  padding:0 13px!important;
  border-radius:7px!important;
  border:1px solid var(--pm-action-border)!important;
  background:#fff!important;
  color:var(--pm-action-text)!important;
  box-shadow:none!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.012em!important;
  line-height:1!important;
  text-transform:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  white-space:nowrap!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease!important;
}

.btn:hover{
  background:var(--pm-action-bg)!important;
  border-color:var(--pm-action-border-hover)!important;
  color:var(--pm-navy)!important;
  box-shadow:0 2px 6px rgba(11,53,88,.055)!important;
  transform:none!important;
}

.btn:active{
  background:#e9f0f6!important;
  box-shadow:none!important;
}

/* PRIMARY — only important creation/save/start actions */
.btn.primary,
.btn:not(.secondary):not(.green):not(.red):not(.amber):not(.app-action-light):not(.execute-light):not(.task-primary-action).primary{
  background:var(--pm-navy)!important;
  color:#fff!important;
  border-color:var(--pm-navy)!important;
}
.btn.primary:hover{
  background:var(--pm-navy-hover)!important;
  border-color:var(--pm-navy-hover)!important;
  color:#fff!important;
  box-shadow:0 3px 8px rgba(11,53,88,.14)!important;
}

/* SECONDARY — Open / Details / History / Preview */
.btn.secondary,
.btn.app-action-light,
.btn.execute-light,
.btn.task-primary-action,
.btn.task-primary-action.execute-light{
  background:var(--pm-action-bg)!important;
  color:var(--pm-action-text)!important;
  border-color:var(--pm-action-border)!important;
}
.btn.secondary:hover,
.btn.app-action-light:hover,
.btn.execute-light:hover,
.btn.task-primary-action:hover,
.btn.task-primary-action.execute-light:hover{
  background:var(--pm-action-bg-hover)!important;
  color:var(--pm-navy)!important;
  border-color:var(--pm-action-border-hover)!important;
  box-shadow:0 2px 6px rgba(11,53,88,.055)!important;
}

/* TERTIARY — edit/download/helper actions */
.btn.tertiary{
  background:#fff!important;
  color:#526b82!important;
  border-color:#e0e7ee!important;
}
.btn.tertiary:hover{
  background:#f8fafc!important;
  color:var(--pm-navy)!important;
  border-color:#cbd7e2!important;
}

/* Semantic buttons remain semantic but are deliberately quiet */
.btn.green{
  background:#f0f8f4!important;
  color:#176a47!important;
  border-color:#cfe6da!important;
}
.btn.amber{
  background:#fff8ec!important;
  color:#865b12!important;
  border-color:#ead9b6!important;
}
.btn.red{
  background:#fff4f2!important;
  color:#a13e37!important;
  border-color:#ebd1cd!important;
}

/* Compact actions */
.btn.compact{
  min-height:34px!important;
  height:34px!important;
  padding:0 11px!important;
  border-radius:7px!important;
  font-size:9.5px!important;
}

/* Machine list: actions read as controls, not cards */
.machine-table td:last-child{
  white-space:nowrap;
}
.machine-table td:last-child .btn{
  min-width:82px!important;
  width:auto!important;
}
.machine-table td:last-child .btn + .btn{
  margin-left:5px!important;
}
/* Open = secondary, Edit = tertiary visual hierarchy even if generated with same legacy class */
.machine-table td:last-child .btn:first-child{
  background:var(--pm-action-bg)!important;
  color:var(--pm-action-text)!important;
  border-color:var(--pm-action-border)!important;
}
.machine-table td:last-child .btn:last-child{
  background:#fff!important;
  color:#5c7186!important;
  border-color:#e0e7ee!important;
}

/* UR order actions: precise right-side control stack */
.issue-row-actions{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:6px!important;
  width:150px!important;
  margin-left:auto!important;
}
.issue-row-actions .issue-action-control{
  width:150px!important;
  min-width:150px!important;
  max-width:150px!important;
  height:36px!important;
  min-height:36px!important;
  border-radius:7px!important;
  font-size:9.5px!important;
  font-weight:650!important;
}
.issue-row-actions select.issue-action-control{
  background:#fff!important;
  color:#425b72!important;
  border:1px solid var(--pm-action-border)!important;
  padding:0 28px 0 10px!important;
}
.issue-row-actions .issue-details-btn{
  background:var(--pm-action-bg)!important;
  color:var(--pm-action-text)!important;
  border:1px solid var(--pm-action-border)!important;
  box-shadow:none!important;
}
.issue-row-actions .issue-details-btn:hover{
  background:var(--pm-action-bg-hover)!important;
  border-color:var(--pm-action-border-hover)!important;
  color:var(--pm-navy)!important;
}

/* Table action column aligned consistently */
.issue-table th:last-child,
.issue-table td:last-child{
  text-align:right!important;
}
.issue-table td:last-child .issue-row-actions{
  margin-right:0!important;
}

/* Machine card actions */
.qr-header-actions .machine-card-action,
.machine-section-action,
.history-open-btn{
  background:var(--pm-action-bg)!important;
  color:var(--pm-action-text)!important;
  border-color:var(--pm-action-border)!important;
}

/* Header/page actions: primary action dark navy; secondary actions quiet */
.page-actions{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.page-actions .btn{
  min-height:36px!important;
  height:36px!important;
}
.page-actions .btn:first-child{
  background:var(--pm-navy)!important;
  color:#fff!important;
  border-color:var(--pm-navy)!important;
}
.page-actions .btn:first-child:hover{
  background:var(--pm-navy-hover)!important;
  border-color:var(--pm-navy-hover)!important;
  color:#fff!important;
}
.page-actions .btn:not(:first-child){
  background:#fff!important;
  color:#455f77!important;
  border-color:var(--pm-action-border)!important;
}

/* Avoid excessive uppercase visual weight where legacy text is uppercase */
.btn{
  font-variant:normal!important;
}

/* Disabled controls */
.btn:disabled,
.btn[disabled]{
  background:#f3f5f7!important;
  color:#9ba8b4!important;
  border-color:#e1e6eb!important;
  box-shadow:none!important;
  opacity:1!important;
}

/* Mobile — controls remain compact, but touch targets stay usable */
@media(max-width:760px){
  .btn{
    min-height:40px!important;
    height:40px!important;
    padding:0 13px!important;
    font-size:10.5px!important;
  }
  .btn.compact{
    min-height:38px!important;
    height:38px!important;
  }
  .issue-row-actions{
    width:100%!important;
    max-width:100%!important;
  }
  .issue-row-actions .issue-action-control{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:40px!important;
  }
}



/* ============================================================
   ProMaintenance 4.0.30 — BUTTON CONTRAST & HIERARCHY
   Wyraźniejsze akcje bez powrotu do ciężkich "kafelków".
   ============================================================ */
:root{
  --action-navy:#0b3558;
  --action-navy-hover:#124a77;
  --action-blue:#245f93;
  --action-blue-hover:#174f7a;
  --action-secondary-bg:#edf4fa;
  --action-secondary-hover:#e2edf6;
  --action-secondary-border:#b9ccdd;
  --action-tertiary-bg:#ffffff;
  --action-tertiary-border:#cbd7e2;
  --action-tertiary-text:#4d657b;
}

/* SECONDARY: ma być od razu widoczny jako przycisk */
.btn.secondary,
.btn.app-action-light,
.btn.execute-light,
.btn.task-primary-action,
.btn.task-primary-action.execute-light,
.history-open-btn,
.machine-section-action,
.qr-header-actions .machine-card-action{
  background:var(--action-secondary-bg)!important;
  color:var(--action-blue)!important;
  border:1px solid var(--action-secondary-border)!important;
  box-shadow:0 1px 2px rgba(11,53,88,.035)!important;
}
.btn.secondary:hover,
.btn.app-action-light:hover,
.btn.execute-light:hover,
.btn.task-primary-action:hover,
.btn.task-primary-action.execute-light:hover,
.history-open-btn:hover,
.machine-section-action:hover,
.qr-header-actions .machine-card-action:hover{
  background:var(--action-secondary-hover)!important;
  color:var(--action-navy)!important;
  border-color:#96b3ca!important;
  box-shadow:0 2px 6px rgba(11,53,88,.08)!important;
}

/* Maszyny: OTWÓRZ jest akcją główną w wierszu, EDYTUJ pomocniczą */
.machine-table td:last-child .btn:first-child{
  background:var(--action-secondary-bg)!important;
  color:var(--action-blue)!important;
  border:1px solid var(--action-secondary-border)!important;
  box-shadow:0 1px 2px rgba(11,53,88,.035)!important;
}
.machine-table td:last-child .btn:first-child:hover{
  background:var(--action-secondary-hover)!important;
  color:var(--action-navy)!important;
  border-color:#96b3ca!important;
}
.machine-table td:last-child .btn:last-child{
  background:var(--action-tertiary-bg)!important;
  color:var(--action-tertiary-text)!important;
  border:1px solid var(--action-tertiary-border)!important;
}
.machine-table td:last-child .btn:last-child:hover{
  background:#f5f8fa!important;
  color:var(--action-navy)!important;
  border-color:#aebfce!important;
}

/* Nieco mniejsze, bardziej narzędziowe przyciski w tabelach */
.machine-table td:last-child .btn{
  min-width:78px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 12px!important;
  border-radius:7px!important;
}

/* Karta maszyny: akcje sekcji nie mogą ginąć na białych kartach */
.machine-section-action{
  background:#eaf2f8!important;
  color:#214f75!important;
  border-color:#b7cbdc!important;
}
.machine-section-action:hover{
  background:#dceaf4!important;
  border-color:#91aec5!important;
}

/* UR: dropdown jest kontrolką formularzową, SZCZEGÓŁY wyraźnym secondary */
.issue-row-actions select.issue-action-control{
  background:#fff!important;
  color:#344f67!important;
  border:1px solid #bfcddb!important;
  box-shadow:0 1px 2px rgba(15,23,42,.025)!important;
}
.issue-row-actions select.issue-action-control:hover{
  border-color:#91aac0!important;
  background:#fbfcfd!important;
}
.issue-row-actions .issue-details-btn{
  background:var(--action-secondary-bg)!important;
  color:var(--action-blue)!important;
  border:1px solid var(--action-secondary-border)!important;
  box-shadow:0 1px 2px rgba(11,53,88,.035)!important;
}
.issue-row-actions .issue-details-btn:hover{
  background:var(--action-secondary-hover)!important;
  color:var(--action-navy)!important;
  border-color:#96b3ca!important;
}

/* Header: tylko jedna akcja główna jest ciemnogranatowa */
.page-actions .btn:first-child{
  background:var(--action-navy)!important;
  color:#fff!important;
  border-color:var(--action-navy)!important;
  box-shadow:0 2px 5px rgba(11,53,88,.12)!important;
}
.page-actions .btn:first-child:hover{
  background:var(--action-navy-hover)!important;
  color:#fff!important;
  border-color:var(--action-navy-hover)!important;
}
.page-actions .btn:not(:first-child){
  background:#fff!important;
  color:#415d75!important;
  border:1px solid #c4d2df!important;
  box-shadow:0 1px 2px rgba(15,23,42,.025)!important;
}
.page-actions .btn:not(:first-child):hover{
  background:#f4f7fa!important;
  color:var(--action-navy)!important;
  border-color:#9fb4c6!important;
}

/* Focus keyboard — profesjonalny, widoczny, ale subtelny */
.btn:focus-visible,
.issue-action-control:focus-visible{
  outline:3px solid rgba(36,95,147,.16)!important;
  outline-offset:2px!important;
}

/* Przyciski na białych kartach dostają minimalny kontrast od powierzchni */
.card .btn.secondary,
.panel .btn.secondary,
.machine-pm-card .btn,
.machine-recent-work .btn{
  box-shadow:0 1px 2px rgba(11,53,88,.04)!important;
}

/* Mobile: hierarchia pozostaje taka sama */
@media(max-width:760px){
  .machine-table td:last-child .btn{
    min-height:38px!important;
    height:38px!important;
  }
}


/* ============================================================
   ProMaintenance 4.0.31 — Machine card action polish
   ============================================================ */

/* Liczniki: przycisk ma zachowywać się jak element formularza, nie dominujący CTA */
.machine-counter-form .counter-save-btn{
  min-width:132px!important;
  height:42px!important;
  min-height:42px!important;
  align-self:end!important;
  background:#edf4fa!important;
  color:#245f93!important;
  border:1px solid #b9ccdd!important;
  border-radius:8px!important;
  padding:0 14px!important;
  box-shadow:0 1px 2px rgba(11,53,88,.035)!important;
  font-size:10px!important;
  font-weight:750!important;
}
.machine-counter-form .counter-save-btn:hover{
  background:#e2edf6!important;
  color:#0b3558!important;
  border-color:#96b3ca!important;
  box-shadow:0 2px 6px rgba(11,53,88,.07)!important;
}

/* Historia realizacji: akcja na dole, po lewej, tak jak w sekcji Plany PM */
.machine-recent-work{
  display:flex;
  flex-direction:column;
}
.machine-recent-work .table-wrap{
  flex:1;
}
.machine-card-footer-action{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  padding-top:12px;
}
.machine-card-footer-action .machine-section-action{
  margin:0!important;
}

/* Ujednolicenie obu dolnych akcji karty maszyny */
.machine-card-footer-action .machine-section-action,
.machine-pm-card > .machine-section-action{
  min-height:34px!important;
  height:34px!important;
  padding:0 12px!important;
  background:#eaf2f8!important;
  color:#214f75!important;
  border:1px solid #b7cbdc!important;
  border-radius:7px!important;
  box-shadow:0 1px 2px rgba(11,53,88,.035)!important;
  font-size:9.5px!important;
  font-weight:700!important;
}
.machine-card-footer-action .machine-section-action:hover,
.machine-pm-card > .machine-section-action:hover{
  background:#dceaf4!important;
  color:#0b3558!important;
  border-color:#91aec5!important;
}

/* Na telefonie zapis odczytu zajmuje pełną szerokość formularza */
@media(max-width:760px){
  .machine-counter-form .counter-save-btn{
    width:100%!important;
    min-width:0!important;
  }
}


/* ============================================================
   ProMaintenance 4.0.32 — Harmonogram 12M compact proportions
   ============================================================ */

/* Obie karty nie są już sztucznie rozciągane do wysokości wyższej karty. */
.schedule-overview-grid{
  align-items:start!important;
}

/* Filtry mają wysokość wynikającą z treści, bez dużego pustego pola. */
.schedule-filter-panel{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
  padding:20px!important;
}
.schedule-filter-panel h2{
  margin:2px 0 3px!important;
}
.schedule-filter-panel > .muted{
  margin:0 0 14px!important;
}
.schedule-filter-column{
  gap:10px!important;
}
.schedule-filter-column label{
  display:grid!important;
  grid-template-columns:132px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  margin:0!important;
}
.schedule-filter-column label > select{
  width:100%!important;
  height:36px!important;
  min-height:36px!important;
}
.schedule-filter-legend{
  margin-top:14px!important;
  padding-top:12px!important;
  border-top:1px solid #e2e9f0!important;
}
.schedule-filter-legend .sched-legend{
  margin:0!important;
}

/* Podsumowanie pozostaje wizualnie mocniejsze, ale bez wpływu na wysokość filtrów. */
.schedule-summary-panel{
  align-self:start!important;
}

/* Tablet/mobile: wracamy do naturalnego układu pionowego. */
@media(max-width:900px){
  .schedule-filter-column label{
    grid-template-columns:1fr!important;
    gap:5px!important;
  }
}

/* 4.0.33 — KPI per maszyna: koszt kroczący 12M */
.rel-cost-12m{
  white-space:nowrap;
  font-weight:700;
  color:#29445f;
}
.rel-cost-12m .small{
  margin-top:2px;
  font-weight:500;
  white-space:nowrap;
}

/* 4.0.35 — dokumentacja techniczna */
.machine-doc-card .doc-row .row-actions,
.docs-modal .doc-row .row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.doc-preview-btn{background:#eef6ff!important;border-color:#c8def7!important;color:#174f86!important}
.doc-preview-btn:hover{background:#e2f0ff!important;border-color:#a9ccec!important;color:#103f70!important}


/* 4.0.36 — dokumentacja dostępna spójnie dla wszystkich ról */
.machine-doc-card .doc-row{
  align-items:center;
}
.machine-doc-card .doc-row .row-actions,
.docs-admin-list .doc-row .row-actions,
.docs-modal .doc-row .row-actions{
  min-width:148px;
}
.doc-preview-btn{
  min-width:82px!important;
}
.doc-info-modal{
  width:min(560px,92vw);
}
.doc-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:16px;
}
.doc-info-grid>div{
  padding:12px;
  border:1px solid #e0e7ee;
  border-radius:9px;
  background:#f8fafc;
}
.doc-info-grid .full{
  grid-column:1/-1;
}
.doc-info-grid span{
  display:block;
  color:#728399;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:4px;
}
.doc-info-grid p{
  margin:0;
  line-height:1.5;
}
.doc-info-note{
  color:#6d7e90;
  font-size:11px;
}
@media(max-width:700px){
  .doc-info-grid{grid-template-columns:1fr}
  .doc-info-grid .full{grid-column:auto}
  .machine-doc-card .doc-row{
    align-items:flex-start;
  }
  .machine-doc-card .doc-row .row-actions{
    width:100%;
    justify-content:flex-start!important;
    margin-top:8px;
  }
}


/* ============================================================
   ProMaintenance 4.0.37 — product identity / user header / about
   ============================================================ */

.brand{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
.brand-lockup{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
}
.brand-lockup .brand-logo{
  display:block;
  height:29px!important;
  width:auto!important;
  max-width:270px!important;
}
.brand-subtitle{
  margin-left:38px;
  color:#7890a8;
  font-size:8.5px;
  font-weight:720;
  letter-spacing:.065em;
  line-height:1.15;
  text-transform:uppercase;
  white-space:nowrap;
}

.top-user{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
}
.user-copy{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:2px!important;
  min-width:0;
}
.user-copy b{
  color:#17283b;
  font-size:11px!important;
  font-weight:780!important;
  line-height:1.15!important;
  white-space:nowrap;
}
.user-copy small{
  display:block!important;
  color:#8291a2!important;
  font-size:9.5px!important;
  font-weight:540!important;
  line-height:1.15!important;
  white-space:nowrap;
}

.top-info-btn{
  width:31px;
  height:31px;
  min-width:31px;
  padding:0;
  border-radius:50%;
  border:1px solid #ccd8e3;
  background:#fff;
  color:#46657f;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:all .15s ease;
}
.top-info-btn span{
  font-family:Georgia,serif;
  font-size:16px;
  font-weight:700;
  font-style:italic;
  line-height:1;
  transform:translateY(-.5px);
}
.top-info-btn:hover{
  background:#eef5fb;
  color:#0b3558;
  border-color:#a9bfd3;
  box-shadow:0 2px 6px rgba(11,53,88,.08);
}

.logout-btn{
  min-width:auto!important;
  height:35px!important;
  min-height:35px!important;
  padding:0 11px!important;
  gap:6px!important;
  background:#f7f9fb!important;
  border:1px solid #ccd8e3!important;
  color:#385873!important;
  border-radius:8px!important;
}
.logout-btn:hover{
  background:#eef4f9!important;
  border-color:#aec2d4!important;
  color:#0b3558!important;
}
.logout-svg{
  width:16px;
  height:16px;
  flex:none;
}

/* Sidebar as a full-height product rail with product footer fixed visually at the bottom. */
.side.desktop-nav{
  display:flex!important;
  flex-direction:column!important;
  min-height:calc(100vh - 64px);
  height:calc(100vh - 64px);
  position:sticky;
  top:64px;
  overflow:hidden!important;
}
.side-nav-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  scrollbar-width:none;
}
.side-nav-scroll::-webkit-scrollbar{display:none}
.side-product-footer{
  flex:none;
  border-top:1px solid rgba(255,255,255,.11);
  padding:12px 12px 14px;
  margin-top:10px;
  color:rgba(229,239,249,.72);
}
.side-version{
  color:#eef5fb;
  font-size:9.5px;
  font-weight:720;
  letter-spacing:.025em;
  margin-bottom:5px;
}
.side-copyright{
  font-size:8px;
  line-height:1.45;
  letter-spacing:.015em;
  text-transform:uppercase;
  color:rgba(218,232,245,.55);
}

/* About / product information modal */
.app-info-overlay{
  backdrop-filter:blur(3px);
}
.app-info-card{
  width:min(650px,92vw)!important;
  max-width:650px!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:18px!important;
  border:1px solid #d5dee7!important;
  box-shadow:0 24px 70px rgba(18,36,54,.22)!important;
}
.app-info-head{
  display:grid;
  grid-template-columns:230px 1fr;
  align-items:center;
  gap:20px;
  padding:24px 30px 22px;
  border-bottom:1px solid #e2e8ee;
}
.app-info-logo{
  width:220px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.app-info-head h2{
  margin:0 0 4px!important;
  color:#142238;
  font-size:22px!important;
  letter-spacing:-.02em;
}
.app-info-subtitle{
  color:#8b9bb0;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.35;
}
.app-info-x{
  color:#90a1b3!important;
  font-size:27px!important;
}
.app-info-body{
  padding:24px 34px 20px;
}
.app-info-row{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:18px;
  align-items:start;
  padding:7px 0;
}
.app-info-row>span{
  color:#627790;
  font-size:12px;
}
.app-info-row>b{
  color:#25364b;
  font-size:12px;
  font-weight:680;
  text-align:right;
}
.app-info-divider{
  height:1px;
  background:#e3e9ef;
  margin:14px 0 15px;
}
.app-info-legal{
  color:#60738a;
  font-size:11.5px;
  line-height:1.52;
  margin:0!important;
}
.app-info-foot{
  padding:16px 24px 18px;
  text-align:center;
  background:#f6f8fa;
  border-top:1px solid #e2e8ee;
  color:#8ca0b7;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.45;
}

/* Keep existing mobile navigation behavior; hide desktop product footer with sidebar. */
@media(max-width:1000px){
  .side.desktop-nav{display:none!important}
  .brand-subtitle{margin-left:25px;font-size:7.5px}
  .brand-lockup .brand-logo{height:27px!important;max-width:210px!important}
  .top-info-btn{width:30px;height:30px;min-width:30px}
}
@media(max-width:640px){
  .brand-subtitle{display:none}
  .user-copy b{font-size:10px!important;max-width:105px;overflow:hidden;text-overflow:ellipsis}
  .user-copy small{font-size:8.5px!important;max-width:105px;overflow:hidden;text-overflow:ellipsis}
  .top-info-btn{width:29px;height:29px;min-width:29px}
  .logout-btn{
    width:38px!important;
    min-width:38px!important;
    padding:0!important;
  }
  .logout-btn span{display:none}
  .logout-svg{width:17px;height:17px}
  .app-info-head{
    grid-template-columns:1fr;
    gap:10px;
    padding:22px;
  }
  .app-info-logo{width:205px}
  .app-info-body{padding:20px 22px}
  .app-info-row{grid-template-columns:1fr;gap:2px;padding:7px 0}
  .app-info-row>b{text-align:left}
}


/* ============================================================
   ProMaintenance 4.0.38 — identity layout corrections
   ============================================================ */

/* Logo + descriptor aligned as one lockup. */
.brand-lockup{
  display:inline-grid!important;
  grid-template-columns:auto!important;
  justify-items:center!important;
  align-items:center!important;
  row-gap:4px!important;
}
.brand-lockup .brand-logo{
  height:29px!important;
  width:auto!important;
  max-width:270px!important;
  margin:0!important;
}
.brand-subtitle{
  margin:0!important;
  padding:0!important;
  width:100%!important;
  text-align:center!important;
  color:#2e6fe8!important;
  font-size:8.7px!important;
  line-height:1!important;
  font-weight:820!important;
  letter-spacing:.11em!important;
  white-space:nowrap!important;
}

/* Info icon explicitly before user identity. */
.top-user{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
}
.top-info-btn{
  order:1!important;
}
.user-copy{
  order:2!important;
}
.logout-btn{
  order:3!important;
}

/* Sidebar no longer carries product copyright/version footer. */
.side.desktop-nav{
  display:block!important;
  min-height:calc(100vh - 64px)!important;
  height:auto!important;
  position:sticky;
  top:64px;
  overflow:visible!important;
}
.side-nav-scroll{
  overflow:visible!important;
}

/* Main column now owns global footer. */
.app-main-column{
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:calc(100vh - 64px);
}
.app-main-column .content{
  flex:1 0 auto;
}
.app-global-footer{
  flex:none;
  text-align:center;
  padding:20px 18px 24px;
  color:#8da0b4;
  font-size:9px;
  font-weight:800;
  line-height:1.55;
  letter-spacing:.085em;
  text-transform:uppercase;
  border-top:1px solid #e5eaf0;
  background:transparent;
}
.app-global-footer>div:first-child{
  color:#71869c;
}

/* Shell must keep sidebar + main column proportions. */
.shell{
  align-items:stretch!important;
}
.shell > .app-main-column{
  width:calc(100% - var(--sidebar-w, 260px));
  flex:1 1 auto;
}

/* Remove any legacy footer if cached styling remains. */
.side-product-footer,
.side-version,
.side-copyright{
  display:none!important;
}

@media(max-width:1000px){
  .shell > .app-main-column{
    width:100%;
  }
  .app-global-footer{
    padding-bottom:92px;
    font-size:8.5px;
  }
}

@media(max-width:640px){
  .brand-lockup{
    justify-items:start!important;
  }
  .brand-subtitle{
    display:block!important;
    font-size:6.8px!important;
    letter-spacing:.085em!important;
    text-align:center!important;
  }
}


/* ============================================================
   ProMaintenance 4.0.39 — header spacing, modal close, version footer
   ============================================================ */

/* Więcej oddechu między informacją, użytkownikiem i wylogowaniem */
.top-user{
  gap:0!important;
}
.top-info-btn{
  margin-right:16px!important;
}
.user-copy{
  margin-right:18px!important;
}
.logout-btn{
  margin-left:0!important;
}

/* Wyraźny X w oknie Informacje */
.app-info-x{
  position:absolute!important;
  top:14px!important;
  right:16px!important;
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#f7f9fb!important;
  border:1px solid #d5dfe8!important;
  color:#657b91!important;
  font-size:24px!important;
  line-height:1!important;
  cursor:pointer!important;
  z-index:4!important;
}
.app-info-x:hover{
  background:#edf3f8!important;
  color:#183e62!important;
  border-color:#b8c9d8!important;
}
.app-info-card{
  position:relative!important;
}
.app-info-actions{
  display:flex;
  justify-content:flex-end;
  padding:0 34px 18px;
}
.app-info-close-btn{
  min-width:104px!important;
}

/* Wersja systemu wraca na sam dół panelu menu */
.side.desktop-nav{
  display:flex!important;
  flex-direction:column!important;
  min-height:calc(100vh - 64px)!important;
  height:calc(100vh - 64px)!important;
  overflow:hidden!important;
}
.side-nav-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  scrollbar-width:none;
}
.side-nav-scroll::-webkit-scrollbar{display:none}
.side-system-version{
  flex:none;
  padding:13px 18px 15px;
  border-top:1px solid rgba(255,255,255,.10);
  text-align:left;
}
.side-system-name{
  color:rgba(241,247,252,.86);
  font-size:9.5px;
  font-weight:760;
  letter-spacing:.035em;
}
.side-system-build{
  margin-top:3px;
  color:rgba(209,225,239,.53);
  font-size:8px;
  font-weight:600;
  letter-spacing:.035em;
}

/* Globalny copyright — jedna linia, centralnie pod aplikacją */
.app-global-footer{
  text-align:center!important;
  padding:19px 18px 22px!important;
  color:#8397aa!important;
  font-size:9px!important;
  font-weight:780!important;
  line-height:1.3!important;
  letter-spacing:.065em!important;
  text-transform:uppercase!important;
  border-top:1px solid #e5eaf0!important;
  white-space:normal;
}

/* Utrzymanie proporcji nagłówka na mniejszych ekranach */
@media(max-width:1000px){
  .side.desktop-nav{display:none!important}
  .top-info-btn{margin-right:10px!important}
  .user-copy{margin-right:10px!important}
}
@media(max-width:640px){
  .top-info-btn{margin-right:8px!important}
  .user-copy{margin-right:8px!important}
  .app-info-actions{padding:0 22px 16px}
  .app-info-close-btn{width:100%!important}
  .app-global-footer{font-size:8px!important;padding-bottom:90px!important}
}


/* ============================================================
   ProMaintenance 4.0.40 — desktop content width correction
   ============================================================ */

/*
  .shell already defines two columns: sidebar + remaining space.
  The main column must therefore occupy 100% of the SECOND grid column.
  Subtracting sidebar width here a second time created the large empty
  area on the right.
*/
@media(min-width:1001px){
  .shell{
    display:grid!important;
    grid-template-columns:244px minmax(0,1fr)!important;
    width:100%!important;
    align-items:stretch!important;
  }

  .shell > .app-main-column{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    flex:none!important;
  }

  .app-main-column .content{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    box-sizing:border-box!important;
    padding-left:28px!important;
    padding-right:28px!important;
  }

  /* Page-level layouts should use all available workspace. */
  .app-main-column .page-head,
  .app-main-column .card,
  .app-main-column .grid-kpi,
  .app-main-column .two,
  .app-main-column .schedule-overview-grid{
    max-width:none;
  }

  .app-global-footer{
    width:100%!important;
    box-sizing:border-box!important;
  }
}

/* Comfortable gutters on very wide monitors, while still using the workspace. */
@media(min-width:1500px){
  .app-main-column .content{
    padding-left:36px!important;
    padding-right:36px!important;
  }
}



/* ============================================================
   ProMaintenance 4.0.42 — Operator work screen proportions
   ============================================================ */

/* On desktop the checklist should use the workspace instead of looking
   like a narrow phone mock-up in the middle of a large application. */
@media(min-width:1001px){
  .app-main-column .content > .phone{
    width:min(900px,100%)!important;
    max-width:900px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .app-main-column .content > .phone > h1{
    margin-bottom:14px!important;
  }

  .app-main-column .content > .phone > .card{
    width:100%!important;
    box-sizing:border-box!important;
    padding:22px 24px!important;
  }

  /* Use the wider card intelligently without making long text hard to read. */
  .app-main-column .content > .phone .task-main{
    max-width:760px;
  }
  .app-main-column .content > .phone .notice,
  .app-main-column .content > .phone .criteria-box,
  .app-main-column .content > .phone .task-info{
    width:100%;
    box-sizing:border-box;
  }

  .app-main-column .content > .phone .task-time-box{
    max-width:560px;
  }
}

/* Medium desktop / tablet landscape */
@media(min-width:761px) and (max-width:1000px){
  .phone{
    width:min(760px,100%)!important;
    max-width:760px!important;
  }
}

/* Phones retain the compact single-column operator view. */
@media(max-width:760px){
  .phone{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
}


/* ============================================================
   ProMaintenance 4.0.43 — task standard time + instruction panel
   ============================================================ */

.task-support-grid{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,.58fr);
  gap:14px;
  align-items:stretch;
  margin-top:14px;
}
.task-support-grid.time-only{
  grid-template-columns:minmax(260px,420px);
}
.task-standard-card,
.task-instruction-card{
  min-height:118px;
  border:1px solid #dce5ee;
  border-radius:11px;
  background:#f8fafc;
  box-sizing:border-box;
}
.task-standard-card{
  padding:16px 18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.task-standard-card>span,
.task-instruction-head span{
  color:#7689a0;
  font-size:10px;
  font-weight:650;
  line-height:1.2;
  margin-bottom:6px;
}
.task-standard-card>b{
  color:#17385e;
  font-size:22px;
  font-weight:820;
  line-height:1;
}
.task-instruction-card{
  padding:12px;
  display:grid;
  grid-template-columns:minmax(145px,190px) minmax(0,1fr);
  gap:14px;
  align-items:center;
  background:#fbfcfe;
}
.task-instruction-head{
  min-width:0;
  order:2;
}
.task-instruction-head span{
  display:block;
  margin-bottom:5px;
}
.task-instruction-head b{
  display:block;
  color:#233e59;
  font-size:12px;
  font-weight:760;
  line-height:1.35;
}
.task-instruction-media{
  order:1;
  width:100%;
  height:92px;
  border:1px solid #d8e2ec;
  border-radius:9px;
  overflow:hidden;
  background:#fff;
  display:block;
}
.task-instruction-media.image img,
.task-instruction-media.video video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#f3f6f9;
}
.task-instruction-media.image{
  cursor:zoom-in;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.task-instruction-media.image:hover{
  border-color:#9fb8d0;
  box-shadow:0 3px 10px rgba(11,53,88,.08);
}

/* If both image and video are attached, stack media cleanly. */
.task-instruction-card:has(.image + .video){
  grid-template-columns:repeat(2,minmax(120px,1fr)) minmax(150px,.9fr);
}
.task-instruction-card:has(.image + .video) .task-instruction-head{
  order:3;
}

/* The old duplicated standard-time box is no longer used in active tasks. */
.task-support-grid + .task-start-btn{
  margin-top:12px!important;
}

@media(max-width:760px){
  .task-support-grid,
  .task-support-grid.time-only{
    grid-template-columns:1fr!important;
    gap:10px;
  }
  .task-standard-card{
    min-height:82px;
    padding:13px 14px;
  }
  .task-standard-card>b{
    font-size:19px;
  }
  .task-instruction-card,
  .task-instruction-card:has(.image + .video){
    grid-template-columns:112px minmax(0,1fr)!important;
    min-height:104px;
    padding:10px;
    gap:11px;
  }
  .task-instruction-card:has(.image + .video){
    grid-template-columns:1fr 1fr!important;
  }
  .task-instruction-card:has(.image + .video) .task-instruction-head{
    grid-column:1/-1;
    order:1;
  }
  .task-instruction-media{
    height:82px;
  }
}


/* ============================================================
   ProMaintenance 4.0.44 — operator task context panel
   ============================================================ */
.task-context-panel{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.task-context-card{
  min-height:92px;
  padding:14px 15px;
  border:1px solid #dce5ee;
  border-radius:11px;
  background:#f8fafc;
  display:flex;
  align-items:center;
  gap:11px;
  box-sizing:border-box;
}
.task-context-icon{
  flex:0 0 34px;
  width:34px;height:34px;
  border-radius:9px;
  display:grid;place-items:center;
  background:#eaf3fb;
  color:#1f5f98;
  font-size:17px;
  font-weight:800;
}
.task-context-card>div{min-width:0}
.task-context-card small{
  display:block;
  color:#7689a0;
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  margin-bottom:6px;
}
.task-context-card b{
  display:block;
  color:#17385e;
  font-size:13px;
  font-weight:780;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.task-context-card:first-child b{font-size:21px;line-height:1}
.task-context-action{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 11px;
  border:1px solid #bcd2e7;
  border-radius:8px;
  background:#eef6fd;
  color:#205d91;
  font-size:10px;
  font-weight:800;
  letter-spacing:.03em;
  text-decoration:none;
}
.task-context-action:hover{background:#e3f0fb;border-color:#9fbfdd}
.task-context-muted{color:#7c8da0!important;font-weight:650!important}
@media(max-width:1050px){
  .task-context-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .task-context-panel{grid-template-columns:1fr;gap:8px}
  .task-context-card{min-height:72px;padding:11px 12px}
  .task-context-icon{flex-basis:31px;width:31px;height:31px}
}

/* ============================================================
   ProMaintenance 4.1.0 — Logic & Integrity Hardening
   ============================================================ */
.pm-outcome-preview{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:4px 12px;
  margin-top:14px;
  padding:12px 14px;
  border:1px solid #d9e3ec;
  border-radius:10px;
  background:#f8fafc;
}
.pm-outcome-preview span{
  color:#71849a;
  font-size:10px;
  font-weight:700;
}
.pm-outcome-preview b{
  color:#193a5d;
  font-size:13px;
}
.pm-outcome-preview small{
  grid-column:1/-1;
  color:#7a8999;
  line-height:1.4;
}

/* 4.1.1 — one executor / claim & handover workflow */
.claim-strip{
 display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:center;
 margin:10px 0;padding:10px 12px;border:1px solid #cfe0ef;border-radius:9px;background:#f2f8fd
}
.claim-strip span{font-size:9px;font-weight:800;letter-spacing:.06em;color:#4d789d}
.claim-strip b{font-size:11px;color:#183e62}
.claim-strip small{grid-column:1/-1;color:#71869a}
.issue-claim-btn{background:#e9f4ff!important;border-color:#b9d7f2!important;color:#155889!important}
.issue-claim-btn:hover{background:#dceeff!important;border-color:#9fc8eb!important}

/* 4.1.3 — subtitles for MTTR / MTBF KPI tiles */
.kpi .muted .kpi-subtitle,
.kpi-subtitle{
  display:block;
  margin-top:3px;
  font-size:9px;
  line-height:1.2;
  font-weight:600;
  color:#7a8ba0;
  letter-spacing:0;
  text-transform:none;
}

/* ============================================================
   ProMaintenance 4.1.4 — dashboard KPI typography
   ============================================================ */

/* Make KPI names such as "Realizacja PM", "Wykonane", "Po terminie"
   easier to scan without competing with the numerical value. */
.kpi > .muted,
.kpi .kpi-label,
.kpi-card > .muted,
.stat-card > .muted{
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:700!important;
  letter-spacing:.01em;
}

/* MTTR / MTBF: acronym on first line, explanation below. */
.kpi-main-label{
  display:block;
  font-size:13px;
  line-height:1.15;
  font-weight:800;
  color:inherit;
}
.kpi .kpi-subtitle,
.kpi-subtitle{
  display:block;
  margin-top:4px;
  font-size:10px!important;
  line-height:1.2!important;
  font-weight:600!important;
  color:#7a8ba0!important;
  letter-spacing:0!important;
  text-transform:none!important;
}


/* ============================================================
   ProMaintenance 4.1.5 — KPI labels, readable trend dates, PL strategies
   ============================================================ */

/* MTTR / MTBF tiles intentionally show abbreviations only. */
.tech-kpi .kpi-subtitle,
.tech-kpi .kpi-main-label{
  display:none!important;
}

/* 14-day fault trend: compact Polish-style dates and clean spacing. */
.trend-readable-dates{
  align-items:flex-end!important;
  gap:6px!important;
  padding-bottom:2px!important;
}
.trend-readable-dates .trend-col{
  min-width:0!important;
  flex:1 1 0!important;
}
.trend-readable-dates .trend-date{
  display:block!important;
  min-height:14px!important;
  margin-top:7px!important;
  color:#60758a!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:650!important;
  text-align:center!important;
  white-space:nowrap!important;
  letter-spacing:0!important;
}
.trend-readable-dates .trend-date-muted{
  color:#b4c0cb!important;
  font-size:8px!important;
}
.trend-readable-dates .trend-value{
  font-size:9px!important;
  margin-bottom:4px!important;
}

@media(max-width:760px){
  .trend-readable-dates{
    gap:3px!important;
    overflow-x:auto!important;
    padding-bottom:6px!important;
  }
  .trend-readable-dates .trend-col{
    min-width:28px!important;
  }
  .trend-readable-dates .trend-date{
    font-size:8px!important;
  }
}

/* ============================================================
   ProMaintenance 4.1.6 — adaptive large-screen workspace
   ============================================================ */
@media(min-width:1400px){
  .app-main-column .content{
    padding-left:clamp(30px,2.3vw,54px)!important;
    padding-right:clamp(30px,2.3vw,54px)!important;
  }
  /* Operational checklist: use more of the desktop workspace. */
  .app-main-column .content > .phone{
    width:min(1180px,100%)!important;
    max-width:1180px!important;
  }
  .app-main-column .content > .phone .task-main{max-width:1000px!important}
  .app-main-column .content > .phone .task-time-box{max-width:none!important}
}
@media(min-width:1800px){
  .app-main-column .content{
    padding-left:clamp(40px,2.6vw,72px)!important;
    padding-right:clamp(40px,2.6vw,72px)!important;
  }
  .app-main-column .content > .phone{
    width:min(1320px,100%)!important;
    max-width:1320px!important;
  }
  .card{padding:20px!important}
  .two{gap:20px!important}
  .grid-kpi{gap:16px!important}
}
@media(min-width:2200px){
  .shell{grid-template-columns:270px minmax(0,1fr)!important}
  .app-main-column .content{
    padding-left:72px!important;
    padding-right:72px!important;
  }
  .app-main-column .content > .phone{
    width:min(1480px,100%)!important;
    max-width:1480px!important;
  }
}


/* ============================================================
   ProMaintenance 4.1.7 — dashboard chart date labels fix
   ============================================================ */

.trend,
.trend-readable-dates{
  overflow:visible!important;
  padding-bottom:24px!important;
  min-height:210px!important;
}

.trend-col{
  overflow:visible!important;
  min-width:0!important;
}

.trend-col > span,
.trend-date{
  position:relative!important;
  display:block!important;
  margin-top:8px!important;
  min-height:18px!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  transform:none!important;
  writing-mode:horizontal-tb!important;
  font-size:9px!important;
  text-align:center!important;
}

.two > .card:has(.trend),
.card:has(.trend-readable-dates){
  overflow:visible!important;
  padding-bottom:18px!important;
}

@media(min-width:1200px){
  .trend-readable-dates{
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .trend-readable-dates .trend-col{
    min-width:30px!important;
  }
}

@media(max-width:900px){
  .trend,
  .trend-readable-dates{
    overflow-x:auto!important;
    overflow-y:visible!important;
    padding-bottom:26px!important;
  }
  .trend-readable-dates .trend-col{
    min-width:34px!important;
  }
}


/* ============================================================
   ProMaintenance 4.1.9 — Zlecenia UR: spójny układ kolumny Akcje
   ============================================================ */

.issue-table{
  table-layout:auto!important;
}

.issue-table th,
.issue-table td{
  vertical-align:top!important;
}

.issue-actions-head,
.issue-actions-cell{
  width:196px!important;
  min-width:196px!important;
}

.issue-actions-cell{
  padding-top:10px!important;
  padding-bottom:10px!important;
}

.issue-action-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  width:100%;
  align-content:start;
}

.issue-action-stack .issue-action-control,
.issue-action-stack .issue-claim-btn,
.issue-action-stack .issue-details-btn,
.issue-action-stack .compact-select{
  width:100%!important;
  min-width:0!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 10px!important;
  border-radius:8px!important;
  box-sizing:border-box!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.035em;
}

.issue-action-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  width:100%;
}

.issue-status-select{
  background:#fff!important;
  border:1px solid #cbd8e5!important;
  color:#284966!important;
}

.issue-status-select.is-disabled{
  background:#f5f7fa!important;
  color:#97a5b3!important;
  border-color:#e0e6ec!important;
  opacity:1!important;
  cursor:not-allowed!important;
}

.issue-status-static{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 8px;
  border:1px solid #d8e5dc;
  border-radius:8px;
  background:#f2f8f4;
  color:#3c7650;
  font-size:9px;
  font-weight:800;
  letter-spacing:.045em;
  text-align:center;
}

.issue-status-static.awaiting{
  border-color:#eadfbd;
  background:#fff9ea;
  color:#8c6b1f;
}

.issue-owner-hint{
  padding:7px 9px;
  border-radius:7px;
  background:#f7f9fb;
  color:#718296;
  font-size:9px;
  line-height:1.35;
  text-align:left;
}

.issue-owner-hint b{
  color:#405872;
  font-weight:700;
}

.issue-action-full{
  grid-column:1/-1;
}

.issue-details-btn{
  background:#eef5fb!important;
  border-color:#c5d8e9!important;
  color:#245779!important;
}

.issue-details-btn:hover{
  background:#e3f0fa!important;
  border-color:#abc9e0!important;
}

.issue-table tbody tr{
  border-bottom:1px solid #e8edf2!important;
}

.issue-table tbody tr:hover{
  background:#fbfcfd!important;
}

@media(max-width:1100px){
  .issue-actions-head,
  .issue-actions-cell{
    width:178px!important;
    min-width:178px!important;
  }
}

@media(max-width:760px){
  .issue-actions-head,
  .issue-actions-cell{
    width:auto!important;
    min-width:0!important;
  }
  .issue-action-pair{
    grid-template-columns:1fr 1fr;
  }
}

/* v4.1.11 — filtry Zleceń UR */
.issue-filter-card{margin-bottom:16px;padding:18px 20px}
.issue-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.issue-filter-count{white-space:nowrap;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#f7f9fc;font-size:13px}
.issue-filter-grid{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(180px,1.2fr) minmax(165px,1fr) minmax(145px,.85fr) minmax(145px,.85fr) auto;gap:10px;align-items:end}
.issue-filter-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.issue-filter-grid select,.issue-filter-grid input{width:100%;min-height:40px}
.issue-filter-reset{min-height:40px;white-space:nowrap}
@media(max-width:1180px){.issue-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){
 .issue-filter-head{display:block}.issue-filter-count{display:inline-block;margin-top:10px}
 .issue-filter-grid{grid-template-columns:1fr 1fr}
 .issue-filter-reset{grid-column:1/-1}
}
@media(max-width:480px){.issue-filter-grid{grid-template-columns:1fr}}

/* v4.1.12 — Dashboard i filtry Usprawnień */
.improvement-kpi-grid{margin-bottom:16px}
.improvement-filter-card{margin-bottom:16px;padding:18px 20px}
.improvement-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.improvement-filter-count{white-space:nowrap;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#f7f9fc;font-size:13px}
.improvement-filter-grid{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(150px,.9fr) minmax(170px,1fr) minmax(145px,.85fr) minmax(145px,.85fr) auto;gap:10px;align-items:end}
.improvement-filter-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.improvement-filter-grid select,.improvement-filter-grid input{width:100%;min-height:40px}
.improvement-filter-reset{min-height:40px;white-space:nowrap}
.improvement-status-select{min-width:150px}
@media(max-width:1180px){.improvement-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){
 .improvement-filter-head{display:block}.improvement-filter-count{display:inline-block;margin-top:10px}
 .improvement-filter-grid{grid-template-columns:1fr 1fr}
 .improvement-filter-reset{grid-column:1/-1}
}
@media(max-width:480px){.improvement-filter-grid{grid-template-columns:1fr}}

/* ============================================================
   ProMaintenance 4.1.13 — akcje Usprawnień jak w Zleceniach UR
   ============================================================ */
.improvement-table th:last-child,
.improvement-actions-cell{
  width:180px!important;
  min-width:180px!important;
}
.improvement-actions-cell{
  vertical-align:top!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
.improvement-action-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  width:100%;
}
.improvement-action-control,
.improvement-status-static{
  width:100%!important;
  min-width:0!important;
  min-height:34px!important;
  height:34px!important;
  box-sizing:border-box!important;
  border-radius:8px!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.035em;
}
.improvement-status-select{
  padding:0 10px!important;
  background:#fff!important;
  border:1px solid #cbd8e5!important;
  color:#284966!important;
}
.improvement-status-static{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  border:1px solid #d8e5dc;
  background:#f2f8f4;
  color:#3c7650;
  text-align:center;
}
.improvement-status-static.readonly{
  background:#f6f8fa;
  border-color:#e0e6ec;
  color:#75879a;
}
.improvement-details-btn{
  background:#eef5fb!important;
  border-color:#c5d8e9!important;
  color:#245779!important;
}
.improvement-details-btn:hover{
  background:#e3f0fa!important;
  border-color:#abc9e0!important;
}
.improvement-detail-modal{
  width:min(620px,92vw)!important;
}
.improvement-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:16px;
}
.improvement-detail-grid>div{
  padding:12px;
  border:1px solid #e0e7ee;
  border-radius:9px;
  background:#f8fafc;
}
.improvement-detail-grid .full{grid-column:1/-1}
.improvement-detail-grid span{
  display:block;
  color:#728399;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:5px;
}
.improvement-detail-grid p{
  margin:0;
  line-height:1.5;
  color:#344a61;
}
@media(max-width:760px){
  .improvement-table th:last-child,
  .improvement-actions-cell{width:auto!important;min-width:150px!important}
  .improvement-detail-grid{grid-template-columns:1fr}
  .improvement-detail-grid .full{grid-column:auto}
}

/* 4.1.14 — filtrowanie Usprawnień na samej górze */
.improvement-filter-card{
  margin-top:0!important;
  margin-bottom:16px!important;
}
.improvement-filter-card + .page-head{
  margin-top:0!important;
}

/* 4.1.15 — szczegóły Usprawnienia: X + decyzja Administratora */
.improvement-detail-modal{
  position:relative!important;
}
.improvement-modal-x{
  position:absolute!important;
  top:14px!important;
  right:14px!important;
  z-index:5!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:34px!important;
  height:34px!important;
  border:1px solid #d8e2ec!important;
  border-radius:50%!important;
  background:#f8fafc!important;
  color:#6e8195!important;
  font-size:23px!important;
  font-weight:300!important;
  line-height:1!important;
  cursor:pointer!important;
}
.improvement-modal-x:hover{
  background:#eef4f9!important;
  color:#274c6d!important;
}
.improvement-decision-select{
  background:#fff8e9!important;
  border-color:#e8d39a!important;
  color:#8b6416!important;
}

/* 4.1.16 — edycja usprawnień przez Administratora */
.improvement-edit-btn{
  background:#eef5fb!important;
  border-color:#c5d8e9!important;
  color:#245779!important;
}
.improvement-edit-btn:hover{
  background:#e3f0fa!important;
  border-color:#abc9e0!important;
}
.improvement-edit-modal{
  position:relative!important;
  width:min(680px,92vw)!important;
  max-height:84vh!important;
  overflow:auto!important;
}
.improvement-edit-form{
  margin-top:16px;
}
.improvement-edit-form textarea{
  min-height:86px;
  resize:vertical;
}
.improvement-edit-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:8px;
}
.improvement-edit-actions .btn{
  min-width:150px;
}

/* 4.1.17 — wymagane uzasadnienie odrzucenia usprawnienia */
.improvement-rejection-comment{
  border-color:#efc4bf!important;
  background:#fff5f3!important;
}
.improvement-rejection-comment span{color:#a23b32!important;}
.improvement-rejection-comment p{color:#702c27!important;font-weight:600;}


/* ============================================================
   ProMaintenance 4.1.18 — Usprawnienia: 4 kafelki w rzędzie
   ============================================================ */
.improvement-kpi-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
}
.improvement-kpi-grid .kpi{
  min-width:0!important;
  height:100%!important;
  margin:0!important;
}
.improvement-kpi-grid .kpi .muted{
  min-height:30px;
  display:flex;
  align-items:flex-end;
}

@media(max-width:1100px){
  .improvement-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:560px){
  .improvement-kpi-grid{
    grid-template-columns:1fr!important;
  }
}


/* ProMaintenance 4.2.1 — przycisk rozpoczęcia czynności */
.task-start-btn{
  background:#edf8f2 !important;
  border-color:#b9dfc9 !important;
  color:#1f6b45 !important;
  font-weight:700;
}
.task-start-btn:hover{
  background:#e2f4ea !important;
  border-color:#9fd2b4 !important;
}


/* ============================================================
   ProMaintenance 5.0.3 — TYPOGRAFIA DLA DUŻYCH ROZDZIELCZOŚCI
   Zmiana wyłącznie wielkości tekstu. Bez zmiany geometrii UI.
   ============================================================ */
@media (min-width:1600px){
  body{font-size:15px}

  h1{font-size:30px}
  h2{font-size:22px}
  h3{font-size:17px}

  .side button{
    font-size:14px;
  }
  .nav-label{
    font-size:14px;
  }

  .table th{
    font-size:12px;
  }
  .table td{
    font-size:14.5px;
  }

  .small{
    font-size:13px;
  }
  .muted{
    font-size:14px;
  }

  .form label{
    font-size:14px;
  }
  .form input,
  .form select,
  .form textarea,
  input,
  select,
  textarea{
    font-size:14.5px;
  }

  .kpi .muted{
    font-size:13px;
  }
  .kpi .v{
    font-size:30px;
  }

  .badge{
    font-size:12px;
  }

  .btn,
  .compact-select{
    font-size:11.5px !important;
  }

  .user-copy b{
    font-size:13px;
  }
  .user-copy small{
    font-size:11px;
  }

  .side-system-name{
    font-size:12px;
  }
  .side-system-build{
    font-size:11px;
  }
}

@media (min-width:2200px){
  body{font-size:16px}

  h1{font-size:32px}
  h2{font-size:23px}
  h3{font-size:18px}

  .side button,
  .nav-label{
    font-size:15px;
  }

  .table th{
    font-size:13px;
  }
  .table td{
    font-size:15.5px;
  }

  .small{
    font-size:13.5px;
  }
  .muted{
    font-size:15px;
  }

  .form label{
    font-size:14.5px;
  }
  .form input,
  .form select,
  .form textarea,
  input,
  select,
  textarea{
    font-size:15.5px;
  }

  .kpi .muted{
    font-size:14px;
  }
  .kpi .v{
    font-size:32px;
  }

  .badge{
    font-size:13px;
  }

  .btn,
  .compact-select{
    font-size:12.5px !important;
  }

  .user-copy b{
    font-size:14px;
  }
  .user-copy small{
    font-size:12px;
  }
}


/* 6.1.3 — QR actions: one row on desktop */
.qr-panel .qr-action-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  width:100%;
  align-items:stretch;
  justify-content:stretch;
}
.qr-panel .qr-action-row .btn{
  width:100%;
  min-width:0;
  margin:0;
  white-space:nowrap;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding-left:10px;
  padding-right:10px;
}
@media(max-width:900px){
  .qr-panel .qr-action-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .qr-panel .qr-action-row{grid-template-columns:1fr}
}


/* 6.1.4 — stable Administrator "Dodaj czynność" form */
.task-create-box{background:#fff;border:1px dashed #b8c7dc;border-radius:14px;padding:18px;margin:14px 0;overflow:hidden}
.task-create-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.task-create-head h3{margin:0 0 4px;font-size:18px}.task-create-head p{margin:0}
.task-create-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.task-create-grid>label,.task-measure-grid>label,.task-safety-note{display:grid;gap:6px;min-width:0}
.task-create-grid input:not([type="checkbox"]):not([type="file"]),.task-create-grid select,.task-create-grid textarea{width:100%;min-width:0}
.task-full{grid-column:1/-1}
.task-options-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.task-check{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;min-height:44px;margin:0!important;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;line-height:1.25}
.task-check input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;flex:0 0 18px!important;margin:0!important;padding:0!important}
.task-check span{min-width:0;font-size:13px;font-weight:650}
.task-safety-box{padding:14px!important;border:1px solid #efd59a!important;background:#fffaf0!important;border-radius:12px!important}
.task-section-title{font-size:14px;font-weight:800;margin-bottom:10px}
.task-safety-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.task-safety-grid .task-check{background:#fff;border-color:#eadbb9}
.task-safety-note{margin-top:2px}
.task-measure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.task-create-actions{display:flex;justify-content:flex-start;padding-top:2px}.task-create-actions .btn{min-width:160px}
@media(max-width:900px){.task-safety-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.task-create-head{flex-direction:column}.task-create-grid{grid-template-columns:1fr}.task-full{grid-column:auto}.task-options-row,.task-measure-grid,.task-safety-grid{grid-template-columns:1fr}.task-create-actions .btn{width:100%}}


/* 6.1.5 — measurement fields belong to "Wymagany pomiar" */
.task-measurement-option{
  display:grid;
  grid-template-columns:minmax(180px,auto) minmax(0,1fr);
  gap:12px;
  align-items:start;
  min-width:0;
}
.task-measure-inline{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:10px;
  border:1px dashed var(--line-strong);
  border-radius:10px;
  background:#f8fafc;
  opacity:.55;
}
.task-measure-inline.is-active{
  opacity:1;
  border-style:solid;
  border-color:#bfd3ee;
  background:#f5f9ff;
}
.task-measure-inline label{
  display:grid;
  gap:5px;
  min-width:0;
  font-size:12px;
  font-weight:650;
}
.task-measure-inline input{
  width:100%;
  min-width:0;
}
.task-measure-inline input:disabled{
  background:#eef1f5;
  color:#8793a3;
  cursor:not-allowed;
}
@media(max-width:980px){
  .task-measurement-option{grid-template-columns:1fr}
}
@media(max-width:760px){
  .task-measure-inline{grid-template-columns:1fr}
}


/* 6.1.6 — karta maszyny: czysty QR + aktualny stały identyfikator */
.machine-header-qr-clean{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.machine-header-qr-clean .qr-large-header{
  margin:0;
}
.machine-qr-asset-id{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-align:center;
  line-height:1.25;
}
.machine-qr-asset-id b{
  font-size:13px;
  color:var(--text);
  letter-spacing:.02em;
}
.machine-qr-asset-id span{
  font-size:11px;
  color:var(--muted);
}

/* 6.1.7 — rozwijane definicje KPI */
.kpi-definitions-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:18px;font-weight:750;text-align:left;cursor:pointer}
.kpi-definitions-chevron{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border:1px solid var(--line);border-radius:9px;background:#f7faff;font-size:20px;line-height:1}
.kpi-definitions-toggle:not([aria-expanded="true"]) ~ *{display:none}
.kpi-definitions-toggle[aria-expanded="true"]{margin-bottom:10px}

/* 6.1.8 — Niezawodność: mobilny układ KPI bez pustych pól */
@media(max-width:760px){
  .reliability-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .reliability-kpi-grid>.kpi{min-width:0;width:100%}
  .reliability-kpi-grid>.kpi:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:420px){
  .reliability-kpi-grid{grid-template-columns:1fr!important}
  .reliability-kpi-grid>.kpi:last-child:nth-child(odd){grid-column:auto}
}

/* 6.1.9 — Usprawnienia: 8 kafelków KPI na telefonie w układzie 2 x 4 */
@media(max-width:760px){
  .improvement-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  .improvement-kpi-grid > .kpi{
    min-width:0;
    width:100%;
  }
  .improvement-kpi-grid .kpi .v{
    font-size:22px;
  }
}

/* 6.2.3 — Analiza awarii / Pareto */
.failure-analysis-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
.pareto-controls{
 display:flex !important;
 grid-template-columns:none !important;
 gap:22px !important;
 align-items:center;
 justify-content:flex-start;
 margin-top:16px;
 margin-bottom:20px;
}
.pareto-controls .btn{flex:0 0 auto;min-width:138px;}
@media(max-width:900px){
 .failure-analysis-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .pareto-controls{gap:12px !important;flex-wrap:wrap;}
}

/* 6.2.4 — Zlecenia UR: workflow + spójne filtry */
.ur-workflow-line{
  white-space:nowrap;
  max-width:none;
  overflow:visible;
}

/* Wszystkie pola w panelu Filtrowanie zleceń UR mają tę samą wysokość. */
.issues-filters select,
.issues-filters input,
.issues-filters button,
.issue-filters select,
.issue-filters input,
.issue-filters button,
.filter-bar select,
.filter-bar input,
.filter-bar button{
  min-height:42px;
  height:42px;
  box-sizing:border-box;
}

@media(max-width:1100px){
  .ur-workflow-line{
    white-space:normal;
  }
}

.ur-filter-card select,
.ur-filter-card input,
.ur-filter-card .btn,
.ur-filter-card button{
  height:42px !important;
  min-height:42px !important;
  box-sizing:border-box;
  line-height:normal;
}


/* 6.2.5 — Analiza awarii / Pareto: układ mobilny */
@media(max-width:760px){
  .failure-analysis-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  .failure-analysis-kpi-grid > .kpi{
    min-width:0;
    width:100%;
  }
  .failure-analysis-kpi-grid > .kpi:last-child{
    grid-column:1 / -1;
  }

  .pareto-controls{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
    flex-wrap:nowrap !important;
    width:100%;
    margin-top:14px;
    margin-bottom:18px;
  }
  .pareto-controls .btn{
    width:100% !important;
    min-width:0 !important;
    padding:10px 6px !important;
    font-size:11px !important;
    white-space:nowrap;
  }
}

/* 7.0.2 — pilot: eskalacje i analityka kosztów */
.manager-escalation-card{margin-top:16px}
.reliability-cost-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.reliability-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.reliability-cost-grid{grid-template-columns:1fr}}

/* ProMaintenance header branding */
.brand-lockup .brand-logo{
  height:38px !important;
  max-width:285px !important;
  width:auto !important;
}

.brand-subtitle{
  color:#FF751F !important;
  font-size:9px !important;
  font-weight:700 !important;
  letter-spacing:1.5px !important;
  margin-left:30px !important;
  margin-top:2px !important;
}

@media(max-width:640px){
  .brand-lockup .brand-logo{
    height:29px !important;
    max-width:220px !important;
  }

  .brand-subtitle{
    font-size:7.5px !important;
    margin-left:25px !important;
  }
}

/* FINAL — branding nagłówka ProMaintenance */
.brand-lockup{
  display:flex !important;
  align-items:center !important;
  height:100% !important;
}

.brand-lockup .brand-logo{
  width:310px !important;
  max-width:310px !important;
  height:72px !important;
  object-fit:contain !important;
  object-position:left center !important;
  margin:0 !important;
}

.top{
  min-height:106px !important;
  padding-top:14px !important;
  padding-bottom:14px !important;
}

.brand-subtitle{
  display:none !important;
}

@media(max-width:640px){
  .brand-lockup .brand-logo{
    width:220px !important;
    max-width:220px !important;
    height:54px !important;
  }

  .top{
    min-height:82px !important;
  }
}

/* PM — przekazanie / zwolnienie przeglądu */
.work-transfer-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  width:100%;
  margin-top:10px;
}

.work-transfer-actions .btn{
  width:100%;
  margin:0;
}

@media(max-width:420px){
  .work-transfer-actions{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
}

/* Zadania PM — nadrzędne akcje Kierownika/Administratora */
.task-list-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  align-items:center;
}

.task-list-actions .btn{
  margin:0;
}

@media(max-width:640px){
  .task-list-actions{
    width:100%;
    justify-content:stretch;
  }

  .task-list-actions .btn{
    flex:1 1 auto;
  }
}

/* Zadania PM — aktualny wykonawca */
.task-owner-info{
  margin-top:7px;
  color:var(--muted);
}

.task-owner-info b{
  color:var(--text);
}

/* Zadania PM — układ desktop/mobile */
.pm-task-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:start;
}

.pm-task-main{
  min-width:0;
}

.pm-task-status{
  justify-self:end;
  align-self:start;
}

.pm-task-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  margin-top:14px;
}

.pm-task-actions .btn{
  margin:0;
  min-width:118px;
}

@media (min-width:641px){
  .pm-task-actions{
    grid-column:1 / -1;
  }

  .pm-task-main{
    display:grid;
    grid-template-columns:minmax(0,1fr);
  }

  .pm-task-status{
    position:absolute;
    top:14px;
    right:16px;
  }

  .pm-task-actions{
    padding-right:0;
  }
}

@media (max-width:640px){
  .pm-task-card{
    display:block;
    padding-top:44px;
  }

  .pm-task-status{
    position:absolute;
    top:12px;
    right:12px;
  }

  .pm-task-actions{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:12px;
    width:100%;
  }

  .pm-task-actions .btn{
    min-width:0;
    width:100%;
    padding-left:8px;
    padding-right:8px;
  }
}

/* PM — jednolite akcje zarządcze */
.pm-task-actions .btn{
  background:#eef6ff;
  border-color:#bfd5ea;
  color:#245b89;
}

.pm-task-actions .btn:hover{
  background:#e3f0fc;
}

@media(min-width:641px){
  .pm-task-actions{
    justify-content:flex-end;
  }

  .pm-task-actions .btn{
    min-width:122px;
  }
}

@media(max-width:640px){
  .pm-task-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  /* Gdy są tylko WYKONAJ + PRZYPISZ */
  .pm-task-actions:has(.btn:nth-child(2):last-child){
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* ============================================================
   ProMaintenance — dashboard fault charts / risk layout 2026-08-18
   ============================================================ */

.dashboard-bottom-two{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(260px,0.95fr);
  gap:16px;
  margin-top:16px;
  align-items:stretch;
}

.dashboard-fault-card,
.dashboard-risk-card{
  min-height:390px;
  overflow:hidden!important;
}

.dashboard-chart-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}
.dashboard-chart-head h2{margin-bottom:4px}
.dashboard-chart-legend{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  color:#526a83;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
.dashboard-chart-legend span{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#2f78d5;
  box-shadow:0 0 0 3px rgba(47,120,213,.08);
}

.pm-fault-chart{
  display:grid;
  width:100%;
  height:305px;
  min-height:305px;
  align-items:stretch;
  overflow:visible;
  padding:4px 8px 0;
  border-bottom:1px solid #d8e1eb;
}
.pm-fault-chart-monthly{
  grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:9px;
}
.pm-fault-chart-daily{
  grid-template-columns:repeat(30,minmax(0,1fr));
  column-gap:2px;
  padding-left:2px;
  padding-right:2px;
}

.pm-fault-col{
  min-width:0;
  height:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) 46px;
  align-items:stretch;
}
.pm-fault-chart-monthly .pm-fault-col{
  grid-template-rows:minmax(0,1fr) 28px;
}

.pm-fault-plot{
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  position:relative;
  border-bottom:1px solid #e5ebf2;
}
.pm-fault-value{
  min-height:18px;
  margin:0 0 5px;
  color:#304a67;
  font-size:10px;
  line-height:1;
  font-weight:800;
  font-variant-numeric:tabular-nums;
}
.pm-fault-bar{
  width:min(38px,68%);
  min-height:2px;
  max-height:215px;
  background:linear-gradient(180deg,#4b8be2,#2468c9);
  border-radius:6px 6px 1px 1px;
}
.pm-fault-chart-daily .pm-fault-bar{
  width:min(13px,72%);
  max-height:210px;
  border-radius:4px 4px 1px 1px;
}

.pm-fault-date{
  color:#58708a;
  font-size:9.5px;
  line-height:1;
  font-weight:650;
  text-align:center;
  white-space:nowrap;
  align-self:start;
  justify-self:center;
  padding-top:9px;
  font-variant-numeric:tabular-nums;
}
.pm-fault-chart-daily .pm-fault-date{
  font-size:8px;
  transform:rotate(-45deg);
  transform-origin:top center;
  padding-top:8px;
  letter-spacing:-.01em;
}

.dashboard-risk-card{
  min-width:0;
}
.dashboard-risk-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
}
.dashboard-risk-card .risk{
  margin:0;
  padding:10px 11px;
  min-height:58px;
}
.dashboard-risk-card .risk b{font-size:13px}
.dashboard-risk-card .risk .small{font-size:10px;line-height:1.25}
.dashboard-risk-card .risk-score{font-size:18px}

@media(max-width:1180px){
  .dashboard-bottom-two{
    grid-template-columns:minmax(0,2.25fr) minmax(250px,1fr);
  }
}

@media(max-width:1000px){
  .dashboard-bottom-two{
    grid-template-columns:1fr;
  }
  .dashboard-fault-card,
  .dashboard-risk-card{
    min-height:auto;
  }
  .pm-fault-chart{
    overflow-x:auto;
    min-width:760px;
  }
  .dashboard-risk-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .dashboard-chart-head{
    flex-direction:column;
    gap:8px;
  }
  .dashboard-risk-list{
    grid-template-columns:1fr;
  }
  .pm-fault-chart-daily{
    min-width:900px;
  }
}


/* ============================================================
   Dashboard UR — finalne skalowanie wykresu usterek
   30d / 3m / 6m / 12m
   ============================================================ */
.dashboard-bottom-two{
  display:grid!important;
  grid-template-columns:minmax(0,4fr) minmax(235px,1fr)!important;
  gap:16px!important;
  align-items:stretch!important;
}
.dashboard-fault-card{
  min-width:0!important;
  height:410px!important;
  min-height:410px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.dashboard-risk-card{
  min-width:0!important;
  height:410px!important;
  min-height:410px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.dashboard-risk-list{
  min-height:0!important;
  overflow-y:auto!important;
  padding-right:3px!important;
  scrollbar-width:thin;
}
.pm-fault-chart{
  flex:1 1 auto!important;
  display:grid!important;
  grid-template-columns:repeat(var(--fault-cols),minmax(0,1fr))!important;
  column-gap:clamp(3px,.65vw,11px)!important;
  width:100%!important;
  height:310px!important;
  min-height:310px!important;
  padding:8px 10px 0!important;
  overflow:hidden!important;
  border-bottom:0!important;
}
.pm-fault-col{
  min-width:0!important;
  height:100%!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) 40px!important;
}
.pm-fault-chart-monthly .pm-fault-col{
  grid-template-rows:minmax(0,1fr) 30px!important;
}
.pm-fault-plot{
  min-height:0!important;
  height:100%!important;
  border-bottom:1px solid #dbe4ee!important;
}
.pm-fault-bar{
  width:min(44px,68%)!important;
  max-height:none!important;
}
.pm-fault-chart-daily .pm-fault-bar{
  width:min(16px,68%)!important;
  max-height:none!important;
}
.pm-fault-bar.is-zero{
  height:2px!important;
  min-height:2px!important;
  border-radius:2px!important;
}
.pm-fault-value{
  flex:0 0 auto!important;
  margin-bottom:5px!important;
}
.pm-fault-date{
  padding-top:9px!important;
  font-size:10px!important;
  line-height:1!important;
}
.pm-fault-chart-daily .pm-fault-date{
  font-size:9px!important;
  transform:rotate(-45deg)!important;
  transform-origin:top center!important;
  padding-top:8px!important;
}
.pm-fault-date-hidden{
  visibility:hidden!important;
}
.dashboard-risk-card .risk{
  min-height:54px!important;
  padding:8px 10px!important;
}
.dashboard-risk-card .risk b{font-size:12.5px!important}
.dashboard-risk-card .risk .small{font-size:9.5px!important}
.dashboard-risk-card .risk-score{font-size:17px!important}

@media(max-width:1180px){
  .dashboard-bottom-two{
    grid-template-columns:minmax(0,3fr) minmax(235px,1fr)!important;
  }
}
@media(max-width:1000px){
  .dashboard-bottom-two{grid-template-columns:1fr!important}
  .dashboard-fault-card,.dashboard-risk-card{
    height:auto!important;
    min-height:390px!important;
  }
  .pm-fault-chart{
    min-width:0!important;
    overflow:hidden!important;
  }
  .dashboard-risk-card{max-height:410px!important}
}


/* ============================================================
   Dashboard — profesjonalny wykres usterek
   ============================================================ */
.dashboard-fault-card,
.dashboard-fault-card-full{
  min-height:340px!important;
  height:auto!important;
  overflow:hidden!important;
}

.dashboard-chart-head{
  margin-bottom:14px!important;
}

.pm-fault-chart-pro{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:8px;
  width:100%;
  height:255px;
  min-height:255px;
  margin-top:4px;
  overflow:visible;
  font-variant-numeric:tabular-nums;
}

.pm-fault-yaxis{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-end;
  padding:7px 0 34px;
  color:#8797aa;
  font-size:9px;
  font-weight:650;
  line-height:1;
}

.pm-fault-plotarea{
  position:relative;
  min-width:0;
  height:100%;
}

.pm-fault-gridline{
  position:absolute;
  left:0;
  right:0;
  height:1px;
  background:#e8edf3;
  z-index:0;
}
.pm-fault-gridline.top{top:8px}
.pm-fault-gridline.mid{top:50%;opacity:.75}
.pm-fault-gridline.base{bottom:35px;background:#d9e2ec}

.pm-fault-columns{
  position:absolute;
  inset:0 0 0 0;
  display:grid;
  grid-template-columns:repeat(var(--fault-cols),minmax(0,1fr));
  gap:3px;
  align-items:stretch;
  z-index:1;
}

.pm-fault-column{
  min-width:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) 35px;
  align-items:stretch;
}

.pm-fault-column-plot{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  min-height:0;
  padding:18px 0 0;
}

.pm-fault-bar-pro{
  width:min(12px,55%);
  max-width:12px;
  min-height:4px;
  background:var(--blue);
  border-radius:4px 4px 1px 1px;
  box-shadow:0 1px 2px rgba(23,105,224,.12);
}
.pm-fault-bar-pro.is-zero{
  height:0!important;
  min-height:0!important;
  width:0!important;
  box-shadow:none!important;
}

.pm-fault-point-value{
  margin-bottom:5px;
  color:#253b56;
  font-size:10px;
  line-height:1;
  font-weight:800;
}
.pm-fault-zero{
  position:absolute;
  bottom:5px;
  color:#8fa0b2;
  font-size:8px;
  line-height:1;
  font-weight:650;
}

.pm-fault-date-pro{
  align-self:start;
  justify-self:center;
  padding-top:9px;
  color:#64788f;
  font-size:9px;
  line-height:1;
  font-weight:650;
  white-space:nowrap;
}
.pm-fault-date-pro.is-hidden{
  visibility:hidden;
}

.pm-fault-chart-pro.is-daily .pm-fault-date-pro{
  transform:rotate(-42deg);
  transform-origin:top center;
  font-size:8.5px;
}
.pm-fault-chart-pro.is-monthly .pm-fault-bar-pro{
  width:min(24px,48%);
  max-width:24px;
}
.pm-fault-chart-pro.is-monthly .pm-fault-date-pro{
  font-size:9.5px;
}

/* pełna szerokość wykresu na dole dashboardu */
.dashboard-fault-card-full .pm-fault-chart-pro{
  height:270px;
  min-height:270px;
}

@media(max-width:1000px){
  .pm-fault-chart-pro{
    height:240px;
    min-height:240px;
  }
}

@media(max-width:640px){
  .pm-fault-chart-pro{
    grid-template-columns:28px minmax(780px,1fr);
    overflow-x:auto;
  }
  .dashboard-fault-card,
  .dashboard-fault-card-full{
    overflow-x:auto!important;
  }
}


/* ============================================================
   Desktop header quick actions — Konto / Administracja
   Mobile bez zmian
   ============================================================ */
@media(min-width:1001px){
  .top-user{
    display:flex;
    align-items:center;
    gap:12px;
  }
  .top-quick-actions{
    display:flex;
    align-items:center;
    gap:8px;
    margin-right:8px;
    flex:0 0 auto;
  }
  .top-quick-actions .top-info-btn{
    margin-right:0!important;
  }
  .top-header-icon{
    width:34px;
    height:34px;
    border-radius:50%;
    border:1px solid #cfe0f1;
    background:#fff;
    color:#245c92;
    display:grid;
    place-items:center;
    padding:0;
    cursor:pointer;
    font-size:15px;
    line-height:1;
    box-shadow:0 1px 3px rgba(13,38,76,.04);
  }
  .top-header-icon:hover{
    background:#f4f8fc;
    border-color:#a9c8e6;
  }

  /* Na komputerze Konto i Administracja są tylko w prawym górnym rogu. */
  .desktop-nav button[data-args*='"account"'],
  .desktop-nav button[data-args*='"admin"']{
    display:none!important;
  }
}

/* Na telefonie zachowujemy dotychczasowe menu i nie pokazujemy nowych ikon. */
@media(max-width:1000px){
  .top-header-icon{
    display:none!important;
  }
  .top-quick-actions{
    display:contents;
  }
}


/* ============================================================
   UI zgodne z referencją — ikony Dashboard / sidebar / header
   ============================================================ */
.side .nav-icon{
  display:inline-grid;
  place-items:center;
  width:18px;
  min-width:18px;
  margin-right:10px;
  font-size:14px;
  font-weight:850;
  color:#dceaff;
}
.side button.active{
  background:#fff!important;
  color:#173a63!important;
}
.side button.active .nav-icon,
.side button.active .nav-label{color:#173a63!important}

/* nagłówek desktop: i → konto → administracja → użytkownik → wyloguj */
@media(min-width:1001px){
  .top-user{display:flex!important;align-items:center!important;gap:12px!important}
  .top-quick-actions{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    margin-right:6px!important;
  }
  .top-info-btn,
  .top-header-icon{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    border-radius:50%!important;
    border:1px solid #cbdced!important;
    background:#fff!important;
    color:#173a63!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    box-shadow:none!important;
    cursor:pointer!important;
  }
  .top-info-btn span{font-size:17px!important;font-family:Georgia,serif;font-weight:700}
  .top-header-icon svg{
    width:20px!important;
    height:20px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }
  .top-info-btn:hover,.top-header-icon:hover{
    background:#f4f8fc!important;
    border-color:#9cbfdf!important;
  }
  .desktop-nav button[data-args*='"account"'],
  .desktop-nav button[data-args*='"admin"']{
    display:none!important;
  }
}

/* telefon pozostaje bez zmian */
@media(max-width:1000px){
  .top-header-icon{display:none!important}
  .top-quick-actions{display:contents!important}
}

/* KPI dashboard z ikonami jak w referencji */
.dashboard-kpi{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  min-height:76px!important;
  padding:12px 14px!important;
}
.dashboard-kpi-icon{
  flex:0 0 40px;
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#eef5ff;
  color:#1769e0;
  font-size:23px;
  font-weight:850;
  line-height:1;
}
.dashboard-kpi.red .dashboard-kpi-icon{
  color:#db3a34;
  background:#fff0ef;
}
.dashboard-kpi.amber .dashboard-kpi-icon{
  color:#e7a310;
  background:#fff6e5;
}
.dashboard-kpi-copy{min-width:0}
.dashboard-kpi .muted{
  font-size:12px!important;
  font-weight:700!important;
  color:#65758b!important;
}
.dashboard-kpi .v{
  font-size:20px!important;
  line-height:1.1!important;
  margin-top:3px!important;
}


/* ============================================================
   Dashboard KPI — wyśrodkowana zawartość
   ============================================================ */
.dashboard-kpi{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:12px!important;
}

.dashboard-kpi-copy{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}

.dashboard-kpi .muted,
.dashboard-kpi .v{
  width:100%!important;
  text-align:center!important;
}

.dashboard-kpi-icon{
  display:grid!important;
  place-items:center!important;
  align-self:center!important;
}

/* Na węższych kafelkach zachowujemy czytelność dłuższych nazw */
.dashboard-kpi .muted{
  line-height:1.2!important;
}

@media(max-width:1000px){
  /* Zachowujemy układ responsywny, ale również centralne wyrównanie KPI */
  .dashboard-kpi{
    justify-content:center!important;
    text-align:center!important;
  }
}


/* ============================================================
   FINAL — Zadania PM: identyczne odstępy zaległe / bieżąca zmiana
   ============================================================ */
.overdue-section,
.carryover-section,
.carryover-list,
.current-shift-section,
.current-shift-list,
.shift-section .list{
  --pm-task-gap:10px;
}

.overdue-section > .list,
.carryover-section > .list,
.carryover-list,
.current-shift-section > .list,
.current-shift-list,
.shift-section > .list{
  display:flex!important;
  flex-direction:column!important;
  gap:var(--pm-task-gap)!important;
}

.overdue-section > .list > *,
.carryover-section > .list > *,
.carryover-list > *,
.current-shift-section > .list > *,
.current-shift-list > *,
.shift-section > .list > *{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Jeśli sekcja zaległa jest renderowana bez dodatkowego .list */
.overdue-section > .pm-task-card,
.overdue-section > .task-card,
.carryover-section > .pm-task-card,
.carryover-section > .task-card{
  margin:0!important;
}
.overdue-section > .pm-task-card + .pm-task-card,
.overdue-section > .task-card + .task-card,
.carryover-section > .pm-task-card + .pm-task-card,
.carryover-section > .task-card + .task-card{
  margin-top:10px!important;
}

/* ============================================================
   FINAL — Desktop: aktywne menu tak czytelne jak na telefonie
   ============================================================ */
@media(min-width:1001px){
  .desktop-nav button.active,
  .side button.active{
    background:#ffffff!important;
    color:#173a63!important;
    font-weight:800!important;
    box-shadow:0 2px 7px rgba(10,45,82,.10)!important;
    position:relative!important;
  }

  .desktop-nav button.active::before,
  .side button.active::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:7px!important;
    bottom:7px!important;
    width:4px!important;
    border-radius:0 4px 4px 0!important;
    background:#1769e0!important;
  }

  .desktop-nav button.active .nav-icon,
  .desktop-nav button.active .nav-label,
  .side button.active .nav-icon,
  .side button.active .nav-label{
    color:#173a63!important;
  }

  .desktop-nav button:hover:not(.active),
  .side button:hover:not(.active){
    background:rgba(255,255,255,.10)!important;
  }
}

/* === Dashboard reference layout 2026-08-18 === */
.dashboard-kpi{
  min-height:92px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:18px !important;
  padding:16px 22px !important;
  border:1px solid #dce5ef !important;
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 1px 4px rgba(21,49,82,.06) !important;
}
.dashboard-kpi-icon{
  width:54px !important;height:54px !important;min-width:54px !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  border-radius:50% !important;
}
.dashboard-kpi-icon svg{
  width:46px !important;height:46px !important;
  fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;
}
.dashboard-kpi-icon svg .soft{stroke-width:5;opacity:.18}
.dashboard-kpi-copy{display:flex;flex-direction:column;justify-content:center;line-height:1.15}
.dashboard-kpi-copy .muted{font-size:14px !important;font-weight:600 !important;color:#64748b !important;margin-bottom:6px}
.dashboard-kpi-copy .v{font-size:24px !important;font-weight:800 !important;letter-spacing:-.3px;color:#10213c}
.kpi-blue .dashboard-kpi-icon{color:#0965c8}.kpi-blue .v{color:#075bb7}
.kpi-red .dashboard-kpi-icon,.kpi-red .v{color:#d71920}
.kpi-orange .dashboard-kpi-icon,.kpi-orange .v{color:#f59e0b}
.kpi-green .dashboard-kpi-icon,.kpi-green .v{color:#08a84f}
.kpi-purple .dashboard-kpi-icon{color:#8316c5}
.kpi-purple .v{color:#10213c}

/* Desktop: pięć równych KPI w rzędzie jak na obrazie referencyjnym */
@media (min-width: 900px){
  .kpi-grid,.dashboard-kpis,.dashboard-kpi-grid{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:10px !important;
  }
}


/* Status zleceń — semantyczne kolory */
.status-bars .status-overdue .bar-fill{
  background:#db3a34!important;
}
.status-bars .status-done .bar-fill{
  background:#18a558!important;
}
.status-bars .status-todo .bar-fill{
  background:#1769e0!important;
}
.status-bars .status-default .bar-fill{
  background:#64748b!important;
}

/* Operator Dashboard — 6 KPI in requested order */
@media(min-width:1001px){
  .operator-kpi-grid{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
  }
}
@media(max-width:1000px) and (min-width:641px){
  .operator-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:640px){
  .operator-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* ============================================================
   Ikony sekcji: Analiza awarii / Pareto / Niezawodność / Predykcja
   ============================================================ */
.section-title-with-icon{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
.section-title-icon{
  width:30px;
  height:30px;
  min-width:30px;
  border-radius:8px;
  display:inline-grid;
  place-items:center;
  background:#eef5ff;
  color:#1769e0;
  vertical-align:middle;
}
h2 .section-title-icon{
  width:26px;
  height:26px;
  min-width:26px;
  border-radius:7px;
}
.section-title-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.section-title-icon-pareto{
  background:#eef5ff;
  color:#1769e0;
}
.section-title-icon-reliability{
  background:#eaf8f0;
  color:#18a558;
}
.section-title-icon-predictive{
  background:#fff6e5;
  color:#e7a310;
}


/* KPI — komplet ikon na Analiza awarii / Niezawodność */
.dashboard-kpi-icon:empty{
  display:none!important;
}
.dashboard-kpi:has(.dashboard-kpi-icon:empty){
  justify-content:center!important;
}


/* Usprawnienia — ikony KPI */
.improvements-kpi-grid .dashboard-kpi-icon,
.improvement-kpi-grid .dashboard-kpi-icon{
  flex:0 0 48px;
}
.improvements-kpi-grid .dashboard-kpi-icon svg,
.improvement-kpi-grid .dashboard-kpi-icon svg{
  width:30px;
  height:30px;
}
