:root {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color-scheme: light dark;
    background: #f7f8fc;
}

html,
body,
#app {
    min-height: 100%;
    margin: 0;
}

body { background: #f7f8fc; }

button,
textarea,
input { box-sizing: border-box; }

.cs-legal {
    width: min(100% - 2rem, 48rem);
    margin: 0 auto;
    padding: 2rem 0;
    color: #171a2b;
    line-height: 1.6;
}

.cs-legal h1 { line-height: 1.15; }
.cs-legal a { color: #4c55c8; }
.cs-profile { max-width: 760px; }
.cs-profile-card { display: grid; gap: .8rem; background: #fff; border: 1px solid #dde1ec; border-radius: 18px; padding: 1.4rem; }
.cs-profile-card label { font-weight: 700; }
.cs-profile-card input[type="tel"] { min-height: 48px; border: 1px solid #cbd1de; border-radius: 10px; padding: .7rem .85rem; font: inherit; }
.cs-profile-check { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .65rem; font-weight: 400 !important; line-height: 1.45; }
.cs-profile-check input { width: 1.1rem; height: 1.1rem; margin-top: .2rem; }
.cs-profile-status { border-radius: 10px; background: #eef5ff; padding: .8rem; }
.cs-profile-fine-print { font-size: .9rem; color: #596176; }
.cs-profile-phone-status { margin: .15rem 0; }
.cs-profile-consent { display: grid; gap: .9rem; border: 1px solid #d6dbea; border-radius: 14px; padding: 1rem; }
.cs-profile-consent legend { padding: 0 .35rem; font-weight: 800; }
.cs-profile-choice { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .75rem; font-weight: 400 !important; }
.cs-profile-choice input { width: 1.1rem; height: 1.1rem; margin-top: .2rem; }
.cs-profile-choice span { display: grid; gap: .15rem; }
.cs-profile-choice small { color: #596176; font-weight: 400; line-height: 1.45; }
.cs-sms-disclosure { border-left: 4px solid #5661eb; border-radius: 10px; background: #f2f3ff; padding: 1rem; }
.cs-sms-disclosure p { margin: .55rem 0 0; }
.cs-profile-verification { display: grid; gap: .9rem; border: 1px solid #cfd5ff; border-radius: 14px; background: #f7f8ff; padding: 1.15rem; }
.cs-profile-verification h3 { margin: .2rem 0 .3rem; font-size: 1.25rem; }
.cs-profile-verification p { margin: 0; color: #4d566d; }
.cs-profile-verification-label { color: #4b56dc; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cs-profile-verification .cs-verification-code { width: 100%; min-height: 54px; box-sizing: border-box; border: 2px solid #aeb6d5; border-radius: 10px; padding: .7rem 1rem; background: #fff; font: 700 1.35rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .3em; }
.cs-profile-verification .cs-verification-code:focus { border-color: #4b56dc; outline: 3px solid rgba(75, 86, 220, .18); }
.cs-profile-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.cs-profile-card .cs-button { min-height: 46px; border: 0; border-radius: 10px; padding: .7rem 1.1rem; font: inherit; font-weight: 800; cursor: pointer; }
.cs-profile-card .cs-button-primary { background: #4b56dc; color: #fff; }
.cs-profile-card .cs-button-secondary { border: 1px solid #c5cae0; background: #fff; color: #252d4a; }
.cs-profile-card .cs-button:disabled { cursor: wait; opacity: .65; }
@media (max-width: 560px) { .cs-profile-actions { display: grid; } .cs-profile-actions .cs-button { width: 100%; } }

.cs-danger-button {
    min-height: 3rem;
    border: 0;
    border-radius: .75rem;
    padding: 0 1rem;
    background: #b42318;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

.cs-danger-button:disabled { cursor: not-allowed; opacity: .55; }

.cs-account-actions { display: flex; align-items: center; gap: 1rem; }
.cs-admin-page { max-width: 1400px; margin: 0 auto; padding: 2rem; color: #172033; }
.cs-admin-header, .cs-admin-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.cs-admin-header { margin-bottom: 1.5rem; }
.cs-admin-header h1, .cs-admin-card h2 { margin: 0 0 .35rem; }
.cs-admin-header p { margin: 0; color: #5f6879; }
.cs-admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; margin: 1rem 0; }
.cs-admin-card { background: #fff; border: 1px solid #dfe3ec; border-radius: 16px; padding: 1.25rem; box-shadow: 0 8px 24px rgb(35 45 80 / 6%); }
.cs-admin-link { color: inherit; text-decoration: none; }
.cs-admin-link:hover { border-color: #5965e8; transform: translateY(-1px); }
.cs-admin-card label { display: grid; gap: .35rem; margin: .8rem 0; font-weight: 600; }
.cs-admin-card input, .cs-admin-card select { min-height: 42px; border: 1px solid #cbd1de; border-radius: 8px; padding: .55rem .7rem; font: inherit; }
.cs-admin-check { display: flex !important; grid-template-columns: auto 1fr; align-items: center; font-weight: 500 !important; }
.cs-admin-check input { min-height: auto; }
.cs-admin-notice { padding: .8rem 1rem; color: #126437; background: #e9f8ef; border-radius: 8px; }
.cs-admin-hint { margin: -.25rem 0 .8rem; color: #687184; font-size: .9rem; line-height: 1.45; }
.cs-admin-user-actions { display: grid; gap: 1rem; }
.cs-admin-section-copy { margin: 0 0 1rem; color: #5f6879; line-height: 1.5; }
.cs-admin-security-card { border-left: 4px solid #5965e8; }
.cs-admin-danger-zone { border-color: #efb5b5; background: #fffafa; }
.cs-admin-danger-zone h2 { color: #9d1c1c; }
.cs-admin-table-wrap { overflow-x: auto; }
.cs-admin-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.cs-admin-table th, .cs-admin-table td { padding: .7rem; border-bottom: 1px solid #e4e7ee; text-align: left; vertical-align: top; }
.cs-admin-table th { color: #596174; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.cs-admin-table small { display: block; margin-top: .25rem; color: #687184; overflow-wrap: anywhere; }
.cs-admin-row-error { background: #fff3f3; }
.cs-admin-metrics { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: .8rem; margin: 1rem 0; }
.cs-admin-metrics div { display: grid; gap: .2rem; padding: 1rem; background: #fff; border: 1px solid #dfe3ec; border-radius: 12px; }
.cs-admin-metrics strong { font-size: 1.6rem; }
.cs-admin-metrics span { color: #687184; }
.cs-admin-toolbar { display: flex; align-items: end; gap: 1rem; margin-bottom: 1rem; }
.cs-admin-toolbar label { flex: 1; margin: 0; }
.cs-admin-report-summary { margin: .5rem 0 1rem; color: #4d5668; }
.cs-admin-number { font-variant-numeric: tabular-nums; font-weight: 700; }
.cs-modal-backdrop { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1rem; background: rgb(10 14 30 / 72%); backdrop-filter: blur(3px); }
.cs-security-modal { width: min(680px, 100%); max-height: calc(100vh - 2rem); overflow-y: auto; padding: 1.5rem; border: 1px solid #d9def0; border-radius: 18px; background: #fff; color: #172033; box-shadow: 0 24px 70px rgb(5 10 30 / 35%); }
.cs-security-modal h2 { margin: .45rem 0 1rem; }
.cs-security-modal p { line-height: 1.55; }
.cs-security-icon { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border-radius: 12px; background: #eef0ff; font-size: 1.35rem; }
.cs-security-choice { display: flex; align-items: center; gap: .6rem; margin: 1rem 0; font-weight: 700; }
.cs-security-choice input { width: 1.1rem; height: 1.1rem; }
.cs-security-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.cs-security-actions a { color: #4652c7; font-weight: 700; }
.cs-diagnostics-table { min-width: 1100px; }
@media (max-width: 700px) { .cs-admin-page { padding: 1rem; } .cs-admin-header, .cs-admin-toolbar, .cs-security-actions { align-items: stretch; flex-direction: column; } .cs-admin-metrics { grid-template-columns: repeat(2, 1fr); } .cs-security-actions .cs-button { width: 100%; } }

@media (prefers-color-scheme: dark) {
    :root,
    body { background: #10121c; }
    .cs-legal { color: #f5f6ff; }
    .cs-legal a { color: #aeb5ff; }
}
