/* ─── bourse.css — Thème : Terminal Bloomberg, trading floor vert sombre ──── */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=IBM+Plex+Serif:ital,wght@0,300;0,400;0,600;1,300;1,400&family=IBM+Plex+Mono:ital,wght@0,400;0,500;1,400&display=swap');

:root {
  --terminal:    #000d00;
  --deep:        #001200;
  --surface:     #001800;
  --surface-2:   #002400;
  --surface-3:   #003000;
  --green:       #00ff41;
  --green-2:     #00cc33;
  --green-3:     #009922;
  --green-pale:  rgba(0,255,65,.07);
  --green-glow:  rgba(0,255,65,.18);
  --amber:       #ffb800;
  --amber-pale:  rgba(255,184,0,.07);
  --red:         #ff3c3c;
  --red-pale:    rgba(255,60,60,.07);
  --cyan:        #00ffff;
  --cyan-pale:   rgba(0,255,255,.06);
  --white:       #c8e8c8;
  --white-dim:   #6fa06f;
  --border:      rgba(0,255,65,.12);
  --border-hi:   rgba(0,255,65,.35);
  --font-display:'IBM Plex Sans', sans-serif;
  --font-body:   'IBM Plex Serif', Georgia, serif;
  --font-mono:   'IBM Plex Mono', monospace;
  --sidebar-w:   268px;
  --radius:      3px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}

body {
  font-family: var(--font-body);
  background: var(--terminal);
  color: var(--white);
  font-size: 16.5px;
  line-height: 1.76;
  background-image:
    repeating-linear-gradient(
      0deg, transparent, transparent 3px,
      rgba(0,255,65,.015) 3px, rgba(0,255,65,.015) 4px
    );
  /* CRT scanlines */
  background-attachment: fixed;
}

/* ─── Progress ───────────────────────────────────────────────────────────── */
.progress-bar {
  position:fixed; top:0; left:0; height:2px; width:0%;
  background: var(--green);
  z-index:200; transition:width .08s linear;
  box-shadow: 0 0 8px var(--green-glow), 0 0 16px var(--green-glow);
}

/* ─── Layout ─────────────────────────────────────────────────────────────── */
.page-layout{display:flex;min-height:100vh;}

/* ─── Sidebar ────────────────────────────────────────────────────────────── */
.sidebar {
  width:var(--sidebar-w); flex-shrink:0;
  background:var(--deep);
  border-right:1px solid var(--border);
  position:sticky; top:0; height:100vh;
  overflow-y:auto; display:flex; flex-direction:column;
  scrollbar-width:thin; scrollbar-color:var(--surface-3) transparent;
}

.sidebar-header {
  padding:26px 20px 20px;
  border-bottom:1px solid var(--border);
}

.sidebar-site-link {
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.15em;
  color:var(--white-dim); text-decoration:none; display:block; margin-bottom:12px;
}

.sidebar-title {
  font-family:var(--font-mono); font-size:1.1rem; font-weight:500;
  color:var(--green); letter-spacing:.04em;
}

/* Blinking cursor */
.sidebar-title::after {
  content:'█'; font-size:.9em; animation:blink 1.2s step-end infinite;
}

@keyframes blink { 50%{opacity:0} }

.toc-nav{padding:12px 0 16px;flex:1;}
.toc-section-label {
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--white-dim); padding:10px 20px 4px;
  opacity:.6;
}

.toc-link {
  display:block; padding:5px 20px 5px 24px;
  font-family:var(--font-mono); font-size:.78rem;
  color:var(--green-3); text-decoration:none;
  border-left:2px solid transparent; transition:all .12s;
}
.toc-link:hover,.toc-link.active {
  color:var(--green); border-left-color:var(--green); background:var(--green-pale);
  text-shadow: 0 0 6px var(--green-glow);
}

.sidebar-subject-nav{padding:14px 20px;border-top:1px solid var(--border);}
.sidebar-subject-nav p {
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--white-dim); margin-bottom:8px; opacity:.6;
}
.sidebar-subject-nav a {
  display:block; font-family:var(--font-mono); font-size:.76rem;
  color:var(--green-3); text-decoration:none; padding:3px 0; transition:color .12s;
}
.sidebar-subject-nav a:hover{color:var(--green);}
.sidebar-subject-nav a.current{color:var(--green);text-shadow:0 0 6px var(--green-glow);}

/* ─── Main ───────────────────────────────────────────────────────────────── */
.main{flex:1;min-width:0;padding:0 54px 100px;max-width:860px;}

/* ─── Header ─────────────────────────────────────────────────────────────── */
.page-header {
  padding:52px 0 36px; margin-bottom:48px;
  border-bottom:1px solid var(--border); position:relative;
}

.page-header::after {
  content:''; position:absolute; bottom:-1px; left:0;
  width:180px; height:1px;
  background:var(--green); box-shadow:0 0 10px var(--green-glow);
}

.subject-tag {
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--green); margin-bottom:12px;
  opacity:.8;
}

h1.page-title {
  font-family:var(--font-mono); font-size:3rem; font-weight:500;
  color:var(--green); line-height:1.05; letter-spacing:.02em;
  text-shadow: 0 0 30px var(--green-glow);
}

.page-intro {
  margin-top:16px; font-size:.95rem; color:var(--white-dim);
  font-family:var(--font-mono); max-width:540px; line-height:1.65;
}

