/* Pereraha — calculator.css
   Kalkulaatori UI-komponendid, mida jagavad mitu kalkulaatorit:
   mode-toggle, card-block, väljad, kategooriaread, tulemuskaardid, olekuriba. */

.mode-toggle{
  display:inline-flex;
  background:var(--white);
  border:2px solid var(--sky-200);
  border-radius:999px;
  padding:5px;
  gap:4px;
  margin-bottom:22px;
}
.mode-btn{
  border:none;
  background:transparent;
  color:var(--sky-700);
  font-weight:800;
  font-size:0.88rem;
  padding:10px 20px;
  border-radius:999px;
  cursor:pointer;
  font-family:'Nunito',sans-serif;
  transition:all .15s ease;
}
.mode-btn.active{ background:var(--sky-500); color:#fff; }
[data-mode-panel]{ display:none; }
[data-mode-panel].active{ display:block; }

.card-block{
  background:var(--white);
  border-radius:20px;
  border:1px solid var(--sky-100);
  box-shadow:0 6px 16px rgba(31,111,166,0.06);
  padding:22px 24px;
}
.card-block + .card-block{ margin-top:16px; }

/* ---------- Väljad ---------- */
.field-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.field-row + .field-row{ margin-top:16px; padding-top:16px; border-top:1px solid var(--sky-100); }
.field-label{ font-weight:800; font-size:0.95rem; color:var(--ink); }
.field-label small{ display:block; font-weight:600; color:var(--muted); font-size:0.8rem; margin-top:2px; }

.amount-input-wrap{ position:relative; min-width:200px; }
.amount-input-wrap input{
  width:100%;
  font-family:'Baloo 2',sans-serif;
  font-weight:700;
  font-size:1.3rem;
  color:var(--ink);
  border:2px solid var(--sky-200);
  background:var(--sky-50);
  border-radius:14px;
  padding:12px 40px 12px 16px;
  text-align:right;
}
.amount-input-wrap input:focus{ outline:none; border-color:var(--sky-500); background:var(--white); }
.amount-input-wrap::after{
  content:"€";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-weight:800;
  color:var(--sky-500);
  font-family:'Baloo 2',sans-serif;
  pointer-events:none;
}

/* ---------- Muudetavad kategooriaread ---------- */
.cat-rows{ display:flex; flex-direction:column; gap:10px; margin-top:4px; }
.cat-row{ display:flex; align-items:center; gap:12px; }
.cat-row .row-flex{ display:flex; align-items:center; gap:6px; flex:1; }
.cat-row input.cat-name{
  border:none;
  background:transparent;
  font-weight:700;
  color:var(--ink);
  width:100%;
  font-family:'Nunito',sans-serif;
  font-size:0.92rem;
  padding:8px 6px;
  border-radius:8px;
}
.cat-row input.cat-name:focus{ outline:none; background:var(--sky-50); }
.cat-row .amount-input-wrap{ min-width:150px; }
.cat-row .amount-input-wrap input{ font-size:1rem; padding:9px 34px 9px 12px; }
.del-btn{
  border:none; background:none; color:var(--sky-300); cursor:pointer;
  padding:4px 6px; font-size:1rem; line-height:1; flex-shrink:0; border-radius:6px;
}
.del-btn:hover{ color:var(--coral-dark); background:var(--sky-50); }

.add-row-btn{
  display:block; margin-top:14px; border:2px dashed var(--sky-300); background:transparent;
  color:var(--sky-600); font-weight:800; border-radius:14px; padding:11px; width:100%;
  cursor:pointer; font-family:'Nunito',sans-serif; font-size:0.88rem;
}
.add-row-btn:hover{ border-color:var(--sky-500); background:var(--sky-50); }

.detail-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:16px;
  padding-top:16px;
  border-top:2px solid var(--sky-100);
  font-weight:800;
}
.detail-total .val{ font-family:'Baloo 2',sans-serif; font-size:1.25rem; color:var(--sky-700); }

/* ---------- Jaotuse valik (50/30/20): eelseaded + %-väljad ---------- */
.split-card-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.split-card-title{ font-weight:800; font-size:1rem; color:var(--ink); }

.preset-row{ display:inline-flex; background:var(--sky-50); border:2px solid var(--sky-200); border-radius:999px; padding:5px; gap:4px; }
.preset-btn{ border:none; background:transparent; color:var(--sky-700); font-weight:800; font-size:0.85rem; padding:9px 16px; border-radius:999px; cursor:pointer; font-family:'Nunito',sans-serif; transition:all .15s ease; white-space:nowrap; }
.preset-btn.active{ background:var(--ink); color:#fff; }

.split-pct-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.split-pct-item{ display:flex; flex-direction:column; gap:8px; }
.split-pct-label{ font-weight:800; font-size:0.88rem; }
.split-pct-item[data-key="vajadused"] .split-pct-label{ color:var(--ink); }
.split-pct-item[data-key="soovid"] .split-pct-label{ color:var(--coral-dark); }
.split-pct-item[data-key="saast"] .split-pct-label{ color:var(--good); }

.pct-input-wrap{ position:relative; }
.pct-input-wrap input{ width:100%; font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.15rem; color:var(--ink); border:2px solid var(--sky-200); background:var(--sky-50); border-radius:14px; padding:12px 34px 12px 14px; text-align:right; }
.pct-input-wrap input:focus{ outline:none; border-color:var(--sky-500); background:var(--white); }
.pct-input-wrap::after{ content:"%"; position:absolute; right:14px; top:50%; transform:translateY(-50%); font-weight:800; color:var(--sky-500); font-family:'Baloo 2',sans-serif; pointer-events:none; }

@media (max-width:560px){ .split-pct-row{ grid-template-columns:1fr; } }

/* ---------- Eesmärgi kogusummad ---------- */
.simple-buckets{ display:flex; flex-direction:column; gap:16px; }
.simple-bucket-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }

@media (max-width:700px){
  .simple-bucket-row{ flex-direction:column; align-items:stretch; }
}

