:root {
    --bg: #f4f7fb;
    --dark: #101827;
    --muted: #667085;
    --primary: #2457ff;
    --success: #12b76a;
    --danger: #f04438;
    --warning: #fdb022;
    --card: #ffffff;
    --shadow: 0 18px 50px rgba(16, 24, 40, .08);
}

* { box-sizing: border-box; }
body {
    background: var(--bg);
    color: var(--dark);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.fw-black { font-weight: 900; }
.text-white-75 { color: rgba(255,255,255,.75); }

.app-navbar {
    background: linear-gradient(135deg, #101827, #1b2b5a, #2457ff);
    box-shadow: 0 10px 30px rgba(16, 24, 40, .18);
}
.brand-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: rgba(255,255,255,.16);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
}

.hero-card {
    border-radius: 28px;
    padding: 28px;
    color: #fff;
    background:
        radial-gradient(circle at top right, rgba(253,176,34,.55), transparent 28%),
        linear-gradient(135deg, #101827, #14275e 48%, #2457ff);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.quick-math-card {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 22px;
    padding: 22px;
    backdrop-filter: blur(10px);
}
.big-number {
    font-size: clamp(2.2rem, 6vw, 4rem);
    line-height: 1;
    font-weight: 900;
}

.app-card {
    border: 0;
    border-radius: 24px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.form-label {
    font-weight: 800;
    font-size: .84rem;
    color: #344054;
}
.form-control, .input-group-text {
    border-radius: 13px;
    border-color: #d0d5dd;
}
.input-group > .form-control { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group > .input-group-text:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .input-group-text:last-child { border-top-left-radius: 0; border-bottom-left-radius: 0; }

.stat-card {
    border: 0;
    border-radius: 22px;
    box-shadow: var(--shadow);
    background: #fff;
}
.stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eff4ff;
    color: var(--primary);
}
.stat-value {
    font-size: 1.55rem;
    font-weight: 900;
}
.stat-label { color: var(--muted); font-size: .82rem; font-weight: 700; }

.table thead th {
    font-size: .75rem;
    color: #475467;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: #f9fafb;
}
.table td { font-size: .9rem; }
.badge-soft-success { background: #ecfdf3; color: #027a48; }
.badge-soft-warning { background: #fffaeb; color: #b54708; }
.badge-soft-danger { background: #fef3f2; color: #b42318; }
.row-danger td { background: #fff1f0 !important; }
.row-warning td { background: #fffaeb !important; }

.plan-item {
    border: 1px solid #eaecf0;
    border-radius: 18px;
    padding: 14px;
    background: #fff;
}

@media print {
    nav, .hero-card, form, .modal, .toast-container, .btn { display: none !important; }
    body { background: #fff; }
    .app-card { box-shadow: none; border: 1px solid #ddd; }
}
