@font-face {
    font-family:Montserrat;
    font-style:normal;
    font-weight:400;
    font-display:swap;
    src:url('../vendor/montserrat/files/montserrat-latin-ext-400-normal.woff2') format('woff2');
    unicode-range:U+0100-02FF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
    font-family:Montserrat;
    font-style:normal;
    font-weight:400;
    font-display:swap;
    src:url('../vendor/montserrat/files/montserrat-latin-400-normal.woff2') format('woff2');
}

@font-face {
    font-family:Montserrat;
    font-style:normal;
    font-weight:700;
    font-display:swap;
    src:url('../vendor/montserrat/files/montserrat-latin-ext-700-normal.woff2') format('woff2');
    unicode-range:U+0100-02FF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
    font-family:Montserrat;
    font-style:normal;
    font-weight:700;
    font-display:swap;
    src:url('../vendor/montserrat/files/montserrat-latin-700-normal.woff2') format('woff2');
}

@font-face {
    font-family:Montserrat;
    font-style:normal;
    font-weight:900;
    font-display:swap;
    src:url('../vendor/montserrat/files/montserrat-latin-ext-900-normal.woff2') format('woff2');
    unicode-range:U+0100-02FF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
    font-family:Montserrat;
    font-style:normal;
    font-weight:900;
    font-display:swap;
    src:url('../vendor/montserrat/files/montserrat-latin-900-normal.woff2') format('woff2');
}

:root {
    --black:#000;
    --white:#fff;
    --grey:#9b9da0;
    --gold:#c19140;
    --bg:#000;
    --panel:#0e0e0f;
    --surface:#19191b;
    --text:#fff;
    --muted:#acacae;
    --border:#303032;
    --gold-text:#d5ae6b;
    --input:#161618;
    --bs-body-font-family:Montserrat,Arial,sans-serif;
    --bs-body-bg:var(--bg);
    --bs-body-color:var(--text);
    color-scheme:dark;
}

:root[data-theme=light] {
    --bg:#fff;
    --panel:#fff;
    --surface:#f7f7f7;
    --text:#151515;
    --muted:#656568;
    --border:#dedee0;
    --gold-text:#805b21;
    --input:#fff;
    color-scheme:light;
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    font-family:Montserrat,Arial,sans-serif;
    font-size:14px;
    background:var(--bg);
    color:var(--text);
    -webkit-font-smoothing:antialiased;
}

a {
    color:var(--gold-text);
    text-decoration:none;
}

a:hover {
    color:var(--text);
}

button,input {
    font:inherit;
}

button,a,input {
    touch-action:manipulation;
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible {
    outline:3px solid var(--gold);
    outline-offset:4px;
}

h1,h2,p {
    margin-top:0;
}

h1 {
    font-size:clamp(34px,3.05vw,46px);
    line-height:1.16;
    font-weight:900;
    letter-spacing:-1.8px;
    margin-bottom:20px;
}

h2 {
    font-weight:700;
}

i {
    flex-shrink:0;
}

.skip-link {
    position:fixed;
    left:16px;
    top:-100px;
    z-index:20;
    background:var(--gold);
    color:#000;
    padding:12px;
}

.skip-link:focus {
    top:16px;
}

.auth-shell {
    min-height:100svh;
    display:grid;
    grid-template-columns:1fr 1fr;
}

.brand-panel {
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:100svh;
    padding:42px 52px 34px;
    overflow:hidden;
    background:var(--bg);
    border-right:1px solid var(--border);
}

.wordmark {
    color:var(--text);
    font-size:25px;
    letter-spacing:5px;
    font-weight:900;
    line-height:1;
    display:inline-block;
    align-self:flex-start;
}

.brand-dot {
    color:var(--gold);
    letter-spacing:0;
}

.brand-visual {
    margin:auto;
    width:100%;
    max-width:580px;
}

.eyebrow {
    font-size:10px;
    font-weight:700;
    letter-spacing:2px;
    display:flex;
    align-items:center;
    gap:12px;
}

.brand-visual>.eyebrow {
    justify-content:center;
    color:var(--muted);
}

.short-rule {
    width:26px;
    height:1px;
    background:var(--gold);
}

.atlas-art {
    display:block;
    width:100%;
    max-width:490px;
    height:auto;
    margin:-7px auto -20px;
    object-fit:contain;
}

.brand-caption {
    text-align:center;
    position:relative;
}

.brand-caption h2 {
    font-size:clamp(25px,2.5vw,36px);
    letter-spacing:-1px;
    line-height:1.25;
    margin-bottom:18px;
}

.brand-caption p {
    font-size:12px;
    line-height:1.9;
    color:var(--muted);
    margin:0;
}

.brand-bottom {
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:8px;
    letter-spacing:1.8px;
    color:var(--muted);
    gap:12px;
}

.brand-bottom>span:last-child {
    display:flex;
    gap:10px;
    align-items:center;
}

.bottom-line {
    display:inline-block;
    width:42px;
    height:1px;
    background:var(--border);
}

.form-panel {
    background:var(--panel);
    padding:40px 48px 30px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-width:0;
}

.form-top,.form-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:var(--muted);
    font-size:10px;
    gap:14px;
}

