/* Calculator layout from the SRA calculator: a compact title bar, editable expression,
   separate result and four-column keypad. Scoped to keep the course UI untouched. */
.calculator-toolbar-trigger {
  display: inline-flex !important; align-items: center; justify-content: center;
  position: static !important; flex: 0 0 auto; min-width: 36px; min-height: 38px;
  padding: 6px 8px; margin: 0; border: 0; border-radius: 4px;
  background: transparent; color: inherit; box-shadow: none; cursor: pointer;
}
.calculator-toolbar-trigger .calc-icon { display: block; width: 19px; height: 23px; }
.reader-top-tools .calculator-toolbar-trigger { border: 0; color: inherit; }
.calculator-standalone-tools { display: flex; justify-content: flex-end; padding: 8px 16px; }
#calculator-dialog.calculator-float {
  --calc-surface: #fff; --calc-ink: #353247; --calc-muted: #636573;
  --calc-line: #d5d5e2; --calc-key: #f6f6f9; --calc-key-hover: #edf5f2;
  --calc-head: #444159; --calc-accent: #008859;
  position: fixed; z-index: 125; width: 304px; max-width: calc(100vw - 16px);
  max-height: calc(100dvh - 16px); display: flex; flex-direction: column;
  overflow: hidden; inset: auto; margin: 0; padding: 0;
  border: 1px solid #aaa9bb; border-radius: 8px;
  background: var(--calc-surface); color: var(--calc-ink);
  box-shadow: 0 8px 30px #2824382e;
  font: 13px/1.45 Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: left; box-sizing: border-box;
}
#calculator-dialog[hidden] { display: none !important; }
#calculator-dialog *, #calculator-dialog *::before, #calculator-dialog *::after { box-sizing: border-box; }
#calculator-dialog:focus { outline: none; }
#calculator-dialog .calculator-float-head {
  display: flex; align-items: center; gap: 3px; flex: 0 0 44px;
  min-height: 44px; padding: 5px 9px; margin: 0; border: 0;
  background: var(--calc-head); color: #fff;
}
#calculator-dialog .calculator-handle {
  display: flex; align-items: center; flex: 1; gap: 8px; min-width: 0;
  cursor: grab; touch-action: none; user-select: none;
}
#calculator-dialog .calculator-handle:active { cursor: grabbing; }
#calculator-dialog .calculator-handle > span { font-size: 21px; line-height: 1; }
#calculator-dialog .calculator-float-head h2 {
  margin: 0 !important; color: #fff !important; font: 700 14px/1.3 Arial,sans-serif !important;
  letter-spacing: 0; padding: 0;
}
#calculator-dialog .calculator-float-head button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; min-height: 32px; margin: 0; padding: 0;
  border: 0; border-radius: 4px; background: transparent; color: #fff;
  font: 22px/1 Arial,sans-serif; cursor: pointer;
}
#calculator-dialog .calculator-float-head button:hover { background: #ffffff20; }
#calculator-dialog .calculator-float-body {
  min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  padding: 11px 12px 12px; scrollbar-width: thin;
}
#calculator-dialog .calculator-float-body[hidden] { display: none !important; }
#calculator-dialog label { display: block; margin: 0 0 4px; color: var(--calc-ink); font: 12px/1.35 Arial,sans-serif; }
#calculator-dialog .calc-input {
  display: block; width: 100%; height: 40px; min-width: 0; margin: 0; padding: 8px;
  border: 1px solid var(--calc-line); border-radius: 5px;
  background: var(--calc-surface); color: var(--calc-ink);
  font: 16px/1.4 Arial,sans-serif; box-shadow: none;
}
#calculator-dialog .calc-input::placeholder { color: #80808a; opacity: 1; }
#calculator-dialog .calc-input:focus { outline: 2px solid var(--calc-accent); outline-offset: 2px; }
#calculator-dialog .calc-output {
  display: block; min-height: 44px; margin: 0; padding: 8px 0 7px;
  text-align: right; overflow-wrap: anywhere;
  color: var(--calc-ink); font: 23px/1.25 Arial,sans-serif; font-variant-numeric: tabular-nums;
}
#calculator-dialog .calc-output.calc-error { color: #ad2935; font-size: 14px; }
#calculator-dialog .calc-keys, #calculator-dialog .calc-extra-keys {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px;
  margin: 0; padding: 0;
}
#calculator-dialog [data-calc-key] {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 0; min-height: 38px; padding: 7px 0; margin: 0;
  border: 1px solid var(--calc-line); border-radius: 4px;
  background: var(--calc-key); color: var(--calc-ink);
  font: 16px/1.3 Arial,sans-serif; box-shadow: none; cursor: pointer; touch-action: manipulation;
}
#calculator-dialog [data-calc-key]:hover { background: var(--calc-key-hover); border-color: var(--calc-accent); }
#calculator-dialog [data-calc-key="="] { background: var(--calc-accent); border-color: var(--calc-accent); color: #fff; }
#calculator-dialog .calc-help {
  font: 11px/1.5 Arial,sans-serif !important; color: var(--calc-muted);
  margin: 10px 0 0 !important; padding: 0;
}
#calculator-dialog .calc-extra { border: 0; border-top: 1px solid var(--calc-line); border-radius: 0; margin: 9px 0 0; padding: 7px 0 0; background: transparent; }
#calculator-dialog .calc-extra > summary { display: list-item; font: 12px/1.5 Arial,sans-serif; color: var(--calc-muted); cursor: pointer; padding: 0; margin: 0; }
#calculator-dialog .calc-extra-keys { margin-top: 9px; }
#calculator-dialog .calc-extra-keys [data-calc-key] { min-height: 33px; font-size: 13px; }
#calculator-dialog .calc-memory { color: var(--calc-accent); font: 12px/1.4 Arial,sans-serif; min-height: 0; padding-top: 8px; }
#calculator-dialog .calc-memory-flag { color: var(--calc-accent); font-weight: 700; }
#calculator-dialog .calc-extra-help { font: 11px/1.4 Arial,sans-serif; color: var(--calc-muted); margin: 5px 0; }
#calculator-dialog footer { display: flex; justify-content: space-between; align-items: center; gap: 6px; border: 0; padding: 6px 0 0; font: 11px/1.4 Arial,sans-serif; background: transparent; }
#calculator-dialog footer button { font: inherit; color: var(--calc-ink); background: var(--calc-key); border: 1px solid var(--calc-line); padding: 6px; border-radius: 4px; cursor: pointer; }
#calculator-dialog .calc-copy-result { min-width: 0; overflow-wrap: anywhere; }
#calculator-dialog button:focus-visible, #calculator-dialog summary:focus-visible, #calculator-dialog .calculator-handle:focus-visible { outline: 2px solid var(--calc-accent); outline-offset: 2px; }
#calculator-dialog .calculator-float-head button:focus-visible, #calculator-dialog .calculator-handle:focus-visible { outline-color: #fff; }
html[data-study-theme=dark] #calculator-dialog { --calc-surface: #152129; --calc-ink: #e0ebf2; --calc-muted: #aabbc5; --calc-line: #44525f; --calc-key: #202e39; --calc-key-hover: #2b4446; --calc-accent: #008859; }
html[data-study-theme=dark] #calculator-dialog .calc-memory, html[data-study-theme=dark] #calculator-dialog .calc-memory-flag { color: #83e4c6; }
html[data-study-theme=dark] #calculator-dialog .calc-input:focus { outline-color: #83e4c6; }
html[data-study-theme=dark] #calculator-dialog .calc-output.calc-error { color: #ffb4bc; }
@media (pointer: coarse) { #calculator-dialog [data-calc-key] { min-height: 42px; } }
@media print { #calculator-dialog, .calculator-toolbar-trigger, .calculator-standalone-tools { display: none !important; } }
