/*
 * Breakpoints (CSS variables can't be used in media queries, so keep these in sync by hand):
 *   1024px  laptops / tablets landscape
 *    760px  tablets portrait / phones (stacked layout)
 *    400px  very small phones
 */

/* ── Variables ── */
:root {
    --color-text: #111;
    --color-border: #c9ced3;
    --color-focus: #ffb703;
    --color-surface: #fbfcfe;
    --teal: #27799d;
    --paper: #fff;
    --pink: #fb6584;

    --panel-1: #7b1fa2;
    --panel-2: #8e24aa;
    --field-bg: #efeaf2;
    --field-border: #d8cfe0;
    --btn: #4fc3e8;
    --btn-hover: #3bb3da;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    background: #ffffff;
    color: var(--color-text);
    font-family: "Helvetica Neue", Arial, "Segoe UI", sans-serif;
    height: 100%;
    overflow-x: hidden;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 2px;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}