/* ---------- Tulemuskaardid ---------- */
.result-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:18px;
}
.result-card{
  background:var(--white);
  border-radius:20px;
  padding:22px 22px 20px;
  border:1px solid var(--sky-100);
  box-shadow:0 6px 16px rgba(31,111,166,0.06);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.result-card .icon-bubble{
  width:44px; height:44px;
  border-radius:13px;
  background:linear-gradient(145deg, var(--sky-200), var(--sky-100));
  display:flex; align-items:center; justify-content:center;
  color:var(--sky-700);
  margin-bottom:4px;
}
.result-card.highlight .icon-bubble{ background:linear-gradient(145deg, var(--yellow), #FFEBB0); color:#8a6a12; }
.icon-bubble svg{ width:22px; height:22px; }
.result-card .r-label{
  font-size:0.82rem;
  font-weight:800;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:0.03em;
}
.result-card .r-value{ font-family:'Baloo 2',sans-serif; font-size:1.7rem; font-weight:700; color:var(--ink); }
.result-card .r-value.positive{ color:var(--good); }
.result-card .r-value.negative{ color:var(--coral-dark); }
.result-card .r-sub{ font-size:0.85rem; color:var(--muted); font-weight:600; line-height:1.4; }
.result-card .r-sub.positive{ color:var(--good); font-weight:800; }
.result-card .r-sub.negative{ color:var(--coral-dark); font-weight:800; }

/* ---------- Olekuriba ---------- */
.status-banner{
  margin-top:18px;
  padding:16px 20px;
  border-radius:16px;
  font-weight:700;
  font-size:0.92rem;
  line-height:1.5;
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.status-banner svg{ width:22px; height:22px; flex-shrink:0; margin-top:1px; }
.status-banner.ok{ background:rgba(46,158,108,0.08); color:#1f7a4d; }
.status-banner.warn{ background:rgba(255,216,115,0.18); color:#8a6a12; }
.status-banner.low{ background:rgba(233,122,80,0.09); color:var(--coral-dark); }
.status-banner.info{ background:rgba(65,168,237,0.09); color:var(--sky-700); }

@media (max-width:700px){
  .field-row{ flex-direction:column; align-items:stretch; }
  .amount-input-wrap{ min-width:0; }
}

/* ---------- Lüliti-read (toggle switch) — jagatud komponent ---------- */
.srow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 0;
  border-bottom:1px solid var(--sky-100);
  flex-wrap:wrap;
}
.srow:last-child{ border-bottom:none; padding-bottom:0; }
.srow.disabled .st{ opacity:.42; }
.st{ font-weight:800; font-size:0.86rem; }
.st small{ display:block; font-weight:600; color:var(--muted); font-size:0.76rem; margin-top:3px; line-height:1.45; }
.sright{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.switch{ position:relative; width:48px; height:27px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; position:absolute; }
.switch .track{ position:absolute; inset:0; background:var(--sky-200); border-radius:999px; cursor:pointer; transition:.15s; }
.switch .track::before{
  content:""; position:absolute; width:19px; height:19px; left:4px; top:4px;
  background:#fff; border-radius:50%; box-shadow:0 1px 4px rgba(0,0,0,.2); transition:.15s;
}
.switch input:checked + .track{ background:var(--sky-500); }
.switch input:checked + .track::before{ transform:translateX(21px); }
.switch input:disabled + .track{ opacity:.4; cursor:not-allowed; }

/* ---------- KKK / seotud kalkulaatorid ---------- */
.faq-item{ margin-bottom:18px; }
.faq-item h3{ font-size:1rem; margin:0 0 6px; }
.faq-item p{ margin:0; color:var(--muted); font-weight:600; line-height:1.6; font-size:0.92rem; }

.related-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.related-list a{ color:var(--sky-600); font-weight:800; }
.related-list a:hover{ text-decoration:underline; }

/* ---------- Kuueelarve: aasta-tabeli kalkulaator ---------- */
.year-field{
  display:inline-flex; align-items:center; gap:8px; margin-top:16px;
  background:var(--white); border:2px solid var(--sky-200); border-radius:14px; padding:8px 14px;
}
.year-field label{ font-weight:800; font-size:0.85rem; color:var(--sky-700); }
.year-field input{ width:80px; border:none; font-weight:800; font-size:1.05rem; color:var(--ink); font-family:'Baloo 2',sans-serif; background:transparent; }
.year-field input:focus{ outline:none; }
#yearPrint{ display:none; }

.table-card, .summary-card{
  background:var(--white); border-radius:20px; border:1px solid var(--sky-100);
  box-shadow:0 6px 16px rgba(31,111,166,0.06); padding:6px; overflow-x:auto;
}
.table-card table, .summary-card table{ border-collapse:collapse; width:100%; min-width:1120px; }
.table-card th, .table-card td, .summary-card th, .summary-card td{
  padding:9px 3px; text-align:right; white-space:nowrap; font-size:0.86rem;
}
.table-card th, .summary-card th{
  font-family:'Baloo 2',sans-serif; font-size:0.7rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; color:var(--sky-600); background:var(--sky-50);
}
.table-card .cat-col, .summary-card .cat-col{ text-align:left; position:sticky; left:0; background:var(--white); z-index:2; min-width:210px; }
.table-card th.cat-col, .summary-card th.cat-col{ background:var(--sky-50); z-index:3; }
.table-card .qf-col{ min-width:120px; }
.cat-col .print-label{ display:none; }
.table-card tbody tr:nth-child(odd) td:not(.cat-col){ background:rgba(239,248,255,0.5); }
.table-card tbody tr:nth-child(odd) td.cat-col{ background:#FBFDFF; }

.row-flex{ display:flex; align-items:center; gap:6px; }

.cell-input-wrap{ position:relative; display:inline-block; }
.cell-input-wrap .cell-eur{
  position:absolute; right:6px; top:50%; transform:translateY(-50%);
  font-size:0.72rem; color:var(--muted); pointer-events:none;
}

input.cell-input{
  width:92px; border:none; background:transparent; text-align:right;
  font-weight:400; color:var(--ink); font-family:'Nunito',sans-serif;
  padding:5px 20px 5px 6px; border-radius:7px; font-size:0.86rem;
}
input.cell-input:focus{ outline:none; background:var(--sky-100); }
input.cell-input::-webkit-outer-spin-button,
input.cell-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
input.cell-input[type=number]{
  -moz-appearance:textfield;
}

td.cat-col input.cat-name{
  border:none; background:transparent; font-weight:700; color:var(--ink);
  width:100%; font-family:'Nunito',sans-serif; font-size:0.9rem; padding:5px 4px; border-radius:7px;
}
td.cat-col input.cat-name:focus{ outline:none; background:var(--sky-100); }

.table-card .del-btn{ padding:2px 5px; font-size:0.95rem; }

.quickfill{ display:flex; gap:4px; align-items:center; justify-content:flex-end; }
.quickfill input{ width:58px; border:1px solid var(--sky-200); background:var(--white); border-radius:8px; text-align:right; font-weight:700; padding:5px 6px; font-size:0.8rem; }
.quickfill input:focus{ outline:none; border-color:var(--sky-500); }
.quickfill button{
  border:none; background:var(--sky-100); color:var(--sky-700); border-radius:8px;
  font-weight:800; font-size:0.72rem; padding:6px 8px; cursor:pointer; font-family:'Nunito',sans-serif;
  white-space:nowrap;
}
.quickfill button:hover{ background:var(--sky-200); }

.table-card td.row-total, .table-card td.row-avg{ font-weight:700; }

tr.total-row td{ font-weight:800; background:var(--sky-100)!important; color:var(--sky-700); }
tr.total-row td.cat-col{ background:var(--sky-100)!important; }

td.positive{ color:var(--good); font-weight:800; }
td.negative{ color:var(--coral-dark); font-weight:800; }
tr.jaak-row td.cat-col, tr.kum-row td.cat-col{ font-weight:800; }
tr.kum-row td:not(.cat-col){ background:rgba(255,216,115,0.18)!important; }
tr.jaak-row td:not(.cat-col){ background:rgba(46,158,108,0.06)!important; }

.legend{ display:flex; gap:18px; margin-top:10px; font-size:0.82rem; color:var(--muted); font-weight:700; flex-wrap:wrap; }
.legend span{ display:inline-flex; align-items:center; gap:6px; }
.legend i{ width:10px; height:10px; border-radius:3px; display:inline-block; }

body.page-kuueelarve main{ max-width:none; }

/* ---------- Kuueelarve: aasta kokkuvõtte graafikud ---------- */
.chart-card{
  background:var(--white); border-radius:20px; border:1px solid var(--sky-100);
  box-shadow:0 6px 16px rgba(31,111,166,0.06); padding:22px 24px; margin-top:16px;
}
.chart-card h3{ margin:0 0 4px; font-size:1.05rem; }
.chart-card p.hint{ margin:0 0 14px; color:var(--muted); font-weight:600; font-size:0.86rem; }

.charts-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:16px; }
.charts-grid .chart-card{ margin-top:0; }

/* Tulpdiagramm */
.bar-chart-wrap{ overflow-x:auto; }
.bar-chart{ width:100%; height:auto; min-width:640px; display:block; overflow:visible; }
.bar-chart .grid-line{ stroke:var(--sky-100); stroke-width:1; }
.bar-chart .axis-label{ fill:var(--muted); font-family:'Nunito',sans-serif; font-weight:700; font-size:9px; }
.bar-chart .bar-value{ fill:var(--ink); font-family:'Baloo 2',sans-serif; font-weight:700; font-size:10px; }
.bar-chart .bar-hit{ fill:transparent; cursor:pointer; pointer-events:all; }
.bar-chart .bar-shape{ transition:opacity .12s ease; }
.bar-chart .bar-hit:hover + .bar-shape,
.bar-chart .bar-hit:focus + .bar-shape{ opacity:0.78; }
.bar-chart .bar-hit:focus{ outline:none; }
.bar-chart .bar-hit:focus-visible ~ .bar-shape{ opacity:0.78; }

/* Donut-diagrammid */
.donut-wrap{ position:relative; width:100%; max-width:220px; margin:0 auto; }
.donut-chart{ width:100%; height:auto; display:block; }
.donut-chart .donut-seg{ transition:opacity .12s ease; cursor:pointer; }
.donut-chart .donut-seg:hover, .donut-chart .donut-seg:focus{ opacity:0.8; outline:none; }
.donut-chart .donut-pct{ font-family:'Nunito',sans-serif; font-weight:800; font-size:11px; pointer-events:none; }
.donut-center{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  text-align:center; pointer-events:none;
}
.donut-center .dc-label{ display:block; font-size:0.68rem; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.donut-center .dc-value{ display:block; font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.05rem; color:var(--ink); }

.chart-legend{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.chart-legend li{ display:flex; align-items:center; gap:8px; font-size:0.86rem; font-weight:700; color:var(--ink); }
.chart-legend .cl-swatch{ width:11px; height:11px; border-radius:3px; flex-shrink:0; }
.chart-legend .cl-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chart-legend .cl-value{ color:var(--muted); font-weight:700; white-space:nowrap; }
.chart-legend .cl-pct{ color:var(--sky-600); font-weight:800; white-space:nowrap; min-width:2.6em; text-align:right; }

.chart-empty{ text-align:center; color:var(--muted); font-weight:700; padding:30px 10px; margin:0; }

.chart-tooltip{
  position:fixed; z-index:50; pointer-events:none;
  background:var(--ink); color:#fff; font-family:'Nunito',sans-serif;
  font-size:0.8rem; font-weight:700; line-height:1.4;
  padding:8px 12px; border-radius:10px; box-shadow:0 8px 20px rgba(28,43,58,0.25);
  max-width:220px; opacity:0; transform:translateY(4px); transition:opacity .1s ease, transform .1s ease;
}
.chart-tooltip.show{ opacity:1; transform:translateY(0); }
.chart-tooltip .tt-value{ color:#fff; font-family:'Baloo 2',sans-serif; font-weight:700; font-size:0.95rem; display:block; }
.chart-tooltip .tt-label{ color:#B9CBDA; font-weight:600; display:block; }

@media (max-width:700px){
  .charts-grid{ grid-template-columns:1fr; }
}

/* ---------- Kuueelarve: prindi-dashboard (esimene PDF-lehekülg, peidus ekraanil) ---------- */
.print-dashboard{ display:none; }

.pd-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:12px; }
.pd-kpi{
  border-radius:16px; padding:10px 14px; border-top:5px solid var(--sky-400);
  background:var(--white); box-shadow:0 4px 10px rgba(31,111,166,0.08);
  text-align:center;
}
.pd-kpi-income{ border-top-color:var(--good); background:rgba(46,158,108,0.07); }
.pd-kpi-expense{ border-top-color:var(--coral); background:rgba(255,150,112,0.1); }
.pd-kpi-avg{ border-top-color:var(--muted); background:rgba(94,116,136,0.08); }
.pd-kpi-savings{ border-top-color:var(--sky-500); background:var(--sky-50); }
.pd-kpi-label{ font-size:0.76rem; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; margin-bottom:4px; }
.pd-kpi-value{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.35rem; color:var(--ink); }
.pd-kpi-value.positive{ color:var(--good); }
.pd-kpi-value.negative{ color:var(--coral-dark); }

.pd-charts-center{ display:grid; grid-template-columns:1fr; gap:10px; margin-bottom:10px; }
.pd-chart-card, .pd-donut-card{
  background:var(--white); border-radius:16px; border:1px solid var(--sky-100);
  box-shadow:0 4px 10px rgba(31,111,166,0.06); padding:10px 14px;
}
.pd-chart-card h3, .pd-donut-card h3{ margin:0 0 6px; font-size:0.92rem; }
.pd-charts-footer{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pd-donut-card .donut-wrap{ max-width:125px; }
.pd-donut-card .chart-legend{ gap:5px; }
.pd-donut-card .chart-legend li{ font-size:0.76rem; }

/* ---------- Kuueelarve: printimine (skoobitud ainult sellele lehele) ---------- */
@media print{
  @page kuueelarve-print{ size: portrait; margin:10mm; }
  body.page-kuueelarve{ page: kuueelarve-print; background:#fff; }
  body.page-kuueelarve .blob,
  body.page-kuueelarve .back-link,
  body.page-kuueelarve .privacy-chip,
  body.page-kuueelarve .print-btn,
  body.page-kuueelarve .excel-btn,
  body.page-kuueelarve .add-row-btn,
  body.page-kuueelarve .quickfill,
  body.page-kuueelarve .del-btn,
  body.page-kuueelarve .legend,
  body.page-kuueelarve #incomeSection,
  body.page-kuueelarve #expenseSection,
  body.page-kuueelarve #kokkuvoteBlock,
  body.page-kuueelarve #kasutusjuhend,
  body.page-kuueelarve #seotud,
  body.page-kuueelarve footer,
  body.page-kuueelarve .hero p.lead{ display:none !important; }
  body.page-kuueelarve #yearInput{ display:none; }
  body.page-kuueelarve #yearPrint{ display:inline; font-family:'Baloo 2',sans-serif; font-weight:800; font-size:1.05rem; color:var(--sky-700); }
  body.page-kuueelarve .year-field{ border:none; padding:0; background:none; }
  body.page-kuueelarve .year-field label{ display:none; }
  body.page-kuueelarve header{ background:none; padding:0 0 10px; }
  body.page-kuueelarve .hero{ padding-top:0; }
  body.page-kuueelarve .hero h1{ font-size:1.4rem; margin-bottom:4px; }
  body.page-kuueelarve main{ padding:6px 0 0; max-width:none; }

  body.page-kuueelarve .print-dashboard{
    display:block;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
  body.page-kuueelarve .print-dashboard *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body.page-kuueelarve .pd-chart-card, body.page-kuueelarve .pd-donut-card{ page-break-inside:avoid; }
  body.page-kuueelarve .pd-kpi{ page-break-inside:avoid; }

  body.page-kuueelarve .bar-chart-wrap{ overflow-x:visible; }
  body.page-kuueelarve .chart-tooltip{ display:none !important; }
  body.page-kuueelarve .bar-chart .axis-label{ font-size:9px; }
  body.page-kuueelarve .bar-chart .bar-value{ font-size:10px; }
}

/* ---------- Kuu tulude-kulude planeerija ---------- */

/* Kompaktsed read (Lihtne vaade) — kõrgus vastab aastaplaneerija .cell-input väljadele */
body.page-kuu-planeerija .cat-row{ gap:8px; }
body.page-kuu-planeerija .cat-row input.cat-name{ padding:5px 6px; font-size:0.88rem; }
body.page-kuu-planeerija .cat-row .amount-input-wrap{ min-width:0; width:112px; flex:0 0 auto; }
body.page-kuu-planeerija .cat-row input.cat-name{ min-width:0; }
body.page-kuu-planeerija .cat-row .amount-input-wrap input{
  border:none; background:transparent; font-family:'Nunito',sans-serif; font-size:0.86rem; font-weight:700;
  padding:5px 26px 5px 8px; border-radius:7px;
}
body.page-kuu-planeerija .cat-row .amount-input-wrap input:focus{ background:var(--sky-100); }
body.page-kuu-planeerija .cat-row .amount-input-wrap::after{ right:8px; font-size:0.78rem; }
body.page-kuu-planeerija .year-field input{ width:170px; }
#planPeriodPrint{ display:none; }

/* Täislaius (nagu avalehel) — eemaldab 960px piirangu */
body.page-kuu-planeerija main{ max-width:none; }

/* Kahetulbaline paigutus: sisendid vasakul, kokkuvõte paremal */
.planner-layout{ display:grid; grid-template-columns:3fr 2fr; gap:20px; align-items:start; }
.planner-summary .result-grid{ grid-template-columns:repeat(3,1fr); gap:10px; }
.planner-summary .result-card{ padding:14px 12px 12px; gap:5px; }
.planner-summary .result-card .icon-bubble{ width:32px; height:32px; margin-bottom:2px; }
.planner-summary .result-card .icon-bubble svg{ width:16px; height:16px; }
.planner-summary .result-card .r-label{ font-size:0.66rem; }
.planner-summary .result-card .r-value{ font-size:1.15rem; }
.planner-summary .result-card .r-sub{ font-size:0.72rem; }
@media (max-width:700px){
  .planner-summary .result-grid{ grid-template-columns:1fr; }
  .planner-summary .result-card{ padding:22px 22px 20px; gap:8px; }
  .planner-summary .result-card .icon-bubble{ width:44px; height:44px; margin-bottom:4px; }
  .planner-summary .result-card .icon-bubble svg{ width:22px; height:22px; }
  .planner-summary .result-card .r-label{ font-size:0.82rem; }
  .planner-summary .result-card .r-value{ font-size:1.7rem; }
  .planner-summary .result-card .r-sub{ font-size:0.85rem; }
}
@media (max-width:1000px){
  .planner-layout{ grid-template-columns:1fr; }
}

.income-expense-cols{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.income-expense-cols .card-block + .card-block{ margin-top:0; }
@media (max-width:820px){ .income-expense-cols{ grid-template-columns:1fr; } }
.income-expense-cols h3{ font-size:1.05rem; margin:0 0 12px; display:flex; align-items:center; gap:9px; }
.income-expense-cols h3 .tag{ width:12px; height:12px; border-radius:5px; }
.income-expense-cols h3.income .tag{ background:var(--good); }
.income-expense-cols h3.expense .tag{ background:var(--coral); }

/* Kategooriagrupid (Detailne vaade: kategooria -> mitu rida), kompaktses kõrguses */
.cat-group{ border-radius:16px; margin-bottom:12px; }
.cat-group:last-child{ margin-bottom:0; }
.cat-head{
  display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:12px;
  background:var(--sky-50); border-left:5px solid var(--sky-400);
}
.cat-head .cat-sw{ width:12px; height:12px; border-radius:5px; flex-shrink:0; }
.cat-head input.cat-name{
  flex:1; min-width:0; border:none; background:transparent; font-family:'Baloo 2',sans-serif;
  font-weight:700; font-size:0.98rem; color:var(--ink); padding:5px 6px; border-radius:8px;
}
.cat-head input.cat-name:focus{ outline:none; background:var(--white); }
.cat-head .cat-sub{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:0.92rem; color:var(--sky-700); white-space:nowrap; }
.cat-lines{ padding:6px 4px 2px 26px; display:flex; flex-direction:column; gap:2px; }
.line-row{ display:flex; align-items:center; gap:8px; }
.line-row input.line-name{
  flex:1; min-width:0; border:none; background:transparent; font-weight:700; color:var(--ink);
  font-family:'Nunito',sans-serif; font-size:0.86rem; padding:5px 6px; border-radius:7px;
}
.line-row input.line-name:focus{ outline:none; background:var(--sky-100); }
.line-row .amount-input-wrap{ min-width:110px; }
.line-row .amount-input-wrap input{
  border:none; background:transparent; font-family:'Nunito',sans-serif; font-size:0.86rem; font-weight:700;
  padding:5px 26px 5px 8px; border-radius:7px;
}
.line-row .amount-input-wrap input:focus{ background:var(--sky-100); }
.line-row .amount-input-wrap::after{ right:8px; font-size:0.78rem; }
.add-line-btn{
  margin:6px 0 4px 26px; border:1px dashed var(--sky-300); background:transparent;
  color:var(--sky-600); font-weight:800; border-radius:10px; padding:7px 12px; cursor:pointer;
  font-family:'Nunito',sans-serif; font-size:0.8rem;
}
.add-line-btn:hover{ border-color:var(--sky-500); background:var(--sky-50); }
.cat-add-bar{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:10px; }
.cat-add-bar select{
  font-family:'Nunito',sans-serif; font-weight:700; font-size:0.86rem; color:var(--ink);
  border:2px solid var(--sky-200); background:var(--white); border-radius:12px; padding:9px 12px;
}
.cat-add-bar select:focus{ outline:none; border-color:var(--sky-500); }
.cat-add-btn{
  border:none; background:var(--sky-100); color:var(--sky-700); border-radius:12px;
  font-weight:800; font-size:0.84rem; padding:10px 16px; cursor:pointer; font-family:'Nunito',sans-serif;
}
.cat-add-btn:hover{ background:var(--sky-200); }

/* ---------- Kuu planeerija: printimine (skoobitud ainult sellele lehele) ---------- */
@media print{
  body.page-kuu-planeerija{ background:#fff; }
  body.page-kuu-planeerija .blob,
  body.page-kuu-planeerija .back-link,
  body.page-kuu-planeerija .privacy-chip,
  body.page-kuu-planeerija .print-btn,
  body.page-kuu-planeerija .excel-btn,
  body.page-kuu-planeerija .mode-toggle,
  body.page-kuu-planeerija .add-row-btn,
  body.page-kuu-planeerija .add-line-btn,
  body.page-kuu-planeerija .cat-add-bar,
  body.page-kuu-planeerija .del-btn,
  body.page-kuu-planeerija .chart-tooltip,
  body.page-kuu-planeerija #kasutusjuhend,
  body.page-kuu-planeerija #kkk,
  body.page-kuu-planeerija #seotud,
  body.page-kuu-planeerija footer,
  body.page-kuu-planeerija .hero p.lead{ display:none !important; }
  body.page-kuu-planeerija #planPeriod{ display:none; }
  body.page-kuu-planeerija #planPeriodPrint{ display:inline; font-family:'Baloo 2',sans-serif; font-weight:800; font-size:1.05rem; color:var(--sky-700); }
  body.page-kuu-planeerija .year-field{ border:none; padding:0; background:none; }
  body.page-kuu-planeerija .year-field label{ display:none; }
  body.page-kuu-planeerija header{ background:none; padding:0 0 10px; }
  body.page-kuu-planeerija .hero{ padding-top:0; }
  body.page-kuu-planeerija .hero h1{ font-size:1.4rem; margin-bottom:4px; }
  body.page-kuu-planeerija main{ padding:6px 0 0; max-width:none; }
  body.page-kuu-planeerija .planner-layout{ display:block; }
  body.page-kuu-planeerija section.block{ margin-bottom:14px; page-break-inside:avoid; }
  body.page-kuu-planeerija section.block h2{ font-size:1rem; }
  body.page-kuu-planeerija section.block p.hint{ display:none; }
  body.page-kuu-planeerija .card-block{ box-shadow:none; border:1px solid #ccc; }
  body.page-kuu-planeerija .result-card,
  body.page-kuu-planeerija .chart-card{ box-shadow:none; border:1px solid #ccc; page-break-inside:avoid; }

  body.page-kuu-planeerija [data-mode-panel="simple"] .planner-inputs{ display:none !important; }
  body.page-kuu-planeerija [data-mode-panel="simple"] .planner-summary h2{ display:none !important; }
  body.page-kuu-planeerija [data-mode-panel="simple"] .result-grid{ display:none !important; }

  body.page-kuu-planeerija [data-mode-panel="detailed"] .planner-inputs{ display:none !important; }
  body.page-kuu-planeerija [data-mode-panel="detailed"] .planner-summary h2{ display:none !important; }
  body.page-kuu-planeerija [data-mode-panel="detailed"] .result-grid{ display:none !important; }
  body.page-kuu-planeerija [data-mode-panel="detailed"] .screen-only-charts{ display:none !important; }

  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table{
    display:table; width:100%; border-collapse:collapse; margin-bottom:16px; page-break-inside:avoid; table-layout:fixed;
  }
  body.page-kuu-planeerija [data-mode-panel="simple"] #sPrintSummaryTable,
  body.page-kuu-planeerija [data-mode-panel="detailed"] #dPrintSummaryTable{ margin-bottom:30px; }
  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table th,
  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table td,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table th,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table td{ border:1px solid #ccc; padding:6px 10px; font-size:0.85rem; text-align:left; }
  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table td.num,
  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table th.num,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table td.num,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table th.num{ text-align:right; width:30%; }
  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table thead th,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table thead th{ background:#eee; }
  body.page-kuu-planeerija [data-mode-panel="simple"] .print-table tfoot td,
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table tfoot td{ font-weight:bold; background:#f3f3f3; }
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-table tr.cat-row-header td{
    font-style:italic; font-weight:bold; background:var(--sky-100);
  }

  body.page-kuu-planeerija [data-mode-panel="simple"] .charts-grid{
    page-break-before:always; break-before:page; margin-top:0;
  }
  body.page-kuu-planeerija [data-mode-panel="detailed"] .print-charts-grid{
    display:grid; page-break-before:always; break-before:page; margin-top:0;
  }

  body.page-kuu-planeerija .planner-summary section.block{ page-break-inside:auto; }
}

/* ---------- Ühiste kulude jagamine ---------- */

/* Täislaius (nagu avalehel) — eemaldab 960px piirangu */
body.page-kulude-jagamine main{ max-width:none; }

/* Printimisel kasutatavad kokkuvõttetabelid — ekraanil peidus, nähtavad ainult @media print all */
.print-table{ display:none; }
.print-charts-grid{ display:none; }
.print-payslip{ display:none; }

/* 2 tulemuskaarti jagavad graafiku laiuse võrdselt pooleks, piisava vahega graafiku alt
   (võidab spetsiifilisuselt päritud .planner-summary .result-grid{repeat(3,1fr)} reegli,
   mis on mõeldud kuu-planeerija 3 kaardi jaoks, aga siin on kaarte ainult 2) */
body.page-kulude-jagamine .result-grid{
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 24px;
}

/* Partneri sissetuleku-kaardid */
.partner-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.partner-card{
  background:var(--white); border-radius:20px; border:1px solid var(--sky-100);
  box-shadow:0 6px 16px rgba(31,111,166,0.06); padding:20px 22px; border-top:5px solid var(--sky-500);
}
.partner-card[data-p="2"]{ border-top-color:var(--coral); }
.p-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:0.72rem; font-weight:800; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--muted); margin-bottom:12px;
}
.p-eyebrow i{ width:11px; height:11px; border-radius:4px; display:inline-block; background:var(--sky-500); }
.partner-card[data-p="2"] .p-eyebrow i{ background:var(--coral); }
.name-input{
  width:100%; border:none; border-bottom:2px solid var(--sky-200); background:transparent;
  font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.15rem; color:var(--ink);
  padding:4px 2px 8px; margin-bottom:16px;
}
.name-input::placeholder{ color:var(--sky-300); }
.name-input:focus{ outline:none; border-color:var(--sky-500); }
.p-field-label{ font-weight:800; font-size:0.85rem; color:var(--muted); margin-bottom:8px; }

/* Kokkuvõtte-riba (sissetulek / kulud / isiklikuks jääv kokku) */
.overview{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; }
.ov-cell{
  background:var(--white); border:1px solid var(--sky-100); border-radius:16px;
  padding:16px 18px; box-shadow:0 6px 16px rgba(31,111,166,0.06);
}
.ov-cell .ov-label{
  font-size:0.74rem; font-weight:800; text-transform:uppercase; letter-spacing:0.03em;
  color:var(--muted); margin-bottom:6px;
}
.ov-cell .ov-value{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.5rem; }
.ov-cell.pool .ov-value{ color:var(--good); }
.ov-cell.pool.neg .ov-value{ color:var(--coral-dark); }

/* Virnastatud tulbad: panus ühiskassasse vs isiklik raha */
.legend i.contrib{ background:var(--sky-500); }
.legend i.personal{ background:var(--good); }
.stack-item{ margin-bottom:22px; }
.stack-item:last-child{ margin-bottom:0; }
.stack-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:8px; gap:12px; }
.stack-name{ font-weight:800; font-size:1rem; display:flex; align-items:center; gap:8px; }
.stack-name i{ width:11px; height:11px; border-radius:4px; display:inline-block; background:var(--sky-500); }
.stack-item[data-p="2"] .stack-name i{ background:var(--coral); }
.stack-income{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.05rem; color:var(--ink); }
.stack-track{ width:100%; background:var(--sky-50); border-radius:12px; padding:0; }
.stack-bar{ display:flex; height:46px; border-radius:12px; overflow:hidden; min-width:2px; transition:width .18s ease; }
.stack-seg{
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:0.85rem; white-space:nowrap;
  overflow:hidden; transition:width .18s ease;
}
.stack-seg.contrib{ background:var(--sky-500); }
.stack-seg.personal{ background:var(--good); }
.stack-caption{ margin-top:8px; font-size:0.83rem; font-weight:700; color:var(--muted); }
.stack-caption b{ color:var(--sky-700); }

/* 50/50 võrdlusplokk */
.compare-card h3{ font-size:1rem; margin:0 0 10px; color:var(--ink); }
.compare-card p{ margin:0; font-weight:700; font-size:0.92rem; line-height:1.6; color:var(--muted); }
.compare-card p b{ color:var(--sky-700); }
.compare-card p .gain{ color:var(--good); }

@media (max-width:820px){
  .partner-grid{ grid-template-columns:1fr; }
  .overview{ grid-template-columns:1fr; }
}

/* ---------- Ühiste kulude jagamine: printimine (skoobitud ainult sellele lehele) ---------- */
@media print{
  @page kulude-jagamine-print{ size: portrait; margin:12mm; }
  body.page-kulude-jagamine{ page: kulude-jagamine-print; background:#fff; }
  body.page-kulude-jagamine .blob,
  body.page-kulude-jagamine .back-link,
  body.page-kulude-jagamine .privacy-chip,
  body.page-kulude-jagamine .print-btn,
  body.page-kulude-jagamine .excel-btn,
  body.page-kulude-jagamine .add-row-btn,
  body.page-kulude-jagamine .del-btn,
  body.page-kulude-jagamine #kkk,
  body.page-kulude-jagamine #seotud,
  body.page-kulude-jagamine footer,
  body.page-kulude-jagamine .hero p.lead,
  body.page-kulude-jagamine .planner-inputs,
  body.page-kulude-jagamine .overview,
  body.page-kulude-jagamine .result-grid,
  body.page-kulude-jagamine .status-banner,
  body.page-kulude-jagamine .chart-card,
  body.page-kulude-jagamine .planner-summary h2,
  body.page-kulude-jagamine #compareCard{ display:none !important; }
  body.page-kulude-jagamine header{ background:none; padding:0 0 10px; }
  body.page-kulude-jagamine .hero{ padding-top:0; }
  body.page-kulude-jagamine .hero h1{ font-size:1.4rem; margin-bottom:4px; }
  body.page-kulude-jagamine main{ padding:6px 0 0; max-width:none; }
  body.page-kulude-jagamine .planner-layout{ display:block; }
  body.page-kulude-jagamine section.block{ margin-bottom:14px; page-break-inside:avoid; }
  body.page-kulude-jagamine section.block h2{ font-size:1rem; }
  body.page-kulude-jagamine section.block p.hint{ display:none; }
  body.page-kulude-jagamine .card-block,
  body.page-kulude-jagamine .partner-card,
  body.page-kulude-jagamine .ov-cell,
  body.page-kulude-jagamine .result-card{ box-shadow:none; border:1px solid #ccc; page-break-inside:avoid; }
  body.page-kulude-jagamine .print-table{
    display:table; width:100%; border-collapse:collapse; margin-bottom:16px; page-break-inside:avoid;
  }
  body.page-kulude-jagamine #printSummaryTable{ margin-bottom:30px; }
  body.page-kulude-jagamine .print-table th,
  body.page-kulude-jagamine .print-table td{ border:1px solid #ccc; padding:6px 10px; font-size:0.85rem; text-align:left; }
  body.page-kulude-jagamine .print-table td.num,
  body.page-kulude-jagamine .print-table th.num{ text-align:right; }
  body.page-kulude-jagamine .print-table thead th{ background:#eee; }
  body.page-kulude-jagamine .print-table tfoot td{ font-weight:bold; background:#f3f3f3; }
}

/* ---------- Meelerahufond ---------- */

/* Täislaius (nagu avalehel) — eemaldab 960px piirangu */
body.page-meelerahufond main{ max-width:none; }

/* Kaheveeruline paigutus: kastid 1+2 vasakul, kastid 3+4 paremal */
.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:start;
  margin-bottom:24px;
}
@media (max-width:860px){
  .two-col{ grid-template-columns:1fr; }
}

/* Saldo (sissetulek miinus kulu) */
.saldo-banner{
  margin-top:18px;
  padding:18px 22px;
  border-radius:16px;
  background:linear-gradient(145deg, var(--sky-100), var(--sky-50));
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}
.saldo-banner .s-label{ font-weight:800; font-size:0.9rem; color:var(--sky-700); }
.saldo-banner .s-label small{ display:block; font-weight:600; color:var(--muted); font-size:0.78rem; margin-top:2px; }
.saldo-banner .s-value{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.6rem; color:var(--ink); }
.saldo-banner.negative{ background:rgba(233,122,80,0.1); }
.saldo-banner.negative .s-value{ color:var(--coral-dark); }

/* %-liugur */
.slider-wrap{ margin-top:4px; }
.slider-top{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:10px;
  flex-wrap:wrap;
  gap:8px;
}
.slider-top .pct-value{ font-family:'Baloo 2',sans-serif; font-size:1.8rem; font-weight:700; color:var(--sky-700); }
.slider-top .contrib-value{
  font-weight:800;
  font-size:0.95rem;
  color:var(--ink);
  background:var(--sky-50);
  border:1px solid var(--sky-200);
  padding:8px 14px;
  border-radius:999px;
}
input[type="range"]{
  -webkit-appearance:none;
  width:100%;
  height:10px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--sky-500) 0%, var(--sky-500) var(--fill,20%), var(--sky-100) var(--fill,20%), var(--sky-100) 100%);
  outline:none;
  margin:8px 0 4px;
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:26px; height:26px;
  border-radius:50%;
  background:var(--white);
  border:4px solid var(--sky-600);
  cursor:pointer;
  box-shadow:0 3px 8px rgba(31,111,166,0.25);
}
input[type="range"]::-moz-range-thumb{
  width:22px; height:22px;
  border-radius:50%;
  background:var(--white);
  border:4px solid var(--sky-600);
  cursor:pointer;
  box-shadow:0 3px 8px rgba(31,111,166,0.25);
}
.slider-scale{ display:flex; justify-content:space-between; font-size:0.75rem; color:var(--muted); font-weight:700; }

.quick-pct{ display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }
.quick-pct button{
  border:2px solid var(--sky-200);
  background:var(--white);
  color:var(--sky-700);
  font-weight:800;
  font-size:0.82rem;
  padding:7px 14px;
  border-radius:999px;
  cursor:pointer;
  font-family:'Nunito',sans-serif;
}
.quick-pct button.active{ background:var(--sky-500); border-color:var(--sky-500); color:#fff; }
.quick-pct button:hover{ border-color:var(--sky-500); }

/* Trendigraafik (kast 4) — eraldi nimeruum, et mitte kattuda .chart-legend/.chart-card
   donut-graafiku komponentidega (kuueelarve/kuu-planeerija) */
.trend-chart-card{ overflow-x:auto; }
.trend-legend{ display:flex; gap:20px; flex-wrap:wrap; margin-bottom:14px; }
.trend-legend-item{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:0.85rem; color:var(--ink); }
.trend-swatch{ width:22px; height:4px; border-radius:2px; }
.trend-swatch.dot{ width:10px; height:10px; border-radius:50%; }
#chartSvg{ width:100%; min-width:560px; height:auto; display:block; }

/* Vahe-eesmärkide tabel (täislaiuses, kahe veeru all) */
.milestone-block{ overflow-x:auto; }
.milestone-table{ width:100%; border-collapse:collapse; margin-top:6px; font-size:0.88rem; }
.milestone-table th{
  text-align:right; font-weight:800; color:var(--muted); font-size:0.75rem;
  text-transform:uppercase; letter-spacing:0.03em; padding:0 8px 10px; border-bottom:2px solid var(--sky-100);
}
.milestone-table th:first-child, .milestone-table td:first-child{ text-align:left; }
.milestone-table td{ text-align:right; padding:10px 8px; border-bottom:1px solid var(--sky-100); font-weight:700; color:var(--ink); }
.milestone-table tr:last-child td{ border-bottom:none; }
.milestone-table td.diff{ color:var(--good); font-weight:800; }
.milestone-table td.target-label{ font-weight:800; color:var(--sky-700); }
.milestone-table td.done{ color:var(--good); font-weight:800; }

@media (max-width:700px){
  .saldo-banner{ flex-direction:column; align-items:flex-start; }
}

/* ---------- 50/30/20 reegli kalkulaator ---------- */

/* Täislaius (nagu avalehel), aga sisu on üheveeruline, seega piirame sektsioonide
   endi laiust eraldi, et liugurid/tulemuskaardid ei veniks suurtel ekraanidel liiga laiaks. */
body.page-50-30-20 main{ max-width:none; }
body.page-50-30-20 main > section.block{ max-width:800px; margin-left:auto; margin-right:auto; }

body.page-50-30-20 .result-card{ align-items:stretch; }
body.page-50-30-20 .r-examples{
  list-style:none; margin:6px 0 0; padding:10px 0 0;
  border-top:1px solid var(--sky-100);
  display:flex; flex-direction:column; gap:5px;
}
body.page-50-30-20 .r-examples li{
  font-size:0.78rem; color:var(--muted); font-weight:600; line-height:1.3;
  padding-left:14px; position:relative;
}
body.page-50-30-20 .r-examples li::before{
  content:"–"; position:absolute; left:0; color:var(--sky-400);
}

@media print{
  body.page-50-30-20{ background:#fff; }
  body.page-50-30-20 .blob,
  body.page-50-30-20 .back-link,
  body.page-50-30-20 .privacy-chip,
  body.page-50-30-20 .print-btn,
  body.page-50-30-20 #incomeSection,
  body.page-50-30-20 #splitSection,
  body.page-50-30-20 .result-grid,
  body.page-50-30-20 section.block p.hint,
  body.page-50-30-20 .hero p.lead,
  body.page-50-30-20 #seotud,
  body.page-50-30-20 footer{ display:none !important; }
  body.page-50-30-20 header{ background:none; padding:0 0 10px; }
  body.page-50-30-20 .hero{ padding-top:0; }
  body.page-50-30-20 .hero h1{ font-size:1.4rem; margin-bottom:4px; }
  body.page-50-30-20 main{ padding:6px 0 0; max-width:none; }
  body.page-50-30-20 main > section.block{ max-width:none; margin-bottom:14px; page-break-inside:avoid; }
  body.page-50-30-20 section.block h2{ font-size:1rem; }
  body.page-50-30-20 .print-table{
    display:table; width:100%; border-collapse:collapse; margin-bottom:16px; page-break-inside:avoid;
  }
  body.page-50-30-20 .print-table th,
  body.page-50-30-20 .print-table td{ border:1px solid #ccc; padding:6px 10px; font-size:0.85rem; text-align:left; }
  body.page-50-30-20 .print-table td.num,
  body.page-50-30-20 .print-table th.num{ text-align:right; width:25%; }
  body.page-50-30-20 .print-table thead th{ background:#eee; }
  body.page-50-30-20 .print-table tfoot td{ font-weight:bold; background:#f3f3f3; }
}

/* ---------- Netopalk (palgakalkulaator) ---------- */
/* Struktuur ja klassinimed järgivad täpselt docs/netopalk-v3.html prototüüpi (kaheveeruline
   workspace + "palgaleht"-dokument), skoobitud body.page-netopalk alla. */
body.page-netopalk main{ max-width:none; }

.workspace{ display:grid; grid-template-columns:minmax(320px,0.82fr) 1.18fr; gap:22px; align-items:start; }
.col-head{ display:flex; align-items:baseline; gap:10px; margin:0 0 10px; flex-wrap:wrap; }
.col-head h2{ font-size:1.15rem; margin:0; }
.col-head span{ font-size:0.82rem; font-weight:700; color:var(--muted); }

.left-col .card, .right-col .doc{
  background:var(--white); border-radius:20px; border:1px solid var(--sky-100);
  box-shadow:0 6px 18px rgba(31,111,166,0.07);
}
.left-col .card{ padding:20px 22px; }

/* ---------- Sisendiväljad (label kohal, input all — nagu prototüübis) ---------- */
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.field:last-child{ margin-bottom:0; }
.field-label{ font-weight:800; font-size:0.88rem; }
.field-label small{ display:block; font-weight:600; color:var(--muted); font-size:0.77rem; margin-top:2px; line-height:1.45; }
.inp{ position:relative; }
.inp input{
  width:100%; font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.1rem; color:var(--ink);
  border:2px solid var(--sky-200); background:var(--sky-50); border-radius:14px;
  padding:12px 44px 12px 16px; text-align:right; appearance:none; -webkit-appearance:none;
}
.inp input:focus{ outline:none; border-color:var(--sky-500); background:var(--white); }
.inp input:disabled{ opacity:.42; cursor:not-allowed; }
.inp.big input{ font-size:1.75rem; padding:16px 48px 16px 18px; }
.inp.eur::after{ content:"€"; position:absolute; right:16px; top:50%; transform:translateY(-50%); font-weight:800; color:var(--sky-500); font-family:'Baloo 2',sans-serif; pointer-events:none; }
.inp.h::after{ content:"h"; position:absolute; right:16px; top:50%; transform:translateY(-50%); font-weight:800; color:var(--sky-500); font-family:'Baloo 2',sans-serif; pointer-events:none; }
.inp.mini{ width:96px; flex-shrink:0; }
.inp.mini input{ font-size:0.95rem; padding:9px 34px 9px 12px; }
.inp.mini.eur::after{ right:12px; font-size:0.9rem; }

/* ---------- Segmenditud nupuvalik (Summa tüüp / Periood / II sammas / €-% lüliti) ---------- */
.seg{ display:flex; background:var(--sky-50); border:2px solid var(--sky-200); border-radius:14px; padding:4px; gap:4px; }
.seg button{
  flex:1; border:none; background:transparent; color:var(--sky-700); font-weight:800; font-size:0.83rem;
  padding:10px 6px; border-radius:11px; cursor:pointer; font-family:'Nunito',sans-serif; transition:.15s; white-space:nowrap;
}
.seg button:hover{ background:var(--white); }
.seg button.active{ background:var(--sky-500); color:#fff; box-shadow:0 2px 6px rgba(42,141,209,.3); }
.seg.pill{ border-radius:999px; }
.seg.pill button{ border-radius:999px; }
.seg.tiny button{ padding:8px 10px; font-size:0.78rem; }

/* ---------- Kaardisisene eraldusjoon ("Maksud ja mahaarvamised") ---------- */
.card-sep{ margin:18px -22px 14px; border-top:2px solid var(--sky-100); padding:14px 22px 0; }
.card-sep h3{ margin:0 0 2px; font-size:0.98rem; color:var(--sky-700); }
.card-sep p{ margin:0; font-size:0.79rem; font-weight:600; color:var(--muted); line-height:1.5; }

/* ---------- Palgalehe tööriistariba ---------- */
.doc-tools{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:10px; }

/* ---------- Palgaleht = tulemus ---------- */
.right-col .doc{ padding:24px 26px 22px; }
.doc-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; border-bottom:2px solid var(--sky-100); padding-bottom:16px; }
.doc-title{ font-family:'Baloo 2',sans-serif; font-size:1.35rem; font-weight:700; line-height:1.1; }
.doc-title small{ display:block; font-family:'Nunito',sans-serif; font-size:0.78rem; font-weight:700; color:var(--muted); margin-top:3px; }
.meta-grid{ display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); gap:10px 16px; }
.meta{ display:flex; flex-direction:column; gap:3px; }
.meta label{ font-size:0.7rem; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.meta input{
  border:none; border-bottom:1.5px dashed var(--sky-300); background:transparent; padding:3px 0;
  font-family:'Nunito',sans-serif; font-weight:800; font-size:0.88rem; color:var(--ink); width:100%;
}
.meta input::placeholder{ color:var(--sky-300); font-weight:600; }
.meta input:focus{ outline:none; border-bottom-color:var(--sky-500); }

.stat-band{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:18px 0 4px; }
.stat{ border-radius:16px; padding:14px 16px; background:var(--sky-50); border:1px solid var(--sky-100); }
.stat.net{ background:linear-gradient(150deg,#EBF9F1,#fff 70%); border:2px solid var(--good); }
.stat .sl{ font-size:0.7rem; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.stat .sv{ font-family:'Baloo 2',sans-serif; font-size:1.5rem; font-weight:700; line-height:1.2; margin-top:3px; }
.stat.net .sv{ color:var(--good); }

table.doc-table{ width:100%; border-collapse:collapse; margin-top:20px; }
table.doc-table caption{
  text-align:left; font-size:0.72rem; font-weight:800; color:var(--sky-700); text-transform:uppercase;
  letter-spacing:.05em; padding:0 0 8px;
}
table.doc-table th{
  text-align:right; padding:8px 10px; font-size:0.68rem; font-weight:800; color:var(--muted);
  text-transform:uppercase; letter-spacing:.04em; border-bottom:1.5px solid var(--sky-200);
}
table.doc-table th:first-child{ text-align:left; }
table.doc-table td{ padding:10px; border-bottom:1px solid var(--sky-50); font-weight:700; font-size:0.9rem; text-align:right; }
table.doc-table td:first-child{ text-align:left; font-weight:600; color:var(--muted); }
table.doc-table td em{ display:block; font-style:normal; font-size:0.75rem; font-weight:600; color:var(--sky-600); margin-top:1px; }
table.doc-table td.num{ font-family:'Baloo 2',sans-serif; font-size:1rem; color:var(--ink); white-space:nowrap; }
table.doc-table td.pct, table.doc-table th.pct{ width:78px; font-size:0.78rem; font-weight:800; color:var(--sky-600); }
table.doc-table tr.sum td{ background:var(--sky-50); border-bottom:none; font-weight:800; color:var(--ink); }
table.doc-table tr.sum td:first-child{ color:var(--ink); border-radius:10px 0 0 10px; }
table.doc-table tr.sum td:last-child{ border-radius:0 10px 10px 0; }
table.doc-table tr.sum td.num{ font-size:1.1rem; }
table.doc-table tr.net-sum td{ background:#EBF9F1; color:var(--good); }
table.doc-table tr.net-sum td:first-child{ color:#1c6b48; }
body.hide-pct .pct{ display:none; }

.bar-wrap{ margin-top:22px; padding-top:18px; border-top:2px solid var(--sky-100); }
.bar-legend{ display:flex; gap:14px; margin-bottom:9px; flex-wrap:wrap; }
.bar-legend span{ display:flex; align-items:center; gap:6px; font-size:0.76rem; font-weight:700; color:var(--muted); }
.bar-legend i{ width:10px; height:10px; border-radius:3px; display:inline-block; }
.cost-bar{ width:100%; height:18px; border-radius:999px; overflow:hidden; display:flex; background:var(--sky-100); }
.cost-bar span{ height:100%; transition:width .2s ease; }
.kiil{ margin:11px 0 0; font-size:0.84rem; font-weight:700; color:var(--muted); line-height:1.5; }
.kiil b{ color:var(--ink); }

.banner{ margin-top:14px; padding:13px 16px; border-radius:14px; font-weight:700; font-size:0.83rem; line-height:1.5; display:flex; gap:11px; align-items:flex-start; }
.banner svg{ width:19px; height:19px; flex-shrink:0; margin-top:1px; }
.banner.warn{ background:rgba(255,216,115,.22); color:#8a6a12; }
.banner.info{ background:rgba(65,168,237,.10); color:var(--sky-700); }
.banner[hidden]{ display:none; }

.doc-foot{ margin-top:18px; padding-top:14px; border-top:1px dashed var(--sky-200); font-size:0.75rem; font-weight:600; color:var(--muted); line-height:1.55; }

/* ---------- Alumised infosektsioonid (maksuinfo, arvutusnäide, mõisted) ---------- */
.tax-list{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px; }
.tax-list li{ display:flex; gap:11px; align-items:flex-start; font-size:0.87rem; font-weight:600; color:var(--muted); line-height:1.5; }
.tax-list li b{ color:var(--ink); font-weight:800; }
.tax-list li::before{ content:""; width:7px; height:7px; border-radius:3px; background:var(--sky-400); flex-shrink:0; margin-top:7px; }
.tax-list a.rt{ color:var(--sky-700); text-decoration:underline; text-underline-offset:2px; }
.tax-note{ margin-top:16px; padding:13px 15px; border-radius:13px; background:rgba(255,216,115,0.22); color:#8a6a12; font-size:0.83rem; font-weight:700; line-height:1.5; }
.tax-note-info{ background:rgba(65,168,237,0.10); color:var(--sky-700); }

.def-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.def h3{ margin:0 0 4px; font-size:0.98rem; color:var(--sky-700); }
.def p{ margin:0; font-size:0.84rem; font-weight:600; color:var(--muted); line-height:1.5; }

@media (max-width:1180px){
  .workspace{ grid-template-columns:1fr; }
}
@media (max-width:820px){
  .meta-grid{ grid-template-columns:1fr 1fr; }
  .def-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .stat-band{ grid-template-columns:1fr; }
  .right-col .doc{ padding:20px 18px; }
  .card-sep{ margin-left:-18px; margin-right:-18px; padding-left:18px; padding-right:18px; }
}
@media (max-width:560px){
  .def-grid{ grid-template-columns:1fr; }
  .meta-grid{ grid-template-columns:1fr; }
}

/* ---------- Netopalk: printimine (skoobitud ainult sellele lehele) ---------- */
@media print{
  @page netopalk-print{ size:portrait; margin:14mm; }
  body.page-netopalk{ page:netopalk-print; background:#fff; }
  body.page-netopalk .blob,
  body.page-netopalk .back-link,
  body.page-netopalk .privacy-chip,
  body.page-netopalk .print-btn,
  body.page-netopalk .left-col,
  body.page-netopalk .doc-tools,
  body.page-netopalk .col-head,
  body.page-netopalk .doc,
  body.page-netopalk main > section.block,
  body.page-netopalk .hero p.lead,
  body.page-netopalk #kkk,
  body.page-netopalk #seotud,
  body.page-netopalk footer{ display:none !important; }
  body.page-netopalk header{ background:none; padding:0 0 10px; }
  body.page-netopalk .hero{ padding-top:0; }
  body.page-netopalk .hero h1{ font-size:1.4rem; margin-bottom:4px; }
  body.page-netopalk main{ padding:6px 0 0; max-width:none; }
  body.page-netopalk .workspace{ display:block; }

  body.page-netopalk .print-payslip{ display:block; }
  body.page-netopalk .print-payslip h2{ font-size:1.05rem; margin:0 0 10px; color:var(--sky-700); font-family:'Baloo 2',sans-serif; }
  body.page-netopalk .print-table{
    display:table; width:100%; border-collapse:collapse; margin-bottom:16px;
    page-break-inside:avoid; table-layout:fixed;
  }
  body.page-netopalk .print-table th,
  body.page-netopalk .print-table td{ border:1px solid #ccc; padding:6px 10px; font-size:0.85rem; text-align:left; }
  body.page-netopalk .print-table td.num,
  body.page-netopalk .print-table th.num{ text-align:right; width:30%; }
  body.page-netopalk .print-table thead th{ background:#eee; }
  body.page-netopalk .print-table tfoot td{ font-weight:bold; background:#f3f3f3; }
  body.page-netopalk .print-payslip-foot{ font-size:0.72rem; color:#555; margin-top:6px; }
}

/* ---------- Pulma eelarve kalkulaator ---------- */

/* Täislaius (nagu avalehel) — eemaldab 960px piirangu */
body.page-pulmad main{ max-width:none; }

body.page-pulmad .cat-swatch{ width:12px; height:12px; border-radius:4px; flex-shrink:0; }

/* Külaliste arvu väli — "€" asemel "külalist" */
body.page-pulmad .amount-input-wrap.suffix-guests::after{ content:"külalist"; font-size:0.78rem; }
body.page-pulmad .amount-input-wrap.suffix-guests input{ padding-right:84px; }

/* Kuluartiklite grupid (akordion) */
body.page-pulmad .groups-actions{ display:flex; justify-content:flex-end; margin-bottom:10px; }
body.page-pulmad .toggle-all{
  border:none; background:transparent; color:var(--sky-600); font-weight:800;
  font-size:0.82rem; cursor:pointer; font-family:'Nunito',sans-serif; padding:6px 8px; border-radius:8px;
}
body.page-pulmad .toggle-all:hover{ background:var(--white); }

body.page-pulmad .grp{
  border:1px solid var(--sky-100); border-radius:16px; margin-bottom:12px;
  overflow:hidden; background:var(--white); box-shadow:0 6px 16px rgba(31,111,166,0.05);
}
body.page-pulmad .grp-bar{
  display:flex; align-items:center; gap:12px; padding:15px 16px;
  cursor:pointer; user-select:none; background:var(--sky-50);
}
body.page-pulmad .grp-bar:hover{ background:var(--sky-100); }
body.page-pulmad .grp-caret{ width:15px; height:15px; flex-shrink:0; color:var(--sky-600); transition:transform .18s ease; }
body.page-pulmad .grp:not(.collapsed) .grp-caret{ transform:rotate(90deg); }
body.page-pulmad .grp-name{ flex:1; min-width:0; font-family:'Baloo 2',sans-serif; font-weight:700; font-size:0.98rem; color:var(--ink); }
body.page-pulmad .grp-count{ font-size:0.72rem; font-weight:800; color:var(--muted); white-space:nowrap; }
body.page-pulmad .grp-subtotal{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.02rem; color:var(--sky-700); white-space:nowrap; min-width:86px; text-align:right; }
body.page-pulmad .grp.collapsed .grp-lines{ display:none; }
body.page-pulmad .grp-lines{ padding:6px 16px 16px; border-top:1px solid var(--sky-100); }
body.page-pulmad .grp-lines .cat-row .amount-input-wrap{ min-width:150px; max-width:190px; }
body.page-pulmad .grp-lines .cat-row .amount-input-wrap input{ font-size:1rem; padding:9px 34px 9px 12px; }

/* Fikseeritud kuluread (nimi + vihje, ainult summa muudetav) */
body.page-pulmad .item-row{ display:flex; align-items:flex-start; gap:14px; padding:11px 0; border-bottom:1px solid var(--sky-50); }
body.page-pulmad .item-row:last-of-type{ border-bottom:none; }
body.page-pulmad .item-text{ flex:1; min-width:0; padding-top:2px; }
body.page-pulmad .item-name{ font-weight:700; font-size:0.9rem; color:var(--ink); line-height:1.35; }
body.page-pulmad .item-note{ font-size:0.78rem; color:var(--muted); font-weight:600; line-height:1.4; margin-top:3px; }
body.page-pulmad .item-row .amount-input-wrap{ min-width:128px; max-width:150px; flex-shrink:0; }
body.page-pulmad .item-row .amount-input-wrap input{ font-size:0.95rem; padding:9px 32px 9px 10px; }
body.page-pulmad .item-row.reserve-row .item-name{ color:var(--coral-dark); }
body.page-pulmad .item-row.reserve-row .item-name::after{ content:" ⚑"; font-size:0.8rem; }

/* Pulma kogueelarve — esiletõstetud kogusumma-riba */
body.page-pulmad .grand-total-bar{
  margin-top:6px; background:var(--sky-600); color:#fff; border-radius:18px;
  padding:20px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px;
}
body.page-pulmad .grand-total-bar .gtb-label{ font-weight:800; font-size:0.9rem; text-transform:uppercase; letter-spacing:0.03em; opacity:0.92; }
body.page-pulmad .grand-total-bar .gtb-value{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:1.85rem; }

/* Panustajate virnastatud riba (N panustajat, tsükliline värvipalett) */
body.page-pulmad .contrib-bar-track{ width:100%; height:40px; border-radius:14px; background:var(--sky-50); overflow:hidden; display:flex; }
body.page-pulmad .contrib-bar-seg{
  height:100%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:0.8rem; white-space:nowrap; overflow:hidden;
  transition:width .25s ease;
}
body.page-pulmad .contrib-legend{ display:flex; flex-direction:column; gap:10px; margin-top:18px; }
body.page-pulmad .contrib-legend-item{ display:flex; align-items:center; gap:10px; }
body.page-pulmad .contrib-legend-item .cl-swatch{ width:11px; height:11px; border-radius:4px; flex-shrink:0; }
body.page-pulmad .contrib-legend-item .cl-name{ flex:1; font-weight:700; font-size:0.88rem; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.page-pulmad .contrib-legend-item .cl-value{ font-family:'Baloo 2',sans-serif; font-weight:700; font-size:0.92rem; color:var(--ink); }

@media (max-width:700px){
  body.page-pulmad .grand-total-bar{ flex-direction:column; align-items:flex-start; }
}

/* ---------- Pulma eelarve kalkulaator: printimine (skoobitud ainult sellele lehele) ---------- */
@media print{
  @page pulmad-print{ size: portrait; margin:12mm; }
  body.page-pulmad{ page: pulmad-print; background:#fff; }
  body.page-pulmad .blob,
  body.page-pulmad .back-link,
  body.page-pulmad .privacy-chip,
  body.page-pulmad .print-btn,
  body.page-pulmad .excel-btn,
  body.page-pulmad .add-row-btn,
  body.page-pulmad .del-btn,
  body.page-pulmad .toggle-all,
  body.page-pulmad .groups-actions,
  body.page-pulmad #kkk,
  body.page-pulmad #seotud,
  body.page-pulmad footer,
  body.page-pulmad .hero p.lead,
  body.page-pulmad .planner-inputs,
  body.page-pulmad .overview,
  body.page-pulmad .chart-card,
  body.page-pulmad .status-banner,
  body.page-pulmad .planner-summary h2,
  body.page-pulmad section.block p.hint{ display:none !important; }
  body.page-pulmad header{ background:none; padding:0 0 10px; }
  body.page-pulmad .hero{ padding-top:0; }
  body.page-pulmad .hero h1{ font-size:1.4rem; margin-bottom:4px; }
  body.page-pulmad main{ padding:6px 0 0; max-width:none; }
  body.page-pulmad .planner-layout{ display:block; }
  body.page-pulmad section.block{ margin-bottom:14px; page-break-inside:auto; }
  body.page-pulmad section.block h2{ font-size:1rem; }
  body.page-pulmad .print-table{
    display:table; width:100%; border-collapse:collapse; margin-bottom:16px; page-break-inside:auto;
  }
  body.page-pulmad .print-table th,
  body.page-pulmad .print-table td{ border:1px solid #ccc; padding:6px 10px; font-size:0.85rem; text-align:left; }
  body.page-pulmad .print-table td.num,
  body.page-pulmad .print-table th.num{ text-align:right; }
  body.page-pulmad .print-table thead th{ background:#eee; }
  body.page-pulmad .print-table tfoot td{ font-weight:bold; background:#f3f3f3; }
  body.page-pulmad .print-table tr.cat-row-header td{
    font-style:italic; font-weight:bold; background:var(--sky-100);
  }
  body.page-pulmad .print-table tr.grand-total-row td{
    font-weight:bold; background:#f3f3f3;
  }
}
