/* ============================================
   Meridian CRM - Nexus Growth Advisory
   Design System
   ============================================ */

:root {
    --nexus-teal: #005F63;
    --nexus-teal-dark: #00474A;
    --nexus-teal-light: #007A80;
    --nexus-orange: #FF6B00;
    --nexus-orange-light: #FF8533;
    --nexus-orange-dark: #CC5500;
    --nexus-dark: #1A1A2E;
    --nexus-gray: #6B7280;
    --nexus-gray-light: #9CA3AF;
    --nexus-bg: #F5F5F7;
    --nexus-bg-alt: #EBEBED;
    --nexus-light: #FFFFFF;
    --nexus-border: #E5E7EB;
    --nexus-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
    --nexus-shadow-lg: 0 10px 25px rgba(0,0,0,0.1), 0 4px 10px rgba(0,0,0,0.04);
    --nexus-radius: 12px;
    --nexus-radius-sm: 8px;
    --nav-height: 56px;
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", Roboto, sans-serif;
    background: var(--nexus-bg);
    color: var(--nexus-dark);
    font-size: 14px;
    line-height: 1.6;
}

a { color: var(--nexus-teal); text-decoration: none; }
a:hover { color: var(--nexus-teal-light); }

/* ============ Login Page ============ */
.login-page {
    background: linear-gradient(135deg, #1A1A2E 0%, #0D3B3E 50%, #005F63 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-container {
    width: 100%;
    max-width: 420px;
    padding: 20px;
}

.login-card {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius);
    padding: 40px 32px;
    box-shadow: var(--nexus-shadow-lg);
}

.login-header {
    text-align: center;
    margin-bottom: 32px;
}

.login-logo {
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.5px;
}

.logo-nexus { color: var(--nexus-dark); }
.logo-growth { color: var(--nexus-teal); }
.logo-crm { color: var(--nexus-orange); font-size: 16px; font-weight: 500; margin-left: 4px; }

.login-subtitle {
    color: var(--nexus-gray);
    font-size: 14px;
    margin-top: 8px;
}

.login-form .form-group { margin-bottom: 20px; }

.login-form label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--nexus-gray);
    margin-bottom: 6px;
}

.login-form input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--nexus-border);
    border-radius: var(--nexus-radius-sm);
    font-size: 15px;
    transition: border-color 0.2s;
}

.login-form input:focus {
    outline: none;
    border-color: var(--nexus-teal);
    box-shadow: 0 0 0 3px rgba(0,95,99,0.1);
}

.btn-login {
    width: 100%;
    padding: 14px;
    background: var(--nexus-orange);
    color: white;
    border: none;
    border-radius: var(--nexus-radius-sm);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.btn-login:hover { background: var(--nexus-orange-dark); }

.login-footer {
    text-align: center;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--nexus-border);
}

.login-footer p {
    color: var(--nexus-gray);
    font-size: 13px;
}

.login-footer .copyright {
    font-size: 11px;
    color: var(--nexus-gray-light);
    margin-top: 4px;
}

