:root {
    --navy: #13283C;
    --navy-dark: #0C1B2A;
    --navy-soft: #1C3954;
    --gold: #B89A5A;
    --gold-soft: #E8DCC0;
    --background: #F6F3EC;
    --white: #FFFFFF;
    --text: #263442;
    --muted: #6B747C;
    --border: #DDD7CA;
    --panel-border: #E4DED2;
    --success-bg: #E7F2EA;
    --success-text: #356244;
    --danger-bg: #F9E7E5;
    --danger-text: #8B2E29;
    --shadow: 0 10px 30px rgba(19, 40, 60, 0.06);
}

* { box-sizing: border-box; }

html { min-height: 100%; }

body {
    margin: 0;
    min-height: 100vh;
    font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--background);
    color: var(--text);
}

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

button,
input,
select,
textarea {
    font: inherit;
}

h1,
h2,
h3 {
    color: var(--navy);
}

h1 {
    margin: 0;
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.12;
}

h2 {
    margin: 3px 0 0;
    font-size: 20px;
}

/* Login */
.login-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 32px 20px;
}

.login-card {
    width: min(460px, 100%);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 18px 55px rgba(19, 40, 60, 0.12);
    overflow: hidden;
}

.brand-bar {
    background: var(--navy);
    color: var(--white);
    padding: 26px 30px 22px;
    border-bottom: 4px solid var(--gold);
}

.brand-title {
    margin: 0;
    font-size: 22px;
    letter-spacing: 0.02em;
}

.brand-subtitle {
    margin: 6px 0 0;
    color: #DCE4EA;
    font-size: 14px;
}

.login-content { padding: 30px; }

.form-group { margin-bottom: 18px; }

label {
    display: block;
    margin-bottom: 7px;
    font-weight: 600;
    font-size: 14px;
}

input[type="email"],
input[type="password"] {
    width: 100%;
    border: 1px solid #C8CED3;
    border-radius: 8px;
    padding: 12px 13px;
    background: #FFF;
}

input:focus {
    outline: 2px solid rgba(184, 154, 90, 0.28);
    border-color: var(--gold);
}

.button {
    appearance: none;
    border: 0;
    border-radius: 8px;
    padding: 11px 16px;
    font-weight: 700;
    cursor: pointer;
    background: var(--navy);
    color: var(--white);
}

.button:hover { background: var(--navy-dark); }
.button-block { width: 100%; }

.button-quiet {
    background: transparent;
    border: 1px solid #C7CFD6;
    color: var(--navy);
    padding: 8px 12px;
}

.button-quiet:hover {
    background: #F1F3F4;
}

.alert {
    padding: 12px 14px;
    border-radius: 8px;
    margin-bottom: 18px;
    font-size: 14px;
}

.alert-error {
    background: var(--danger-bg);
    color: var(--danger-text);
    border: 1px solid #E7C0BC;
}

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

/* Admin shell */
.admin-body {
    background: #F4F1EA;
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 252px minmax(0, 1fr);
}

.sidebar {
    min-height: 100vh;
    background: var(--navy);
    color: var(--white);
    border-right: 1px solid rgba(255,255,255,.08);
}

