
:root{--ink:#191919;--ink-mid:#3c3c3c;--ink-soft:#6b6761;--ink-faint:#9d9790;--paper:#f7f5ef;--surface:#fff;--border:rgba(25,25,25,.12);--border-mid:rgba(25,25,25,.22);--orange:#990000;--orange-light:#f3e8e8;--orange-dark:#6b0000;--charcoal:#191919;--good:#006747;--good-light:#e6f2ec;--blue:#990000;--blue-light:#f3e8e8;--radius:6px;--radius-lg:12px;--shadow:0 1px 3px rgba(25,25,25,.08),0 4px 12px rgba(25,25,25,.04);--font-serif:'DM Serif Display',Georgia,serif;--font-sans:'DM Sans',system-ui,sans-serif}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.65;min-height:100vh}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:var(--charcoal);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{padding:1.25rem 1.25rem .75rem;border-bottom:1px solid rgba(255,255,255,.1)}.suite{font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px}.tool-name{font-family:var(--font-serif);font-size:1.5rem;color:#fff}.tool-sub{font-size:12px;color:rgba(255,255,255,.55);font-weight:300}.sidebar-steps{padding:.75rem 0;flex:1}.sidebar-step{display:flex;align-items:flex-start;gap:10px;padding:.6rem 1.25rem;cursor:pointer;transition:background .15s;border-left:3px solid transparent}.sidebar-step:hover{background:rgba(255,255,255,.06)}.sidebar-step.active{background:rgba(255,255,255,.1);border-left-color:#EDEBEB}.sidebar-step.done{opacity:.7}.step-num{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.12);color:rgba(255,255,255,.7);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.sidebar-step.active .step-num{background:var(--orange);color:#fff}.step-label-main{font-size:13px;font-weight:500;color:rgba(255,255,255,.9);line-height:1.3}.step-label-sub{font-size:11px;color:rgba(255,255,255,.4);font-weight:300}.sidebar-tools{padding:.75rem 1.25rem 1.25rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:6px}.sidebar-btn{font-family:var(--font-sans);font-size:12px;padding:.45rem .75rem;background:rgba(255,255,255,.08);color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);cursor:pointer;text-align:left}.sidebar-btn:hover{background:rgba(255,255,255,.15);color:#fff}.sidebar-note{margin-top:.5rem;padding:.6rem .75rem;background:rgba(255,255,255,.05);border-radius:var(--radius);font-size:11px;color:rgba(255,255,255,.45);line-height:1.5}.main{flex:1;overflow-x:hidden}.step-pane{display:none;min-height:100vh}.step-pane.active{display:block;animation:fadeUp .25s ease}@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.step-header{background:var(--surface);border-bottom:1px solid var(--border);padding:1.5rem 2.5rem 1.25rem;position:sticky;top:0;z-index:50}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--orange);font-weight:500;margin-bottom:4px}.step-header h1{font-family:var(--font-serif);font-size:1.65rem;line-height:1.2}.desc{font-size:13px;color:var(--ink-soft);font-weight:300;margin-top:4px}.step-body{padding:2rem 2.5rem 4rem;max-width:900px}.wide-body{max-width:1120px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow)}.card h2{font-family:var(--font-serif);font-size:1.15rem;font-weight:400;margin-bottom:.85rem}.card h3{font-size:12px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem}.card p{font-size:13px;color:var(--ink-mid);line-height:1.7;margin-bottom:.8rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.field{margin-bottom:1.1rem}.field label,.field>.label{display:block;font-size:13px;font-weight:500;color:var(--ink-mid);margin-bottom:.3rem}.req{color:var(--orange-dark)}input,select,textarea{width:100%;font-family:var(--font-sans);font-size:14px;padding:.55rem .8rem;border:1px solid var(--border-mid);border-radius:var(--radius);background:var(--surface);color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(153,0,0,.14)}textarea{min-height:90px;resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.radio-group{display:flex;flex-wrap:wrap;gap:7px}.radio-group label{display:flex;align-items:center;gap:6px;padding:.38rem .8rem;border:1px solid var(--border-mid);border-radius:99px;cursor:pointer;font-size:13px;color:var(--ink-mid)}.radio-group input{accent-color:var(--orange)}.check-label{display:flex;align-items:flex-start;gap:10px;padding:.9rem 1rem;background:#ededea;border-radius:var(--radius);border:1px solid rgba(168,168,160,.4);font-size:13px;color:var(--ink-mid)}.check-label input{margin-top:3px}.consent-scroll{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;font-size:13px;color:var(--ink-mid);max-height:230px;overflow-y:auto;margin-bottom:1rem}.consent-scroll h4{font-family:var(--font-serif);font-weight:400;margin:.8rem 0 .2rem}.how-step{display:flex;gap:12px;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--border)}.how-step:last-child{border-bottom:none}.how-num{width:26px;height:26px;border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.base{background:var(--charcoal);color:#fff}.orange{background:var(--orange);color:#fff}.how-title{font-size:13px;font-weight:600}.how-desc{font-size:12px;color:var(--ink-soft);line-height:1.55}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.mini-grid span{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;font-size:12px;color:var(--ink-mid)}.prep-item{display:flex;gap:10px;align-items:flex-start;padding:.75rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.6rem}.prep-num{width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.prep-text{font-size:13px;color:var(--ink-mid);line-height:1.5}.score-dash{background:var(--charcoal);color:#fff;border-radius:var(--radius-lg);padding:1rem 1.5rem;margin-bottom:1.25rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;position:sticky;top:88px;z-index:40;box-shadow:0 4px 16px rgba(25,25,25,.25)}.dash-item{display:flex;flex-direction:column}.dash-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.45)}.dash-val{font-size:1.2rem;font-weight:500;font-family:var(--font-serif)}.dash-sep{width:1px;height:28px;background:rgba(255,255,255,.15)}.dash-avg{margin-left:auto}.dash-progress{font-size:11px;color:rgba(255,255,255,.45);align-self:flex-end}.progress-wrap{height:8px;background:var(--border);border-radius:99px;overflow:hidden}.progress-bar{height:100%;background:var(--orange);width:0;transition:width .3s}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1rem;box-shadow:var(--shadow);overflow:hidden}.metric-head{padding:1.1rem 1.4rem .85rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:1rem}.metric-title{font-family:var(--font-serif);font-size:1.12rem;font-weight:400;color:var(--ink)}.badge{font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .6rem;border-radius:99px;background:var(--blue-light);color:var(--blue);height:max-content}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem 1.4rem}.detail{font-size:12px;color:var(--ink-mid);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem}.detail b{display:block;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:10px;margin-bottom:.25rem}.rating-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:0 1.4rem 1rem}.rating-box{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;background:#fff}.rating-box legend{font-size:12px;font-weight:600;color:var(--ink-mid);margin-bottom:.4rem}.score-buttons{display:flex;gap:5px;flex-wrap:wrap}.score-btn{width:34px;height:34px;border-radius:var(--radius);border:1.5px solid var(--border-mid);background:var(--paper);font-family:var(--font-serif);font-size:1rem;color:var(--ink-mid);cursor:pointer}.score-btn:hover{border-color:var(--orange);color:var(--orange-dark);background:var(--orange-light)}.score-btn.selected{background:var(--charcoal);border-color:var(--charcoal);color:#fff}.comment-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:.85rem 1.4rem;border-top:1px solid var(--border)}.comment-grid label{font-size:13px;font-weight:500;color:var(--ink-mid)}.small{font-size:12px;color:var(--ink-faint);padding:0 1.4rem 1rem}.section-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem;margin:1rem 0}.stat{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem;text-align:center}.stat span{font-family:var(--font-serif);font-size:1.5rem;display:block}.stat small{font-size:11px;color:var(--ink-soft)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}th,td{border-bottom:1px solid var(--border);padding:.55rem;text-align:left}th{background:var(--paper);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.export-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;text-align:center;box-shadow:var(--shadow);margin-bottom:1.25rem}.export-block h3{font-family:var(--font-serif);font-size:1.2rem;font-weight:400}.btn{font-family:var(--font-sans);font-size:14px;font-weight:500;padding:.6rem 1.4rem;border-radius:var(--radius);cursor:pointer;transition:all .13s;border:1px solid;display:inline-flex;align-items:center;gap:6px}.btn-primary{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.btn-secondary{background:transparent;color:var(--ink-soft);border-color:var(--border-mid)}.btn-orange{background:var(--orange);color:#fff;border-color:var(--orange)}.btn-group{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.nav-row{display:flex;justify-content:space-between;align-items:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:13px;margin-bottom:1rem}.alert-warn{background:#fff4d6;border:1px solid #dfc178;color:#4d3900}.alert-hide{display:none}@media(max-width:900px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto}.step-header{position:relative}.grid-2,.field-row,.detail-grid,.rating-grid,.comment-grid,.dashboard-grid{grid-template-columns:1fr}.score-dash{position:relative;top:0}.step-body{padding:1rem;max-width:100%}}

/* IU Bloomington polish + agreement box fix */
.sidebar-brand{background:#990000;}
.sidebar{background:#191919;}
.sidebar-step.active{background:rgba(153,0,0,.28);}
.btn-primary{background:#990000;border-color:#990000;}
.btn-primary:hover{background:#6b0000;border-color:#6b0000;}
.btn-orange{background:#990000;border-color:#990000;}
.btn-orange:hover{background:#6b0000;border-color:#6b0000;}
.consent-scroll{line-height:1.65;white-space:normal;overflow-wrap:break-word;}
.consent-scroll h4{display:block;margin:.95rem 0 .25rem;color:#191919;}
.consent-scroll h4:first-child{margin-top:0;}
.consent-scroll p{display:block;font-size:13px;color:var(--ink-mid);line-height:1.65;margin:0 0 .75rem;}
.check-label span{display:block;line-height:1.5;}
.metric-title,.card h2,.step-header h1{color:#191919;}
.badge{background:#f3e8e8;color:#990000;}

/* UX patch: prevent global input styling from breaking checkbox/radio controls */
input[type="checkbox"],
input[type="radio"]{
  width:auto !important;
  min-width:0;
  padding:0;
  box-shadow:none;
}
.check-label{
  align-items:flex-start;
  cursor:pointer;
  line-height:1.5;
}
.check-label input[type="checkbox"]{
  width:18px !important;
  height:18px;
  margin:2px 0 0 0;
  flex:0 0 18px;
  accent-color:var(--orange);
}
.radio-group input[type="radio"]{
  flex:0 0 auto;
  margin:0;
}
.consent-scroll{
  line-height:1.65;
  white-space:normal;
  overflow-wrap:break-word;
  max-height:280px;
}
.consent-scroll h4,
.consent-scroll p{
  display:block;
  width:100%;
  clear:both;
}
.consent-scroll h4:first-child{margin-top:0;}
