
:root {
    --paper: #FAF8F3;
    --surface: #FFFFFF;
    --ink: #1C1F22;
    --muted: #6B6560;
    --line: #DEDACD;
    --teal: #0E5C68;
    --teal-strong: #0A454F;
    --amber: #C97A2B;
    --danger: #B23A2F;
    --radius: 16px;
    --shadow: 0 1px 2px rgba(28,31,34,.04), 0 12px 32px -10px rgba(28,31,34,.14);
}

[data-bs-theme="dark"] {
    --paper: #14171A;
    --surface: #1D2124;
    --ink: #ECE9E2;
    --muted: #9A958C;
    --line: #2B2F33;
    --teal: #4FB8C4;
    --teal-strong: #7FD1DA;
    --amber: #E0954A;
    --danger: #E06657;
    --shadow: 0 1px 2px rgba(0,0,0,.35), 0 12px 32px -10px rgba(0,0,0,.55);
}

* {
    box-sizing: border-box;
}

html, body {
    height: 100%;
}

body {
    background: var(--paper);
    color: var(--ink);
    font-family: 'Inter',sans-serif;
    transition: background .2s ease, color .2s ease;
}

h1, h2, .brand-name {
    font-family: 'Space Grotesk',sans-serif;
}

.mono {
    font-family: 'Courier Prime',monospace;
}

a {
    text-decoration: none;
}

.text-muted-c {
    color: var(--muted) !important;
}

.auth-shell {
    min-height: 100vh;
    display: flex;
}

/* LEFT BRAND PANEL */
.brand-panel {
    flex: 1;
    position: relative;
    overflow: hidden;
    background: linear-gradient(155deg,var(--teal),var(--teal-strong));
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 2.75rem;
}

    .brand-panel::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: radial-gradient(rgba(255,255,255,.16) 1.4px, transparent 1.4px);
        background-size: 22px 22px;
        opacity: .5;
    }

    .brand-panel > * {
        position: relative;
        z-index: 1;
    }

.brand-top {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.brand-mark-lg {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
}

.brand-name {
    font-weight: 700;
    font-size: 1.15rem;
}

.brand-copy h1 {
    font-size: 2.1rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: .85rem;
}

.brand-copy p {
    opacity: .9;
    max-width: 380px;
}

/* floating receipt mock */
.mini-receipt {
    width: 230px;
    background: #fdfdfb;
    color: #1a1a1a;
    font-family: 'Courier Prime',monospace;
    padding: 1rem .9rem 1.3rem;
    box-shadow: 0 20px 45px -15px rgba(0,0,0,.45);
    border-radius: 2px;
    transform: rotate(3deg);
    clip-path: polygon(0% 0%,100% 0%,100% 96%,94% 100%,88% 96%,82% 100%,76% 96%,70% 100%,64% 96%,58% 100%,52% 96%,46% 100%,40% 96%,34% 100%,28% 96%,22% 100%,16% 96%,10% 100%,4% 96%,0% 100%);
}

    .mini-receipt .brand-word {
        font-family: 'Space Grotesk',sans-serif;
        font-weight: 700;
        font-size: 1.05rem;
        text-align: center;
    }

    .mini-receipt .dashed {
        border-top: 1px dashed #999;
        margin: .4rem 0;
    }

    .mini-receipt .row-line {
        display: flex;
        justify-content: space-between;
        font-size: .6rem;
        margin: .08rem 0;
    }

    .mini-receipt .total-row {
        display: flex;
        justify-content: space-between;
        font-size: .85rem;
        font-weight: 700;
        margin-top: .2rem;
    }

.brand-foot {
    font-size: .8rem;
    opacity: .8;
}

/* RIGHT FORM PANEL */
.form-panel {
    width: 480px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    background: var(--paper);
}

@media (max-width:991.98px) {
    .brand-panel {
        display: none;
    }

    .form-panel {
        width: 100%;
    }
}

.form-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2.25rem 0;
}

.theme-btn {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
}

.form-center {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 2.25rem;
}

.form-wrap {
    width: 100%;
    max-width: 340px;
}

.auth-toggle {
    display: flex;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 1.75rem;
}

    .auth-toggle button {
        flex: 1;
        border: none;
        background: transparent;
        padding: .5rem 0;
        border-radius: 9px;
        font-weight: 600;
        font-size: .87rem;
        color: var(--muted);
    }

        .auth-toggle button.active {
            background: var(--teal);
            color: #fff;
        }

.form-label {
    font-size: .82rem;
    font-weight: 600;
    color: var(--muted);
}

.form-control {
    background: var(--surface);
    border-color: var(--line);
    color: var(--ink);
    padding: .6rem .8rem;
}

    .form-control:focus {
        background: var(--surface);
        color: var(--ink);
        border-color: var(--teal);
        box-shadow: 0 0 0 .2rem rgba(14,92,104,.15);
    }

.input-group-text {
    background: var(--surface);
    border-color: var(--line);
    color: var(--muted);
}

.pw-toggle {
    cursor: pointer;
}

.btn-teal {
    background: var(--teal);
    border-color: var(--teal);
    color: #fff;
}

    .btn-teal:hover {
        background: var(--teal-strong);
        border-color: var(--teal-strong);
        color: #fff;
    }

.divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: var(--muted);
    font-size: .8rem;
    margin: 1.35rem 0;
}

    .divider::before, .divider::after {
        content: '';
        flex: 1;
        height: 1px;
        background: var(--line);
    }

.btn-social {
    background: var(--surface);
    border: 1px solid var(--line);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    font-weight: 500;
    font-size: .88rem;
}

    .btn-social:hover {
        border-color: var(--teal);
        color: var(--ink);
    }

/*.pane {
    display: none;
}*/

    .pane.active {
        display: block;
    }

.strength-bar {
    height: 4px;
    border-radius: 2px;
    background: var(--line);
    overflow: hidden;
    margin-top: .4rem;
}

    .strength-bar span {
        display: block;
        height: 100%;
        width: 0%;
        background: var(--danger);
        transition: width .2s ease, background .2s ease;
    }