/* ============ Navbar ============ */
.navbar {
    height: var(--nav-height);
    background: var(--nexus-light);
    border-bottom: 1px solid var(--nexus-border);
    display: flex;
    align-items: center;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.nav-brand a {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.3px;
}

.nav-brand .logo-crm {
    font-size: 12px;
    color: var(--nexus-orange);
    margin-left: 4px;
    font-weight: 500;
}

.nav-links {
    display: flex;
    gap: 4px;
    margin-left: 40px;
}

.nav-links a {
    padding: 8px 16px;
    color: var(--nexus-gray);
    font-size: 14px;
    font-weight: 500;
    border-radius: var(--nexus-radius-sm);
    transition: all 0.2s;
}

.nav-links a:hover {
    background: var(--nexus-bg);
    color: var(--nexus-dark);
}

.nav-links a.active {
    background: var(--nexus-teal);
    color: white;
}

.nav-user {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 16px;
}

.user-name {
    font-size: 13px;
    color: var(--nexus-gray);
    font-weight: 500;
}

.btn-logout {
    padding: 6px 14px;
    font-size: 13px;
    color: var(--nexus-gray);
    border: 1px solid var(--nexus-border);
    border-radius: var(--nexus-radius-sm);
    cursor: pointer;
    transition: all 0.2s;
}

.btn-logout:hover {
    border-color: var(--nexus-orange);
    color: var(--nexus-orange);
}

/* ============ Main Content ============ */
.main-content {
    padding: 24px;
    max-width: 1400px;
    margin: 0 auto;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 24px;
}

.page-header h1 {
    font-size: 24px;
    font-weight: 700;
    color: var(--nexus-dark);
}

.page-subtitle {
    font-size: 13px;
    color: var(--nexus-gray);
    margin-top: 4px;
}

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

/* ============ Buttons ============ */
.btn {
    padding: 8px 20px;
    border: none;
    border-radius: var(--nexus-radius-sm);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.btn-primary {
    background: var(--nexus-orange);
    color: white;
}
.btn-primary:hover { background: var(--nexus-orange-dark); }

.btn-secondary {
    background: var(--nexus-bg-alt);
    color: var(--nexus-dark);
}
.btn-secondary:hover { background: var(--nexus-border); }

.btn-icon {
    background: none;
    border: 1px solid var(--nexus-border);
    border-radius: 6px;
    padding: 4px 8px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.2s;
}
.btn-icon:hover { border-color: var(--nexus-teal); color: var(--nexus-teal); }
.btn-icon.btn-danger:hover { border-color: #EF4444; color: #EF4444; }

.btn-close {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: var(--nexus-gray);
    padding: 4px 8px;
}
.btn-close:hover { color: var(--nexus-dark); }

/* ============ Flash Messages ============ */
.flash-container {
    margin-bottom: 16px;
}

.flash {
    padding: 12px 20px;
    border-radius: var(--nexus-radius-sm);
    font-size: 14px;
    margin-bottom: 8px;
}

.flash-success { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }
.flash-error { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.flash-info { background: #EFF6FF; color: #1E40AF; border: 1px solid #BFDBFE; }

/* ============ KPI Cards ============ */
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.kpi-card {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius);
    padding: 20px;
    box-shadow: var(--nexus-shadow);
    border-left: 4px solid var(--nexus-teal);
}

.kpi-card.kpi-orange { border-left-color: var(--nexus-orange); }
.kpi-card.kpi-teal { border-left-color: var(--nexus-teal-light); }
.kpi-card.kpi-dark { border-left-color: var(--nexus-dark); }

.kpi-label {
    font-size: 13px;
    color: var(--nexus-gray);
    font-weight: 500;
}

.kpi-value {
    font-size: 28px;
    font-weight: 700;
    color: var(--nexus-dark);
    margin-top: 4px;
    font-family: "SF Mono", "Fira Code", monospace;
    letter-spacing: -0.5px;
}

.kpi-sub {
    font-size: 12px;
    color: var(--nexus-gray-light);
    margin-top: 2px;
}

/* ============ Charts ============ */
.chart-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
}

.chart-card {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius);
    padding: 20px;
    box-shadow: var(--nexus-shadow);
}

.chart-card h3 {
    font-size: 15px;
    font-weight: 600;
    color: var(--nexus-dark);
    margin-bottom: 16px;
}

.chart-card.full-width {
    grid-column: 1 / -1;
}

/* ============ Kanban Board ============ */
.kanban-board {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 8px;
    min-height: 500px;
}

.kanban-column {
    min-width: 240px;
    max-width: 280px;
    flex: 1;
    background: var(--nexus-bg-alt);
    border-radius: var(--nexus-radius);
    display: flex;
    flex-direction: column;
}

.kanban-header {
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: var(--nexus-radius) var(--nexus-radius) 0 0;
}

.kanban-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--nexus-dark);
}

.kanban-count {
    background: var(--nexus-light);
    color: var(--nexus-gray);
    font-size: 12px;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 12px;
}

.kanban-body {
    padding: 8px;
    flex: 1;
    min-height: 100px;
    overflow-y: auto;
}

.kanban-card {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius-sm);
    padding: 12px;
    margin-bottom: 8px;
    box-shadow: var(--nexus-shadow);
    cursor: move;
    transition: box-shadow 0.2s, transform 0.1s;
    border-left: 3px solid var(--nexus-teal);
}

.kanban-card:hover {
    box-shadow: var(--nexus-shadow-lg);
    transform: translateY(-1px);
}

.kanban-card.dragging {
    opacity: 0.5;
}

.card-company {
    font-size: 14px;
    font-weight: 600;
    color: var(--nexus-dark);
    margin-bottom: 6px;
}

.card-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.card-amount {
    font-size: 13px;
    font-weight: 600;
    color: var(--nexus-orange);
}

.card-owner {
    font-size: 11px;
    color: var(--nexus-gray);
    background: var(--nexus-bg);
    padding: 2px 8px;
    border-radius: 10px;
}

.card-contact {
    font-size: 12px;
    color: var(--nexus-gray);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.card-tag {
    font-size: 10px;
    background: var(--nexus-bg-alt);
    padding: 1px 6px;
    border-radius: 4px;
    color: var(--nexus-gray);
}

.card-next {
    font-size: 12px;
    color: var(--nexus-gray);
    padding-top: 6px;
    margin-top: 4px;
    border-top: 1px solid var(--nexus-border);
}

.next-label {
    color: var(--nexus-gray-light);
    font-size: 11px;
    margin-right: 4px;
}

.card-actions {
    display: flex;
    gap: 4px;
    margin-top: 8px;
    opacity: 0;
    transition: opacity 0.2s;
}

.kanban-card:hover .card-actions {
    opacity: 1;
}

/* ============ Tables ============ */
.data-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--nexus-light);
    border-radius: var(--nexus-radius-sm);
    overflow: hidden;
    font-size: 13px;
}

.data-table.full-width { width: 100%; }

.data-table thead {
    background: var(--nexus-bg-alt);
}

