:root{--navy:#15243a;--blue:#2457a7;--bg:#f4f7fb;--line:#dfe6ef;--text:#182334;--muted:#637187;--green:#16805d;--red:#b42318}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.top{background:var(--navy);color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{font-weight:750;font-size:18px}.top a{color:#fff}.wrap{max-width:1200px;margin:28px auto;padding:0 18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 2px 8px #14233b08}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{font-size:28px;font-weight:750}.muted{color:var(--muted);font-size:13px}.btn,button{display:inline-block;border:0;border-radius:8px;background:var(--blue);color:#fff;padding:10px 14px;font-weight:650;cursor:pointer;font-size:14px}.btn.secondary,button.secondary{background:#e9eef6;color:#20334f}.btn.danger{background:#b42318}.row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}h1{font-size:26px;margin:0 0 16px}h2{font-size:19px;margin:0 0 12px}label{display:block;font-weight:650;margin:12px 0 5px}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:10px 11px;font:inherit;background:#fff}textarea{min-height:88px;resize:vertical}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.wide{grid-column:1/-1}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafc}.pill{display:inline-block;border-radius:99px;background:#eaf0fb;padding:3px 9px;font-size:12px}.notice{padding:12px 14px;border-radius:8px;background:#e9f7ef;color:#14532d;margin-bottom:16px}.error{background:#fff0ef;color:#912018}.login{max-width:460px;margin:7vh auto}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline{display:inline}.inline button{padding:6px 9px}.navlinks{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.empty{padding:28px;text-align:center;color:var(--muted)}@media(max-width:760px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}.top{padding:14px}.wrap{margin:18px auto}.card{padding:16px}}
/* ---- Phase 2A: Rate Master (additive styles) ---- */
.rm-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px;border-bottom:1px solid var(--line)}.rm-tabs a{padding:9px 14px;border-radius:8px 8px 0 0;color:var(--muted);font-weight:650}.rm-tabs a.on{background:#fff;color:var(--text);border:1px solid var(--line);border-bottom-color:#fff;margin-bottom:-1px}.rm-tabs a:hover{text-decoration:none;color:var(--text)}
.rm-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 14px}.rm-span2{grid-column:span 2}.rm-filter-actions{grid-column:1/-1;margin-top:14px}
.rm-badge{display:inline-block;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:650;background:#eaf0fb;color:#20334f;vertical-align:middle}.rm-badge.ok{background:#e3f5ec;color:#11603f}.rm-badge.warn{background:#fff4dc;color:#7a4b00}.rm-badge.bad{background:#fff0ef;color:#912018}.rm-badge.off{background:#eceff3;color:#4b5565}
.rm-money{white-space:nowrap;font-variant-numeric:tabular-nums}.rm-nowrap{white-space:nowrap}.rm-count{margin:0 0 6px}
.rm-pager{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:16px}.rm-page{display:inline-block;min-width:36px;text-align:center;padding:8px 10px;border-radius:8px;background:#f1f4f9;color:#20334f}.rm-page.on{background:var(--blue);color:#fff;font-weight:700}
.rm-req{color:var(--red)}.rm-hint{grid-column:1/-1;margin-top:10px}.rm-costs{border-color:#f1d9a6}
button.rm-danger{background:var(--red)}
.rm-access{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.rm-check{display:inline-flex;gap:6px;align-items:center;font-weight:500;margin:0}.rm-check input{width:auto}
@media(max-width:760px){.rm-filters{grid-template-columns:1fr}.rm-span2{grid-column:auto}}