.status-dot {
    width:6px;
    height:6px;
    display:inline-block;
    background:var(--gold);
    border-radius:50%;
    margin-right:7px;
    vertical-align:middle;
}

.language {
    display:flex;
    gap:8px;
    align-items:center;
}

.form-content {
    width:100%;
    max-width:390px;
    margin:auto;
    padding:40px 0;
}

.section-icon {
    width:44px;
    height:44px;
    border:1px solid var(--border);
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:25px;
    color:var(--gold-text);
    font-size:16px;
    background:var(--surface);
}

.form-eyebrow {
    color:var(--gold-text);
    margin-bottom:16px;
}

.intro {
    font-size:12px;
    color:var(--muted);
    line-height:1.9;
    margin-bottom:28px;
}

.auth-form {
    margin-top:30px;
}

.form-label,legend {
    font-size:11px;
    font-weight:700;
    color:var(--text);
    margin-bottom:9px;
}

.input-wrap {
    position:relative;
    margin-bottom:22px;
}

.input-wrap>i {
    position:absolute;
    top:19px;
    left:16px;
    color:var(--muted);
    font-size:13px;
    pointer-events:none;
}

.form-control {
    border:1px solid var(--border);
    border-radius:7px;
    background:var(--input);
    color:var(--text);
    min-height:52px;
    padding:14px 15px;
    font-size:12px;
    box-shadow:none;
}

.input-wrap .form-control {
    padding-left:43px;
}

.form-control::placeholder {
    color:var(--muted);
    opacity:.85;
}

.form-control:focus {
    color:var(--text);
    background:var(--input);
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgb(193 145 64 / 14%);
}

.form-control.password-input {
    padding-right:50px;
}

.login-recovery {
    display:block;
    text-align:right;
    margin-top:-8px;
    font-size:10px;
    font-weight:700;
}

.password-toggle {
    position:absolute;
    right:5px;
    top:5px;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    background:none;
    border:0;
    color:var(--muted);
}

.btn {
    font-size:12px;
    font-weight:700;
    padding:15px 22px;
    border-radius:7px;
}

.btn-primary {
    --bs-btn-bg:var(--gold);
    --bs-btn-color:#000;
    --bs-btn-border-color:var(--gold);
    --bs-btn-hover-bg:#d4a65c;
    --bs-btn-hover-border-color:#d4a65c;
    --bs-btn-hover-color:#000;
    --bs-btn-active-bg:#d4a65c;
    --bs-btn-active-color:#000;
    --bs-btn-active-border-color:#d4a65c;
}

.submit-button {
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-height:52px;
    margin-top:26px;
}

.submit-button i {
    font-size:13px;
}

.security-note {
    margin-top:32px;
    padding-top:24px;
    border-top:1px solid var(--border);
    display:flex;
    gap:12px;
    align-items:flex-start;
}

.security-note>i {
    color:var(--gold-text);
    font-size:15px;
    margin-top:3px;
}

.security-note p {
    font-size:10px;
    line-height:1.8;
    margin:0;
}

.security-note p span {
    color:var(--muted);
    font-size:10px;
}

.form-footer {
    font-size:9px;
}

.footer-version {
    opacity:.7;
}

.demo-help {
    margin-top:20px;
    font-size:10px;
    color:var(--muted);
}

.demo-help p {
    line-height:1.8;
    margin-top:10px;
}

code {
    color:var(--gold-text);
    overflow-wrap:anywhere;
}

.back-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:11px;
    margin-bottom:28px;
}

.notice {
    padding:14px 16px;
    border:1px solid var(--border);
    border-left:3px solid var(--gold);
    border-radius:6px;
    font-size:12px;
    line-height:1.7;
    background:var(--surface);
    margin-bottom:20px;
}