.data-table th {
    padding: 10px 14px;
    text-align: left;
    font-weight: 600;
    color: var(--nexus-gray);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.data-table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--nexus-border);
    color: var(--nexus-dark);
}

.data-table tbody tr:hover {
    background: var(--nexus-bg);
}

.data-table td.num {
    text-align: right;
    font-family: "SF Mono", "Fira Code", monospace;
    font-weight: 500;
}

.data-table .total-row td {
    font-weight: 700;
    background: var(--nexus-bg-alt);
    border-top: 2px solid var(--nexus-teal);
}

.cell-content {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ============ Stage Tags ============ */
.stage-tag {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    color: white;
    white-space: nowrap;
}

.badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

.badge-red { background: #FEE2E2; color: #991B1B; }
.badge-teal { background: #CCFBF1; color: #115E59; }
.badge-gray { background: var(--nexus-bg-alt); color: var(--nexus-gray); }

.method-tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    background: var(--nexus-bg-alt);
    color: var(--nexus-gray);
}

/* ============ Alerts ============ */
.alert-section {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    border-radius: var(--nexus-radius);
    padding: 16px 20px;
    margin-bottom: 24px;
}

.alert-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.alert-header h3 {
    font-size: 15px;
    color: #991B1B;
}

.alert-table .data-table {
    background: var(--nexus-light);
}

.row-stale td {
    background: #FFFBEB;
}

.stale-days {
    color: #DC2626;
    font-weight: 600;
}

/* ============ Two Column Layout ============ */
.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
}

.col-card {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius);
    padding: 20px;
    box-shadow: var(--nexus-shadow);
}

.col-card h3 {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 12px;
}

/* ============ Todo List ============ */
.todo-list, .activity-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.todo-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--nexus-border);
}

.todo-date {
    font-size: 12px;
    color: var(--nexus-gray);
    font-weight: 500;
    min-width: 80px;
}

.todo-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.todo-content strong {
    font-size: 13px;
    color: var(--nexus-dark);
}

.todo-content span {
    font-size: 12px;
    color: var(--nexus-gray);
}

.activity-item {
    display: flex;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--nexus-border);
}

.activity-date {
    font-size: 12px;
    color: var(--nexus-gray);
    font-weight: 500;
    min-width: 80px;
}

.activity-content strong {
    font-size: 13px;
    color: var(--nexus-dark);
}

.activity-content p {
    font-size: 12px;
    color: var(--nexus-gray);
    margin-top: 2px;
}

.next-step {
    display: block;
    font-size: 12px;
    color: var(--nexus-orange);
    margin-top: 4px;
}

.empty-state {
    color: var(--nexus-gray-light);
    text-align: center;
    padding: 24px;
    font-size: 13px;
}

/* ============ Modals ============ */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius);
    width: 100%;
    max-width: 640px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--nexus-shadow-lg);
}

.modal.modal-large {
    max-width: 800px;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid var(--nexus-border);
    position: sticky;
    top: 0;
    background: var(--nexus-light);
    z-index: 1;
}

.modal-header h2 {
    font-size: 18px;
    font-weight: 600;
}

.modal form {
    padding: 24px;
}

.modal-body {
    padding: 24px;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--nexus-border);
}

/* ============ Forms ============ */
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

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

.form-group.full-width {
    grid-column: 1 / -1;
}

.form-group label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--nexus-gray);
    margin-bottom: 4px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--nexus-border);
    border-radius: var(--nexus-radius-sm);
    font-size: 14px;
    font-family: inherit;
    transition: border-color 0.2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--nexus-teal);
    box-shadow: 0 0 0 2px rgba(0,95,99,0.1);
}

.form-group textarea {
    resize: vertical;
}

/* ============ Filter Bar ============ */
.filter-bar {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.search-input {
    flex: 1;
    padding: 8px 14px;
    border: 1px solid var(--nexus-border);
    border-radius: var(--nexus-radius-sm);
    font-size: 14px;
}

.search-input:focus {
    outline: none;
    border-color: var(--nexus-teal);
}

.filter-select {
    padding: 8px 14px;
    border: 1px solid var(--nexus-border);
    border-radius: var(--nexus-radius-sm);
    font-size: 14px;
    background: var(--nexus-light);
}

/* ============ Data Sections ============ */
.data-section {
    background: var(--nexus-light);
    border-radius: var(--nexus-radius);
    padding: 20px;
    box-shadow: var(--nexus-shadow);
    margin-bottom: 24px;
}

.data-section h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 16px;
}

.data-section h4 {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 12px;
    color: var(--nexus-gray);
}

.settings-form {
    max-width: 600px;
}

/* ============ Follow-up Items ============ */
.followup-form {
    background: var(--nexus-bg);
    border-radius: var(--nexus-radius-sm);
    padding: 16px;
    margin-bottom: 20px;
}

.followup-form h3 {
    font-size: 14px;
    margin-bottom: 12px;
    color: var(--nexus-gray);
}

.followup-list {
    max-height: 400px;
    overflow-y: auto;
}

