/* Odenek ve KDV Hesaplayici - kapsamli stil. Kart "dark" sinifi tasir; OYA tema
   belirteclerinin (.dark) tanimli olmasi gerekir (bkz. entegrasyon notlari). */
.ocalc {
  --oc-bg: hsl(var(--card));
  --oc-fg: hsl(var(--card-foreground));
  --oc-muted: hsl(var(--muted-foreground));
  --oc-surface: hsl(var(--background));
  --oc-line: hsl(var(--border));
  --oc-field: hsl(var(--input));
  --oc-primary: hsl(var(--primary));
  --oc-primary-fg: hsl(var(--primary-foreground));
  --oc-secondary: hsl(var(--secondary));
  --oc-secondary-fg: hsl(var(--secondary-foreground));
  --oc-ring: hsl(var(--ring));
  --oc-danger: hsl(var(--destructive));
  --oc-warn: hsl(var(--chart-3));
  --oc-r: var(--radius);
  --oc-s: var(--spacing);
  background: var(--oc-bg); color: var(--oc-fg);
  border: 1px solid var(--oc-line); border-radius: calc(var(--oc-r) + 4px);
  padding: calc(var(--oc-s) * 5); margin: calc(var(--oc-s) * 4) 0;
  font-family: var(--app-font-sans); font-size: 0.875rem; line-height: 1.5;
  box-sizing: border-box;
}
.ocalc *, .ocalc *::before, .ocalc *::after { box-sizing: border-box; }
.ocalc h3 { margin: 0 0 calc(var(--oc-s) * 3); font-size: 1.125rem; color: var(--oc-fg); }
.ocalc p { margin: 0; }
.ocalc-notice { border: 1px solid var(--oc-warn); border-left-width: 4px; border-radius: var(--oc-r);
  background: var(--oc-surface); padding: calc(var(--oc-s) * 3); margin-bottom: calc(var(--oc-s) * 4); }
.ocalc-notice strong { color: var(--oc-warn); }
.ocalc-note { color: var(--oc-muted); font-size: 0.75rem; margin-top: calc(var(--oc-s) * 1); }
.ocalc-grid { display: grid; gap: calc(var(--oc-s) * 3); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin-bottom: calc(var(--oc-s) * 4); }
.ocalc-field { display: flex; flex-direction: column; gap: calc(var(--oc-s) * 1); min-width: 0; }
.ocalc-field > label, .ocalc-hint { font-size: 0.75rem; color: var(--oc-muted); }
.ocalc-inline { display: flex; gap: calc(var(--oc-s) * 2); }
.ocalc input, .ocalc select {
  width: 100%; min-height: 2.25rem; padding: calc(var(--oc-s) * 1) calc(var(--oc-s) * 2);
  background: var(--oc-fg); color: var(--oc-surface); border: 1px solid var(--oc-field);
  border-radius: var(--oc-r); font: inherit; color-scheme: light;
}
.ocalc input::placeholder { color: var(--oc-line) !important; -webkit-text-fill-color: var(--oc-line) !important; opacity: 1; }
/* The legacy portal applies !important light input backgrounds globally,
   including :hover/:focus. Keep this exception strictly inside the dark card. */
#od_calculator.ocalc input,
#od_calculator.ocalc select,
#od_calculator.ocalc input:hover,
#od_calculator.ocalc select:hover,
#od_calculator.ocalc input:focus,
#od_calculator.ocalc select:focus,
#od_calculator.ocalc select option {
  background-color: var(--oc-fg) !important;
  color: var(--oc-surface) !important;
  -webkit-text-fill-color: var(--oc-surface) !important;
  caret-color: var(--oc-surface) !important;
  border-color: var(--oc-field) !important;
}
.ocalc input:focus-visible, .ocalc select:focus-visible, .ocalc button:focus-visible {
  outline: 2px solid var(--oc-ring); outline-offset: 2px;
}
.ocalc input[aria-invalid="true"] { border-color: var(--oc-danger); }
.ocalc button { min-height: 2.25rem; padding: 0 calc(var(--oc-s) * 3); border-radius: var(--oc-r);
  border: 1px solid var(--oc-line); background: var(--oc-secondary); color: var(--oc-secondary-fg);
  font: inherit; cursor: pointer; }
.ocalc button:hover { border-color: var(--oc-muted); }
.ocalc button:disabled { opacity: .5; cursor: not-allowed; }
.ocalc-actions { display: flex; flex-wrap: wrap; gap: calc(var(--oc-s) * 2); margin: calc(var(--oc-s) * 3) 0; }
.ocalc-primary { background: var(--oc-primary) !important; color: var(--oc-primary-fg) !important; border-color: var(--oc-primary) !important; }
.ocalc-scroll { overflow-x: auto; border: 1px solid var(--oc-line); border-radius: var(--oc-r); }
.ocalc table { width: 100%; border-collapse: collapse; min-width: 58rem; }
.ocalc th, .ocalc td { padding: calc(var(--oc-s) * 2); text-align: left; vertical-align: middle; border-bottom: 1px solid var(--oc-line); }
.ocalc th { font-size: 0.75rem; color: var(--oc-muted); font-weight: 600; white-space: nowrap; }
.ocalc td:first-child input { min-width: 9rem; }
.ocalc td input, .ocalc td select { min-width: 6rem; }
.ocalc-note + .ocalc-scroll { margin-top: calc(var(--oc-s) * 2); }
.ocalc [data-out="budget-split"]:not(:empty) { margin-bottom: calc(var(--oc-s) * 5); }
.ocalc [data-out="budget-split"] h4 { margin: 0; font-size: 0.875rem; }
.ocalc td.ocalc-num, .ocalc th.ocalc-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ocalc-summary { display: grid; gap: calc(var(--oc-s) * 2); grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); margin-top: calc(var(--oc-s) * 4); }
.ocalc-stat { background: var(--oc-surface); border: 1px solid var(--oc-line); border-radius: var(--oc-r); padding: calc(var(--oc-s) * 3); }
.ocalc-stat span { display: block; font-size: 0.75rem; color: var(--oc-muted); }
.ocalc-stat b { font-size: 1.125rem; font-variant-numeric: tabular-nums; }
.ocalc-status { margin-top: calc(var(--oc-s) * 3); padding: calc(var(--oc-s) * 3); border-radius: var(--oc-r);
  border: 1px solid var(--oc-line); background: var(--oc-surface); font-weight: 600; }
.ocalc-status[data-state="ok"] { border-color: var(--oc-primary); color: var(--oc-primary); }
.ocalc-status[data-state="bad"] { border-color: var(--oc-danger); color: var(--oc-danger); }
.ocalc-status[data-state="wait"] { color: var(--oc-warn); border-color: var(--oc-warn); }
.ocalc-groups { margin-top: calc(var(--oc-s) * 4); }
.ocalc-groups h4 { margin: 0 0 calc(var(--oc-s) * 2); font-size: 0.875rem; }
.ocalc-groups table { min-width: 0; }
.ocalc-groups td:first-child { white-space: nowrap; }
@media (max-width: 767px) { .ocalc { padding: calc(var(--oc-s) * 3); } .ocalc-inline { flex-direction: column; } }
@media print { .ocalc { display: none !important; } }
