/*
 * Calculator UX Core — v4.49.0
 * Scope: calculator landing pages only.
 * Goal: one interaction language for controls, actions, messages and results
 * without rewriting calculator engines or the editorial/SEO sections below.
 */

[data-calculator-page] {
    --mto-control-height: 44px;
    --mto-action-height: 44px;
    --mto-tool-gap: 14px;
    --mto-tool-gap-lg: 18px;
    --mto-tool-width: 860px;
}

[data-calculator-workspace] {
    min-width: 0;
}

/* The enhancement script marks only the interactive calculator block. */
[data-calculator-workspace].mto-calculator-ui {
    width: min(100%, var(--mto-tool-width));
    margin: 0 auto;
    color: var(--text-primary);
}

/* Calculator page frame contract.
   The workspace is already capped at 860px by the page shell, so child editorial
   sections must not silently shrink to a second 820px frame. This keeps headings,
   dividers, FAQ, history and the interactive surface on one visual axis. */
[data-calculator-workspace] > :is(
    .seo-section,
    .faq-section,
    .tool-guide-section,
    .casio-trademark-note,
    .calculator-source-note
),
[data-calculator-workspace] .mto-calculator-ui ~ :is(
    .seo-section,
    .faq-section,
    .tool-guide-section,
    .casio-trademark-note,
    .calculator-source-note
) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

/* Common panels: modern/flat, intentionally not over-rounded. */
.mto-calculator-ui :is(
    .finance-panel,
    .health-panel,
    .motion-panel,
    .percent-calculator-panel,
    .date-calculator-panel,
    .geometry-panel,
    .converter-panel,
    .discount-panel,
    .average-panel,
    .fraction-panel,
    .quadratic-panel,
    .linear-system-panel,
    .probability-panel,
    .scientific-panel
) {
    border-color: var(--line);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: none;
}

/* Shared form rhythm. Existing grid column counts are preserved on desktop. */
.mto-calculator-ui :is(
    .finance-form,
    .health-form,
    .motion-form,
    .date-form,
    .percent-form,
    .discount-form,
    .probability-form
) {
    row-gap: var(--mto-tool-gap);
}

.mto-calculator-ui label > span:first-child,
.mto-calculator-ui :is(.finance-form, .health-form, .motion-form, .date-form, .percent-form, .discount-form) label > span:first-child {
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 600;
}

/* One control contract. Excludes Casio key buttons and readonly calculator displays. */
.mto-calculator-ui :is(input:not([type="checkbox"]):not([type="radio"]):not([readonly]), select, textarea) {
    max-width: 100%;
    border-color: var(--line-strong);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-primary);
}

.mto-calculator-ui :is(input:not([type="checkbox"]):not([type="radio"]):not([readonly]), select) {
    min-height: var(--mto-control-height);
    height: var(--mto-control-height);
}

.mto-calculator-ui textarea {
    min-height: 86px;
}

.mto-calculator-ui :is(input:not([type="checkbox"]):not([type="radio"]):not([readonly]), select, textarea):hover:not(:disabled) {
    border-color: var(--primary-border);
}

.mto-calculator-ui :is(input:not([type="checkbox"]):not([type="radio"]):not([readonly]), select, textarea):focus {
    border-color: var(--primary);
    outline: 0;
    box-shadow: 0 0 0 3px var(--input-focus-ring);
}

.mto-calculator-ui :is(input, select, textarea)[aria-invalid="true"] {
    border-color: var(--line-error);
    background: var(--surface-error);
}

.mto-calculator-ui :is(input, select, textarea):disabled {
    background: var(--surface-subtle);
    color: var(--text-tertiary);
    cursor: not-allowed;
}

/* Buttons are classified by JS in addition to the legacy class names. */
.mto-calculator-ui .mto-button {
    min-height: var(--mto-action-height);
    padding: 0 15px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    font: inherit;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease;
}.calculator-utility-bar button {
    padding: 0 15px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    font: inherit;
    line-height: 1.2;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.mto-calculator-ui .mto-button--primary {
    border-color: var(--primary);
    background: var(--primary);
    color: var(--surface);
}

.mto-calculator-ui .mto-button--primary:hover:not(:disabled) {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
}

.mto-calculator-ui .mto-button--secondary,
.calculator-utility-bar button {
    background: var(--surface);
    color: var(--text-secondary);
}

.mto-calculator-ui .mto-button--secondary:hover:not(:disabled),
.calculator-utility-bar button:hover:not(:disabled) {
    border-color: var(--primary);
    background: var(--primary-soft);
    color: var(--primary);
}

.mto-calculator-ui .mto-button:focus-visible,
.calculator-utility-bar button:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px var(--focus-ring);
}

.mto-calculator-ui .mto-button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* Align the legacy action rows to the same spacing contract. */
.mto-calculator-ui :is(
    .percent-form-actions,
    .date-form-actions,
    .discount-form-actions,
    .average-form-actions,
    .geometry-actions,
    .finance-actions,
    .tool-actions
) {
    gap: 8px;
}

/* Universal fallback reset appears only when the tool has no native reset. */
.calculator-utility-bar {
    width: min(100%, var(--mto-tool-width));
    margin: -6px auto 10px;
    display: flex;
    justify-content: flex-end;
}
.calculator-utility-bar[hidden] { display: none !important; }
.calculator-utility-bar button {
    min-height: 38px;
    padding-inline: 12px;
    font-size: 12px;
}

/* Status/error language. Do not force hidden elements visible. */
.mto-calculator-ui .mto-message {
    max-width: 100%;
    overflow-wrap: anywhere;
}
.mto-calculator-ui .mto-message.is-error,
.mto-calculator-ui .mto-message[data-state="error"] {
    color: var(--error);
}

/* Result language shared across finance/math/date/health/utility tools. */
.mto-calculator-ui .mto-result-surface {
    min-width: 0;
}
.mto-calculator-ui :is(
    .tool-result-head,
    .percent-result-head,
    .date-result-head,
    .geometry-result-head
) {
    gap: 12px;
}
.mto-calculator-ui :is(
    .tool-result-main,
    .percent-result-value,
    .date-result-value,
    .geometry-result-value
) {
    color: var(--text-strong);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}

/* Secondary actions inside result headers should not compete with Calculate. */
.mto-calculator-ui :is(
    .tool-result-head,
    .percent-result-head,
    .date-result-head,
    .geometry-result-head
) button {
    min-height: 36px;
    border-radius: var(--radius);
}

/* Small helper/example chips stay compact but keyboard/touch friendly. */
.mto-calculator-ui :is(.tool-examples, .percent-examples, .discount-examples) button {
    min-height: 36px;
}

/* Tables and generated schedules must never push the page wider than the viewport. */
.mto-calculator-ui :is(.example-table-wrap, .loan-schedule, .matrix-grid, .split-shares, .gpa-rows) {
    max-width: 100%;
}

/* Accessible keyboard landing target after validation. */
.mto-calculator-ui [aria-invalid="true"]:focus {
    scroll-margin-top: 96px;
}

@media (max-width: 760px) {
    [data-calculator-page] {
        --mto-tool-gap: 12px;
        --mto-tool-gap-lg: 15px;
    }
    [data-calculator-workspace] .mto-calculator-ui {
        margin-bottom: 28px;
    }
}

@media (max-width: 520px) {
    [data-calculator-page] {
        --mto-control-height: 46px;
        --mto-action-height: 46px;
    }

    .calculator-utility-bar {
        margin-top: -4px;
    }

    /* Dense calculator forms collapse consistently instead of relying on many tool-specific breakpoints. */
    .mto-calculator-ui :is(
        .finance-form,
        .finance-form--4,
        .finance-form--5,
        .finance-form--6,
        .health-form,
        .health-fields,
        .health-fields--imperial,
        .motion-form,
        .date-form-grid,
        .percent-form-grid,
        .utility-form,
        .utility-form--3,
        .utility-form--4,
        .gpa-cumulative-grid
    ) {
        grid-template-columns: minmax(0, 1fr);
    }

    .mto-calculator-ui :is(
        .tool-primary-button,
        .percent-primary-btn,
        .date-primary-btn,
        .discount-primary-btn,
        .average-primary-btn,
        .converter-primary-btn,
        .geometry-primary-btn
    ) {
        width: 100%;
        justify-content: center;
    }

    .mto-calculator-ui :is(
        .percent-form-actions,
        .date-form-actions,
        .discount-form-actions,
        .average-form-actions
    ) {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .mto-calculator-ui :is(
        .percent-form-actions,
        .date-form-actions,
        .discount-form-actions,
        .average-form-actions
    ) > button {
        width: 100%;
    }
}


/* v4.39.0 — finance scenario comparison layer. Kept in calculator core so all
   finance tools share one lightweight table/insight language without touching main.css. */
.mto-calculator-ui .finance-compare {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .finance-compare-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}
.mto-calculator-ui .finance-compare-head h3 {
    margin: 0;
    font-size: 15px;
    line-height: 1.4;
    color: var(--text-strong);
}
.mto-calculator-ui .finance-compare-head p {
    margin: 4px 0 0;
    max-width: 720px;
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.55;
}
.mto-calculator-ui .finance-compare-table {
    min-width: 620px;
}
.mto-calculator-ui .finance-compare-table tr.is-current td {
    font-weight: 600;
    background: var(--surface-subtle);
}
.mto-calculator-ui .finance-compare-table td:first-child {
    min-width: 160px;
}
.mto-calculator-ui .finance-compare-table td:not(:first-child),
.mto-calculator-ui .finance-compare-table th:not(:first-child) {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.mto-calculator-ui .finance-insight {
    margin-top: 12px;
    padding: 10px 12px;
    border-left: 3px solid var(--primary);
    background: var(--surface-subtle);
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.55;
}
.mto-calculator-ui .finance-insight strong {
    color: var(--text-strong);
}
.mto-calculator-ui .finance-growth {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .finance-growth summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--primary);
    font-size: 13px;
}
.mto-calculator-ui .finance-growth .example-table-wrap {
    margin-top: 10px;
    max-height: 460px;
    overflow: auto;
}
@media (max-width: 620px) {
    .mto-calculator-ui .finance-compare-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }
    .mto-calculator-ui .finance-compare-head > button {
        width: 100%;
        justify-content: center;
    }
}


