:root{--rbtv-navy:#0b1736;--rbtv-navy2:#12234f;--rbtv-red:#ef3340;--rbtv-gold:#f6a800;--rbtv-blue:#1677d2;--ink:#17213a;--muted:#72809a;--line:#e5eaf2;--bg:#f5f7fb}
*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app-shell{min-height:100vh;display:flex}.sidebar{width:260px;background:linear-gradient(180deg,#09152f 0%,#0d1e43 55%,#09152f 100%);color:#fff;position:fixed;inset:0 auto 0 0;padding:16px 14px;display:flex;flex-direction:column;z-index:20;box-shadow:8px 0 30px rgba(5,17,45,.12)}.brand{display:flex;align-items:center;gap:10px;padding:3px 4px 12px}.brand-logo{width:126px;height:auto}.brand-copy{border-left:1px solid rgba(255,255,255,.16);padding-left:10px}.brand-copy strong{font-size:12px;letter-spacing:1.5px;display:block}.brand-copy small{display:block;font-size:9px;color:#b8c4dc}.brand-line{margin:0 4px 16px;padding:10px 11px;border:1px solid rgba(255,255,255,.11);border-radius:11px;background:rgba(255,255,255,.04)}.brand-line span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--rbtv-red);box-shadow:0 0 0 4px rgba(239,51,64,.12);margin-right:7px}.brand-line b{font-size:11px;letter-spacing:.8px}.brand-line em{display:block;color:#aebbd3;font-size:9px;font-style:normal;margin-top:4px;margin-left:14px}.nav-link{color:#cbd6e9;border-radius:10px;margin:2px 0;padding:11px 12px;display:flex;gap:12px;align-items:center;font-size:13px;font-weight:600;transition:.2s}.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.nav-link.active{background:linear-gradient(90deg,var(--rbtv-red),#ff4f59);color:#fff;box-shadow:0 7px 18px rgba(239,51,64,.2)}.nav-link i{font-size:17px;width:20px;text-align:center}.sidebar-foot{margin-top:auto;padding:12px 10px;color:#aebbd3;font-size:10px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-foot .live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2bd576;margin-right:6px}.sidebar-foot small{display:block;margin-top:5px;color:#7180a0}.main{margin-left:260px;width:calc(100% - 260px);min-height:100vh}.topbar{min-height:92px;background:#fff;border-bottom:1px solid var(--line);padding:15px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.topbar-title .eyebrow{font-size:9px;font-weight:800;letter-spacing:1.6px;color:var(--rbtv-red);margin-bottom:2px}.topbar h1{font-size:21px;margin:0;font-weight:800;color:var(--rbtv-navy)}.topbar small{color:var(--muted);font-size:12px}.user-menu{display:flex;gap:10px;align-items:center}.user-meta{text-align:right}.user-meta strong{display:block;font-size:12px}.user-meta small{display:block;font-size:9px;color:var(--muted);letter-spacing:1px}.avatar{width:36px;height:36px;border-radius:10px;background:#eef2f8;color:var(--rbtv-navy);display:grid;place-items:center}.logout-btn{width:36px;height:36px;border-radius:10px;background:#fff1f2;color:var(--rbtv-red);display:grid;place-items:center;text-decoration:none}.content{padding:24px}.kpi{border:0;border-radius:15px;color:#fff;min-height:116px;box-shadow:0 8px 24px rgba(20,35,70,.08);position:relative;overflow:hidden}.kpi:after{content:'';position:absolute;width:95px;height:95px;border-radius:50%;right:-28px;bottom:-38px;background:rgba(255,255,255,.12)}.kpi .num{font-size:32px;font-weight:800}.card{border:1px solid var(--line);border-radius:15px;box-shadow:0 6px 20px rgba(20,35,70,.045);background:#fff}.table thead th{font-size:11px;color:#65758b;background:#f8f9fc;white-space:nowrap}.table td{vertical-align:middle;font-size:13px}.table a{color:var(--rbtv-blue);font-weight:700;text-decoration:none}.searchbar{background:#fff;padding:14px;border-radius:14px;border:1px solid var(--line)}.badge{font-weight:700}.text-bg-purple{background:#7950f2!important}.public-wrap{max-width:1100px;margin:0 auto;padding:30px 20px}.public-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.public-brand img{width:150px}.public-brand b{display:block;font-size:13px;letter-spacing:1px;color:var(--rbtv-navy)}.public-brand small{color:var(--muted)}.form-label{font-weight:700;font-size:13px}.certificate{background:#fff;border:12px solid var(--rbtv-navy);padding:44px;text-align:center;min-height:600px;position:relative}.certificate:before{content:'';position:absolute;inset:16px;border:2px solid var(--rbtv-gold);pointer-events:none}.qrbox{display:inline-block;padding:8px;background:#fff;border:1px solid #ddd}.stat-label{font-size:13px;opacity:.9}.empty{padding:50px;text-align:center;color:#718096}.table-responsive{border-radius:12px}.btn{border-radius:9px;font-weight:600}.btn-primary{background:var(--rbtv-blue);border-color:var(--rbtv-blue)}.btn-danger{background:var(--rbtv-red);border-color:var(--rbtv-red)}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:10px}.timeline{border-left:3px solid var(--rbtv-blue);padding-left:18px}.timeline-item{position:relative;margin-bottom:18px}.timeline-item:before{content:'';width:10px;height:10px;background:var(--rbtv-blue);border-radius:50%;position:absolute;left:-25px;top:5px}.login-card{max-width:440px;margin:7vh auto}.login-card .card{overflow:hidden}.login-hero{background:linear-gradient(135deg,var(--rbtv-navy),#17306c);padding:28px;color:#fff}.login-hero img{width:145px;margin-bottom:12px}.login-hero h1{font-size:20px;margin:0 0 3px}.login-hero p{margin:0;color:#c5d1e8;font-size:12px}.public-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.muted{color:#718096}.app-footer{padding:18px 26px;color:#8a96aa;font-size:10px;display:flex;justify-content:space-between}.public-footer{text-align:center;padding:20px;color:#8993a7;font-size:11px}.alert{border-radius:11px}.form-control,.form-select{border-radius:9px;border-color:#dce3ed}.form-control:focus,.form-select:focus{border-color:#7faee0;box-shadow:0 0 0 .2rem rgba(22,119,210,.12)}
@media(max-width:900px){.sidebar{width:74px;padding:12px 8px}.brand{justify-content:center}.brand-logo{width:55px}.brand-copy,.brand-line,.nav-link span,.sidebar-foot{display:none}.nav-link{justify-content:center;padding:12px 8px}.main{margin-left:74px;width:calc(100% - 74px)}.content{padding:14px}.topbar{padding:12px 14px}.topbar h1{font-size:16px}.topbar-title .eyebrow{font-size:8px}.user-meta{display:none}.user-menu{gap:6px}}
