:root{
  --bg:#f5f7fb;--surface:#ffffff;--surface-soft:#f8fafc;--text:#152235;--muted:#64748b;
  --navy:#18324a;--blue:#2f6fdf;--blue-dark:#2358b4;--teal:#158f82;--teal-soft:#e9f7f5;
  --danger:#b42318;--danger-soft:#fff1f0;--warn:#a15c07;--warn-soft:#fff8e7;--good:#177245;--good-soft:#edf9f2;
  --line:#dce4ee;--line-strong:#c8d4e2;--shadow:0 12px 34px rgba(24,50,74,.08);--radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
a{color:var(--blue)}
.topbar{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);position:sticky;top:0;backdrop-filter:blur(10px);z-index:20;box-shadow:0 1px 8px rgba(24,50,74,.03)}
.brand{display:flex;gap:11px;align-items:center;color:var(--navy);text-decoration:none;font-weight:850;font-size:20px;letter-spacing:-.25px}.shield{width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#1b9d8e,#2f6fdf);display:inline-grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 5px 14px rgba(47,111,223,.18)}
.topbar nav{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.topbar nav a{color:#52667b;text-decoration:none;font-size:14px;font-weight:650;padding:9px 11px;border-radius:9px}.topbar nav a:hover{color:var(--navy);background:#f1f5f9}.topbar nav a.active{color:var(--blue);background:#eef4ff}.topbar nav a.signout{margin-left:4px;color:#7a5360}
.container{max-width:1180px;margin:0 auto;padding:36px 24px 72px}.footer{text-align:center;color:#8494a7;padding:30px;border-top:1px solid var(--line);background:#fff;font-size:13px}
h1{font-size:38px;line-height:1.12;letter-spacing:-1.1px;margin:0 0 10px;color:var(--navy)}h2{font-size:24px;letter-spacing:-.4px;margin:0 0 16px;color:var(--navy)}h3{margin:0 0 10px;color:var(--navy)}p{line-height:1.6}.muted{color:var(--muted)}.small-text{font-size:13px}.eyebrow{color:var(--teal);font-weight:850;text-transform:uppercase;letter-spacing:1.35px;font-size:12px;margin-bottom:8px}
.hero{padding:74px 0 52px;display:grid;grid-template-columns:1.16fr .84fr;gap:48px;align-items:center}.hero h1{font-size:58px;line-height:1.02;max-width:760px}.hero p{font-size:19px;line-height:1.65;color:#5e7084;max-width:720px}.hero-copy{position:relative}.hero-copy:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(47,111,223,.07);filter:blur(4px);left:-150px;top:-70px;z-index:-1}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card.flat{box-shadow:none}.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.card-subtle{background:var(--surface-soft)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}
.metric{position:relative;overflow:hidden}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue)}.metric.good:before{background:var(--good)}.metric.warn:before{background:#e4a11b}.metric .number{font-size:36px;line-height:1;font-weight:850;color:var(--navy);margin-bottom:8px}.metric .label{color:var(--muted);font-size:14px;font-weight:600}.metric .hint{margin-top:8px;color:#8a98a8;font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:10px;padding:11px 16px;text-decoration:none;background:var(--blue);color:#fff;font-weight:800;font:inherit;cursor:pointer;box-shadow:0 4px 10px rgba(47,111,223,.14);transition:.15s ease}.btn:hover{background:var(--blue-dark);transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--navy);border-color:var(--line-strong);box-shadow:none}.btn.secondary:hover{background:#f8fafc}.btn.ghost{background:transparent;color:var(--blue);border-color:transparent;box-shadow:none}.btn.danger{background:#fff;color:var(--danger);border-color:#f1b9b4;box-shadow:none}.btn.danger:hover{background:var(--danger-soft)}.btn.small{padding:7px 10px;font-size:13px}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.page-head p{margin:4px 0 0}
.stack{display:grid;gap:15px}.row{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}label{display:block;font-size:13px;font-weight:750;color:#43586e;margin-bottom:6px}input,select,textarea{width:100%;border-radius:10px;border:1px solid var(--line-strong);background:#fff;color:var(--text);padding:11px 12px;font:inherit;outline:none;transition:.15s ease}input:focus,select:focus,textarea:focus{border-color:#75a4ef;box-shadow:0 0 0 3px rgba(47,111,223,.1)}input[type=file]{padding:9px;background:#fbfcfe}textarea{min-height:130px;resize:vertical}.help{font-size:12px;color:#7b8b9d;margin:6px 0 0}
.table-wrap{overflow-x:auto;margin:0 -2px}table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;border-bottom:1px solid #e8edf3;text-align:left;font-size:14px;vertical-align:middle}th{color:#718195;font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:800;background:#fbfcfe}tbody tr:hover{background:#fbfdff}tbody tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef3f8;color:#50657a;font-size:11px;font-weight:800;text-transform:capitalize}.badge.good{background:var(--good-soft);color:var(--good)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.blue{background:#eef4ff;color:var(--blue)}
.alert{padding:13px 15px;border-radius:11px;margin-bottom:17px;border:1px solid}.alert-success{background:var(--good-soft);border-color:#c7ead7;color:#155c39}.alert-danger{background:var(--danger-soft);border-color:#f3c5c0;color:#8f2017}.alert-warning{background:var(--warn-soft);border-color:#f1dba9;color:#7a4a07}
.login-shell{max-width:470px;margin:68px auto}.login{padding:30px}.login-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#1b9d8e,#2f6fdf);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:900;margin-bottom:20px}.login h1{font-size:30px}.login p{margin-top:0}
.feature{min-height:178px}.feature-icon{width:40px;height:40px;border-radius:11px;background:#eef4ff;color:var(--blue);display:grid;place-items:center;font-weight:900;margin-bottom:16px}.feature strong{display:block;font-size:18px;margin-bottom:8px;color:var(--navy)}.feature p{color:var(--muted);line-height:1.58;margin-bottom:0}.hero-panel{padding:26px;box-shadow:0 22px 50px rgba(24,50,74,.11)}.hero-panel .panel-label{font-size:12px;font-weight:800;color:#8190a1;text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px}.hero-panel .stat{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e8edf3}.hero-panel .stat:last-child{border-bottom:0}.hero-panel .stat span{color:#617488}.hero-panel .stat strong{color:var(--navy)}
.public-strip{margin:10px 0 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.public-strip strong{display:block;color:var(--navy);font-size:16px}.public-strip span{display:block;color:var(--muted);font-size:13px;margin-top:4px}
.training{max-width:760px;margin:42px auto}.training .lesson{font-size:17px;line-height:1.75;color:#40556a}.danger-banner{background:#fff6f5;border:1px solid #f0c6c2;color:#7b241c;padding:17px;border-radius:12px;margin-bottom:18px}.good-banner{background:#f0faf5;border:1px solid #c7e6d4;color:#155c39;padding:16px;border-radius:12px;margin:20px 0 0}.kicker{font-size:12px;color:var(--teal);font-weight:850;text-transform:uppercase;letter-spacing:1px}.lesson-list{padding-left:20px}.lesson-list li{margin:8px 0}.complete-box{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.risk-list{display:grid;gap:10px}.risk-row{display:grid;grid-template-columns:1fr 90px 90px 100px;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e8edf3}.risk-row:last-child{border-bottom:0}.risk-name strong{display:block}.risk-name span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.risk-num{text-align:right;font-variant-numeric:tabular-nums}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:12px;background:#fbfcfe}
.code-note{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;background:#f6f8fb;border:1px solid var(--line);padding:10px;border-radius:9px;color:#45586d}
@media(max-width:1000px){.grid.four{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr;gap:28px}.hero h1{font-size:50px}.hero-panel{max-width:680px}}
@media(max-width:800px){.grid,.grid.two,.grid.four,.row,.public-strip{grid-template-columns:1fr}.hero{padding-top:48px}.hero h1{font-size:42px}.topbar{height:auto;padding:13px 16px;align-items:flex-start}.topbar nav{justify-content:flex-end}.container{padding:26px 16px 60px}.page-head{display:block}.page-head .actions{margin-top:14px}.risk-row{grid-template-columns:1fr 70px 70px}.risk-row .risk-last{display:none}}
@media(max-width:560px){.topbar{display:block}.topbar nav{margin-top:10px;justify-content:flex-start}.topbar nav a{padding:7px 8px}.hero h1{font-size:37px}.hero p{font-size:17px}.container{padding-left:14px;padding-right:14px}.card{padding:18px}}
