:root{
  --pf-bg:#f5f7fb;--pf-card:#fff;--pf-text:#121826;--pf-muted:#667085;--pf-primary:#3468f6;--pf-success:#22c55e;--pf-warning:#f59e0b;--pf-danger:#ef4444;--pf-border:#e7eaf1;--pf-shadow:0 12px 35px rgba(15,23,42,.08);--pf-radius:22px;
}
*{box-sizing:border-box} body.printflow-app{background:radial-gradient(circle at top left,#eef4ff 0,#f7f8fc 38%,#f5f7fb 100%);color:var(--pf-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.pf-shell{display:flex;min-height:100vh}.pf-sidebar{width:286px;background:rgba(255,255,255,.84);backdrop-filter:blur(16px);border-right:1px solid var(--pf-border);padding:24px 18px;position:sticky;top:0;height:100vh;overflow:auto}.pf-brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.pf-logo{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,#3468f6,#25d0ff);display:grid;place-items:center;color:#fff;font-size:23px;box-shadow:0 10px 25px rgba(52,104,246,.25)}.pf-brand-title{font-weight:800;font-size:22px;line-height:1}.pf-brand-subtitle{font-size:12px;color:var(--pf-muted);margin-top:4px}.pf-nav{display:flex;flex-direction:column;gap:6px}.pf-nav a{color:#526078;text-decoration:none;padding:11px 13px;border-radius:14px;display:flex;align-items:center;gap:11px;font-weight:600;font-size:14px}.pf-nav a:hover,.pf-nav a.active{background:#eef4ff;color:#2458e6}.pf-main{flex:1;min-width:0}.pf-topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 28px}.pf-page{padding:0 28px 38px}.pf-title h1{font-size:30px;margin:0;font-weight:800}.pf-title p{margin:5px 0 0;color:var(--pf-muted)}.pf-card,.card{border:1px solid var(--pf-border)!important;border-radius:var(--pf-radius)!important;background:var(--pf-card)!important;box-shadow:var(--pf-shadow)!important}.card-header{border-bottom:1px solid var(--pf-border);background:transparent!important;border-radius:var(--pf-radius) var(--pf-radius) 0 0!important}.pf-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.pf-stat{padding:22px;display:flex;gap:15px;align-items:center}.pf-stat-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-size:21px}.pf-stat-icon.blue{background:#eef4ff;color:#3468f6}.pf-stat-icon.green{background:#ecfdf3;color:#16a34a}.pf-stat-icon.orange{background:#fff7ed;color:#f59e0b}.pf-stat-icon.purple{background:#f6f0ff;color:#8b5cf6}.pf-stat .num{font-size:31px;font-weight:850;line-height:1}.pf-stat .label{font-weight:700;margin-top:2px}.pf-stat .hint{color:var(--pf-muted);font-size:13px;margin-top:4px}.pf-section-title{font-size:21px;font-weight:800;margin:26px 0 16px}.pf-printer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.pf-printer-card{padding:22px;position:relative;overflow:hidden}.pf-printer-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#3468f6,#22c55e);opacity:.85}.pf-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.pf-printer-name{font-size:20px;font-weight:850}.pf-job-name{color:#5c667a;margin-top:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-badge{display:inline-flex;gap:6px;align-items:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}.pf-badge.printing{background:#dcfce7;color:#15803d}.pf-badge.finished{background:#dbeafe;color:#1d4ed8}.pf-badge.pending{background:#fff7ed;color:#c2410c}.pf-badge.cancelled,.pf-badge.error{background:#fee2e2;color:#b91c1c}.pf-badge.idle{background:#f1f5f9;color:#475569}.pf-progress-row{display:flex;gap:18px;align-items:center;margin:24px 0}.pf-ring{--p:0;width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--pf-success) calc(var(--p)*1%),#edf0f6 0);position:relative;flex:0 0 auto}.pf-ring:after{content:"";position:absolute;inset:9px;background:#fff;border-radius:50%}.pf-ring span{position:relative;z-index:1;font-size:24px;font-weight:850;color:#16a34a}.pf-progress-info{flex:1}.pf-progress-label{display:flex;justify-content:space-between;margin-bottom:9px;font-weight:700;color:#586174}.progress{height:10px;border-radius:99px;background:#edf0f6}.progress-bar{border-radius:99px;background:linear-gradient(90deg,#22c55e,#16a34a)}.pf-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--pf-border);padding-top:18px;color:#667085;font-weight:600}.pf-meta i{color:#8a94a6;margin-right:6px}.pf-table-card{padding:18px}.table{vertical-align:middle}.table th{color:#0f172a;font-size:13px;text-transform:uppercase;letter-spacing:.02em}.table td{color:#344054}.btn{border-radius:13px;font-weight:700}.btn-primary{background:#3468f6;border-color:#3468f6}.form-control,.form-select{border-radius:13px;border-color:#dbe1ea;padding:.72rem .9rem}.pf-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pf-material-card{padding:20px}.pf-material-top{display:flex;justify-content:space-between;gap:12px}.pf-material-name{font-weight:850;font-size:18px}.pf-material-tags{color:#667085;font-size:13px}.pf-stock{margin-top:18px}.pf-stock-bar{height:12px;border-radius:99px;background:#edf0f6;overflow:hidden}.pf-stock-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#22c55e,#16a34a)}.pf-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.pf-mobile-menu{display:none}.alert{border-radius:16px;border:0}.pf-auth{max-width:460px;margin:6vh auto}.pf-auth .pf-brand{justify-content:center}.pf-dark-toggle{border:1px solid var(--pf-border);background:#fff;border-radius:999px;padding:9px 13px;color:#475569;font-weight:800}.printflow-app.dark{--pf-bg:#0b1020;--pf-card:#111827;--pf-text:#f8fafc;--pf-muted:#98a2b3;--pf-border:#243044;--pf-shadow:0 15px 40px rgba(0,0,0,.28);background:#0b1020}.printflow-app.dark .pf-sidebar,.printflow-app.dark .pf-topbar,.printflow-app.dark .pf-card,.printflow-app.dark .card,.printflow-app.dark .pf-ring:after{background:#111827!important}.printflow-app.dark .table,.printflow-app.dark .table td,.printflow-app.dark .table th{color:#e5e7eb}.printflow-app.dark .form-control,.printflow-app.dark .form-select{background:#0b1020;color:#fff;border-color:#243044}.printflow-app.dark .pf-dark-toggle{background:#111827;color:#fff}.printflow-app.dark .pf-nav a:hover,.printflow-app.dark .pf-nav a.active{background:#172554;color:#bfdbfe}@media(max-width:1200px){.pf-printer-grid{grid-template-columns:repeat(2,1fr)}.pf-summary{grid-template-columns:repeat(2,1fr)}.pf-material-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.pf-shell{display:block}.pf-sidebar{display:none;position:fixed;z-index:100;left:0;top:0;bottom:0}.pf-sidebar.open{display:block}.pf-mobile-menu{display:inline-flex}.pf-topbar{padding:16px}.pf-page{padding:0 16px 24px}.pf-printer-grid,.pf-summary,.pf-material-grid{grid-template-columns:1fr}.pf-title h1{font-size:24px}}

/* Zdjęcia materiałów */
.pf-photo-btn{width:38px;height:38px;border:1px solid #dbe1ea;border-radius:13px;background:#fff;color:#3468f6;display:inline-grid;place-items:center;text-decoration:none;box-shadow:0 8px 20px rgba(16,24,40,.06);transition:.18s ease;font-size:16px}
.pf-photo-btn:hover{transform:translateY(-1px);background:#eef4ff;color:#2458e6}
.pf-photo-btn.disabled{color:#98a2b3;background:#f8fafc;box-shadow:none;cursor:not-allowed;opacity:.72}
.pf-photo-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.78);display:none;align-items:center;justify-content:center;padding:24px}
.pf-photo-lightbox.open{display:flex}
.pf-photo-lightbox-box{position:relative;max-width:min(980px,96vw);max-height:92vh;background:#fff;border-radius:22px;padding:14px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.pf-photo-lightbox img{display:block;max-width:100%;max-height:78vh;border-radius:16px;object-fit:contain}
.pf-photo-lightbox-title{font-weight:800;padding:8px 48px 0 4px;color:#0f172a}
.pf-photo-lightbox-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:13px;background:#0f172a;color:#fff;font-size:20px;line-height:1}
.printflow-app.dark .pf-photo-btn{background:#111827;border-color:#243044;color:#bfdbfe}
.printflow-app.dark .pf-photo-btn:hover{background:#172554;color:#fff}
.printflow-app.dark .pf-photo-btn.disabled{background:#0b1020;color:#64748b}

/* Podsumowanie magazynu materiałów */
.pf-material-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pf-material-summary-card{padding:20px;display:flex;gap:15px;align-items:center;min-height:122px}
.pf-material-summary-card.is-alert{border-color:#fed7aa!important;background:linear-gradient(135deg,#fff7ed,#fff)!important}
.pf-summary-label{font-size:13px;color:#667085;font-weight:800;text-transform:uppercase;letter-spacing:.025em}
.pf-summary-number{font-size:26px;font-weight:900;line-height:1.15;margin-top:4px}
.pf-summary-hint{font-size:13px;color:#667085;margin-top:4px}
.pf-material-panel{padding:20px}
.pf-panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}
.pf-type-breakdown{display:flex;flex-direction:column;gap:14px}
.pf-type-row{display:grid;grid-template-columns:1.1fr 1fr;gap:8px 16px;align-items:center;border-bottom:1px solid #eef1f6;padding-bottom:12px}
.pf-type-row:last-child{border-bottom:0;padding-bottom:0}
.pf-type-main{display:flex;align-items:center;gap:10px;min-width:0}
.pf-type-name{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef4ff;color:#2458e6;font-weight:900;padding:6px 11px;font-size:12px;letter-spacing:.03em}
.pf-type-values{display:flex;justify-content:flex-end;gap:16px;font-weight:800;white-space:nowrap}
.pf-type-bar{grid-column:1/-1;height:9px;border-radius:999px;background:#edf0f6;overflow:hidden}
.pf-type-bar div{height:100%;border-radius:999px;background:linear-gradient(90deg,#3468f6,#22c55e)}
.pf-low-list{display:flex;flex-direction:column;gap:10px}
.pf-low-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #edf0f6;border-radius:16px;padding:12px 14px;background:#fff}
.pf-low-item.is-alert{border-color:#fecaca;background:#fff7f7}
.pf-material-card.is-stock-alert{border-color:#fecaca!important;background:linear-gradient(135deg,#fff7f7,#fff)!important}
.printflow-app.dark .pf-material-summary-card.is-alert,.printflow-app.dark .pf-material-card.is-stock-alert{background:#1f1a1a!important;border-color:#7f1d1d!important}
.printflow-app.dark .pf-material-summary-card,.printflow-app.dark .pf-material-panel,.printflow-app.dark .pf-low-item{background:#111827!important}
.printflow-app.dark .pf-type-row{border-color:#243044}
.printflow-app.dark .pf-type-name{background:#172554;color:#bfdbfe}
.printflow-app.dark .pf-low-item{border-color:#243044}
.printflow-app.dark .pf-low-item.is-alert{border-color:#7f1d1d;background:#1f1a1a!important}
@media(max-width:1200px){.pf-material-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.pf-material-summary-grid{grid-template-columns:1fr}.pf-type-row{grid-template-columns:1fr}.pf-type-values{justify-content:flex-start;flex-wrap:wrap}.pf-summary-number{font-size:23px}}

/* Zwijany panel podziału materiałów */
.pf-collapsible-panel{overflow:hidden}
.pf-collapsible-summary{list-style:none;cursor:pointer;margin-bottom:0!important;user-select:none}
.pf-collapsible-summary::-webkit-details-marker{display:none}
.pf-collapsible-panel[open] .pf-collapsible-summary{margin-bottom:16px!important}
.pf-collapse-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe1ea;border-radius:999px;background:#fff;color:#3468f6;padding:8px 12px;font-weight:900;font-size:13px;white-space:nowrap}
.pf-collapse-toggle i{transition:transform .18s ease}
.pf-collapsible-panel[open] .pf-collapse-toggle i{transform:rotate(180deg)}
.pf-collapse-label-open{display:none}
.pf-collapsible-panel[open] .pf-collapse-label-open{display:inline}
.pf-collapsible-panel[open] .pf-collapse-label-closed{display:none}
.pf-collapsible-content{padding-top:0}
.printflow-app.dark .pf-collapse-toggle{background:#111827;border-color:#243044;color:#bfdbfe}
@media(max-width:860px){.pf-collapsible-summary{align-items:center}.pf-collapse-toggle{padding:7px 10px;font-size:12px}}
