:root {
  --portal-primary: #175cd3;
  --portal-primary-dark: #1849a9;
  --portal-primary-soft: #eff8ff;
  --portal-ink: #101828;
  --portal-muted: #667085;
  --portal-border: #e4e7ec;
  --portal-surface: #ffffff;
  --portal-bg: #f8fafc;
  --portal-success: #039855;
  --portal-warning: #dc6803;
  --portal-danger: #d92d20;
  --portal-radius: 16px;
  --portal-shadow: 0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.04);
  --portal-shadow-lg: 0 12px 32px rgba(16,24,40,.10);
}

* { box-sizing: border-box; }
html { background: var(--portal-bg); }
body.portal-body {
  min-height: 100vh;
  height: auto !important;
  overflow-x: hidden;
  overflow-y: auto !important;
  margin: 0;
  color: var(--portal-ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(23,92,211,.07), transparent 30rem),
    var(--portal-bg) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.portal-container { width: min(1180px, calc(100% - 32px)); margin-inline: auto; }
.portal-main { padding: 32px 0 56px; }

.main-nav {
  position: sticky !important;
  top: 0;
  z-index: 50;
  min-height: 72px;
  padding: 0 !important;
  background: rgba(255,255,255,.94) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--portal-border) !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.04) !important;
  backdrop-filter: blur(12px);
}
.main-nav__inner { min-height: 72px; display: flex; align-items: center; gap: 24px; }
.main-nav .logo img { width: auto; height: 38px; object-fit: contain; }
.main-nav__links { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.main-nav__link {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 42px; padding: 0 14px; border-radius: 10px;
  color: #475467; font-size: 14px; font-weight: 600;
  border: 1px solid transparent; transition: .18s ease;
}
.main-nav__link:hover { color: var(--portal-primary-dark); background: var(--portal-primary-soft); }
.main-nav__link.is-active { color: var(--portal-primary-dark); background: #eef4ff; }
.main-nav__link--primary { color: #fff !important; background: var(--portal-primary); box-shadow: 0 1px 2px rgba(16,24,40,.08); }
.main-nav__link--primary:hover { background: var(--portal-primary-dark); }
.main-nav__company { display:flex; align-items:center; gap:8px; padding-left:16px; border-left:1px solid var(--portal-border); }
.main-nav__company select { max-width: 220px; min-height: 40px; border:1px solid #d0d5dd; border-radius:10px; padding:0 34px 0 12px; color:#344054; background:#fff; font-size:14px; }
.main-nav__logout { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:10px; color:#b42318; }
.main-nav__logout:hover { background:#fef3f2; }
.menu-toggle { margin-left:auto; width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; color:#344054 !important; }
.menu-toggle:hover { background:#f2f4f7; }
.menu-links { top:72px !important; border-top:1px solid var(--portal-border); padding:16px !important; box-shadow:var(--portal-shadow-lg) !important; }

.portal-page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:24px; }
.portal-eyebrow { color:var(--portal-primary); text-transform:uppercase; letter-spacing:.08em; font-size:12px; font-weight:700; margin-bottom:6px; }
.portal-title, body.portal-body h1 { color:var(--portal-ink) !important; letter-spacing:-.025em; }
.portal-subtitle { color:var(--portal-muted); margin-top:6px; font-size:14px; }

body.portal-body .bg-white { border-color: var(--portal-border); }
body.portal-body .shadow, body.portal-body .shadow-md, body.portal-body .shadow-lg, body.portal-body .shadow-sm { box-shadow: var(--portal-shadow); }
body.portal-body .rounded-lg { border-radius: 14px; }
body.portal-body .rounded-xl { border-radius: var(--portal-radius); }
body.portal-body .border-b { border-color: var(--portal-border); }
body.portal-body .text-blue-700, body.portal-body .text-blue-800, body.portal-body .text-blue-600 { color: var(--portal-primary-dark); }
body.portal-body .bg-blue-600 { background-color: var(--portal-primary); }
body.portal-body .hover\:bg-blue-700:hover { background-color: var(--portal-primary-dark); }

.portal-card, body.portal-body form.bg-white, body.portal-body main .bg-white {
  background: var(--portal-surface);
  border: 1px solid var(--portal-border);
  box-shadow: var(--portal-shadow);
}

body.portal-body input:not([type="hidden"]), body.portal-body select, body.portal-body textarea {
  border-color:#d0d5dd !important; border-radius:10px !important; box-shadow:0 1px 2px rgba(16,24,40,.04) !important;
  color:#101828; background-color:#fff; transition:border-color .15s, box-shadow .15s;
}
body.portal-body input:not([type="hidden"]):focus, body.portal-body select:focus, body.portal-body textarea:focus {
  outline:none !important; border-color:#84adff !important; box-shadow:0 0 0 4px rgba(23,92,211,.12) !important;
}
body.portal-body label { color:#344054 !important; font-weight:600 !important; }
body.portal-body button, body.portal-body a { transition:.18s ease; }

/* Panel zgłoszeń */
#slider > div > div { border:1px solid var(--portal-border); border-radius:var(--portal-radius) !important; box-shadow:var(--portal-shadow); }
#slider h3 { color:#344054 !important; font-size:15px; padding:14px 12px; }
#slider .dynamic-scroll > div { background:#fcfcfd; border-top:1px solid #f2f4f7; border-bottom:0 !important; border-radius:10px; padding:14px !important; }
.komentarze > div > div { border-radius:12px !important; box-shadow:none !important; }

/* Tabele */
body.portal-body table { border-collapse:separate; border-spacing:0; width:100%; }
body.portal-body thead th { background:#f9fafb !important; color:#475467 !important; font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
body.portal-body tbody td { border-color:#eaecf0 !important; color:#344054; }
body.portal-body tbody tr:hover td { background:#fcfcfd; }

/* Logowanie */
.portal-login { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr); }
.portal-login__brand { padding:64px; display:flex; flex-direction:column; justify-content:space-between; background:linear-gradient(145deg,#0b3b91,#175cd3 62%,#2970ff); color:#fff; }
.portal-login__brand img { width:170px; filter:brightness(0) invert(1); }
.portal-login__brand-copy { max-width:560px; }
.portal-login__brand h1 { font-size:44px; line-height:1.08; font-weight:750; letter-spacing:-.035em; color:#fff !important; }
.portal-login__brand p { margin-top:18px; color:#d1e9ff; font-size:17px; line-height:1.65; }
.portal-login__content { display:flex; align-items:center; justify-content:center; padding:40px; background:#fff; }
.portal-login__box { width:min(420px,100%); }
.portal-login__box h2 { font-size:30px; color:var(--portal-ink) !important; letter-spacing:-.025em; }
.portal-login__box .login-card { border:0; box-shadow:none; padding:0; }

@media (max-width: 900px) {
  .portal-login { grid-template-columns:1fr; }
  .portal-login__brand { display:none; }
  .portal-login__content { min-height:100vh; padding:28px 20px; }
  .main-nav__desktop { display:none !important; }
}
@media (max-width: 767px) {
  .portal-container { width:min(100% - 24px,1180px); }
  .portal-main { padding-top:24px; }
  .portal-page-header { flex-direction:column; }
  #slider > div > div { border-radius:14px !important; }
}

/* =========================================================
   PREMIUM CLIENT PORTAL THEME
   Warstwa wyłącznie wizualna — bez zmian w logice formularzy.
   ========================================================= */
:root {
  --premium-navy: #0b1739;
  --premium-navy-2: #101f49;
  --premium-blue: #2f6fed;
  --premium-cyan: #42b8f5;
  --premium-gold: #d8ad62;
  --premium-bg: #f3f6fb;
  --premium-panel: rgba(255,255,255,.88);
  --premium-border: rgba(15,35,75,.10);
  --premium-shadow: 0 14px 40px rgba(18,38,75,.09);
  --premium-shadow-hover: 0 20px 54px rgba(18,38,75,.14);
}

body.portal-body:not(:has(.portal-login)) {
  background:
    radial-gradient(circle at 5% -10%, rgba(47,111,237,.15), transparent 32rem),
    radial-gradient(circle at 96% 18%, rgba(66,184,245,.10), transparent 28rem),
    linear-gradient(180deg, #f7f9fd 0%, var(--premium-bg) 100%) !important;
}

body.portal-body:not(:has(.portal-login))::before {
  content:"";
  position:fixed;
  inset:72px 0 auto;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(216,173,98,.55), transparent);
  z-index:49;
  pointer-events:none;
}

/* Premium navigation */
body.portal-body:not(:has(.portal-login)) .main-nav {
  min-height:78px;
  background:linear-gradient(110deg, rgba(10,23,56,.98), rgba(16,36,82,.97)) !important;
  border-bottom:1px solid rgba(255,255,255,.09) !important;
  box-shadow:0 12px 36px rgba(5,17,45,.16) !important;
  backdrop-filter:blur(18px);
}
body.portal-body:not(:has(.portal-login)) .main-nav__inner { min-height:78px; }
.main-nav__brand { gap:11px; text-decoration:none; min-width:max-content; }
.main-nav__brand-mark {
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; padding:8px;
  background:#fff; border:1px solid rgba(255,255,255,.38);
  border-radius:14px; box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.main-nav .main-nav__brand-mark img { width:100%; height:100%; object-fit:contain; }
.main-nav__brand-copy { display:flex; flex-direction:column; line-height:1.12; }
.main-nav__brand-copy strong { color:#fff; font-size:14px; letter-spacing:.01em; }
.main-nav__brand-copy small { color:#aebfe6; font-size:10px; margin-top:4px; text-transform:uppercase; letter-spacing:.10em; }
body.portal-body:not(:has(.portal-login)) .main-nav__link { color:#c8d3eb; }
body.portal-body:not(:has(.portal-login)) .main-nav__link:hover { color:#fff; background:rgba(255,255,255,.09); }
body.portal-body:not(:has(.portal-login)) .main-nav__link.is-active {
  color:#fff; background:rgba(255,255,255,.12); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
body.portal-body:not(:has(.portal-login)) .main-nav__link--primary {
  background:linear-gradient(135deg, #3978f6, #235ed9) !important;
  box-shadow:0 8px 22px rgba(29,91,218,.35), inset 0 1px rgba(255,255,255,.2);
}
body.portal-body:not(:has(.portal-login)) .main-nav__link--primary:hover { transform:translateY(-1px); }
body.portal-body:not(:has(.portal-login)) .main-nav__company { border-left-color:rgba(255,255,255,.13); }
body.portal-body:not(:has(.portal-login)) .main-nav__company > i { color:#9eb3dd !important; }
body.portal-body:not(:has(.portal-login)) .main-nav__company select {
  color:#eef3ff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.16);
}
body.portal-body:not(:has(.portal-login)) .main-nav__company select option { color:#101828; background:#fff; }
body.portal-body:not(:has(.portal-login)) .main-nav__logout { color:#ffb4ae; }
body.portal-body:not(:has(.portal-login)) .main-nav__logout:hover { color:#fff; background:rgba(255,99,99,.14); }
body.portal-body:not(:has(.portal-login)) .menu-toggle { color:#fff !important; }

/* Page composition */
body.portal-body:not(:has(.portal-login)) .portal-main,
body.portal-body:not(:has(.portal-login)) main.flex-grow { padding-top:38px !important; }
body.portal-body:not(:has(.portal-login)) main > .container,
body.portal-body:not(:has(.portal-login)) .portal-container { position:relative; }
body.portal-body:not(:has(.portal-login)) h1 {
  font-weight:760 !important; letter-spacing:-.035em !important; color:var(--premium-navy) !important;
}
body.portal-body:not(:has(.portal-login)) h2,
body.portal-body:not(:has(.portal-login)) h3 { letter-spacing:-.015em; }

/* Universal premium surfaces */
body.portal-body:not(:has(.portal-login)) .portal-card,
body.portal-body:not(:has(.portal-login)) form.bg-white,
body.portal-body:not(:has(.portal-login)) main .bg-white,
body.portal-body:not(:has(.portal-login)) .rounded.shadow,
body.portal-body:not(:has(.portal-login)) .rounded-lg.shadow,
body.portal-body:not(:has(.portal-login)) .rounded-xl.shadow {
  background:var(--premium-panel) !important;
  border:1px solid var(--premium-border) !important;
  box-shadow:var(--premium-shadow) !important;
  backdrop-filter:blur(12px);
}
body.portal-body:not(:has(.portal-login)) main .bg-white:hover { box-shadow:var(--premium-shadow-hover); }

/* Dashboard ticket columns */
.page-dashboard #slider > div { gap:18px !important; }
.page-dashboard #slider > div > div {
  overflow:hidden; border:1px solid var(--premium-border) !important;
  background:rgba(255,255,255,.9); box-shadow:var(--premium-shadow) !important;
  transition:transform .2s ease, box-shadow .2s ease;
}
.page-dashboard #slider > div > div:hover { transform:translateY(-3px); box-shadow:var(--premium-shadow-hover) !important; }
.page-dashboard #slider h3 {
  min-height:58px; margin:0; padding:17px 18px !important;
  background:linear-gradient(180deg,#fff,#fafcff); border-bottom:1px solid #edf1f7 !important;
  font-size:15px; font-weight:750;
}
.page-dashboard #slider .dynamic-scroll { padding:12px !important; background:rgba(245,248,253,.7); }
.page-dashboard #slider .dynamic-scroll > div {
  background:#fff !important; border:1px solid #e7ecf4 !important; border-left-width:4px !important;
  border-radius:14px !important; padding:15px !important; box-shadow:0 5px 16px rgba(18,38,75,.05);
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.page-dashboard #slider .dynamic-scroll > div:hover { transform:translateY(-1px); box-shadow:0 10px 25px rgba(18,38,75,.09); }
.page-dashboard .komentarze > div > div { padding:9px 12px !important; border-radius:12px !important; }
.page-dashboard .komentarz-form input { min-height:42px; }

/* Buttons */
body.portal-body:not(:has(.portal-login)) button.bg-blue-600,
body.portal-body:not(:has(.portal-login)) a.bg-blue-600 {
  background:linear-gradient(135deg,#3978f6,#235ed9) !important;
  border:0; box-shadow:0 7px 18px rgba(35,94,217,.23); font-weight:650;
}
body.portal-body:not(:has(.portal-login)) button.bg-blue-600:hover,
body.portal-body:not(:has(.portal-login)) a.bg-blue-600:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(35,94,217,.30); }
body.portal-body:not(:has(.portal-login)) button { border-radius:10px !important; }

/* Inputs */
body.portal-body:not(:has(.portal-login)) input:not([type="hidden"]),
body.portal-body:not(:has(.portal-login)) select,
body.portal-body:not(:has(.portal-login)) textarea {
  min-height:44px; background:rgba(255,255,255,.96) !important;
}
body.portal-body:not(:has(.portal-login)) textarea { min-height:120px; }

/* Orders and reports */
.page-orders main > .container,
.page-reports main > .container,
.page-ticket main > .container,
.page-new-ticket main > .container { max-width:1180px; }
.page-orders .relative.flex.justify-center,
.page-reports .relative.flex.justify-center {
  min-height:66px; padding:10px 150px; background:rgba(255,255,255,.82);
  border:1px solid var(--premium-border); border-radius:16px; box-shadow:0 8px 25px rgba(18,38,75,.06);
}
.page-orders table, .page-reports table { border-radius:16px; overflow:hidden; }
.page-orders thead th, .page-reports thead th {
  padding-top:14px !important; padding-bottom:14px !important;
  background:linear-gradient(180deg,#13264f,#0d1d40) !important; color:#fff !important;
}
.page-orders tbody td, .page-reports tbody td { padding-top:13px !important; padding-bottom:13px !important; }
.page-orders tbody tr.bg-blue-50 td { background:#f7faff !important; }

/* Status and priority badges */
body.portal-body:not(:has(.portal-login)) .bg-red-600 { background:#d92d20 !important; }
body.portal-body:not(:has(.portal-login)) .bg-yellow-500 { background:#eaaa08 !important; color:#3f2d00 !important; }
body.portal-body:not(:has(.portal-login)) .bg-green-600 { background:#079455 !important; }
body.portal-body:not(:has(.portal-login)) span.rounded.text-white.text-xs {
  border-radius:999px !important; padding:4px 9px !important; box-shadow:inset 0 1px rgba(255,255,255,.25);
}

/* Mobile */
@media (max-width: 900px) {
  body.portal-body:not(:has(.portal-login)) .main-nav { min-height:70px; }
  body.portal-body:not(:has(.portal-login)) .main-nav__inner { min-height:70px; }
  .main-nav__brand-copy { display:none; }
  body.portal-body:not(:has(.portal-login)) .menu-links {
    top:70px !important; background:rgba(255,255,255,.98) !important; border-radius:0 0 18px 18px;
  }
}
@media (max-width: 767px) {
  body.portal-body:not(:has(.portal-login)) .portal-main,
  body.portal-body:not(:has(.portal-login)) main.flex-grow { padding-top:24px !important; }
  .page-orders .relative.flex.justify-center,
  .page-reports .relative.flex.justify-center { padding:72px 12px 12px; align-items:flex-end; }
  .page-orders .relative.flex.justify-center > .absolute,
  .page-reports .relative.flex.justify-center > .absolute { top:12px; }
  .page-dashboard #slider > div { gap:0 !important; }
  .page-dashboard #slider > div > div { transform:none !important; }
}

/* Premium refinement v2 */
.main-nav__company {
  position:relative;
  min-width:250px;
  padding:7px 42px 7px 10px !important;
  border-left:0 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:14px;
  background:rgba(255,255,255,.07);
}
.main-nav__company-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#dbe7ff; background:rgba(255,255,255,.10); flex:0 0 auto; }
.main-nav__company-copy { min-width:0; display:flex; flex-direction:column; line-height:1.12; }
.main-nav__company-copy small { color:#91a7d5; font-size:9px; letter-spacing:.11em; text-transform:uppercase; }
.main-nav__company-copy strong { max-width:150px; margin-top:4px; color:#fff; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.portal-body:not(:has(.portal-login)) .main-nav__company select {
  position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer;
  color:#101828 !important; background:#fff !important;
}
body.portal-body:not(:has(.portal-login)) .main-nav__company::after { content:'\f078'; font-family:'Font Awesome 5 Free'; font-weight:900; position:absolute; right:14px; top:50%; transform:translateY(-50%); color:#b9c8e9; font-size:11px; pointer-events:none; }

.menu-toggle { display:none; width:42px; height:42px; margin-left:auto; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.07); align-items:center; justify-content:center; flex-direction:column; gap:4px; }
.menu-toggle span { width:18px; height:2px; border-radius:999px; background:#fff; transition:.2s ease; }
.menu-toggle.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity:0; }
.menu-toggle.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
.menu-links { position:absolute; left:0; right:0; top:78px; padding:14px 16px 18px; z-index:60; box-shadow:0 22px 40px rgba(5,17,45,.18); }

.dashboard-hero { display:flex; align-items:stretch; justify-content:space-between; gap:24px; margin-bottom:30px; padding:30px; border:1px solid rgba(15,35,75,.10); border-radius:24px; background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(244,248,255,.88)); box-shadow:0 18px 48px rgba(18,38,75,.09); overflow:hidden; position:relative; }
.dashboard-hero::after { content:''; position:absolute; width:240px; height:240px; right:-80px; top:-120px; border-radius:50%; background:radial-gradient(circle,rgba(47,111,237,.15),transparent 68%); }
.dashboard-hero__content { position:relative; z-index:1; max-width:680px; }
.dashboard-hero__eyebrow,.section-kicker { display:inline-flex; align-items:center; gap:8px; color:#2f6fed; font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.dashboard-hero h1 { margin:10px 0 8px; font-size:32px; line-height:1.1; }
.dashboard-hero p { max-width:620px; color:#667085; font-size:14px; line-height:1.65; }
.dashboard-company-card { position:relative; z-index:1; min-width:300px; display:flex; align-items:center; gap:14px; padding:17px 18px; border-radius:18px; background:linear-gradient(145deg,#0f214a,#122c63); color:#fff; box-shadow:0 14px 32px rgba(11,31,72,.22); }
.dashboard-company-card__icon { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:rgba(255,255,255,.10); color:#bdd0f5; font-size:18px; }
.dashboard-company-card__copy { display:flex; flex-direction:column; min-width:0; }
.dashboard-company-card__copy small { color:#9fb4df; font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
.dashboard-company-card__copy strong { margin-top:5px; max-width:210px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
.dashboard-company-card__copy em { margin-top:5px; color:#bdcae5; font-size:10px; font-style:normal; }

.tickets-section { padding:24px; border:1px solid rgba(15,35,75,.09); border-radius:24px; background:rgba(255,255,255,.72); box-shadow:0 14px 38px rgba(18,38,75,.07); }
.tickets-section__head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:20px; }
.tickets-section__head h2 { margin:5px 0 4px; font-size:23px; color:#0b1739; font-weight:780; }
.tickets-section__head p { color:#7a8699; font-size:13px; }
.tickets-section__cta { display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:0 18px; border-radius:12px; color:#fff !important; background:linear-gradient(135deg,#3978f6,#235ed9) !important; box-shadow:0 9px 22px rgba(35,94,217,.25); font-size:13px; font-weight:750; text-decoration:none; white-space:nowrap; }
.tickets-section__cta:hover { transform:translateY(-1px); box-shadow:0 12px 28px rgba(35,94,217,.32); }

@media (max-width: 900px) {
  .menu-toggle { display:flex !important; }
  .main-nav__desktop { display:none !important; }
  .dashboard-hero { flex-direction:column; padding:24px; }
  .dashboard-company-card { min-width:0; width:100%; }
}
@media (min-width: 901px) { .menu-links { display:none !important; } }
@media (max-width: 767px) {
  .dashboard-hero h1 { font-size:27px; }
  .tickets-section { padding:18px 12px; margin-left:-2px; margin-right:-2px; }
  .tickets-section__head { align-items:stretch; flex-direction:column; padding:0 4px; }
  .tickets-section__cta { justify-content:center; width:100%; }
  .dashboard-company-card__copy strong { max-width:220px; }
}

/* Ticket overview v3 */
.ticket-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.ticket-summary{display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:14px 16px!important;border:1px solid #e4eaf3!important;border-radius:15px!important;background:#fff!important;color:#475467!important;box-shadow:0 5px 16px rgba(18,38,75,.04);transition:.18s ease}.ticket-summary span{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.ticket-summary strong{font-size:22px;color:#101828}.ticket-summary.is-active{border-color:#9dbcfb!important;background:linear-gradient(135deg,#f6f9ff,#edf4ff)!important;box-shadow:0 9px 24px rgba(47,111,237,.12)}.ticket-summary.is-active span,.ticket-summary.is-active strong{color:#235ed9}.ticket-list{display:flex;flex-direction:column;gap:12px}.ticket-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;overflow:hidden;padding:20px 20px 20px 25px;border:1px solid #e5eaf2;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(18,38,75,.045);transition:.18s ease}.ticket-row:hover{transform:translateY(-1px);border-color:#c8d6ec;box-shadow:0 12px 28px rgba(18,38,75,.085)}.ticket-row[hidden]{display:none}.ticket-row__accent{position:absolute;left:0;top:0;bottom:0;width:5px}.ticket-row__accent--high{background:#d92d20}.ticket-row__accent--medium{background:#eaaa08}.ticket-row__accent--low{background:#12b76a}.ticket-row__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ticket-row__identity{min-width:0}.ticket-row__number{display:block;margin-bottom:4px;color:#98a2b3;font-size:10px;font-weight:800;letter-spacing:.08em}.ticket-row__identity h3{margin:0;color:#101828;font-size:16px;font-weight:780}.ticket-row__badges{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.ticket-badge,.ticket-priority{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.ticket-badge--new{background:#eef4ff;color:#235ed9}.ticket-badge--progress{background:#fff7e0;color:#8a5b00}.ticket-badge--closed{background:#ecfdf3;color:#027a48}.ticket-priority{background:#f2f4f7;color:#475467}.ticket-priority i{font-size:6px}.ticket-priority--high i{color:#d92d20}.ticket-priority--medium i{color:#eaaa08}.ticket-priority--low i{color:#12b76a}.ticket-row__description{margin:12px 0;color:#5f6c7f;font-size:13px;line-height:1.65}.ticket-row__meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:#7a8699;font-size:11px}.ticket-row__meta span{display:inline-flex;align-items:center;gap:6px}.ticket-row__meta i{color:#6682b6}.ticket-row__action{display:flex;align-items:center}.ticket-details-btn{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 14px;border:1px solid #d5e0f2;border-radius:11px;background:#f8faff;color:#235ed9!important;font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap}.ticket-details-btn:hover{background:#edf4ff;border-color:#a9c3f5}.ticket-empty{text-align:center;padding:48px 20px;border:1px dashed #cfd9e8;border-radius:18px;background:#fbfcfe}.ticket-empty>span{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:18px;background:#eef4ff;color:#3978f6;font-size:22px}.ticket-empty h3{font-size:17px;color:#101828}.ticket-empty p{margin:6px 0 18px;color:#7a8699;font-size:13px}.portal-primary-btn,.comment-submit-btn,.ticket-form-submit{display:inline-flex!important;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 18px!important;border:0!important;border-radius:12px!important;background:linear-gradient(135deg,#3978f6,#235ed9)!important;color:#fff!important;font-weight:800!important;box-shadow:0 9px 22px rgba(35,94,217,.25)!important;text-decoration:none!important}.portal-primary-btn:hover,.comment-submit-btn:hover,.ticket-form-submit:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(35,94,217,.33)!important}

/* Ticket details */
.ticket-details-shell{max-width:1120px;margin:0 auto}.ticket-details-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;color:#526784;font-size:12px;font-weight:750;text-decoration:none}.ticket-details-card{overflow:hidden;border:1px solid #e2e8f1;border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(18,38,75,.08)}.ticket-details-header{display:flex;justify-content:space-between;gap:22px;padding:26px 28px;border-bottom:1px solid #e7ecf3;background:linear-gradient(135deg,#fbfdff,#f3f7fd)}.ticket-details-header h1{margin:6px 0 0;color:#0b1739;font-size:26px}.ticket-details-id{color:#2f6fed;font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.ticket-details-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:0}.ticket-details-main{padding:28px;border-right:1px solid #e7ecf3}.ticket-details-side{padding:28px;background:#fbfcfe}.ticket-detail-section+.ticket-detail-section{margin-top:28px}.ticket-detail-section h2{margin:0 0 12px;color:#101828;font-size:15px}.ticket-description-box{padding:18px;border:1px solid #e2e8f1;border-radius:14px;background:#f9fbfd;color:#475467;font-size:13px;line-height:1.75;white-space:pre-wrap}.ticket-facts{display:grid;gap:12px}.ticket-fact{padding-bottom:12px;border-bottom:1px solid #e9edf3}.ticket-fact:last-child{border-bottom:0}.ticket-fact small{display:block;color:#98a2b3;font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.ticket-fact strong{display:block;margin-top:5px;color:#344054;font-size:12px}.ticket-comments{display:flex;flex-direction:column;gap:12px}.ticket-comment{max-width:82%;padding:13px 15px;border-radius:14px;background:#f2f4f7;color:#344054}.ticket-comment--client{align-self:flex-end;background:#edf4ff;color:#194185}.ticket-comment__head{display:flex;justify-content:space-between;gap:16px;margin-bottom:6px;font-size:10px;font-weight:800}.ticket-comment p{margin:0;font-size:12px;line-height:1.55}.ticket-comment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:16px}.ticket-comment-form input{width:100%}.ticket-status-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.ticket-secondary-btn,.ticket-danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:11px;font-size:11px;font-weight:800}.ticket-secondary-btn{border:1px solid #b8cff8;background:#edf4ff;color:#235ed9}.ticket-danger-btn{border:1px solid #f1b5b1;background:#fff1f0;color:#b42318}
@media(max-width:900px){.ticket-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-details-grid{grid-template-columns:1fr}.ticket-details-main{border-right:0;border-bottom:1px solid #e7ecf3}}@media(max-width:700px){.ticket-row{grid-template-columns:1fr;padding:18px 16px 18px 21px}.ticket-row__top{flex-direction:column}.ticket-row__badges{justify-content:flex-start}.ticket-row__action{justify-content:flex-end}.ticket-details-header{flex-direction:column;padding:22px 20px}.ticket-details-main,.ticket-details-side{padding:20px}.ticket-comment{max-width:94%}.ticket-comment-form{grid-template-columns:1fr}.comment-submit-btn{width:100%}.ticket-summary{min-height:58px;padding:11px!important}.ticket-summary span{font-size:10px}.ticket-summary strong{font-size:18px}}


/* Ticket status surfaces v4 */
.ticket-row--new{
  background:linear-gradient(135deg,#ffffff 0%,#f5f9ff 100%);
  border-color:#cfe0fb;
}
.ticket-row--new::after{
  content:"NOWE";position:absolute;right:18px;bottom:12px;color:rgba(35,94,217,.055);
  font-size:34px;font-weight:900;letter-spacing:.08em;pointer-events:none;
}
.ticket-row--progress{
  background:linear-gradient(135deg,#fffefb 0%,#fff9e9 100%);
  border-color:#f1d994;
}
.ticket-row--progress::after{
  content:"W REALIZACJI";position:absolute;right:18px;bottom:12px;color:rgba(138,91,0,.055);
  font-size:28px;font-weight:900;letter-spacing:.06em;pointer-events:none;
}
.ticket-row--closed{
  background:linear-gradient(135deg,#fafbfc 0%,#f0f3f5 100%);
  border-color:#d8dee6;
  box-shadow:0 4px 14px rgba(18,38,75,.035);
}
.ticket-row--closed .ticket-row__identity h3,
.ticket-row--closed .ticket-row__description{color:#667085;}
.ticket-row--closed .ticket-row__meta{color:#98a2b3;}
.ticket-row--closed::after{
  content:"ZAMKNIĘTE";position:absolute;right:18px;bottom:12px;color:rgba(52,64,84,.05);
  font-size:30px;font-weight:900;letter-spacing:.08em;pointer-events:none;
}
.ticket-row--closed:hover{border-color:#c9d0d9;box-shadow:0 8px 20px rgba(18,38,75,.06);}
.ticket-row--new .ticket-details-btn{background:#edf4ff;border-color:#b9cff7;}
.ticket-row--progress .ticket-details-btn{background:#fff8e6;border-color:#ecd48f;color:#8a5b00!important;}
.ticket-row--closed .ticket-details-btn{background:#f2f4f7;border-color:#d0d5dd;color:#475467!important;}
@media(max-width:700px){
  .ticket-row--new::after,.ticket-row--progress::after,.ticket-row--closed::after{display:none;}
}

/* Helpdesk attachments v6 */
.ticket-upload-panel {
  padding: 20px;
  border: 1px solid #dfe7f2;
  border-radius: 18px;
  background: linear-gradient(145deg, #fbfdff, #f5f8fd);
}
.ticket-upload-panel__head { display:flex; align-items:flex-start; gap:13px; margin-bottom:14px; }
.ticket-upload-panel__icon { display:grid; place-items:center; flex:0 0 auto; width:42px; height:42px; border-radius:13px; background:#eaf2ff; color:#2f6fed; }
.ticket-upload-panel__head h3 { margin:0; color:#101828; font-size:15px; font-weight:800; }
.ticket-upload-panel__head p { margin:4px 0 0; color:#667085; font-size:12px; }
.ticket-upload-drop { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:145px; padding:22px; border:2px dashed #b9c9e5; border-radius:16px; background:#fff; color:#526784; text-align:center; cursor:pointer; transition:.18s ease; }
.ticket-upload-drop:hover { border-color:#6f9cf4; background:#f6f9ff; transform:translateY(-1px); }
.ticket-upload-drop>i { margin-bottom:10px; color:#3978f6; font-size:27px; }
.ticket-upload-drop span { font-size:13px; }
.ticket-upload-drop strong { color:#235ed9; }
.ticket-upload-drop small { margin-top:6px; color:#98a2b3; font-size:10px; line-height:1.45; }
.ticket-upload-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:12px; }
.ticket-upload-list:empty { display:none; }
.ticket-upload-item { display:flex; align-items:center; min-width:0; gap:10px; padding:10px 12px; border:1px solid #e1e7f0; border-radius:12px; background:#fff; }
.ticket-upload-item>span { display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto; border-radius:10px; background:#eef4ff; color:#2f6fed; }
.ticket-upload-item>div { min-width:0; }
.ticket-upload-item strong { display:block; overflow:hidden; color:#344054; font-size:11px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.ticket-upload-item small { display:block; margin-top:2px; color:#98a2b3; font-size:9px; }

.ticket-attachments-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ticket-attachment-card { overflow:hidden; border:1px solid #e2e8f1; border-radius:15px; background:#fff; box-shadow:0 5px 16px rgba(18,38,75,.04); }
.ticket-attachment-preview { display:grid; place-items:center; height:145px; overflow:hidden; background:#f4f7fb; color:#7f92b2; font-size:34px; }
.ticket-attachment-preview img { width:100%; height:100%; object-fit:cover; }
.ticket-attachment-body { padding:12px; }
.ticket-attachment-name { display:block; overflow:hidden; color:#344054; font-size:12px; font-weight:780; text-overflow:ellipsis; white-space:nowrap; }
.ticket-attachment-meta { display:flex; justify-content:space-between; gap:8px; margin-top:5px; color:#98a2b3; font-size:9px; }
.ticket-attachment-actions { display:flex; gap:7px; margin-top:11px; }
.ticket-attachment-actions a { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:34px; padding:0 10px; border:1px solid #d5e0f2; border-radius:9px; background:#f8faff; color:#235ed9!important; font-size:10px; font-weight:800; text-decoration:none; }
.ticket-attachment-actions a:last-child { background:#fff; color:#526784!important; }
.ticket-attachment-count { display:inline-flex; align-items:center; gap:6px; }

@media(max-width:700px){
  .ticket-upload-list,.ticket-attachments-grid{grid-template-columns:1fr}
  .ticket-upload-panel{padding:16px}
}

/* =========================================================
   PORTAL KLIENTA V1.27 — SPRZEDAŻ, LICENCJE I WIZYTY
   ========================================================= */
.portal-container--narrow { width:min(960px, calc(100% - 32px)); }
.portal-container--offer { width:min(1060px, calc(100% - 32px)); }
.client-page-heading {
  display:flex; align-items:flex-start; justify-content:space-between; gap:24px;
  margin-bottom:24px;
}
.client-page-heading h1 { margin:4px 0 0; font-size:clamp(2rem,4vw,3rem); line-height:1.04; }
.client-page-heading p { margin-top:10px; color:#667085; max-width:760px; line-height:1.65; }
.client-page-heading__actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.client-back-link { display:inline-flex; align-items:center; gap:8px; margin-bottom:14px; color:#475467; font-size:14px; font-weight:700; }
.client-back-link:hover { color:var(--premium-blue); }
.section-kicker { display:block; color:var(--premium-blue); text-transform:uppercase; letter-spacing:.11em; font-size:11px; font-weight:800; }
.portal-primary-btn, .portal-secondary-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:44px; padding:0 17px; border-radius:12px; font-size:14px; font-weight:750;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
}
.portal-primary-btn { color:#fff !important; background:linear-gradient(135deg,#3978f6,#235ed9); box-shadow:0 8px 20px rgba(35,94,217,.24); }
.portal-primary-btn:hover { transform:translateY(-1px); box-shadow:0 12px 26px rgba(35,94,217,.3); }
.portal-secondary-btn { color:#344054 !important; background:#fff; border-color:#d0d5dd; box-shadow:0 1px 2px rgba(16,24,40,.05); }
.portal-secondary-btn:hover { color:#1849a9 !important; border-color:#84adff; background:#f8fbff; }

.client-notice { display:flex; align-items:flex-start; gap:11px; margin-bottom:20px; padding:14px 16px; border-radius:14px; font-size:14px; font-weight:650; }
.client-notice i { margin-top:2px; }
.client-notice--success { color:#05603a; background:#ecfdf3; border:1px solid #abefc6; }
.client-notice--error { color:#b42318; background:#fef3f2; border:1px solid #fecdca; }

.client-overview { margin:28px 0; }
.client-overview__head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:16px; }
.client-overview__head h2 { margin:4px 0 0; font-size:26px; color:#101828; }
.client-overview__head p { margin-top:6px; color:#667085; }
.client-overview__actions { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; }
.client-module-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.client-module-card {
  position:relative; min-width:0; min-height:162px; padding:18px;
  display:flex; flex-direction:column; align-items:flex-start;
  border:1px solid rgba(15,35,75,.10); border-radius:18px; background:rgba(255,255,255,.92);
  box-shadow:0 8px 24px rgba(18,38,75,.07); overflow:hidden; text-decoration:none;
}
.client-module-card::after { content:""; position:absolute; inset:auto -32px -54px auto; width:120px; height:120px; border-radius:999px; opacity:.10; background:currentColor; }
.client-module-card:hover { transform:translateY(-3px); box-shadow:0 18px 38px rgba(18,38,75,.13); }
.client-module-card__icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:13px; font-size:17px; background:currentColor; }
.client-module-card__icon i { color:#fff; }
.client-module-card__copy { margin-top:13px; display:flex; flex-direction:column; min-width:0; }
.client-module-card__copy small { color:#667085; font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.client-module-card__copy strong { margin-top:3px; color:#101828; font-size:31px; line-height:1; }
.client-module-card__copy em { margin-top:7px; color:#667085; font-size:12px; font-style:normal; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.client-module-card__arrow { position:absolute; top:20px; right:18px; color:#98a2b3; font-size:12px; }
.client-module-card--blue { color:#2f6fed; }
.client-module-card--cyan { color:#0891b2; }
.client-module-card--purple { color:#7c3aed; }
.client-module-card--amber { color:#d97706; }
.client-module-card--green { color:#039855; }

.client-next-visits { margin-top:14px; display:grid; grid-template-columns:230px 1fr; gap:12px; align-items:stretch; }
.client-next-visits__title { display:flex; align-items:center; gap:13px; padding:17px; border-radius:17px; color:#fff; background:linear-gradient(135deg,#102355,#1f5ec9); box-shadow:0 10px 26px rgba(16,35,85,.2); }
.client-next-visits__title > span { width:42px; height:42px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; border-radius:13px; background:rgba(255,255,255,.14); }
.client-next-visits__title small, .client-next-visits__title strong { display:block; }
.client-next-visits__title small { color:#b9c9eb; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.client-next-visits__title strong { margin-top:3px; font-size:14px; }
.client-next-visits__list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.client-next-visit { min-width:0; display:flex; align-items:center; gap:12px; padding:13px 14px; border-radius:15px; color:#344054; background:#fff; border:1px solid #e4e7ec; box-shadow:0 4px 14px rgba(16,24,40,.05); }
.client-next-visit:hover { border-color:#84adff; background:#f8fbff; }
.client-next-visit__date { flex:0 0 auto; width:48px; text-align:center; padding:8px 4px; border-radius:11px; color:#1849a9; background:#eff8ff; font-size:12px; font-weight:800; text-transform:uppercase; }
.client-next-visit__copy { min-width:0; display:flex; flex-direction:column; }
.client-next-visit__copy strong, .client-next-visit__copy small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.client-next-visit__copy strong { font-size:13px; color:#101828; }
.client-next-visit__copy small { margin-top:3px; color:#667085; font-size:11px; }
.client-next-visit > i { margin-left:auto; color:#98a2b3; font-size:10px; }

.client-summary-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.client-summary-strip > div { display:flex; align-items:center; justify-content:space-between; min-height:72px; padding:15px 17px; border:1px solid #e4e7ec; border-radius:15px; background:rgba(255,255,255,.9); box-shadow:0 4px 14px rgba(16,24,40,.04); }
.client-summary-strip small { color:#667085; font-size:12px; font-weight:700; }
.client-summary-strip strong { color:#101828; font-size:25px; }
.client-summary-strip .is-highlighted { border-color:#b2ccff; background:#f5f8ff; }
.client-summary-strip .is-highlighted strong { color:#175cd3; }

.client-list-card { overflow:hidden; border:1px solid var(--premium-border); border-radius:20px; background:rgba(255,255,255,.92); box-shadow:var(--premium-shadow); }
.client-business-row { display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:16px; align-items:center; padding:20px; border-bottom:1px solid #eaecf0; }
.client-business-row:last-child { border-bottom:0; }
.client-business-row:hover { background:#fbfcfe; }
.client-business-row__icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:15px; font-size:18px; }
.client-business-row__icon--cyan { color:#0e7490; background:#ecfeff; }
.client-business-row__icon--amber { color:#b54708; background:#fffaeb; }
.client-business-row__body { min-width:0; }
.client-business-row__top { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.client-business-row__top h2 { margin-top:6px; color:#101828; font-size:17px; font-weight:760; }
.client-business-row__top time { color:#98a2b3; font-size:12px; white-space:nowrap; }
.client-business-row__badges { display:flex; flex-wrap:wrap; gap:7px; }
.client-business-row__body > p { margin-top:8px; color:#475467; line-height:1.55; }
.client-business-row__meta { margin-top:10px; display:flex; flex-wrap:wrap; gap:14px; color:#667085; font-size:12px; }
.client-business-row__meta i { color:#98a2b3; margin-right:4px; }
.client-business-row__actions { min-width:130px; text-align:right; }
.client-row-link { display:inline-flex; align-items:center; gap:8px; color:#175cd3; font-size:13px; font-weight:750; }
.client-row-link:hover { color:#1849a9; }
.client-row-wait { display:inline-flex; align-items:center; gap:7px; color:#667085; font-size:12px; }
.client-tag { display:inline-flex; align-items:center; min-height:24px; padding:0 9px; border-radius:999px; color:#475467; background:#f2f4f7; font-size:11px; font-weight:750; }
.client-status { display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:0 10px; border-radius:999px; font-size:11px; font-weight:800; white-space:nowrap; }
.client-status--new { color:#0e7490; background:#cffafe; }
.client-status--progress, .client-status--waiting { color:#6941c6; background:#f4ebff; }
.client-status--success { color:#027a48; background:#ecfdf3; }
.client-status--danger { color:#b42318; background:#fef3f2; }
.client-status--muted { color:#475467; background:#f2f4f7; }
.client-status--warning { color:#b54708; background:#fffaeb; }

.client-empty-state { width:100%; padding:54px 24px; text-align:center; }
.client-empty-state--card { border:1px solid #e4e7ec; border-radius:20px; background:rgba(255,255,255,.9); box-shadow:var(--premium-shadow); }
.client-empty-state > span { width:64px; height:64px; margin:0 auto; display:flex; align-items:center; justify-content:center; border-radius:20px; color:#175cd3; background:#eff8ff; font-size:24px; }
.client-empty-state h2 { margin-top:17px; color:#101828; font-size:20px; font-weight:760; }
.client-empty-state p { margin:7px auto 18px; color:#667085; max-width:480px; }

.client-form-card { overflow:hidden; border:1px solid var(--premium-border); border-radius:22px; background:rgba(255,255,255,.94); box-shadow:var(--premium-shadow); }
.client-form-section { padding:26px; border-bottom:1px solid #eaecf0; }
.client-form-section__head { display:flex; align-items:flex-start; gap:13px; margin-bottom:20px; }
.client-form-section__head > span { flex:0 0 auto; width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:11px; color:#fff; background:linear-gradient(135deg,#3978f6,#235ed9); font-size:13px; font-weight:800; }
.client-form-section__head h2 { color:#101828; font-size:18px; font-weight:760; }
.client-form-section__head p { margin-top:3px; color:#667085; font-size:13px; }
.client-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.client-category-option { position:relative; cursor:pointer; }
.client-category-option input { position:absolute; opacity:0; pointer-events:none; }
.client-category-option__content { min-height:132px; display:flex; flex-direction:column; align-items:flex-start; padding:17px; border:1px solid #d0d5dd; border-radius:16px; background:#fff; transition:.18s ease; }
.client-category-option__content i { width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:12px; color:#175cd3; background:#eff8ff; }
.client-category-option__content strong { margin-top:13px; color:#101828; font-size:14px; }
.client-category-option__content small { margin-top:4px; color:#667085; font-size:11px; line-height:1.4; }
.client-category-option input:checked + .client-category-option__content { border-color:#528bff; background:#f5f8ff; box-shadow:0 0 0 3px rgba(47,111,237,.10); }
.client-category-option input:checked + .client-category-option__content i { color:#fff; background:#2f6fed; }
.client-requirement-items { display:flex; flex-direction:column; gap:12px; }
.client-requirement-item { position:relative; display:grid; grid-template-columns:34px minmax(0,1fr) 120px 44px; gap:12px; align-items:end; padding:16px; border:1px solid #e4e7ec; border-radius:16px; background:#fcfcfd; }
.client-requirement-item__number { align-self:start; width:30px; height:30px; display:flex; align-items:center; justify-content:center; border-radius:10px; color:#475467; background:#f2f4f7; font-size:12px; font-weight:800; }
.client-requirement-item label { display:flex; flex-direction:column; gap:6px; }
.client-requirement-item label > span, .client-field > span, .client-renewal-details label > span { color:#344054; font-size:12px; font-weight:750; }
.client-requirement-item label b { color:#d92d20; }
.client-requirement-item__notes { grid-column:2 / 4; }
.client-remove-item { width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:11px; color:#b42318; background:#fef3f2; border:1px solid #fecdca; }
.client-remove-item:hover { background:#fee4e2; }
.client-add-item { margin-top:14px; }
.client-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.client-field { display:flex; flex-direction:column; gap:7px; }
.client-field--full { grid-column:1/-1; }
.client-field small { color:#98a2b3; font-weight:600; }
.client-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:20px 26px; background:#f9fafb; }

.client-offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.client-offer-card { min-width:0; display:flex; flex-direction:column; min-height:290px; padding:20px; border:1px solid #e4e7ec; border-radius:20px; background:rgba(255,255,255,.93); box-shadow:0 8px 24px rgba(16,24,40,.06); text-decoration:none; }
.client-offer-card:hover { transform:translateY(-3px); box-shadow:0 18px 38px rgba(16,24,40,.12); }
.client-offer-card__head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.client-offer-card__icon { width:46px; height:46px; display:flex; align-items:center; justify-content:center; border-radius:14px; color:#6941c6; background:#f4ebff; font-size:18px; }
.client-offer-card__body { margin-top:20px; }
.client-offer-card__body > small { color:#98a2b3; text-transform:uppercase; letter-spacing:.08em; font-size:10px; font-weight:800; }
.client-offer-card__body h2 { margin-top:4px; color:#101828; font-size:20px; font-weight:780; }
.client-offer-card__body p { margin-top:8px; color:#667085; font-size:12px; }
.client-offer-card__value { margin-top:auto; padding-top:20px; }
.client-offer-card__value small, .client-offer-card__value strong { display:block; }
.client-offer-card__value small { color:#667085; font-size:11px; }
.client-offer-card__value strong { margin-top:3px; color:#101828; font-size:22px; }
.client-offer-card__foot { margin-top:17px; padding-top:14px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #eaecf0; color:#667085; font-size:11px; }

.client-offer-document { overflow:hidden; border:1px solid #d0d5dd; border-radius:22px; background:#fff; box-shadow:0 16px 42px rgba(16,24,40,.10); }
.client-offer-document__header { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; padding:32px; border-bottom:3px solid #2f6fed; }
.client-offer-document__header img { height:50px; width:auto; }
.client-offer-document__header p { margin-top:7px; color:#667085; font-size:12px; }
.client-offer-document__header > div:last-child { display:flex; flex-direction:column; align-items:flex-end; color:#475467; font-size:12px; }
.client-offer-document__header small { color:#98a2b3; text-transform:uppercase; letter-spacing:.08em; }
.client-offer-document__header strong { margin:3px 0 7px; color:#101828; font-size:18px; }
.client-offer-document__intro { padding:28px 32px 18px; }
.client-offer-document__intro span { color:#667085; font-size:12px; }
.client-offer-document__intro h2 { margin-top:3px; color:#101828; font-size:22px; }
.client-offer-table-wrap { overflow-x:auto; padding:0 32px; }
.client-offer-table { width:100%; min-width:720px; border-collapse:separate; border-spacing:0; }
.client-offer-table th { padding:12px 10px; text-align:left; color:#475467; background:#f9fafb; border-top:1px solid #eaecf0; border-bottom:1px solid #eaecf0; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.client-offer-table td { padding:15px 10px; color:#344054; border-bottom:1px solid #eaecf0; font-size:13px; }
.client-offer-table td:first-child { width:42%; }
.client-offer-table td small { display:block; margin-top:5px; color:#667085; }
.client-offer-total { display:flex; align-items:center; justify-content:flex-end; gap:28px; padding:22px 32px; color:#1849a9; background:#eff8ff; }
.client-offer-total span { font-size:13px; font-weight:700; }
.client-offer-total strong { font-size:25px; }
.client-offer-terms { padding:28px 32px 34px; }
.client-offer-terms h3 { margin-top:18px; color:#101828; font-size:15px; font-weight:760; }
.client-offer-terms h3:first-child { margin-top:0; }
.client-offer-terms p { margin-top:7px; color:#475467; line-height:1.65; white-space:pre-wrap; }
.client-decision-card { margin-top:18px; padding:24px; border:1px solid #b2ccff; border-radius:20px; background:linear-gradient(135deg,#f5f8ff,#eef4ff); box-shadow:0 10px 28px rgba(47,111,237,.08); }
.client-decision-card__head { display:flex; align-items:flex-start; gap:14px; margin-bottom:18px; }
.client-decision-card__head > span { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:14px; color:#fff; background:#2f6fed; }
.client-decision-card__head h2 { color:#101828; font-size:19px; font-weight:780; }
.client-decision-card__head p { margin-top:4px; color:#667085; font-size:13px; }
.client-decision-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:15px; }
.client-decision-btn { min-height:66px; padding:12px 16px; display:flex; align-items:center; justify-content:center; gap:12px; border-radius:15px; border:1px solid; font-weight:700; }
.client-decision-btn > i { width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:11px; }
.client-decision-btn span { display:flex; flex-direction:column; align-items:flex-start; }
.client-decision-btn small { margin-top:2px; font-size:10px; font-weight:650; opacity:.8; }
.client-decision-btn--reject { color:#b42318; border-color:#fecdca; background:#fff; }
.client-decision-btn--reject i { background:#fef3f2; }
.client-decision-btn--accept { color:#fff; border-color:#039855; background:linear-gradient(135deg,#12b76a,#039855); box-shadow:0 8px 20px rgba(3,152,85,.22); }
.client-decision-btn--accept i { background:rgba(255,255,255,.16); }
.client-decision-result { margin-top:18px; display:flex; align-items:flex-start; gap:15px; padding:22px; border-radius:18px; border:1px solid; }
.client-decision-result > span { font-size:24px; }
.client-decision-result h2 { font-size:18px; font-weight:780; }
.client-decision-result p { margin-top:3px; font-size:13px; }
.client-decision-result blockquote { margin-top:10px; padding:10px 12px; border-left:3px solid currentColor; background:rgba(255,255,255,.55); white-space:pre-wrap; }
.client-decision-result--success { color:#027a48; background:#ecfdf3; border-color:#abefc6; }
.client-decision-result--danger { color:#b42318; background:#fef3f2; border-color:#fecdca; }
.client-decision-result--muted { color:#475467; background:#f9fafb; border-color:#e4e7ec; }

.client-license-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.client-license-card { overflow:hidden; display:flex; flex-direction:column; min-height:330px; border:1px solid #e4e7ec; border-radius:20px; background:rgba(255,255,255,.93); box-shadow:0 8px 24px rgba(16,24,40,.06); }
.client-license-card__head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 20px; border-bottom:1px solid #eaecf0; }
.client-license-card__icon { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:14px; color:#175cd3; background:#eff8ff; }
.client-license-card__body { flex:1; padding:20px; }
.client-license-card__body h2 { color:#101828; font-size:18px; font-weight:780; }
.client-license-card__body > p { margin-top:8px; color:#667085; font-size:12px; }
.client-license-card__dates { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.client-license-card__dates span { padding:12px; border-radius:13px; background:#f9fafb; border:1px solid #eaecf0; }
.client-license-card__dates small, .client-license-card__dates strong { display:block; }
.client-license-card__dates small { color:#98a2b3; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.client-license-card__dates strong { margin-top:3px; color:#344054; font-size:13px; }
.client-license-card__notes { margin-top:15px !important; padding:11px 12px; border-radius:12px; background:#f8fafc; white-space:pre-wrap; }
.client-license-card__action { padding:16px 20px; border-top:1px solid #eaecf0; background:#fcfcfd; }
.client-renewal-details summary { display:flex; align-items:center; justify-content:center; gap:8px; min-height:42px; border-radius:12px; color:#175cd3; background:#eff8ff; font-size:13px; font-weight:750; cursor:pointer; list-style:none; }
.client-renewal-details summary::-webkit-details-marker { display:none; }
.client-renewal-details[open] summary { margin-bottom:13px; }
.client-renewal-details form { display:flex; flex-direction:column; gap:10px; }
.client-renewal-details label { display:flex; flex-direction:column; gap:6px; }
.client-license-pending { display:flex; align-items:center; justify-content:center; gap:10px; color:#6941c6; }
.client-license-pending > i { width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#f4ebff; }
.client-license-pending span { display:flex; flex-direction:column; }
.client-license-pending small { color:#7f56d9; font-size:11px; }

.client-visit-timeline { display:flex; flex-direction:column; }
.client-visit-row { display:grid; grid-template-columns:66px minmax(0,1fr); gap:16px; }
.client-visit-row__rail { position:relative; min-height:150px; display:flex; flex-direction:column; align-items:center; color:#1849a9; }
.client-visit-row__rail > span { width:54px; height:44px; padding-top:7px; text-align:center; border:1px solid #b2ccff; border-bottom:0; border-radius:14px 14px 0 0; background:#eff8ff; font-size:20px; line-height:1; font-weight:800; }
.client-visit-row__rail > small { width:54px; padding:5px 2px; text-align:center; border:1px solid #b2ccff; border-top:0; border-radius:0 0 12px 12px; background:#d1e9ff; font-size:10px; text-transform:uppercase; font-weight:800; }
.client-visit-row__rail > i { flex:1; width:2px; margin-top:8px; background:linear-gradient(#b2ccff,#e4e7ec); }
.client-visit-row:last-child .client-visit-row__rail > i { background:transparent; }
.client-visit-row__card { margin-bottom:16px; padding:20px; border:1px solid #e4e7ec; border-radius:18px; background:rgba(255,255,255,.93); box-shadow:0 8px 24px rgba(16,24,40,.06); }
.client-visit-row__head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.client-visit-row__head small { color:#667085; font-size:12px; text-transform:capitalize; }
.client-visit-row__head h2 { margin-top:5px; color:#101828; font-size:18px; font-weight:780; }
.client-visit-row__meta { display:flex; flex-wrap:wrap; gap:16px; margin-top:15px; padding-top:14px; border-top:1px solid #eaecf0; color:#667085; font-size:12px; }
.client-visit-row__meta i { margin-right:5px; color:#98a2b3; }

@media (max-width: 1240px) {
  .main-nav__brand-copy, .main-nav__company-copy { display:none; }
  body.portal-body:not(:has(.portal-login)) .main-nav__link { padding-inline:9px; font-size:12px; }
  .main-nav__company select { max-width:155px; }
}
@media (max-width: 1120px) {
  .client-module-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .client-next-visits { grid-template-columns:1fr; }
  .client-next-visits__list { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .client-offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .client-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-license-grid { grid-template-columns:1fr; }
  .client-requirement-item { grid-template-columns:34px minmax(0,1fr) 100px 42px; }
}
@media (max-width: 767px) {
  .client-page-heading, .client-overview__head { flex-direction:column; align-items:stretch; }
  .client-page-heading__actions, .client-overview__actions { justify-content:flex-start; }
  .client-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-next-visits__list { grid-template-columns:1fr; }
  .client-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-business-row { grid-template-columns:44px minmax(0,1fr); gap:12px; }
  .client-business-row__actions { grid-column:2; min-width:0; text-align:left; }
  .client-business-row__top { flex-direction:column; gap:8px; }
  .client-offer-grid { grid-template-columns:1fr; }
  .client-requirement-item { grid-template-columns:30px minmax(0,1fr) 40px; align-items:start; }
  .client-requirement-item > label:not(.client-requirement-item__notes) { grid-column:2; }
  .client-requirement-item__qty { grid-column:2 !important; }
  .client-requirement-item__notes { grid-column:2 !important; }
  .client-remove-item { grid-column:3; grid-row:1; }
  .client-form-grid { grid-template-columns:1fr; }
  .client-form-section { padding:20px; }
  .client-form-actions { padding:17px 20px; flex-direction:column-reverse; align-items:stretch; }
  .client-decision-actions { grid-template-columns:1fr; }
  .client-offer-document__header { flex-direction:column; padding:24px; }
  .client-offer-document__header > div:last-child { align-items:flex-start; }
  .client-offer-document__intro, .client-offer-terms { padding-inline:24px; }
  .client-offer-table-wrap { padding-inline:0; }
  .client-offer-total { padding-inline:20px; }
  .client-visit-row { grid-template-columns:54px minmax(0,1fr); gap:11px; }
  .client-visit-row__rail > span, .client-visit-row__rail > small { width:48px; }
  .client-visit-row__head { flex-direction:column; }
}
@media (max-width: 480px) {
  .client-module-grid { grid-template-columns:1fr; }
  .client-module-card { min-height:140px; }
  .client-category-grid { grid-template-columns:1fr; }
  .client-category-option__content { min-height:105px; }
  .client-license-card__dates { grid-template-columns:1fr; }
}

@media print {
  body.portal-body { background:#fff !important; }
  .main-nav, .client-print-hide { display:none !important; }
  .portal-main { padding:0 !important; }
  .portal-container--offer { width:100% !important; }
  .client-offer-document { border:0; border-radius:0; box-shadow:none; }
  .client-offer-document__header { padding:20px 0; }
  .client-offer-document__intro, .client-offer-terms { padding-left:0; padding-right:0; }
  .client-offer-table-wrap { padding:0; overflow:visible; }
  .client-offer-table { min-width:0; }
  .client-offer-total { padding-right:0; }
}