.sidebar-brand {
    min-height: 88px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.brand-mark {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid var(--gold);
    color: var(--gold);
    font-size: 22px;
    font-weight: 800;
}

.sidebar-brand strong {
    display: block;
    letter-spacing: .08em;
    font-size: 15px;
}

.sidebar-brand span {
    display: block;
    margin-top: 3px;
    color: #C5D0D9;
    font-size: 12px;
}

.sidebar-nav {
    padding: 14px 10px 28px;
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 42px;
    padding: 8px 11px;
    border-radius: 7px;
    text-decoration: none;
    color: #DCE4EA;
    font-size: 14px;
    margin: 2px 0;
}

.nav-item:hover {
    background: rgba(255,255,255,.07);
    color: var(--white);
}

.nav-item.is-active {
    background: rgba(184,154,90,.18);
    color: var(--white);
    box-shadow: inset 3px 0 0 var(--gold);
}

.nav-short {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 6px;
    color: #D1B97F;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
}

.admin-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.topbar {
    min-height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 30px;
    background: var(--white);
    border-bottom: 1px solid var(--panel-border);
}

.topbar-kicker,
.section-kicker,
.eyebrow {
    display: block;
    color: var(--gold);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.topbar-title {
    display: block;
    margin-top: 3px;
    color: var(--navy);
    font-size: 18px;
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: 16px;
}

.user-meta {
    text-align: right;
}

.user-meta strong,
.user-meta span {
    display: block;
}

.user-meta strong {
    color: var(--navy);
    font-size: 14px;
}

.user-meta span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
}

.admin-content {
    width: min(1460px, 100%);
    margin: 0 auto;
    padding: 30px;
    flex: 1;
}

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

.page-heading .eyebrow {
    margin: 0 0 7px;
}

.page-heading p:not(.eyebrow) {
    max-width: 760px;
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 15px;
}

.filter-pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.filter-pill {
    padding: 8px 11px;
    border: 1px solid var(--panel-border);
    border-radius: 999px;
    background: var(--white);
    color: var(--muted);
    font-size: 12px;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}

.metric-card {
    min-height: 138px;
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--panel-border);
    border-top: 3px solid var(--gold);
    border-radius: 10px;
    box-shadow: var(--shadow);
}

.metric-label {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.metric-card strong {
    display: block;
    margin: 12px 0 4px;
    color: var(--navy);
    font-size: 34px;
    line-height: 1;
}

.metric-card small {
    color: #818991;
    font-size: 12px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, .8fr);
    gap: 18px;
    margin-bottom: 18px;
}

.dashboard-grid-lower {
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr);
}

.panel {
    background: var(--white);
    border: 1px solid var(--panel-border);
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 22px;
}

.panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.text-link {
    color: var(--navy);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.text-link:hover { text-decoration: underline; }

.empty-state {
    min-height: 134px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 24px;
    border: 1px dashed #D8D2C7;
    border-radius: 8px;
    background: #FBFAF7;
}

.empty-state strong {
    color: var(--navy);
    font-size: 14px;
}

.empty-state span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

.attention-list {
    display: grid;
    gap: 8px;
}

.attention-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 13px;
    border: 1px solid #E7E1D6;
    border-radius: 7px;
    color: var(--text);
    text-decoration: none;
    background: #FCFBF8;
}

.attention-row:hover {
    border-color: #CBB98E;
}

.attention-row span {
    font-size: 13px;
}

.attention-row strong {
    min-width: 28px;
    text-align: right;
    color: var(--navy);
}

.status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.status-card {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 70px;
    padding: 12px;
    border: 1px solid #E8E2D8;
    border-radius: 8px;
}

.status-color {
    width: 8px;
    height: 38px;
    flex: 0 0 8px;
    border-radius: 999px;
    background: var(--status-color);
}

.status-card strong,
.status-card span {
    display: block;
}

.status-card strong {
    color: var(--navy);
    font-size: 20px;
}

.status-card div span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
}

.quick-actions {
    display: grid;
    gap: 9px;
}

.quick-actions a {
    display: block;
    padding: 12px 13px;
    border: 1px solid #E5DED1;
    border-radius: 7px;
    text-decoration: none;
    color: var(--navy);
    font-size: 13px;
    font-weight: 700;
}

.quick-actions a:hover {
    background: #FAF7F0;
    border-color: var(--gold-soft);
}

.table-wrap {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.data-table th,
.data-table td {
    padding: 11px 10px;
    text-align: left;
    border-bottom: 1px solid #ECE7DF;
}

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

.status-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 7px;
    border-radius: 50%;
    background: #4D8A61;
}

.module-placeholder {
    min-height: 280px;
    display: flex;
    align-items: center;
    gap: 22px;
}

