:root {
    /* Titon palette */
    --ts-primary: #1F7036;
    --ts-primary-dark: #004225;
    --ts-primary-light: #2d8a4a;
    --ts-background: #F4F7F5;
    --ts-surface: #FFFFFF;
    --ts-border: #DDE7E0;
    --ts-text: #102018;
    --ts-text-muted: #5a6b60;
    --ts-warning: #F59E0B;
    --ts-danger: #dc3545;
    --ts-success: #1F7036;

    /* Spacing */
    --ts-space-xs: 0.25rem;
    --ts-space-sm: 0.5rem;
    --ts-space-md: 1rem;
    --ts-space-lg: 1.5rem;
    --ts-space-xl: 2rem;
    --ts-space-2xl: 3rem;

    /* Typography */
    --ts-font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --ts-font-size-sm: 0.875rem;
    --ts-font-size-base: 1rem;
    --ts-font-size-lg: 1.125rem;
    --ts-font-size-xl: 1.5rem;
    --ts-font-size-2xl: 2rem;

    /* Layout */
    --ts-sidebar-width: 260px;
    --ts-header-height: 56px;
    --ts-radius: 8px;
    --ts-radius-lg: 12px;
    --ts-shadow: 0 1px 3px rgba(16, 32, 24, 0.08);
    --ts-shadow-md: 0 4px 12px rgba(16, 32, 24, 0.1);

    /* Touch targets */
    --ts-touch-min: 44px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--ts-font-family);
    font-size: var(--ts-font-size-base);
    color: var(--ts-text);
    background-color: var(--ts-background);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

a {
    color: var(--ts-primary);
    text-decoration: none;
}

a:hover {
    color: var(--ts-primary-dark);
    text-decoration: underline;
}

:focus-visible {
    outline: 2px solid var(--ts-primary);
    outline-offset: 2px;
}
