:root{--page-w:210mm;--page-h:297mm;--marg-top:10mm;--marg-right:10mm;--marg-bottom:10mm;--marg-left:10mm;--gap:4mm;--cols:3;--rows:8;--cW:70mm;--cH:45mm;--qr:24mm;--border:1px dashed #b9c0d4;--radius:0;--pad:3mm;--font-scale:1;--bg-size:cover;--bg-opacity:1;--qr-top:3mm;--qr-left:3mm;--id-top:30mm;--id-left:3mm;--title-top:3mm;--title-left:35mm;--num-top:35mm;--num-left:55mm;--ui-bg:#e8e8e8;--ui-border:#e7e9f2;--ui-accent:#2f6feb;--ui-text:#111;--chip-bg:#f6f7fb;--muted:#6b7280}
@page { size: A4 portrait; margin: 0; }

/* ORIENTACJA zależnie od okna druku – JEDYNE @page w pliku */
@media print and (orientation:portrait){
  @page { size: A4 portrait; margin: 0; }
  .sheet { width:210mm !important; height:297mm !important; }
}
@media print and (orientation:landscape){
  @page { size: A4 landscape; margin: 0; }
  .sheet { width:297mm !important; height:210mm !important; }
}

@media print {
  .noprint { display:none !important; }

  html, body { margin:0; width:auto; height:auto; }
  .container { display:block !important; }
  .left { display:none !important; }
  .right { width:100% !important; }
  .preview-wrap {
    padding:0 !important;
    margin:0 !important;
    display:block !important;
    justify-content:flex-start !important;
  }

  .sheet {
    margin:0 !important;
    box-shadow:none !important;
    border:0 !important;
    overflow:hidden;
    display:block;

    break-inside:avoid;
    page-break-inside:avoid;
  }
  /* Nowa strona tylko przed kolejnymi arkuszami */
  .sheet + .sheet {
    break-before:page !important;
    page-break-before:always !important;
  }

  .grid, .coupon {
    break-inside:avoid;
    page-break-inside:avoid;
  }

  * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}

.sheet{width:var(--page-w);height:var(--page-h);background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.1);position:relative;overflow:hidden}
.sheet.landscape{width:var(--page-h);height:var(--page-w)}
.sheet:not(:last-child){break-after:page}
.sheet { width:210mm; height:297mm; }     /* pion */
.sheet.landscape { width:297mm; height:210mm; } /* poziom */
a,a:hover{text-decoration:none;}
a:hover{opacity:.7;}
body{margin:0;background:#fff;color:var(--ui-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial}
header.topbar{position:sticky;top:0;z-index:20;background:black;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#fff}
header.topbar a{color:#fff}
.topbar .brand{display:flex;align-items:center;gap:8px;font-weight:800}
.topbar .actions{display:flex;gap:8px;align-items:center}
.btn{border:1px solid #111;background:#888;color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:600}
.btn.secondary{border-color:var(--ui-accent);background:var(--ui-accent)}
.btn.ghost{background:#fff;color:#111;border:1px solid var(--ui-border)}
.btn:hover{filter:brightness(1.08)}
.btn:focus{outline:2px solid #2f6feb55;outline-offset:2px}
.icon{font-size:1.6em;line-height:1.2}
.fa-solid{font-size:1.6em;line-height:1.2}
.fa-regular{font-size:1.6em;line-height:1.2}
.fa-brands{font-size:1.6em;line-height:1.2}
.btn i{margin-right:6px}
.section .title i{font-size:1.8em}
.drawer{position:fixed;inset:0 0 auto 0;transform:translateY(-100%);transition:transform .25s ease;z-index:30;background:var(--ui-bg);border-bottom:1px solid var(--ui-border);padding:12px}
.drawer.open{transform:translateY(0);background: steelblue;}
.drawer .row{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.field{display:flex;flex-direction:column;gap:4px;min-width:140px}
.field label{font-size:12px;color:#444}
.field input,.field select{font-size:14px;padding:4px 5px;border:1px solid #dcdfe6;border-radius:10px;background:#fff;min-width:10ch}
.field input[type=number]{width:10ch}
.field input.wide{min-width:22ch}
.section{margin:12px;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:14px;padding:12px}
.section .title{display:flex;gap:8px;align-items:center;font-weight:800;margin-bottom:8px}
.section .title .muted{color:var(--muted);font-weight:500}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.scan-qr{width:100%;text-align:center;display:none}
@media (max-width:720px){.grid2{grid-template-columns:1fr}.scan-qr{width:100%;text-align:center;display:block}}
.kpis{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:#333;margin:0 12px}
.k{background:#fafbff;border:1px solid #eceff6;border-radius:10px;padding:6px 10px}
.preview-wrap{padding:12px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

.grid{position:absolute;inset:var(--marg-top) var(--marg-right) var(--marg-bottom) var(--marg-left);display:grid;grid-template-columns:repeat(var(--cols),var(--cW));grid-template-rows:repeat(var(--rows),var(--cH));gap:var(--gap);align-content:start;justify-content:start}
.coupon{position:relative;border:var(--border);border-radius:var(--radius);padding:var(--pad);width:100%;height:100%;overflow:hidden}
.coupon .bgimg{position:absolute;inset:0;background-position:center;background-repeat:no-repeat;background-size:var(--bg-size);opacity:var(--bg-opacity);pointer-events:none;z-index:0}
.coupon>.content{position:relative;z-index:1;width:100%;height:100%}
.coupon.grid-layout .content{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto;gap:6px 8px;align-items:start}
.qrblock{grid-row:1/span 3;grid-column:1;width:var(--qr);display:flex;flex-direction:column;align-items:center;gap:4px}
.qrblock img{width:var(--qr);height:var(--qr);display:block;object-fit:contain;user-drag:none;user-select:none}
.fullid{font-size:calc(9px * var(--font-scale));text-align:center;word-break:break-all;line-height:1.1;max-width:var(--qr)}
.txt-title{grid-row:1;grid-column:2;font-size:calc(12px * var(--font-scale));font-weight:700;line-height:1.1;word-break:break-word}
.txt-num{grid-row:3;grid-column:2;align-self:end;justify-self:end;font-size:calc(18px * var(--font-scale));font-weight:800;letter-spacing:.5px}
.coupon.inline .content{display:flex;align-items:center;gap:8px;white-space:nowrap}
.coupon.inline .fitrow{display:flex;align-items:center;gap:8px;transform-origin:left center}
.coupon.inline .qrblock{position:static;width:auto}
.coupon.inline .fullid{max-width:none}
.coupon.inline .txt-title{font-weight:700;min-width:0}
.coupon.inline .txt-num{margin-left:auto;font-weight:800}
.coupon.free .content{position:relative}
.draggable{position:absolute;cursor:move;touch-action:none}
.free .qrblock{width:auto}
.free .qrblock img{width:var(--qr);height:var(--qr)}
.free .fullid-abs{font-size:calc(9px * var(--font-scale));line-height:1.1;word-break:break-all;max-width:calc(var(--cW) - 6mm)}
.free .txt-title-abs{font-size:calc(12px * var(--font-scale));font-weight:700}
.free .txt-num-abs{font-size:calc(18px * var(--font-scale));font-weight:800;letter-spacing:.5px}
.footer{position:absolute;left:0;right:0;bottom:4mm;text-align:center;font-size:10px;color:#999}
.warn{background:#fff5f5;color:#a40000;border:1px solid #f2caca;padding:8px 10px;border-radius:10px}
.ok{background:#f4fff6;color:#0a7a2d;border:1px solid #ccebd6;padding:8px 10px;border-radius:10px}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px}
.btn-group .btn.active{border-color:var(--ui-accent);color:#fff;background:var(--ui-accent)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0px;border-bottom:1px dashed var(--ui-border);padding-bottom:6px}
.section-body{padding:0 12px 12px;display:flex;gap:1em;background:#eee;display:flex;flex-wrap:wrap;}
.toggle-btn{border:1px solid var(--ui-border);background:#fff;color:#111;border-radius:10px;padding:6px 10px;cursor:pointer}
.toggle-btn .sym{display:inline-block;min-width:1ch}
.radio-line{display:flex;gap:10px;align-items:center}
.inline-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.w100{width:100px}
.btn-toggle{border:1px solid var(--ui-border);background:#fff;color:#111;padding:8px 10px;border-radius:10px;cursor:pointer}
.btn-toggle.active{border-color:var(--ui-accent);background:var(--ui-accent);color:#fff}
.micro-label{font-size:15px;color:#444;margin-right:6px;font-weight:600;}
.icon-xl i{font-size:1.4em}
.section-head{cursor:pointer}
.section-head .toggle-btn{cursor:pointer}
.file-menu{display:flex;gap:1em;justify-content:center;align-items:center;}
.left{width:25%;min-width:350px;}
.right{width:70%;display:flex;flex-direction:column;}

/* układ wiersza */
.inline-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}

/* PIERWSZA etykieta w wierszu jako nagłówek nad opcjami */
.inline-row>.micro-label:first-child{flex-basis:100%;display:block;font-size:12px;color:#444;margin:0 0 4px}

/* nadpisz ewentualne inline style (margin-left itd.) */
.inline-row>.micro-label[style]{margin:0 0 4px !important}

/* drobne: ikonka przy nagłówku wiersza */
.inline-row>.micro-label i{margin-right:6px}
/* Etykieta roli – absolutnie pozycjonowana (tryb Ręczne) */ 
.txt-role-abs{   position:absolute;   font-weight:600;   font-size:calc(10px * var(--font-scale));   line-height:1.1;   letter-spacing:.2px;   white-space:nowrap; }  
.badge-role{   display:inline-block;   border:1px dashed currentColor;   padding:1px 6px;   border-radius:6px;   font-weight:600;   line-height:1.1;   font-size:0.9em;   margin-left:6px;   white-space:nowrap; }

body.loginPage{min-height:100vh;margin:0;display:flex;align-items:center;justify-content:center;background:var(--ui-bg);color:var(--ui-text);padding:24px;flex-direction:column}
body.loginPage form{padding:20px 24px;max-width:420px;width:100%;margin:12px 0}
body.loginPage h1,body.loginPage h2{text-align:center;margin:0 0 10px;font-weight:800}
body.loginPage label{display:block;margin-bottom:12px;font-size:.9rem}
body.loginPage input{width:100%;padding:8px 10px;border:1px solid #ccc;border-radius:8px;font-size:1rem}
body.loginPage button{display:block;width:100%;padding:10px 14px;border:0;border-radius:8px;background:var(--ui-accent);color:#fff;font-weight:600;cursor:pointer;transition:background .2s}
body.loginPage button:hover{background:#1d4ed8}
body.loginPage p{text-align:center}
body.loginPage a{color:var(--ui-accent);text-decoration:none;font-size:.9rem}
body.loginPage a:hover{text-decoration:underline}
#dbProjects{min-width:220px}
.file-menu{flex-wrap:wrap;gap:.6rem}

.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:1000}
.modal.open{display:flex}
.modal .box{background:#fff;width:80%;height:80%;padding:20px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
.modal .box .row{display:flex;flex-direction:column;gap:2em;margin:2em;width:50vh;}
.modal .box .row .grow, .modal .box .btn{font-size:1.4em;display:flex;flex-direction:column;gap:1em}
.close{position:absolute;top:1em;right:1em;}
.modal .box .chosen-single, .modal .box .chosen-results{font-size:1.3em;padding:.5em;display:block}
#btnLoadFromFile{display:none}
/* Chosen w modalach – większa typografia i pełna szerokość */
.modal .box .chosen-container{font-size:1em;width:100%!important}
.modal .box .chosen-container-single .chosen-single{height:1.5em;line-height:1.5em;padding:0 .5em;border-radius:8px}
.modal .box .chosen-container .chosen-drop{font-size:1em}
.modal .box .chosen-search input[type=text]{height: 2em;line-height: 1.5em;padding: .4em .8em;font-size: 2em;}
.modal .box .chosen-results li{padding:.5em 1em}
.modal .box .chosen-results li.highlighted{border-radius:6px}
#loadFilePopup{font-size:2em;}
.btnbar{display:flex;gap:2em}
.k.title{font-size:2em;}
#regenerate{display:none;}
.inline-row.colors-option{flex-direction:column;}
.colors-row{display:flex;flex-direction:row;gap:1em;justify-content:flex-end;align-items:center;}

/* żeby wrapper miał sensowną szerokość (zamiast 50vh, które bywa wąskie) */
.modal .box .row{width:min(720px,90%)}

/* wejściowy <select> z klasą .grow + buttony w jednym rozmiarze */
.modal .box .row .grow,.modal .box .btn{font-size:1em}
.modal .box .row .grow{width:100%}
#posFreeRow{display:none;}
#bgOpacity{width:120px;vertical-align:middle}
.coupon{position:relative}
.coupon .resize-h{position:absolute;right:4px;bottom:4px;width:16px;height:16px;cursor:nwse-resize;border:1px solid #98a1c0;border-radius:3px;background:linear-gradient(135deg,transparent 50%,#98a1c0 50%)}
#bgColor{border:none;background:none;padding:0;min-width:50px;min-height:50px;}
.qrblock img {   border: 0px solid #fff; }

body.profilePage{font-family:system-ui,sans-serif;background:#fff;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;min-height:100vh}
.profilePage h1{margin:1em 0;color:#222;font-size:2em}
.profilePage form{background:#fff;padding:2em;border-radius:8px;display:flex;flex-direction:column;gap:1em;width:100%;max-width:400px}
.profilePage label{font-weight:500;font-size:.95em;display:flex;flex-direction:column;gap:.25em}
.profilePage input{padding:.5em .75em;border:1px solid #ccc;border-radius:6px;font-size:1em}
.profilePage button{padding:.6em 1.2em;border:none;border-radius:6px;background:#2f6feb;color:#fff;font-size:1em;cursor:pointer}
.profilePage button:hover{background:#1e56d8}
.profilePage p{text-align:center;margin-top:1.5em}
.profilePage a{color:#2f6feb;text-decoration:none}
.profilePage a:hover{text-decoration:underline}

.logo-it{position:absolute;left:0;top:0;user-select:none;touch-action:none}
.logo-it img{display:block;pointer-events:none;max-width:none}
.logo-it .rz{position:absolute;right:-6px;bottom:-6px;width:16px;height:16px;cursor:nwse-resize;border:1px solid #98a1c0;border-radius:3px;background:linear-gradient(135deg,transparent 50%,#98a1c0 50%)}
.logo-it .rm{position:absolute;right:-6px;top:-6px;width:18px;height:18px;line-height:16px;text-align:center;font-size:12px;border-radius:9px;background:#fff;border:1px solid #d2d7ea;cursor:pointer}


body.adminUsers{background:#f5f6fa;font-family:sans-serif;padding:20px}
body.adminUsers h1{text-align:center;margin-bottom:1em}
body.adminUsers .msg{margin:1em auto;max-width:600px;padding:.8em 1em;border-radius:6px;font-weight:bold;text-align:center}
body.adminUsers .msg.ok{background:#e6ffed;color:#045d21;border:1px solid #b8e4c2}
body.adminUsers .msg.err{background:#ffe6e6;color:#a60000;border:1px solid #f0b3b3}
body.adminUsers table{border-collapse:collapse;margin:0 auto 2em;width:90%;max-width:1000px;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}
body.adminUsers th,body.adminUsers td{border:1px solid #ddd;padding:.5em .75em;text-align:left}
body.adminUsers th{background:#fafafa;font-weight:600}
body.adminUsers tr:nth-child(even){background:#f9f9f9}
body.adminUsers .actions{display:flex;gap:.5em}
body.adminUsers .actions form{display:inline}
body.adminUsers .btn{padding:.3em .6em;border:1px solid #ccc;border-radius:4px;text-decoration:none;font-size:.9em;cursor:pointer}
body.adminUsers .btn.edit{background:#eaf4ff;color:#0645ad;border-color:#bcdcff}
body.adminUsers .btn.delete{background:#ffeaea;color:#b10000;border-color:#f5bcbc}


body.adminUser{font-family:system-ui,sans-serif;background:#f8f9fb;margin:0;padding:0;color:#222}
body.adminUser h2{margin:1rem 0;text-align:center;font-size:1.6rem}
body.adminUser .topbar2{display:flex;justify-content:space-between;align-items:center;background:#2f6feb;color:#fff;padding:.6rem 1rem;font-weight:600}
body.adminUser .topbar2 .badge{background:#fff;color:#2f6feb;padding:.2rem .6rem;border-radius:12px;font-size:.9rem}
body.adminUser .msg{margin:1rem auto;padding:.7rem 1rem;max-width:800px;border:1px solid #ccc;border-radius:6px;background:#eef8ee;color:#155724}
body.adminUser .msg.err{background:#fbeaea;color:#721c24;border-color:#e0a8a8}
body.adminUser .table{width:100%;border-collapse:collapse;margin:1rem auto;max-width:1000px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.08)}
body.adminUser .table th,body.adminUser .table td{border:1px solid #ddd;padding:.5rem .7rem;text-align:left}
body.adminUser .table th{background:#f0f2f6;font-weight:600}
body.adminUser .actions{display:flex;gap:.4rem;flex-wrap:wrap}
body.adminUser .btn{display:inline-block;padding:.4rem .8rem;font-size:.9rem;border:none;border-radius:4px;text-decoration:none;cursor:pointer;background:#2f6feb;color:#fff;transition:background .2s}
body.adminUser .btn:hover{background:#244fba}
body.adminUser .btn.ghost{background:#eee;color:#222;}
body.adminUser .btn.ghost:hover{background:#ddd}
body.adminUser .btn.danger{background:#c0392b}
body.adminUser .btn.danger:hover{background:#922b21}
body.adminUser .btn.primary{background:#28a745}
body.adminUser .btn.primary:hover{background:#1e7e34}
body.adminUser .form{max-width:600px;margin:1rem auto;padding:1rem;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
body.adminUser .form .row{margin:.7rem 0;display:flex;flex-direction:column;gap:.3rem}
body.adminUser .form label{font-weight:500}
body.adminUser .form input,body.adminUser .form select{padding:.4rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}
body.adminUser .form select[multiple]{height:auto;min-height:120px}
body.adminUser .hint{font-size:.85rem;color:#666}
body.adminUsers .addbar{display:flex;align-items:center;gap:.5rem;margin:.75rem 0 0}
body.adminUsers .btn.circle{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:20px;line-height:1}

.page-verify{width:100%;}
.page-verify .verify.logged-in{margin:0 auto;max-width:100%;display:flex;justify-content:space-between;align-items:center;}
.page-verify .verify{max-width:50%;margin:4rem auto;padding:1.2rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff}
.page-verify .verify .ok{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;padding:.75rem;border-radius:8px}
.page-verify .verify .bad{color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca;padding:.75rem;border-radius:8px}
.page-verify .meta{margin-top:.75rem;color:#374151}
.page-verify .code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem}
.page-verify .btn{display:inline-block;background:#111827;color:#fff;border:0;padding:.55rem .9rem;border-radius:8px;cursor:pointer}
.page-verify .btn:disabled{opacity:.6;cursor:not-allowed}
.page-verify .note{margin-top:.75rem;color:#111827}


.btn.ghost{margin:0 1em;}

/* === REPORT PAGE === */
body.page-report{font-family:Arial,Helvetica,sans-serif;background:#f9f9fb;color:#111;margin:0;padding:0;}
.page-report .topbar{display:flex;align-items:center;justify-content:space-between;background:#2f6feb;color:#fff;padding:.5rem 1rem;}
.page-report .topbar .brand{font-weight:bold;font-size:1.1rem;}
.page-report .topbar .actions{display:flex;gap:.5rem;}
.page-report .topbar .btn{background:#fff;color:#2f6feb;padding:.35rem .75rem;border-radius:4px;text-decoration:none;font-size:.9rem;}
.page-report .topbar .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.6);}
.page-report .topbar .btn.disabled{opacity:.5;pointer-events:none}

.page-report main.container{max-width:1200px;margin:1rem auto;padding:0 1rem;}
.page-report form.filters input,.page-report form.filters select{padding:.35rem .5rem;font-size:.9rem;border:1px solid #ccc;border-radius:4px;}
.page-report form.filters .btn{padding:.4rem .8rem;background:#2f6feb;color:#fff;border:none;border-radius:4px;cursor:pointer;}

.page-report .kpis{display:flex;gap:1rem;margin:.5rem 0;flex-wrap:wrap;}
.page-report .kpis .k{background:#fff;border:1px solid #e1e4e8;border-radius:6px;padding:.25rem .75rem;font-size:.85rem;}

.page-report .table-wrap{background:#fff;border:1px solid #ddd;border-radius:6px;overflow:auto;}
.page-report table.table{border-collapse:collapse;width:100%;font-size:.9rem;}
.page-report table.table th, .page-report table.table td{padding:.5rem .75rem;border-bottom:1px solid #eee;text-align:left;white-space:nowrap;}
.page-report table.table th{background:#f3f4f6;font-weight:600;}
.page-report table.table td.mono{font-family:monospace;font-size:.85rem;}

.page-report .badge-ok{background:#d1fae5;color:#065f46;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;}
.page-report .badge-bad{background:#fee2e2;color:#991b1b;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;}

.page-report .warn{background:#fff3cd;color:#856404;border:1px solid #ffeeba;padding:.5rem .75rem;border-radius:4px;font-size:.85rem;}
.page-report .code{font-family:monospace;background:#f6f8fa;padding:0 .3rem;border-radius:3px;margin-left:.2rem;}

.page-report nav.pagination{display:flex;gap:.25rem;flex-wrap:wrap;}
.page-report nav.pagination .btn{font-size:.8rem;background:#fff;color:#2f6feb;border:1px solid #2f6feb;border-radius:4px;padding:.25rem .5rem;text-decoration:none;}
.page-report nav.pagination .btn.ghost{background:transparent;}
.page-report nav.pagination .btn.disabled{opacity:.4;pointer-events:none}


.txt-exp-abs{position:absolute;font-size:calc(12px*var(--font-scale));font-weight:600;}
.badge-exp{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:.35rem;background:rgba(17,24,39,.06);font-size:.85em;font-weight:600;}

.coupon{position:relative;border:none;border-radius:var(--radius);padding:var(--pad);width:100%;height:100%;overflow:hidden}
.coupon::before,.coupon::after,.coupon .corner{position:absolute;width:5mm;height:5mm;border:1px solid #999;z-index:2;pointer-events:none}
.coupon::before{top:0;left:0;border-right:none;border-bottom:none}
.coupon::after{bottom:0;right:0;border-left:none;border-top:none}
.coupon .corner.rt{top:0;right:0;border-left:none;border-bottom:none}
.coupon .corner.lb{bottom:0;left:0;border-top:none;border-right:none}

.txt-role-abs{line-height:1.3em;}

/* tryb Border OFF – ukryj narożniki */
.coupon.no-corners::before,
.coupon.no-corners::after,
.coupon.no-corners .corner{ display:none; }
.content { position: relative; width: 100%; height: 100%; overflow: hidden; }

.logo-it { position: absolute; line-height: 0; } /* zeroje baseline */
.logo-it img { display: block; }                 /* brak baseline pod obrazkiem */

/* standard desktop */
.coupons-table{width:100%;border-collapse:collapse}
.coupons-table th,.coupons-table td{border:1px solid #ddd;padding:.5rem;text-align:left}

/* mobile: nagłówki chowamy */
@media(max-width:768px){
  .coupons-table thead{display:none}
  .coupons-table,.coupons-table tbody,.coupons-table tr,.coupons-table td{display:block;width:100%}
  .coupons-table tr{margin-bottom:1rem;border:1px solid #ddd;border-radius:.5rem;padding:.5rem;background:#fff}
  .coupons-table td{border:none;padding:.25rem 0;display:flex;justify-content:space-between}
  .coupons-table td::before{    content:attr(data-label); /* ⬅️ tu wchodzi nazwa kolumny */    font-weight:bold;    margin-right:.5rem;    color:#555;  }
  body.loginPage form{width:90%;}
  .page-verify .verify{max-width:100%;}
}
.btn.danger{background:#c0392b;border-color:#c0392b;color:#fff}
.btn.danger:hover{filter:brightness(1.05)}

.card-public{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:.75rem}
.card-public .row{display:flex;justify-content:space-between;gap:.75rem;padding:.4rem 0;border-bottom:1px dashed #eee}
.card-public .row:last-child{border-bottom:0}
.card-public .lab{color:#444;font-size:.92rem;white-space:nowrap}
.card-public .val{font-weight:700}
.card-public .val.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f6f7fb;border:1px solid #eaecf5;border-radius:.35rem;padding:.1rem .35rem}
.card-public .row.action{justify-content:flex-end;padding-top:.6rem}
.card-public .ok,.card-public .bad{margin-bottom:.6rem;padding:.6rem .8rem;border-radius:.5rem}
@media(max-width:480px){.card-public .row{flex-wrap:wrap}.card-public .lab,.card-public .val{width:100%}.card-public .row.action{justify-content:stretch}.card-public .row.action .btn{width:100%;text-align:center}}



.colors-row{display:flex;align-items:center;gap:1rem;flex-wrap:nowrap;margin-bottom:.45rem}
.colors-row .micro-label{min-width:90px;font-weight:600}
.colors-row label{display:flex;align-items:center;gap:.35rem;font-size:.9rem;white-space:nowrap;flex-direction:column}
.colors-row input[type=number]{width:64px}
@media(max-width:768px){
    .section-body{width:100%;flex-direction:column;align-items:flex-start;gap:.4rem}
  .colors-row{flex-direction:row;align-items:flex-start;gap:.4rem}
  .colors-row .micro-label{min-width:auto}
  .colors-row label{white-space:normal}
}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:.4rem 1rem;background:#fff;border-bottom:1px solid #ddd}
.brand{font-weight:600}
.nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:1.2rem}
.nav-user{font-size:.9rem;color:#444}
.nav-item>a{color:#111;text-decoration:none;padding:.4rem .6rem;display:flex;align-items:center;gap:.35rem}
.nav-item>a:hover{background:rgb(106, 179, 232);border-radius:.3rem}

.has-sub{position:relative}
.sub-menu{position:absolute;top:100%;left:0;list-style:none;margin:0;padding:.35rem 0;min-width:200px;background:#fff;border:1px solid #ddd;border-radius:.4rem;box-shadow:0 6px 18px rgba(0,0,0,.08);display:none;z-index:90000}
.sub-menu li a{display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;color:#111;text-decoration:none;white-space:nowrap}
.sub-menu li a:hover{background:#f5f7fb}
.has-sub:hover>.sub-menu{display:block}

@media(max-width:768px){
  .nav-list{flex-direction:column;align-items:flex-start;gap:.4rem}
  .sub-menu{position:static;box-shadow:none;border:0;background:transparent;display:none}
  .has-sub:hover>.sub-menu{display:block}
}
