/* ==================================================
   Pi-Dimension simulation surface
   Shared by every interactive math model.
   ================================================== */

:root {
    --sim-ink: #11468C;
    --sim-ink-dark: #0D3672;
    --sim-ink-soft: #F4F7FB;
    --sim-paper: #FAFBFC;
    --sim-panel: #FFFFFF;
    --sim-rule: #E4E8EE;
    --sim-rule-strong: #D4DAE3;
    --sim-text: #2C323C;
    --sim-muted: #767D89;
}

body {
    background: var(--sim-paper) !important;
    color: var(--sim-text);
}

body::before,
body::after {
    animation: none !important;
}

.sim-container,
.simulation-container,
.simulator-layout {
    gap: 24px !important;
    min-width: 0;
}

.sim-container > *,
.simulation-container > *,
.simulator-layout > * {
    min-width: 0;
}

.control-panel,
.stats-panel,
.simulation-panel,
.controls,
.sidebar {
    background: var(--sim-panel) !important;
    border: 1px solid var(--sim-rule) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.canvas-container,
.canvas-wrapper,
.simulation-canvas,
.chart-container {
    background: var(--sim-panel) !important;
    border: 1px solid var(--sim-rule) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    overflow: hidden;
}

.formula-box,
.stat-card,
.metric,
.info-box {
    background: var(--sim-ink-soft) !important;
    border: 1px solid var(--sim-rule) !important;
    border-left: 1px solid var(--sim-rule) !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}

.stat-value,
.value-display,
.metric-value {
    color: var(--sim-ink-dark) !important;
    font-variant-numeric: tabular-nums;
}

.m-badge,
.pill,
.badge,
.tag {
    background: var(--sim-ink-soft) !important;
    border: 1px solid #D2DEEE !important;
    border-radius: 999px !important;
    color: var(--sim-ink-dark) !important;
    box-shadow: none !important;
}

.sim-button,
.m-btn,
button.primary-action,
button.secondary-action,
.btn-primary,
.btn-secondary,
.btn-danger,
.btn-info {
    border-radius: 4px !important;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease !important;
}

.sim-button,
.m-btn.primary,
.btn-primary,
button.primary-action {
    background: var(--sim-ink) !important;
    border: 1px solid var(--sim-ink) !important;
    color: #FFFFFF !important;
}

.sim-button:hover,
.m-btn.primary:hover,
.btn-primary:hover,
button.primary-action:hover {
    background: var(--sim-ink-dark) !important;
    border-color: var(--sim-ink-dark) !important;
}

.sim-button.secondary,
.m-btn.secondary,
.btn-secondary,
button.secondary-action {
    background: #FFFFFF !important;
    border: 1px solid var(--sim-rule-strong) !important;
    color: var(--sim-text) !important;
}

.sim-button.secondary:hover,
.m-btn.secondary:hover,
.btn-secondary:hover,
button.secondary-action:hover {
    background: var(--sim-ink-soft) !important;
    border-color: #D2DEEE !important;
    color: var(--sim-ink-dark) !important;
}

input[type="range"] {
    accent-color: var(--sim-ink) !important;
}

input[type="number"],
input[type="text"],
select,
textarea {
    background: #FFFFFF !important;
    border: 1px solid var(--sim-rule-strong) !important;
    border-radius: 4px !important;
    color: var(--sim-text) !important;
}

canvas {
    touch-action: none;
}

iframe[src*="simulation"] {
    border: 1px solid var(--sim-rule) !important;
    border-radius: 8px;
    background: var(--sim-panel);
}

.legend-color {
    border-radius: 2px !important;
}

.progress-bar {
    background: var(--sim-rule) !important;
    border-radius: 2px !important;
}

.progress-fill {
    background: var(--sim-ink) !important;
    border-radius: 2px !important;
}

[data-sim-status] {
    margin: 12px 0 0;
    color: var(--sim-muted);
    font-size: 0.8125rem;
}

.inquiry-cycle {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.inquiry-cycle li {
    min-height: 72px;
    padding: 12px;
    background: #FFFFFF;
    border: 1px solid var(--sim-rule);
    border-radius: 4px;
}

.inquiry-cycle .cycle-number {
    display: block;
    margin-bottom: 4px;
    color: var(--sim-ink);
    font-family: var(--font-mono, monospace);
    font-size: 0.75rem;
}

.activity-prompt {
    padding: 16px;
    background: var(--sim-ink-soft);
    border: 1px solid var(--sim-rule);
    border-radius: 4px;
}

.activity-prompt h3 {
    margin: 0 0 8px;
    font-size: 1rem;
}

.activity-prompt p:last-child { margin-bottom: 0; }

.prediction-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

@media (max-width: 900px) {
    .sim-container,
    .simulation-container,
    .simulator-layout {
        grid-template-columns: 1fr !important;
    }

    .canvas-container,
    .canvas-wrapper {
        min-height: 360px;
    }

    .inquiry-cycle { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
    .sim-container,
    .simulation-container,
    .simulator-layout {
        gap: 16px !important;
    }

    .control-panel,
    .stats-panel,
    .simulation-panel,
    .controls,
    .sidebar {
        padding: 16px !important;
    }

    .canvas-container,
    .canvas-wrapper {
        min-height: 280px;
    }

    .inquiry-cycle,
    .prediction-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
