:root{
  --bg:#1c1f2e;--sf:#242738;--s2:#2a2d40;--s3:#30344a;
  --bd:rgba(255,255,255,.07);--b2:rgba(255,255,255,.13);
  --ac:#f5a623;--a2:#d4880f;--gn:#3ec97a;--rd:#e85d5d;--bl:#5b9cf6;
  --tx:#e8eaf0;--t2:#9ba3b8;--t3:#5d6580;
  --fn:'Sora',sans-serif;--mn:'DM Mono',monospace;--r:10px;--rs:7px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--fn);background:var(--bg);color:var(--tx);height:100vh;display:flex;flex-direction:column;overflow:hidden;}

.topbar{background:var(--sf);border-bottom:1px solid var(--bd);height:60px;display:flex;align-items:stretch;padding:0 16px;flex-shrink:0;}
.tl{display:flex;align-items:center;gap:9px;padding-right:16px;border-right:1px solid var(--bd);}

.logo-txt{font-size:13px;font-weight:600;}
.tabs{display:flex;align-items:stretch;flex:1;overflow-x:auto;padding-left:8px;}
.tab{display:flex;align-items:center;gap:7px;padding:0 12px;cursor:pointer;font-size:12px;color:var(--t3);border-bottom:2px solid transparent;white-space:nowrap;}
.tab:hover{color:var(--t2);}
.tab.active{color:var(--tx);border-bottom-color:var(--ac);}
.tab-x{opacity:0;font-size:13px;}
.tab:hover .tab-x{opacity:.5;}
.tab-x:hover{opacity:1!important;color:var(--rd);}
.tab-plus{display:flex;align-items:center;padding:0 10px;cursor:pointer;font-size:15px;color:var(--t3);}
.tab-plus:hover{color:var(--ac);}
.tr{display:flex;align-items:center;gap:6px;padding-left:14px;border-left:1px solid var(--bd);}

.wrap{display:flex;flex:1;overflow:hidden;}

.cp{width:210px;background:var(--sf);border-right:1px solid var(--bd);display:flex;flex-direction:column;flex-shrink:0;}
.cp-hdr{padding:12px 12px 8px;font-size:9px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);display:flex;align-items:center;justify-content:space-between;}
.cp-s{padding:0 8px 8px;}
.cp-list{flex:1;overflow-y:auto;}
.ci{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--bd);}
.ci:hover{background:var(--s2);}
.ci.on{background:rgba(245,166,35,.07);border-left:2px solid var(--ac);}
.ci-n{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ci-m{font-size:10px;color:var(--t3);margin-top:2px;}
.cp-f{padding:8px;}

.sb{background:var(--sf);border-right:1px solid var(--bd);overflow-y:auto;flex-shrink:0;width:0;display:none;flex-direction:column;}
.sb.open{display:flex;width:250px;}
.sbs{padding:14px 14px 10px;border-bottom:1px solid var(--bd);}
.sl{font-size:9px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;}
.fl{font-size:11px;color:var(--t2);margin-bottom:3px;display:block;}
.fg{margin-bottom:10px;}
input,select,textarea{width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:var(--rs);padding:7px 9px;color:var(--tx);font-size:12px;font-family:var(--mn);outline:none;}
input:focus,select:focus,textarea:focus{border-color:var(--ac);}
input[type=number]{-moz-appearance:textfield;}
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;}
input[type=range]{padding:0;background:transparent;border:none;accent-color:var(--ac);cursor:pointer;height:3px;flex:1;}
input[type=checkbox]{width:auto;padding:0;}
select{cursor:pointer;}select option{background:var(--s2);}
textarea{font-family:var(--fn);font-size:11px;resize:vertical;min-height:52px;}
.sr{display:flex;align-items:center;gap:8px;}
.sv{font-family:var(--mn);font-size:12px;font-weight:500;color:var(--ac);min-width:34px;text-align:right;}

.main{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px;}

