:root{
  --teal-d:#0E4E5A; --teal:#127C8C; --cyan:#1FB6CE; --gold:#E0B24A; --gold-d:#B8862B;
  --ink:#16211F; --mute:#5C6F73; --paper:#F4F6F5; --card:#FFFFFF; --line:#E2E7E6; --soft:#EEF4F4;
  --green:#2E9E5B; --amber:#C98A2E; --red:#CC4436;
  --shadow:0 1px 2px rgba(14,78,90,.05),0 8px 24px rgba(14,78,90,.06);
  --radius:14px;
}
*{box-sizing:border-box}
html{height:100%}
body{margin:0;font-family:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased;
  min-height:100vh;display:flex;flex-direction:column}
a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}
.mono{font-family:"Space Mono",ui-monospace,monospace}

/* nav */
.nav{background:var(--teal-d);color:#fff}
.nav .wrap{display:flex;align-items:center;gap:18px;height:60px}
.nav .brand{display:flex;align-items:center;gap:10px;font-weight:800;color:#fff}
.nav .brand b{color:var(--cyan)}
.nav .sp{flex:1}
.nav a{color:#dfeef1;font-weight:600;font-size:14px}
.nav a:hover{color:#fff;text-decoration:none}
.nav .btn{padding:7px 13px}
.shield{width:26px;height:26px}

/* buttons */
.btn{display:inline-block;background:var(--teal);color:#fff;border:none;border-radius:10px;padding:10px 16px;
  font-weight:800;font-size:14px;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--teal-d);text-decoration:none}
.btn.gold{background:var(--gold);color:#2a2205}.btn.gold:hover{background:var(--gold-d);color:#fff}
.btn.ghost{background:transparent;border:2px solid rgba(255,255,255,.5);color:#fff}
.btn.sm{padding:6px 11px;font-size:13px}
.btn.danger{background:#fff;color:var(--red);border:1px solid #eccfca}
.btn.line{background:#fff;color:var(--teal);border:1.5px solid var(--line)}

/* cards + layout */
main{padding:28px 0 70px;flex:1 0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.g2,.g3{grid-template-columns:1fr}}
h1{font-size:26px;font-weight:800;letter-spacing:-.4px;margin:0 0 6px}
h2{font-size:19px;font-weight:800;margin:0 0 12px}
h3{font-size:15px;font-weight:800;margin:0 0 8px}
.muted{color:var(--mute)}
.small{font-size:13px}
.crumb{font-size:13px;color:var(--mute);margin-bottom:10px}
.crumb a{color:var(--mute)}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pagehead{margin-bottom:18px}

/* flash */
.flash{padding:11px 15px;border-radius:10px;margin:0 0 16px;font-weight:600;font-size:14px}
.flash.ok{background:#E7F4EC;color:#22703f;border:1px solid #bfe0cd}
.flash.err{background:#FBEAE8;color:#9c332a;border:1px solid #e6c6c1}

/* forms */
label{display:block;font-weight:700;font-size:13px;margin:0 0 5px}
input,select,textarea{width:100%;font-family:inherit;font-size:14px;padding:9px 11px;border:1.5px solid var(--line);
  border-radius:9px;background:#fff;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(31,182,206,.15)}
.field{margin-bottom:14px}
.formgrid{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media(max-width:620px){.formgrid{grid-template-columns:1fr}}

/* tables */
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--mute)}
tr:last-child td{border-bottom:none}

/* status + traffic lights */
.badge{display:inline-block;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px}
.badge.draft{background:#eef1f1;color:#5b6f73}
.badge.submitted{background:#FBF1DD;color:#8a6414}
.badge.approved{background:#E7F4EC;color:#22703f}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-1px}
.green{background:var(--green)}.amber{background:var(--amber)}.red{background:var(--red)}.na{background:#c8d0d0}
.tl{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px}
.tl .lbl.green{color:var(--green)}.tl .lbl.amber{color:var(--amber)}.tl .lbl.red{color:var(--red)}.tl .lbl.na{color:var(--mute)}

/* score bar */
.bar{height:9px;background:var(--soft);border-radius:8px;overflow:hidden}
.bar > i{display:block;height:100%;border-radius:8px}
.bar > i.green{background:var(--green)}.bar > i.amber{background:var(--amber)}.bar > i.red{background:var(--red)}

/* rating select colouring */
select.rate{font-weight:700}
select.rate[data-c="green"]{color:#1c7a45;border-color:#bfe0cd;background:#f2fbf5}
select.rate[data-c="amber"]{color:#8a6414;border-color:#ecd6a6;background:#fdf8ee}
select.rate[data-c="red"]{color:#a5352a;border-color:#e6c6c1;background:#fdf1ef}
select.rate[data-c="na"]{color:var(--mute)}

/* assessment form */
.areacard{margin-bottom:16px}
.areacard .ahead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.item{padding:11px 0;border-top:1px dashed var(--line)}
.item:first-of-type{border-top:none}
.item .txt{font-size:14px;display:flex;align-items:center;gap:8px}
.item .row2{display:grid;grid-template-columns:1fr 160px;gap:12px;align-items:center;margin-top:8px}
.item input.note{font-size:12.5px;padding:8px 10px}
@media(max-width:620px){.item .row2{grid-template-columns:1fr}}
/* info icon + hover tooltip */
.info{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:var(--soft);color:var(--teal-d);
  font:700 11px/15px "Space Mono",monospace;text-align:center;cursor:help;position:relative;border:1px solid var(--line);user-select:none;outline:none}
.info:focus{box-shadow:0 0 0 3px rgba(31,182,206,.25)}
.info .tip{position:absolute;left:50%;bottom:150%;transform:translateX(-50%);width:250px;max-width:62vw;
  background:var(--ink);color:#fff;font:500 12px/1.45 "Manrope",sans-serif;text-align:left;letter-spacing:0;
  padding:9px 12px;border-radius:9px;box-shadow:0 10px 26px rgba(0,0,0,.28);opacity:0;visibility:hidden;transition:opacity .12s;z-index:30;pointer-events:none}
.info .tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink)}
.info:hover .tip,.info:focus .tip{opacity:1;visibility:visible}

/* sticky summary */
.summary{position:sticky;top:16px}
.sumrow{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:13px;border-top:1px solid var(--line)}
.sumrow:first-of-type{border-top:none}
.sumrow .nm{flex:1}
.sumrow .sc{font-weight:800;font-variant-numeric:tabular-nums;width:38px;text-align:right}
.overall{display:flex;align-items:center;gap:14px;margin-bottom:8px}
.ring{--p:0;--col:var(--amber);width:74px;height:74px;border-radius:50%;flex:0 0 74px;
  background:conic-gradient(var(--col) calc(var(--p)*1%), var(--soft) 0);display:flex;align-items:center;justify-content:center}
.ring b{background:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}

/* priorities editor */
.prio{display:grid;grid-template-columns:1.3fr 1.3fr 100px 30px;gap:8px;margin-bottom:8px;align-items:center}
.prio input{font-size:13px}
@media(max-width:620px){.prio{grid-template-columns:1fr}}

/* hero / marketing */
.hero{background:radial-gradient(120% 150% at 90% 10%,rgba(31,182,206,.25),transparent 55%),
  linear-gradient(120deg,#0A272E,#0E4E5A 60%,#0B3A44);color:#fff;padding:64px 0 70px}
.hero h1{font-size:40px;color:#fff;letter-spacing:-1px;max-width:16ch}
.hero p{font-size:18px;color:#dcecef;max-width:52ch}
.hero .tag{font-family:"Space Mono",monospace;font-weight:700;letter-spacing:3px;color:var(--gold);font-size:13px;text-transform:uppercase}
.hero .row{margin-top:22px}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}
@media(max-width:760px){.svc{grid-template-columns:1fr}}
.svc .card h3{color:var(--teal-d)}
/* Plans */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;align-items:stretch}
@media(max-width:860px){.plans{grid-template-columns:1fr}}
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;position:relative}
.plan.pop{border:2px solid var(--gold);box-shadow:0 10px 28px rgba(224,178,74,.18)}
.plan .pk{font-family:"Space Mono",monospace;font-weight:700;letter-spacing:2px;font-size:12px;text-transform:uppercase;color:var(--teal)}
.plan.pop .pk{color:var(--gold-d)}
.plan h3{color:var(--teal-d);font-size:20px;margin:4px 0 6px}
.plan .lead{font-size:13.5px;color:var(--mute);min-height:38px}
.plan .tick{list-style:none;margin:16px 0 20px;padding:0;font-size:14px;flex:1 0 auto}
.plan .tick li{position:relative;padding:7px 0 7px 26px;border-top:1px dashed var(--line)}
.plan .tick li:first-child{border-top:none}
.plan .tick li::before{content:"";position:absolute;left:0;top:9px;width:16px;height:16px;border-radius:50%;background:var(--soft)}
.plan .tick li::after{content:"";position:absolute;left:5px;top:12px;width:5px;height:9px;border:solid var(--teal);border-width:0 2px 2px 0;transform:rotate(45deg)}
.plan.pop .tick li::after{border-color:var(--gold-d)}
.plan .flag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:#2a2205;font-family:"Space Mono",monospace;font-weight:700;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;padding:4px 12px;border-radius:20px;white-space:nowrap}
.plan .btn{margin-top:auto;text-align:center}
.plansnote{color:var(--mute);font-size:13.5px;margin-top:16px}
.section{padding:44px 0}
.section h2{font-size:24px}
.foot{background:var(--teal-d);color:#cfe3e6;padding:26px 0;font-size:14px}
.foot a{color:#fff}
.center{text-align:center}
/* 2FA setup */
.setup{margin:16px 0 0;padding-left:20px}
.setup li{margin-bottom:20px;line-height:1.5}
.qrbox{margin:12px 0;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;width:max-content}
.qrbox svg{display:block;width:190px;height:190px}
code.secret{display:inline-block;font-family:"Space Mono",monospace;background:var(--soft);padding:4px 8px;border-radius:6px;letter-spacing:1px;word-break:break-all}
.codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;max-width:340px}
.codes span{font-family:"Space Mono",monospace;font-size:14px;background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:8px 10px;text-align:center;letter-spacing:1px}
/* audit / status badges */
.evt{display:inline-block;font-size:12px;font-weight:800;padding:3px 9px;border-radius:20px;background:#eef1f1;color:#5b6f73;white-space:nowrap}
.evt.good{background:#E7F4EC;color:#22703f}
.evt.bad{background:#FBEAE8;color:#9c332a}
.evt.neu{background:#EEF4F4;color:var(--teal-d)}
