:root{--yellow:#f5c400;--yellow2:#ffd83d;--black:#171717;--ink:#242424;--muted:#757575;--bg:#f5f5f3;--card:#fff;--line:#e7e7e2;--danger:#d93636;--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--black);color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.logo{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.logo strong{font-size:22px}.logo span,.sidebar-user span{display:block;color:#aaa;font-size:12px}.brand-mark{width:64px;height:64px;border-radius:18px;background:var(--yellow);color:#111;display:grid;place-items:center;font-size:38px;font-weight:900;box-shadow:8px 8px 0 #111}.brand-mark.small{width:42px;height:42px;border-radius:11px;font-size:25px;box-shadow:none}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:13px 14px;border-radius:11px;color:#ccc;display:flex;gap:12px;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:var(--yellow);color:#111;font-weight:700}.sidebar-user{margin-top:auto;border-top:1px solid #333;padding:18px 10px 0}.sidebar-user a{display:inline-block;margin-top:10px;color:var(--yellow);font-size:13px}.main{margin-left:240px;padding:28px;max-width:1700px}.topbar{display:flex;gap:14px;align-items:center;margin-bottom:24px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:3px 0 0;color:var(--muted)}.menu-btn{display:none;background:none;border:0;font-size:26px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stats.three{grid-template-columns:repeat(3,1fr)}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 18px rgba(0,0,0,.035)}.stat{padding:20px}.stat span{display:block;color:var(--muted);font-size:13px;margin-bottom:9px}.stat strong{font-size:25px}.stat.accent{background:var(--yellow);border-color:var(--yellow)}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid .full{grid-column:1/-1}.dashboard-grid{align-items:start}.card{padding:20px;margin-bottom:18px}.card-head,.toolbar,.job-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.card-head h2,.job-header h2{margin:0}.card-head a{color:#856b00;font-size:13px;font-weight:700}.list-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border:0}.list-row span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.datebox{width:44px;height:48px;border-radius:10px;background:#f1f1ed;display:grid;place-items:center}.datebox strong{font-size:18px}.datebox span{margin-top:-10px}.alert-icon{width:36px;height:36px;border-radius:50%;background:#fff1cc;color:#9a6500;font-weight:900;display:grid;place-items:center}.quick-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:1px solid #d4d4ce;background:#fff;padding:11px 16px;border-radius:10px;font-weight:700;cursor:pointer;display:inline-flex;justify-content:center;align-items:center}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--yellow);border-color:var(--yellow);color:#111}.btn.full{width:100%}.toolbar{justify-content:flex-end;margin-bottom:16px}.badge{display:inline-block!important;padding:5px 8px;border-radius:999px;background:#eee;color:#555!important;font-size:11px!important;margin:0!important}.badge.planned,.badge.normal{background:#fff1b8;color:#755a00!important}.badge.in_progress,.badge.working{background:#dbeafe;color:#1454a0!important}.badge.done,.badge.available{background:#dcfce7;color:#18733a!important}.badge.cancelled,.badge.inactive,.badge.urgent{background:#fee2e2;color:#a42020!important}.badge.high,.badge.service{background:#ffedd5;color:#9a4211!important}.badge.low{background:#eee;color:#666!important}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:15px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-size:12px;background:#fafaf8}td small{display:block;color:var(--muted);margin-top:4px}.clickable{cursor:pointer}.clickable:hover{background:#fffbea}.empty{text-align:center;color:var(--muted);padding:25px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;place-items:center;padding:20px;z-index:50}.modal.show{display:grid}.modal-box{background:#fff;border-radius:18px;padding:24px;width:min(760px,100%);max-height:92vh;overflow:auto;position:relative}.modal-box h2{margin-top:0}.modal-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:30px;cursor:pointer}label{font-size:13px;font-weight:700;display:grid;gap:7px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d8d8d2;border-radius:9px;background:#fff}textarea{min-height:90px;resize:vertical}.alert{padding:13px 15px;border-radius:10px;margin-bottom:15px}.alert.success{background:#dcfce7;color:#176b36}.alert.error{background:#fee2e2;color:#9e2020}.calendar-card{padding:14px}.fc .fc-button-primary{background:#202020;border-color:#202020}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:hover{background:#f5c400;border-color:#f5c400;color:#111}.fc-event{border:0!important;padding:2px}.event-planned{background:#d8aa00!important}.event-in_progress{background:#2879d0!important}.event-done{background:#228a4b!important}.back{display:inline-block;margin-bottom:14px;color:#766000;font-weight:700}.job-header{margin-bottom:18px}.job-header p{color:var(--muted)}.cards-list{display:grid;gap:12px}.maintenance-item{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0}.maintenance-item.due{border-left:6px solid var(--yellow)}.maintenance-item h3{margin:10px 0 4px}.maintenance-item p{margin:5px 0}.maintenance-item small{color:var(--muted)}.badges{display:flex;gap:6px}.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--black) 0 55%,var(--yellow) 55%);padding:20px}.auth-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:34px;box-shadow:0 25px 70px rgba(0,0,0,.25)}.auth-card.wide{width:min(760px,100%)}.auth-card .brand-mark{margin-bottom:24px}.auth-card h1{margin:0}.auth-card p{color:var(--muted);margin-bottom:24px}.auth-card form{display:grid;gap:14px}
@media(max-width:980px){.sidebar{transform:translateX(-100%);transition:.2s}.menu-open .sidebar{transform:none}.main{margin-left:0;padding:18px}.menu-btn{display:block}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.stats,.stats.three,.grid.two{grid-template-columns:1fr}.grid .full{grid-column:auto}.dashboard-grid{grid-template-columns:1fr}.topbar h1{font-size:22px}.stat strong{font-size:22px}.maintenance-item,.job-header{align-items:flex-start;flex-direction:column}.auth-card{padding:24px}.quick-actions .btn{width:100%}}
.hidden{display:none!important}.client-switch{display:flex;gap:18px;flex-wrap:wrap;background:#fff9d7;border:1px solid #f1d665;border-radius:10px;padding:12px}.client-switch label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.client-switch input{width:auto}.muted{color:var(--muted);line-height:1.6}.steps{padding-left:22px;line-height:1.9}.notice{margin-top:16px;background:#fff7cf;border-left:5px solid var(--yellow);padding:14px;border-radius:8px}code{background:#f1f1ed;padding:2px 5px;border-radius:5px}
.brand-logo{display:block;object-fit:contain}.brand-logo.small{width:48px;height:48px;max-width:70px;background:#fff;border-radius:10px;padding:4px}.brand-logo.login{max-width:230px;max-height:95px;margin-bottom:24px;object-position:left center}.logo-preview{min-height:180px;border:1px dashed #d7d7cf;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;margin:15px 0 20px;padding:20px;background:#fafaf7}.logo-preview img{max-width:100%;max-height:140px;object-fit:contain}.logo-preview p{margin:0;color:var(--muted)}label small{font-weight:400;color:var(--muted)}.check-row{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:9px}.check-row input{width:auto}

.action-group,.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.action-group form,.row-actions form{margin:0}.btn.small{padding:7px 10px;font-size:12px}.btn.danger{background:#fff1f1;border-color:#efb4b4;color:#a71919}.btn.danger:hover{background:#fee2e2}

input[type=color]{height:48px;padding:4px;cursor:pointer}


/* PWA / iPhone standalone */
html{background:var(--black,#171717);-webkit-text-size-adjust:100%;}
body{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);}
.is-standalone body{min-height:100dvh;}
.is-standalone .sidebar{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));}
.is-standalone .topbar{padding-top:max(14px,env(safe-area-inset-top));}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;}
@media(max-width:760px){.is-standalone .main{min-height:100dvh}.is-standalone .modal-box{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px);overflow:auto}}


/* Mobile layout 2.4.0 */
html,body{max-width:100%;overflow-x:hidden}
.app-shell,.main,.card,.grid,.stats,.table-wrap{min-width:0;max-width:100%}
.table-wrap{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.table-wrap table{margin:0;max-width:none}
img,svg,video{max-width:100%;height:auto}
.fc{max-width:100%;min-width:0}
.fc .fc-view-harness,.fc .fc-scrollgrid{max-width:100%}
.fc .fc-toolbar-title{line-height:1.15}

@media(max-width:650px){
  .main{width:100%;padding:12px 10px calc(18px + env(safe-area-inset-bottom))}
  .topbar{gap:10px;margin-bottom:14px;align-items:flex-start}
  .topbar>div{min-width:0}
  .topbar h1{font-size:20px;overflow-wrap:anywhere}
  .topbar p{font-size:12px}
  .menu-btn{flex:0 0 42px;width:42px;height:42px;border-radius:10px;background:var(--card);border:1px solid var(--line)}
  .sidebar{width:min(86vw,310px);padding-left:12px;padding-right:12px;overflow-y:auto}
  .card{padding:14px;border-radius:13px;margin-bottom:12px}
  .calendar-card{padding:8px 6px}
  .stat{padding:15px}
  .stats{gap:10px;margin-bottom:10px}
  .stat span{font-size:12px;margin-bottom:6px}
  .stat strong{font-size:20px;overflow-wrap:anywhere}
  .card-head,.toolbar{align-items:stretch;flex-direction:column}
  .toolbar{margin-bottom:10px}
  .toolbar .btn,.card-head .btn{width:100%}
  .list-row{grid-template-columns:auto minmax(0,1fr);gap:10px}
  .list-row>.badge{grid-column:2;justify-self:start}
  .list-row strong,.list-row span{overflow-wrap:anywhere}
  .modal{padding:6px;align-items:end}
  .modal-box{width:100%;max-height:94dvh;border-radius:18px 18px 0 0;padding:20px 14px calc(18px + env(safe-area-inset-bottom))}
  input,select,textarea{font-size:16px}
  .row-actions,.action-group{align-items:stretch}
  .row-actions .btn,.row-actions form,.row-actions form .btn{width:100%}
  .table-wrap{border-radius:13px;padding:0;overscroll-behavior-x:contain}
  .table-wrap table{min-width:680px}
  th,td{padding:11px 10px;font-size:13px;white-space:normal}
  th{font-size:11px}

  /* FullCalendar: phone-first controls and readable list */
  .fc .fc-toolbar{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:10px;align-items:center}
  .fc .fc-toolbar-chunk{display:flex;min-width:0}
  .fc .fc-toolbar-chunk:nth-child(2){grid-column:1/-1;grid-row:1;justify-content:center}
  .fc .fc-toolbar-chunk:first-child{grid-column:1;grid-row:2;justify-content:flex-start}
  .fc .fc-toolbar-chunk:last-child{grid-column:2;grid-row:2;justify-content:flex-end}
  .fc .fc-toolbar-title{font-size:18px;text-align:center;white-space:normal}
  .fc .fc-button{padding:.48em .62em;font-size:12px}
  .fc .fc-button-group{display:flex}
  .fc .fc-list{border:0}
  .fc .fc-list-day-cushion{padding:10px 8px}
  .fc .fc-list-event td{padding:11px 6px}
  .fc .fc-list-event-time{width:58px;font-size:12px;white-space:nowrap}
  .fc .fc-list-event-title{font-size:13px;line-height:1.35}
  .fc .fc-daygrid-day-number{font-size:12px;padding:5px}
  .fc .fc-col-header-cell-cushion{font-size:11px;padding:5px 2px}
  .fc .fc-daygrid-event{font-size:10px;line-height:1.2;margin:1px 2px;padding:2px 3px}
}

@media(max-width:380px){
  .main{padding-left:7px;padding-right:7px}
  .card{padding:11px}
  .calendar-card{padding:5px 3px}
  .fc .fc-button{padding:.44em .5em;font-size:11px}
  .fc .fc-toolbar-title{font-size:16px}
}


/* Mobile width and navigation hotfix 2.4.1 */
html,body{width:100%;min-width:0;max-width:100%;overflow-x:clip}
body{position:relative}
.app-shell{width:100%;min-width:0;overflow-x:clip}
.main{width:auto;min-width:0;overflow-x:hidden}
.main>*{min-width:0;max-width:100%}
.card,.stat,.topbar,.toolbar,.job-header,.calendar-card{width:100%;min-width:0}
.card *,.stat *,.topbar *{min-width:0}
input,select,textarea,button{max-width:100%}
pre,code{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
.sidebar nav{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px}
.sidebar-user{flex:0 0 auto;background:var(--black);padding-bottom:max(8px,env(safe-area-inset-bottom))}
.sidebar-user a{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--yellow) 65%,transparent);border-radius:10px;color:#111;background:var(--yellow);font-weight:800;font-size:14px}

@media(max-width:980px){
  .sidebar{height:100dvh;max-height:100dvh;overflow:hidden}
  body.menu-open{overflow:hidden}
  body.menu-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:19}
  body.menu-open .sidebar{z-index:21}
}

@media(max-width:650px){
  .main{max-width:100vw;padding-left:8px;padding-right:8px}
  .topbar{width:100%;overflow:hidden}
  .topbar>div{max-width:calc(100vw - 70px)}
  .card,.stat{max-width:calc(100vw - 16px)}
  .grid,.stats,.dashboard-grid{width:100%;max-width:100%;overflow:visible}
  .quick-actions,.row-actions,.action-group{max-width:100%;overflow:hidden}
  .table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;contain:inline-size}
  .table-wrap table{width:max-content;min-width:620px;max-width:none}
  .calendar-card{width:100%;max-width:calc(100vw - 16px);overflow:hidden}
  #calendar,.fc,.fc-view-harness,.fc-view-harness-active,.fc-scroller-harness,.fc-scroller{width:100%!important;max-width:100%!important;min-width:0!important}
  .fc-scrollgrid{width:100%!important;table-layout:fixed}
  .fc-list-table{width:100%!important;min-width:0!important;table-layout:fixed}
  .fc-list-event-time{width:62px!important}
  .fc-list-event-title{width:auto!important;overflow-wrap:anywhere}
  .fc-theme-standard td,.fc-theme-standard th{min-width:0}
  .sidebar{width:min(88vw,320px);max-width:calc(100vw - 28px)}
  .sidebar nav a{min-height:44px;padding:10px 12px}
  .sidebar-user{padding-top:12px}
}


