*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root {
  --cobalt:#00008b;
  --blue:#1a6aff;
  --teal:#0f6e56;
  --teal-light:#e1f5ee;
  --teal-mid:#5dcaa5;
  --amber:#ba7517;
  --amber-light:#faeeda;
  --red:#a32d2d;
  --red-light:#fcebeb;
  --green:#2d6e2d;
  --green-light:#e8f5e8;
  --bg:#f0f2f8;
  --surface:#fff;
  --border:rgba(0,0,139,0.1);
  --border-strong:rgba(0,0,139,0.18);
  --text:#0f1124;
  --text2:#4a5068;
  --text3:#8890a8;
  --radius:10px;
  --radius-lg:16px;
  --shadow:0 2px 8px rgba(0,0,139,0.07),0 8px 24px rgba(0,0,139,0.05);
  --font-display:'Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}

html{height:100%}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;font-size:15px;line-height:1.6}

/* HEADER */
.header{background:var(--cobalt);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:58px;position:sticky;top:0;z-index:100;box-shadow:0 2px 12px rgba(0,0,0,0.25)}
.header-brand{display:flex;align-items:center;gap:14px}
.logo-mark{width:30px;height:30px;object-fit:contain;flex-shrink:0}
.logo-text{font-size:15px;font-weight:600;color:#fff}
.header-div{width:1px;height:20px;background:rgba(255,255,255,0.2)}
.header-title{font-size:13px;color:rgba(255,255,255,0.65)}
.header-badge{font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:4px;padding:4px 10px}

/* SHELL */
.shell{max-width:1000px;margin:0 auto;padding:40px 24px 80px}

/* PROGRESS STRIP */
.progress-wrap{margin-bottom:36px}
.progress-phases{display:flex;gap:4px;margin-bottom:10px}
.phase-pip{flex:1;height:4px;border-radius:2px;background:var(--border);transition:background 0.3s}
.phase-pip.active{background:var(--blue)}
.phase-pip.done{background:var(--cobalt)}
.progress-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text3)}
.progress-label{font-weight:600;color:var(--blue)}

/* PHASE HEADER */
.phase-header{margin-bottom:28px}
.phase-eyebrow{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.phase-title{font-family:var(--font-display);font-size:28px;color:var(--cobalt);line-height:1.2;margin-bottom:8px}
.phase-desc{font-size:14px;color:var(--text2);max-width:560px;line-height:1.65}

/* CARD */
.card{break-inside:avoid;page-break-inside:avoid;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--cobalt);border-radius:var(--radius-lg);padding:28px;margin-bottom:16px;animation:fadeUp 0.3s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.card-title{font-size:13px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--text3);margin-bottom:16px}

/* FORM FIELDS */
.field-group{margin-bottom:18px}
.field-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px;display:block}
.field-sub{font-size:12px;color:var(--text3);margin-bottom:8px}
input[type=text],input[type=email],select{width:100%;padding:10px 14px;border:1.5px solid var(--border-strong);border-radius:var(--radius);font-family:var(--font-body);font-size:14px;color:var(--text);background:var(--surface);transition:border-color 0.15s,box-shadow 0.15s}
input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,106,255,0.12)}

/* OPTION BUTTONS */
.opt-grid{display:grid;gap:8px}
.opt-grid.col2{grid-template-columns:1fr 1fr}
.opt-btn{padding:10px 14px;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;transition:all 0.15s;text-align:left;font-family:var(--font-body);line-height:1.4}
.opt-btn:hover{border-color:var(--blue);background:rgba(26,106,255,0.04);color:var(--cobalt)}
.opt-btn.sel{border-color:var(--blue);background:rgba(26,106,255,0.08);color:var(--cobalt);font-weight:600}
.opt-btn.sel-teal{border-color:var(--teal);background:var(--teal-light);color:var(--teal)}

