/* Insight Controls design system: navy and grey from the logo, Carlito, square corners. */
:root{
  --navy:#16274A; --grey:#8C8C8C; --ink:#222222; --ink-muted:#5F6368;
  --surface:#FFFFFF; --surface-alt:#F2F3F6; --rule:#D5D8DE; --on-navy:#FFFFFF;
  --error:#A32020; --error-bg:#FBECEC;
  --sans: Carlito, Calibri, "Segoe UI", system-ui, sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45}
a{color:var(--navy)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.wrap{max-width:860px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}

.top{border-bottom:2px solid var(--navy)}
.top-in{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:16px;padding-bottom:14px;flex-wrap:wrap}
.logo{height:29px;width:auto;display:block}
.co{text-align:right;font-size:13px;line-height:1.4}
.co b{color:var(--navy)}
.co a{color:var(--ink);text-decoration:none}

.head{padding:28px 0 6px}
h1{margin:0;color:var(--navy);font-size:32px;line-height:1.1}
.sub{margin:4px 0 0;color:var(--grey);font-size:17px}

.steps{list-style:none;margin:18px 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:4px 0;counter-reset:s;border-bottom:1px solid var(--rule)}
.steps li{counter-increment:s;font-size:14px;color:var(--ink-muted);padding:6px 14px 8px 0;margin-right:10px;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.steps li::before{content:counter(s) ". "}
.steps li.on{color:var(--navy);font-weight:700;border-bottom-color:var(--navy)}
.steps li.ok{color:var(--ink)}

h2{color:var(--navy);font-size:22px;margin:0 0 4px}
.intro{margin:0 0 18px;color:var(--ink-muted)}
h3{color:var(--navy);font-size:17px;margin:26px 0 10px;padding-bottom:4px;border-bottom:1px solid var(--rule)}

.field{margin:0 0 16px;border:0;padding:0;min-width:0}
.field>label,.field>legend{display:block;font-weight:700;margin:0 0 5px;padding:0}
.req{color:var(--navy)}
.hint{display:block;color:var(--ink-muted);font-size:14px;margin:-2px 0 6px;font-weight:400}
input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea{
  width:100%;max-width:100%;border:1px solid #9AA0AB;border-radius:0;background:var(--surface);padding:9px 10px;font-size:16px;min-height:42px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:2px solid var(--navy);outline-offset:0}
.num{display:flex;max-width:340px}
.num input{flex:1;min-width:0}
.num .unit{border:1px solid #9AA0AB;border-left:0;background:var(--surface-alt);padding:9px 10px;min-height:42px;display:flex;align-items:center;white-space:nowrap;font-size:15px}
.num select{width:auto;flex:0 0 auto;border-left:0;background:var(--surface-alt)}
.short{max-width:340px}

.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative;display:flex;align-items:center;gap:8px;border:1px solid var(--rule);padding:8px 12px;cursor:pointer;background:var(--surface);min-height:42px}
.opt:hover{border-color:var(--navy)}
.opt input{margin:0;accent-color:var(--navy);width:18px;height:18px;flex:0 0 auto}
.opt:has(input:checked){border-color:var(--navy);background:var(--surface-alt)}
.opt:has(input:focus-visible){outline:2px solid var(--navy);outline-offset:2px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.card{display:block;border:1px solid var(--rule);padding:14px;cursor:pointer;position:relative;background:var(--surface)}
.card:hover{border-color:var(--navy)}
.card input{position:absolute;top:14px;right:14px;width:18px;height:18px;margin:0;accent-color:var(--navy)}
.card b{display:block;color:var(--navy);font-size:17px;padding-right:26px}
.card span{display:block;color:var(--ink-muted);font-size:14px;margin-top:2px}
.card:has(input:checked){border:2px solid var(--navy);padding:13px;background:var(--surface-alt)}
.card:has(input:focus-visible){outline:2px solid var(--navy);outline-offset:2px}

.consent{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--navy);flex:0 0 auto}

.drop{border:1px dashed #9AA0AB;padding:18px;text-align:center;background:var(--surface-alt);cursor:pointer}
.drop.over{border-color:var(--navy);background:#E4E9F2}
.drop b{color:var(--navy)}
.drop input{position:absolute;width:1px;height:1px;opacity:0}
.flist{list-style:none;margin:8px 0 0;padding:0}
.flist li{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--rule);padding:6px 0;font-size:15px}
.flist li span{overflow-wrap:anywhere}
.flist button{background:none;border:0;color:var(--navy);text-decoration:underline;cursor:pointer;padding:4px}
.ftotal{font-size:14px;color:var(--ink-muted);margin-top:4px}

.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--error)}
.field.bad .opt,.field.bad .card{border-color:var(--error)}
.msg{color:var(--error);font-size:14px;margin-top:4px;font-weight:700}
.errors{border:1px solid var(--error);background:var(--error-bg);padding:10px 14px;margin:0 0 18px;color:var(--error)}
.errors ul{margin:4px 0 0;padding-left:20px}
.errors a{color:var(--error)}

.review{margin:0 0 22px}
.review h3{margin-top:22px}
table{border-collapse:collapse;width:100%;font-size:15px}
th{background:var(--navy);color:var(--on-navy);text-align:left;padding:7px 10px;font-weight:700}
td{padding:6px 10px;border-bottom:1px solid var(--rule);vertical-align:top;overflow-wrap:anywhere}
td:first-child{width:42%;font-weight:700;background:var(--surface-alt)}
tbody tr:nth-child(even) td:last-child{background:#FAFAFB}
.edit{background:none;border:0;color:var(--navy);text-decoration:underline;cursor:pointer;padding:0;font-size:14px;margin-left:8px;font-weight:400}

.nav{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--rule);margin-top:26px;padding-top:16px;padding-bottom:30px}
.btn{background:var(--navy);color:var(--on-navy);border:1px solid var(--navy);padding:10px 22px;font-weight:700;cursor:pointer;min-height:44px;font-size:16px}
.btn:hover{background:#0F1C36}
.btn.ghost{background:var(--surface);color:var(--navy)}
.btn[disabled]{opacity:.6;cursor:wait}
.saved{color:var(--ink-muted);font-size:13px;text-align:center;flex:1}

.done{padding:10px 0 40px}
.done h2{font-size:26px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.foot{border-top:1px solid var(--rule);color:var(--grey);font-size:13px}
.foot-in{display:flex;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;padding-top:12px;padding-bottom:16px}

@media (max-width:600px){
  .co{display:none}
  h1{font-size:28px}
  .steps li{font-size:13px;padding-right:8px;margin-right:6px}
  td:first-child{width:46%}
  .saved{display:none}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
