
/* Minimal styles (no CDN) */
:root{ --bg:#0d6efd; --bg-dark:#212529; --muted:#6c757d; --danger:#dc3545; --success:#198754; }
*{box-sizing:border-box} body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:#f8f9fa}
.nav{position:fixed;top:0;left:0;right:0;background:var(--bg-dark);color:#fff;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem}
.nav a{color:#fff;text-decoration:none;margin-right:1rem}
.container{max-width:1200px;margin:4rem auto 2rem;padding:0 1rem}
.btn{display:inline-block;padding:.375rem .75rem;border:1px solid #ccc;border-radius:.25rem;background:#fff;color:#000;text-decoration:none;cursor:pointer}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.outline{background:transparent;color:#fff;border-color:#fff}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border-top:1px solid #dee2e6;padding:.5rem;vertical-align:top}
.badge{display:inline-block;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem}
.badge.dark{background:#343a40;color:#fff}
.badge.success{background:var(--success);color:#fff}
.badge.danger{background:var(--danger);color:#fff}
.badge.info{background:#0dcaf0;color:#000}
.card{border:1px solid #dee2e6;border-radius:.25rem;background:#fff}
.card .card-h{padding:.5rem .75rem;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;align-items:center}
.card .card-b{padding:.75rem}
.row{display:flex;flex-wrap:wrap;gap:1rem}
.col{flex:1 1 0}
.col-3{flex:1 1 calc(25% - 1rem)}
.col-6{flex:1 1 calc(50% - 1rem)}
.col-9{flex:1 1 calc(75% - 1rem)}
.input{width:100%;padding:.5rem;border:1px solid #ced4da;border-radius:.25rem}
.form-inline{display:flex;gap:.5rem}
.alert{padding:.5rem .75rem;border:1px solid transparent;border-radius:.25rem;margin:.5rem 0}
.alert.warn{background:#fff3cd;border-color:#ffecb5;color:#664d03}
.small{font-size:.875rem}
.muted{color:var(--muted)}
.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}
.text-right{text-align:right}.text-break{word-break:break-word}
.sticky{position:sticky;top:4rem}
.row-removed{background: #fff0f0}
.row-added{background: #f0fff0}
