/* Pitch & Roll — shared stylesheet for every page of the site.

   The site uses one design language (the tokens, gradient background, rounded
   "pill"/"card" surfaces and buttons below are shared) with a few per-page
   metrics. Page-specific values are scoped under a body class:
     .page-home   — top-level landing (index.html)
     .page-cli    — BoatTools landing
     .page-app    — Thoosa landing
     .page-legal  — privacy / legal pages
     .page-help   — online help pages
*/

/* ---------- Design tokens ---------- */
:root {
  --blue-900:#08182f; --blue-800:#0b2746; --blue-700:#103a6b;
  --cyan:#2ec4d6; --cyan-soft:#93d5e6; --orange:#f5821f; --orange-700:#d96d12;
  --ink:#eaf4fb; --ink-dim:#a9c4d8;
}

/* ---------- Reset & base ---------- */
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body {
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(46,196,214,0.18), transparent 60%),
    radial-gradient(900px 500px at 0% 110%, rgba(245,130,31,0.14), transparent 55%),
    linear-gradient(160deg, var(--blue-800), var(--blue-900));
  min-height:100vh;
}
a { color:var(--cyan); }
body.page-home, body.page-cli { line-height:1.55; }
body.page-help { font-size:17px; }

/* ---------- Shared components ---------- */

/* Rounded "pill" cards */
.pill {
  background:linear-gradient(180deg, rgba(16,58,107,0.55), rgba(11,39,70,0.65));
  border:1px solid rgba(46,196,214,0.25);
  border-radius:26px;
  box-shadow:0 18px 50px rgba(0,0,0,0.35);
}
.pill h2 .mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--orange); }

