@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Syne:wght@400;600;700;800&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#fff;--surface:#f2f2f2;--border:#ccc;
  --red:#cc0000;--black:#000;--muted:#666;
  --green:green;
  --sans:'Syne',sans-serif;--mono:'DM Mono',monospace;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--black);font-family:'Times New Roman',Times,serif;min-height:100vh;line-height:1.6}
a{color:var(--black);text-decoration:none}
a:hover{color:var(--red);font-weight:bold}

/* ── HP TOP LOGO ── */
.hp-top{text-align:center;padding:14px 0 10px;border-bottom:1px solid var(--border)}
.hp-logo-top{height:52px;width:auto;display:inline-block}

/* ── PARTNER BAR ── */
.partner-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 0;font-size:12px}
.partner-bar .wrap{display:flex;align-items:center;justify-content:space-between;padding:0 24px}
.partner-bar__label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.partner-bar__right{display:flex;align-items:center;gap:14px}
.partner-bar__user{color:var(--muted)}
.partner-bar__user strong{color:var(--black)}
.partner-bar__link{font-size:12px;color:var(--muted)}
.partner-bar__link:hover{color:var(--red);font-weight:normal}

/* ── LOGOUT BTN ── */
.logout-btn{font-family:'Times New Roman',serif;font-size:12px;padding:4px 12px;border:1px solid var(--black);background:var(--bg);cursor:pointer;transition:all .15s}
.logout-btn:hover{background:var(--black);color:#fff}

/* ── WRAP ── */
.wrap{max-width:1100px;margin:0 auto;padding:32px 24px}

/* ── PAGE TITLE ── */
.page-title{font-size:22px;font-weight:bold;border-bottom:1px solid var(--black);padding-bottom:8px;margin-bottom:16px}
.page-title span{color:var(--red)}
.page-subtitle{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:24px}

/* ── SEARCH ── */
.search-section{margin-bottom:24px}
.search-row{display:flex;gap:0;border:1px solid var(--black);max-width:640px}
.search-field{flex:1;position:relative}
#searchInput{width:100%;border:none;outline:none;padding:10px 36px 10px 12px;font-family:var(--mono);font-size:13px;background:var(--bg)}
#searchInput::placeholder{color:var(--muted)}
.clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:14px;cursor:pointer;color:var(--muted);display:none;line-height:1}
.clear-btn:hover{color:var(--red)}
.search-btn{font-family:'Times New Roman',serif;font-size:13px;font-weight:bold;padding:10px 20px;border:none;border-left:1px solid var(--black);background:var(--black);color:#fff;cursor:pointer;white-space:nowrap}
.search-btn:hover{background:var(--red)}
.search-hint{font-size:11px;color:var(--muted);font-family:var(--mono);margin-top:6px}

/* ── FILTER CHIPS ── */
.filter-row{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;align-items:center;font-size:12px}
.filter-label{color:var(--muted);margin-right:4px}
.chip{font-family:var(--mono);font-size:11px;padding:3px 10px;border:1px solid var(--border);background:var(--bg);cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--black)}
.chip.active{background:var(--black);color:#fff;border-color:var(--black)}
.chip .cnt{opacity:.6;font-size:.9em}

/* ── STATS BAR ── */
.stats-bar{display:flex;align-items:center;gap:20px;font-size:12px;color:var(--muted);font-family:var(--mono);margin-bottom:12px;flex-wrap:wrap}
.result-info{margin-left:auto}
.result-info span{color:var(--black);font-weight:bold}

/* ── SECTION DIVIDER ── */
.section-divider{border-top:1px solid var(--black);margin-bottom:16px;padding-top:6px;font-size:11px;font-family:var(--mono);color:var(--muted)}

/* ── RESULTS TABLE ── */
.table-wrap{overflow-x:auto}
#partsTable{width:100%;border-collapse:collapse}
#partsTable th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 10px;text-align:left;border-bottom:2px solid var(--black);white-space:nowrap;background:var(--surface)}
#partsTable th:last-child{text-align:right}
#partsTable td{padding:8px 10px;font-size:13px;border-bottom:1px solid var(--border);vertical-align:middle}
#partsTable tr:hover td{background:var(--surface)}
.td-brand{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.td-pn{font-family:var(--mono);font-size:12px;font-weight:bold;white-space:nowrap}
.td-pn mark,.td-name mark{background:#ffff99;color:var(--black);padding:0 1px}
.td-name{color:var(--black);line-height:1.4;max-width:360px}
.td-price{font-family:var(--mono);font-size:12px;font-weight:bold;text-align:right;white-space:nowrap}
.vat-note{display:block;font-size:10px;font-weight:normal;color:var(--muted)}
.td-action{text-align:right}

/* ── ADD TO CART BTN ── */
.add-cart-btn{font-family:'Times New Roman',serif;font-size:11px;padding:5px 12px;border:1px solid var(--black);background:var(--bg);cursor:pointer;transition:all .15s;white-space:nowrap}
.add-cart-btn:hover,.add-cart-btn.in-cart{background:var(--black);color:#fff;border-color:var(--black)}

/* ── LOADING ── */
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--black);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:6px}
.loading-row td{text-align:center;padding:32px;font-family:var(--mono);font-size:12px;color:var(--muted)}

/* ── EMPTY STATE ── */
#emptyState{display:none;text-align:center;padding:60px 20px;border:1px dashed var(--border)}
#emptyState h3{font-size:16px;margin-bottom:6px}
#emptyState p{font-size:12px;color:var(--muted);font-family:var(--mono)}

/* ── PAGINATION ── */
.pagination{display:flex;gap:4px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.pg-btn{font-family:var(--mono);font-size:12px;padding:5px 10px;border:1px solid var(--border);background:var(--bg);cursor:pointer;min-width:32px;text-align:center}
.pg-btn:hover{border-color:var(--black);background:var(--surface)}
.pg-btn.active{background:var(--black);color:#fff;border-color:var(--black)}
.pg-btn:disabled{opacity:.3;cursor:not-allowed}
.pg-ellipsis{font-family:var(--mono);font-size:12px;color:var(--muted);padding:5px 4px}

/* ── HP FOOTER ── */
.hp-footer{margin-top:40px;text-align:center;padding:20px 0 16px;border-top:1px solid var(--border)}
.hp-footer__img{max-width:500px;width:70%;display:inline-block}

/* ── TOAST ── */
.toast{position:fixed;bottom:20px;right:20px;background:var(--black);color:#fff;font-family:var(--mono);font-size:12px;padding:10px 16px;transform:translateY(20px);opacity:0;transition:all .25s;z-index:9999;pointer-events:none}
.toast.show{transform:translateY(0);opacity:1}
.toast.err{background:var(--red)}

/* ── KOSZYK PRZYCISK ── */
.cart-toggle-btn{font-family:'Times New Roman',serif;font-size:12px;padding:4px 14px;border:1px solid var(--black);background:var(--bg);cursor:pointer;display:flex;align-items:center;gap:6px}
.cart-toggle-btn:hover{background:var(--black);color:#fff}
.cart-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;background:var(--muted);color:#fff;font-size:10px;font-family:var(--mono);border-radius:50%;padding:0 4px;transition:background .2s}

/* ── KOSZYK OVERLAY ── */
.cart-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:8000}
.cart-overlay.open{display:block}

/* ── KOSZYK PANEL ── */
.cart-panel{position:fixed;top:0;right:-440px;width:420px;max-width:96vw;height:100vh;background:var(--bg);border-left:2px solid var(--black);z-index:8100;display:flex;flex-direction:column;transition:right .25s ease;box-shadow:-4px 0 24px rgba(0,0,0,.12)}
.cart-panel.open{right:0}
.cart-panel__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:2px solid var(--black);background:var(--surface);flex-shrink:0}
.cart-panel__header h3{font-size:15px;font-weight:bold}
.cart-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted);line-height:1;padding:2px 4px}
.cart-close:hover{color:var(--red)}
.cart-panel__body{flex:1;overflow-y:auto;padding:16px}
.cart-empty{text-align:center;padding:48px 20px;color:var(--muted);font-size:13px;line-height:1.8}
.cart-table{width:100%;border-collapse:collapse;font-size:12px}
.cart-table th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:5px 6px;border-bottom:1px solid var(--black);text-align:left;background:var(--surface)}
.cart-table td{padding:8px 6px;border-bottom:1px solid var(--border);vertical-align:middle}
.cart-pn strong{display:block;font-family:var(--mono);font-size:11px;font-weight:bold}
.cart-name{display:block;font-size:11px;color:var(--muted);line-height:1.3;margin-top:2px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cart-price{font-family:var(--mono);font-size:11px;white-space:nowrap}
.cart-qty-cell{width:56px}
.cart-qty-input{width:52px;border:1px solid var(--border);padding:4px 6px;font-family:var(--mono);font-size:12px;text-align:center;outline:none}
.cart-qty-input:focus{border-color:var(--black)}
.cart-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px}
.cart-remove:hover{color:var(--red)}
.cart-panel__footer{padding:14px 16px;border-top:2px solid var(--black);background:var(--surface);flex-shrink:0}
.cart-summary{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:10px}
.cart-summary strong{color:var(--black)}
.cart-buttons{display:flex;gap:8px;margin-bottom:6px}
.cart-buttons button{flex:1}
.cart-calc-btn{background:var(--bg);color:var(--black);border:1px solid var(--black);padding:10px;font-family:'Times New Roman',serif;font-size:12px;font-weight:bold;cursor:pointer}
.cart-calc-btn:hover{background:var(--surface)}
.cart-send-btn{width:100%;background:var(--black);color:#fff;border:none;padding:11px;font-family:'Times New Roman',serif;font-size:13px;font-weight:bold;cursor:pointer;margin-bottom:6px;letter-spacing:.02em}
.cart-send-btn:hover{background:var(--red)}
.cart-clear-btn{width:100%;background:var(--bg);color:var(--muted);border:1px solid var(--border);padding:7px;font-family:'Times New Roman',serif;font-size:12px;cursor:pointer}
.cart-clear-btn:hover{border-color:var(--red);color:var(--red)}

/* ── KALKULATOR MODAL ── */
.calc-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9000;align-items:center;justify-content:center;padding:20px}
.calc-modal.open{display:flex}
.calc-card{background:var(--bg);border:2px solid var(--black);width:100%;max-width:820px;max-height:88vh;display:flex;flex-direction:column}
.calc-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:2px solid var(--black);background:var(--surface);flex-shrink:0}
.calc-header h3{font-size:15px;font-weight:bold}
.calc-body{flex:1;overflow-y:auto;padding:20px}
.calc-footer{display:flex;gap:8px;padding:14px 20px;border-top:2px solid var(--black);background:var(--surface);flex-shrink:0;flex-wrap:wrap}
.calc-footer button{flex:1;min-width:120px}
.calc-delivery-row{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.calc-delivery-row label{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.calc-delivery-row select{font-family:var(--mono);font-size:12px;border:1px solid var(--black);padding:6px 10px;background:var(--bg)}
.calc-brand-group{margin-bottom:20px}
.calc-brand-title{font-size:13px;font-weight:bold;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--black);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.calc-transport-note{font-family:var(--mono);font-size:10px;color:var(--muted);font-weight:normal}
.calc-table{width:100%;border-collapse:collapse;font-size:12px}
.calc-table th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:5px 8px;border-bottom:1px solid var(--black);text-align:left;background:var(--surface);white-space:nowrap}
.calc-table td{padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
.calc-table tr:hover td{background:var(--surface)}
.calc-pn{font-family:var(--mono);font-size:11px;font-weight:bold;white-space:nowrap}
.calc-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calc-num{font-family:var(--mono);font-size:11px;text-align:right;white-space:nowrap}
.calc-final{font-weight:bold}
.calc-summary-block{margin-top:16px;padding:14px;border:2px solid var(--black);background:var(--surface)}
.calc-summary-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;padding:4px 0;border-bottom:1px solid var(--border)}
.calc-summary-total{font-weight:bold;font-size:14px;border-bottom:none;margin-top:4px;padding-top:6px;border-top:2px solid var(--black)}
.calc-note{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:10px;line-height:1.6}

/* ── LOGIN PAGE ── */
.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:var(--surface)}
.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:var(--surface)}
.login-card{width:100%;max-width:360px;background:var(--bg);border:1px solid var(--black);padding:32px}
.login-card__sub{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:20px}
.login-card h2{font-size:18px;font-weight:bold;margin-bottom:18px}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}
.form-group input,.form-group select{width:100%;border:1px solid var(--black);padding:9px 10px;font-family:var(--mono);font-size:13px;background:var(--bg);outline:none;appearance:none}
.form-group input:focus,.form-group select:focus{border-color:var(--red);outline:2px solid rgba(204,0,0,.15)}
.login-btn,.add-btn,.save-btn{width:100%;background:var(--black);color:#fff;border:none;padding:11px;font-family:'Times New Roman',serif;font-size:14px;font-weight:bold;cursor:pointer;margin-top:6px;letter-spacing:.03em}
.login-btn:hover,.add-btn:hover,.save-btn:hover{background:var(--red)}
.login-btn:disabled{opacity:.5;cursor:not-allowed}
.login-error{background:#fff0f0;border:1px solid var(--red);color:var(--red);font-family:var(--mono);font-size:12px;padding:8px 12px;margin-bottom:14px;display:none}
.cookie-note{margin-top:14px;font-size:10px;color:var(--muted);font-family:var(--mono);line-height:1.6;text-align:center;border-top:1px solid var(--border);padding-top:12px}
.cookie-note a{color:inherit;text-decoration:underline}

/* ── BOSS / ADMIN PAGE ── */
.boss-header,.admin-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:2px solid var(--black);background:var(--bg);position:sticky;top:0;z-index:10;flex-wrap:wrap;gap:10px}
.add-form{border:1px solid var(--black);padding:20px;margin-bottom:28px;background:var(--surface)}
.add-form h3{font-size:14px;font-weight:bold;margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:8px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.form-grid .form-group{margin:0}
.add-btn{width:auto;padding:9px 24px;margin-top:0}
.users-table{width:100%;border-collapse:collapse}
.users-table th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 10px;text-align:left;border-bottom:2px solid var(--black);background:var(--surface);white-space:nowrap}
.users-table td{padding:9px 10px;font-size:13px;border-bottom:1px solid var(--border);vertical-align:middle}
.users-table tr:hover td{background:var(--surface)}
.login-cell{font-family:var(--mono);font-size:12px;font-weight:bold}
.role-badge{font-family:var(--mono);font-size:10px;padding:2px 7px;border:1px solid var(--black);text-transform:uppercase;letter-spacing:.05em}
.role-admin{background:var(--black);color:#fff}
.role-partner{background:var(--bg);color:var(--black)}
.status-on{color:var(--green);font-family:var(--mono);font-size:12px}
.status-off{color:var(--red);font-family:var(--mono);font-size:12px}
.action-btn{font-family:'Times New Roman',serif;font-size:11px;padding:3px 9px;border:1px solid var(--border);background:var(--bg);cursor:pointer;transition:all .15s;white-space:nowrap;margin-left:3px}
.action-btn:hover{border-color:var(--black);background:var(--surface)}
.action-btn.danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.action-btn.success:hover{background:var(--green);color:#fff;border-color:var(--green)}
.pw-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9000;align-items:center;justify-content:center}
.pw-modal.open{display:flex}
.pw-modal__card{background:var(--bg);border:1px solid var(--black);padding:28px;width:100%;max-width:340px}
.pw-modal__card h3{font-size:16px;margin-bottom:4px}
.pw-modal__card .sub{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:16px}
.pw-modal__actions{display:flex;gap:8px;margin-top:12px}
.pw-modal__actions button{flex:1}
.cancel-btn{background:var(--bg);border:1px solid var(--black);color:var(--black);padding:9px;font-family:'Times New Roman',serif;font-size:13px;cursor:pointer}
.cancel-btn:hover{background:var(--surface)}

/* ── PRIVACY ── */
.privacy-body h2{font-size:14px;font-weight:bold;margin:28px 0 8px;border-left:3px solid var(--black);padding-left:10px}
.privacy-body p{font-size:13px;line-height:1.8;color:#222;margin-bottom:8px}
.privacy-body ul{margin:6px 0 8px 20px;font-size:13px;line-height:1.8;color:#222}
.privacy-body code{font-family:var(--mono);font-size:11px;background:var(--surface);padding:1px 5px;border:1px solid var(--border)}
.privacy-body a{color:var(--black);text-decoration:underline}
.privacy-body a:hover{color:var(--red)}

/* ── ANIMATIONS ── */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
#partsTable tbody tr,.users-table tbody tr{animation:fadeIn .2s ease both}

/* ── RESPONSIVE ── */
@media(max-width:640px){
  .partner-bar .wrap,.boss-header,.admin-header{padding:10px 14px}
  .wrap{padding:20px 14px}
  .partner-bar__user{display:none}
  #partsTable th:nth-child(1),#partsTable td:nth-child(1){display:none}
  .form-grid{grid-template-columns:1fr}
  .search-btn{padding:10px 14px;font-size:.8rem}
  .cart-panel{width:100%;max-width:100%}
}
