:root { --momo-primary: #0f6f5c; --momo-primary-dark: #0a5748; --momo-secondary: #143642; --momo-accent: #f59e0b; --momo-coral: #ef6f6c; --momo-bg: #f4f6f0; --momo-surface: #ffffff; --momo-surface-alt: #eef4ef; --momo-border: #d4dfd6; --momo-text: #17332f; --momo-muted: #647874; --momo-shadow: 0 24px 60px rgba(16, 58, 50, 0.12); --radius-xl: 28px; --radius-lg: 22px; --radius-md: 16px; } * { box-sizing: border-box; } body { margin: 0; font-family: 'Inter', system-ui, sans-serif; background: radial-gradient(circle at top left, rgba(245, 158, 11, 0.16), transparent 30%), radial-gradient(circle at right top, rgba(15, 111, 92, 0.14), transparent 28%), linear-gradient(180deg, #f7fbf8 0%, var(--momo-bg) 55%, #eef4ef 100%); color: var(--momo-text); min-height: 100vh; } h1, h2, h3, h4, .navbar-brand, .display-title, .section-title, .section-title-sm { font-family: 'Space Grotesk', 'Inter', sans-serif; letter-spacing: -0.03em; } a { text-decoration: none; } .page-shell { position: relative; min-height: 100vh; } .site-header { z-index: 100; } .momo-nav { background: rgba(20, 54, 66, 0.82); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .brand-badge { width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 0.95rem; background: linear-gradient(135deg, var(--momo-accent), #ffd279); color: var(--momo-secondary); font-weight: 800; box-shadow: 0 16px 30px rgba(245, 158, 11, 0.25); } .brand-name { font-size: 1.12rem; font-weight: 700; color: #fff; } .brand-subtitle { color: rgba(255, 255, 255, 0.68); font-size: 0.78rem; letter-spacing: 0.03em; text-transform: uppercase; } .nav-link { color: rgba(255, 255, 255, 0.78) !important; font-weight: 500; } .nav-link:hover, .nav-link:focus { color: #fff !important; } .btn { border-radius: 999px; font-weight: 600; padding: 0.8rem 1.4rem; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; } .btn:hover, .btn:focus { transform: translateY(-1px); } .btn-momo-primary { background: linear-gradient(135deg, var(--momo-primary), #16a085); color: #fff; border: none; box-shadow: 0 16px 36px rgba(15, 111, 92, 0.24); } .btn-momo-primary:hover, .btn-momo-primary:focus { background: linear-gradient(135deg, #11806a, #18b18f); color: #fff; } .btn-momo-ghost { background: rgba(255, 255, 255, 0.12); color: var(--momo-secondary); border: 1px solid rgba(20, 54, 66, 0.12); backdrop-filter: blur(12px); } .momo-nav .btn-momo-ghost { color: #fff; border-color: rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.06); } .hero-panel, .content-card, .glass-card, .soft-card, .balance-card, .mini-feature, .metric-card, .mini-stat { border: 1px solid rgba(255, 255, 255, 0.54); background: rgba(255, 255, 255, 0.86); box-shadow: var(--momo-shadow); } .hero-panel { position: relative; padding: 4.25rem clamp(1.4rem, 3vw, 3rem); border-radius: calc(var(--radius-xl) + 8px); background: linear-gradient(135deg, rgba(20, 54, 66, 0.95), rgba(15, 111, 92, 0.84)), linear-gradient(120deg, rgba(245, 158, 11, 0.2), transparent 42%); color: #fff; } .display-title { font-size: clamp(2.6rem, 4vw, 4.5rem); line-height: 1.02; margin-bottom: 1.2rem; max-width: 12ch; } .hero-copy, .muted-copy { color: rgba(255, 255, 255, 0.82); font-size: 1.05rem; line-height: 1.72; } .eyebrow, .card-kicker { display: inline-block; margin-bottom: 0.85rem; font-size: 0.84rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--momo-accent); font-weight: 700; } .hero-metrics .metric-card, .mini-feature, .soft-card, .mini-stat { border-radius: var(--radius-md); padding: 1.2rem; } .metric-card strong { display: block; font-size: 1.7rem; color: var(--momo-secondary); margin-bottom: 0.3rem; } .metric-card span, .mini-feature span, .stack-item span, .preview-metrics span, .movement-card span, .detail-grid span, .rule-item span, .report-preview-header span, .mini-stat span { display: block; color: var(--momo-muted); font-size: 0.92rem; line-height: 1.55; } .metric-card span { color: #3e514d; } .glass-card { padding: 1.25rem; border-radius: var(--radius-xl); background: rgba(255, 255, 255, 0.14); backdrop-filter: blur(14px); } .soft-card { background: rgba(255, 255, 255, 0.92); height: 100%; } .section-title { font-size: clamp(1.8rem, 2vw, 2.6rem); color: var(--momo-secondary); margin-bottom: 0.75rem; } .section-title-sm { font-size: 1.32rem; color: var(--momo-secondary); margin-bottom: 0.55rem; } .content-card { border-radius: var(--radius-xl); padding: clamp(1.35rem, 3vw, 2rem); } .balance-card { border-radius: var(--radius-lg); padding: 1.35rem; min-height: 100%; } .balance-card span, .mini-stat span { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75rem; font-weight: 700; color: var(--momo-muted); } .balance-card strong, .mini-stat strong { display: block; font-size: 1.9rem; margin: 0.45rem 0; color: var(--momo-secondary); } .balance-card small { color: var(--momo-muted); font-size: 0.88rem; } .balance-card-primary { background: linear-gradient(135deg, rgba(15, 111, 92, 0.14), rgba(255, 255, 255, 0.96)); } .balance-card-secondary { background: linear-gradient(135deg, rgba(20, 54, 66, 0.12), rgba(255, 255, 255, 0.96)); } .balance-card-accent { background: linear-gradient(135deg, rgba(245, 158, 11, 0.18), rgba(255, 255, 255, 0.96)); } .shape { position: absolute; border-radius: 999px; opacity: 0.22; pointer-events: none; } .shape-one { width: 180px; height: 180px; right: -36px; top: -28px; background: linear-gradient(135deg, var(--momo-accent), #ffe1aa); } .shape-two { width: 260px; height: 260px; right: 14%; bottom: -120px; background: linear-gradient(135deg, rgba(255,255,255,0.45), rgba(255,255,255,0.08)); } .empty-state { text-align: center; padding: 2.6rem 1.2rem; border: 1px dashed var(--momo-border); border-radius: var(--radius-lg); background: var(--momo-surface-alt); } .momo-table { --bs-table-bg: transparent; --bs-table-border-color: rgba(20, 54, 66, 0.08); } .momo-table thead th { color: var(--momo-muted); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.08em; border-bottom-width: 1px; } .momo-badge { background: rgba(15, 111, 92, 0.12); color: var(--momo-primary-dark); border-radius: 999px; padding: 0.55rem 0.75rem; font-weight: 600; } .text-link { color: var(--momo-primary); font-weight: 700; } .stack-list { display: grid; gap: 0.9rem; } .stack-item, .rule-item { padding: 1rem 1.05rem; border-radius: 1rem; background: var(--momo-surface-alt); border: 1px solid var(--momo-border); } .stack-item strong, .rule-item strong { display: block; margin-bottom: 0.25rem; color: var(--momo-secondary); } .momo-form .form-label { font-weight: 700; color: var(--momo-secondary); margin-bottom: 0.45rem; } .momo-input, .momo-file { border-radius: 1rem; border: 1px solid rgba(20, 54, 66, 0.14); padding: 0.92rem 1rem; background: #fff; box-shadow: none !important; } .momo-input:focus, .momo-file:focus, .btn:focus, .nav-link:focus { border-color: rgba(15, 111, 92, 0.5); box-shadow: 0 0 0 0.25rem rgba(15, 111, 92, 0.12) !important; outline: none; } .form-help { margin-top: 0.35rem; color: var(--momo-muted); font-size: 0.87rem; } .form-error { margin-top: 0.4rem; color: #b4373b; font-size: 0.9rem; font-weight: 600; } .profile-mini, .report-preview-header, .report-sheet-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; } .profile-mini span, .report-preview-header span { font-size: 0.86rem; } .logo-thumb, .logo-placeholder { width: 72px; height: 72px; border-radius: 1.25rem; object-fit: cover; border: 1px solid rgba(20, 54, 66, 0.1); background: linear-gradient(135deg, rgba(15,111,92,0.14), rgba(245,158,11,0.16)); display: inline-flex; align-items: center; justify-content: center; color: var(--momo-secondary); font-weight: 700; } .preview-metrics, .detail-grid, .movement-card { display: grid; gap: 0.9rem; } .preview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .preview-metrics.two-up, .detail-grid, .movement-card { grid-template-columns: repeat(2, minmax(0, 1fr)); } .preview-metrics div, .detail-grid div, .movement-card div, .report-preview-card, .mini-stat { padding: 1rem; border-radius: 1rem; background: var(--momo-surface-alt); border: 1px solid var(--momo-border); } .preview-metrics strong, .detail-grid strong, .movement-card strong { display: block; color: var(--momo-secondary); font-size: 1.08rem; margin-top: 0.35rem; } .report-sheet { border: 1px solid rgba(20, 54, 66, 0.08); } .mini-stat { height: 100%; } .page-intro .muted-copy, .content-card .muted-copy, .auth-layout .muted-copy { color: var(--momo-muted); } .auth-layout { min-height: 66vh; } .compact .stack-item { padding: 0.85rem 0.95rem; } @media print { .site-header, .btn, .message-stack, .page-intro, .report-shortcuts { display: none !important; } body { background: #fff; } .container, .content-card, .report-sheet { max-width: none !important; box-shadow: none !important; border: none !important; padding: 0 !important; } } @media (max-width: 991.98px) { .display-title { max-width: 100%; } .profile-mini, .report-preview-header, .report-sheet-header, .preview-metrics, .preview-metrics.two-up, .detail-grid, .movement-card { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; } } @media (max-width: 767.98px) { .hero-panel { padding: 2rem 1.2rem 2.3rem; } .display-title { font-size: 2.35rem; } .content-card, .balance-card { padding: 1.25rem; } }