:root {
    --bc-primary: #4f7a42;
    --bc-primary-dark: #3f6235;
    --bc-accent: #7dbb4f;
    --bc-earth: #955536;
    --bc-ink: #2f3432;
    --bc-muted: #6f7b73;
    --bc-bg: #f4f6f2;
    --bc-surface: #ffffff;
    --bc-surface-soft: #eef3ea;
    --bc-border: rgba(79, 122, 66, 0.18);
    --bc-shadow: 0 28px 70px rgba(47, 52, 50, 0.12);
}

* {
    box-sizing: border-box;
}

body.bc-entry {
    margin: 0;
    min-height: 100vh;
    background: radial-gradient(circle at 12% 18%, rgba(125, 187, 79, 0.2), transparent 42%),
        radial-gradient(circle at 84% 8%, rgba(149, 85, 54, 0.14), transparent 36%),
        linear-gradient(180deg, #f8faf7 0%, var(--bc-bg) 100%);
    color: var(--bc-ink);
    position: relative;
    overflow-x: hidden;
}

body.bc-entry::before,
body.bc-entry::after {
    content: '';
    position: fixed;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    filter: blur(10px);
}

body.bc-entry::before {
    top: -210px;
    left: -170px;
    background: rgba(79, 122, 66, 0.14);
}

body.bc-entry::after {
    bottom: -240px;
    right: -180px;
    background: rgba(149, 85, 54, 0.1);
}

.bc-shell {
    position: relative;
    z-index: 1;
}

.bc-panel {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.9);
    box-shadow: var(--bc-shadow);
    backdrop-filter: blur(7px);
}

.bc-hero {
    background: linear-gradient(145deg, rgba(79, 122, 66, 0.18) 0%, rgba(125, 187, 79, 0.13) 58%, rgba(255, 255, 255, 0.95) 100%);
}

.bc-logo {
    width: min(240px, 78%);
    height: auto;
}

.bc-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    border: 1px solid rgba(79, 122, 66, 0.2);
    padding: 0.3rem 0.8rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bc-primary-dark);
    background: rgba(255, 255, 255, 0.55);
}

.bc-label {
    display: block;
    margin-bottom: 0.42rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bc-ink);
}

.bc-input,
.bc-select {
    width: 100%;
    border: 1px solid rgba(79, 122, 66, 0.25);
    border-radius: 0.8rem;
    background: #fff;
    color: var(--bc-ink);
    padding: 0.68rem 0.9rem;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bc-input:focus,
.bc-select:focus {
    border-color: var(--bc-accent);
    box-shadow: 0 0 0 4px rgba(125, 187, 79, 0.2);
}

.bc-select:disabled,
.bc-input:disabled {
    background: #f4f6f2;
    color: #839084;
    cursor: not-allowed;
}

.bc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: none;
    border-radius: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}

.bc-btn:disabled {
    opacity: 0.58;
    cursor: not-allowed;
    transform: none;
}

.bc-btn-primary {
    background: var(--bc-primary);
    color: #fff;
    box-shadow: 0 12px 26px rgba(79, 122, 66, 0.28);
}

.bc-btn-primary:hover:not(:disabled) {
    background: var(--bc-primary-dark);
    transform: translateY(-1px);
}

.bc-btn-earth {
    background: var(--bc-earth);
    color: #fff;
    box-shadow: 0 12px 24px rgba(149, 85, 54, 0.24);
}

.bc-btn-earth:hover:not(:disabled) {
    background: #7e462b;
    transform: translateY(-1px);
}

.bc-btn-soft {
    background: #eef3ea;
    color: var(--bc-primary-dark);
    border: 1px solid rgba(79, 122, 66, 0.25);
}

.bc-btn-soft:hover:not(:disabled) {
    background: #e3ecdd;
}

.bc-link {
    color: var(--bc-primary);
    text-decoration: none;
    font-weight: 500;
}

.bc-link:hover {
    color: var(--bc-primary-dark);
    text-decoration: underline;
}

.bc-alert {
    border-radius: 0.82rem;
    padding: 0.9rem 1rem;
    font-size: 0.92rem;
}

.bc-alert-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.bc-alert-success {
    background: #effcf3;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.bc-kiosk-note {
    border: 1px solid var(--bc-border);
    background: rgba(238, 243, 234, 0.7);
    border-radius: 0.8rem;
    padding: 0.72rem 0.8rem;
    color: #49604d;
    font-size: 0.8rem;
}

.bc-stat {
    border: 1px solid var(--bc-border);
    border-radius: 0.82rem;
    padding: 0.85rem 1rem;
    background: rgba(255, 255, 255, 0.92);
}

.bc-stat-title {
    margin: 0;
    font-size: 0.73rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #5b6b5f;
}

.bc-stat-value {
    margin-top: 0.35rem;
    font-weight: 700;
    color: #203325;
}

@media (max-width: 767px) {
    body.bc-entry::before,
    body.bc-entry::after {
        width: 280px;
        height: 280px;
    }

    .bc-logo {
        width: min(210px, 84%);
    }
}
