:root {
    --brand: #0f4c5c;
    --brand-2: #1b7f79;
}

body { background: #f4f6f8; font-size: .93rem; }
.bg-brand { background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
.btn-brand { background: var(--brand); color: #fff; }
.btn-brand:hover { background: var(--brand-2); color: #fff; }

.card { border: 0; box-shadow: 0 1px 3px rgba(16, 24, 40, .08); }
.card-header { background: #fff; font-weight: 600; }

.kpi { background: #fff; border-radius: .6rem; padding: .8rem 1rem; box-shadow: 0 1px 3px rgba(16, 24, 40, .08); height: 100%; }
.kpi .label { font-size: .75rem; color: #6c757d; text-transform: uppercase; letter-spacing: .03em; }
.kpi .value { font-size: 1.35rem; font-weight: 700; white-space: nowrap; }
.kpi .hint { font-size: .75rem; color: #6c757d; }
.kpi.good { border-left: 4px solid #198754; }
.kpi.warn { border-left: 4px solid #fd7e14; }
.kpi.bad { border-left: 4px solid #dc3545; }

.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.table-report { font-size: .82rem; }
.table-report th { background: #eaf2f5; white-space: nowrap; position: sticky; top: 0; }
.table-report tr.tone-bad td { color: #b02a37; }
.table-report tr.tone-warn td { color: #995400; background: #fff8ec; }
.table-report tr.tone-good td { color: #146c43; }
.table-report tfoot td { font-weight: 700; background: #f1f3f5; border-top: 2px solid #adb5bd; }

.sheet-section .card-header { display: flex; justify-content: space-between; align-items: center; }
.sheet-section table td { vertical-align: middle; }
.sheet-section .form-control, .sheet-section .form-select { min-width: 90px; }
.amount { text-align: right; font-variant-numeric: tabular-nums; }
.summary-sticky { position: sticky; top: 1rem; }
.summary-line { display: flex; justify-content: space-between; padding: .2rem 0; border-bottom: 1px dashed #e5e7eb; }
.summary-line.total { font-weight: 700; border-bottom: 2px solid #adb5bd; }
.fc-badge { font-size: 1.1rem; }

.branch-picker .dropdown-menu { max-height: 320px; overflow: auto; }
.preset-btns .btn { margin: 0 .2rem .3rem 0; }

/* ---- partner dashboard: big, simple, colourful ---- */
.p-hero { background: linear-gradient(135deg, #0f4c5c, #1b7f79 60%, #27a589); color: #fff; border-radius: 18px; padding: 22px; box-shadow: 0 6px 18px rgba(15, 76, 92, .25); }
.p-hello { font-size: 1.1rem; opacity: .9; }
.p-caption { font-size: .8rem; letter-spacing: .06em; opacity: .8; margin-top: 6px; }
.p-big { font-size: clamp(2rem, 7vw, 3.2rem); font-weight: 800; line-height: 1.1; }
.p-pill { background: rgba(255, 255, 255, .15); border-radius: 12px; padding: 10px 12px; height: 100%; }
.p-pill-label { font-size: .8rem; opacity: .85; }
.p-pill-val { font-size: 1.25rem; font-weight: 700; }
.ring { --p: 0; --c: #198754; --t: #e9ecef; width: 84px; height: 84px; border-radius: 50%; flex: none;
        background: conic-gradient(var(--c) calc(var(--p) * 1%), var(--t) 0); display: grid; place-items: center; }
.ring-inner { width: 64px; height: 64px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.05rem; color: #0f4c5c; }
.ring-light { --c: #ffd166; --t: rgba(255, 255, 255, .25); }
.ring-light .ring-inner { background: #13606f; color: #fff; }
.p-section { font-weight: 700; font-size: 1.1rem; margin: 18px 0 10px; }
.p-tile { background: #fff; border-radius: 14px; padding: 14px 6px; box-shadow: 0 1px 4px rgba(0, 0, 0, .08); height: 100%; }
.p-sym { width: 40px; height: 40px; border-radius: 50%; color: #fff; font-size: 1.6rem; font-weight: 800; line-height: 40px; margin: 0 auto 6px; }
.p-tile-label { color: #6c757d; font-size: .85rem; }
.p-tile-val { font-size: clamp(1.05rem, 4.5vw, 1.6rem); font-weight: 800; }
.p-line { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed #e5e7eb; }
.p-line.big { font-size: 1.15rem; }
.p-light { width: 34px; height: 34px; border-radius: 50%; flex: none; box-shadow: 0 0 0 6px rgba(0, 0, 0, .05); }
.p-details { background: #fff; border-radius: 12px; padding: 12px 16px; box-shadow: 0 1px 3px rgba(0, 0, 0, .06); }
.p-details summary { cursor: pointer; font-weight: 600; }
.btn-report { background: #fff; border: 2px solid var(--brand); color: var(--brand); font-weight: 600; border-radius: 12px; padding: 14px 8px; }
.btn-report:hover { background: var(--brand); color: #fff; }

@media print {
    .no-print, .navbar, footer, .btn, form.filter-bar { display: none !important; }
    body { background: #fff; font-size: 10pt; }
    main { padding: 0 !important; }
    .card { box-shadow: none; border: 1px solid #ddd; }
    .table-report th { position: static; }
    .kpi { box-shadow: none; border: 1px solid #ddd; }
}