/* ─── Ticker ─────────────────────────────────────────────────────────────── */
.ticker-line {
  font-family:var(--font-mono); font-size:.78rem;
  display:flex; flex-wrap:wrap; gap:18px; margin-bottom:4px;
}
.ticker-line .t-name{color:var(--cyan);}
.ticker-line .t-up{color:var(--green);}
.ticker-line .t-down{color:var(--red);}
.ticker-line .t-neu{color:var(--amber);}

/* ─── Sections ───────────────────────────────────────────────────────────── */
.section{margin-bottom:58px;scroll-margin-top:28px;}

h2.section-title {
  font-family:var(--font-mono); font-size:1.3rem; font-weight:500;
  color:var(--green); margin-bottom:20px; padding-bottom:8px;
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:12px;
  text-shadow:0 0 10px var(--green-glow);
}
h2.section-title .num {
  font-size:.7rem; color:var(--terminal); font-weight:400;
  background:var(--green); padding:3px 9px; border-radius:2px;
}

h3.sub-title {
  font-family:var(--font-mono); font-size:1rem; font-weight:500;
  color:var(--cyan); margin:26px 0 12px; letter-spacing:.04em;
}

p{margin-bottom:.9em;}ul,ol{padding-left:1.4em;margin-bottom:.9em;}li{margin-bottom:.3em;}

/* ─── Boxes ──────────────────────────────────────────────────────────────── */
.box{padding:15px 18px 13px;margin:16px 0;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);}

.box-label {
  font-family:var(--font-mono); font-size:.63rem; font-weight:500;
  letter-spacing:.15em; text-transform:uppercase; display:block; margin-bottom:8px;
}

.box.def{background:var(--green-pale);border-color:var(--border-hi);}
.box.def .box-label{color:var(--green);}

.box.theorem{background:var(--cyan-pale);border-color:rgba(0,255,255,.25);}
.box.theorem .box-label{color:var(--cyan);}

.box.prop{background:var(--amber-pale);border-color:rgba(255,184,0,.25);}
.box.prop .box-label{color:var(--amber);}

.box.corollary{background:var(--green-pale);border-color:var(--border);}
.box.corollary .box-label{color:var(--green-2);}

.box.example{background:var(--surface-2);border-color:rgba(0,255,255,.15);}
.box.example .box-label{color:var(--cyan);}

.box.remark{background:var(--surface);border-color:var(--border);opacity:.9;}
.box.remark .box-label{color:var(--white-dim);}

/* ─── Proof ──────────────────────────────────────────────────────────────── */
.proof-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.72rem;color:var(--green);border:1px solid var(--border-hi);padding:4px 12px;border-radius:2px;cursor:pointer;background:transparent;margin-top:8px;transition:all .15s;user-select:none;}
.proof-toggle:hover{background:var(--green);color:var(--terminal);box-shadow:0 0 10px var(--green-glow);}
.proof-toggle .arrow{transition:transform .2s;}
.proof-toggle.open .arrow{transform:rotate(90deg);}
.proof-content{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.proof-content.open{max-height:900px;}
.proof-inner{margin-top:12px;padding:14px 16px;background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius);color:var(--white-dim);font-size:.88rem;font-family:var(--font-mono);font-style:italic;}
.qed{float:right;color:var(--green);font-style:normal;}

/* ─── Formula ────────────────────────────────────────────────────────────── */
.formula-block{text-align:center;padding:18px 16px;margin:16px 0;background:var(--deep);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:0 0 15px rgba(0,255,65,.04);}

/* ─── Table ──────────────────────────────────────────────────────────────── */
.math-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.88rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.math-table th{background:var(--surface-3);color:var(--green);padding:9px 14px;text-align:left;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--border-hi);}
.math-table td{padding:8px 14px;border-bottom:1px solid var(--border);vertical-align:top;font-family:var(--font-mono);font-size:.84rem;}
.math-table tr:hover td{background:var(--green-pale);}
.math-table td:first-child{color:var(--cyan);}
.math-table .up{color:var(--green);}
.math-table .down{color:var(--red);}
.math-table .neu{color:var(--amber);}

code{font-family:var(--font-mono);font-size:.82em;background:var(--surface-2);color:var(--green);padding:2px 5px;border-radius:2px;border:1px solid var(--border);}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0;}
.two-col .box{margin:0;}

/* ─── Mobile ─────────────────────────────────────────────────────────────── */
.mobile-header{display:none;position:sticky;top:0;z-index:50;background:var(--deep);border-bottom:1px solid var(--border);padding:12px 18px;align-items:center;justify-content:space-between;}
.mobile-menu-btn{background:none;border:none;color:var(--green);font-size:1.3rem;cursor:pointer;}
.mobile-title{font-family:var(--font-mono);font-size:1rem;color:var(--green);text-shadow:0 0 6px var(--green-glow);}
.mobile-drawer{display:none;position:fixed;inset:0;z-index:100;}
.mobile-drawer.open{display:flex;}
.drawer-overlay{position:absolute;inset:0;background:rgba(0,0,0,.8);}
.drawer-panel{position:relative;z-index:1;width:268px;background:var(--deep);height:100%;overflow-y:auto;padding:16px 0;border-right:1px solid var(--border);}

@media(max-width:960px){
  .sidebar{display:none;}.mobile-header{display:flex;}
  .main{padding:0 18px 70px;}h1.page-title{font-size:2.2rem;}
  .two-col{grid-template-columns:1fr;}
}