/* v4.41.0 — practical data workflows for bill splitting, study and statistics. */
.mto-calculator-ui .finance-form-span-2 {
    grid-column: span 2;
}
.mto-calculator-ui .mto-data-toolbar,
.mto-calculator-ui .mto-inline-actions,
.mto-calculator-ui .mto-result-actions,
.mto-calculator-ui .mto-preset-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.mto-calculator-ui .mto-data-toolbar {
    justify-content: space-between;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .mto-local-note {
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.5;
}
.mto-calculator-ui .tool-ghost-button {
    min-height: 40px;
    padding: 0 12px;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.mto-calculator-ui .tool-ghost-button:hover {
    background: var(--surface-subtle);
    color: var(--text-primary);
}

.mto-calculator-ui .mto-import-box summary {
    cursor: pointer;
    color: var(--primary);
    font-size: 13px;
    font-weight: 600;
}
.mto-calculator-ui .mto-import-body {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}
.mto-calculator-ui .mto-import-body textarea {
    width: 100%;
    min-height: 100px;
    padding: 10px 11px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-primary);
    font: inherit;
    font-size: 14px;
    line-height: 1.5;
    resize: vertical;
}
.mto-calculator-ui .mto-import-body textarea:focus {
    border-color: var(--primary);
    outline: 0;
    box-shadow: 0 0 0 3px var(--input-focus-ring);
}
.mto-calculator-ui .mto-import-body small {
    color: var(--text-secondary);
    font-size: 11px;
    line-height: 1.5;
}
.mto-calculator-ui .mto-preset-row {
    margin: 8px 0 12px;
}
.mto-calculator-ui .mto-preset-row > span {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
}
.mto-calculator-ui .mto-preset-row button {
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--text-primary);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.mto-calculator-ui .mto-preset-row button:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.mto-calculator-ui .mto-scenario-block {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .mto-scenario-head {
    margin-bottom: 9px;
}
.mto-calculator-ui .mto-scenario-head h3 {
    margin: 0;
    color: var(--text-strong);
    font-size: 14px;
}
.mto-calculator-ui .mto-scenario-head p {
    margin: 3px 0 0;
    color: var(--text-secondary);
    font-size: 12px;
}
.mto-calculator-ui .mto-scenario-table {
    min-width: 500px;
}
.mto-calculator-ui .mto-scenario-table tr.is-current td {
    background: var(--surface-subtle);
    font-weight: 600;
}
.mto-calculator-ui .mto-scenario-table td:not(:first-child),
.mto-calculator-ui .mto-scenario-table th:not(:first-child) {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.mto-calculator-ui .mto-scenario-table [data-state="bad"] {
    color: var(--error);
}
.mto-calculator-ui .mto-scenario-table [data-state="ok"] {
    color: var(--success);
}
.mto-calculator-ui .gpa-table-head,
.mto-calculator-ui .gpa-row {
    grid-template-columns: minmax(150px, 1.4fr) minmax(90px, .7fr) minmax(80px, .55fr) 38px;
}
.mto-calculator-ui .gpa-row-field {
    min-width: 0;
}
.mto-calculator-ui .gpa-row-field > span {
    display: none;
}
.mto-calculator-ui .split-settlement {
    margin-top: 12px;
    padding: 12px;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .split-settlement h3 {
    margin: 0 0 8px;
    color: var(--text-strong);
    font-size: 13px;
}
.mto-calculator-ui .split-settlement-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 0;
    border-top: 1px solid var(--line);
    font-size: 13px;
}
.mto-calculator-ui .split-settlement-row:first-child {
    border-top: 0;
}
.mto-calculator-ui .split-settlement-row strong {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.mto-calculator-ui .split-settlement-row [data-state="receive"] {
    color: var(--success);
}
.mto-calculator-ui .split-settlement-row [data-state="pay"] {
    color: var(--text-strong);
}
.mto-calculator-ui .split-settlement > p {
    margin: 9px 0 0;
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.5;
}
.mto-calculator-ui .stats-grid--rich {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.mto-calculator-ui .mto-insight-line {
    margin-top: 10px;
    padding: 9px 11px;
    border-left: 3px solid var(--primary);
    background: var(--surface-subtle);
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.55;
}
@media (max-width: 720px) {
    .mto-calculator-ui .stats-grid--rich {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mto-calculator-ui .gpa-table-head,
    .mto-calculator-ui .gpa-row {
        grid-template-columns: minmax(130px, 1.3fr) 88px 72px 36px;
    }
}
@media (max-width: 520px) {
    .mto-calculator-ui .finance-form-span-2 {
        grid-column: auto;
    }
    .mto-calculator-ui .mto-data-toolbar {
        align-items: stretch;
    }
    .mto-calculator-ui .mto-data-toolbar > button,
    .mto-calculator-ui .mto-data-toolbar > .mto-result-actions,
    .mto-calculator-ui .mto-result-actions > button {
        width: 100%;
    }
    .mto-calculator-ui .mto-result-actions {
        flex: 1 1 100%;
    }
    
    .mto-calculator-ui .gpa-row {
    border-bottom: 1px solid var(--line);
}
    .mto-calculator-ui .gpa-row-field--name {
        grid-column: 1 / -1;
    }
    .mto-calculator-ui .gpa-row-field > span {
        display: block;
        margin-bottom: 4px;
        color: var(--text-secondary);
        font-size: 11px;
        font-weight: 600;
    }
    
    .mto-calculator-ui .stats-grid--rich {
        grid-template-columns: minmax(0, 1fr);
    }
    .mto-calculator-ui .split-settlement-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 3px;
    }
    .mto-calculator-ui .split-settlement-row strong {
        text-align: left;
    }
}

/* v4.42 — shared scientific session: memory + expression history. */
.mto-calculator-ui .mto-sci-session {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .mto-sci-memory {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.mto-calculator-ui .mto-sci-memory-value {
    min-width: 0;
}
.mto-calculator-ui .mto-sci-memory-value span {
    display: block;
    color: var(--text-tertiary);
    font-size: 11px;
    font-weight: 600;
}
.mto-calculator-ui .mto-sci-memory-value strong {
    display: block;
    margin-top: 2px;
    color: var(--text-strong);
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.mto-calculator-ui .mto-sci-memory-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}
.mto-calculator-ui .mto-sci-memory-actions button,
.mto-calculator-ui .mto-sci-history-head button {
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-secondary);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.mto-calculator-ui .mto-sci-memory-actions button:hover,
.mto-calculator-ui .mto-sci-history-head button:hover {
    border-color: var(--primary-border);
    color: var(--primary-dark);
}
.mto-calculator-ui .mto-sci-session-feedback {
    min-height: 18px;
    margin: 7px 0 0;
    color: var(--text-tertiary);
    font-size: 11px;
    line-height: 1.45;
}
.mto-calculator-ui .mto-sci-session-feedback.is-error { color: var(--error); }
.mto-calculator-ui .mto-sci-history {
    margin-top: 8px;
    border-top: 1px solid var(--line);
}
.mto-calculator-ui .mto-sci-history > summary {
    padding: 10px 0 6px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.mto-calculator-ui .mto-sci-history > summary span {
    display: inline-flex;
    min-width: 22px;
    justify-content: center;
    margin-left: 5px;
    padding: 1px 6px;
    border-radius:var(--radius-pill);
    background: var(--surface-subtle);
    color: var(--text-tertiary);
    font-size: 10px;
}
.mto-calculator-ui .mto-sci-history-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 4px 0 8px;
}
.mto-calculator-ui .mto-sci-history-head span,
.mto-calculator-ui .mto-sci-history-empty {
    margin: 0;
    color: var(--text-tertiary);
    font-size: 11px;
}
.mto-calculator-ui .mto-sci-history-list {
    display: grid;
    gap: 5px;
    max-height: 260px;
    overflow: auto;
}
.mto-calculator-ui .mto-sci-history-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 40px;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-primary);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.mto-calculator-ui .mto-sci-history-item:hover {
    border-color: var(--primary-border);
    background: var(--primary-soft-subtle);
}
.mto-calculator-ui .mto-sci-history-expression {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
}
.mto-calculator-ui .mto-sci-history-item strong {
    color: var(--text-strong);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
.mto-calculator-ui .mto-sci-history-item small {
    color: var(--text-tertiary);
    font-size: 9px;
    font-weight: 700;
}
@media (max-width: 520px) {
    .mto-calculator-ui .mto-sci-memory {
        align-items: flex-start;
        flex-direction: column;
    }
    .mto-calculator-ui .mto-sci-memory-actions {
        width: 100%;
        justify-content: stretch;
    }
    .mto-calculator-ui .mto-sci-memory-actions button {
        flex: 1 1 0;
        padding-inline: 6px;
    }
    .mto-calculator-ui .mto-sci-history-item {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .mto-calculator-ui .mto-sci-history-item small { display: none; }
}


/* Calculator detail polish — v4.47.0
   Dense tools share one mobile-first interaction layout without altering engines. */
.mto-calculator-ui :is(.tool-tabs, .converter-tabs, .average-tabs, .discount-tabs, .probability-tabs) {
    gap: 0;
    margin-bottom: 16px;
    padding: 0;
    border-bottom: 1px solid var(--line);
    scrollbar-width: thin;
    scroll-padding-inline: 12px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}
.mto-calculator-ui :is(.tool-tabs button, .converter-tab, .average-tab, .discount-tab, .probability-tabs button) {
    min-height: 42px;
    padding: 0 12px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.mto-calculator-ui :is(.tool-tabs button, .converter-tab, .average-tab, .discount-tab, .probability-tabs button):hover {
    background: var(--surface-subtle);
    color: var(--text-primary);
}
.mto-calculator-ui :is(
    .tool-tabs button.is-active,
    .tool-tabs button[aria-selected="true"],
    .tool-tabs button[aria-pressed="true"],
    .converter-tab.is-active,
    .converter-tab[aria-selected="true"],
    .average-tab.is-active,
    .discount-tab.is-active,
    .probability-tabs button.is-active
) {
    border-bottom-color: var(--primary);
    background: transparent;
    color: var(--primary);
}

/* Form surfaces: labels and actions follow the same rhythm in dense tools. */
.mto-calculator-ui :is(.finance-form, .gpa-cumulative-grid, .grade-settings, .converter-grid) {
    column-gap: 12px;
    row-gap: 13px;
}
.mto-calculator-ui :is(.finance-form, .gpa-cumulative-grid, .grade-settings) label {
    min-width: 0;
}
.mto-calculator-ui .finance-form > .tool-primary-button {
    margin-top: 2px;
}
.mto-calculator-ui .finance-form-note {
    max-width: 700px;
}

/* Result hierarchy: the answer is primary, stats are supporting content. */
.mto-calculator-ui :is(.finance-result, .gpa-result, .grade-result, .converter-result) {
    margin-top: 20px;
    padding-top: 18px;
}
.mto-calculator-ui :is(.finance-result, .gpa-result, .grade-result, .converter-result) .tool-result-main,
.mto-calculator-ui .converter-result-value {
    margin-top: 6px;
    font-size: clamp(32px, 6vw, 44px);
    line-height: 1.08;
    letter-spacing: -.025em;
    font-weight: 700;
}
.mto-calculator-ui :is(.finance-stats, .gpa-stats, .grade-stats) {
    gap: 8px;
    margin-top: 14px;
    border: 0;
    background: transparent;
}
.mto-calculator-ui :is(.finance-stats, .gpa-stats, .grade-stats) > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface-subtle);
}
.mto-calculator-ui :is(.finance-stats, .gpa-stats, .grade-stats) strong {
    font-size: 14px;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
}

/* Scenario/schedule tables stay readable instead of compressing columns. */
.mto-calculator-ui .example-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}
.mto-calculator-ui :is(.finance-compare-table, .mto-scenario-table) th,
.mto-calculator-ui :is(.finance-compare-table, .mto-scenario-table) td {
    padding-block: 10px;
}
@media (max-width: 760px) {
    .mto-calculator-ui :is(.finance-compare-table, .mto-scenario-table) th:first-child,
    .mto-calculator-ui :is(.finance-compare-table, .mto-scenario-table) td:first-child {
        position: sticky;
        left: 0;
        z-index: 1;
        background: var(--surface);
        box-shadow: 1px 0 0 var(--line);
    }
    .mto-calculator-ui .finance-compare-table tr.is-current td:first-child,
    .mto-calculator-ui .mto-scenario-table tr.is-current td:first-child {
        background: var(--surface-subtle);
    }
}

/* Education/data entry: dynamic rows become calm mini forms on small screens. */
.mto-calculator-ui :is(.mto-inline-actions, .mto-result-actions) button {
    min-height: 40px;
}
.mto-calculator-ui .mto-data-toolbar {
    margin-top: 14px;
    padding-top: 12px;
}
.mto-calculator-ui .mto-import-box {
    margin-top: 14px;
    padding-top: 0;
    border-top: 0;
    border-bottom: 1px solid var(--line);
}
.mto-calculator-ui .mto-import-box > summary {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 2px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 600;
}
.mto-calculator-ui .mto-import-box[open] > summary {
    border-bottom: 1px solid var(--line);
}
.mto-calculator-ui .mto-import-body {
    padding: 12px 0 14px;
}
.mto-calculator-ui .mto-preset-row button,
.mto-calculator-ui .tool-examples button,
.mto-calculator-ui .converter-examples button {
    border-radius: var(--radius);
}

/* Converter: preserve a compact from/swap/to row and make all-unit rows easier to scan. */
.mto-calculator-ui .converter-tool,
.mto-calculator-ui.converter-tool {
    max-width: var(--mto-tool-width);
}
.mto-calculator-ui .converter-panel {
    padding-top: 0;
    border-top: 0;
}
.mto-calculator-ui .converter-grid {
    gap: 10px;
}
.mto-calculator-ui .converter-field > span {
    color: var(--text-secondary);
}
.mto-calculator-ui .converter-swap {
    border-radius: var(--radius);
    background: var(--surface-subtle);
    touch-action: manipulation;
}
.mto-calculator-ui .converter-all {
    margin-top: 2px;
}
.mto-calculator-ui .converter-all-item {
    min-height: 50px;
    padding: 9px 11px;
}
.mto-calculator-ui .converter-all-item strong {
    max-width: 55%;
}

/* Scientific/Casio: denser header, clearer screen, stable touch keypad. */
.mto-calculator-ui.scientific-tool {
    max-width: var(--mto-tool-width);
}
.mto-calculator-ui .scientific-keypad button {
    touch-action: manipulation;
    user-select: none;
    -webkit-user-select: none;
}
.mto-calculator-ui .scientific-screen {
    box-shadow: none;
}
.mto-calculator-ui .scientific-angle {
    border-radius: var(--radius);
}
.mto-calculator-ui .scientific-angle button {
    min-height: 38px;
    font-weight: 600;
}

@media (max-width: 640px) {
    .mto-calculator-ui :is(.tool-tabs, .converter-tabs, .average-tabs, .discount-tabs, .probability-tabs) {
        margin-inline: -15px;
        padding-inline: 15px;
    }

    .mto-calculator-ui :is(.finance-stats, .finance-stats--3, .finance-stats--4, .finance-stats--6, .gpa-stats, .grade-stats) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mto-calculator-ui .scientific-topbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
    .mto-calculator-ui .scientific-angle {
        justify-self: start;
    }
    .mto-calculator-ui .scientific-keypad {
        gap: 5px;
    }
    .mto-calculator-ui .scientific-keypad button {
        min-height: 46px;
    }
}

@media (max-width: 520px) {
    .mto-calculator-ui :is(.finance-panel, .converter-panel) {
        padding: 13px;
    }
    .mto-calculator-ui:is(.gpa-tool, .grade-tool) {
        padding: 13px;
    }
    .mto-calculator-ui :is(.tool-tabs, .converter-tabs, .average-tabs, .discount-tabs, .probability-tabs) {
        margin-inline: -13px;
        padding-inline: 13px;
    }
    .mto-calculator-ui :is(.tool-tabs button, .converter-tab, .average-tab, .discount-tab, .probability-tabs button) {
        min-height: 44px;
        padding-inline: 11px;
    }

    .mto-calculator-ui .gpa-table-head,
    .mto-calculator-ui .grade-table-head {
        display: none;
    }
    .mto-calculator-ui .gpa-row,
    .mto-calculator-ui .grade-row {
        position: relative;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 9px;
        margin-bottom: 9px;
        padding: 10px 46px 10px 10px;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        background: var(--surface-subtle);
    }
    .mto-calculator-ui :is(.gpa-row-field--name, .grade-row-field--name) {
        grid-column: 1 / -1;
    }
    .mto-calculator-ui :is(.gpa-row-field, .grade-row-field) > span {
        display: block;
        margin-bottom: 4px;
        color: var(--text-secondary);
        font-size: 11px;
        font-weight: 600;
    }
    .mto-calculator-ui :is(.gpa-row, .grade-row) input {
        min-height: 44px;
        background: var(--surface);
        font-size: 16px;
    }
    .mto-calculator-ui .gpa-row button,
    .mto-calculator-ui .grade-row > button {
        position: absolute;
        top: 9px;
        right: 9px;
        width: 36px;
        height: 36px;
        min-height: 36px;
    }

    .mto-calculator-ui .mto-inline-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mto-calculator-ui .mto-inline-actions > button {
        width: 100%;
    }
    .mto-calculator-ui .mto-import-body .mto-inline-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .mto-calculator-ui .converter-grid {
        grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr);
        gap: 7px;
    }
    .mto-calculator-ui .converter-value-field {
        grid-column: 1 / -1;
    }
    .mto-calculator-ui .converter-swap {
        width: 40px;
        min-height: 46px;
    }
    .mto-calculator-ui .converter-all-head {
        align-items: flex-start;
    }

    .mto-calculator-ui.scientific-tool {
        padding: 10px;
    }
    .mto-calculator-ui .scientific-screen {
        padding: 11px 12px 10px;
    }
    .mto-calculator-ui .scientific-result {
        min-height: 50px;
        font-size: clamp(28px, 10vw, 38px);
    }
}

@media (max-width: 380px) {
    .mto-calculator-ui :is(.finance-stats, .finance-stats--3, .finance-stats--4, .finance-stats--6, .gpa-stats, .grade-stats) {
        grid-template-columns: minmax(0, 1fr);
    }
    .mto-calculator-ui .gpa-row,
    .mto-calculator-ui .grade-row {
        grid-template-columns: minmax(0, 1fr);
    }
    .mto-calculator-ui :is(.gpa-row-field--name, .grade-row-field--name) {
        grid-column: auto;
    }
    .mto-calculator-ui .mto-inline-actions {
        grid-template-columns: minmax(0, 1fr);
    }
    .mto-calculator-ui .converter-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .mto-calculator-ui .converter-value-field {
        grid-column: auto;
    }
    .mto-calculator-ui .converter-swap {
        width: 100%;
        min-height: 40px;
        transform: none;
    }
}

/* Browser-local calculation history shared by every tool. */
.mto-global-history {
    width: min(100%, var(--calculator-page-frame, var(--mto-tool-width, 860px)));
    margin: 18px auto 32px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--surface);
    color: var(--text-primary);
}
.home-content-inner > .mto-global-history {
    width: 100%;
    margin: 0 0 36px;
}
/* On calculator pages history belongs to the task flow, directly below the tool.
   It is intentionally flatter than a full card so it does not compete with the calculator. */
.mto-global-history--tool {
    margin-top: 18px;
    margin-bottom: 34px;
    padding: 18px 0 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
}
.mto-global-history-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.mto-global-history-head h2 {
    margin: 2px 0 4px;
    font-size: 18px;
    line-height: 1.3;
    letter-spacing: -.01em;
}
.mto-global-history-head p {
    max-width: 620px;
    margin: 0;
    color: var(--text-secondary);
    font-size: 12.5px;
    line-height: 1.5;
}
.mto-global-history-kicker {
    color: var(--text-tertiary);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.mto-global-history-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
    flex: 0 0 auto;
}
.mto-global-history-toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.mto-global-history-toggle input {
    width: 16px;
    height: 16px;
    margin: 0;
}
.mto-global-history-actions > button,
.mto-global-history-filter button,
.mto-global-history-item-actions button {
    min-height: 36px;
    padding: 0 11px;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text-secondary);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.mto-global-history-actions > button:disabled { opacity: .5; cursor: not-allowed; }
.mto-global-history-filter {
    display: flex;
    gap: 6px;
    margin-top: 12px;
}
.mto-global-history-filter button.is-active {
    border-color: var(--primary-border);
    background: var(--primary-soft-subtle);
    color: var(--primary-dark);
}
.mto-global-history-feedback {
    margin: 7px 0 0;
    color: var(--text-secondary);
    font-size: 12px;
}
.mto-global-history-feedback:empty { display: none; }
.mto-global-history-list {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}
.mto-global-history-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}
.mto-global-history-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.mto-global-history-copy strong { color: var(--text-strong); font-size: 13.5px; }
.mto-global-history-copy > span {
    min-width: 0;
    overflow: hidden;
    color: var(--text-secondary);
    font-size: 12.5px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mto-global-history-copy .mto-global-history-result { color: var(--text-primary); font-weight: 600; }
.mto-global-history-copy small { color: var(--text-tertiary); font-size: 10.5px; }
.mto-global-history-item-actions { display: flex; gap: 6px; }
.mto-global-history-item-actions button.is-primary {
    border-color: var(--primary);
    background: var(--primary);
    color: var(--surface);
}
.mto-global-history-actions > button:hover:not(:disabled),
.mto-global-history-filter button:hover,
.mto-global-history-item-actions button:hover {
    border-color: var(--primary-border);
    background: var(--primary-soft-subtle);
    color: var(--primary-dark);
}
.mto-global-history-item-actions button.is-primary:hover {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
    color: var(--surface);
}
.mto-global-history :is(button, input):focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--focus-ring); }
.mto-global-history-empty {
    margin-top: 10px;
    padding: 10px 0 0;
    border-top: 1px solid var(--line);
    color: var(--text-tertiary);
    font-size: 12.5px;
    line-height: 1.5;
}
.mto-global-history.is-empty { padding-block: 14px; }
.mto-global-history--tool.is-empty { padding: 14px 0 0; }
.mto-global-history.is-empty .mto-global-history-head { align-items: center; }
[data-history-restored="true"] { scroll-margin-top: 92px; }

@media (max-width: 680px) {
    .mto-global-history { margin-bottom: 26px; padding: 14px; }
    .mto-global-history--tool { margin-top: 15px; padding: 15px 0 0; }
    .mto-global-history-head { display: grid; gap: 10px; }
    .mto-global-history-actions { justify-content: flex-start; }
    .mto-global-history-filter { overflow-x: auto; padding-bottom: 2px; }
    .mto-global-history-item { grid-template-columns: 1fr; gap: 9px; }
    .mto-global-history-item-actions { justify-content: flex-start; }
    .mto-global-history-item-actions button { min-height: 40px; }
}

/* v4.56.9 — Scientific calculator UI/UX repair.
   Keep the scientific calculator aligned with the site design system and split
   the advanced 6-column functions from the familiar 4-column numeric keypad. */
.mto-calculator-ui > .scientific-tool,
.mto-calculator-ui.scientific-tool {
    box-sizing: border-box;
    width: min(100%, 820px);
    margin: 0 auto;
    padding: 16px;
    border: 1px solid #d7e0e7;
    border-radius: 12px;
    background: #fff;
    color: #17212b;
    box-shadow: none;
}
.mto-calculator-ui > .scientific-tool *,
.mto-calculator-ui > .scientific-tool *::before,
.mto-calculator-ui > .scientific-tool *::after,
.mto-calculator-ui.scientific-tool *,
.mto-calculator-ui.scientific-tool *::before,
.mto-calculator-ui.scientific-tool *::after { box-sizing: border-box; }

.mto-calculator-ui > .scientific-tool .scientific-screen,
.mto-calculator-ui.scientific-tool .scientific-screen {
    margin: 0;
    padding: 13px 14px 12px;
    border: 1px solid #ccd8e1;
    border-radius: 8px;
    background: #f7fafc;
}
.mto-calculator-ui > .scientific-tool .scientific-screen-head,
.mto-calculator-ui.scientific-tool .scientific-screen-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.mto-calculator-ui > .scientific-tool .scientific-angle,
.mto-calculator-ui.scientific-tool .scientific-angle {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 2px;
    padding: 2px;
    border: 1px solid #d6e0e8;
    border-radius: 7px;
    background: #eef3f6;
}
.mto-calculator-ui > .scientific-tool .scientific-angle button,
.mto-calculator-ui.scientific-tool .scientific-angle button {
    min-width: 54px;
    min-height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #53616d;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}
.mto-calculator-ui > .scientific-tool .scientific-angle button.is-active,
.mto-calculator-ui.scientific-tool .scientific-angle button.is-active {
    background: #2c8fcb;
    color: #fff;
}
.mto-calculator-ui > .scientific-tool .scientific-utility-bar,
.mto-calculator-ui.scientific-tool .scientific-utility-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
}
.mto-calculator-ui > .scientific-tool .scientific-utility-button,
.mto-calculator-ui.scientific-tool .scientific-utility-button {
    display: inline-grid;
    place-items: center;
    width: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    border: 1px solid #d6e0e8;
    border-radius: 6px;
    background: #fff;
    color: #40515f;
    box-shadow: none;
}
.mto-calculator-ui > .scientific-tool .scientific-utility-button svg,
.mto-calculator-ui.scientific-tool .scientific-utility-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
@media (hover:hover) {
    .mto-calculator-ui > .scientific-tool .scientific-utility-button:hover,
    .mto-calculator-ui.scientific-tool .scientific-utility-button:hover {
        border-color: #a9cde4;
        background: #eef7fc;
        color: #176b9d;
    }
}
.mto-calculator-ui > .scientific-tool [data-scientific-input],
.mto-calculator-ui.scientific-tool [data-scientific-input] {
    display: block;
    width: 100%;
    height: auto;
    min-height: 34px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #52616d;
    box-shadow: none;
    outline: 0;
    text-align: right;
    font: 500 15px/1.45 "Segoe UI", Arial, sans-serif;
}
.mto-calculator-ui > .scientific-tool [data-scientific-input]::placeholder,
.mto-calculator-ui.scientific-tool [data-scientific-input]::placeholder { color: #98a5af; opacity: 1; }
.mto-calculator-ui > .scientific-tool [data-scientific-input]:focus,
.mto-calculator-ui.scientific-tool [data-scientific-input]:focus { color: #263744; }
.mto-calculator-ui > .scientific-tool .scientific-result-row,
.mto-calculator-ui.scientific-tool .scientific-result-row {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: end;
    gap: 10px;
    min-width: 0;
    margin-top: 2px;
}
.mto-calculator-ui > .scientific-tool .scientific-mode-indicator,
.mto-calculator-ui.scientific-tool .scientific-mode-indicator {
    align-self: center;
    padding: 4px 6px;
    border-radius: 5px;
    background: #eaf4fb;
    color: #176b9d;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
}
.mto-calculator-ui > .scientific-tool .scientific-result,
.mto-calculator-ui.scientific-tool .scientific-result {
    display: block;
    min-width: 0;
    min-height: 54px;
    padding: 0;
    overflow-x: auto;
    overflow-y: hidden;
    color: #17212b;
    font: 600 clamp(32px, 5.2vw, 44px)/1.15 "Segoe UI", Arial, sans-serif;
    letter-spacing: -.025em;
    text-align: right;
    white-space: nowrap;
    scrollbar-width: thin;
}

.mto-calculator-ui > .scientific-tool .scientific-keypad,
.mto-calculator-ui.scientific-tool .scientific-keypad {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: 12px;
    margin-top: 12px;
}
.mto-calculator-ui > .scientific-tool .scientific-function-grid,
.mto-calculator-ui.scientific-tool .scientific-function-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0,1fr));
    gap: 6px;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid,
.mto-calculator-ui.scientific-tool .scientific-basic-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid #e1e7ec;
}
.mto-calculator-ui > .scientific-tool .scientific-keypad button,
.mto-calculator-ui.scientific-tool .scientific-keypad button {
    min-width: 0;
    min-height: 44px;
    height: auto;
    margin: 0;
    padding: 0 5px;
    border: 1px solid #d7dfe6;
    border-radius: 7px;
    background: #f3f5f7;
    color: #263744;
    box-shadow: none;
    font: 600 14px/1 "Segoe UI", Arial, sans-serif;
    text-align: center;
    transition: background-color .12s ease, border-color .12s ease, color .12s ease, transform .06s ease;
}
.mto-calculator-ui > .scientific-tool .scientific-keypad button sup,
.mto-calculator-ui > .scientific-tool .scientific-keypad button sub,
.mto-calculator-ui.scientific-tool .scientific-keypad button sup,
.mto-calculator-ui.scientific-tool .scientific-keypad button sub { font-size: .62em; line-height: 0; }
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button {
    min-height: 52px;
    font-size: 18px;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button.num,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button.num {
    background: #fff;
    color: #182631;
    font-size: 19px;
    font-weight: 650;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button.util,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button.util {
    background: #eef1f4;
    color: #344451;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button.op,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button.op {
    border-color: #bed8e8;
    background: #eaf4fb;
    color: #176b9d;
    font-size: 22px;
    font-weight: 700;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button.equals,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button.equals {
    border-color: #2c8fcb;
    background: #2c8fcb;
    color: #fff;
}
.mto-calculator-ui > .scientific-tool .scientific-keypad button[data-sci-key="toggle-2nd"].is-active,
.mto-calculator-ui > .scientific-tool.scientific-second .scientific-keypad button[data-sci-key="toggle-2nd"],
.mto-calculator-ui.scientific-tool .scientific-keypad button[data-sci-key="toggle-2nd"].is-active,
.mto-calculator-ui.scientific-tool.scientific-second .scientific-keypad button[data-sci-key="toggle-2nd"] {
    border-color: #2c8fcb;
    background: #2c8fcb;
    color: #fff;
}
.mto-calculator-ui > .scientific-tool.scientific-second .sci-2nd-target,
.mto-calculator-ui.scientific-tool.scientific-second .sci-2nd-target {
    border-color: #a9cde4;
    background: #eef7fc;
    color: #176b9d;
}
@media (hover:hover) {
    .mto-calculator-ui > .scientific-tool .scientific-keypad button:hover,
    .mto-calculator-ui.scientific-tool .scientific-keypad button:hover {
        border-color: #b8c5cf;
        background: #e9edf1;
    }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button.num:hover,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button.num:hover { background: #f8fafb; }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button.op:hover,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button.op:hover {
        border-color: #9bc4dd;
        background: #deeff9;
    }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button.equals:hover,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button.equals:hover {
        border-color: #247eb5;
        background: #247eb5;
    }
}
.mto-calculator-ui > .scientific-tool .scientific-keypad button:active,
.mto-calculator-ui.scientific-tool .scientific-keypad button:active,
.mto-calculator-ui > .scientific-tool .scientific-utility-button:active,
.mto-calculator-ui.scientific-tool .scientific-utility-button:active { transform: translateY(1px); }
.mto-calculator-ui > .scientific-tool .scientific-keypad button:focus-visible,
.mto-calculator-ui.scientific-tool .scientific-keypad button:focus-visible,
.mto-calculator-ui > .scientific-tool .scientific-utility-button:focus-visible,
.mto-calculator-ui.scientific-tool .scientific-utility-button:focus-visible,
.mto-calculator-ui > .scientific-tool .scientific-angle button:focus-visible,
.mto-calculator-ui.scientific-tool .scientific-angle button:focus-visible {
    outline: 3px solid rgba(44,143,203,.24);
    outline-offset: 2px;
}
.mto-calculator-ui > .scientific-tool .scientific-message,
.mto-calculator-ui.scientific-tool .scientific-message {
    min-height: 20px;
    margin: 10px 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #667784;
    font-size: 12.5px;
    line-height: 1.5;
}
.mto-calculator-ui > .scientific-tool .scientific-message.is-error,
.mto-calculator-ui.scientific-tool .scientific-message.is-error {
    padding: 9px 10px;
    border: 1px solid #f0c4c0;
    border-radius: 6px;
    background: #fff6f5;
    color: #b42318;
}

/* Scientific session/history follows the same light calculator surface. */
.mto-calculator-ui > .scientific-tool .mto-sci-session,
.mto-calculator-ui.scientific-tool .mto-sci-session {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e1e7ec;
}
.mto-calculator-ui > .scientific-tool .mto-sci-memory,
.mto-calculator-ui.scientific-tool .mto-sci-memory { display: none; }
.mto-calculator-ui > .scientific-tool .mto-sci-session-feedback,
.mto-calculator-ui.scientific-tool .mto-sci-session-feedback {
    margin: 0 0 8px;
    color: #667784;
    font-size: 12px;
    line-height: 1.45;
}
.mto-calculator-ui > .scientific-tool .mto-sci-session-feedback:empty,
.mto-calculator-ui.scientific-tool .mto-sci-session-feedback:empty { display: none; }
.mto-calculator-ui > .scientific-tool .mto-sci-history,
.mto-calculator-ui.scientific-tool .mto-sci-history {
    padding: 0 10px 9px;
    border: 1px solid #dce4ea;
    border-radius: 8px;
    background: #f9fbfc;
}
.mto-calculator-ui > .scientific-tool .mto-sci-history > summary,
.mto-calculator-ui.scientific-tool .mto-sci-history > summary {
    min-height: 42px;
    color: #344451;
    font-weight: 650;
}
.mto-calculator-ui > .scientific-tool .mto-sci-history-head span,
.mto-calculator-ui > .scientific-tool .mto-sci-history-empty,
.mto-calculator-ui > .scientific-tool .mto-sci-history-item small,
.mto-calculator-ui.scientific-tool .mto-sci-history-head span,
.mto-calculator-ui.scientific-tool .mto-sci-history-empty,
.mto-calculator-ui.scientific-tool .mto-sci-history-item small { color: #71818d; }
.mto-calculator-ui > .scientific-tool .mto-sci-history-item,
.mto-calculator-ui.scientific-tool .mto-sci-history-item {
    border-color: #e1e7ec;
    background: #fff;
    color: #263744;
}
.mto-calculator-ui > .scientific-tool .mto-sci-history-head button,
.mto-calculator-ui.scientific-tool .mto-sci-history-head button {
    border-color: #d6e0e8;
    border-radius: 6px;
    background: #fff;
    color: #40515f;
}

@media (pointer: coarse) {
    .mto-calculator-ui > .scientific-tool .scientific-angle button,
    .mto-calculator-ui.scientific-tool .scientific-angle button,
    .mto-calculator-ui > .scientific-tool .scientific-utility-button,
    .mto-calculator-ui.scientific-tool .scientific-utility-button,
    .mto-calculator-ui > .scientific-tool .scientific-function-grid button,
    .mto-calculator-ui.scientific-tool .scientific-function-grid button { min-height: 44px; }
}

@media (max-width: 640px) {
    .mto-calculator-ui > .scientific-tool,
    .mto-calculator-ui.scientific-tool {
        padding: 12px;
        border-radius: 10px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-screen,
    .mto-calculator-ui.scientific-tool .scientific-screen { padding: 11px 11px 10px; }
    .mto-calculator-ui > .scientific-tool .scientific-angle button,
    .mto-calculator-ui.scientific-tool .scientific-angle button {
        min-width: 48px;
        min-height: 32px;
        padding-inline: 8px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-utility-button,
    .mto-calculator-ui.scientific-tool .scientific-utility-button {
        width: 34px;
        min-width: 34px;
        min-height: 34px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-result,
    .mto-calculator-ui.scientific-tool .scientific-result {
        min-height: 48px;
        font-size: clamp(30px, 10vw, 38px);
    }
    .mto-calculator-ui > .scientific-tool .scientific-keypad,
    .mto-calculator-ui.scientific-tool .scientific-keypad { gap: 10px; margin-top: 10px; }
    .mto-calculator-ui > .scientific-tool .scientific-function-grid,
    .mto-calculator-ui.scientific-tool .scientific-function-grid { gap: 5px; }
    .mto-calculator-ui > .scientific-tool .scientific-function-grid button,
    .mto-calculator-ui.scientific-tool .scientific-function-grid button {
        min-height: 42px;
        padding-inline: 2px;
        font-size: 12.5px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid { gap: 6px; padding-top: 10px; }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button { min-height: 50px; }
}
@media (max-width: 360px) {
    .mto-calculator-ui > .scientific-tool,
    .mto-calculator-ui.scientific-tool { padding: 10px; }
    .mto-calculator-ui > .scientific-tool .scientific-function-grid,
    .mto-calculator-ui.scientific-tool .scientific-function-grid { gap: 4px; }
    .mto-calculator-ui > .scientific-tool .scientific-function-grid button,
    .mto-calculator-ui.scientific-tool .scientific-function-grid button {
        min-height: 40px;
        font-size: 11.5px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid { gap: 5px; }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button {
        min-height: 48px;
        font-size: 17px;
    }
}
@media (orientation: landscape) and (max-height: 520px) and (min-width: 600px) {
    .mto-calculator-ui > .scientific-tool,
    .mto-calculator-ui.scientific-tool { width: min(100%, 960px); padding: 10px 12px; }
    .mto-calculator-ui > .scientific-tool .scientific-screen,
    .mto-calculator-ui.scientific-tool .scientific-screen { padding: 8px 10px; }
    .mto-calculator-ui > .scientific-tool .scientific-screen-head,
    .mto-calculator-ui.scientific-tool .scientific-screen-head { margin-bottom: 3px; }
    .mto-calculator-ui > .scientific-tool [data-scientific-input],
    .mto-calculator-ui.scientific-tool [data-scientific-input] { min-height: 24px; font-size: 13px; }
    .mto-calculator-ui > .scientific-tool .scientific-result,
    .mto-calculator-ui.scientific-tool .scientific-result { min-height: 38px; font-size: 30px; }
    .mto-calculator-ui > .scientific-tool .scientific-keypad,
    .mto-calculator-ui.scientific-tool .scientific-keypad {
        grid-template-columns: minmax(0,1.45fr) minmax(0,1fr);
        align-items: start;
        gap: 10px;
        margin-top: 8px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-function-grid,
    .mto-calculator-ui.scientific-tool .scientific-function-grid { gap: 4px; }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid {
        gap: 4px;
        padding: 0 0 0 10px;
        border-top: 0;
        border-left: 1px solid #e1e7ec;
    }
    .mto-calculator-ui > .scientific-tool .scientific-function-grid button,
    .mto-calculator-ui.scientific-tool .scientific-function-grid button { min-height: 34px; font-size: 11.5px; }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button { min-height: 38px; font-size: 15px; }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button.op,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button.op { font-size: 18px; }
    .mto-calculator-ui > .scientific-tool .scientific-message,
    .mto-calculator-ui.scientific-tool .scientific-message { min-height: 17px; margin-top: 6px; font-size: 11px; }
}


/* v4.54.3 — mobile calculator usability cleanup for scientific + Casio. */
.is-touch-keypad-mode [data-scientific-input],
.is-touch-keypad-mode [data-c570-input],
.is-touch-keypad-mode [data-c580-input],
.is-touch-keypad-mode [data-c880-input] {
    cursor: pointer;
}
@media (max-width: 760px) {
    [data-calculator-key="scientific"] .tool-pin-button,
    [data-calculator-key="casio-570"] .tool-pin-button,
    [data-calculator-key="casio-580"] .tool-pin-button,
    [data-calculator-key="casio-880"] .tool-pin-button {
        display: none !important;
    }
    [data-calculator-key="scientific"] .calculator-heading-actions,
    [data-calculator-key="casio-570"] .calculator-heading-actions,
    [data-calculator-key="casio-580"] .calculator-heading-actions,
    [data-calculator-key="casio-880"] .calculator-heading-actions {
        width: 100%;
        justify-content: stretch;
    }
    [data-calculator-key="scientific"] .tool-fullscreen-button,
    [data-calculator-key="casio-570"] .tool-fullscreen-button,
    [data-calculator-key="casio-580"] .tool-fullscreen-button,
    [data-calculator-key="casio-880"] .tool-fullscreen-button {
        width: 100%;
        justify-content: center;
    }
}

/* v4.57.0 — Core calculator consistency contract.
   Basic, Scientific and Casio keep their product identity, but equivalent actions
   now share the same semantic hierarchy: neutral DEL/backspace, destructive AC,
   soft-brand operators, brand equals, restrained 6px key geometry and a common
   focus/touch language. */

/* Scientific is a dense 6-column tool; 820px stretched the keys too far on a
   normal desktop page. Fullscreen may expand only in landscape where the keypad
   splits into two zones. */
.mto-calculator-ui > .scientific-tool,
.mto-calculator-ui.scientific-tool {
    width: min(100%, 680px);
    padding: 14px;
    border-radius: var(--radius-lg);
}
.mto-calculator-ui > .scientific-tool .scientific-screen,
.mto-calculator-ui.scientific-tool .scientific-screen {
    border-color: var(--line-strong);
    border-radius: var(--radius);
    background: var(--surface-subtle);
}
.mto-calculator-ui > .scientific-tool .scientific-screen-head,
.mto-calculator-ui.scientific-tool .scientific-screen-head {
    min-height: 38px;
    margin-bottom: 6px;
}
.mto-calculator-ui > .scientific-tool .scientific-angle,
.mto-calculator-ui.scientific-tool .scientific-angle {
    flex: 0 0 auto;
    grid-template-columns: repeat(2, 54px);
    border-radius: var(--radius);
}
.mto-calculator-ui > .scientific-tool .scientific-angle button,
.mto-calculator-ui.scientific-tool .scientific-angle button {
    min-width: 0;
    border-radius: var(--radius-sm);
}
.mto-calculator-ui > .scientific-tool .scientific-utility-bar,
.mto-calculator-ui.scientific-tool .scientific-utility-bar {
    flex: 0 0 auto;
}
.mto-calculator-ui > .scientific-tool .scientific-utility-button,
.mto-calculator-ui.scientific-tool .scientific-utility-button {
    display: inline-flex;
    width: auto;
    min-width: 44px;
    min-height: 36px;
    padding: 0 9px;
    gap: 6px;
    border-radius: var(--radius);
    color: var(--text-secondary);
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}
.mto-calculator-ui > .scientific-tool .scientific-utility-button svg,
.mto-calculator-ui.scientific-tool .scientific-utility-button svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
}
.mto-calculator-ui > .scientific-tool .scientific-keypad button,
.mto-calculator-ui.scientific-tool .scientific-keypad button {
    border-radius: var(--radius);
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button {
    min-height: 54px;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button.util,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button.util {
    border-color: #d9dee6;
    background: #f1f3f6;
    color: #344054;
}
.mto-calculator-ui > .scientific-tool .scientific-basic-grid button.scientific-ac,
.mto-calculator-ui.scientific-tool .scientific-basic-grid button.scientific-ac {
    border-color: #f0cbc7;
    background: #fff7f6;
    color: var(--error);
    font-weight: 700;
}
@media (hover:hover) {
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button.scientific-ac:hover,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button.scientific-ac:hover {
        border-color: #e8b7b2;
        background: #fff0ee;
    }
}

/* Same minimum action/touch rhythm for the homepage/basic tool and the dense
   scientific families. Five-column Casio stays slightly denser by design. */
.calculator .calc-key { border-radius: var(--radius); }
.calculator .calculator-tools { min-height: 46px; }
.calculator .calc-tool { min-height: 44px; }
.mto-calculator-ui > .casio-unified .casio-model-toolbar button { min-height: 44px; }

/* All five primary calculators expose the same keyboard-focus signal. */
.calculator :is(.calc-key,.calc-tool):focus-visible,
.mto-calculator-ui > .scientific-tool :is(button,input):focus-visible,
.mto-calculator-ui > .casio-unified :is(button,input,select,a):focus-visible {
    outline: 3px solid var(--focus-ring-strong);
    outline-offset: 2px;
}

/* v4.56.9's fullscreen scientific rule intentionally changed the skin but also
   replaced the generic centered padding, causing huge keys on wide monitors.
   Restore a focused task width; landscape can use a wider two-zone workspace. */
.is-mto-fullscreen.scientific-tool {
    padding-left: max(12px, calc((100vw - 760px) / 2), env(safe-area-inset-left));
    padding-right: max(12px, calc((100vw - 760px) / 2), env(safe-area-inset-right));
}
@media (orientation: landscape) and (max-height: 520px) and (min-width: 600px) {
    .is-mto-fullscreen.scientific-tool {
        padding-left: max(12px, calc((100vw - 960px) / 2), env(safe-area-inset-left));
        padding-right: max(12px, calc((100vw - 960px) / 2), env(safe-area-inset-right));
    }
}
@media (max-width: 640px) {
    .mto-calculator-ui > .scientific-tool,
    .mto-calculator-ui.scientific-tool {
        width: 100%;
        padding: 10px;
    }
    .mto-calculator-ui > .scientific-tool .scientific-utility-button,
    .mto-calculator-ui.scientific-tool .scientific-utility-button {
        width: 38px;
        min-width: 38px;
        padding: 0;
    }
    .mto-calculator-ui > .scientific-tool .scientific-utility-button span,
    .mto-calculator-ui.scientific-tool .scientific-utility-button span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0,0,0,0);
        white-space: nowrap;
        border: 0;
    }
    .mto-calculator-ui > .scientific-tool .scientific-angle,
    .mto-calculator-ui.scientific-tool .scientific-angle {
        grid-template-columns: repeat(2, 48px);
    }
    .mto-calculator-ui > .scientific-tool .scientific-basic-grid button,
    .mto-calculator-ui.scientific-tool .scientific-basic-grid button {
        min-height: 50px;
    }
    .is-mto-fullscreen.scientific-tool {
        padding-left: max(8px, env(safe-area-inset-left));
        padding-right: max(8px, env(safe-area-inset-right));
    }
}
@media (max-width: 360px) {
    .mto-calculator-ui > .scientific-tool .scientific-screen-head,
    .mto-calculator-ui.scientific-tool .scientific-screen-head { gap: 8px; }
    .mto-calculator-ui > .scientific-tool .scientific-utility-bar,
    .mto-calculator-ui.scientific-tool .scientific-utility-bar { gap: 4px; }
    .mto-calculator-ui > .scientific-tool .scientific-angle,
    .mto-calculator-ui.scientific-tool .scientific-angle { grid-template-columns: repeat(2, 44px); }
}

/* v4.57.1 — Casio 570/580/880 strict visual unification.
   All three model pages now expose the same semantic component classes and the
   same chassis/screen/toolbar/keypad/status/related-tools geometry. FX-880 may
   add its app switcher and secondary panels, but Calculate itself must look and
   behave like the 570/580 surface rather than becoming a separate skin. */
.mto-calculator-ui > .casio-unified {
    width: min(100%, 620px);
    padding: 14px;
    border: 1px solid #2b3137;
    border-radius: var(--radius-lg);
    background: #171b1f;
    color: #f7f8fa;
}
.mto-calculator-ui > .casio-unified .casio-model-head {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: start;
    gap: 12px;
    margin: 0 0 12px;
}
.mto-calculator-ui > .casio-unified .casio-eyebrow {
    margin: 0;
    color: #7fc2ec;
    font-size: 10px;
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: .06em;
}
.mto-calculator-ui > .casio-unified .casio-model-head h2 {
    margin: 2px 0 4px;
    color: #fff;
    font-size: 20px;
    line-height: 1.25;
    font-weight: 650;
    letter-spacing: -.01em;
}
.mto-calculator-ui > .casio-unified .casio-model-head > div:first-child > p:not(.casio-eyebrow) {
    margin: 0;
    color: #aeb7c0;
    font-size: 12px;
    line-height: 1.5;
}
.mto-calculator-ui > .casio-unified .casio-model-angle {
    display: inline-grid;
    grid-template-columns: repeat(2, 50px);
    gap: 2px;
    width: 104px;
    min-width: 104px;
    padding: 2px;
    border: 1px solid #3a4148;
    border-radius: var(--radius);
    background: #0e1114;
}
.mto-calculator-ui > .casio-unified .casio-model-angle button {
    min-width: 0;
    min-height: 36px;
    height: 36px;
    padding: 0 7px;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: #aeb7c0;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-model-angle button:is(.is-active,[aria-pressed="true"]) {
    background: #2c8fcb;
    color: #fff;
}

/* 880-only mode selection uses the same segmented-control language as DEG/RAD. */
.mto-calculator-ui > .casio-unified .casio-apps {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 2px;
    margin: 0 0 9px;
    padding: 2px;
    border: 1px solid #3a4148;
    border-radius: var(--radius);
    background: #0e1114;
}
.mto-calculator-ui > .casio-unified .casio-apps button {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 1px;
    min-width: 0;
    min-height: 42px;
    padding: 5px 7px;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: #aeb7c0;
    font: inherit;
    text-align: center;
    cursor: pointer;
}
.mto-calculator-ui > .casio-unified .casio-apps button span {
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-apps button small {
    color: #7f8a94;
    font-size: 9px;
    line-height: 1.2;
}
.mto-calculator-ui > .casio-unified .casio-apps button.is-active {
    background: #2c8fcb;
    color: #fff;
}
.mto-calculator-ui > .casio-unified .casio-apps button.is-active small { color: #eaf6fd; }

.mto-calculator-ui > .casio-unified .casio-model-screen {
    min-width: 0;
    padding: 11px 13px 10px;
    border: 1px solid #a9b49f;
    border-radius: 8px;
    background: #dce7d8;
    color: #172019;
}
.mto-calculator-ui > .casio-unified .casio-screen-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-height: 13px;
    margin-bottom: 3px;
    color: #445248;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .07em;
}
.mto-calculator-ui > .casio-unified .casio-model-screen label {
    display: block;
    margin: 0;
    color: #536155;
    font-size: 10px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.mto-calculator-ui > .casio-unified .casio-model-screen input {
    width: 100%;
    min-height: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(55,65,55,.28);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #142019;
    font: inherit;
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    outline: 0;
}
.mto-calculator-ui > .casio-unified .casio-result {
    display: block;
    width: 100%;
    min-height: 48px;
    padding-top: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
    color: #101b12;
    font-size: clamp(28px,5vw,36px);
    line-height: 1.08;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    text-align: right;
    user-select: text;
}
.mto-calculator-ui > .casio-unified .casio-result::-webkit-scrollbar { display: none; }
.mto-calculator-ui > .casio-unified .casio-model-screen small {
    display: block;
    min-height: 14px;
    margin-top: 5px;
    color: #59665b;
    font-size: 10px;
    line-height: 1.4;
}

.mto-calculator-ui > .casio-unified .casio-model-toolbar {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    align-items: stretch;
    gap: 7px;
    margin: 9px 0;
}
.mto-calculator-ui > .casio-unified .casio-model-toolbar button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 7px 10px;
    border: 1px solid #3a4148;
    border-radius: var(--radius);
    background: #252a30;
    color: #f5f6f7;
    font: inherit;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
}
.mto-calculator-ui > .casio-unified .casio-shift span {
    color: #f3c65e;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-shift.is-active {
    border-color: #9b7627;
    background: #443617;
}
.mto-calculator-ui > .casio-unified .casio-model-toolbar small {
    color: #aeb7c0;
    font-size: 10px;
}

.mto-calculator-ui > .casio-unified .casio-model-keypad {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    column-gap: 6px;
    row-gap: 7px;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad button {
    min-width: 0;
    min-height: 50px;
    padding: 5px 3px;
    border: 1px solid #424951;
    border-radius: var(--radius);
    background: #30353b;
    color: #f5f6f7;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.15;
    cursor: pointer;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .casio-shiftable {
    position: relative;
    padding-top: 14px;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .casio-shiftable::before {
    content: attr(data-casio-shift-label);
    position: absolute;
    top: 4px;
    left: 3px;
    right: 3px;
    overflow: hidden;
    color: #d9b653;
    font-size: 8px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .casio-shiftable.is-shifted {
    border-color: #9b7627;
    background: #363a3f;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .num,
.mto-calculator-ui > .casio-unified .casio-model-keypad .key-bottom-fn {
    border-color: #c8ced3;
    background: #eef1f3;
    color: #172029;
    font-size: 18px;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .key-bottom-fn { font-size: 14px; }
.mto-calculator-ui > .casio-unified .casio-model-keypad .op {
    border-color: #b6d2e2;
    background: #dcebf4;
    color: #17445f;
    font-size: 18px;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .key-del {
    border-color: #c8ced3;
    background: #eef1f3;
    color: #27313a;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .key-ac {
    border-color: #c95f57;
    background: #b42318;
    color: #fff;
    font-weight: 700;
}
.mto-calculator-ui > .casio-unified .casio-model-keypad .equals {
    border-color: #2c8fcb;
    background: #2c8fcb;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
}
@media (hover:hover) {
    .mto-calculator-ui > .casio-unified .casio-model-toolbar button:hover {
        border-color: #4b545e;
        background: #2d3339;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad button:hover {
        border-color: #555f69;
        background: #393f46;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad :is(.num,.key-bottom-fn,.key-del):hover {
        border-color: #d8dde1;
        background: #fff;
        color: #172029;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad .op:hover {
        border-color: #c7deeb;
        background: #e8f3f9;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad .key-ac:hover {
        border-color: #a61d13;
        background: #9f1f15;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad .equals:hover {
        border-color: #247fb7;
        background: #247fb7;
    }
}

.mto-calculator-ui > .casio-unified .casio-status {
    min-height: 36px;
    margin: 9px 0 0;
    padding: 8px 10px;
    border: 1px solid #343b42;
    border-radius: var(--radius);
    background: #0f1215;
    color: #b6bec6;
    font-size: 11px;
    line-height: 1.45;
}
.mto-calculator-ui > .casio-unified .casio-status.is-error {
    border-color: #7d4548;
    background: #2b191b;
    color: #ffc6c2;
}
.mto-calculator-ui > .casio-unified .casio-related {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid #343b42;
}
.mto-calculator-ui > .casio-unified .casio-related > span {
    margin-right: 2px;
    color: #929da7;
    font-size: 11px;
    font-weight: 600;
}
.mto-calculator-ui > .casio-unified .casio-related a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 5px 8px;
    border: 1px solid #3b444c;
    border-radius: var(--radius);
    background: #22272c;
    color: #8bc7ec;
    font-size: 11px;
    line-height: 1.2;
    text-decoration: none;
}

@media (max-width: 640px) {
    .mto-calculator-ui > .casio-unified {
        width: 100%;
        padding: 10px;
        border-radius: 8px;
    }
    .mto-calculator-ui > .casio-unified .casio-model-head {
        grid-template-columns: minmax(0,1fr);
        gap: 8px;
        margin-bottom: 9px;
    }
    .mto-calculator-ui > .casio-unified .casio-model-head h2 { font-size: 18px; }
    .mto-calculator-ui > .casio-unified .casio-model-head > div:first-child > p:not(.casio-eyebrow) { display: none; }
    .mto-calculator-ui > .casio-unified .casio-model-angle {
        width: 100%;
        min-width: 0;
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .mto-calculator-ui > .casio-unified .casio-model-screen { padding: 10px 11px; }
    .mto-calculator-ui > .casio-unified .casio-model-toolbar {
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 5px;
        margin: 7px 0;
    }
    .mto-calculator-ui > .casio-unified .casio-model-toolbar button { min-height: 42px; padding-inline: 7px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad { gap: 4px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad button {
        min-height: 48px;
        padding: 4px 2px;
        border-radius: 5px;
        font-size: 11px;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad :is(.num,.op) { font-size: 17px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad .key-bottom-fn { font-size: 13px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad .casio-shiftable { padding-top: 13px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad .casio-shiftable::before { top: 4px; font-size: 7px; }
    .mto-calculator-ui > .casio-unified .casio-related > span { width: 100%; }
    .mto-calculator-ui > .casio-unified .casio-apps { gap: 2px; }
    .mto-calculator-ui > .casio-unified .casio-apps button { min-height: 42px; padding: 5px 4px; }
}
@media (max-width: 380px) {
    .mto-calculator-ui > .casio-unified { padding: 8px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad { gap: 3px; }
    .mto-calculator-ui > .casio-unified .casio-model-keypad button {
        min-height: 46px;
        padding: 3px 1px;
        font-size: 10.5px;
    }
    .mto-calculator-ui > .casio-unified .casio-model-keypad :is(.num,.op) { font-size: 16px; }
    .mto-calculator-ui > .casio-unified .casio-result { font-size: 30px; }
    .mto-calculator-ui > .casio-unified .casio-model-toolbar small,
    .mto-calculator-ui > .casio-unified .casio-apps button small { display: none; }
}

/* v4.57.2 — Casio single-owner cleanup.
   Shared 570/580/880 visuals live only in the v4.57.1 .casio-unified contract above.
   This block contains stateful LCD/session behavior plus FX-880-only app content;
   it intentionally does not restyle the common chassis, toolbar or keypad. */
.mto-calculator-ui > .casio-unified .casio-model-screen {
    position: relative;
    overflow: hidden;
}
.mto-calculator-ui > .casio-unified .casio-model-screen input { transition: font-size .12s ease; }
.mto-calculator-ui > .casio-unified .casio-model-screen input.is-long-expression { font-size: 14px; }
.mto-calculator-ui > .casio-unified .casio-model-screen input.is-xlong-expression { font-size: 12px; }
.mto-calculator-ui > .casio-unified .casio-result {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}
.mto-calculator-ui > .casio-unified .casio-result.is-compact { font-size: 27px; }
.mto-calculator-ui > .casio-unified .casio-result.is-xcompact { font-size: 21px; }
.mto-calculator-ui > .casio-unified .casio-result.is-scientific-notation { letter-spacing: .01em; }
.mto-calculator-ui > .casio-unified .mto-casio-memory-indicator {
    margin-left: auto;
    color: #27382d;
    font-weight: 800;
    letter-spacing: 0;
}
.mto-calculator-ui > .casio-unified .mto-casio-memory-indicator[hidden] { display: none; }

.mto-calculator-ui > .casio-unified .mto-sci-session {
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid #343b42;
}
.mto-calculator-ui > .casio-unified .mto-sci-memory { gap: 8px; }
.mto-calculator-ui > .casio-unified .mto-sci-memory-value span,
.mto-calculator-ui > .casio-unified .mto-sci-history-head span,
.mto-calculator-ui > .casio-unified .mto-sci-history-empty,
.mto-calculator-ui > .casio-unified .mto-sci-history-item small { color: #98a2ab; }
.mto-calculator-ui > .casio-unified .mto-sci-memory-value strong,
.mto-calculator-ui > .casio-unified .mto-sci-history-item strong { color: #f4f6f8; }
.mto-calculator-ui > .casio-unified .mto-sci-memory-value strong {
    max-width: 230px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mto-calculator-ui > .casio-unified .mto-sci-memory-actions button,
.mto-calculator-ui > .casio-unified .mto-sci-history-head button {
    min-height: 38px;
    border-color: #3b444c;
    border-radius: var(--radius);
    background: #22272c;
    color: #d8dde2;
}
.mto-calculator-ui > .casio-unified .mto-sci-memory-actions button:disabled {
    opacity: .38;
    cursor: not-allowed;
    border-color: #323940;
    background: #1b2025;
    color: #7f8992;
}
.mto-calculator-ui > .casio-unified .mto-sci-session-feedback {
    min-height: 0;
    margin-top: 6px;
    color: #aab3bc;
}
.mto-calculator-ui > .casio-unified .mto-sci-session-feedback:empty { display: none; }
.mto-calculator-ui > .casio-unified .mto-sci-session-feedback.is-error { color: #ffc6c2; }
.mto-calculator-ui > .casio-unified .mto-sci-history {
    margin-top: 7px;
    padding: 0;
    border: 1px solid #343b42;
    border-radius: var(--radius);
    background: #111417;
}
.mto-calculator-ui > .casio-unified .mto-sci-history > summary {
    min-height: 42px;
    padding: 11px 10px;
    color: #d8dde2;
    list-style-position: inside;
}
.mto-calculator-ui > .casio-unified .mto-sci-history > summary span {
    background: #252a30;
    color: #b9c1c8;
}
.mto-calculator-ui > .casio-unified .mto-sci-history-head {
    align-items: flex-start;
    padding: 0 9px;
}
.mto-calculator-ui > .casio-unified .mto-sci-history-head > span {
    max-width: 360px;
    line-height: 1.45;
}
.mto-calculator-ui > .casio-unified .mto-sci-history-list {
    max-height: 220px;
    padding: 0 9px 9px;
}
.mto-calculator-ui > .casio-unified .mto-sci-history-item {
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-rows: auto auto;
    gap: 3px 10px;
    min-height: 42px;
    padding: 8px 9px;
    border-color: #343b42;
    border-radius: var(--radius-sm);
    background: #1b2025;
    color: #fff;
}
.mto-calculator-ui > .casio-unified .mto-sci-history-expression { align-self: end; }
.mto-calculator-ui > .casio-unified .mto-sci-history-item strong {
    align-self: end;
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: right;
}
.mto-calculator-ui > .casio-unified .mto-sci-history-item small {
    display: block;
    grid-column: 1 / -1;
    line-height: 1.25;
}
@media (hover:hover) {
    .mto-calculator-ui > .casio-unified .mto-sci-memory-actions button:hover:not(:disabled),
    .mto-calculator-ui > .casio-unified .mto-sci-history-head button:hover,
    .mto-calculator-ui > .casio-unified .mto-sci-history-item:hover,
    .mto-calculator-ui > .casio-unified .casio-related a:hover {
        border-color: #4e6f84;
        background: #293139;
        color: #fff;
    }
}

/* FX-880-only applications. The common Calculate surface remains untouched. */
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-app-panel { min-width: 0; padding: 0; }
.mto-calculator-ui > .casio-unified.casio-model-880[data-c880-active-app="verify"] .mto-sci-session,
.mto-calculator-ui > .casio-unified.casio-model-880[data-c880-active-app="mathbox"] .mto-sci-session { display: none; }
.mto-calculator-ui > .casio-unified.casio-model-880[data-c880-active-app="mathbox"] .casio-model-angle { visibility: hidden; }
.mto-calculator-ui > .casio-unified.casio-model-880 :is(.casio-app-panel[data-c880-panel="verify"],.casio-app-panel[data-c880-panel="mathbox"]) {
    padding: 12px;
    border: 1px solid #343b42;
    border-radius: var(--radius);
    background: #1b2025;
    color: #f5f6f7;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-intro {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 5px 9px;
    margin: 0 0 10px;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-intro strong { color: #fff; font-size: 15px; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-intro span { color: #aab3bc; font-size: 11px; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 96px minmax(0,1fr);
    gap: 8px;
    align-items: end;
}
.mto-calculator-ui > .casio-unified.casio-model-880 :is(.casio-verify-grid label,.casio-math-grid label) {
    display: grid;
    gap: 5px;
    color: #c1c8cf;
    font-size: 11px;
    font-weight: 600;
}
.mto-calculator-ui > .casio-unified.casio-model-880 :is(.casio-verify-grid input,.casio-verify-grid select,.casio-math-grid input,.casio-math-grid select) {
    width: 100%;
    min-height: 44px;
    height: 44px;
    padding: 8px 9px;
    border: 1px solid #59626b;
    border-radius: var(--radius);
    background: #fff;
    color: #18202a;
    font: inherit;
    font-size: 14px;
}
.mto-calculator-ui > .casio-unified.casio-model-880 :is(.casio-verify-grid input,.casio-verify-grid select,.casio-math-grid input,.casio-math-grid select):focus {
    border-color: #2c8fcb;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(44,143,203,.24);
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}
.mto-calculator-ui > .casio-unified.casio-model-880 :is(.casio-verify-actions button,.casio-math-grid article > button) {
    min-height: 42px;
    padding: 7px 12px;
    border: 1px solid #2c8fcb;
    border-radius: var(--radius);
    background: #2c8fcb;
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-actions output {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 70px;
    min-height: 42px;
    padding: 6px 10px;
    border: 1px solid #4b545d;
    border-radius: var(--radius);
    background: #14181c;
    color: #d7dce1;
    font-weight: 650;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-actions output.is-pass { border-color: #4d8d5d; color: #b9efc5; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-actions output.is-fail { border-color: #8b4d51; color: #ffc6c2; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-app-note {
    margin: 10px 0 0;
    padding: 9px 10px;
    border-left: 3px solid #59626b;
    background: #171b1f;
    color: #aab3bc;
    font-size: 10px;
    line-height: 1.5;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 9px;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-grid article {
    min-width: 0;
    padding: 11px;
    border: 1px solid #394149;
    border-radius: var(--radius);
    background: #191d21;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-grid h3 { margin: 0 0 9px; color: #fff; font-size: 14px; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-grid article > button { margin-top: 9px; }
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-output {
    min-height: 82px;
    margin-top: 9px;
    padding: 9px;
    border-radius: var(--radius);
    background: #111417;
    color: #b7c0c8;
    font-size: 10px;
    line-height: 1.5;
}
.mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-output p { margin: 0; }
.mto-calculator-ui > .casio-unified.casio-model-880 .c880-math-summary { color: #d9dee3; font-weight: 650; }
.mto-calculator-ui > .casio-unified.casio-model-880 .c880-random-values { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.mto-calculator-ui > .casio-unified.casio-model-880 .c880-random-values span {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 3px 6px;
    border: 1px solid #434b53;
    border-radius: var(--radius-sm);
    background: #20252a;
    color: #e8ebee;
    font-variant-numeric: tabular-nums;
}
.mto-calculator-ui > .casio-unified.casio-model-880 :is(.c880-random-values .is-more,.c880-frequency) { color: #98a2ab; }
.mto-calculator-ui > .casio-unified.casio-model-880 .c880-frequency { margin-top: 7px; font-size: 10px; }

@media (max-width: 640px) {
    .mto-calculator-ui > .casio-unified.casio-model-880 .casio-verify-grid,
    .mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .mto-calculator-ui > .casio-unified .mto-sci-memory-value { width: 100%; }
    .mto-calculator-ui > .casio-unified .mto-sci-memory-value strong { max-width: 100%; }
    .mto-calculator-ui > .casio-unified .mto-sci-history-head { align-items: stretch; flex-direction: column; }
    .mto-calculator-ui > .casio-unified .mto-sci-history-head button { width: 100%; }
    .mto-calculator-ui > .casio-unified .mto-sci-history-item strong { max-width: 130px; }
    .mto-calculator-ui > .casio-unified .casio-result.is-compact { font-size: 24px; }
    .mto-calculator-ui > .casio-unified .casio-result.is-xcompact { font-size: 18px; }
}
@media (max-width: 380px) {
    .mto-calculator-ui > .casio-unified.casio-model-880 .casio-math-fields { grid-template-columns: 1fr; }
}

/* v4.57.3 — Narrow calculator surface alignment.
   The calculator workspace is 860px wide while Casio is intentionally capped at
   620px. Keep focused calculator surfaces centered inside that shared frame;
   otherwise the unused width collects on the right and the tool looks broken. */
.mto-calculator-ui > .casio-unified {
    margin-inline: auto;
}

