/* Roto-Fix Brand System — code-driven theme modeled on the approved dashboard reference. */
:root{
  --rfx-brand-navy:#062b63;
  --rfx-brand-navy-2:#031f49;
  --rfx-brand-blue:#0b63e5;
  --rfx-brand-blue-2:#1f78f0;
  --rfx-brand-red:#ef1727;
  --rfx-brand-red-2:#c90d1c;
  --rfx-brand-ink:#102246;
  --rfx-brand-muted:#6e83a5;
  --rfx-brand-line:#d9e4f2;
  --rfx-brand-soft:#f3f7fc;
  --rfx-brand-soft-blue:#edf5ff;
  --rfx-brand-white:#fff;
  --rfx-brand-green:#18a957;
  --rfx-brand-shadow:0 12px 36px rgba(31,63,105,.09);
  --rfx-brand-radius:18px;
}
html{background:var(--rfx-brand-soft)}
body{background:var(--rfx-brand-soft)!important;color:var(--rfx-brand-ink)!important;font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif!important}
.rfx-brand-img{display:block;width:auto;max-width:100%;height:48px;object-fit:contain}
.rfx-brand-img.large{height:72px}
.rfx-brand-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:900;color:#8aa0bf}
.rfx-brand-tagline{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:850;color:#8aa0bf;line-height:1.35}
.rfx-brand-redline{width:36px;height:3px;border-radius:999px;background:var(--rfx-brand-red)}

/* Shared surfaces and controls */
.card,.box,.hero-card,.module-card,.group,.kpi{border:1px solid var(--rfx-brand-line)!important;border-radius:var(--rfx-brand-radius)!important;box-shadow:var(--rfx-brand-shadow)!important;background:#fff!important}
.btn,button{font-family:inherit}
.btn.primary,.primary,.btn-login,.portal-modal .btn.primary{background:var(--rfx-brand-blue)!important;border-color:var(--rfx-brand-blue)!important;color:#fff!important;box-shadow:0 8px 18px rgba(11,99,229,.18)}
.btn.danger,.danger{background:var(--rfx-brand-red)!important;color:#fff!important;border-color:var(--rfx-brand-red)!important}
.btn.light,.btn.ghost,.ghost{background:#fff!important;color:var(--rfx-brand-ink)!important;border:1px solid var(--rfx-brand-line)!important}
.btn:hover,button:hover{filter:none!important;transform:translateY(-1px)}
input,select,textarea,.search{border:1px solid #cddaea!important;background:#fff!important;color:var(--rfx-brand-ink)!important;border-radius:12px!important;box-shadow:none!important}
input:focus,select:focus,textarea:focus,.search:focus{border-color:#75a8ee!important;box-shadow:0 0 0 3px rgba(11,99,229,.1)!important;outline:0!important}
.wrap table,.table-wrap table,table{color:var(--rfx-brand-ink)}
th{background:#f5f8fc!important;color:#5a7094!important;text-transform:none!important;letter-spacing:0!important;font-weight:850!important}
td,th{border-bottom:1px solid #e3ebf5!important}
tr:hover td{background:#fbfdff}
.badge,.status{font-weight:850!important}
.note{background:#f0f6ff!important;border-color:#cfe0f7!important;color:#244b7f!important}

/* Central office shell — fixed left navy navigation, white top bar. */
body:has(.app>.side#side) .app{display:flex!important;min-height:100vh!important}
body:has(.app>.side#side) .side{
  width:228px!important;position:fixed!important;inset:0 auto 0 0!important;z-index:70!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;overflow:auto!important;
  background:linear-gradient(180deg,#073570 0%,#04295d 52%,#032450 100%)!important;box-shadow:none!important;color:#fff!important
}
body:has(.app>.side#side) .side::after{content:"";position:absolute;left:-70px;bottom:-110px;width:300px;height:300px;border:32px solid rgba(32,112,219,.18);border-radius:50%;pointer-events:none}
body:has(.app>.side#side) .side .brand{min-width:0!important;width:auto!important;padding:18px 20px!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.09)!important;display:block!important;background:rgba(0,0,0,.05)}
body:has(.app>.side#side) .side .brand>a{display:flex;align-items:center;text-decoration:none}
body:has(.app>.side#side) .side .brand .rfx-brand-img{height:42px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.08))}
body:has(.app>.side#side) .side .brand small{display:block!important;margin-top:7px!important;color:#b9cae3!important;font-size:10px!important;letter-spacing:.14em!important;text-transform:uppercase;font-weight:800!important}
body:has(.app>.side#side) .nav{display:grid!important;align-content:start!important;gap:7px!important;padding:18px 10px!important;overflow:visible!important;flex:1!important}
body:has(.app>.side#side) .nav-group{position:relative!important;width:100%!important}
body:has(.app>.side#side) .nav-group>summary{min-width:0!important;width:100%!important;border:0!important;border-radius:9px!important;padding:12px 13px!important;color:#d9e7fb!important;background:transparent!important;font-size:13px!important;font-weight:750!important}
body:has(.app>.side#side) .nav-group>summary:hover,body:has(.app>.side#side) .nav-group[open]>summary{background:#0b63e5!important;color:#fff!important}
body:has(.app>.side#side) .nav-group-menu{position:static!important;display:grid!important;min-width:0!important;margin:5px 0 4px 10px!important;padding:4px!important;border:0!important;border-radius:10px!important;background:rgba(0,0,0,.10)!important;box-shadow:none!important}
body:has(.app>.side#side) .nav .nav-group-menu button,body:has(.app>.side#side) .nav .nav-group-menu a{color:#d8e5f8!important;border-radius:8px!important;padding:9px 10px!important;font-size:12px!important}
body:has(.app>.side#side) .nav .nav-group-menu button:hover,body:has(.app>.side#side) .nav .nav-group-menu button.active,body:has(.app>.side#side) .nav .nav-group-menu a:hover{background:rgba(11,99,229,.95)!important;color:#fff!important}
body:has(.app>.side#side) .main{margin-left:228px!important;width:calc(100% - 228px)!important;min-width:0!important}
body:has(.app>.side#side) .top{top:0!important;height:70px!important;background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--rfx-brand-line)!important;box-shadow:0 3px 15px rgba(27,56,92,.04)!important;padding:0 22px!important;z-index:50!important}
.rfx-top-left{display:flex;align-items:center;gap:12px;min-width:180px}.rfx-menu-toggle{display:none;border:0;background:transparent;color:var(--rfx-brand-navy);font-size:18px;width:38px;height:38px;border-radius:10px}.rfx-page-title{display:grid;gap:2px}.rfx-page-title strong{font-size:17px!important;color:var(--rfx-brand-ink)}.rfx-page-title small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#91a0b9;font-weight:800}
.rfx-top-search{margin-left:auto;margin-right:20px;position:relative;width:min(310px,28vw)}.rfx-top-search i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#647b9e}.rfx-top-search input{width:100%;height:40px;padding:0 14px 0 38px!important;border-radius:10px!important;background:#f7faff!important;font-size:12px!important}
.rfx-top-user{display:flex;align-items:center;gap:10px;white-space:nowrap}.rfx-alert{position:relative;width:36px;height:36px;border:0!important;background:transparent!important;color:#3e5f89;font-size:17px}.rfx-alert-dot{position:absolute;right:4px;top:3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--rfx-brand-red);color:#fff;font-size:9px;display:grid;place-items:center;font-weight:900}.rfx-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--rfx-brand-navy);color:#fff;font-weight:900;font-size:12px}.rfx-top-user #who{max-width:170px;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:800;color:#395273}.rfx-top-user .btn{min-height:34px!important;padding:7px 10px!important;border-radius:9px!important;font-size:11px!important}
body:has(.app>.side#side) .content{max-width:none!important;margin:0!important;padding:28px!important;background:linear-gradient(180deg,#f7faff 0%,#f2f6fb 100%)!important;min-height:calc(100vh - 70px)}

/* Dashboard overview generated by JS. */
.rfx-overview{display:grid;gap:18px}.rfx-welcome{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:8px 2px 2px}.rfx-welcome::after{content:"";position:absolute;right:7%;top:-70px;width:220px;height:220px;border:26px solid rgba(24,96,189,.06);border-radius:50%;pointer-events:none}.rfx-welcome-copy{position:relative;z-index:1}.rfx-welcome-copy span{color:#687f9f;font-size:13px;font-weight:700}.rfx-welcome-copy h1{margin:5px 0 3px;font-size:clamp(28px,3.5vw,43px);letter-spacing:-1.3px;color:#0d2347}.rfx-welcome-copy p{margin:0;color:#6e82a0;font-size:13px}.rfx-welcome-date{position:relative;z-index:1;display:flex;gap:10px;align-items:center;min-width:270px}.rfx-welcome-date .icon{width:38px;height:38px;border-radius:10px;background:#fff;border:1px solid var(--rfx-brand-line);display:grid;place-items:center;color:#315a92}.rfx-welcome-date strong{display:block;font-size:12px}.rfx-welcome-date span{font-size:11px;color:#7890ae}
.rfx-brand-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rfx-stat-card{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;background:#fff;border:1px solid var(--rfx-brand-line);border-radius:16px;padding:16px 17px;box-shadow:var(--rfx-brand-shadow)}.rfx-stat-icon{width:48px;height:48px;border-radius:13px;background:#e9f2ff;color:#0b63e5;display:grid;place-items:center;font-size:19px}.rfx-stat-card.red .rfx-stat-icon{background:#ffe7ea;color:var(--rfx-brand-red)}.rfx-stat-value{font-size:28px;font-weight:900;line-height:1;color:#0d2146}.rfx-stat-label{margin-top:5px;color:#607797;font-size:12px;font-weight:750}.rfx-stat-sub{grid-column:1/-1;font-size:10px;color:#9aabc0;margin-top:-2px}.rfx-overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:14px}.rfx-panel-card{background:#fff;border:1px solid var(--rfx-brand-line);border-radius:17px;padding:17px;box-shadow:var(--rfx-brand-shadow);min-width:0}.rfx-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.rfx-panel-head h2{font-size:17px;margin:0;color:#0f2345}.rfx-panel-head .btn{font-size:11px;padding:8px 10px!important;min-height:34px!important;border-radius:9px!important}.rfx-activity-list{display:grid}.rfx-activity-item{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:start;padding:10px 0;border-bottom:1px solid #edf1f6}.rfx-activity-item:last-child{border-bottom:0}.rfx-activity-icon{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#e8f2ff;color:#0b63e5;font-size:12px}.rfx-activity-item strong{font-size:11px;display:block;color:#183255}.rfx-activity-item span{font-size:10px;color:#7890ae}.rfx-activity-time{font-size:9px!important;white-space:nowrap}
.rfx-quick-actions{display:grid;gap:8px;margin-top:14px}.rfx-quick-main{display:flex;align-items:center;justify-content:space-between;border:0!important;border-radius:12px!important;background:var(--rfx-brand-red)!important;color:#fff!important;padding:13px 15px!important;font-size:13px;font-weight:900;cursor:pointer}.rfx-quick-secondary{display:flex;align-items:center;gap:9px;border:1px solid var(--rfx-brand-line)!important;background:#fff!important;color:#17375f!important;border-radius:10px!important;padding:10px 12px!important;font-size:11px;font-weight:850;cursor:pointer}.rfx-quick-secondary i{color:#0b63e5;width:16px;text-align:center}.rfx-bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:14px}.rfx-brand-banner{position:relative;overflow:hidden;min-height:145px;border-radius:17px;padding:22px;background:linear-gradient(115deg,#05285a,#073b83 62%,#0d5cc8);color:#fff;box-shadow:var(--rfx-brand-shadow)}.rfx-brand-banner::after{content:"";position:absolute;right:-12px;bottom:-88px;width:230px;height:230px;border:32px solid rgba(255,255,255,.11);border-radius:50%}.rfx-brand-banner .rfx-brand-img{height:30px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.15));margin-bottom:11px}.rfx-brand-banner h3{font-size:23px;margin:0 0 5px;font-style:italic}.rfx-brand-banner p{margin:0;color:#d8e7fb;font-size:11px}.rfx-brand-banner .rfx-brand-redline{margin-top:14px}.rfx-material-card{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:13px;min-height:145px;background:#fff;border:1px solid var(--rfx-brand-line);border-radius:17px;padding:18px;box-shadow:var(--rfx-brand-shadow)}.rfx-material-card .icon{width:48px;height:48px;border-radius:14px;background:#eef5ff;display:grid;place-items:center;color:#0b63e5;font-size:21px}.rfx-material-card h3{margin:0 0 4px;font-size:16px}.rfx-material-card p{margin:0;color:#7187a5;font-size:11px;line-height:1.5}.rfx-material-card .btn{font-size:11px;min-height:34px!important;border-radius:9px!important}
body:has(.app>.side#side) .stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}.card.stat{border-radius:15px!important;padding:17px!important}.card.stat.risk{border-left:0!important;position:relative}.card.stat.risk::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:999px;background:#0b63e5}.card.stat strong{color:#10244a!important}.card.stat span{color:#7388a6!important;font-weight:700}
body:has(.app>.side#side) .card>.toolbar h2{font-size:17px!important;color:#10244a!important}
body:has(.app>.side#side) .wrap{border-color:var(--rfx-brand-line)!important;border-radius:12px!important;max-height:64vh!important}
body:has(.app>.side#side) table{font-size:12px!important}body:has(.app>.side#side) th,body:has(.app>.side#side) td{font-size:11px!important;padding:10px 11px!important}

/* Franchise portal becomes the same branded shell. */
body.rfx-franchise-admin{background:#f2f6fb!important}.rfx-franchise-app{min-height:100vh}.rfx-franchise-app .portal-side{position:fixed;inset:0 auto 0 0;width:228px;background:linear-gradient(180deg,#073570,#032450);padding:18px 10px;z-index:70;overflow:auto}.portal-side-logo{display:block;padding:0 9px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.portal-side-logo .rfx-brand-img{height:42px}.portal-side-caption{padding:13px 10px 0;color:#b8cbe5;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:850}.rfx-franchise-app .shell{max-width:none!important;margin:0 0 0 228px!important;padding:0!important;min-height:100vh}.rfx-franchise-app .top{position:sticky;top:0;z-index:55;height:70px!important;border-radius:0!important;border:0!important;border-bottom:1px solid var(--rfx-brand-line)!important;box-shadow:0 3px 15px rgba(27,56,92,.04)!important;padding:0 22px!important}.rfx-franchise-app .top .brand .logo{display:none!important}.rfx-franchise-app .top .brand strong{font-size:15px;color:#10244a}.rfx-franchise-app .top .brand small{font-size:10px!important}.rfx-franchise-app .tools .btn{border-radius:9px!important;font-size:11px!important;min-height:34px!important;padding:7px 10px!important}.rfx-franchise-app .portal-body{padding:24px;max-width:1540px;margin:auto}.rfx-franchise-app .groups{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;margin:18px 0 0!important}.rfx-franchise-app .group{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}.rfx-franchise-app .group-title{color:#9fb8d8!important;font-size:9px!important;padding:9px 10px 5px;margin:0!important}.rfx-franchise-app .tabs{display:grid!important;gap:5px!important}.rfx-franchise-app .tab{width:100%!important;text-align:left!important;border:0!important;background:transparent!important;color:#dbe8f9!important;border-radius:9px!important;padding:10px 11px!important;font-size:11px!important}.rfx-franchise-app .tab:hover,.rfx-franchise-app .tab.active{background:#0b63e5!important;color:#fff!important}.rfx-franchise-app .hero{margin:0 0 14px!important;grid-template-columns:1.3fr .7fr!important}.rfx-franchise-app .identity{background:linear-gradient(135deg,#fff,#f8fbff)!important}.rfx-franchise-app .identity h1{color:#0e2b57!important}.rfx-franchise-app .sync strong{color:#0b63e5!important}.rfx-franchise-app .kpis{gap:12px!important}.rfx-franchise-app .kpi{padding:15px!important;border-radius:15px!important}.rfx-franchise-app .kpi strong{color:#0e2b57!important}.rfx-franchise-app .kpi span{color:#7287a3!important}.rfx-franchise-app #content{border-radius:17px!important}.rfx-franchise-app .module-card{background:#f8fbff!important}.rfx-franchise-app .module-card i{color:#0b63e5!important}

/* Operations and profile pages: same surfaces and brand header. */
.ops-top{background:#fff!important;border-bottom:1px solid var(--rfx-brand-line)!important;box-shadow:0 3px 15px rgba(27,56,92,.04)!important}.ops-brand{color:#0d2c58!important}.ops-brand>i{display:none!important}.ops-brand .rfx-brand-img{height:34px}.ops-hero{background:linear-gradient(135deg,#062f68,#0b5ecf)!important;color:#fff!important;border:0!important}.ops-hero .muted,.ops-hero p{color:#dceaff!important}.ops-shell{background:#f2f6fb!important}.ops-menu a{color:#1b4d89!important}.module.card{border-color:var(--rfx-brand-line)!important}

/* Public index: code-built corporate brand, not generic blue landing page. */
body[data-rfx-no-tools="true"] .topbar{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--rfx-brand-line)!important;box-shadow:0 2px 14px rgba(18,51,88,.04)}body[data-rfx-no-tools="true"] .topbar .nav{height:72px!important}.brand.rfx-public-brand{gap:15px!important}.brand.rfx-public-brand .rfx-brand-img{height:45px}.rfx-public-tagline{padding-left:14px;border-left:1px solid #dce6f3;color:#8a9fbb;font-size:9px;line-height:1.45;letter-spacing:.12em;text-transform:uppercase;font-weight:900}.hero.rfx-public-hero{background:linear-gradient(115deg,#05285a 0%,#073b83 63%,#0a58bd 100%)!important;color:#fff!important;padding:88px 0 70px!important}.hero.rfx-public-hero::after{right:7%!important;top:34px!important;width:330px!important;height:330px!important;background:transparent!important;border:42px solid rgba(255,255,255,.08)!important;filter:none!important}.hero.rfx-public-hero h2{color:#fff!important}.hero.rfx-public-hero .lead{color:#dbe9fa!important}.hero.rfx-public-hero .eyebrow{background:rgba(255,255,255,.12)!important;color:#fff!important}.hero.rfx-public-hero .hero-card{background:rgba(255,255,255,.97)!important}.why{background:#062c63!important}.access{background:linear-gradient(115deg,#0b63e5,#062b63)!important}.footer{background:#021a3d!important}.service .icon{background:#edf5ff!important;color:#0b63e5!important}.service:nth-child(4n+2) .icon{background:#ffe8eb!important;color:#e51b2a!important}

/* Login pages */
body.rf-central-login,.rfx-franchise-login{background:linear-gradient(135deg,#041f48,#073777 58%,#0b63e5)!important}.rf-central-login .intro,.rfx-franchise-login .intro{background:linear-gradient(155deg,#062b63,#0a4da7)!important}.rf-central-login .intro .mark,.rfx-franchise-login .intro .mark{width:auto!important;height:auto!important;background:transparent!important;border-radius:0!important;display:block!important}.rf-central-login .intro .mark .rfx-brand-img,.rfx-franchise-login .intro .mark .rfx-brand-img{height:64px}.rf-central-login .intro h1,.rfx-franchise-login .intro h1{display:none}.rf-central-login .btn-login,.rfx-franchise-login .btn{background:var(--rfx-brand-red)!important}.rf-central-login .form-side,.rfx-franchise-login .form-side{background:#fff}.rf-central-login .wrap,.rfx-franchise-login .wrap{box-shadow:0 32px 86px rgba(1,20,48,.42)!important}

/* Modal styling */
.modal,.portal-modal,.info-modal{background:rgba(3,24,55,.62)!important;backdrop-filter:blur(2px)}.box,.portal-modal-box,.info-card{border:1px solid #d8e3f0!important;border-radius:20px!important}.form-status.error{background:#fff1f2!important;color:#a31322!important;border-color:#ffc9cf!important}.form-status.success{background:#edfff4!important;color:#126632!important;border-color:#b9edcb!important}

@media(max-width:1100px){
  .rfx-brand-stats{grid-template-columns:repeat(2,1fr)}.rfx-overview-grid,.rfx-bottom-grid{grid-template-columns:1fr}.rfx-welcome{align-items:flex-start}.rfx-welcome-date{min-width:0}
  .rfx-franchise-app .hero{grid-template-columns:1fr!important}.rfx-franchise-app .kpis{grid-template-columns:repeat(3,1fr)!important}
}
@media(max-width:820px){
  body:has(.app>.side#side) .side{transform:translateX(-100%);transition:transform .22s ease;width:245px!important}body.rfx-nav-open:has(.app>.side#side) .side{transform:none}body:has(.app>.side#side) .main{margin-left:0!important;width:100%!important}.rfx-menu-toggle{display:grid;place-items:center}.rfx-top-search{display:none}.rfx-top-user #who{display:none!important}body:has(.app>.side#side) .content{padding:16px!important}
  .rfx-franchise-app .portal-side{transform:translateX(-100%);transition:transform .22s ease;width:245px}.rfx-franchise-app.rfx-nav-open .portal-side{transform:none}.rfx-franchise-app .shell{margin-left:0!important}.rfx-franchise-app .portal-body{padding:16px}}
@media(max-width:640px){.rfx-brand-stats{grid-template-columns:1fr}.rfx-welcome{display:grid}.rfx-welcome-copy h1{font-size:30px}.rfx-material-card{grid-template-columns:44px 1fr}.rfx-material-card .btn{grid-column:1/-1;width:100%}.rfx-franchise-app .kpis{grid-template-columns:repeat(2,1fr)!important}.rfx-public-tagline{display:none}.brand.rfx-public-brand .rfx-brand-img{height:38px}}