/* SCALE OPTIONS */
.scale-opts{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.scale-btn{padding:8px 6px;border:1.5px solid var(--border-strong);border-radius:8px;background:var(--surface);cursor:pointer;transition:all 0.15s;text-align:center;font-size:11px;font-weight:500;color:var(--text2);font-family:var(--font-body);line-height:1.3}
.scale-btn:hover{border-color:var(--blue);background:rgba(26,106,255,0.04)}
.scale-btn.sel{border-color:var(--blue);background:rgba(26,106,255,0.1);color:var(--cobalt);font-weight:600}
.scale-label{display:flex;justify-content:space-between;font-size:11px;color:var(--text3);margin-top:4px;padding:0 2px}

/* QUESTION BLOCK */
.q-block{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.q-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.q-text{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}
.q-num{font-size:11px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--text3);margin-bottom:4px}

/* CHECKLIST */
.checklist{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.check-row{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;border-radius:8px;background:var(--bg)}
.check-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:1px}
.check-pass{background:var(--green-light);color:var(--green)}
.check-fail{background:var(--red-light);color:var(--red)}
.check-warn{background:var(--amber-light);color:var(--amber)}
.check-label{flex:1;font-size:13px;font-weight:600;color:var(--text)}
.check-note{font-size:12px;color:var(--text3);text-align:right;flex-shrink:0;max-width:180px}

/* ALERTS */
.alert{padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.55;margin-top:12px}
.alert-teal{background:var(--teal-light);color:var(--teal);border:1px solid rgba(15,110,86,0.2)}
.alert-amber{background:var(--amber-light);color:var(--amber);border:1px solid rgba(186,117,23,0.2)}
.alert-blue{background:rgba(26,106,255,0.08);color:var(--cobalt);border:1px solid rgba(26,106,255,0.2)}
.alert-red{background:var(--red-light);color:var(--red);border:1px solid rgba(163,45,45,0.2)}

/* SCORE BADGE */
.score-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}
.score-high{background:var(--teal-light);color:var(--teal)}
.score-mid{background:var(--amber-light);color:var(--amber)}
.score-low{background:var(--red-light);color:var(--red)}

/* AI SCORE BARS */
.ai-bars{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.ai-bar-row{display:flex;align-items:center;gap:10px}
.ai-bar-label{width:160px;font-size:12px;font-weight:600;color:var(--text2);flex-shrink:0}
.ai-bar-track{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
.ai-bar-fill{height:100%;border-radius:4px;transition:width 0.8s cubic-bezier(0.4,0,0.2,1)}
.ai-bar-pct{width:32px;font-size:12px;font-weight:600;color:var(--text2);text-align:right}

/* RESULT BANNER */
.result-banner{border-radius:var(--radius-lg);padding:28px;margin-bottom:20px;text-align:center}
.result-saas{background:linear-gradient(135deg,rgba(15,110,86,0.12),rgba(93,202,165,0.08));border:2px solid rgba(15,110,86,0.3)}
.result-private{background:linear-gradient(135deg,rgba(26,106,255,0.1),rgba(0,0,139,0.08));border:2px solid rgba(26,106,255,0.25)}
.result-review{background:var(--amber-light);border:2px solid rgba(186,117,23,0.3)}
.result-icon{font-size:40px;margin-bottom:10px}
.result-eyebrow{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;opacity:0.6;margin-bottom:6px}
.result-headline{font-family:var(--font-display);font-size:26px;color:var(--cobalt);margin-bottom:10px}
.result-body{font-size:14px;color:var(--text2);line-height:1.65;max-width:520px;margin:0 auto}

/* NEXT STEPS */
.next-steps{margin-top:20px}
.next-steps-title{font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text3);margin-bottom:12px}
.next-step{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);align-items:flex-start}
.next-step:last-child{border-bottom:none}
.step-num{width:26px;height:26px;border-radius:6px;background:var(--cobalt);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.step-text{font-size:13px;color:var(--text2);line-height:1.55}

/* SUMMARY TABLE */
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.summary-item{background:var(--bg);border-radius:8px;padding:10px 14px}
.summary-key{font-size:11px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text3);margin-bottom:2px}
.summary-val{font-size:13px;font-weight:500;color:var(--text)}

