/* ============================================================
   NEURISE - Kalkulator kosztu niewidocznosci
   Styl podstrony kalkulatora. Korzysta ze zmiennych z
   /assets/subpage.css (--ink, --paper, --orange-500, --line ...).
   Prefiks klas: .kalk-  (bez kolizji z .nrs-lead i .art-)
   ============================================================ */

.kalk-shell{padding:56px 0 20px}
.kalk-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:34px;align-items:start}

/* ---- panel z polami ---- */
.kalk-panel{border:1px solid var(--line-2);border-radius:22px;padding:28px 28px 30px;
  background:radial-gradient(130% 100% at 0% 0%, rgba(44,24,80,.55), rgba(255,255,255,.02))}
.kalk-panel > h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}
.kalk-panel > .kalk-sub{font-size:14.5px;line-height:1.6;color:var(--paper-3);margin-bottom:26px}

.kalk-step{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.kalk-step:first-of-type{border-top:0;padding-top:0;margin-top:0}
.kalk-step > legend,.kalk-legend{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--orange-500);margin-bottom:6px;padding:0}
.kalk-hint{font-size:13.5px;line-height:1.55;color:var(--paper-3);margin:0 0 14px}
.kalk-field{margin-bottom:16px}
.kalk-field:last-child{margin-bottom:0}
.kalk-field > label,.kalk-label{display:block;font-size:14px;font-weight:600;color:var(--paper);margin-bottom:7px}

.kalk-panel select,.kalk-panel input[type="number"],.kalk-panel input[type="text"]{
  width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);
  background:rgba(11,6,23,.62);color:var(--paper);font:500 15px/1.3 'Inter',system-ui,sans-serif;
  -webkit-appearance:none;appearance:none;transition:border-color .18s, box-shadow .18s}
.kalk-panel select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%239B9DB9' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.kalk-panel select option{background:#150826;color:#F5F6F8}
.kalk-panel select:focus-visible,.kalk-panel input:focus-visible,.kalk-panel button:focus-visible,
.kalk-panel a:focus-visible,.kalk-res a:focus-visible,.kalk-panel input[type="range"]:focus-visible{
  outline:2px solid var(--orange-500);outline-offset:2px}
.kalk-panel input[type="number"]::-webkit-outer-spin-button,
.kalk-panel input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.kalk-panel input[type="number"]{-moz-appearance:textfield}

.kalk-inputwrap{position:relative}
.kalk-inputwrap .kalk-unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);
  font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--paper-3);pointer-events:none}
.kalk-inputwrap input{padding-right:52px}

/* pola bledne */
.kalk-panel [aria-invalid="true"]{border-color:#ff6a5a;box-shadow:0 0 0 3px rgba(255,106,90,.16)}
.kalk-err{display:block;margin-top:6px;font-size:13px;color:#ff9a8f;min-height:0}
.kalk-err:empty{display:none}

/* przelacznik trybu skali */
.kalk-switch{display:flex;gap:6px;padding:5px;border:1px solid var(--line-2);border-radius:14px;
  background:rgba(11,6,23,.5);margin-bottom:16px}
.kalk-switch button{flex:1;padding:10px 12px;border:0;border-radius:10px;background:transparent;
  color:var(--paper-3);font:600 13.5px/1.2 'Inter',sans-serif;cursor:pointer;transition:background .2s,color .2s}
.kalk-switch button[aria-selected="true"]{background:var(--grad-orange);color:var(--ink)}
.kalk-switch button:hover{color:var(--paper)}
.kalk-switch button[aria-selected="true"]:hover{color:var(--ink)}

/* radio jako karty */
.kalk-radios{display:flex;flex-direction:column;gap:9px}
.kalk-radio{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border:1px solid var(--line-2);
  border-radius:13px;cursor:pointer;background:rgba(11,6,23,.4);transition:border-color .18s,background .18s}
.kalk-radio:hover{border-color:rgba(255,127,17,.5)}
.kalk-radio input{margin:0;flex:0 0 auto;width:17px;height:17px;accent-color:#FF7F11}
.kalk-radio span{font-size:14.5px;line-height:1.5;color:var(--paper-2)}
.kalk-radio:has(input:checked){border-color:var(--orange-500);background:rgba(255,127,17,.09)}
.kalk-radio:has(input:focus-visible){outline:2px solid var(--orange-500);outline-offset:2px}

/* suwaki */
.kalk-slider-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:7px}
.kalk-slider-head .kalk-val{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--orange-500);font-weight:600}
.kalk-panel input[type="range"]{width:100%;height:26px;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}
.kalk-panel input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:rgba(245,246,248,.16)}
.kalk-panel input[type="range"]::-moz-range-track{height:4px;border-radius:4px;background:rgba(245,246,248,.16)}
.kalk-panel input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;
  border-radius:50%;background:var(--grad-orange);border:2px solid var(--ink);box-shadow:0 0 14px rgba(255,127,17,.5)}