.followup-item {
    padding: 12px 0;
    border-bottom: 1px solid var(--nexus-border);
}

.fu-header {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 6px;
}

.fu-date {
    font-size: 13px;
    font-weight: 600;
    color: var(--nexus-dark);
}

.fu-method {
    font-size: 12px;
    background: var(--nexus-bg-alt);
    padding: 2px 8px;
    border-radius: 4px;
    color: var(--nexus-gray);
}

.fu-person {
    font-size: 12px;
    color: var(--nexus-gray);
}

.fu-by {
    font-size: 11px;
    color: var(--nexus-gray-light);
    margin-left: auto;
}

.fu-content {
    font-size: 13px;
    color: var(--nexus-dark);
    margin-bottom: 4px;
}

.fu-conclusion {
    font-size: 13px;
    color: var(--nexus-gray);
    margin-bottom: 4px;
}

.fu-next {
    font-size: 13px;
    color: var(--nexus-orange);
}

/* ============ Info Grid ============ */
.info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.info-item {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--nexus-border);
}

.info-label {
    color: var(--nexus-gray);
    font-size: 13px;
}

.info-value {
    color: var(--nexus-dark);
    font-size: 13px;
    font-weight: 500;
}

/* ============ Error Page ============ */
.error-page {
    text-align: center;
    padding: 80px 20px;
}

.error-code {
    font-size: 72px;
    font-weight: 700;
    color: var(--nexus-teal);
}

.error-message {
    font-size: 18px;
    color: var(--nexus-gray);
    margin: 16px 0 32px;
}

/* ============ Responsive ============ */
@media (max-width: 1024px) {
    .kpi-grid { grid-template-columns: 1fr 1fr; }
    .chart-grid { grid-template-columns: 1fr; }
    .two-col { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .nav-links { display: none; }
    .kpi-grid { grid-template-columns: 1fr; }
    .page-header { flex-direction: column; gap: 12px; }
    .kanban-column { min-width: 200px; }
    .main-content { padding: 16px; }
}

/* ============ Scrollbar ============ */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--nexus-bg); }
::-webkit-scrollbar-thumb { background: var(--nexus-border); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--nexus-gray-light); }