/* Buttons */
.btns { display:flex; flex-wrap:wrap; gap:12px; }
.btn {
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  font-weight:600; font-size:.98rem; padding:11px 18px; border-radius:999px;
  border:1.5px solid transparent; transition:transform .08s ease, filter .15s ease;
}
.btn:active { transform:translateY(1px); }
.btn-orange { background:var(--orange); color:#1a0f02; }
.btn-orange:hover { filter:brightness(1.07); }
.btn-cyan { background:transparent; color:var(--cyan); border-color:var(--cyan); }
.btn-cyan:hover { background:rgba(46,196,214,0.12); }

/* Inline code */
code {
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  background:rgba(0,0,0,0.28); padding:1px 6px; border-radius:6px; color:var(--cyan-soft);
}

/* Footer */
footer { text-align:center; color:var(--ink-dim); font-size:.86rem; }
footer a { text-decoration:none; }

/* Top bar (Thoosa landing + legal) */
.topbar { font-size:.92rem; }
.topbar a { text-decoration:none; color:var(--ink-dim); }
.topbar a:hover { color:var(--cyan-soft); }

/* Language selector (every page) */
nav.langs { font-size:.92rem; color:var(--ink-dim); }
nav.langs a { text-decoration:none; }
nav.langs a:hover { color:var(--cyan-soft); }
nav.langs strong { color:var(--cyan-soft); }
/* Outside the help header bar, it floats at the top right of the page. */
.wrap > nav.langs { position:absolute; top:18px; right:22px; }

/* ====================================================================
   Landing pages — home (index.html) and BoatTools (.page-cli)
   ==================================================================== */
.page-home h1 .accent,
.page-cli  h1 .accent { color:var(--orange); }

/* --- Home --- */
.page-home .wrap { max-width:920px; margin:0 auto; padding:56px 20px 64px; }
.page-home header { text-align:center; margin-bottom:46px; }
.page-home .logo { width:104px; height:104px; margin:0 auto 16px; display:block; }
.page-home h1 { font-size:2.8rem; margin:0 0 8px; letter-spacing:-0.5px; }
.page-home .tagline { color:var(--cyan-soft); font-size:1.14rem; margin:0 auto; max-width:620px; }
.page-home .pill { padding:30px 30px 34px; margin:26px 0; }
.page-home .pill .head { display:flex; align-items:center; gap:16px; }
.page-home .pill .head img { width:56px; height:56px; flex:none; }
.page-home .pill h2 { margin:0; font-size:1.6rem; }
.page-home .pill .sub { color:var(--ink-dim); margin:2px 0 0; font-size:.92rem; }
.page-home .pill p.lead { color:var(--ink); margin:18px 0 22px; }
.page-home footer { margin-top:44px; }

/* --- BoatTools --- */
.page-cli .wrap { max-width:920px; margin:0 auto; padding:48px 20px 64px; }
.page-cli header { text-align:center; margin-bottom:44px; }
.page-cli .logo { width:96px; height:96px; margin:0 auto 14px; display:block; }
.page-cli h1 { font-size:2.6rem; margin:0 0 6px; letter-spacing:-0.5px; }
.page-cli .tagline { color:var(--cyan-soft); font-size:1.12rem; margin:0 auto 16px; max-width:640px; }
.page-cli .badges img { height:22px; vertical-align:middle; margin:4px; }
.page-cli .pill { padding:30px 30px 34px; margin:26px 0; }
.page-cli .pill h2 { margin:0 0 4px; font-size:1.5rem; }
.page-cli .pill .sub { color:var(--ink-dim); margin:0 0 18px; }
.page-cli .pill p.lead { color:var(--ink); margin:0 0 22px; }
.page-cli .pill ul { margin:0 0 22px; padding-left:1.1em; color:var(--ink-dim); }
.page-cli .pill ul li { margin:3px 0; }
.page-cli .btn small { font-weight:500; opacity:0.8; }
.page-cli .note { color:var(--ink-dim); font-size:0.86rem; margin-top:16px; }
.page-cli .note strong { color:var(--cyan-soft); }
.page-cli .dev { color:var(--ink-dim); font-size:0.8rem; margin-top:10px; }
.page-cli .dev a { color:var(--cyan); text-decoration:none; }
.page-cli .dev a:hover { text-decoration:underline; }

/* Dependencies / requirements block (below the download buttons) */
.page-cli .deps { margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,0.09); }
.page-cli .deps h3 { margin:0 0 16px; font-size:1.1rem; }
.page-cli .dep { margin:0 0 20px; }
.page-cli .dep:last-child { margin-bottom:0; }
.page-cli .dep-os { margin:0 0 5px; font-weight:600; color:var(--cyan-soft); font-size:0.96rem; }
.page-cli .dep-os .ok { color:#3fc77e; font-weight:700; }
.page-cli .dep-os .muted { color:var(--ink-dim); font-weight:400; }
.page-cli .dep p { margin:0 0 8px; color:var(--ink-dim); font-size:0.88rem; }
.page-cli .dep .cmd-label { margin:10px 0 3px; font-size:0.78rem; font-weight:600; color:var(--ink-dim); }
.page-cli .dep pre { margin:4px 0 0; padding:11px 13px; background:rgba(0,0,0,0.32); border-radius:8px; overflow-x:auto; }
.page-cli .dep pre code { background:none; padding:0; color:var(--ink); font-size:0.82rem; line-height:1.55; white-space:pre; }
.page-cli footer { margin-top:40px; }
.page-cli footer a { color:var(--cyan); }
.page-cli footer a:hover { text-decoration:underline; }

/* ====================================================================
   Thoosa landing (.page-app)
   ==================================================================== */
.page-app .wrap { max-width:900px; margin:0 auto; padding:24px 20px 64px; }
.page-app header { text-align:center; margin:26px 0 36px; }
.page-app .logo { width:128px; height:128px; display:block; margin:0 auto 14px; }
.page-app h1 { font-size:2.8rem; margin:0 0 6px; letter-spacing:-0.5px; }
.page-app h1 .accent { color:var(--orange); }
.page-app .tagline { color:var(--cyan-soft); font-size:1.14rem; max-width:600px; margin:0 auto 22px; }
.page-app .btns { justify-content:center; }
.page-app .btn { font-size:1rem; padding:12px 20px; }

.page-app .cards {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin:32px 0;
}
.page-app .card {
  background:linear-gradient(180deg, rgba(16,58,107,0.55), rgba(11,39,70,0.65));
  border:1px solid rgba(46,196,214,0.25); border-radius:22px; padding:22px 22px 24px;
  box-shadow:0 14px 40px rgba(0,0,0,0.32);
}
.page-app .card .glyph { font-size:1.7rem; }
.page-app .card h3 { margin:8px 0 6px; font-size:1.15rem; }
.page-app .card p { margin:0; color:var(--ink-dim); font-size:.95rem; }

.page-app .help {
  text-align:center; margin-top:40px; padding:30px;
  background:linear-gradient(180deg, rgba(16,58,107,0.45), rgba(11,39,70,0.55));
  border:1px solid rgba(46,196,214,0.22); border-radius:26px;
}
.page-app .help h2 { margin:0 0 6px; font-size:1.5rem; }
.page-app .help p { color:var(--ink-dim); margin:0 0 18px; }

.page-app .beta {
  text-align:center; margin:0 0 36px; padding:24px 26px;
  background:linear-gradient(180deg, rgba(245,130,31,0.16), rgba(245,130,31,0.06));
  border:1px solid rgba(245,130,31,0.45); border-radius:22px;
}
.page-app .beta .badge {
  display:inline-block; font-size:.74rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--orange);
  border:1px solid rgba(245,130,31,0.55); border-radius:999px; padding:4px 12px; margin-bottom:12px;
}
.page-app .beta h2 { margin:0 0 8px; font-size:1.4rem; }
.page-app .beta p { color:var(--ink-dim); margin:0 auto 18px; max-width:560px; }
.page-app footer { margin-top:42px; }