.kalk-panel input[type="range"]::-moz-range-thumb{width:18px;height:18px;border:2px solid var(--ink);
  border-radius:50%;background:#FF7F11;box-shadow:0 0 14px rgba(255,127,17,.5)}

/* zalozenia (rozwijane) */
.kalk-assume{margin-top:22px;border:1px solid var(--line);border-radius:14px;background:rgba(11,6,23,.45)}
.kalk-assume > summary{cursor:pointer;padding:13px 16px;font-size:13.5px;font-weight:600;color:var(--paper-2);
  list-style:none;display:flex;align-items:center;gap:9px}
.kalk-assume > summary::-webkit-details-marker{display:none}
.kalk-assume > summary::before{content:'+';font-family:'JetBrains Mono',monospace;color:var(--orange-500);font-size:16px}
.kalk-assume[open] > summary::before{content:'\2212'}
.kalk-assume > summary:focus-visible{outline:2px solid var(--orange-500);outline-offset:2px;border-radius:14px}
.kalk-assume-body{padding:4px 16px 18px}

/* znacznik: dana zrodlowa vs zalozenie modelu */
.kalk-tag{display:inline-flex;align-items:center;gap:5px;font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:999px;
  vertical-align:middle;white-space:nowrap}
.kalk-tag.dana{color:var(--turq);border:1px solid rgba(197,254,236,.4);background:rgba(197,254,236,.09)}
.kalk-tag.zal{color:#FFC48A;border:1px solid rgba(255,169,90,.42);background:rgba(255,169,90,.10)}

/* ---- panel wyniku ----
   Panel jest wyzszy niz typowe okno przegladarki (sama klauzula prawna to
   okolo 300 px), a obok stoi rownie wysoka kolumna z polami. Bez ograniczenia
   wysokosci sticky nie ma czego przykleic i kwota znika z ekranu w polowie
   wypelniania. Dlatego na szerokich ekranach panel dostaje wlasny suwak. */
.kalk-res{position:sticky;top:92px;border:1px solid var(--line-2);border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg, rgba(44,24,80,.6) 0%, rgba(11,6,23,.9) 60%)}

@media (min-width:1021px){
  .kalk-res{max-height:calc(100vh - 112px);overflow-y:auto;scrollbar-width:thin;
    scrollbar-color:rgba(245,246,248,.28) transparent}
  .kalk-res::-webkit-scrollbar{width:8px}
  .kalk-res::-webkit-scrollbar-thumb{background:rgba(245,246,248,.22);border-radius:8px}
  .kalk-res::-webkit-scrollbar-track{background:transparent}
}
.kalk-res-top{padding:28px 28px 24px;border-bottom:1px solid var(--line)}
.kalk-res-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--paper-3);margin-bottom:12px}
.kalk-kwota{font-size:clamp(34px,5vw,52px);font-weight:600;letter-spacing:-.035em;line-height:1;color:var(--paper)}
.kalk-kwota .kalk-cur{font-size:.42em;font-weight:500;color:var(--paper-3);margin-left:8px;letter-spacing:0}
.kalk-zakres{margin-top:11px;font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--paper-3)}
.kalk-zakres b{color:var(--paper-2);font-weight:600}
.kalk-note{margin-top:14px;font-size:13px;line-height:1.55;color:var(--paper-3);
  border-left:2px solid var(--orange-500);padding-left:12px}