.notice-error {
    border-left-color:#cc6058;
}

.choice-card {
    display:flex;
    gap:13px;
    align-items:center;
    border:1px solid var(--border);
    border-radius:8px;
    padding:17px 15px;
    margin:0 0 10px;
    cursor:pointer;
}

.choice-card:has(input:checked) {
    border-color:var(--gold);
    background:rgb(193 145 64 / 7%);
}

.choice-card>i {
    width:18px;
    text-align:center;
    color:var(--gold-text);
    font-size:18px;
}

.choice-card input {
    accent-color:var(--gold);
    flex-shrink:0;
    width:16px;
    height:16px;
}

.choice-card strong {
    font-size:11px;
    display:block;
    margin-bottom:5px;
}

.choice-card small {
    display:block;
    font-size:10px;
    line-height:1.7;
    color:var(--muted);
}

fieldset {
    margin-top:24px;
}

legend {
    float:none;
    width:auto;
}

.step {
    margin-left:auto;
    color:var(--muted);
    font-weight:400;
}

.qr-box {
    background:#fff;
    border-radius:8px;
    width:200px;
    padding:12px;
    margin:0 auto 16px;
    line-height:0;
}

.qr-box img {
    width:100%;
    height:auto;
}

.manual-key {
    font-size:10px;
    margin:14px 0;
    line-height:1.8;
    color:var(--muted);
}

.manual-key code {
    font-size:12px;
}

.code-input {
    font-size:24px;
    text-align:center;
    letter-spacing:12px;
    padding-left:25px;
    font-weight:700;
}

.demo-code {
    font-size:10px;
    text-align:center;
}

.demo-code strong {
    display:block;
    font-size:25px;
    letter-spacing:7px;
    padding:8px;
    color:var(--text);
}

.demo-code span {
    color:var(--muted);
}

.cancel-form {
    margin-top:22px;
    text-align:center;
}

.text-button {
    border:0;
    background:none;
    color:var(--muted);
    padding:8px 0;
    font-size:11px;
}

.text-button:hover {
    color:var(--text);
}

.workspace {
    min-height:100svh;
    display:flex;
    flex-direction:column;
    background:var(--panel);
}

.workspace-header {
    display:flex;
    align-items:center;
    gap:60px;
    border-bottom:1px solid var(--border);
    padding:28px 5%;
    background:var(--bg);
}

.workspace-header .wordmark {
    align-self:center;
}

.workspace-header nav {
    display:flex;
    gap:30px;
}

.workspace-header nav a {
    color:var(--muted);
    font-size:12px;
}

.workspace-header nav a[aria-current] {
    color:var(--gold-text);
}

.workspace-header nav i {
    margin-right:7px;
}

.workspace-header form {
    margin-left:auto;
}

.workspace-content {
    width:90%;
    max-width:1250px;
    margin:30px auto 80px;
    flex:1;
}

.demo-banner {
    font-size:10px;
    color:var(--muted);
    margin-bottom:40px;
}

.page-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:30px;
}

.page-heading h1 {
    font-size:34px;
    letter-spacing:-1px;
}

.page-heading .intro {
    margin:0;
}

.btn-outline-secondary {
    color:var(--text);
    border-color:var(--border);
}

.btn-outline-secondary:hover {
    background:var(--surface);
    color:var(--text);
    border-color:var(--gold);
}

.table-panel,.settings-card {
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--bg);
    overflow:hidden;
}

.table-heading {
    padding:24px;
    display:flex;
    justify-content:space-between;
    border-bottom:1px solid var(--border);
    gap:16px;
}

.table-heading span {
    font-size:11px;
    color:var(--muted);
}

.profile-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
}

.settings-card {
    padding:30px;
}

.settings-card h2 {
    font-size:22px;
    letter-spacing:-.6px;
}

.settings-card .intro {
    margin-bottom:20px;
}

.account-info {
    font-size:12px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
    margin:28px 0 35px;
}

.account-info dt {
    font-weight:400;
    color:var(--muted);
}

.account-info dd {
    margin:0;
    overflow-wrap:anywhere;
}

.workspace-footer {
    padding:25px 5%;
    border-top:1px solid var(--border);
    font-size:10px;
    color:var(--muted);
    display:flex;
    justify-content:space-between;
}

.tabulator {
    background:var(--bg);
    color:var(--text);
    border:0;
    font-size:12px;
}

.tabulator .tabulator-header,.tabulator .tabulator-header .tabulator-col {
    background:var(--surface);
    color:var(--muted);
    border-color:var(--border);
}