.btn{background:transparent;border:1px solid var(--b2);color:var(--t2);padding:5px 11px;border-radius:var(--rs);font-size:11px;font-family:var(--fn);cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.btn:hover{background:var(--s2);color:var(--tx);}
.btna{background:var(--ac);border:none;color:#1a0e00;padding:5px 13px;border-radius:var(--rs);font-size:11px;font-weight:600;font-family:var(--fn);cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.btna:hover{background:var(--a2);}
.icn{background:transparent;border:none;color:var(--t3);cursor:pointer;padding:3px 5px;border-radius:4px;font-size:13px;line-height:1;}
.icn:hover{color:var(--rd);background:rgba(232,93,93,.1);}
.icn.ed:hover{color:var(--bl);background:rgba(91,156,246,.1);}

.panel{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;}
.ph{padding:12px 16px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;gap:8px;}
.pt{font-size:13px;font-weight:500;}

.scg{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.sc{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;}
.sc.hl{border-color:var(--ac);background:rgba(245,166,35,.05);}
.scl{font-size:9px;color:var(--t3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px;}
.scv{font-size:22px;font-weight:600;font-family:var(--mn);letter-spacing:-1px;}
.scv.ac{color:var(--ac);}
.scu{font-size:10px;color:var(--t3);margin-top:1px;}

.cat-section{border-bottom:1px solid var(--bd);}
.cat-hdr{padding:8px 14px;background:var(--s2);display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;}
.cat-hdr:hover{background:var(--s3);}
.cat-title{font-size:10px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--t2);flex:1;}
.cat-total{font-family:var(--mn);font-size:11px;color:var(--ac);margin-right:4px;}
.cat-toggle{font-size:10px;color:var(--t3);transition:transform .2s;}
.cat-act{font-size:15px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:6px;background:rgba(255,255,255,.07);border:1px solid var(--bd);color:var(--t2);transition:background .15s,color .15s,border-color .15s;}
.cat-act:hover{background:rgba(255,255,255,.16);color:#fff;border-color:var(--t3);}
.cat-toggle.open{transform:rotate(90deg);}
.cat-body{display:none;}
.cat-body.open{display:block;}
table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed;}
thead tr{background:var(--s2);}
th{padding:7px 12px;text-align:left;font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--t3);font-weight:500;border-bottom:1px solid var(--bd);}
td{padding:8px 12px;border-bottom:1px solid var(--bd);color:var(--t2);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
tbody tr:last-child td{border-bottom:none;}
.val-cell{font-family:var(--mn);color:var(--ac);font-weight:500;text-align:right;white-space:nowrap;}
.qi{width:100%!important;max-width:90px;padding:4px 7px!important;font-size:12px!important;text-align:right;box-sizing:border-box;}
.pi{width:100%!important;max-width:120px;padding:4px 7px!important;font-size:12px!important;text-align:right;box-sizing:border-box;}

.brow{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--bd);gap:10px;}
.brow:last-child{border-bottom:none;}
.bbar-w{flex:1;height:3px;background:var(--s3);border-radius:2px;overflow:hidden;}
.bbar{height:100%;border-radius:2px;}
.bname{width:175px;font-size:11px;color:var(--t2);flex-shrink:0;display:flex;align-items:center;gap:6px;}
.bamt{width:90px;text-align:right;font-family:var(--mn);font-size:11px;color:var(--tx);flex-shrink:0;}
.bpct{width:36px;text-align:right;font-family:var(--mn);font-size:10px;color:var(--t3);flex-shrink:0;}
.total-row{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-top:1px solid var(--b2);background:var(--s2);}
.total-lbl{font-size:14px;font-weight:500;}
.total-val{font-size:19px;font-weight:600;font-family:var(--mn);color:var(--ac);}

.qhdr{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;display:flex;gap:14px;align-items:flex-start;}
.qh-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.qhf label{font-size:9px;color:var(--t3);letter-spacing:.5px;text-transform:uppercase;display:block;margin-bottom:3px;}
.qh-right{display:flex;flex-direction:column;gap:5px;align-items:flex-end;min-width:130px;}

.qcard{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:12px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;}
.qcard:hover{border-color:var(--b2);background:var(--s2);}
.qc-num{font-family:var(--mn);font-size:10px;color:var(--t3);min-width:72px;}
.qc-info{flex:1;}
.qc-title{font-size:12px;font-weight:500;}
.qc-meta{font-size:10px;color:var(--t3);margin-top:2px;}
.qc-total{font-family:var(--mn);font-size:14px;font-weight:600;color:var(--ac);}
.badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;}
.bb{background:rgba(91,156,246,.15);color:var(--bl);}
.bg{background:rgba(62,201,122,.15);color:var(--gn);}
.ba{background:rgba(245,166,35,.15);color:var(--ac);}
.empty{text-align:center;padding:28px;color:var(--t3);font-size:12px;}
.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:14px;text-align:center;}
.welcome h2{font-size:20px;font-weight:600;}
.welcome p{font-size:12px;color:var(--t3);max-width:320px;}

.mo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:400;align-items:center;justify-content:center;}
.mo.show{display:flex;}
.modal{background:var(--sf);border:1px solid var(--b2);border-radius:var(--r);width:440px;max-width:96vw;padding:20px;max-height:90vh;overflow-y:auto;}
.mt{font-size:14px;font-weight:600;margin-bottom:16px;}
.mac{display:flex;gap:7px;justify-content:flex-end;margin-top:16px;}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.notes-wrap{padding:12px 16px;border-top:1px solid var(--bd);}
.notes-wrap textarea{background:var(--s2);border:1px solid var(--bd);color:var(--t2);min-height:60px;}

/* ── DRUK ─────────────────────────────────────────────────── */
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; font-family: Arial, Helvetica, sans-serif !important; }
  .pr-logo div { background: transparent !important; }

  body, html { background: #fff !important; color: #111 !important; height: auto !important; overflow: visible !important; font-family: 'Sora', Arial, sans-serif; }

  /* Ukryj całą aplikację */
  .topbar, .cp, .sb, .welcome, .clientView, #welcomeScreen, #clientView,
  #quoteView, .wrap, body > .wrap { display: none !important; }

  /* Pokaż tylko wydruk */
  #printView { display: block !important; }
}