.kalk-note:empty{display:none}

.kalk-disclaimer{margin:16px 28px 0;font-size:13px;line-height:1.6;color:var(--paper-3);
  border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:rgba(11,6,23,.5)}
.kalk-disclaimer b{color:var(--paper-2)}

.kalk-split{padding:22px 28px 4px;display:flex;flex-direction:column;gap:11px}
.kalk-row{display:flex;align-items:flex-start;gap:13px;padding:13px 15px;border:1px solid var(--line);
  border-radius:13px;background:rgba(11,6,23,.42)}
.kalk-row .kalk-ico{flex:0 0 auto;width:9px;height:9px;border-radius:3px;margin-top:6px;transform:rotate(45deg)}
.kalk-row.g .kalk-ico{background:#9ec5ff;box-shadow:0 0 10px rgba(158,197,255,.6)}
.kalk-row.a .kalk-ico{background:var(--turq);box-shadow:0 0 10px rgba(197,254,236,.6)}
.kalk-row.s .kalk-ico{background:var(--orange-500);box-shadow:0 0 10px rgba(255,127,17,.55)}
.kalk-row .kalk-rowtxt{flex:1;min-width:0}
.kalk-row .kalk-rowtxt b{display:block;font-size:14px;font-weight:600;color:var(--paper);margin-bottom:3px}
.kalk-row .kalk-rowtxt span{display:block;font-size:12.8px;line-height:1.5;color:var(--paper-3)}
.kalk-row .kalk-rowval{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:600;color:var(--paper-2);white-space:nowrap}

.kalk-tiles{padding:16px 28px 4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.kalk-tile{border:1px solid var(--line);border-radius:13px;padding:14px 15px;background:rgba(11,6,23,.42)}
.kalk-tile .t{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper-3);margin-bottom:7px;line-height:1.35}
.kalk-tile .v{font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--paper)}
.kalk-tile .v small{font-size:12.5px;font-weight:500;color:var(--paper-3);margin-left:4px;letter-spacing:0}

.kalk-vis{padding:16px 28px 4px}
.kalk-vis h3{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--orange-500);margin-bottom:12px}
.kalk-bar{margin-bottom:14px}
.kalk-bar .lab{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--paper-2);margin-bottom:6px}
.kalk-bar .lab span:last-child{font-family:'JetBrains Mono',monospace;color:var(--paper-3)}
.kalk-track{position:relative;height:8px;border-radius:8px;background:rgba(245,246,248,.10);overflow:hidden}
.kalk-track i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;transition:width .35s cubic-bezier(.2,.7,.2,1)}
.kalk-track i.now{background:rgba(245,246,248,.42)}
.kalk-track i.max{background:var(--grad-orange);opacity:.9}
.kalk-track i.now{z-index:2}

.kalk-actions{padding:20px 28px 26px;display:flex;flex-wrap:wrap;gap:10px}
.kalk-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;border:1px solid var(--line-2);
  background:transparent;color:var(--paper);font:600 13.5px/1 'Inter',sans-serif;cursor:pointer;transition:transform .18s,border-color .18s,background .18s}
.kalk-btn:hover{transform:translateY(-1px);border-color:var(--orange-500)}
.kalk-btn.pri{background:var(--grad-orange);color:var(--ink);border-color:transparent}
.kalk-btn.pri:hover{box-shadow:0 14px 40px rgba(255,127,17,.32)}
.kalk-status{padding:0 28px 22px;font-size:13px;color:var(--turq-soft);min-height:0}
.kalk-status:empty{display:none}

/* stan pusty / komunikat zamiast kwoty */
.kalk-res[data-stan="msg"] .kalk-kwota,
.kalk-res[data-stan="msg"] .kalk-zakres,
.kalk-res[data-stan="msg"] .kalk-split,
.kalk-res[data-stan="msg"] .kalk-tiles{display:none}