.tabulator .tabulator-row {
    background:var(--bg);
    color:var(--text);
    border-color:var(--border);
}

.tabulator .tabulator-row.tabulator-row-even {
    background:var(--panel);
}

.tabulator .tabulator-row .tabulator-cell {
    padding:18px 14px;
    border-color:var(--border);
}

.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
    padding:16px 14px;
}

.tabulator .tabulator-row.tabulator-selectable:hover {
    background:var(--surface);
}

.tabulator .tabulator-tableholder .tabulator-table {
    background:var(--bg);
    color:var(--text);
}

.tabulator .tabulator-row .tabulator-cell .tabulator-data-tree-control {
    background:var(--surface);
    border-color:var(--grey);
}

@media(min-width:1600px) {
    .brand-panel {
        padding:48px 68px 38px;
    }
    .form-panel {
        padding:46px 64px 36px;
    }
    .atlas-art {
        max-width:540px;
    }
    .brand-visual {
        max-width:600px;
    }
    .form-content {
        max-width:410px;
    }
}

@media(max-width:1100px) {
    .brand-panel {
        padding:32px;
    }
    .form-panel {
        padding:32px;
    }
    .brand-visual {
        margin:auto;
    }
    .atlas-art {
        margin:10px auto 0;
    }
    .brand-caption h2 {
        font-size:28px;
    }
    .form-content {
        margin:auto;
    }
    .brand-bottom {
        font-size:7px;
    }
    .form-footer {
        font-size:8px;
    }
}

@media(max-width:760px) {
    .auth-shell {
        display:block;
    }
    .brand-panel {
        min-height:auto;
        padding:24px;
        border-right:0;
        border-bottom:1px solid var(--border);
    }
    .brand-visual,.brand-bottom {
        display:none;
    }
    .wordmark {
        font-size:22px;
    }
    .form-panel {
        padding:24px;
        min-height:calc(100svh - 71px);
    }
    .form-content {
        max-width:420px;
        margin:auto;
    }
    .form-top {
        font-size:9px;
    }
    .form-footer {
        font-size:8px;
    }
    h1 {
        font-size:38px;
    }
    .form-control {
        font-size:16px;
    }
    .intro {
        font-size:12px;
    }
    .section-icon {
        margin-bottom:22px;
    }
    .workspace-header {
        gap:25px;
        flex-wrap:wrap;
        padding:24px;
    }
    .workspace-header nav {
        gap:20px;
        order:3;
        width:100%;
    }
    .workspace-header form {
        margin-left:auto;
    }
    .workspace-content {
        width:auto;
        margin:24px 20px 40px;
    }
    .page-heading {
        align-items:flex-start;
        flex-direction:column;
    }
    .page-heading h1 {
        font-size:30px;
    }
    .profile-grid {
        grid-template-columns:1fr;
    }
    .settings-card {
        padding:22px;
    }
    .account-info {
        grid-template-columns:1fr;
        gap:5px;
    }
    .account-info dd {
        margin-bottom:12px;
    }
    .table-heading {
        padding:20px;
        font-size:12px;
    }
    .table-heading span {
        font-size:10px;
    }
    .demo-banner {
        line-height:1.8;
    }
    .code-input {
        font-size:24px;
    }
}

@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        transition:none!important;
    }
}

/* A centered, single-column alternative using the same form and artwork. */
:root[data-layout=single] .auth-shell {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:28px 24px;
    background:var(--bg);
}

:root[data-layout=single] .brand-panel {
    min-height:0;
    width:100%;
    max-width:390px;
    padding:0;
    border:0;
    overflow:visible;
}

:root[data-layout=single] .brand-panel>.wordmark,
:root[data-layout=single] .brand-caption {
    display:none;
}

:root[data-layout=single] .brand-visual {
    display:block;
    margin:0;
    max-width:none;
}

:root[data-layout=single] .atlas-art {
    width:clamp(340px,22svh,200px);
    margin:0 auto 12px;
}

:root[data-layout=single] .form-panel {
    width:100%;
    max-width:390px;
    min-height:0;
    padding:0;
    background:transparent;
}

:root[data-layout=single] .form-top {
    justify-content:center;
}

:root[data-layout=single] .form-content {
    margin:24px auto;
    padding:0;
}

:root[data-layout=single] .form-content h1 {
    font-size:30px;
    letter-spacing:-1px;
}

:root[data-layout=single] .auth-form {
    margin-top:24px;
}
