:root{
  --blueprint:#0e2740;
  --blueprint-line:#2c5f8a;
  --blueprint-line-soft:#1d4566;
  --paper:#eef2f5;
  --ink:#0e2740;
  --brass:#c98a3d;
  --brass-bright:#e3a958;
  --ok:#7fb3a3;
  --warn:#d98c5f;
  --hot:#d9684f;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--blueprint);
  background-image:
    repeating-linear-gradient(0deg, var(--blueprint-line-soft) 0px, var(--blueprint-line-soft) 1px, transparent 1px, transparent 32px),
    repeating-linear-gradient(90deg, var(--blueprint-line-soft) 0px, var(--blueprint-line-soft) 1px, transparent 1px, transparent 32px);
  color:#eaf0f5;
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.5;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.wrap{max-width:760px; margin:0 auto; padding:0 20px; width:100%;}
a{color:#eaf0f5;}

/* ---------- nav ---------- */
.topnav{border-bottom:2px solid var(--brass); background:rgba(14,39,64,.9);}
.topnav-inner{max-width:760px; margin:0 auto; padding:16px 20px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.brand{font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:18px; font-weight:600; color:#fff; text-decoration:none;}
.brand span{color:var(--brass-bright);}
.navlinks{display:flex; gap:18px; align-items:center; font-family:'IBM Plex Mono', monospace; font-size:12.5px;}
.navlinks a{text-decoration:none; color:#a9c2d6; letter-spacing:.03em;}
.navlinks a:hover{color:var(--brass-bright);}
.navlink-cta{border:1px solid var(--brass); padding:6px 12px; color:var(--brass-bright) !important;}

main.wrap{flex:1; padding-top:30px; padding-bottom:60px;}

/* ---------- type ---------- */
.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.18em; color:var(--brass-bright); text-transform:uppercase; margin:0 0 10px;}
h1{font-family:'Oswald', sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.02em; font-size:clamp(26px,6vw,40px); margin:0 0 14px; color:#fff;}
h2{font-family:'Oswald', sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:.03em; font-size:18px; color:#fff; margin:0 0 12px;}
.lede{max-width:62ch; color:#cfdce6; font-size:15.5px;}
p{color:#cfdce6;}

/* ---------- titleblock ---------- */
.titleblock{display:flex; flex-wrap:wrap; gap:0; margin:24px 0; border:1px solid var(--blueprint-line); font-family:'IBM Plex Mono', monospace; font-size:11px; color:#a9c2d6;}
.tb-cell{padding:8px 14px; border-right:1px solid var(--blueprint-line);}
.tb-cell:last-child{border-right:none;}
.tb-label{display:block; letter-spacing:.1em; text-transform:uppercase; color:#6f93ad; font-size:9px; margin-bottom:3px;}

/* ---------- sheet (card) ---------- */
.sheet{margin:32px 0; border:1px solid var(--blueprint-line); position:relative;}
.sheet::before, .sheet::after{content:""; position:absolute; width:14px; height:14px; border-top:2px solid var(--brass); border-left:2px solid var(--brass); top:-1px; left:-1px;}
.sheet::after{top:auto; left:auto; bottom:-1px; right:-1px; border-top:none; border-left:none; border-bottom:2px solid var(--brass); border-right:2px solid var(--brass);}
.sheet-head{display:flex; justify-content:space-between; align-items:baseline; padding:16px 22px; border-bottom:1px solid var(--blueprint-line); background:rgba(44,95,138,.12); flex-wrap:wrap; gap:6px;}
.sheet-num{font-family:'IBM Plex Mono', monospace; color:var(--brass-bright); font-size:13px; letter-spacing:.08em;}
.sheet-title{font-family:'Oswald', sans-serif; text-transform:uppercase; font-size:16px; letter-spacing:.03em; color:#fff;}
.sheet-body{padding:18px 22px 22px;}

/* ---------- buttons ---------- */
.stamp, button.stamp, a.stamp{
  display:inline-block; font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:.08em;
  background:transparent; color:var(--brass-bright); border:2px solid var(--brass);
  padding:13px 26px; font-size:14px; cursor:pointer; text-decoration:none; transition:background .15s,color .15s;
}
.stamp:hover{background:var(--brass); color:#1a1206;}
.stamp.secondary{border-color:var(--blueprint-line); color:#cfdce6;}
.stamp.secondary:hover{background:var(--blueprint-line); color:#fff;}
.stamp.danger{border-color:var(--hot); color:var(--hot);}
.stamp.danger:hover{background:var(--hot); color:#2a0e08;}
.stamp.small{padding:7px 14px; font-size:11px;}

/* ---------- forms ---------- */
form.card{max-width:420px;}
label{display:block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#9fbad2; margin:16px 0 6px;}
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], select, textarea{
  width:100%; background:rgba(0,0,0,.2); border:1px solid var(--blueprint-line); color:#eaf0f5;
  padding:10px 12px; font-family:'IBM Plex Sans', sans-serif; font-size:14.5px;
}
input:focus, select:focus, textarea:focus{outline:2px solid var(--brass-bright); outline-offset:1px;}
textarea{min-height:90px; resize:vertical;}
.form-actions{margin-top:22px;}
.field-hint{font-size:12px; color:#6f93ad; margin-top:4px;}

/* ---------- flash ---------- */
.flash{padding:12px 16px; margin-bottom:18px; border-left:3px solid var(--brass); font-size:14px;}
.flash-success{border-color:var(--ok); color:#cdeee2;}
.flash-error{border-color:var(--hot); color:#f3cfc6;}
.flash-info{border-color:var(--brass); color:#e9dcc4;}

/* ---------- quiz form ---------- */
.q{padding:16px 0; border-bottom:1px solid rgba(44,95,138,.5);}
.q:last-child{border-bottom:none;}
.q-text{font-size:14.5px; color:#dde8f0; margin:0 0 12px;}
.scale{display:flex; gap:6px; flex-wrap:nowrap; position:relative;}
.scale label{flex:1; text-align:center; cursor:pointer; border:1px solid var(--blueprint-line); padding:9px 2px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:#a9c2d6; user-select:none;}
.scale input{position:absolute; opacity:0; pointer-events:none;}
.scale input:checked + label{background:var(--brass); color:#1a1206; border-color:var(--brass); font-weight:600;}
.scale label:hover{border-color:var(--brass-bright);}
.scale-keys{display:flex; justify-content:space-between; font-size:10px; color:#6f93ad; margin-top:6px; font-family:'IBM Plex Mono', monospace;}

/* ---------- results ---------- */
.result-row{margin:18px 0;}
.result-label{display:flex; justify-content:space-between; font-family:'IBM Plex Mono', monospace; font-size:12px; color:#cfdce6; margin-bottom:5px; gap:8px; flex-wrap:wrap;}
.priority-tag{color:var(--hot); font-weight:600;}
.bar-track{height:10px; border:1px solid var(--blueprint-line); background:rgba(0,0,0,.2);}
.bar-fill{height:100%; background:var(--ok);}
.bar-fill.warn{background:var(--warn);}
.bar-fill.hot{background:var(--hot);}

/* ---------- resource list ---------- */
.resource-domain{margin:26px 0 0;}
.resource-domain-head{display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--blueprint-line); padding-bottom:6px; margin-bottom:10px; flex-wrap:wrap; gap:6px;}
.resource-domain-head h3{font-family:'Oswald', sans-serif; text-transform:uppercase; font-size:14px; letter-spacing:.03em; color:#fff; margin:0; font-weight:500;}
.resource-domain-score{font-family:'IBM Plex Mono', monospace; font-size:11px; color:#9fbad2;}
.resource-card{display:flex; gap:10px; padding:10px 0; border-bottom:1px solid rgba(44,95,138,.4); align-items:flex-start;}
.resource-card:last-child{border-bottom:none;}
.resource-tag{flex:0 0 auto; font-family:'IBM Plex Mono', monospace; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; padding:3px 7px; border:1px solid var(--brass); color:var(--brass-bright); white-space:nowrap; margin-top:2px;}
.resource-card a{font-weight:600; text-decoration:none; border-bottom:1px solid var(--blueprint-line);}
.resource-card a:hover{border-bottom-color:var(--brass-bright);}
.resource-note{display:block; font-size:12.5px; color:#9fbad2; margin-top:3px;}
.resource-pending-note{display:block; font-size:11px; color:var(--warn); margin-top:3px; font-family:'IBM Plex Mono', monospace;}
.start-here{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--hot); margin:0 0 8px;}
details.optional-set summary{cursor:pointer; font-family:'IBM Plex Mono', monospace; font-size:11px; color:#8aa6bc; letter-spacing:.04em; padding:4px 0;}
details.optional-set summary:hover{color:var(--brass-bright);}

/* ---------- admin tables ---------- */
table.admin{width:100%; border-collapse:collapse; font-size:13px;}
table.admin th{text-align:left; font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:#9fbad2; border-bottom:1px solid var(--brass); padding:8px 10px;}
table.admin td{padding:9px 10px; border-bottom:1px solid rgba(44,95,138,.4); vertical-align:top;}
.badge{display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:.05em; text-transform:uppercase; padding:2px 7px; border:1px solid var(--blueprint-line); color:#a9c2d6;}
.badge.ok{border-color:var(--ok); color:var(--ok);}
.badge.warn{border-color:var(--warn); color:var(--warn);}
.badge.hot{border-color:var(--hot); color:var(--hot);}
.inline-form{display:inline;}

/* ---------- footer ---------- */
.sitefoot{border-top:1px solid var(--blueprint-line); padding:24px 0; margin-top:40px;}
.sitefoot p{font-size:12px; color:#6f93ad; margin:0;}

/* ---------- pricing ---------- */
.price-tag{font-family:'Oswald', sans-serif; font-size:48px; color:#fff; font-weight:600;}
.price-tag span{font-size:16px; color:#9fbad2; font-weight:400; text-transform:none; letter-spacing:0;}

@media (max-width:480px){
  .scale label{font-size:11px; padding:8px 1px;}
  table.admin{font-size:12px;}
}