.placeholder-mark {
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    display: grid;
    place-items: center;
    background: var(--navy);
    color: var(--gold);
    border-radius: 10px;
    font-size: 30px;
    font-weight: 800;
}

.status-badge {
    display: inline-block;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--success-bg);
    color: var(--success-text);
    font-size: 11px;
    font-weight: 800;
}

.module-placeholder h2 {
    margin: 13px 0 8px;
}

.module-placeholder p {
    max-width: 720px;
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.admin-footer {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 16px 24px 24px;
    color: #7A8187;
    font-size: 11px;
}

.error-page {
    max-width: 720px;
    margin: 80px auto;
    padding: 30px;
}

@media (max-width: 1180px) {
    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-grid,
    .dashboard-grid-lower {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .admin-shell {
        display: block;
    }

    .sidebar {
        min-height: 0;
    }

    .sidebar-brand {
        min-height: 72px;
    }

    .sidebar-nav {
        display: flex;
        overflow-x: auto;
        padding: 8px 10px 12px;
    }

    .nav-item {
        flex: 0 0 auto;
        margin-right: 4px;
    }

    .nav-short {
        display: none;
    }

    .topbar {
        min-height: 76px;
        padding: 12px 18px;
    }

    .admin-content {
        padding: 22px 18px;
    }
}

@media (max-width: 640px) {
    .login-content,
    .brand-bar {
        padding-left: 22px;
        padding-right: 22px;
    }

    .topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .topbar-user {
        width: 100%;
        justify-content: space-between;
    }

    .user-meta {
        text-align: left;
    }

    .page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .filter-pills {
        justify-content: flex-start;
    }

    .metric-grid,
    .status-grid {
        grid-template-columns: 1fr;
    }

    .module-placeholder {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Company module */
.alert-success {
    background: var(--success-bg);
    color: var(--success-text);
    border: 1px solid #C7DDCE;
}

.alert-warning {
    background: #FFF4DD;
    color: #76541F;
    border: 1px solid #E8D2A3;
}

.button-secondary {
    background: var(--white);
    color: var(--navy);
    border: 1px solid #C8CED3;
}

.button-secondary:hover {
    background: #F4F5F6;
}

.button-danger {
    background: #8B2E29;
}

.button-danger:hover {
    background: #6F221E;
}

.company-filter-panel {
    margin-bottom: 18px;
}

.company-filter-form {
    display: grid;
    grid-template-columns: minmax(300px, 2fr) repeat(3, minmax(150px, 1fr)) auto;
    gap: 12px;
    align-items: end;
}

.filter-search input,
.company-filter-form select,
.company-form input,
.company-form select,
.company-form textarea {
    width: 100%;
    border: 1px solid #C8CED3;
    border-radius: 8px;
    padding: 10px 11px;
    background: #FFF;
    color: var(--text);
}

.filter-search input:focus,
.company-filter-form select:focus,
.company-form input:focus,
.company-form select:focus,
.company-form textarea:focus {
    outline: 2px solid rgba(184, 154, 90, 0.24);
    border-color: var(--gold);
}

.company-filter-form label,
.company-form label {
    margin-bottom: 6px;
    font-size: 12px;
    color: var(--navy);
}

.filter-actions {
    display: flex;
    gap: 8px;
}

.company-name-link {
    display: block;
    color: var(--navy);
    font-weight: 800;
    text-decoration: none;
}

.company-name-link:hover {
    text-decoration: underline;
}

.company-subline,
.company-record-id {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.company-record-id {
    color: #A08B60;
}

.company-status-text {
    display: block;
    color: var(--navy);
    font-size: 12px;
}

.issue-badge {
    display: inline-block;
    margin-top: 5px;
    padding: 3px 6px;
    border-radius: 999px;
    background: #FFF1E5;
    color: #8A5523;
    font-size: 10px;
    font-weight: 800;
}

.status-muted {
    background: #ECEDEF;
    color: #626A72;
}

.row-action {
    text-align: right !important;
}

.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #ECE7DF;
    font-size: 12px;
}

.pagination a {
    font-weight: 700;
    text-decoration: none;
}

.company-form {
    display: grid;
    gap: 18px;
}

.form-section {
    margin: 0;
}

.form-grid {
    display: grid;
    gap: 16px;
}

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

.field-span-2 {
    grid-column: span 2;
}

.field-error {
    display: block;
    margin-top: 5px;
    color: var(--danger-text);
    font-size: 11px;
    font-weight: 700;
}

.form-footer-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-bottom: 10px;
}

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

.record-tabs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    margin-bottom: 18px;
    padding: 8px;
    border: 1px solid var(--panel-border);
    border-radius: 10px;
    background: var(--white);
    box-shadow: var(--shadow);
}

.record-tabs a {
    flex: 0 0 auto;
    padding: 8px 10px;
    border-radius: 7px;
    text-decoration: none;
    color: var(--navy);
    font-size: 12px;
    font-weight: 700;
}

.record-tabs a:hover {
    background: #F6F3EC;
}

.record-tabs span {
    display: inline-grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    margin-left: 4px;
    padding: 0 5px;
    border-radius: 999px;
    background: #EFEAE0;
    color: #6F6040;
    font-size: 9px;
}

.company-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 18px;
}

.company-section {
    margin-bottom: 18px;
}

.detail-list {
    margin: 0;
}

.detail-list > div {
    display: grid;
    grid-template-columns: minmax(120px, .8fr) minmax(0, 1.6fr);
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid #EEE9E0;
}

.detail-list > div:last-child {
    border-bottom: 0;
}

.detail-list dt {
    color: var(--muted);
    font-size: 12px;
}

.detail-list dd {
    margin: 0;
    color: var(--navy);
    font-size: 13px;
    font-weight: 600;
}

.note-box {
    color: var(--text);
    line-height: 1.6;
    font-size: 13px;
}

.inline-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.inline-status i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dot);
}