/* "Genèse" intro block (Thoosa landing, before the beta box) */
.page-app .genese { text-align:center; margin:0 0 30px; }
.page-app .genese h2 { font-size:1.5rem; margin:0 0 10px; }
.page-app .genese p { color:var(--ink-dim); max-width:560px; margin:0 auto 18px; }

/* ====================================================================
   Legal / privacy (.page-legal)
   ==================================================================== */
.page-legal .wrap { max-width:820px; margin:0 auto; padding:24px 20px 64px; }
.page-legal header { text-align:center; margin:26px 0 30px; }
.page-legal .logo { width:96px; height:96px; display:block; margin:0 auto 14px; }
.page-legal h1 { font-size:2.2rem; margin:0 0 6px; letter-spacing:-0.5px; }
.page-legal h1 .accent { color:var(--orange); }
.page-legal .updated { color:var(--ink-dim); font-size:.92rem; }

.page-legal .summary {
  background:linear-gradient(180deg, rgba(16,58,107,0.55), rgba(11,39,70,0.65));
  border:1px solid rgba(46,196,214,0.25); border-radius:22px; padding:20px 24px;
  box-shadow:0 14px 40px rgba(0,0,0,0.32); margin:26px 0 8px;
}
.page-legal .summary h2 { margin:0 0 8px; font-size:1.15rem; }
.page-legal .summary ul { margin:0; padding-left:20px; }
.page-legal .summary li { margin:6px 0; color:var(--ink-dim); }
.page-legal .summary strong { color:var(--ink); }

.page-legal main h2 { font-size:1.35rem; margin:34px 0 8px; }
.page-legal main h3 { font-size:1.08rem; margin:20px 0 4px; color:var(--cyan-soft); }
.page-legal main p, .page-legal main li { color:var(--ink-dim); }
.page-legal main ul { padding-left:22px; }
.page-legal main li { margin:5px 0; }
.page-legal footer { margin-top:46px; }