/* 2.5.0 dokumenty, podpisy i ewidencja czasu */
.signature-box{border:1px solid #ddd;border-radius:14px;padding:12px;background:#fafafa}.signature-box canvas{display:block;width:100%;height:180px;background:#fff;border:2px dashed #bbb;border-radius:10px;touch-action:none}.signature-preview{margin-top:24px;padding-top:18px;border-top:1px solid #ddd;display:flex;flex-direction:column;align-items:flex-end}.signature-preview img{max-width:300px;max-height:130px}.document-preview{max-width:1000px;margin:auto}.document-header{display:flex;justify-content:space-between;gap:16px;border-bottom:4px solid var(--yellow);padding-bottom:14px}.document-header>div:last-child{text-align:right;display:flex;flex-direction:column}.badge.ok{background:#d9f5df;color:#176b2d}.modal-box.wide{max-width:900px}.inline-filter{max-width:520px;flex:1}.inline-filter select{width:100%}
@media(max-width:650px){.mobile-cards thead{display:none}.mobile-cards,.mobile-cards tbody,.mobile-cards tr,.mobile-cards td{display:block;width:100%}.mobile-cards tr{padding:12px;border-bottom:1px solid #ddd}.mobile-cards td{border:0!important;padding:5px 0!important;display:grid;grid-template-columns:115px minmax(0,1fr);gap:8px;overflow-wrap:anywhere}.mobile-cards td:before{content:attr(data-label);font-weight:700;color:#777}.mobile-cards td[colspan]:before{display:none}.document-header{flex-direction:column}.document-header>div:last-child{text-align:left}.signature-box canvas{height:150px}.toolbar .inline-filter{min-width:100%;order:2}}

/* 2.6.0 mobile modals, inventory and SVG icons */
.ui-icon{width:20px;height:20px;flex:0 0 20px;display:inline-block;vertical-align:middle}.sidebar nav a{display:flex;align-items:center;gap:11px}.logout-btn{gap:8px}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.menu-btn .ui-icon{width:23px;height:23px}.danger-stat{border-color:#efb4b4;background:#fff5f5}.inventory-alert{margin:0 0 14px}.low-stock-row{background:#fff7f7}.badge.danger{background:#fee2e2;color:#991b1b}.modal-box.compact{max-width:560px}
.modal{box-sizing:border-box}.modal-box{box-sizing:border-box;min-width:0;overflow-x:hidden}.modal-box form,.modal-box .grid,.modal-box label,.modal-box input,.modal-box select,.modal-box textarea{min-width:0;max-width:100%}
@media(max-width:650px){
 .modal{inset:0;width:100vw;max-width:100vw;padding:0;align-items:flex-end;overflow:hidden}
 .modal-box,.modal-box.wide,.modal-box.compact{width:100vw!important;max-width:100vw!important;min-width:0!important;max-height:calc(100dvh - env(safe-area-inset-top));margin:0;border-radius:18px 18px 0 0;padding:20px 14px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
 .modal-box .grid.two,.modal-box .grid.three{display:grid;grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%}
 .modal-box .full{grid-column:1!important}.modal-box h2{padding-right:38px;overflow-wrap:anywhere}.modal-close{position:sticky;top:0;float:right;z-index:2}
 .signature-box,.signature-box canvas{width:100%;max-width:100%;box-sizing:border-box}
}
