/* Salary Tax Calculator — app-specific styles only.
   Shared typography, color, controls, shell, dark mode and motion come from Datakar Shared System Final. */
.salary-page { padding-block: var(--dk-space-5) 0; }
.salary-hero { padding-block: 0 var(--dk-space-2); }
.salary-hero-topline { display:flex; align-items:center; justify-content:space-between; gap:var(--dk-space-4); }
.salary-heading { display:flex; align-items:center; gap:var(--dk-space-2); margin:0; font-size:clamp(1.35rem,3vw,1.7rem); line-height:1.45; font-weight:var(--dk-font-weight-bold); }
.salary-heading::before { content:""; flex:0 0 auto; width:5px; height:16px; border-radius:var(--dk-radius-pill); background:var(--dk-color-primary); }
.salary-intro,.salary-closing p { max-width:64ch; margin:var(--dk-space-3) 0 0; color:var(--dk-color-text-soft); line-height:1.9; }
.salary-text-link { color:var(--dk-color-primary); text-decoration:none; font-size:var(--dk-font-size-sm); font-weight:var(--dk-font-weight-bold); white-space:nowrap; }
.salary-text-link:hover,.salary-text-link:focus-visible { text-decoration:underline; text-underline-offset:.18em; }
.salary-docs-link { display:inline-block; margin-top:var(--dk-space-3); }
.salary-law-note { margin-top:var(--dk-space-4); line-height:1.75; }
.salary-section { margin-top:var(--dk-space-7); scroll-margin-top:92px; }
.salary-form { display:grid; gap:var(--dk-space-5); margin-top:var(--dk-space-4); padding:1.1rem; }
.salary-currency-fieldset { display:grid; gap:var(--dk-space-2); }
.salary-field-label { margin-bottom:var(--dk-space-2); color:var(--dk-color-text); font-weight:var(--dk-font-weight-bold); }
.salary-input-with-unit { position:relative; display:block; }
.salary-input-with-unit .dk-input { padding-inline-end:4.5rem; }
.salary-input-unit { position:absolute; inset-inline-end:.8rem; top:50%; transform:translateY(-50%); color:var(--dk-color-muted); font-size:var(--dk-font-size-sm); pointer-events:none; }
.salary-exchange-group { display:grid; gap:var(--dk-space-2); padding:var(--dk-space-4); border:1px solid var(--dk-color-border); border-radius:var(--dk-radius-lg); background:var(--dk-color-surface-soft); }
.salary-exchange-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.55rem; }
.salary-exchange-row .dk-input { min-width:0; text-align:center; }
.salary-exchange-fixed { color:var(--dk-color-muted); font-size:var(--dk-font-size-sm); white-space:nowrap; }
.salary-optional-panel { border:1px solid var(--dk-color-border); border-radius:var(--dk-radius-lg); background:var(--dk-color-surface); overflow:clip; }
.salary-optional-panel summary { position:relative; display:flex; align-items:center; justify-content:space-between; gap:var(--dk-space-3); min-height:50px; padding:.8rem 1rem; cursor:pointer; color:var(--dk-color-text); font-weight:var(--dk-font-weight-bold); list-style:none; }
.salary-optional-panel summary::-webkit-details-marker { display:none; }
.salary-optional-panel summary::after { content:""; width:.45rem; height:.45rem; flex:0 0 .45rem; border-right:1.7px solid currentColor; border-bottom:1.7px solid currentColor; margin-inline:.25rem; color:var(--dk-color-muted); transform:rotate(45deg); transition:transform var(--dk-duration-normal) var(--dk-ease-standard),color var(--dk-duration-fast) var(--dk-ease-standard); }
.salary-optional-panel[open] summary::after { transform:rotate(225deg); color:var(--dk-color-primary); }
.optional-panel-content { padding:0 var(--dk-space-4) var(--dk-space-4); overflow:hidden; }
.salary-panel-help { margin-bottom:var(--dk-space-4); }
.salary-option-list { display:grid; gap:var(--dk-space-3); }
.salary-option-toggle { display:flex; align-items:flex-start; gap:.7rem; cursor:pointer; color:var(--dk-color-text-soft); line-height:1.65; }
.salary-option-toggle input { width:18px; height:18px; margin-top:.15rem; accent-color:var(--dk-color-primary); flex:0 0 auto; }
.salary-nested-fields { display:grid; gap:var(--dk-space-4); margin-inline-start:1.7rem; padding:var(--dk-space-4); border-inline-start:2px solid var(--dk-color-border); background:color-mix(in srgb,var(--dk-color-surface-soft) 64%,transparent); border-radius:var(--dk-radius-md); }
.salary-form-actions { display:flex; flex-wrap:wrap; gap:var(--dk-space-2); }
.salary-results { margin-top:var(--dk-space-4); padding:0; overflow:hidden; }
.salary-results dl { margin:0; }
.salary-primary-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-bottom:1px solid var(--dk-color-border); background:color-mix(in srgb,var(--dk-color-primary) 6%,var(--dk-color-surface)); }
.salary-primary-result { padding:var(--dk-space-4); }
.salary-primary-result + .salary-primary-result { border-inline-start:1px solid var(--dk-color-border); }
.salary-primary-result dt { color:var(--dk-color-muted); font-size:var(--dk-font-size-sm); }
.salary-primary-result dd { margin:.25rem 0 0; color:var(--dk-color-text); font-size:var(--dk-font-size-md); font-weight:var(--dk-font-weight-bold); line-height:1.4; }
.salary-primary-result#tax-amount-result dd { color:var(--dk-color-primary); }
.salary-supporting-results { display:grid; }
.salary-result-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:var(--dk-space-4); padding:.8rem var(--dk-space-4); border-top:1px solid var(--dk-color-border); }
.salary-supporting-results .salary-result-row:first-child { border-top:0; }
.salary-result-row dt { color:var(--dk-color-muted); }
.salary-result-row dd { margin:0; color:var(--dk-color-text); font-weight:var(--dk-font-weight-bold); text-align:end; }
.salary-calculation-rule { max-width:34ch; line-height:1.7; font-weight:var(--dk-font-weight-regular)!important; }
.result-money-primary,.result-money-secondary { display:block; }
.result-money-secondary { margin-top:.2rem; color:var(--dk-color-muted); font-size:var(--dk-font-size-xs); font-weight:var(--dk-font-weight-regular); }
.salary-final-pay { background:var(--dk-color-surface-soft); }
.salary-results.is-updated { animation:salary-result-pulse 360ms var(--dk-ease-standard); }
@keyframes salary-result-pulse { 0%{transform:translateY(2px);opacity:.82} 100%{transform:translateY(0);opacity:1} }
.salary-table-wrap { margin-top:var(--dk-space-4); overflow:auto; border:1px solid var(--dk-color-border); border-radius:var(--dk-radius-lg); }
.salary-tax-table { width:100%; border-collapse:collapse; min-width:560px; background:var(--dk-color-surface); }
.salary-tax-table th,.salary-tax-table td { padding:.85rem 1rem; border-bottom:1px solid var(--dk-color-border); text-align:start; vertical-align:top; line-height:1.7; }
.salary-tax-table th { background:var(--dk-color-surface-soft); color:var(--dk-color-text); font-size:var(--dk-font-size-sm); }
.salary-tax-table tbody tr:last-child td { border-bottom:0; }
.salary-rate-note { margin:var(--dk-space-3) 0 0; color:var(--dk-color-muted); font-size:var(--dk-font-size-sm); line-height:1.75; }
.salary-closing { padding-bottom:var(--dk-space-2); }
[hidden] { display:none!important; }

@media (max-width:620px) {
  .salary-page { padding-block-start:var(--dk-space-4); }
  .salary-hero-topline { align-items:flex-start; }
  .salary-section { margin-top:var(--dk-space-6); }
  .salary-form { gap:var(--dk-space-4); }
  .salary-primary-results { grid-template-columns:1fr; }
  .salary-primary-result + .salary-primary-result { border-inline-start:0; border-top:1px solid var(--dk-color-border); }
  .salary-result-row { grid-template-columns:1fr; gap:.25rem; }
  .salary-result-row dd { text-align:start; }
  .salary-exchange-row { grid-template-columns:1fr; direction:ltr; }
  .salary-exchange-fixed { text-align:center; }
}

@media (prefers-reduced-motion:reduce) {
  .salary-results.is-updated { animation:none; }
}