/* ============ BrandFlow 2.0 shell ============ */
:root{--ink:#192823;--paper:#f3f1eb;--coral:#ef6b56;--line:#dedbd2;--muted:#787c75;--cream:#ebe6d8;--sidebar:230px;--topbar:69px}
body{background:var(--paper);color:var(--ink);font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#1d2c27;color:#f9f7f1;padding:25px 17px;z-index:200;display:flex;flex-direction:column}
.side-brand{display:flex;align-items:center;gap:11px;padding:2px 8px 30px;color:white}.side-brand:hover{color:white}.side-brand>b{color:white}.side-brand span:last-child{display:flex;flex-direction:column}.side-brand b{font-size:15px;letter-spacing:.4px}.side-brand em,.story-brand em{color:#f47762;font-style:normal}.side-brand small{font-size:9px;color:#9eaaa5;letter-spacing:1.5px}.brand-mark{width:28px;height:28px;display:flex!important;align-items:flex-end;gap:2px;flex-direction:row!important}.brand-mark i{display:block;width:7px;background:#f47762;border-radius:1px}.brand-mark i:nth-child(1){height:12px}.brand-mark i:nth-child(2){height:21px}.brand-mark i:nth-child(3){height:27px;clip-path:polygon(0 25%,100% 0,100% 100%,0 100%)}
.side-label{font-size:9px;text-transform:uppercase;color:#75847e;letter-spacing:1.7px;padding:0 12px;margin:5px 0 8px}.side-nav{display:flex;flex-direction:column;gap:2px}.side-nav a{position:relative;color:#a9b3af;padding:11px 12px;border-radius:8px;display:flex;gap:12px;align-items:center;font-size:12px}.side-nav a b{font-size:17px;font-weight:400;width:18px;text-align:center}.side-nav a:hover{background:#273732;color:white}.side-nav a.active{background:#2e3d38;color:white}.side-nav a.active:before{content:"";position:absolute;left:-17px;width:3px;height:22px;border-radius:0 4px 4px 0;background:#f47762}.side-user{margin-top:auto;border-top:1px solid #35433f;padding:18px 3px 0;display:flex;align-items:center;gap:9px}.side-user>span{width:31px;height:31px;border-radius:50%;background:#d5c6a9;color:#25322e;display:grid;place-items:center;font-weight:bold}.side-user div{display:flex;flex-direction:column;min-width:0;flex:1}.side-user strong{font-size:10px}.side-user small{font-size:7px;color:#85918c;overflow:hidden;text-overflow:ellipsis}.side-user>a{font-size:8px;color:#9eaaa5}
.app-topbar{position:fixed;left:var(--sidebar);right:0;top:0;height:var(--topbar);background:#f9f8f4;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;z-index:150}.app-topbar div{font-size:11px}.app-topbar div span{color:#999d96;margin-right:5px}.quick-add{height:35px;display:flex;align-items:center;background:var(--coral);color:white!important;padding:0 15px;border-radius:6px;font-size:10px;font-weight:bold}
.main-content{margin:var(--topbar) 0 0 var(--sidebar);max-width:none;padding:32px 34px 60px}.auth-content{margin:0;padding:0}.page-header{margin-bottom:26px}.page-header h1,.welcome-row h1{font-family:Georgia,"Songti SC",serif;font-weight:500;color:var(--ink)}.page-header h1{font-size:28px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#92958f;margin:0 0 8px;font-weight:bold}.flash-container{position:fixed;right:24px;top:82px;z-index:300}.flash{border-radius:6px;padding:11px 15px;font-size:11px;box-shadow:0 7px 22px #0002}.flash-success{background:#dcebe3;color:#275b45}.flash-error{background:#f8ddd7;color:#963b2e}
.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.welcome-row h1{font-size:33px;line-height:1.23;letter-spacing:-1px}.focus-card{width:340px;background:#ded7c8;color:var(--ink);border-radius:8px;padding:16px 19px;position:relative}.focus-card:hover{color:var(--ink);transform:translateY(-2px)}.focus-card>span{font-size:9px;letter-spacing:1px;color:#7d7d75}.focus-card strong{display:block;font-size:13px;margin:7px 0 4px}.focus-card p{font-size:10px;color:#777970}.focus-card b{display:block;margin-top:12px;font-size:9px}.focus-card.clear{background:#dce8e0}
.premium-kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.premium-kpis .kpi-card,.premium-kpis article{background:#fbfaf7;border:1px solid var(--line);padding:18px;border-radius:7px;position:relative;min-height:125px;box-shadow:none}.premium-kpis article p{font-size:10px;color:#737872;margin:0 0 14px}.premium-kpis article>strong{display:block;font-size:21px;letter-spacing:-.6px}.premium-kpis article>small{font-size:8px;color:#8a8e87}.kpi-icon{position:absolute;right:16px;top:15px;width:30px;height:30px;border-radius:7px;display:grid;place-items:center;font-weight:bold}.kpi-icon.dark{background:#263530;color:white}.kpi-icon.coral{background:#f7d1c8;color:#c94b39}.kpi-icon.sand{background:#e8e0cb}.kpi-icon.mint{background:#d9e6df;color:#376d57}
.dashboard-split{display:grid;grid-template-columns:1.65fr 1fr;gap:12px;margin-bottom:14px}.panel{background:#fbfaf7;border:1px solid var(--line);border-radius:7px;padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-head h2{font-family:Georgia,"Songti SC",serif;font-size:19px;font-weight:500}.panel-head a{font-size:9px;color:#777b76}.pipeline-bars{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;align-items:end}.pipeline-bars>a{color:var(--ink);text-align:center}.pipeline-bars>a>span{display:block;text-align:left;font-family:Georgia,serif;font-size:8px;color:#b1afa7;margin-bottom:5px}.pipeline-bars .bar{background:#e4e0d6;display:flex;align-items:flex-start;justify-content:center;padding-top:8px;border-top:2px solid transparent;transition:.2s}.pipeline-bars a:hover .bar{border-color:var(--coral);transform:translateY(-3px)}.pipeline-bars .bar-5,.pipeline-bars .bar-6{background:#f6d3cc}.pipeline-bars .bar-7,.pipeline-bars .bar-8{background:#dbe7df}.pipeline-bars a>strong{display:block;font-size:8px;margin-top:7px}.pipeline-bars a>small{font-size:7px;color:#999b96}.health-note{display:flex;align-items:center;gap:9px;background:#f0ede5;border-radius:5px;padding:9px 11px;margin-top:17px}.health-note>span{width:19px;height:19px;border-radius:50%;background:#f2b5a9;color:#b94a38;display:grid;place-items:center;font-size:10px;font-weight:bold}.health-note p{font-size:9px;line-height:1.5;flex:1;color:#6f746e}.health-note p strong{display:block;color:#2b3834}.health-note a{font-size:8px;text-decoration:underline}
.action-list>a{border-top:1px solid #e8e5dd;padding:12px 0;display:flex;align-items:center;gap:10px;color:var(--ink)}.action-check{width:18px;height:18px;border:1px solid #c8c7c0;border-radius:50%;display:grid;place-items:center;font-size:9px}.action-check.urgent{border-color:#ee8876;color:#dc5b48;background:#fbe2dc}.action-list a div{display:flex;flex-direction:column;gap:4px;flex:1}.action-list strong{font-size:10px}.action-list small{font-size:8px;color:#969991}.action-list time{font-size:8px;color:#de5d49}.priority-table{margin-top:0}.table-scroll{overflow:auto}.priority-table td small{display:block;color:#999c95;font-size:8px;margin-top:3px}.service-tag{font-size:8px;border:1px solid #dcd9d1;border-radius:10px;padding:3px 7px}
.data-section,.chart-card,.col-card,.alert-section,.list-view{background:#fbfaf7;border:1px solid var(--line);box-shadow:none;border-radius:7px}.data-table th{font-size:8px;letter-spacing:.7px;color:#92968f;background:#f4f2ec}.data-table td{font-size:10px}.btn{border-radius:5px;font-size:10px}.btn-primary{background:var(--coral)}.btn-primary:hover{background:#d95c48}.btn-secondary{background:#ece8de;color:var(--ink)}.kanban-column{background:#ebe8df;border-radius:7px}.kanban-header,.kanban-card{border-color:var(--line);box-shadow:none}.kanban-card{border-radius:6px}.stage-tag{font-size:8px;border-radius:10px}.settings-grid{display:grid;gap:14px}.data-section{padding:22px}.section-head{display:flex;justify-content:space-between;align-items:center}.member-count{font-size:9px;background:#e9e6dd;padding:4px 8px;border-radius:10px}.invite-box{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.invite-box p{font-size:9px;color:#858982;margin:5px 0 15px}
/* Authentication */
.login-page{min-height:100vh;background:#172720;display:block}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-story{padding:70px 8vw;background:#1d2c27;color:white;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;width:480px;height:480px;border:1px solid #ffffff12;border-radius:50%;right:-180px;bottom:-190px;box-shadow:0 0 0 80px #ffffff08,0 0 0 160px #ffffff05}.story-brand{position:absolute;left:8vw;top:50px;display:flex;align-items:center;gap:12px}.story-brand b{font-size:16px;letter-spacing:.6px}.login-story>p{font-size:9px;letter-spacing:2px;color:#91a19a}.login-story h1{font-family:Georgia,"Songti SC",serif;font-size:42px;line-height:1.35;font-weight:500;margin:18px 0}.login-story>small{color:#99a79f}.story-pipeline{display:flex;align-items:flex-end;gap:7px;margin-top:55px}.story-pipeline i{display:block;width:50px;background:#354a42}.story-pipeline i:nth-child(1){height:28px}.story-pipeline i:nth-child(2){height:38px}.story-pipeline i:nth-child(3){height:52px;background:#e1cfc2}.story-pipeline i:nth-child(4){height:68px;background:#f47762}.story-pipeline i:nth-child(5){height:82px;background:#f47762}.login-panel{background:#f3f1eb;display:grid;place-items:center;padding:30px}.login-card,.setup-card{width:min(420px,100%);background:#fbfaf7;border-radius:9px;padding:38px;box-shadow:0 18px 55px #08140f33}.login-card h2,.setup-card h1{font-family:Georgia,"Songti SC",serif;font-size:28px;font-weight:500}.login-subtitle,.setup-card>p{font-size:10px;color:#7e827b;margin:8px 0 25px}.login-form label{display:block;font-size:9px;font-weight:bold;margin:15px 0;color:#58615d}.login-form label input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #d6d3cb;border-radius:5px;background:white;font-size:11px}.btn-login{margin-top:8px;background:var(--coral);border-radius:5px;font-size:11px}.login-footer{margin-top:25px;padding-top:18px}.login-footer p,.login-footer small{font-size:8px;color:#8d918a}.setup-card{margin:8vh auto}.setup-card .flash{position:static;margin:12px 0;box-shadow:none}
@media(max-width:1100px){.premium-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-split{grid-template-columns:1fr}.focus-card{display:none}.pipeline-bars{grid-template-columns:repeat(4,1fr);row-gap:14px}}
@media(max-width:760px){:root{--sidebar:64px}.app-sidebar{padding:20px 8px}.side-brand{padding:0 9px 25px}.side-brand>span:last-child,.side-label,.side-nav a span,.side-user div,.side-user>a{display:none}.side-nav a{justify-content:center}.app-topbar{padding:0 15px}.main-content{padding:22px 14px 50px}.welcome-row h1{font-size:27px}.premium-kpis{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh}.kanban-column{min-width:220px}.settings-form .form-grid{grid-template-columns:1fr}}

/* ============ NexusGrowth brand alignment & action-first UX ============ */
:root{--sidebar:260px;--topbar:72px;--brand-teal:#087274;--brand-deep:#102b33;--brand-orange:#ff6b08;--brand-bg:#f3f6f5;--brand-line:#d9e1df}
body{font-size:15px;background:var(--brand-bg);color:#17262b}
.app-sidebar{width:var(--sidebar);background:#fff;color:#17262b;padding:30px 20px;border-right:1px solid var(--brand-line)}
.side-brand{padding:0 10px 38px;color:#141725}.side-brand:hover{color:#141725}.side-brand b{font-size:22px;letter-spacing:-.8px}.side-brand em{color:var(--brand-teal)}.side-brand small{font-size:10px;color:#707b7d;letter-spacing:2.5px;margin-top:3px}.side-label{font-size:11px;color:#99a2a1;padding:0 14px;margin-bottom:10px}.side-nav{gap:5px}.side-nav a{color:#596567;font-size:15px;font-weight:600;padding:14px 15px;border-radius:7px;gap:14px}.side-nav a b{font-size:11px;color:#9aa4a3;width:25px;letter-spacing:1px}.side-nav a:hover{background:#f0f5f4;color:var(--brand-teal)}.side-nav a.active{background:#e7f2f1;color:var(--brand-teal)}.side-nav a.active:before{left:-20px;width:4px;height:30px;background:var(--brand-orange)}.side-nav a.active b{color:var(--brand-orange)}.side-user{border-color:#e3e8e7;padding:22px 6px 0}.side-user>span{width:38px;height:38px;background:#d7ebe8;color:var(--brand-teal);font-size:15px}.side-user strong{font-size:13px;color:#1c2d31}.side-user small{font-size:10px;color:#7b8685}.side-user>a{font-size:12px;color:#76817f}
.app-topbar{left:var(--sidebar);height:var(--topbar);background:#fff;border-color:var(--brand-line);padding:0 36px}.app-topbar div{font-size:14px}.app-topbar div span{color:#7a8584}.quick-add{height:42px;padding:0 20px;background:var(--brand-orange);font-size:14px;border-radius:5px}.main-content{margin:var(--topbar) 0 0 var(--sidebar);padding:38px 42px 72px;max-width:1680px}.page-header h1{font-size:34px}.page-subtitle{font-size:15px}.eyebrow{font-size:11px;letter-spacing:2px}.section-block{margin:0 0 34px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}.section-title h2{font-size:28px;line-height:1.2;font-weight:650;color:#17262b}.section-title p:not(.eyebrow){font-size:14px;color:#75807e;margin-top:7px}.section-title>a{font-size:14px;color:var(--brand-teal);font-weight:700}
.day-hero{min-height:330px;background:linear-gradient(118deg,#102b33 0%,#075f62 58%,#0b7774 100%);border-radius:4px;padding:44px 48px;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;color:#fff;margin-bottom:38px;position:relative;overflow:hidden}.day-hero:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid #ffffff14;right:-270px;bottom:-310px;box-shadow:0 0 0 75px #ffffff08,0 0 0 150px #ffffff05}.day-hero .eyebrow{color:#7fd2cf}.hero-copy{position:relative;z-index:1}.hero-copy h1{font-size:46px;line-height:1.13;font-weight:700;letter-spacing:-1.5px;margin:13px 0}.hero-copy>p:not(.eyebrow){font-size:17px;line-height:1.8;color:#c9d9d7;max-width:610px}.hero-buttons{display:flex;gap:12px;margin-top:27px}.hero-buttons a{height:48px;padding:0 22px;display:flex;align-items:center;border-radius:4px;font-size:15px;font-weight:700}.hero-primary{background:var(--brand-orange);color:#fff}.hero-primary:hover{color:#fff;background:#e85e00}.hero-secondary{border:1px solid #a3c0be;color:#fff}.hero-secondary:hover{color:#fff;background:#ffffff12}.hero-guide{position:relative;z-index:1;background:#ffffff0d;border:1px solid #ffffff24;border-radius:5px;padding:7px 22px;align-self:center}.hero-guide>a{display:grid;grid-template-columns:38px 1fr 28px;align-items:center;gap:10px;color:white;padding:18px 0;border-bottom:1px solid #ffffff1f}.hero-guide>a:last-child{border:0}.hero-guide>a>b{font-size:12px;color:#7fd2cf}.hero-guide span{display:flex;flex-direction:column;gap:4px}.hero-guide strong{font-size:16px}.hero-guide small{font-size:12px;color:#b9cac7}.hero-guide em{font-size:18px;font-style:normal;color:#ff984d;text-align:right}
.action-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.summary-card{background:#fff;border:1px solid var(--brand-line);border-radius:5px;padding:21px 24px;position:relative}.summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand-teal)}.summary-card.urgent:before{background:var(--brand-orange)}.summary-card span{font-size:13px;color:#6e7977}.summary-card strong{display:block;font-size:36px;line-height:1;margin:12px 0 8px}.summary-card p{font-size:13px;color:#87908f}.work-queue{background:#fff;border:1px solid var(--brand-line);border-radius:5px;overflow:hidden}.queue-head,.queue-row{display:grid;grid-template-columns:100px minmax(300px,1.8fr) minmax(100px,.6fr) 130px 120px;align-items:center;gap:18px}.queue-head{background:#eef3f2;padding:12px 20px;font-size:12px;color:#6d7977;font-weight:700}.queue-row{padding:18px 20px;border-top:1px solid #e8edec;color:#223236}.queue-row:hover{background:#f7faf9;color:#223236}.queue-row>span:first-child b{font-size:12px;background:#e5efed;color:var(--brand-teal);padding:5px 9px;border-radius:12px}.queue-row.is-overdue>span:first-child b{background:#fff0e6;color:#d95100}.queue-row>span:nth-child(2){display:flex;flex-direction:column;gap:5px}.queue-row strong{font-size:16px}.queue-row small{font-size:13px;color:#75817f}.queue-row>span:nth-child(3),.queue-row>span:nth-child(4){font-size:14px}.queue-row>span:last-child{font-size:13px;color:var(--brand-teal);font-weight:700}.queue-empty{text-align:center;padding:42px}.queue-empty strong{font-size:18px}.queue-empty p{color:#77827f;margin:8px}.queue-empty a{font-size:14px;font-weight:700}
.stage-flow{display:grid;grid-template-columns:repeat(8,1fr);gap:9px}.stage-flow>a{background:#fff;border:1px solid var(--brand-line);border-top:4px solid var(--brand-teal);border-radius:4px;padding:17px 16px;color:#203035;min-height:154px;display:flex;flex-direction:column}.stage-flow>a:nth-child(5),.stage-flow>a:nth-child(6){border-top-color:var(--brand-orange)}.stage-flow>a:nth-child(7),.stage-flow>a:nth-child(8){background:#eaf4f2}.stage-flow a>span{font-size:11px;color:#919b99;letter-spacing:1px}.stage-flow a>strong{font-size:15px;margin-top:12px}.stage-flow a>b{font-size:34px;margin:auto 0 5px}.stage-flow a>small{font-size:11px;color:#7b8785}.stage-flow>a:hover{transform:translateY(-3px);box-shadow:0 10px 24px #0b37330e;color:#203035}
.opportunity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.opportunity-card{background:#fff;border:1px solid var(--brand-line);border-radius:5px;padding:22px;color:#203035;min-height:205px;display:flex;flex-direction:column}.opportunity-card:hover{color:#203035;box-shadow:0 10px 28px #0b373310;transform:translateY(-2px)}.opportunity-card>div{display:flex;justify-content:space-between;align-items:center}.opportunity-card>div small{font-size:12px;color:#76817f}.opportunity-card h3{font-size:20px;margin:22px 0 8px}.opportunity-card>p{font-size:14px;color:#707c79}.opportunity-card footer{display:flex;gap:32px;margin-top:auto;padding-top:18px;border-top:1px solid #e8edec}.opportunity-card footer span{display:flex;flex-direction:column}.opportunity-card footer small{font-size:11px;color:#899391}.opportunity-card footer strong{font-size:14px;margin-top:4px}.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric-row article{background:#fff;border:1px solid var(--brand-line);padding:22px;border-radius:4px}.metric-row span{font-size:13px;color:#75817e}.metric-row strong{display:block;font-size:24px;margin-top:11px;color:#173037}
.workflow-guide{background:#e7f2f1;border-left:4px solid var(--brand-orange);display:flex;align-items:center;gap:24px;padding:15px 18px;margin-bottom:20px;border-radius:3px}.workflow-guide strong{font-size:15px}.workflow-guide span{font-size:13px;color:#52615f}.workflow-guide span b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;color:var(--brand-teal);margin-right:6px}.btn{font-size:14px;padding:10px 20px}.btn-primary{background:var(--brand-orange)}.page-actions{gap:10px}.kanban-title{font-size:15px}.kanban-count{font-size:13px}.kanban-card{padding:16px}.card-company{font-size:16px}.card-amount,.card-owner,.card-contact,.card-next{font-size:13px}.data-table th{font-size:12px;padding:13px 15px}.data-table td{font-size:14px;padding:14px 15px}.data-table td small{font-size:12px}.form-group label{font-size:13px}.form-group input,.form-group select,.form-group textarea,.search-input,.filter-select{font-size:15px;padding:11px 13px}.modal-header h2{font-size:23px}.stage-tag,.service-tag,.method-tag,.badge{font-size:12px;padding:5px 9px}
.login-story{background:linear-gradient(118deg,#102b33,#075f62)}.story-brand b{font-size:22px}.btn-login{background:var(--brand-orange);font-size:15px}.login-card h2,.setup-card h1{font-size:32px}.login-subtitle,.setup-card>p{font-size:14px}.login-form label{font-size:13px}.login-form label input{font-size:15px}.login-footer p,.login-footer small{font-size:11px}
@media(max-width:1300px){.stage-flow{grid-template-columns:repeat(4,1fr)}.opportunity-grid{grid-template-columns:repeat(2,1fr)}.queue-head,.queue-row{grid-template-columns:80px minmax(260px,1.7fr) 100px 120px}.queue-head>span:last-child,.queue-row>span:last-child{display:none}}
@media(max-width:900px){:root{--sidebar:76px}.app-sidebar{padding:24px 10px}.side-brand small,.side-label,.side-nav a span,.side-user div,.side-user>a{display:none}.side-brand b{font-size:0}.side-brand b:after{content:"NG";font-size:20px;color:var(--brand-teal)}.side-nav a{justify-content:center}.main-content{padding:28px 20px 50px}.day-hero{grid-template-columns:1fr;padding:35px}.hero-guide{display:none}.hero-copy h1{font-size:37px}.action-summary{grid-template-columns:1fr}.stage-flow{grid-template-columns:repeat(2,1fr)}.opportunity-grid,.metric-row{grid-template-columns:1fr}.queue-head{display:none}.queue-row{grid-template-columns:70px 1fr 100px}.queue-row>span:nth-child(3){display:none}.queue-row>span:nth-child(4){text-align:right}.workflow-guide{align-items:flex-start;flex-direction:column;gap:8px}}