/* ====================================================================
   Online help (.page-help)
   ==================================================================== */
.page-help .wrap { max-width:880px; margin:0 auto; padding:40px 20px 64px; }

/* Branded header, matching the hand-written site pages (centred logo + title). */
.page-help header { text-align:center; margin:8px 0 32px; }
.page-help header .logo { width:104px; height:104px; display:block; margin:0 auto 12px; }
.page-help header h1 { font-size:2.5rem; margin:0 0 6px; letter-spacing:-0.5px; }
.page-help header h1 .accent { color:var(--orange); }
.page-help header .tagline { color:var(--cyan-soft); max-width:620px; margin:0 auto; }

.page-help .cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:18px; }
.page-help a.card {
  display:block; text-decoration:none; color:var(--ink);
  background:linear-gradient(180deg, rgba(16,58,107,0.55), rgba(11,39,70,0.65));
  border:1px solid rgba(46,196,214,0.25); border-radius:22px;
  padding:22px 22px 24px; box-shadow:0 14px 40px rgba(0,0,0,0.32);
  transition:transform .1s ease, border-color .15s ease;
}
.page-help a.card:hover { transform:translateY(-3px); border-color:var(--cyan); }
.page-help a.card .glyph { font-size:1.7rem; }
.page-help a.card h2 { margin:8px 0 6px; font-size:1.2rem; }
.page-help a.card p { margin:0; color:var(--ink-dim); font-size:.95rem; }

.page-help article.pill { padding:8px 34px 30px; }
.page-help article.pill h1 { font-size:2rem; }
.page-help article.pill h2 { font-size:1.3rem; margin-top:1.7em; color:var(--cyan-soft); }
.page-help article.pill p, .page-help article.pill li { color:var(--ink); }
.page-help article.pill ul { padding-left:1.2em; }
.page-help article.pill li { margin:.3em 0; }
.page-help .btn {
  display:inline-block; margin-top:26px; text-decoration:none; font-weight:600;
  padding:10px 18px; border-radius:999px; border:1.5px solid var(--cyan); color:var(--cyan);
}
.page-help .btn:hover { background:rgba(46,196,214,0.12); }
.page-help footer { margin-top:40px; }

/* Help screenshots: per-platform shots shown side by side (Mac + iPhone). */
.shots { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin: 1.25rem 0; }
.shots .shot { margin: 0; text-align: center; flex: 0 1 auto; }
.shots .shot img { max-width: 100%; height: auto; border-radius: 10px; box-shadow: 0 2px 12px rgba(0,0,0,.18); }
.shots .shot figcaption { margin-top: .4rem; font-size: .85em; opacity: .65; }

/* Thoosa — présentation + FAQ (référencement) */
.page-app .about { max-width:760px; margin:44px auto 0; }
.page-app .about h2 { text-align:center; font-size:1.5rem; margin:0 0 14px; }
.page-app .about p { color:var(--ink-dim); margin:0 0 12px; line-height:1.65; }
.page-app .about strong { color:var(--ink); font-weight:600; }
.page-app .faq { max-width:760px; margin:44px auto 0; }
.page-app .faq h2 { text-align:center; font-size:1.5rem; margin:0 0 18px; }
.page-app .faq details {
  background:linear-gradient(180deg, rgba(16,58,107,0.45), rgba(11,39,70,0.55));
  border:1px solid rgba(46,196,214,0.22); border-radius:16px; padding:14px 18px; margin:0 0 10px; }
.page-app .faq summary { cursor:pointer; font-weight:600; color:var(--ink); list-style:none; }
.page-app .faq summary::-webkit-details-marker { display:none; }
.page-app .faq summary::before { content:"＋"; color:var(--cyan); font-weight:700; margin-right:10px; }
.page-app .faq details[open] summary::before { content:"－"; }
.page-app .faq details p { color:var(--ink-dim); margin:10px 0 0; line-height:1.6; }
