
/* Container */
.pb { font:16px/1.4 system-ui,Segoe UI,Roboto,Arial; color:#222; }
.pb h2 { font-size:36px; margin:6px 0 12px; color:#ff4fb8; font-weight:900; letter-spacing:.5px }
.pb h3 { margin:8px 0 10px; color:#444; font-weight:800 }
.pb-muted { color:#708090 }
.pb-note { color:#8088ff; font-size:12px; margin-left:6px }

/* Blocks & buttons */
.pb-card { background:#fff; border:1px solid #ececf2; border-radius:14px; padding:14px; box-shadow:0 4px 16px rgba(0,0,0,.05); }
.pb-box { background:#fff; border:1px solid #ececf2; border-radius:10px; padding:12px; }
.pb-btn { background:#1b2652; color:#fff; border:0; border-radius:10px; padding:10px 12px; cursor:pointer }
.pb-btn:hover { opacity:.92 }
.pb-danger { background:#b23b4c }
.pb-flash { background:#e7f1ff; border:1px solid #bdd6ff; padding:10px 12px; border-radius:10px; margin-bottom:12px }
.pb-login-required { border-color:#ffd7d7; background:#fff6f6 }

/* Inputs */
.pb-input, .pb select.pb-input { width:100%; padding:10px 12px; border-radius:10px; border:1px solid #dfe3ee; background:#fff; }
.pb-checkbox { display:flex; align-items:center; gap:8px; }

/* Layout helpers */
.pb-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.pb-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap:16px; }
.pb-right { text-align:right }
.pb-admin { display:flex; gap:8px; align-items:center; margin:8px 0 14px }

/* Pills */
.pb-pill { display:inline-block; padding:6px 10px; border-radius:999px; background:#f3f6ff; border:1px solid #dfe3ff; font-size:12px; margin-right:6px }
.pb-good { color:#2eaa6b } .pb-bad { color:#d45 }

/* Category cards */
.pb-cat { border-top:6px solid var(--pb-accent,#ff7ac7); }
.pb-cat-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px }
.pb-cat-title { display:flex; align-items:center; gap:8px; font-size:18px }
.pb-dot { width:10px; height:10px; border-radius:999px; display:inline-block }
.pb-cat-pill { display:flex; gap:6px; flex-wrap:wrap }
.pb-cat-footer { margin-top:8px; text-align:right }

/* Tables */
.pb-table { width:100%; border-collapse:collapse; }
.pb-table th, .pb-table td { padding:8px 6px; border-bottom:1px dashed #e8ebf4; }
.pb-table th { text-align:left; color:#5b6ea6; font-weight:700; }
.pb-tight th, .pb-tight td { padding:6px 4px }
.pb-section { margin-top:18px }
.pb-header { margin:10px 0 16px }
.pb-totals { margin-top:10px }