/* ---- tabele metodyki w tresci ---- */
.art-wrap .kalk-tbl{overflow-x:auto;margin:10px 0 12px;-webkit-overflow-scrolling:touch}
.art-wrap .kalk-tbl table{width:100%;min-width:560px;border-collapse:collapse;font-size:14.5px;line-height:1.5}
.art-wrap .kalk-tbl th{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--orange-500);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:bottom}
.art-wrap .kalk-tbl td{padding:11px 12px;border-bottom:1px solid var(--line);color:var(--paper-2);vertical-align:top}
.art-wrap .kalk-tbl td:first-child{color:var(--paper);font-weight:600}
.art-wrap .kalk-src{font-size:13px;line-height:1.6;color:var(--paper-3);margin:0 0 28px}
.art-wrap .kalk-src a{color:var(--orange-500);text-decoration:underline;text-underline-offset:3px}
.art-wrap .kalk-legenda{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}

/* zgoda na dolaczenie wyniku do zgloszenia */
.kalk-attach{max-width:720px;margin:0 auto 6px;display:flex;gap:11px;align-items:flex-start;
  border:1px solid var(--line);border-radius:13px;padding:14px 16px;background:rgba(11,6,23,.42)}
.kalk-attach input{margin:2px 0 0;width:17px;height:17px;flex:0 0 auto;accent-color:#FF7F11}
.kalk-attach label{font-size:14px;line-height:1.55;color:var(--paper-2)}
.kalk-attach:has(input:focus-visible){outline:2px solid var(--orange-500);outline-offset:2px}

@media (max-width:1020px){
  .kalk-grid{grid-template-columns:1fr;gap:26px}
  .kalk-res{position:static}
}
@media (max-width:620px){
  .kalk-shell{padding:36px 0 10px}
  .kalk-panel{padding:22px 18px 24px;border-radius:18px}
  .kalk-res-top,.kalk-split,.kalk-tiles,.kalk-vis,.kalk-actions{padding-left:18px;padding-right:18px}
  .kalk-disclaimer{margin-left:18px;margin-right:18px}
  .kalk-status{padding-left:18px;padding-right:18px}
  .kalk-tiles{grid-template-columns:1fr}
  .kalk-actions .kalk-btn{flex:1 1 100%;justify-content:center}
}

@media (prefers-reduced-motion:reduce){
  .kalk-track i{transition:none}
  .kalk-btn:hover{transform:none}
}

/* ---- wydruk / zapis do PDF ----
   Przycisk "Zapisz jako PDF" wola window.print(), wiec wydruk musi byc czytelny.
   Ciemne tlo serwisu na papierze daje albo pusta kartke, albo zuzyty toner,
   dlatego drukujemy sam wynik na bialym tle. Klauzula prawna zostaje: ma byc
   przy kwocie takze wtedy, gdy kartka krazy po firmie klienta bez kontekstu. */
@media print{
  .nav,.mobile-menu,.menu-scrim,.read-progress,.art-stage,.site,.nrs-lead,
  .kalk-actions,.kalk-attach,.kalk-status,.kalk-assume,.art-faq{display:none !important}
  html,body{background:#fff !important;color:#111 !important}
  .art-hero{background:#fff !important;min-height:auto;padding:0;border:0}
  .art-head h1{color:#111}
  .art-dek,.art-crumbs{color:#444}
  .kalk-grid{display:block}
  .kalk-panel,.kalk-res{position:static;max-height:none;overflow:visible;
    background:#fff !important;border:1px solid #bbb;color:#111;page-break-inside:avoid}
  .kalk-kwota,.kalk-tile .v,.kalk-row .kalk-rowtxt b{color:#111}
  .kalk-zakres,.kalk-note,.kalk-disclaimer,.kalk-row .kalk-rowtxt span,
  .kalk-tile .t,.kalk-res-label{color:#333}
  .kalk-row,.kalk-tile{background:#fff;border-color:#ccc}
  .kalk-panel select,.kalk-panel input[type="number"]{background:#fff;color:#111;border-color:#bbb}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:11px;color:#555}
}
