:root{--bg:#f4f6fa;--card:rgba(255,255,255,.82);--text:#17191d;--muted:#6e7582;--line:#dfe4ec;--blue:#087cff;--green:#18a66b;--amber:#e79522;--red:#e5484d;--shadow:0 18px 55px rgba(20,35,65,.09);--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 20% -10%,#dceaff 0,transparent 34%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:15px}a{color:inherit}button,input,select,textarea{font:inherit}.topbar{position:fixed;z-index:50;top:0;left:0;right:0;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(248,250,253,.76);border-bottom:1px solid rgba(205,214,226,.7);backdrop-filter:blur(24px) saturate(150%)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(145deg,#0a86ff,#075fd8);box-shadow:inset 0 1px #fff7,0 8px 20px #087cff35;color:#fff;font-size:21px;font-weight:800}.brand strong,.brand small{display:block}.brand strong{font-size:16px;letter-spacing:.3px}.brand small{font-size:11px;color:var(--muted);margin-top:2px}.brand.big{justify-content:center;margin-bottom:28px}.brand.big .brand-mark{width:52px;height:52px;border-radius:17px;font-size:27px}.top-actions{display:flex;align-items:center;gap:12px}.user-chip{display:block;text-align:right;font-weight:700}.user-chip small{display:block;color:var(--muted);font-weight:500;text-transform:capitalize}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#fff;border:1px solid var(--line);text-decoration:none}.sidebar{position:fixed;z-index:30;top:72px;bottom:0;left:0;width:230px;padding:22px 16px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(248,250,253,.72);border-right:1px solid rgba(205,214,226,.7);backdrop-filter:blur(24px)}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:14px;text-decoration:none;color:#4f5663;font-weight:650}.sidebar nav a span{display:grid;place-items:center;width:25px;font-size:19px}.sidebar nav a:hover,.sidebar nav a.active{background:#fff;color:var(--blue);box-shadow:0 7px 20px #162c4c0b}.sidebar-foot{padding:14px;color:#969ca6;font-size:12px}.content{margin-left:230px;padding:104px 28px 60px;min-height:100vh}.page-head{display:flex;align-items:end;justify-content:space-between;margin:0 auto 22px;max-width:1500px}.page-head h1{margin:2px 0 0;font-size:30px;letter-spacing:-.7px}.eyebrow{margin:0;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1.5px}.stats-grid,.grid-2,.toolbar,.card,.stepper{max-width:1500px;margin-left:auto;margin-right:auto}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat,.card{background:var(--card);border:1px solid rgba(218,225,235,.8);box-shadow:var(--shadow);backdrop-filter:blur(20px);border-radius:var(--radius)}.stat{padding:22px}.stat span{display:block;color:var(--muted);font-weight:650}.stat strong{display:block;margin:8px 0 4px;font-size:36px;letter-spacing:-1px}.stat small{color:var(--muted)}.stat.good strong{color:var(--green)}.stat.warn strong{color:var(--amber)}.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.card{padding:22px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.card-head h2,.card h2{margin:0;font-size:19px}.card-head p,.card>p{margin:5px 0 0;color:var(--muted)}.program-list{display:grid;gap:8px}.program-list a{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;text-decoration:none;padding:11px;border-radius:16px}.program-list a:hover{background:#f5f8fc}.program-list strong,.program-list small{display:block}.program-list small{margin-top:4px;color:var(--muted)}.program-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e5f1ff;color:var(--blue);font-size:12px;font-weight:900}.program-list b{font-size:24px;color:#9ba2ad}.timeline{display:grid}.timeline>div{display:grid;grid-template-columns:14px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.timeline>div:last-child{border:0}.timeline>div>span{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--blue);box-shadow:0 0 0 5px #087cff13}.timeline p{margin:0}.timeline strong,.timeline small{display:block}.timeline small,.timeline time{margin-top:4px;color:var(--muted);font-size:12px}.alert{max-width:1500px;margin:0 auto 16px;padding:13px 16px;border-radius:14px;background:#e9f3ff;color:#075fb4;border:1px solid #cfe5ff;transition:.4s}.alert.success{background:#eaf9f2;color:#08764a;border-color:#c8eedc}.alert.danger{background:#fff0f0;color:#b72a31;border-color:#ffd2d4}.alert.warning{background:#fff7e9;color:#9a5b08;border-color:#ffe2b5}.alert.fade{opacity:0;transform:translateY(-5px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border-radius:13px;border:1px solid var(--line);background:#fff;color:#252932;text-decoration:none;font-weight:750;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 8px 20px #087cff30}.btn.dark{background:#24272d;color:#fff;border-color:#24272d}.btn.small{padding:8px 11px;border-radius:11px;font-size:13px}.btn.block{width:100%;margin-top:8px}.toolbar{display:flex;justify-content:space-between;gap:14px;margin-bottom:16px}.search-form,.toolbar-actions,.form-actions,.bulkbar{display:flex;gap:9px;align-items:center}.search-form{flex:1}.search-form input{min-width:260px}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end}label{display:block;color:#4e5562;font-size:13px;font-weight:700}input,select,textarea{width:100%;margin-top:7px;padding:11px 12px;border:1px solid #d7dde6;border-radius:13px;background:rgba(255,255,255,.88);color:var(--text);outline:none;box-shadow:inset 0 1px 2px #18233a09}input:focus,select:focus,textarea:focus{border-color:#68adff;box-shadow:0 0 0 4px #087cff14}label small{display:block;margin-top:6px;color:var(--muted);font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.span-2{grid-column:span 2}.section-title{padding-top:8px;color:#17191d;font-size:13px;font-weight:850;text-transform:uppercase;letter-spacing:.8px}.sticky-card{align-self:start;position:sticky;top:92px}.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:17px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:13px 12px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}th{background:#f7f9fc;color:#697180;font-size:12px;text-transform:uppercase;letter-spacing:.5px}td strong,td small{display:block}td small{margin-top:4px;color:var(--muted)}tr:last-child td{border-bottom:0}.actions{display:flex;gap:10px}.actions a{color:var(--blue);text-decoration:none;font-weight:750;font-size:13px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf1f6;color:#667080;font-size:11px;font-weight:850;text-transform:uppercase}.badge.ready,.badge.issued,.badge.active{background:#e6f8ef;color:#08764a}.badge.review,.badge.draft{background:#fff4df;color:#a36209}.badge.revoked,.badge.archived{background:#ffecec;color:#b42d34}.bulkbar{padding:14px 4px 0}.bulkbar select{width:auto;min-width:150px;margin:0}.bulkbar span{margin-left:auto;color:var(--muted)}.empty{text-align:center!important;color:var(--muted);padding:32px!important}.bottom-nav{display:none}.auth-body,.verify-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#d9e9ff,transparent 42%),#f4f6fa}.auth-card,.verify-card{width:min(100%,440px);padding:32px;background:rgba(255,255,255,.86);border:1px solid #fff;box-shadow:0 25px 80px #16325a20;border-radius:30px;backdrop-filter:blur(28px)}.auth-card.wide{width:min(100%,760px)}.auth-card h1{font-size:28px;margin:0 0 6px}.auth-card label{margin-bottom:14px}.muted{color:var(--muted)}.auth-note{text-align:center;margin:24px 0 0;color:#9ca2ac;font-size:12px}.install-wrap{width:100%;display:grid;place-items:center}.success-panel{text-align:center;padding:25px}.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.stepper span{padding:10px;border-radius:12px;background:#e7ebf1;color:#7a8290;font-size:12px;font-weight:750;text-align:center}.stepper span.active{background:var(--blue);color:#fff}.import-card{max-width:720px!important;text-align:center;padding:38px;margin:auto}.upload-icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 15px;border-radius:23px;background:#e5f1ff;color:var(--blue);font-size:32px}.file-input{padding:24px;border:2px dashed #bfd5ef;border-radius:18px;background:#f7fbff;cursor:pointer}.file-input input{display:none}.file-input span,.file-input small{display:block}.file-input span{font-size:16px;color:var(--blue)}.sample-links{display:flex;justify-content:center;gap:16px;margin-top:18px}.sample-links a{color:var(--blue)}.hint,.note-box{padding:14px;border-radius:14px;background:#f4f7fb;color:var(--muted)}.mapping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.preview-table{margin-top:25px}.preview-table h3{font-size:15px}.health-list{display:grid;gap:4px}.health-list div{display:flex;justify-content:space-between;padding:13px;border-bottom:1px solid var(--line)}.health-list b.ok{color:var(--green)}.health-list b.bad{color:var(--red)}.note-box{margin-top:18px}.verify-card{text-align:center}.verify-icon{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 17px;border-radius:50%;font-size:38px;font-weight:900}.verify-icon.valid{background:#e5f8ee;color:var(--green)}.verify-icon.invalid{background:#ffeded;color:var(--red)}.verify-card h1{margin:6px 0 22px}.verify-data{display:grid;gap:0;text-align:left;border:1px solid var(--line);border-radius:18px;overflow:hidden}.verify-data div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid var(--line)}.verify-data div:last-child{border:0}.verify-data span{color:var(--muted)}.verify-card footer{margin-top:24px;color:#59606b}.verify-card footer small{color:#9ba1aa}.form-card{max-width:900px}.programs-layout{grid-template-columns:1.25fr .75fr}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.programs-layout{grid-template-columns:1fr}.sticky-card{position:static}.toolbar{align-items:stretch;flex-direction:column}.toolbar-actions{justify-content:flex-start}.mapping-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){body{padding-bottom:76px}.topbar{height:64px;padding:0 14px}.brand small,.user-chip{display:none}.sidebar{display:none}.content{margin:0;padding:84px 13px 26px}.page-head h1{font-size:24px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px;border-radius:19px}.stat strong{font-size:29px}.grid-2{gap:12px}.card{padding:15px;border-radius:20px}.bottom-nav{position:fixed;z-index:45;left:8px;right:8px;bottom:8px;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:rgba(250,252,255,.9);border:1px solid #dfe5ed;border-radius:22px;box-shadow:0 15px 45px #18355e28;backdrop-filter:blur(22px)}.bottom-nav a{display:grid;place-items:center;gap:2px;color:#7d8490;text-decoration:none}.bottom-nav a span{font-size:18px}.bottom-nav a small{font-size:9px}.bottom-nav a.active{color:var(--blue)}.search-form{display:grid;grid-template-columns:1fr 120px auto}.search-form input{min-width:0}.toolbar-actions .btn{flex:1}.form-grid,.mapping-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.stepper{gap:4px}.stepper span{font-size:9px;padding:9px 3px}.auth-card{padding:24px;border-radius:24px}.verify-data div{grid-template-columns:95px 1fr}.sample-links{flex-direction:column}.top-actions .icon-btn{width:38px;height:38px}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr 1fr}.stat small{display:none}.search-form{grid-template-columns:1fr 105px}.search-form .btn{grid-column:span 2}.toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.toolbar-actions .btn:last-child{grid-column:span 2}.form-actions{justify-content:stretch}.form-actions .btn{flex:1}}