.timeline {
    display: grid;
}

.timeline-row {
    padding: 11px 0;
    border-bottom: 1px solid #EEE9E0;
}

.timeline-row:last-child {
    border-bottom: 0;
}

.timeline-row strong,
.timeline-row span {
    display: block;
}

.timeline-row strong {
    color: var(--navy);
    font-size: 13px;
}

.timeline-row span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.timeline-row p {
    margin: 7px 0 0;
    color: var(--text);
    font-size: 12px;
    line-height: 1.45;
}

.mini-empty {
    padding: 20px 0;
    color: var(--muted);
    font-size: 12px;
}

.danger-zone {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.danger-zone p {
    max-width: 720px;
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 12px;
}

@media (max-width: 1180px) {
    .company-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .filter-search {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .company-filter-form,
    .form-grid-2,
    .company-detail-grid {
        grid-template-columns: 1fr;
    }

    .filter-search,
    .field-span-2 {
        grid-column: span 1;
    }

    .company-heading-actions,
    .form-footer-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .danger-zone {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Contact module */
.contact-filter-panel {
    margin-bottom: 18px;
}

.contact-filter-form {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(160px, 220px) auto;
    gap: 12px;
    align-items: end;
}

.contact-filter-form input,
.contact-filter-form select {
    width: 100%;
    border: 1px solid #C8CED3;
    border-radius: 8px;
    padding: 10px 11px;
    background: #FFF;
    color: var(--text);
}

.contact-filter-form input:focus,
.contact-filter-form select:focus {
    outline: 2px solid rgba(184, 154, 90, 0.24);
    border-color: var(--gold);
}

.contact-filter-form label {
    margin-bottom: 6px;
    font-size: 12px;
    color: var(--navy);
}

.contact-person-name {
    color: var(--navy);
    font-size: 13px;
}

.contact-inline-badge {
    margin-top: 5px;
}

.contact-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.flag-badge {
    display: inline-block;
    padding: 4px 7px;
    border-radius: 999px;
    background: #E7EEF4;
    color: #35536D;
    font-size: 9px;
    font-weight: 800;
    white-space: nowrap;
}

.flag-gold {
    background: #F4EBD8;
    color: #755F2B;
}

.fixed-company-box {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 14px 16px;
    border: 1px solid #D9D2C6;
    border-left: 4px solid var(--gold);
    border-radius: 8px;
    background: #FBFAF7;
}

.fixed-company-box strong {
    color: var(--navy);
    font-size: 15px;
}

.fixed-company-box span {
    color: var(--muted);
    font-size: 11px;
}

.field-help {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 10px;
}

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

.check-card {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 0;
    padding: 14px;
    border: 1px solid #E1DBD0;
    border-radius: 9px;
    background: #FCFBF8;
    cursor: pointer;
}

.check-card input {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: var(--navy);
}

.check-card strong,
.check-card small {
    display: block;
}

.check-card strong {
    color: var(--navy);
    font-size: 13px;
}

.check-card small {
    margin-top: 4px;
    color: var(--muted);
    line-height: 1.4;
    font-size: 10px;
}

.contact-status-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 18px;
}

.contact-status-panel p {
    max-width: 720px;
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 12px;
}

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

.empty-state-button {
    margin-top: 14px;
    text-decoration: none;
}

@media (max-width: 900px) {
    .contact-filter-form {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 640px) {
    .contact-status-panel {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Campaign module */
.campaign-filter-panel {
    margin-bottom: 18px;
}

.campaign-filter-form {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(150px, 220px) auto;
    gap: 12px;
    align-items: end;
}

.campaign-filter-form input,
.campaign-filter-form select,
.campaign-company-search input,
.result-rule-fields input,
.result-rule-fields select {
    width: 100%;
    border: 1px solid #C8CED3;
    border-radius: 8px;
    padding: 10px 11px;
    background: #FFF;
    color: var(--text);
}

.campaign-filter-form label,
.campaign-company-search label,
.result-rule-fields label {
    margin-bottom: 6px;
    font-size: 12px;
    color: var(--navy);
}

.campaign-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.campaign-card {
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--panel-border);
    border-top: 3px solid var(--gold);
    border-radius: 10px;
    box-shadow: var(--shadow);
}

.campaign-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.campaign-card h2 {
    margin: 10px 0 0;
    font-size: 20px;
}

.campaign-card > p {
    min-height: 58px;
    margin: 12px 0 16px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.campaign-kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 13px 0;
    border-top: 1px solid #ECE7DF;
    border-bottom: 1px solid #ECE7DF;
}

.campaign-kpis div {
    text-align: center;
}

.campaign-kpis strong,
.campaign-kpis span {
    display: block;
}

.campaign-kpis strong {
    color: var(--navy);
    font-size: 20px;
}

.campaign-kpis span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.campaign-period {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 0;
    color: var(--muted);
    font-size: 11px;
}

.campaign-period strong {
    color: var(--navy);
}

.campaign-card-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.form-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.campaign-active-card {
    margin-top: 18px;
}

.campaign-tabs a.is-active {
    background: var(--navy);
    color: var(--white);
}

.campaign-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 18px;
    margin-bottom: 18px;
}

.campaign-section {
    margin-bottom: 18px;
}

.campaign-quick-actions {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.campaign-two-column {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr);
    gap: 18px;
}

.inline-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.select-list,
.caller-assignment-list {
    display: grid;
    gap: 7px;
    margin-top: 16px;
}

.select-list {
    max-height: 520px;
    overflow-y: auto;
    padding-right: 4px;
}

.select-list-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 11px;
    border: 1px solid #E4DED3;
    border-radius: 8px;
    background: #FCFBF8;
    cursor: pointer;
}

.select-list-row input {
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    accent-color: var(--navy);
}

.select-list-row strong,
.select-list-row small {
    display: block;
}

.select-list-row strong {
    color: var(--navy);
    font-size: 12px;
}

.select-list-row small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
}

.campaign-save-button {
    margin-top: 16px;
}

.link-button {
    padding: 0;
    border: 0;
    background: none;
    color: #8B2E29;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.link-button:hover {
    text-decoration: underline;
}

.stacked-fields {
    display: grid;
    gap: 12px;
}

.objection-grid {
    display: grid;
    gap: 14px;
}

.objection-row {
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
    gap: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #ECE7DF;
}

.objection-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.priority-list {
    display: grid;
    gap: 9px;
    margin: 0;
    padding-left: 24px;
}

.priority-list li {
    padding-left: 5px;
    color: var(--navy);
}

.priority-list strong,
.priority-list span {
    display: block;
}

.priority-list strong {
    font-size: 13px;
}

.priority-list span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
}

.info-note {
    margin: 16px 0 0;
    padding: 11px 13px;
    border-left: 3px solid var(--gold);
    background: #FAF7F0;
    color: #666057;
    font-size: 11px;
    line-height: 1.5;
}

.result-rule-list {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.result-rule-card {
    display: grid;
    grid-template-columns: minmax(170px, .7fr) minmax(320px, 1.4fr) minmax(260px, .9fr);
    gap: 16px;
    align-items: center;
    padding: 14px;
    border: 1px solid #E4DED3;
    border-radius: 9px;
    background: #FCFBF8;
}

.result-enable {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0;
}

.result-enable input {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: var(--navy);
}

.result-enable strong,
.result-enable small {
    display: block;
}

.result-enable strong {
    color: var(--navy);
    font-size: 13px;
}

.result-enable small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
}

.result-rule-options {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 12px;
}

.result-rule-options label {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: var(--text);
    font-size: 10px;
    font-weight: 600;
}

.result-rule-options input {
    accent-color: var(--navy);
}

.result-rule-fields {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 9px;
}

.campaign-results-save {
    margin-top: 16px;
}

.queue-priority {
    display: inline-block;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    white-space: nowrap;
    background: #EEF0F2;
    color: #56606A;
}

.queue-priority-1 {
    background: #F4EBD8;
    color: #755F2B;
}

.queue-priority-2 {
    background: #F8E6E3;
    color: #84352F;
}

.queue-priority-3 {
    background: #E7EEF4;
    color: #35536D;
}

.queue-priority-4 {
    background: #EAE7F2;
    color: #594B72;
}

.queue-priority-5 {
    background: #E8F1EA;
    color: #3F6549;
}

.campaign-stat-note {
    margin-top: 22px;
}

@media (max-width: 1280px) {
    .campaign-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .result-rule-card {
        grid-template-columns: 1fr;
    }

    .campaign-quick-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .campaign-overview-grid,
    .campaign-two-column {
        grid-template-columns: 1fr;
    }

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

    .objection-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .campaign-filter-form,
    .campaign-card-grid,
    .campaign-quick-actions,
    .result-rule-fields {
        grid-template-columns: 1fr;
    }

    .inline-search {
        grid-template-columns: 1fr;
    }
}


/* v0.6 Telefonisten-Arbeitsplatz */
.caller-rate-field{max-width:260px;margin-top:16px}.caller-settings-grid{margin-top:16px}
.caller-body{background:#F4F1EA}.caller-shell{min-height:100vh;display:grid;grid-template-columns:218px minmax(0,1fr)}
.caller-sidebar{min-height:100vh;display:flex;flex-direction:column;background:var(--navy);color:#fff}
.caller-brand{min-height:82px;display:flex;align-items:center;gap:11px;padding:17px;border-bottom:1px solid rgba(255,255,255,.12)}
.caller-brand strong,.caller-brand span{display:block}.caller-brand strong{letter-spacing:.08em;font-size:14px}.caller-brand span{margin-top:3px;color:#C5D0D9;font-size:11px}
.caller-nav{display:grid;gap:4px;padding:14px 10px}.caller-nav a{padding:11px 12px;border-radius:7px;color:#DCE4EA;text-decoration:none;font-size:13px;font-weight:700}
.caller-nav a:hover,.caller-nav a.is-active{color:#fff;background:rgba(255,255,255,.08)}.caller-nav a.is-active{box-shadow:inset 3px 0 0 var(--gold)}
.caller-logout{margin-top:auto;padding:12px}.caller-logout button{width:100%;padding:10px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:transparent;color:#DCE4EA;cursor:pointer}
.caller-main{min-width:0;display:flex;min-height:100vh;flex-direction:column}.caller-topbar{min-height:82px;display:flex;align-items:center;justify-content:space-between;padding:15px 26px;background:#fff;border-bottom:1px solid var(--panel-border)}
.caller-content{width:min(1500px,100%);margin:0 auto;padding:24px 26px;flex:1}.caller-footer{padding-top:10px}
.caller-work-status{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:18px;padding:22px;border:1px solid var(--panel-border);border-left:4px solid var(--gold);border-radius:10px;background:#fff;box-shadow:var(--shadow)}
.caller-work-status h1{margin-top:5px;font-size:28px}.caller-work-status p{margin:7px 0 0;color:var(--muted);font-size:12px}.work-action-row{display:flex;flex-wrap:wrap;gap:8px}.work-action-row form{margin:0}
.caller-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:18px}.campaign-picker{display:grid;gap:9px}
.campaign-choice{display:flex;gap:11px;margin:0;padding:13px;border:1px solid #E4DED3;border-radius:9px;background:#FCFBF8;cursor:pointer}.campaign-choice input{width:18px;height:18px;margin-top:2px;accent-color:var(--navy)}
.campaign-choice strong,.campaign-choice small,.campaign-choice em{display:block}.campaign-choice strong{color:var(--navy);font-size:14px}.campaign-choice small{margin-top:3px;color:var(--gold);font-size:10px;font-weight:700}.campaign-choice em{margin-top:4px;color:var(--muted);font-size:11px;font-style:normal}
.caller-start-button{justify-self:start;margin-top:5px}.current-company-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:18px;border:1px solid #D9D2C6;border-left:4px solid var(--gold);border-radius:9px;background:#FBFAF7}
.current-company-card>span,.current-company-card>small{color:var(--muted);font-size:11px}.current-company-card>strong{color:var(--navy);font-size:19px}.current-company-card .button{margin-top:8px}.big-number{color:var(--navy);font-size:54px;font-weight:800;line-height:1}
.no-company-panel{max-width:760px;margin:50px auto;padding:34px;text-align:center}.no-company-panel p{color:var(--muted);line-height:1.6}.no-company-panel .work-action-row{justify-content:center;margin-top:20px}
.next-callback-box{display:grid;gap:5px;margin:24px auto 0;padding:16px;max-width:420px;border:1px solid #E0D6BF;border-radius:9px;background:#FAF7F0}.next-callback-box span,.next-callback-box small{color:var(--muted);font-size:11px}.next-callback-box strong{color:var(--navy);font-size:17px}
.call-context-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:12px;overflow:hidden;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel-border)}
.call-context-bar div{padding:9px 12px;background:#fff}.call-context-bar span,.call-context-bar strong{display:block}.call-context-bar span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.call-context-bar strong{margin-top:2px;color:var(--navy);font-size:12px}
.caller-company-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:26px;margin-bottom:14px;padding:20px 22px;border:1px solid var(--panel-border);border-top:3px solid var(--gold);border-radius:10px;background:#fff;box-shadow:var(--shadow)}
.caller-company-hero h1{margin-top:5px;font-size:32px}.caller-company-hero p{margin:4px 0 0;color:var(--muted)}.caller-company-contact{min-width:280px;display:grid;gap:4px;text-align:right}.caller-company-contact strong{color:var(--navy)}.caller-company-contact span,.caller-company-contact a{color:var(--muted);font-size:12px}.caller-company-contact a{font-weight:700}
.caller-work-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.75fr);gap:14px;align-items:start}.caller-work-left,.caller-work-right{display:grid;gap:14px}.caller-work-right{position:sticky;top:14px}.caller-panel,.result-panel{padding:18px}
.caller-contact-list{display:grid;gap:7px}.caller-contact-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:flex-start;margin:0;padding:11px;border:1px solid #E5DFD4;border-radius:8px;background:#FCFBF8;cursor:pointer}
.caller-contact-card>input{margin-top:3px;accent-color:var(--navy)}.caller-contact-card strong,.caller-contact-card small,.caller-contact-card em{display:block}.caller-contact-card strong{color:var(--navy);font-size:13px}.caller-contact-card small{margin-top:2px;color:var(--muted);font-size:10px}.caller-contact-card em{margin-top:4px;color:#4F5C66;font-size:10px;font-style:normal}
.caller-contact-card .contact-flags{justify-content:flex-end}.caller-contact-card .contact-flags b{padding:3px 5px;border-radius:999px;background:#F0E9D9;color:#705D31;font-size:8px}
.inline-contact-form{margin-top:14px;padding-top:14px;border-top:1px solid #ECE7DF}.inline-contact-form input,.inline-contact-form select,.inline-contact-form textarea,.result-panel input,.result-panel select,.result-panel textarea,.data-issue-panel select,.data-issue-panel textarea{width:100%;border:1px solid #C8CED3;border-radius:7px;padding:9px 10px;background:#fff}
.inline-contact-checks{margin:12px 0}.guide-block{padding:10px 0;border-bottom:1px solid #ECE7DF}.guide-block>span{color:var(--gold);font-size:9px;font-weight:800;text-transform:uppercase}.guide-block p,.guide-block ol{margin:6px 0 0;font-size:12px}.guide-block ol{padding-left:20px}
.guide-details{padding:10px 0;border-bottom:1px solid #ECE7DF}.guide-details summary{color:var(--navy);font-size:12px;font-weight:800;cursor:pointer}.guide-details>p{font-size:12px}.objection-answer{padding:9px 0}.objection-answer strong{color:var(--navy);font-size:12px}.objection-answer p{margin:3px 0 0;color:var(--muted);font-size:11px}
.result-panel .field{margin-bottom:12px}.result-special-box{margin:10px 0 14px;padding:13px;border:1px solid #E0D5BC;border-radius:8px;background:#FAF7F0}.result-special-box>strong{display:block;margin-bottom:10px;color:var(--navy);font-size:13px}.bookings-link{display:inline-block;margin-bottom:12px;text-decoration:none;text-align:center}.is-disabled{opacity:.45;pointer-events:none}
.radio-inline{display:flex;gap:18px}.radio-inline label{display:flex;align-items:center;gap:5px;margin:0}.radio-inline input{width:auto}.save-next-button{width:100%;padding:13px}.result-global-error{margin:-4px 0 8px}.data-issue-panel{padding:12px 16px}.data-issue-toggle{width:100%;padding:7px;border:0;background:transparent;color:#8B2E29;font-weight:800;font-size:11px;cursor:pointer}.data-issue-panel form{padding-top:10px}.is-hidden{display:none!important}.time-status-text{font-size:22px!important;text-transform:capitalize}
@media(max-width:1180px){.caller-work-grid,.caller-dashboard-grid{grid-template-columns:1fr}.caller-work-right{position:static}}
@media(max-width:900px){.caller-shell{display:block}.caller-sidebar{min-height:auto}.caller-nav{display:flex;overflow-x:auto}.caller-logout{display:none}.caller-topbar{min-height:72px}.caller-content{padding:18px}.caller-company-hero,.caller-work-status{flex-direction:column}.caller-company-contact{min-width:0;text-align:left}}
@media(max-width:650px){.call-context-bar,.caller-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.caller-contact-card{grid-template-columns:auto minmax(0,1fr)}.caller-contact-card .contact-flags{grid-column:2;justify-content:flex-start}}
