/* Shared visual foundation; business state remains owned by existing scripts. */
:root {
    --ui-bg: #f4f6f5;
    --ui-surface: #ffffff;
    --ui-text: #23352f;
    --ui-muted: #65756e;
    --ui-line: #dde5e0;
    --ui-accent: #28735a;
    --ui-accent-soft: #eaf3ee;
    --ui-danger: #b34242;
    --ui-radius: 12px;
    --ui-sidebar: 290px;
    --ui-font: 'Segoe UI', system-ui, sans-serif;
}
.ui-app { font-family: var(--ui-font); color: var(--ui-text); }
.ui-app *, .ui-app *::before, .ui-app *::after { box-sizing: border-box; }
.ui-app :focus-visible { outline: 3px solid #80b59e; outline-offset: 3px; }
.ui-app button, .ui-app input, .ui-app select, .ui-app textarea { font: inherit; }
.ui-app button, .ui-app a, .ui-app summary { -webkit-tap-highlight-color: transparent; }
@media (prefers-reduced-motion: reduce) {
    .ui-app *, .ui-app *::before, .ui-app *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
