:root{--bg:#0b0b0d;--panel:#17171b;--red:#e30613;--text:#f5f5f5;--muted:#aaa;--line:#333}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px Arial,sans-serif}a{color:#fff}header{display:flex;align-items:center;gap:25px;padding:12px 24px;background:#050505;border-bottom:2px solid var(--red);position:sticky;top:0;z-index:2}header img{width:210px;max-height:48px;object-fit:contain}nav{display:flex;flex-wrap:wrap;gap:8px}nav a,.button,button{background:#222;color:#fff;border:1px solid #444;padding:10px 14px;border-radius:7px;text-decoration:none;cursor:pointer}nav a:hover,.button:hover,button:hover{background:var(--red)}main{max-width:1450px;margin:auto;padding:24px}h1,h2,h3{margin-top:0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:15px;margin:20px 0}.kpi{background:linear-gradient(135deg,#1b1b1f,#0d0d0f);border:1px solid #333;border-left:5px solid var(--red);padding:22px;text-decoration:none;border-radius:8px}.kpi b{font-size:34px;display:block}.kpi span{color:#ccc}.tablewrap{overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid #2c2c31;text-align:left;white-space:nowrap}th{background:#202025;color:#ddd}.status{display:inline-block;padding:5px 9px;border-radius:20px;font-weight:bold}.status.new{background:#304ffe}.status.diag,.status.wait,.status.parts{background:#8d6e00}.status.work{background:#7b1fa2}.status.ready{background:#008c4a}.status.done{background:#455a64}.status.cancel{background:#9b1c1c}.toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.toolbar form{display:flex;gap:8px;flex:1;justify-content:flex-end}.toolbar input{max-width:600px}.repairform section,.card,.detail section{background:var(--panel);border:1px solid var(--line);padding:18px;border-radius:9px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}label{display:flex;flex-direction:column;gap:6px;color:#ddd}input,select,textarea{width:100%;background:#0f0f12;color:#fff;border:1px solid #444;border-radius:6px;padding:10px}textarea{min-height:95px;resize:vertical}.primary{background:var(--red);font-size:17px;padding:13px 25px}.danger{background:#7b1117}.detail{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:16px}.wide{font-family:monospace}.login{display:grid;place-items:center;min-height:100vh}.loginbox{width:min(390px,92vw);background:#151518;padding:28px;border:1px solid #333;border-top:5px solid var(--red);border-radius:10px;display:grid;gap:14px;text-align:center}.loginbox img,.logo{max-width:310px;width:100%;margin:auto}.client-page{max-width:720px;padding-top:50px}.client-page .card{text-align:center}.client-page dl{text-align:left;display:grid;grid-template-columns:160px 1fr;gap:10px}.client-page dt{color:#aaa}.barcode{width:100%;max-width:620px;height:90px;background:white;padding:8px}.print{background:white;color:#000}.printpage{width:190mm;min-height:270mm;margin:auto;padding:12mm;font-size:13pt}.printlogo{width:80mm;height:18mm;object-fit:contain;background:#000}.printgrid{display:grid;grid-template-columns:1fr 1fr;gap:3px 20px}.sign{display:flex;justify-content:space-between;margin-top:55mm;border-top:1px solid #777;padding-top:5px}.url{font:10pt monospace;word-break:break-all}@media(max-width:750px){header{position:static;display:block}header img{margin-bottom:10px}.toolbar{display:block}.toolbar form{margin-top:10px}.detail{grid-template-columns:1fr}main{padding:14px}.client-page dl{grid-template-columns:1fr}.printpage{width:auto;padding:5mm}}@media print{.printpage{page-break-after:always}}
.notice{padding:12px;background:#164d2b;border:1px solid #2d9956;border-radius:8px;margin-bottom:15px}.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0 15px}.checks label{display:flex;flex-direction:row;align-items:center}.checks input{width:auto}.pattern-wrap{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:15px}.pattern-wrap canvas{width:min(420px,100%);height:auto;background:#eef3ff;border:8px solid #222;border-radius:30px;touch-action:none}.secret{font-size:22px;background:#08080a;padding:15px;border:1px dashed #666;border-radius:8px}.history{line-height:1.8}.history li{border-bottom:1px solid #333;padding:6px 0}
.qr{width:42mm;height:42mm;object-fit:contain;background:#fff;border:1px solid #aaa}.print-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12mm}.printbox{border:1px solid #777;min-height:22mm;padding:4mm}.printnotes{border:1px solid #777;min-height:65mm;padding:4mm}.print-actions{position:fixed;right:18px;top:18px}.print-actions button{background:#e30613;color:#fff;font-weight:bold}.pattern-wrap canvas{box-shadow:0 0 0 3px #e30613,0 8px 28px rgba(0,0,0,.55)}
@media print{.print-actions{display:none}.print{background:#fff}.printpage{box-shadow:none}.qr{print-color-adjust:exact}.barcode{print-color-adjust:exact}}
[hidden]{display:none!important}.cost-items{display:grid;gap:8px;margin:10px 0 18px}.cost-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(130px,220px);gap:12px;align-items:center;background:#101014;border:1px solid #333;padding:10px;border-radius:7px}.cost-check{flex-direction:row;align-items:center}.cost-check input{width:auto}.cost-print{width:100%;margin:5mm 0 8mm;border:1px solid #777}.cost-print td,.cost-print th{border-bottom:1px solid #bbb;padding:3mm;color:#000}.cost-print td:last-child,.cost-print th:last-child{text-align:right}.cost-total{font-size:14pt}.client-qr-note{margin-top:8mm;padding:4mm;border:2px solid #000;text-align:center}.print .printgrid p{white-space:normal}
@media(max-width:650px){.cost-row{grid-template-columns:1fr}}

/* ENTER SERWIS v0.6 - wydruki A4 */
.printpage{width:190mm;min-height:0;max-height:277mm;margin:0 auto;padding:8mm 10mm;font-size:10.5pt;overflow:hidden}
.printpage h1{font-size:20pt;margin:2mm 0 4mm;text-align:center;letter-spacing:.8px}
.printpage h2{font-size:16pt;margin:0 0 2mm}
.printpage h3{font-size:11.5pt;margin:3mm 0 1.5mm}
.printpage p{margin:1.5mm 0;line-height:1.25}
.printlogo{display:block;width:74mm;height:auto;max-height:16mm;object-fit:contain;margin:0 auto 3mm;background:#050505;padding:1.5mm 3mm;border-radius:2mm}
.print-head{gap:8mm;align-items:flex-start}
.qr{width:31mm;height:31mm}
.barcode{height:24mm;max-width:150mm;display:block;margin:1mm auto 2mm;padding:2mm}
.printgrid{gap:0 12mm}
.printbox{min-height:12mm;padding:2.5mm}
.printbox.compact{min-height:8mm}
.printnotes{min-height:36mm;padding:3mm}
.issue-print{white-space:normal;overflow:hidden}
.cost-print th,.cost-print td{padding:2mm 2.5mm;font-size:10pt}
.qr-note,.client-qr-note{font-size:9.5pt;margin-top:3mm}
.service-sheet h1{border-bottom:2px solid #111;padding-bottom:2mm}
@page{size:A4 portrait;margin:5mm}
@media print{
  html,body{width:210mm;height:297mm}
  .printpage{width:190mm;max-height:287mm;padding:6mm 8mm;page-break-after:auto}
}

/* ENTER SERWIS v0.7 */
.printlogo{width:110mm!important;max-width:100%;height:auto!important;max-height:none!important;object-fit:contain!important;background:#050505;padding:2mm 4mm;margin:0 auto 4mm;display:block}
.field-hint{display:block;color:#9fd4a9;min-height:18px;margin-top:4px}.timeline{display:grid;gap:10px}.update-item{border:1px solid #3b3b42;border-left:5px solid var(--red);background:#101014;border-radius:7px;padding:12px}.update-item>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.update-item time{margin-left:auto;color:#aaa}.update-item p{margin:9px 0 0;line-height:1.45}.visibility-badge{font-size:12px;border:1px solid #555;border-radius:12px;padding:3px 8px;color:#ddd}.progress-form textarea{min-height:120px}.email-card form{display:grid;grid-template-columns:1fr auto;gap:10px}.notice.error{background:#5b1717;border-color:#a33}.client-page .update-item{text-align:left}.client-page .update-item time{font-size:12px}
@media(max-width:650px){.email-card form{grid-template-columns:1fr}}
@media print{.client-sheet .printlogo{width:115mm!important;max-height:none!important}}

/* v0.8 */
.client-body{min-height:100vh;background:#09090b;-webkit-text-size-adjust:100%}
.client-page{width:min(100%,760px);max-width:760px;margin:0 auto;padding:22px 16px 42px}
.client-logo-wrap{background:#050505;border:1px solid #2b2b2f;border-radius:12px;padding:14px 18px;margin-bottom:16px;text-align:center;overflow:hidden}
.client-logo-wrap .logo{display:block;width:min(100%,520px);max-width:none;height:auto;margin:0 auto;object-fit:contain}
.client-card{padding:22px;border-radius:12px;margin-bottom:16px;text-align:left!important}
.client-summary{text-align:center!important}
.client-code{font-size:clamp(24px,7vw,38px);line-height:1.1;font-weight:800;letter-spacing:.4px;margin-bottom:12px;overflow-wrap:anywhere}
.client-page .status{font-size:17px;padding:8px 13px}
.client-page dl{margin:22px 0 0;display:grid;grid-template-columns:170px 1fr;gap:12px 16px;text-align:left;font-size:17px}
.client-page dt{color:#aaa;font-weight:700}.client-page dd{margin:0;color:#fff;overflow-wrap:anywhere}
.client-page h2{font-size:23px;margin-bottom:12px}.client-page p{font-size:16px;line-height:1.5}
.client-page input,.client-page button{min-height:52px;font-size:17px}
.client-page .email-card form{grid-template-columns:1fr}.client-page .email-card .primary{width:100%}
.client-page .update-item{padding:16px}.client-page .update-item>div{align-items:flex-start}
.client-page .update-item time{width:100%;margin:3px 0 0}.client-page .update-item p{font-size:16px}
.client-notice{margin:0 0 16px}.client-empty{color:#ccc}
.printlogo{width:125mm!important;max-width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;background:#050505!important;padding:2.5mm 4mm!important;margin:0 auto 5mm!important}
@media(max-width:560px){.client-page{padding:10px 10px 30px}.client-logo-wrap{border-radius:10px;padding:10px 12px;margin-bottom:10px}.client-card{padding:18px 16px;border-radius:10px;margin-bottom:10px}.client-page dl{grid-template-columns:1fr;gap:4px;font-size:16px}.client-page dd{margin-bottom:10px}.client-page h2{font-size:21px}}
@media print{.client-sheet .printlogo{width:130mm!important;height:auto!important;max-height:none!important;object-fit:contain!important}}

/* ENTER SERWIS v0.9 – wydruki */
.print .device-printgrid p{font-size:13.5pt;line-height:1.3;margin:2.2mm 0;font-weight:500}
.print .device-printgrid p b{font-size:13.5pt}
.print .device-printgrid .print-secondary{font-size:11pt}
.print .device-printgrid .print-secondary b{font-size:11pt}
.print .cost-print,.print .cost-print tbody,.print .cost-print tr,.print .cost-print td,.print .cost-print th{background:#ededed!important;color:#000!important}
.print .cost-print tr.cost-total,.print .cost-print tr.cost-total th{background:#dcdcdc!important;color:#000!important}
.print .cost-print{print-color-adjust:exact;-webkit-print-color-adjust:exact;border-color:#888}
.unlock-print{display:flex;align-items:center;min-height:24mm;border:1px solid #888;background:#f2f2f2;padding:2.5mm;margin-bottom:2mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.password-print{font-size:14pt;word-break:break-word}
.pattern-print{width:34mm;height:34mm;display:block;background:#fff;border:1px solid #aaa}
.pattern-lines line{stroke:#111;stroke-width:4;stroke-linecap:round}
.pattern-lines marker path{fill:#111}
.pattern-dots circle{fill:#fff;stroke:#111;stroke-width:2}
.pattern-dots circle.active{fill:#ddd;stroke-width:3}
.pattern-dots text{font:7px Arial,sans-serif;fill:#111;pointer-events:none}
@media print{
  .print .device-printgrid p,.print .device-printgrid p b{font-size:13.5pt!important}
  .print .device-printgrid .print-secondary,.print .device-printgrid .print-secondary b{font-size:11pt!important}
  .print .cost-print,.print .cost-print *{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
}

/* V1.0 — pełnoekranowa karta klienta na telefon */
.client-body{margin:0;min-height:100dvh;background:#09090b;color:#fff;-webkit-text-size-adjust:100%;font-size:18px}
.client-page{display:block;width:100%;max-width:900px;min-height:100dvh;margin:0 auto;padding:0 0 36px}
.client-logo-wrap{width:100%;margin:0 0 14px;padding:18px 16px;background:#050505;border:0;border-bottom:3px solid var(--red);border-radius:0;overflow:visible;text-align:center}
.client-logo-wrap .client-logo{display:block;width:100%;max-width:720px;height:auto;max-height:none;margin:0 auto;object-fit:contain;object-position:center}
.client-page>.client-card,.client-page>.client-notice{margin-left:14px;margin-right:14px}
.client-card{padding:26px 22px;border-radius:16px;margin-bottom:14px;box-shadow:0 8px 26px rgba(0,0,0,.28)}
.client-code{font-size:clamp(30px,9vw,48px);line-height:1.08;margin-bottom:16px}
.client-page .status{font-size:20px;padding:10px 16px}
.client-page dl{grid-template-columns:1fr;gap:5px;margin-top:26px;font-size:19px}
.client-page dt{font-size:15px;text-transform:uppercase;letter-spacing:.05em;margin-top:9px}
.client-page dd{font-size:21px;line-height:1.3;margin:0 0 8px}
.client-page h2{font-size:27px;line-height:1.2}
.client-page p{font-size:18px;line-height:1.55}
.client-page input{min-height:60px;font-size:19px;padding:14px;border-radius:10px}
.client-page button{min-height:60px;font-size:19px;font-weight:700;border-radius:10px}
.client-page .email-card form{display:grid;grid-template-columns:1fr;gap:12px}
.client-page .email-card small{display:block;margin-top:12px;color:#bbb;line-height:1.45}
.client-page .update-item{padding:19px;border-radius:12px}
.client-page .update-item b{font-size:19px}.client-page .update-item p{font-size:18px}
@media(max-width:600px){.client-logo-wrap{padding:16px 12px}.client-page>.client-card,.client-page>.client-notice{margin-left:10px;margin-right:10px}.client-card{padding:22px 18px}.client-logo-wrap .client-logo{width:100%;max-width:none}}


/* V1.1 — powiadomienia klienta */
.notify-check{display:flex!important;align-items:center;gap:10px;padding:14px;border:1px solid #444;border-radius:8px;background:#151519}.notify-check input{width:20px;height:20px}
.email-result{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:9px;border-top:1px solid #333}.email-result.wysłano small{color:#8fe09b}.email-result.błąd small,.email-result.brak_email small,.email-result.niepotwierdzony small{color:#ffb0b0}.mini-button{display:inline-block;padding:5px 9px;border:1px solid #666;border-radius:6px;font-size:12px;text-decoration:none;color:#fff}

/* ENTER SERWIS v1.3 — priorytety, wydruk pilny i SMTP */
.priority-badge{display:inline-block;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.03em;border:1px solid #555;vertical-align:middle}
.priority-normal{background:#2a2a30;color:#ddd}.priority-urgent{background:#a54b00;color:#fff;border-color:#e98c3b}.priority-critical{background:#b00020;color:#fff;border-color:#ff6d83;box-shadow:0 0 0 2px rgba(227,6,19,.2)}.priority-vip{background:#5b2b82;color:#fff;border-color:#a96be0}
.urgent-row td:first-child{border-left:6px solid #e30613}.urgent-row{background:rgba(227,6,19,.045)}.urgent-kpi{border-left-color:#ff3b30!important;background:linear-gradient(135deg,#451217,#17090b)!important}
.urgent-print-banner{margin:0 0 4mm;padding:3mm 5mm;border:4px solid #111;background:#eee!important;color:#000!important;text-align:center;font-size:22pt;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.urgent-print-banner.priority-critical{border-width:6px;background:#e4e4e4!important}.urgent-print-banner.priority-vip{border-style:double;border-width:6px}
.smtp-test{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;margin-top:16px}.smtp-buttons{display:flex;gap:8px;flex-wrap:wrap}.smtp-buttons button{min-height:42px}.mail-status{display:inline-block;padding:4px 8px;border-radius:12px;font-weight:700;font-size:12px}.mail-ok{background:#176d36;color:#dfffe8}.mail-error{background:#7b1b1b;color:#ffe2e2}.mail-error-text{white-space:normal;min-width:260px;max-width:580px;line-height:1.35}
@media(max-width:760px){.smtp-test{grid-template-columns:1fr}.smtp-buttons{display:grid}.smtp-buttons button{width:100%}}
@media print{.urgent-print-banner{display:block!important;color:#000!important;background:#eee!important;border-color:#000!important}.priority-badge{border:1px solid #000;color:#000;background:#eee}}
.service-sheet .urgent-print-banner{margin:-1mm 0 2mm;padding:1.8mm 4mm;font-size:18pt;line-height:1.05}
.service-sheet:has(.urgent-print-banner) .printnotes{min-height:31mm}
@media print{.service-sheet .urgent-print-banner{margin:-1mm 0 2mm;padding:1.8mm 4mm;font-size:18pt}}

/* v1.3.1 — czytelna diagnostyka SMTP */
.smtp-result-panel{margin:12px 0 18px;padding:16px 18px;font-size:17px;font-weight:800;border:2px solid #1f8b3b;background:#edf9f0;color:#0d5c24;scroll-margin-top:16px}
.smtp-result-panel.error{border-color:#c91f2d;background:#fff0f1;color:#8d111b}
.smtp-detected{margin:12px 0 18px;padding:13px 15px;background:#f2f2f2;color:#202024;border-left:5px solid #e30613;line-height:1.45}
.smtp-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.smtp-buttons button{min-height:44px}
@media(max-width:720px){.smtp-buttons{display:grid;grid-template-columns:1fr}.smtp-buttons button{width:100%}.smtp-result-panel{font-size:16px}}

/* ENTER SERWIS v1.3.3 — diagnostyka */
.diag-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:14px;margin:18px 0}
.diag-kpi{background:#fff;color:#17171b;border:1px solid #ddd;border-radius:14px;padding:18px;text-align:center;box-shadow:0 3px 12px rgba(0,0,0,.05)}
.diag-kpi b{display:block;font-size:34px;line-height:1;color:#111}.diag-kpi span{display:block;margin-top:8px;font-weight:700;color:#303038}
.diag-kpi.diag-ok{border-top:5px solid #17843b}.diag-kpi.diag-warning{border-top:5px solid #d69b00}.diag-kpi.diag-error{border-top:5px solid #d71920}.diag-kpi.diag-info{border-top:5px solid #2869b2}
.diag-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diag-actions .notify-check{margin-left:auto}
.diag-results h3{margin:26px 0 10px;padding-bottom:8px;border-bottom:2px solid #eee}.diag-group{display:grid;gap:8px}
.diag-item{display:grid;grid-template-columns:14px 1fr;gap:12px;align-items:start;padding:12px 14px;border:1px solid #e1e1e1;border-radius:10px;background:#fafafa;color:#17171b}
.diag-item b{color:#111}.diag-item p{margin:4px 0 0;color:#35353b}.diag-item summary{color:#17171b}.diag-dot{width:12px;height:12px;border-radius:50%;margin-top:4px;background:#777}
.diag-item.diag-ok .diag-dot{background:#17843b}.diag-item.diag-warning .diag-dot{background:#d69b00}.diag-item.diag-error .diag-dot{background:#d71920}.diag-item.diag-info .diag-dot{background:#2869b2}
.diag-item.diag-error{border-left:5px solid #d71920;background:#fff7f7}.diag-item.diag-warning{border-left:5px solid #d69b00;background:#fffaf0}
.diag-item details{margin-top:8px}.diag-item pre,.diag-log pre,.card>pre{white-space:pre-wrap;word-break:break-word;background:#171717;color:#f5f5f5;padding:12px;border-radius:8px;overflow:auto;font-size:12px}
.diag-log-tabs details{border:1px solid #ddd;border-radius:10px;margin:10px 0;background:#fff;color:#17171b}.diag-log-tabs summary{cursor:pointer;font-weight:700;padding:14px;color:#17171b}
.diag-log{padding:0 14px 14px;max-height:560px;overflow:auto;color:#17171b}.diag-log article{border-top:1px solid #eee;padding:12px 0}.diag-log article>b{color:#111}.diag-log article>span{display:block;color:#666;font-size:12px;margin-top:3px}.diag-log article p{margin:7px 0;color:#2f2f35}.diag-log>p{color:#333}
@media(max-width:760px){.diag-summary{grid-template-columns:repeat(2,1fr)}.diag-actions{display:grid}.diag-actions .notify-check{margin-left:0}.diag-kpi b{font-size:28px}}

/* ENTER SERWIS v1.3.4 — odzyskiwanie hasła */
.login-help{display:block;margin-top:14px;text-align:center;color:#ddd;text-decoration:underline;font-weight:700}
.loginbox .notice{margin:0 0 14px;text-align:left}
.loginbox p{line-height:1.45}
#security{scroll-margin-top:18px}
#security textarea{min-height:96px}

/* ENTER SERWIS v1.3.5 — komunikat logowania i kontrast diagnostyki */
.loginbox .notice.error{color:#fff;background:#7a151b;border-color:#dc4c55;font-weight:700}