#printView {
  display: none;
  padding: 32px 40px;
  font-family: 'Sora', Arial, sans-serif;
  color: #111;
  background: #fff;
  max-width: 900px;
  margin: 0 auto;
}

/* Nagłówek wydruku */
.pr-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
  padding-bottom: 18px;
  border-bottom: 2px solid #111;
}
.pr-logo img { height: 56px; width: auto; }
.pr-firm { text-align: right; font-size: 12px; color: #444; line-height: 1.7; }
.pr-firm strong { font-size: 15px; color: #111; display: block; }

/* Meta kosztorysu */
.pr-meta {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px 24px;
  margin-bottom: 24px;
  font-size: 12px;
}
.pr-meta-item { display: flex; flex-direction: column; }
.pr-meta-item span:first-child { font-size: 9px; text-transform: uppercase; letter-spacing: .6px; color: #888; margin-bottom: 2px; }
.pr-meta-item span:last-child { font-weight: 500; color: #111; }

/* Klient */
.pr-client {
  background: #f7f7f7;
  border: 1px solid #e6e6e6;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 24px;
  font-size: 12px;
  color: #222;
}
.pr-client-label { font-size: 9px; text-transform: uppercase; letter-spacing: .6px; color: #888; margin-bottom: 5px; }
.pr-client-name { font-size: 14px; font-weight: 600; color: #111; margin-bottom: 2px; }
.pr-client-line { line-height: 1.6; color: #444; }

/* Tabela prac */
.pr-section-title {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #888;
  margin: 20px 0 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid #ddd;
}
.pr-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10px;
  margin-bottom: 4px;
  table-layout: fixed;
}
.pr-table th {
  background: #f0f0f0;
  padding: 5px 7px;
  text-align: left;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: #555;
  border: 1px solid #ddd;
}
.pr-table td {
  padding: 5px 7px;
  border: 1px solid #e8e8e8;
  color: #222;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pr-table tr:nth-child(even) td { background: #fafafa; }
.pr-table .td-num { text-align: right; font-family: 'DM Mono', monospace; }
.pr-table .td-bold { font-weight: 600; }

/* Podsumowanie */
.pr-summary {
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
}
.pr-summary-box {
  width: 280px;
  border: 1px solid #ddd;
  border-radius: 6px;
  overflow: hidden;
  font-size: 12px;
}
.pr-sum-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 14px;
  border-bottom: 1px solid #eee;
  white-space: nowrap;
  gap: 12px;
}
.pr-sum-row span:first-child { flex: 1; }
.pr-sum-row span:last-child { flex-shrink: 0; white-space: nowrap; }
.pr-sum-row:last-child { border-bottom: none; background: #2a3550; color: #fff; font-weight: 600; font-size: 12px; white-space: nowrap; border-radius: 0 0 6px 6px; }
.pr-sum-row:last-child span:last-child { white-space: nowrap; font-size: 14px; font-family: 'DM Mono', monospace; }
.pr-sum-row.discount-row { background: #fff8ed; border-top: 2px solid #f5a623; border-bottom: 2px solid #f5a623; color: #b36b00; font-weight: 600; font-family: Arial, sans-serif; }
.pr-sum-row.discount-row span:last-child { color: #b36b00; font-weight: 700; }
.pr-sum-row span:last-child { font-family: 'DM Mono', monospace; }

/* Pomieszczenia */
.pr-rooms {
  margin-bottom: 20px;
}

/* Uwagi */
.pr-notes {
  margin-top: 20px;
  padding: 12px 16px;
  background: #f9f9f9;
  border-left: 3px solid #ddd;
  font-size: 11px;
  color: #444;
  line-height: 1.6;
}
.pr-notes strong { display: block; margin-bottom: 4px; font-size: 10px; text-transform: uppercase; letter-spacing: .6px; color: #888; }

/* Stopka */
.pr-footer {
  margin-top: 32px;
  padding-top: 14px;
  border-top: 1px solid #ddd;
  font-size: 10px;
  color: #aaa;
  display: flex;
  justify-content: space-between;
}

@page {
  margin: 1.5cm;
  /* Wyłącz nagłówki/stopki przeglądarki (URL, data) */
  margin-top: 1.5cm;
}
@media print {
  @page {
    margin: 1.5cm;
  }
}

/* ── TOOLTIPS ─────────────────────────────────────────────────────── */
.tip {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--s3);
  color: var(--t3);
  font-size: 9px;
  font-weight: 700;
  cursor: help;
  margin-left: 5px;
  vertical-align: middle;
  flex-shrink: 0;
  user-select: none;
}


/* ── EKRAN REJESTRACJI — responsywność ───────────────────────────── */
@media (max-width: 680px) {
  #regBenefits { display: none !important; }
}
