/* Core tokens — deliberately neutral, so the conversation is the interface. */
:root {
    color-scheme: light;
    --bg-main: #ffffff;
    --bg-sidebar: #f3f4f4;
    --bg-elevated: #ffffff;
    --bg-hover: #ececee;
    --bg-active: #e5e5e7;
    --bg-input: #ffffff;
    --border-color: #dddddf;
    --border-subtle: #ececed;
    --border-strong: #c9cacd;
    --text-main: #181818;
    --text-muted: #5f606a;
    --text-subtle: #9b9ba5;
    --accent: #0f8f70;
    --accent-hover: #08785d;
    --accent-soft: rgba(15, 143, 112, 0.12);
    --status-online: #10a37f;
    --user-bubble-bg: #f4f4f5;
    --user-bubble-text: #202123;
    --assistant-text: #202123;
    --reasoning-bg: #effaf6;
    --reasoning-border: #a8ddcd;
    --reasoning-text: #386659;
    --code-bg: #202123;
    --code-text: #f7f7f8;
    --code-header-bg: #2f3032;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 18px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 18px 55px rgba(0, 0, 0, 0.16);
    --radius-lg: 18px;
    --radius-md: 12px;
    --radius-sm: 8px;
    --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

body.dark-theme {
    color-scheme: dark;
    --bg-main: #212121;
    --bg-sidebar: #181818;
    --bg-elevated: #2f2f2f;
    --bg-hover: #2a2a2a;
    --bg-active: #343434;
    --bg-input: #2f2f2f;
    --border-color: #3d3d3d;
    --border-subtle: #2a2a2a;
    --border-strong: #565656;
    --text-main: #ececec;
    --text-muted: #b4b4b4;
    --text-subtle: #8d8d8d;
    --accent: #10a37f;
    --accent-hover: #19b68f;
    --accent-soft: rgba(16, 163, 127, 0.18);
    --status-online: #10a37f;
    --user-bubble-bg: #303030;
    --user-bubble-text: #ececec;
    --assistant-text: #ececec;
    --reasoning-bg: #173a31;
    --reasoning-border: #287a64;
    --reasoning-text: #c4e4da;
    --code-bg: #171717;
    --code-text: #ececec;
    --code-header-bg: #262626;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 6px 20px rgba(0, 0, 0, 0.24);
    --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.42);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    min-height: 100%;
}

body {
    background: var(--bg-main);
    color: var(--text-main);
    font-family: var(--font-sans);
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    transition: background-color 160ms ease, color 160ms ease;
}

button,
textarea,
select {
    font: inherit;
}

button {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--text-main);
    outline-offset: 2px;
}

.app-container {
    display: flex;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
}

.hidden {
    display: none !important;
}
