:root { --app-bg: #f5f6f8; --app-surface: #ffffff; --app-surface-soft: #fafafb; --app-border: #d9dde3; --app-border-strong: #b9c0cb; --app-text: #111827; --app-muted: #6b7280; --app-accent: #1f2937; --app-accent-soft: #eef1f4; --app-success: #0f766e; --app-shadow: 0 10px 30px rgba(15, 23, 42, 0.06); --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; } html, body { background: var(--app-bg); color: var(--app-text); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, sans-serif; } body { min-height: 100vh; } .page-shell { min-height: calc(100vh - 72px); } .app-navbar { backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(17, 24, 39, 0.04); } .navbar-brand { display: inline-flex; align-items: center; gap: 10px; letter-spacing: -0.02em; } .brand-dot { width: 10px; height: 10px; border-radius: 2px; background: var(--app-accent); display: inline-block; } .nav-link { color: #374151; border-radius: 8px; padding-inline: 12px !important; padding-block: 8px !important; } .nav-link.active, .nav-link:hover { background: var(--app-accent-soft); color: var(--app-text); } .hero-panel, .panel-card, .stat-card, .hero-side-card { background: var(--app-surface); border: 1px solid var(--app-border); border-radius: var(--radius-lg); box-shadow: var(--app-shadow); } .hero-panel { padding: 28px; } .hero-title { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.04; margin: 12px 0 14px; letter-spacing: -0.04em; max-width: 10ch; } .hero-copy, .section-copy, .empty-state p, .empty-inline, .workflow-list, .form-text, .text-secondary { color: var(--app-muted) !important; } .eyebrow, .print-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #4b5563; } .hero-side-card { padding: 24px; background: #fcfcfd; } .metric-label, .stat-label, .detail-label { font-size: 12px; color: var(--app-muted); text-transform: uppercase; letter-spacing: 0.08em; } .metric-value, .stat-value { font-size: 2rem; font-weight: 700; letter-spacing: -0.03em; margin: 10px 0 6px; } .small-money { font-size: 1.45rem; } .stat-card { padding: 20px; height: 100%; } .stat-card-soft { background: #f8fafb; } .stat-link, .table-link { color: var(--app-text); text-decoration: none; font-weight: 600; } .stat-note { margin-top: 8px; color: var(--app-muted); font-size: 13px; } .panel-card { padding: 22px; } .section-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; } .section-header.compact { margin-bottom: 14px; } .section-title { margin: 0; font-size: 1.1rem; font-weight: 700; letter-spacing: -0.02em; } .app-table { --bs-table-bg: transparent; margin-bottom: 0; } .app-table th { font-size: 12px; color: var(--app-muted); font-weight: 600; border-bottom-color: var(--app-border); } .app-table td { border-bottom-color: #ebedf0; vertical-align: middle; } .empty-state, .empty-inline { border: 1px dashed var(--app-border-strong); background: var(--app-surface-soft); border-radius: var(--radius-md); padding: 24px; } .empty-inline { padding: 18px; } .workflow-list { margin: 0; padding-right: 18px; display: grid; gap: 12px; } .list-row, .summary-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .list-row { padding: 12px 0; border-bottom: 1px solid #edf0f2; } .list-row:last-child { border-bottom: 0; } .form-control, .form-select { border-color: var(--app-border); border-radius: 10px; min-height: 44px; padding-inline: 14px; box-shadow: none !important; } textarea.form-control { min-height: auto; } .form-control:focus, .form-select:focus, .btn:focus { border-color: #6b7280; box-shadow: 0 0 0 0.2rem rgba(107, 114, 128, 0.12) !important; } .btn { border-radius: 10px; min-height: 42px; padding-inline: 16px; font-weight: 600; } .btn-dark { background: var(--app-accent); border-color: var(--app-accent); } .btn-outline-secondary { border-color: var(--app-border-strong); color: #374151; } .sales-summary-box, .subtle-card { border: 1px solid var(--app-border); background: #fbfcfd; border-radius: var(--radius-md); padding: 16px; } .summary-row { padding: 8px 0; font-size: 14px; border-bottom: 1px solid #edf0f2; } .summary-row:last-child { border-bottom: 0; padding-bottom: 0; } .summary-row.grand { font-size: 15px; font-weight: 700; } .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; } .detail-block { padding: 14px; background: #fbfcfd; border: 1px solid var(--app-border); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: 6px; } .app-alert { border-radius: 12px; border-color: transparent; } .signature-box { border-top: 1px solid var(--app-border-strong); padding-top: 10px; min-height: 56px; color: var(--app-muted); } .print-body { background: #eef1f4; } .print-sheet { max-width: 960px; background: #fff; border: 1px solid var(--app-border); border-radius: 18px; padding: 32px; box-shadow: var(--app-shadow); } @media (max-width: 991.98px) { .hero-panel, .panel-card, .print-sheet { padding: 20px; } .hero-title { max-width: 100%; } } @media print { body, .print-body { background: #fff; } .print-sheet { box-shadow: none; border: 0; border-radius: 0; padding: 0; max-width: none; } } .auth-card { max-width: 100%; } .user-chip { display: flex; flex-direction: column; align-items: flex-end; padding: 8px 12px; border: 1px solid var(--app-border); border-radius: 12px; background: #fafbfc; line-height: 1.2; } .user-chip span { color: var(--app-muted); font-size: 12px; } .quick-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; } .quick-link-card { text-decoration: none; color: var(--app-text); border: 1px solid var(--app-border); background: #fff; border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 4px; transition: transform 0.15s ease, box-shadow 0.15s ease; } .quick-link-card:hover { transform: translateY(-2px); box-shadow: var(--app-shadow); } .quick-link-card span { color: var(--app-muted); font-size: 13px; } .app-progress { height: 10px; border-radius: 999px; background: #edf0f4; } .app-progress .progress-bar { background: var(--app-success); border-radius: 999px; } .reports-callout { background: linear-gradient(135deg, #ffffff 0%, #f5f7fb 100%); } .report-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; } .kpi-card { border: 1px solid var(--app-border); border-radius: var(--radius-md); background: #fbfcfd; padding: 18px; height: 100%; } .kpi-label { color: var(--app-muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; } .kpi-value { font-size: 1.6rem; font-weight: 700; margin-top: 10px; letter-spacing: -0.03em; } .kpi-note { margin-top: 8px; color: var(--app-muted); font-size: 13px; }