* {
    box-sizing:border-box;
}

:root {
    --bg:#f3f6fa;
    --card:#ffffff;
    --text:#172033;
    --muted:#68758a;
    --line:#dfe6ef;
    --nav:#101827;
    --blue:#2563eb;
    --blue-dark:#1d4ed8;
    --green:#15803d;
    --green-bg:#dcfce7;
    --red:#b91c1c;
    --red-bg:#fee2e2;
    --orange:#c2410c;
    --orange-bg:#ffedd5;
}

html {
    min-height:100%;
}

body {
    margin:0;
    min-height:100vh;
    background:var(--bg);
    color:var(--text);
    font-family:
        Arial,
        Helvetica,
        sans-serif;
    line-height:1.5;
}

a {
    color:var(--blue);
}

.site-header {
    background:var(--nav);
    color:#fff;
    box-shadow:
        0 3px 16px
        rgba(0,0,0,.16);
}

.site-header-inner {
    width:min(1240px,94%);
    min-height:68px;
    margin:auto;
    display:flex;
    align-items:center;
    gap:24px;
}

.site-brand {
    color:#fff;
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:10px;
    font-size:18px;
    font-weight:800;
    white-space:nowrap;
}

.brand-mark {
    width:36px;
    height:36px;
    border-radius:9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#2563eb;
    color:#fff;
    font-size:13px;
}

.main-nav {
    display:flex;
    align-items:center;
    gap:4px;
    flex:1;
}

.main-nav a {
    color:#cbd5e1;
    text-decoration:none;
    padding:10px 12px;
    border-radius:8px;
    font-size:14px;
    font-weight:700;
}

.main-nav a:hover,
.main-nav a.active {
    color:#fff;
    background:
        rgba(255,255,255,.10);
}

.member-menu {
    display:flex;
    align-items:center;
    gap:14px;
    font-size:13px;
}

.member-menu a {
    color:#fff;
    text-decoration:none;
    font-weight:700;
}

.page-shell {
    width:min(1240px,94%);
    margin:30px auto 55px;
}

.page-heading {
    margin-bottom:24px;
}

.page-heading-row {
    display:flex;
    gap:18px;
    align-items:flex-start;
    justify-content:space-between;
}

.page-heading h1 {
    margin:0 0 6px;
    font-size:
        clamp(
            28px,
            4vw,
            40px
        );
    line-height:1.15;
}

.page-heading p {
    margin:0;
    color:var(--muted);
}

.card {
    background:var(--card);
    border:1px solid var(--line);
    border-radius:15px;
    padding:23px;
    margin-bottom:22px;
    box-shadow:
        0 3px 14px
        rgba(15,23,42,.045);
}

.card h2,
.card h3 {
    margin-top:0;
}

.grid {
    display:grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(200px,1fr)
        );
    gap:16px;
}

.stat-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    padding:20px;
}

.stat-label {
    color:var(--muted);
    font-size:13px;
    font-weight:700;
    margin-bottom:7px;
}

.stat-value {
    font-size:31px;
    font-weight:900;
    letter-spacing:-1px;
}

.stat-sub {
    color:var(--muted);
    font-size:12px;
    margin-top:3px;
}

.campaign-grid {
    display:grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(310px,1fr)
        );
    gap:18px;
}

.campaign-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
    box-shadow:
        0 3px 14px
        rgba(15,23,42,.045);
}

.campaign-card-body {
    padding:21px;
}

.campaign-card h3 {
    margin:0 0 6px;
    font-size:20px;
}

.campaign-meta {
    color:var(--muted);
    font-size:13px;
}

