
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Georgia',serif; line-height:1.6; color:#333;
  background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); padding:20px; }
.container { max-width:1100px; margin:0 auto; background:white; padding:40px;
  border-radius:10px; box-shadow:0 10px 40px rgba(0,0,0,0.3); }
.cover-page { text-align:center; padding:60px 20px;
  background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%); color:white;
  border-radius:10px; margin-bottom:40px; }
.cover-page h1 { font-size:2.6em; margin-bottom:20px; text-transform:uppercase; letter-spacing:3px; color:#f4a261; }
.cover-page h2 { font-size:1.6em; margin-bottom:30px; color:#e9c46a; }
.cover-page p { font-size:1.1em; max-width:800px; margin:0 auto 15px; }
.stat-row { display:flex; justify-content:center; gap:30px; flex-wrap:wrap; margin:25px 0; }
.stat { background:rgba(255,255,255,0.1); border:1px solid rgba(244,162,97,0.5); border-radius:8px; padding:12px 22px; }
.stat b { display:block; font-size:1.5em; color:#f4a261; }
.topnav { display:flex; justify-content:space-between; align-items:center; gap:10px;
  margin-bottom:25px; flex-wrap:wrap; }
.topnav a { text-decoration:none; background:#264653; color:white; padding:10px 18px;
  border-radius:6px; font-weight:600; font-size:.95em; }
.topnav a:hover { background:#2a9d8f; }
.topnav a.disabled { opacity:.35; pointer-events:none; }
.progress-wrap { background:#e9ecef; border-radius:20px; height:22px; overflow:hidden; margin:10px 0 30px; position:relative; }
.progress-bar { background:linear-gradient(90deg,#2a9d8f,#4caf50); height:100%; width:0%; transition:width .4s; }
.progress-label { position:absolute; width:100%; text-align:center; top:0; line-height:22px; font-size:.85em; font-weight:700; color:#264653; }
.module-header { background:linear-gradient(135deg,#2a9d8f 0%,#264653 100%); color:white;
  padding:30px; border-radius:8px 8px 0 0; }
.module-header h2 { font-size:2em; margin-bottom:10px; }
.module-header .timeline { font-size:1.05em; opacity:.9; }
.module-content { background:white; border:3px solid #2a9d8f; border-top:none;
  padding:30px; border-radius:0 0 8px 8px; }
.goal-box { background:#e9f5f3; border-left:5px solid #2a9d8f; padding:20px; margin:20px 0; border-radius:5px; }
.goal-box h3 { color:#2a9d8f; margin-bottom:10px; }
.objectives-box { background:#fff4e6; border-left:5px solid #e76f51; padding:20px; margin:20px 0; border-radius:5px; }
.objectives-box h3 { color:#e76f51; margin-bottom:15px; }
.objectives-box ul { padding-left:20px; }
.objectives-box li { margin:8px 0; }
.timeframe-box { background:#f0e6ff; border-left:5px solid #764ba2; padding:20px; margin:20px 0; border-radius:5px; }
.timeframe-box h3 { color:#764ba2; margin-bottom:10px; }
.analogy-box { background:#fdf6ec; border:2px dashed #e9c46a; border-radius:8px; padding:20px; margin:20px 0; font-style:italic; }
.analogy-box h4 { color:#b07d2b; margin-bottom:8px; font-style:normal; }
.visual-diagram { background:#f8f9fa; border:2px solid #dee2e6; border-radius:8px; padding:30px; margin:30px 0; text-align:center; }
.visual-diagram h4 { color:#264653; margin-bottom:20px; font-size:1.3em; }
.flowchart { display:flex; flex-wrap:wrap; justify-content:center; gap:30px 40px; margin:20px 0; }
.flow-step { background:white; border:2px solid #2a9d8f; border-radius:8px; padding:15px 25px;
  min-width:150px; box-shadow:0 2px 8px rgba(0,0,0,0.1); position:relative; }
.flow-step::after { content:'→'; position:absolute; right:-30px; top:50%; transform:translateY(-50%);
  font-size:1.5em; color:#2a9d8f; }
.flow-step:last-child::after { content:''; }
.step-instructions { background:#fff; border:2px solid #e9ecef; border-radius:8px; padding:25px; margin:20px 0; }
.step-instructions h4 { color:#264653; margin-bottom:15px; font-size:1.2em; }
.step-instructions ol { padding-left:25px; }
.step-instructions li { margin:12px 0; line-height:1.8; }
.step-instructions ul { padding-left:22px; margin-top:6px; }
.important-note { background:#fff3cd; border:2px solid #ffc107; border-radius:8px; padding:20px; margin:20px 0; }
.important-note h4 { color:#856404; margin-bottom:10px; }
.important-note ul { padding-left:22px; }
.danger-note { background:#fdecea; border:2px solid #e63946; border-radius:8px; padding:20px; margin:20px 0; }
.danger-note h4 { color:#c1121f; margin-bottom:10px; }
.assessment-box { background:#e8f5e9; border:3px solid #4caf50; border-radius:8px; padding:25px; margin:30px 0; }
.assessment-box h3 { color:#2e7d32; margin-bottom:8px; font-size:1.5em; }
.assessment-box .hint { color:#2e7d32; font-size:.9em; margin-bottom:15px; }
.checklist { list-style:none; padding:0; }
.checklist li { padding:10px 10px 10px 12px; margin:8px 0; background:white; border-radius:5px;
  display:flex; align-items:flex-start; gap:12px; }
.checklist input[type=checkbox] { width:20px; height:20px; margin-top:3px; accent-color:#4caf50; flex-shrink:0; cursor:pointer; }
.resources-box { background:#e3f2fd; border-left:5px solid #2196f3; padding:20px; margin:20px 0; border-radius:5px; }
.resources-box h4 { color:#1565c0; margin-bottom:15px; }
.resources-box ul { padding-left:20px; }
.cost-breakdown { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:15px; margin:20px 0; }
.cost-item { background:white; border:2px solid #dee2e6; border-radius:8px; padding:15px; text-align:center; }
.cost-item .label { font-weight:600; color:#264653; margin-bottom:8px; }
.cost-item .amount { font-size:1.25em; color:#e76f51; font-weight:700; }
.tbl { width:100%; border-collapse:collapse; margin:20px 0; font-size:.95em; }
.tbl th { background:#264653; color:white; padding:12px; text-align:left; }
.tbl td { border:1px solid #dee2e6; padding:10px 12px; vertical-align:top; }
.tbl tr:nth-child(even) { background:#f8f9fa; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:20px 0; }
@media (max-width:700px){ .two-col { grid-template-columns:1fr; } }
.col-card { border:2px solid #2a9d8f; border-radius:8px; padding:20px; background:#f8fffd; }
.col-card.pub { border-color:#764ba2; background:#faf7ff; }
.col-card h4 { margin-bottom:10px; color:#264653; }
.col-card ul { padding-left:20px; }
.ws { margin:14px 0; }
.ws label { display:block; font-weight:600; color:#264653; margin-bottom:4px; }
.ws input[type=text] { width:100%; border:none; border-bottom:2px solid #2a9d8f; padding:8px 4px;
  font-family:'Georgia',serif; font-size:1em; background:#fbfefe; }
.ws input[type=text]:focus { outline:none; background:#e9f5f3; }
.ws textarea { width:100%; border:2px solid #dee2e6; border-radius:6px; padding:10px;
  font-family:'Georgia',serif; font-size:1em; min-height:80px; }
.ws textarea:focus { outline:none; border-color:#2a9d8f; }
.ws-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:0 30px; }
.btn { display:inline-block; border:none; cursor:pointer; background:#2a9d8f; color:white;
  padding:12px 24px; border-radius:6px; font-size:1em; font-weight:700; font-family:'Georgia',serif; }
.btn:hover { background:#264653; }
.btn.orange { background:#e76f51; }
.btn.gray { background:#6c757d; }
.attach-note { background:#f1f3f5; border-left:4px solid #6c757d; padding:12px 16px; margin:15px 0; font-size:.95em; }
.toc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; margin:25px 0; }
.toc-card { border:2px solid #dee2e6; border-radius:8px; padding:16px; text-decoration:none; color:#264653;
  background:white; transition:all .2s; display:block; }
.toc-card:hover { border-color:#2a9d8f; transform:translateY(-2px); box-shadow:0 6px 16px rgba(42,157,143,.2); }
.toc-card .wk { font-size:.8em; font-weight:700; color:#e76f51; text-transform:uppercase; letter-spacing:1px; }
.toc-card h3 { font-size:1.1em; margin:4px 0 10px; }
.toc-card .mini { background:#e9ecef; border-radius:10px; height:10px; overflow:hidden; }
.toc-card .mini div { background:linear-gradient(90deg,#2a9d8f,#4caf50); height:100%; width:0%; }
.toc-card .pct { font-size:.8em; color:#6c757d; margin-top:4px; }
.phase-h { color:#2a9d8f; border-bottom:3px solid #2a9d8f; padding-bottom:8px; margin:35px 0 5px; font-size:1.5em; }
.footer-credit { text-align:center; color:#6c757d; font-size:.85em; margin-top:40px; }
@media print { body { background:white; padding:0; } .container { box-shadow:none; padding:20px; }
  .topnav, .btn { display:none; } }
