/* ============================================================================
   Deus Intus · Self-Mastery Toolkit — SHARED PRINT SYSTEM
   print-system.css  ·  greyscale-safe premium workbook output
   Load AFTER design-system.css. Screen UI (.no-print) is hidden; the
   JS-built .print-only workbook is shown. All colour degrades to ink-safe grey.
   No SVG. Texture is a faint CSS gradient at <=8% opacity.
   ============================================================================ */

/* Hidden on screen; revealed only when printing. */
.print-only{ display:none; }

@media print{
  @page{ size:A4; margin:0; }
  html, body{ background:#fff; color:#000; }
  .no-print{ display:none !important; }
  .wrap{ max-width:none; padding:0; }
  .print-only{ display:block; }

  /* ---- per-page frame ---- */
  .pp{ page-break-after:always; padding:52px 46px; min-height:100vh; position:relative;
       box-sizing:border-box;
       /* faint ivory paper texture, premium, not flat */
       background:
         radial-gradient(circle at 20% 18%, rgba(150,150,150,0.05) 0, transparent 38%),
         radial-gradient(circle at 82% 78%, rgba(150,150,150,0.045) 0, transparent 40%),
         #F7F4EE; }
  .pp:last-child{ page-break-after:auto; }

  /* ---- premium page title block ---- */
  .pp-title{ font-family:var(--di-font-display); font-size:30px; color:#1a1a1a;
             margin:0 0 4px; line-height:1.12; letter-spacing:.01em; position:relative; }
  .pp-kicker{ font-family:var(--di-font-body); letter-spacing:.34em; text-transform:uppercase;
              font-size:10px; color:#8a8a8a; margin-bottom:14px; }
  .pp-rule{ height:1px; background:linear-gradient(90deg,#888,#bbb,#888); border:0;
            margin:0 0 22px; opacity:.7; }
  .pp-lead{ font-family:var(--di-font-accent); font-style:italic; font-size:15px;
            color:#333; margin:0 0 18px; line-height:1.55; }

  /* ---- edition marker (top-right of every content page) ---- */
  .pp-edition{ position:absolute; top:20px; right:24px; font-family:var(--di-font-body);
               letter-spacing:.18em; text-transform:uppercase; font-size:9px; color:#9a9a9a; text-align:right; }

  /* ---- cover (light, centered) ---- */
  .cover{ background:#F7F4EE; min-height:100vh; display:flex; flex-direction:column;
          align-items:center; justify-content:center; text-align:center; position:relative; }
  .cover::before{ content:""; position:absolute; width:300px; height:300px; border-radius:50%;
    background:radial-gradient(circle, transparent 67%, #999 68%, #999 69%, transparent 70%); opacity:.5; }
  .cover .c-title{ font-family:var(--di-font-display); font-size:42px; color:#1a1a1a; position:relative; line-height:1.1; }
  .cover .c-sub{ font-family:var(--di-font-accent); font-style:italic; font-size:18px; color:#444;
    margin-top:12px; position:relative; }
  .cover .c-hero{ font-family:var(--di-font-accent); font-style:italic; font-size:23px; color:var(--di-ink);
    margin-top:30px; max-width:520px; position:relative; }
  .cover .c-date{ font-family:var(--di-font-body); letter-spacing:.2em; text-transform:uppercase;
    font-size:12px; color:#666; margin-top:24px; position:relative; }
  .cover .c-edition{ position:absolute; bottom:34px; font-family:var(--di-font-body);
    letter-spacing:.2em; text-transform:uppercase; font-size:10px; color:#9a9a9a; }

  /* ---- section heading (legacy alias) ---- */
  h3.sec{ font-family:var(--di-font-display); font-size:22px; color:#1a1a1a; margin:8px 0 16px;
    border-bottom:2px solid #888; padding-bottom:8px; }

  /* ---- tables / worksheets ---- */
  .p-table{ width:100%; border-collapse:collapse; margin:18px 0; }
  .p-table th{ text-align:left; font-family:var(--di-font-body); text-transform:uppercase;
    letter-spacing:.12em; font-size:11px; color:#333; border-bottom:2px solid #888; padding:8px 10px; }
  .p-table td{ border:1px solid #bbb; padding:10px; font-size:13px; vertical-align:top; }
  .p-table .chk{ width:34px; text-align:center; }
  .pr-grey{ background:#e8e8e8; }

  /* ---- how-to / numbered steps ---- */
  .p-steps{ list-style:none; counter-reset:stp; margin:14px 0 0; padding:0; }
  .p-steps li{ counter-increment:stp; position:relative; padding:11px 0 11px 38px;
    border-bottom:1px solid #ccc; font-size:13.5px; color:#222; }
  .p-steps li::before{ content:counter(stp,decimal-leading-zero); position:absolute; left:0; top:11px;
    font-family:var(--di-font-display); font-size:15px; color:#1a1a1a; }
  .p-callout{ border-left:3px solid #1a1a1a; padding:10px 0 10px 16px; margin:16px 0 0;
    font-family:var(--di-font-accent); font-style:italic; font-size:14px; color:#333; }

  /* ---- 7-day tracker grid ---- */
  .track{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-top:10px; }
  .track div{ border:1px solid #bbb; height:30px; }
  .track-labels{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-top:6px; }
  .track-labels span{ text-align:center; font-size:10px; color:#666; letter-spacing:.08em; }

  /* ---- 4-week tracker (7 columns x 4 rows, fill by hand) ---- */
  .p-weeks{ width:100%; border-collapse:collapse; margin-top:12px; }
  .p-weeks th, .p-weeks td{ border:1px solid #bbb; padding:9px 8px; font-size:12px; text-align:center; }
  .p-weeks th{ background:#e8e8e8; font-family:var(--di-font-body); text-transform:uppercase;
    letter-spacing:.1em; font-size:10px; color:#333; }
  .p-weeks .wk{ text-align:left; font-weight:400; color:#222; }

  /* ---- reflection prompts ---- */
  .refl{ margin-top:8px; }
  .refl .rp{ border-bottom:1px solid #999; padding:18px 4px; font-size:13px; color:#222; }

  /* ---- DARK SECTION DIVIDER PAGE (sacred-modern interlude) ---- */
  .pp-divider{ background:#050A12; color:#F7F4EE; display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center; min-height:100vh;
    position:relative; }
  .pp-divider::before{ content:""; position:absolute; width:230px; height:230px; border-radius:50%;
    background:radial-gradient(circle, transparent 60%, rgba(247,244,238,0.16) 61%, transparent 63%); }
  .pp-divider .d-mark{ font-family:var(--di-font-body); letter-spacing:.42em; text-transform:uppercase;
    font-size:11px; color:#C9A227; position:relative; }
  .pp-divider .d-line{ font-family:var(--di-font-display); font-size:30px; color:#F7F4EE;
    margin-top:18px; position:relative; line-height:1.3; max-width:520px; }
  .pp-divider .d-sub{ font-family:var(--di-font-accent); font-style:italic; font-size:15px;
    color:#D7C38A; margin-top:14px; position:relative; }

  /* ---- FINAL CTA PAGE ---- */
  .pp-cta{ background:#050A12; color:#F7F4EE; display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center; min-height:100vh; position:relative; }
  .pp-cta::before{ content:""; position:absolute; top:54px; left:50%; transform:translateX(-50%);
    width:240px; height:1px; background:linear-gradient(90deg,transparent,#C9A227,transparent); opacity:.8; }
  .pp-cta .cta-mark{ font-family:var(--di-font-body); letter-spacing:.42em; text-transform:uppercase;
    font-size:11px; color:#C9A227; position:relative; }
  .pp-cta .cta-title{ font-family:var(--di-font-display); font-size:34px; color:#F7F4EE;
    margin:18px 0 6px; position:relative; line-height:1.18; }
  .pp-cta .cta-lead{ font-family:var(--di-font-accent); font-style:italic; font-size:17px;
    color:#D7C38A; position:relative; margin-bottom:26px; max-width:520px; }
  .pp-cta .cta-box{ border:1px solid rgba(201,162,39,0.55); padding:22px 28px; position:relative;
    max-width:520px; }
  .pp-cta .cta-box .b-name{ font-family:var(--di-font-display); font-size:21px; color:#F7F4EE; }
  .pp-cta .cta-box .b-sub{ font-family:var(--di-font-accent); font-style:italic; font-size:14px;
    color:#D7C38A; margin:6px 0 12px; }
  .pp-cta .cta-box .b-step{ font-size:12.5px; color:#F7F4EE; text-align:left; margin:8px 0; line-height:1.5; }
  .pp-cta .cta-foot{ font-size:10px; color:#9a8f7a; position:relative; margin-top:26px;
    font-family:var(--di-font-body); letter-spacing:.05em; }

  /* ---- consistent footer (light pages) ---- */
  .pp-foot{ position:absolute; bottom:26px; left:0; right:0; text-align:center;
    font-family:var(--di-font-body); font-size:9px; letter-spacing:.16em; color:#9a9a9a; }
  .pp-foot .ff-tag{ color:#b0a890; }
  .pp-foot .ff-resp{ font-style:italic; letter-spacing:0; font-size:8px; color:#b8b0a0;
    max-width:560px; margin:6px auto 0; line-height:1.5; }

  /* ---- generic ink-safe helpers reusable across tools ---- */
  .p-note{ color:#444; font-family:var(--di-font-accent); font-style:italic; }
  .p-box{ border:1px solid #bbb; padding:14px; font-family:var(--di-font-accent); font-style:italic; font-size:15px; margin:10px 0; }
  .p-fw{ border:1px solid #bbb; padding:10px; margin:6px 0; font-size:13px; }
  .p-line{ border-bottom:1px solid #999; padding:14px 4px; font-size:13px; margin:8px 0; }
  .p-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px; }
  .p-grid div{ border:1px solid #bbb; padding:8px; font-size:11px; text-align:center; }
}