/* NAV */
.nav-row{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.btn-back{background:none;border:1.5px solid var(--border-strong);color:var(--text2);padding:10px 20px;border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;transition:all 0.15s}
.btn-back:hover{background:var(--bg);color:var(--text)}
.btn-next{background:var(--cobalt);color:#fff;border:none;padding:11px 24px;border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;transition:all 0.15s}
.btn-next:hover{background:#000070}
.btn-next:disabled{background:var(--border-strong);cursor:not-allowed}
.btn-restart{background:none;border:1.5px solid var(--border-strong);color:var(--text2);padding:10px 20px;border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer}
.btn-print{background:var(--blue);color:#fff;border:none;padding:11px 24px;border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer}

/* SECTION DIVIDER */
.section-div{display:flex;align-items:center;gap:12px;margin:8px 0 20px}
.section-div-line{flex:1;height:1px;background:var(--border)}
.section-div-label{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--text3);white-space:nowrap}

/* AI OVERALL BAND */
.ai-overall{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:10px;margin-bottom:16px}
.ai-score-big{font-size:36px;font-weight:700;font-family:var(--font-display);line-height:1}
.ai-score-meta{flex:1}
.ai-score-label{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:3px}
.ai-score-sub{font-size:13px;line-height:1.5}

@media(max-width:600px){
  .shell{padding:24px 16px 60px}
  .opt-grid.col2{grid-template-columns:1fr}
  .scale-opts{grid-template-columns:repeat(3,1fr)}
  .summary-grid{grid-template-columns:1fr}
  .check-note{display:none}
  .phase-title{font-size:22px}
}

@media print{
  /* Hide all screen-only chrome */
  .header,.nav-row,.progress-wrap,.phase-header{display:none!important}
  .shell{padding:0;max-width:100%}
  body{background:#fff;font-size:11pt;color:#000;line-height:1.5}
  
  /* Make cards look like document sections */
  .card{border:none!important;padding:0!important;margin-bottom:2.5em!important;box-shadow:none!important;border-radius:0!important;background:transparent!important}
  .card-title{font-size:18pt!important;font-family:var(--font-display);border-bottom:2px solid #00008b;padding-bottom:0.3em;margin-bottom:1em;color:#00008b!important;letter-spacing:normal;text-transform:none}

  /* Summary grid into a clean table-like list */
  .summary-item{background:transparent!important;border-bottom:1px solid #ddd!important;border-radius:0!important;padding:0.6em 0!important;display:flex;justify-content:space-between}
  .summary-key{font-size:10pt!important;color:#444!important}
  .summary-val{font-size:11pt!important;color:#000!important;text-align:right}

  /* Result banner as a document callout */
  .result-banner{border:2px solid #00008b!important;background:transparent!important;padding:2em!important;border-radius:0!important;text-align:left!important}
  .result-icon{display:none!important}
  .result-eyebrow{color:#666!important;font-size:10pt!important;margin-bottom:0.5em!important}
  .result-headline{color:#00008b!important;font-size:22pt!important;margin-bottom:0.5em!important}
  .result-body{max-width:100%!important;margin:0!important;font-size:11.5pt!important;color:#000!important}

  /* Value and AI groups */
  .doc-section{background:transparent!important;border:none!important;border-top:2px solid #00008b!important;border-radius:0!important;padding:1em 0!important;margin-bottom:1.5em!important;break-inside:avoid;page-break-inside:avoid}
  .doc-section-title{font-size:14pt!important;color:#00008b!important;text-transform:none!important;letter-spacing:normal!important;margin-bottom:0.5em!important}
  .doc-item{background:transparent!important;border:none!important;padding:0!important;margin-bottom:1.2em!important;break-inside:avoid;page-break-inside:avoid}
  .doc-item-title{font-size:12pt!important;color:#000!important;text-transform:none!important;letter-spacing:normal!important;margin-bottom:0.3em!important}
  
  .ai-overall{background:transparent!important;border:1px solid #ccc!important;border-radius:0!important;padding:1em!important}
  
  /* Print-specific header and footer shown via named strings / running elements */
  .print-header{display:flex!important;padding-top:0!important}
  .print-footer{display:flex!important}

  /* Page breaks */
  .print-break-before{page-break-before:always!important;break-before:page!important}
  
  /* Ensure SVGs and backgrounds print if needed */
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

  @page{
    size:letter;
    margin:20mm 15mm 20mm;
  }
  @page{
    @top-left{
      content:'';
    }
  }
}


/* Hide print elements on screen by default */
.print-header, .print-footer { display: none; }

/* --- DOCUMENT MODE (SCREEN PREVIEW) --- */
body.doc-mode .header { display: none !important; }
body.doc-mode .progress-wrap { display: none !important; }
body.doc-mode .doc-toolbar { display: flex; justify-content: space-between; padding: 10px 20px; background: var(--cobalt); color: white; position: sticky; top: 0; z-index: 200; box-shadow: 0 2px 5px rgba(0,0,0,0.2); }
body.doc-mode .doc-toolbar button { padding: 8px 16px; font-weight: 600; border-radius: 4px; cursor: pointer; }
body.doc-mode .print-header { display: none !important; }
@media print {
  body.doc-mode .doc-toolbar { display: none !important; }
  .print-break-before { page-break-before: always; }
}

/* STRICT DOCX STYLES */

  body.doc-mode .shell { max-width: 210mm; padding: 20px; background: #fff; margin: 0 auto; font-family: Arial, sans-serif; font-size: 10pt; line-height: 1.5; color: #000000; box-shadow: none; }
  body.doc-mode h1 { font-family: Arial, sans-serif; font-size: 24pt; color: #00009F; font-weight: bold; margin-top: 24pt; margin-bottom: 12pt; }
  body.doc-mode h2 { font-family: Arial, sans-serif; font-size: 18pt; color: #1A69FF; font-weight: bold; margin-top: 18pt; margin-bottom: 9pt; border-top: none; padding-top: 0; }
  body.doc-mode h3 { font-family: Arial, sans-serif; font-size: 14pt; color: #1A69FF; font-weight: bold; margin-top: 14pt; margin-bottom: 7pt; }
  body.doc-mode h4 { font-family: Arial, sans-serif; font-size: 10pt; color: #1A69FF; font-weight: bold; }
  
  body.doc-mode table { width: 100%; border-collapse: collapse; margin-bottom: 15pt; }
  body.doc-mode thead th { background-color: #00008B; color: #FFFFFF; font-family: Arial, sans-serif; font-size: 9pt; font-weight: bold; padding: 8px; border: 1px solid #E8E9EC; text-align: left; }
  body.doc-mode tbody th { background-color: #FFFFFF; color: #000000; font-family: Arial, sans-serif; font-size: 9pt; font-weight: bold; padding: 8px; border: 1px solid #E8E9EC; text-align: left; vertical-align: top; }
  body.doc-mode td { vertical-align: top; }
  body.doc-mode td { font-family: Arial, sans-serif; font-size: 9pt; color: #000000; padding: 6px; border: 1px solid #E8E9EC; }

  /* Override specific doc-mode sections to prevent them injecting conflicting styles */
  body.doc-mode .doc-section { border-top: none !important; padding: 0 !important; margin-bottom: 20pt !important; page-break-inside: avoid; break-inside: avoid; }
  
  /* Link colors */
  body.doc-mode a { color: #1A69FF; text-decoration: none; }


body.doc-mode .btn-doc-back { background: transparent; color: white; border: 1px solid white; border-radius: 4px; padding: 8px 16px; font-weight: 600; cursor: pointer; transition: background 0.2s; }
body.doc-mode .btn-doc-back:hover { background: rgba(255,255,255,0.1); }
body.doc-mode .btn-doc-pdf { background: #FFFFFF; color: #00008B; border: none; border-radius: 4px; padding: 8px 16px; font-weight: 700; cursor: pointer; transition: background 0.2s; display: flex; align-items: center; }
body.doc-mode .btn-doc-pdf:hover { background: #F0F2F5; }