.campaign-card-stats {
    display:grid;
    grid-template-columns:
        repeat(3,1fr);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.campaign-mini-stat {
    padding:14px 10px;
    text-align:center;
}

.campaign-mini-stat +
.campaign-mini-stat {
    border-left:1px solid var(--line);
}

.campaign-mini-stat strong {
    display:block;
    font-size:19px;
}

.campaign-mini-stat span {
    color:var(--muted);
    font-size:11px;
}

.campaign-card-actions {
    padding:15px 20px 20px;
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.status {
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:5px 10px;
    font-size:11px;
    font-weight:800;
}

.status.active {
    color:#166534;
    background:var(--green-bg);
}

.status.paused {
    color:#991b1b;
    background:var(--red-bg);
}

.status.hosted {
    color:#1d4ed8;
    background:#dbeafe;
}

.button,
button {
    appearance:none;
    border:0;
    border-radius:9px;
    background:var(--blue);
    color:#fff;
    padding:11px 16px;
    font-size:14px;
    font-weight:800;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    cursor:pointer;
}

.button:hover,
button:hover {
    background:var(--blue-dark);
}

.button.secondary,
button.secondary {
    background:#475569;
}

.button.green,
button.green {
    background:var(--green);
}

.button.orange,
button.orange {
    background:var(--orange);
}

.button.danger,
button.danger {
    background:var(--red);
}

.button.light,
button.light {
    color:#334155;
    background:#e9eef5;
}

.button.small,
button.small {
    padding:8px 11px;
    font-size:12px;
}

.actions {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

label {
    display:block;
    font-weight:800;
    margin:16px 0 7px;
}

input[type=text],
input[type=email],
input[type=password],
input[type=number],
input[type=url],
select,
textarea {
    width:100%;
    border:1px solid #c8d2df;
    border-radius:9px;
    padding:11px 12px;
    font-size:15px;
    background:#fff;
    color:var(--text);
}

input:focus,
select:focus,
textarea:focus {
    outline:0;
    border-color:#4f86ea;
    box-shadow:
        0 0 0 3px
        rgba(37,99,235,.10);
}

.form-grid {
    display:grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );
    gap:0 20px;
}

.form-help {
    color:var(--muted);
    font-size:12px;
    margin:5px 0 0;
}

.checkbox-line {
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:18px;
    font-weight:700;
}

.checkbox-line input {
    width:auto;
}

.notice {
    border-radius:10px;
    padding:13px 15px;
    margin-bottom:18px;
    font-weight:700;
}

.notice.success {
    color:#166534;
    background:var(--green-bg);
}

.notice.error {
    color:#991b1b;
    background:var(--red-bg);
}

.notice.info {
    color:#1e40af;
    background:#dbeafe;
}

.muted {
    color:var(--muted);
}

.small {
    font-size:12px;
}

.urlbox {
    background:#f7f9fc;
    border:1px solid var(--line);
    border-radius:9px;
    padding:11px 12px;
    overflow-wrap:anywhere;
    font-family:
        Consolas,
        monospace;
    font-size:13px;
}

.campaign-tabs {
    display:flex;
    gap:5px;
    flex-wrap:wrap;
    margin-bottom:20px;
    background:#e7edf5;
    padding:5px;
    border-radius:11px;
    width:max-content;
    max-width:100%;
}

.campaign-tabs a {
    color:#475569;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    padding:9px 14px;
    border-radius:8px;
}

.campaign-tabs a.active {
    background:#fff;
    color:#1e3a8a;
    box-shadow:
        0 1px 5px
        rgba(0,0,0,.08);
}

table {
    width:100%;
    border-collapse:collapse;
}

th,
td {
    text-align:left;
    padding:11px 9px;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}

th {
    color:var(--muted);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.4px;
}

.editor-toolbar {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    padding:9px;
    border:1px solid #cbd5e1;
    border-bottom:0;
    border-radius:10px 10px 0 0;
    background:#f8fafc;
}

.editor-toolbar button {
    padding:7px 10px;
    background:#334155;
    font-size:12px;
}

.wysiwyg {
    min-height:380px;
    padding:20px;
    border:1px solid #cbd5e1;
    border-radius:0 0 10px 10px;
    background:#fff;
    line-height:1.65;
    outline:none;
}

.wysiwyg:focus {
    border-color:#2563eb;
}

.danger-zone {
    border-color:#fecaca;
}

.danger-zone h2 {
    color:#991b1b;
}

.site-footer {
    color:#64748b;
    text-align:center;
    padding:25px;
    font-size:12px;
}

.empty-state {
    text-align:center;
    padding:48px 20px;
}

.empty-state h2 {
    margin-bottom:8px;
}

.auth-wrap {
    width:min(520px,92%);
    margin:65px auto;
}

.topbar {
    background:var(--nav);
    color:#fff;
    padding:17px 20px;
}

.topbar-inner {
    width:min(1180px,94%);
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.brand {
    font-size:20px;
    font-weight:800;
}

.topbar a {
    color:#fff;
    text-decoration:none;
}

.container {
    width:min(1180px,94%);
    margin:28px auto;
}

@media(max-width:800px) {

    .site-header-inner {
        flex-wrap:wrap;
        padding:13px 0;
    }

    .site-brand {
        flex:1;
    }

    .main-nav {
        order:3;
        width:100%;
        overflow:auto;
    }

    .member-menu span {
        display:none;
    }

    .page-heading-row {
        display:block;
    }

    .page-heading-row .actions {
        margin-top:15px;
    }

    .form-grid {
        grid-template-columns:1fr;
    }

    .campaign-grid {
        grid-template-columns:1fr;
    }
}

@media(max-width:620px) {

    .page-shell {
        width:92%;
        margin-top:22px;
    }

    .card {
        padding:18px;
    }

    table,
    thead,
    tbody,
    tr,
    th,
    td {
        display:block;
    }

    thead {
        display:none;
    }

    tr {
        padding:10px 0;
        border-bottom:1px solid var(--line);
    }

    td {
        border:0;
        padding:5px 0;
    }
}

/* TPG LAUNCH POLISH */

.auth-page {
    min-height:100vh;
    display:flex;
    flex-direction:column;
    background:
        radial-gradient(
            circle at top,
            #dbeafe 0,
            #f3f6fa 45%,
            #f3f6fa 100%
        );
}

.auth-header {
    width:min(1050px,92%);
    margin:25px auto 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.auth-brand {
    display:flex;
    align-items:center;
    gap:10px;
    color:#172033;
    text-decoration:none;
    font-size:19px;
    font-weight:900;
}

.auth-brand .brand-mark {
    color:#fff;
}

.auth-main {
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    padding:35px 0;
}

.auth-card {
    width:min(520px,92%);
    background:#fff;
    border:1px solid #dfe6ef;
    border-radius:18px;
    padding:30px;
    box-shadow:
        0 20px 60px
        rgba(15,23,42,.10);
}

.auth-card h1 {
    margin:0 0 8px;
    font-size:32px;
}

.auth-card .lead {
    color:#68758a;
    margin:0 0 23px;
}

.auth-card button {
    width:100%;
    min-height:46px;
}

.auth-links {
    text-align:center;
    margin-top:20px;
    color:#68758a;
    font-size:13px;
}

.auth-footer {
    width:min(1050px,92%);
    margin:0 auto;
    padding:18px 0 28px;
    text-align:center;
    color:#68758a;
    font-size:12px;
}

.auth-footer a {
    margin:0 7px;
}

.terms-check {
    display:flex;
    gap:9px;
    align-items:flex-start;
    margin:18px 0;
    font-size:13px;
    color:#475569;
}

.terms-check input {
    margin-top:3px;
}

.help-steps {
    display:grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(230px,1fr)
        );
    gap:15px;
}

.help-step {
    border:1px solid #dfe6ef;
    border-radius:13px;
    padding:19px;
    background:#fff;
}

.help-number {
    width:34px;
    height:34px;
    border-radius:50%;
    background:#2563eb;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    margin-bottom:12px;
}

.legal-shell {
    width:min(900px,92%);
    margin:35px auto 60px;
}

.legal-header {
    margin-bottom:22px;
}

.legal-header a {
    text-decoration:none;
    font-weight:800;
}

.legal-card {
    background:#fff;
    border:1px solid #dfe6ef;
    border-radius:16px;
    padding:
        clamp(
            22px,
            5vw,
            40px
        );
    box-shadow:
        0 5px 24px
        rgba(15,23,42,.05);
}

.legal-card h1 {
    margin-top:0;
}

.legal-card h2 {
    margin-top:30px;
}

.legal-card p,
.legal-card li {
    line-height:1.7;
}

.footer-links {
    margin-top:7px;
}

.footer-links a {
    margin:0 7px;
    font-size:12px;
}

@media(max-width:600px) {

    .auth-header {
        margin-top:16px;
    }

    .auth-card {
        padding:23px 19px;
    }

    .auth-card h1 {
        font-size:28px;
    }
}


/* TPG_WYSIWYG_FORMAT_VISUALS_V3 START */

/*
 * Explicit visual formatting inside the WYSIWYG editor.
 */

.wysiwyg strong,
.wysiwyg b {
    font-weight:700;
}

.wysiwyg em,
.wysiwyg i {
    font-style:italic;
}

.wysiwyg u {
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:2px;
}

.wysiwyg ul {
    display:block;
    list-style-type:disc;
    list-style-position:outside;
    margin:12px 0;
    padding-left:34px;
}

.wysiwyg ol {
    display:block;
    list-style-type:decimal;
    list-style-position:outside;
    margin:12px 0;
    padding-left:34px;
}

.wysiwyg li {
    display:list-item;
    margin:4px 0;
    padding:0;
}

/* TPG_WYSIWYG_FORMAT_VISUALS_V3 END */

