@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Barlow:wght@400;500;600;700&display=swap');

:root {
  --ink: #111726;
  --muted: #5d6478;
  --faint: #8a91a3;
  --line: #e3e6ef;
  --line-2: #eef0f5;
  --input: #dce0ea;
  --paper: #fff;
  --page: #eef0f5;
  --navy: #111a3d;
  --navy-2: #1b264f;
  --blue: #1f3fc4;
  --blue-deep: #0a2c4e;
  --blue-hover: #16309e;
  --gold: #ffc72c;
  --gold-bg: #fff5d6;
  --gold-ink: #5b4a12;
  --sidebar: #111a3d;
  --nav-idle: #a8b2d4;
  --danger: #b03535;
  --ok: #1f7a4d;
  --soft: #f6f7fb;
  --chip: #eef1fd;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: var(--page);
  font-family: Barlow, Helvetica, Arial, sans-serif;
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--blue); text-decoration: none; }
a:hover { color: #0f2a94; }
a.card--click, a.table__row, a.seance, a.stat--link { color: inherit; }
a.card--click:hover, a.table__row:hover, a.seance:hover, a.stat--link:hover { color: inherit; }
.btn:focus-visible, .nav__item:focus-visible, .pill:focus-visible, .logout:focus-visible,
.menu-toggle:focus-visible, .filter-btn:focus-visible, .sidebar__switch:focus-visible {
  outline: 2px solid var(--blue); outline-offset: 2px;
}
.mood:focus-within, .theme-btn:focus-within { outline: 2px solid var(--blue); outline-offset: 2px; }
input, textarea, button, select { font-family: inherit; }
textarea { resize: none; }
::placeholder { color: #9aa1b4; }
button { appearance: none; }

.display {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.05;
}

@keyframes drift { from { transform: translate3d(0,0,0); } to { transform: translate3d(-400px,140px,0); } }
@keyframes twinkle { 0%,100% { opacity:.35; } 50% { opacity:1; } }
@keyframes glow { 0%,100% { opacity:.5; transform:scale(1); } 50% { opacity:.85; transform:scale(1.06); } }
@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes shoot {
  0% { opacity:0; transform:translate3d(0,0,0) rotate(22deg) scaleX(.2); }
  3% { opacity:.95; transform:translate3d(40px,16px,0) rotate(22deg) scaleX(1); }
  13% { opacity:0; transform:translate3d(620px,250px,0) rotate(22deg) scaleX(.7); }
  100% { opacity:0; transform:translate3d(620px,250px,0) rotate(22deg) scaleX(.2); }
}
@keyframes sparkle { 0%,100% { opacity:.25; transform:scale(.7); } 50% { opacity:1; transform:scale(1.25); } }
@keyframes veil { 0%,100% { opacity:.16; transform:translateX(0); } 50% { opacity:.34; transform:translateX(40px); } }

/* ——— Sky ——— */
.sky {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg,#04070f 0%,#061426 42%,#0a2c4e 74%,#14456e 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 56px 32px;
}
.sky__stars,
.sky__stars-2 {
  position: absolute;
  inset: -30%;
  pointer-events: none;
}
.sky__stars {
  background-image:
    radial-gradient(1.4px 1.4px at 30px 60px,#fff,transparent),
    radial-gradient(1.2px 1.2px at 180px 210px,#dce8ff,transparent),
    radial-gradient(1px 1px at 320px 90px,#fff,transparent),
    radial-gradient(1.6px 1.6px at 90px 330px,#fff,transparent),
    radial-gradient(1px 1px at 260px 380px,#c9dcff,transparent);
  background-size: 420px 420px;
  opacity: .9;
  animation: drift 220s linear infinite, twinkle 7s ease-in-out infinite;
}
.sky__stars-2 {
  background-image:
    radial-gradient(1px 1px at 120px 40px,#bcd3ff,transparent),
    radial-gradient(.9px .9px at 20px 200px,#fff,transparent),
    radial-gradient(1.1px 1.1px at 240px 150px,#fff,transparent),
    radial-gradient(.8px .8px at 300px 280px,#a9c6ff,transparent);
  background-size: 300px 300px;
  opacity: .55;
  animation: drift 380s linear infinite reverse, twinkle 11s ease-in-out infinite;
}
.sky__veil {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 40% at 22% 18%,rgba(88,132,220,.22),transparent 70%),
    radial-gradient(50% 34% at 78% 30%,rgba(60,180,200,.14),transparent 72%);
  animation: veil 26s ease-in-out infinite;
  pointer-events: none;
}
.sky__shoot { position:absolute; border-radius:2px; opacity:0; background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.95)); pointer-events:none; }
.sky__shoot--1 { top:16%; left:6%; width:150px; height:1.6px; animation:shoot 17s linear infinite both; }
.sky__shoot--2 { top:8%; left:44%; width:110px; height:1.4px; background:linear-gradient(90deg,rgba(255,255,255,0),rgba(210,230,255,.9)); animation:shoot 23s linear 9s infinite both; }
.sky__shoot--3 { top:34%; left:24%; width:190px; height:1.8px; background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,240,200,.9)); animation:shoot 41s linear 26s infinite both; }
.sky__spark { position:absolute; border-radius:50%; background:#fff; pointer-events:none; }
.sky__spark--1 { top:18%; left:18%; width:3px; height:3px; box-shadow:0 0 10px 2px rgba(190,220,255,.8); animation:sparkle 5.5s ease-in-out infinite; }
.sky__spark--2 { top:28%; left:72%; width:2.5px; height:2.5px; box-shadow:0 0 9px 2px rgba(255,235,190,.7); animation:sparkle 8s ease-in-out 1.4s infinite; }
.sky__spark--3 { top:56%; left:12%; width:2px; height:2px; box-shadow:0 0 8px 2px rgba(190,220,255,.65); animation:sparkle 6.8s ease-in-out .7s infinite; }
.sky__spark--4 { top:12%; left:58%; width:2px; height:2px; box-shadow:0 0 8px 2px rgba(255,255,255,.6); animation:sparkle 9.5s ease-in-out 2.2s infinite; }
.sky__spark--5 { top:46%; left:86%; width:3px; height:3px; box-shadow:0 0 12px 3px rgba(160,200,255,.7); animation:sparkle 7.2s ease-in-out 3.1s infinite; }
.sky__spark--6 { top:64%; left:60%; width:2px; height:2px; box-shadow:0 0 7px 2px rgba(200,225,255,.6); animation:sparkle 10.5s ease-in-out 4.5s infinite; }
.sky__glow {
  position:absolute; left:50%; bottom:-42%; width:150%;
  transform:translateX(-50%); aspect-ratio:2/1; border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(52,132,196,.55) 0%,rgba(20,69,110,.28) 45%,transparent 72%);
  filter:blur(30px); animation:glow 16s ease-in-out infinite; pointer-events:none;
}
.sky__inner { position: relative; width: 100%; z-index: 2; }

/* ——— Splash / Auth ——— */
.splash {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 44px;
  text-align: center;
  animation: rise .9s ease both;
}
.splash__brand {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: #8fb4dd;
}
.splash__title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 78px;
  line-height: .95;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 0 60px rgba(120,180,240,.35);
  max-width: 15ch;
  margin: 0;
}
.splash__actions { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }

.auth {
  width: 100%;
  max-width: 460px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  animation: rise .6s ease both;
  margin: 0 auto;
}
.auth__card {
  background: rgba(255,255,255,.97);
  border-radius: 20px;
  padding: 38px 34px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  box-shadow: 0 30px 80px rgba(2,10,24,.55);
}
.auth__title { font-size: 34px; margin: 0; }
.auth__intro { font-size: 15px; line-height: 1.55; color: var(--muted); margin-top: 8px; }
.auth__fields { display:flex; flex-direction:column; gap:14px; }
.auth__legal { font-size:12.5px; line-height:1.5; color:var(--faint); }
.auth__swap {
  border-top: 1px solid var(--line-2);
  padding-top: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 13.5px;
  color: var(--muted);
}

/* ——— Buttons ——— */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  cursor: pointer;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}
.btn--pill { padding:16px 30px; border-radius:40px; font-size:15.5px; }
.btn--white { background:#fff; color:#08203a; font-weight:700; letter-spacing:.01em; }
.btn--white:hover { background: var(--gold); color:#08203a; }
.btn--ghost { padding:16px 30px; border-radius:40px; background:transparent; color:#fff; border:1px solid rgba(255,255,255,.45); font-size:15.5px; }
.btn--ghost:hover { background:rgba(255,255,255,.12); color:#fff; }
.btn--link {
  padding:9px 16px; border:0; background:transparent; color:#7fa3cc;
  font-size:13px; font-weight:600; letter-spacing:.04em; cursor:pointer;
}
.btn--link:hover { color:#fff; }
.btn--back {
  align-self:flex-start; padding:8px 14px; border:1px solid rgba(255,255,255,.28);
  border-radius:30px; background:transparent; color:#cfe0f5; font-size:13px; font-weight:600;
}
.btn--back:hover { background:rgba(255,255,255,.08); color:#fff; }
.btn--primary { padding:15px; border-radius:10px; background:var(--blue-deep); color:#fff; font-size:15px; font-weight:700; }
.btn--primary:hover { background:#08203a; color:#fff; }
.btn--blue { padding:12px 20px; border-radius:9px; background:var(--blue); color:#fff; font-size:14.5px; font-weight:600; }
.btn--blue:hover { background:var(--blue-hover); color:#fff; }
.btn--gold { padding:13px 20px; border-radius:9px; background:var(--gold); color:var(--navy); font-weight:700; font-size:14.5px; }
.btn--gold:hover { filter:brightness(.96); color:var(--navy); }
.btn--outline { padding:13px 20px; border-radius:9px; background:#fff; border:1px solid var(--input); font-weight:600; font-size:14.5px; color:var(--ink); }
.btn--outline:hover { border-color:#b9bfd0; color:var(--ink); }
.btn--soft { padding:9px 15px; border-radius:8px; background:var(--chip); color:var(--blue); font-weight:600; font-size:13.5px; }
.btn--quiet { padding:9px 15px; border-radius:8px; background:transparent; color:var(--faint); font-weight:600; font-size:13.5px; }
.btn--danger-outline { padding:11px 16px; border-radius:9px; background:#fff; border:1px solid #f0c9c9; font-weight:600; font-size:13.5px; color:var(--danger); }
.btn--swap { padding:0; border:0; background:transparent; color:var(--blue); font-size:13.5px; font-weight:700; cursor:pointer; }
.btn--block { width:100%; }
.btn--sm { padding:8px 14px; border-radius:8px; font-size:13px; }

.field { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:#4a5265; }
.field input, .field textarea, .field select, .input, .textarea {
  padding:12px 14px; border:1px solid var(--input); border-radius:9px;
  font-size:15px; color:var(--ink); background:#fff; width:100%;
}
.field select { appearance:auto; }
.textarea { line-height:1.55; padding:14px; border-radius:10px; }
.textarea--mono { font-family:ui-monospace,Consolas,monospace; font-size:13px; font-weight:500; }
.field input:focus, .field select:focus, .textarea:focus, .input:focus { outline:2px solid rgba(31,63,196,.25); border-color:var(--blue); }
.hint { font-size:12.5px; color:var(--faint); font-weight:500; }

/* ——— App shell ——— */
.app { min-height:100vh; display:grid; grid-template-columns:252px 1fr; }
.sidebar {
  background: var(--sidebar);
  padding: 26px 18px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 20;
}
.sidebar__brand { display:flex; flex-direction:column; gap:2px; padding:0 8px; }
.sidebar__name { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:19px; letter-spacing:.14em; text-transform:uppercase; color:#fff; }
.sidebar__role { font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.sidebar__switch {
  padding:9px 11px; border:1px dashed #3d4a7a; border-radius:9px;
  background:transparent; color:#8ea0dd; font-size:12px; font-weight:600;
  cursor:pointer; text-align:left; width:100%;
}
.sidebar__switch:hover { background:rgba(255,255,255,.04); color:#c5d0f5; }
.nav { display:flex; flex-direction:column; gap:4px; }
.nav__item {
  display:flex; align-items:center; gap:11px; padding:11px 12px; border:0; border-radius:9px;
  cursor:pointer; text-align:left; font-size:14.5px; text-decoration:none; width:100%;
}
.nav__item:hover { color:#fff; }
.nav__dot { width:7px; height:7px; border-radius:2px; flex:none; }
.nav__label { flex:1; }
.nav__badge { font-size:11px; font-weight:700; color:var(--navy); border-radius:20px; padding:1px 7px; }
.sidebar__foot { margin-top:auto; display:flex; flex-direction:column; gap:12px; }
.rdv-box { background:var(--navy-2); border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:8px; }
.rdv-box__k { font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#8ea0dd; font-weight:600; }
.rdv-box__t { font-size:14.5px; font-weight:600; color:#fff; line-height:1.35; }
.rdv-box__t span { color:var(--gold); }
.rdv-box__s { font-size:11.5px; line-height:1.4; color:#6e7fb5; }
.logout {
  display:flex; align-items:center; gap:10px; padding:8px; background:transparent;
  border:0; cursor:pointer; color:#8ea0dd; font-size:13px; width:100%; text-align:left;
}
.avatar {
  width:28px; height:28px; border-radius:50%; background:var(--gold); color:var(--navy);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; flex:none;
}

.main { padding:34px 42px 60px; max-width:1120px; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.page-head__kicker { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#7f879b; font-weight:600; }
.page-head__title { font-size:40px; margin:4px 0 0; }
.menu-toggle {
  display:none; width:42px; height:42px; border-radius:10px; border:1px solid var(--line);
  background:#fff; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.menu-toggle span { display:block; width:18px; height:2px; background:var(--navy); border-radius:2px; }
.sidebar-backdrop { display:none; }

.visite {
  margin-bottom:22px; padding:13px 18px; border-radius:10px; background:var(--blue-deep);
  color:#cfe0f5; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.visite__tag { font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.visite p { flex:1; min-width:220px; font-size:14px; margin:0; }
.visite .btn { padding:8px 14px; border:1px solid #3c5f86; border-radius:8px; background:transparent; color:#fff; font-size:13px; font-weight:600; }
.visite .btn:hover { background:rgba(255,255,255,.08); color:#fff; }

.toast { margin-bottom:24px; padding:13px 16px; border-radius:10px; background:var(--gold-bg); border-left:4px solid var(--gold); font-size:14.5px; font-weight:500; }

/* ——— Surfaces ——— */
.stack { display:flex; flex-direction:column; gap:22px; }
.stack-20 { display:flex; flex-direction:column; gap:20px; }
.stack-18 { display:flex; flex-direction:column; gap:18px; }
.stack-16 { display:flex; flex-direction:column; gap:16px; }
.stack-14 { display:flex; flex-direction:column; gap:14px; }
.card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; }
.card--pad26 { padding:26px; }
.card--pad24 { padding:24px; }
.card--pad22 { padding:22px; }
.card--pad20 { padding:20px; }
.card--click { text-align:left; cursor:pointer; display:flex; flex-direction:column; gap:10px; padding:22px; color:inherit; width:100%; }
.card--click:hover { border-color:var(--blue); }
.card__kicker { font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); font-weight:700; }
.card__title { font-size:24px; margin:0; }
.card__desc { font-size:14.5px; line-height:1.5; color:var(--muted); }
.card__cta { margin-top:6px; font-size:13.5px; font-weight:600; color:var(--blue); }
.card-h { font-size:21px; margin:0 0 16px; }
.note { background:var(--gold-bg); border-radius:14px; padding:20px; font-size:14px; line-height:1.55; color:var(--gold-ink); }
.note--sm { padding:18px; font-size:13.5px; }
.panel-dark { background:var(--navy); border-radius:14px; padding:22px; color:#fff; display:flex; flex-direction:column; gap:10px; }
.panel-blue { background:var(--blue); border-radius:16px; padding:28px 30px; color:#fff; display:flex; justify-content:space-between; align-items:center; gap:30px; }
.panel-blue h2 { font-size:28px; margin:0; }
.panel-blue p { font-size:15.5px; line-height:1.55; color:#d7deff; margin:8px 0 0; max-width:560px; }

.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.grid-2 { display:grid; grid-template-columns:1.3fr 1fr; gap:18px; }
.grid-2b { display:grid; grid-template-columns:1fr 300px; gap:18px; align-items:start; }
.grid-2c { display:grid; grid-template-columns:300px 1fr; gap:18px; align-items:start; }
.grid-2d { display:grid; grid-template-columns:1fr 290px; gap:18px; align-items:start; }
.grid-2e { display:grid; grid-template-columns:1fr 320px; gap:18px; align-items:start; }
.grid-2f { display:grid; grid-template-columns:1fr 330px; gap:18px; align-items:start; }
.grid-2g { display:grid; grid-template-columns:1.25fr 1fr; gap:18px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.grid-id { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.facts {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px 18px;
  padding-top:16px;
  border-top:1px solid var(--line-2);
}
.facts__k {
  font-size:11.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--faint);
  font-weight:700;
  margin-bottom:3px;
}
.facts__v { font-size:14.5px; font-weight:600; color:var(--ink); word-break:break-word; }

.entry { display:flex; gap:14px; align-items:flex-start; padding:13px 0; border-top:1px solid var(--line-2); }
.dot { width:9px; height:9px; border-radius:50%; margin-top:6px; flex:none; }
.meta { font-size:12.5px; color:var(--faint); font-weight:600; }
.body { font-size:14.5px; line-height:1.5; margin-top:3px; }

.stat { background:#fff; border:1px solid var(--line); border-radius:14px; padding:20px; }
.stat__n { font-family:'Barlow Condensed',sans-serif; font-size:38px; font-weight:700; line-height:1; color:var(--blue); }
.stat__l { font-size:14px; color:var(--muted); margin-top:5px; }

.bar { height:10px; border-radius:20px; background:var(--line-2); overflow:hidden; flex:1; }
.bar__fill { height:100%; border-radius:20px; }
.bar--sm { height:9px; }
.bar--xs { height:8px; }

.chip { font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border-radius:6px; padding:3px 9px; }
.row-line { border-top:1px solid var(--line-2); padding-top:13px; }

.moods, .themes, .filters { display:flex; gap:9px; flex-wrap:wrap; }
.mood {
  display:flex; align-items:center; gap:8px; padding:9px 14px; border-radius:30px;
  background:#fff; cursor:pointer; font-size:13.5px; font-weight:600; color:var(--ink);
}
.mood:has(input:checked) { border-color:#1f3fc4 !important; background:#f2f5ff !important; }
.theme-btn { padding:7px 13px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; }
.theme-btn:has(input:checked) { border-color:#111a3d !important; background:#111a3d !important; color:#fff !important; }
.empty { padding:22px 4px; color:var(--muted); font-size:15px; line-height:1.55; }
.card.empty { padding:28px; }
.preview-bar {
  background:#fff5d6; color:#5b4a12; border:1px solid #ffc72c; border-radius:10px;
  padding:10px 14px; font-size:13.5px; font-weight:600; margin-bottom:16px;
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.preview-bar__switch label { display:flex; align-items:center; gap:8px; font-size:12.5px; }
.preview-bar__switch select {
  border:1px solid #e0a800; border-radius:8px; padding:6px 8px; background:#fff;
  font:inherit; font-weight:600; color:#5b4a12;
}
.cat-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:8px 10px; border-radius:8px; color:inherit; text-decoration:none; }
.cat-row.is-on { background:#eef1fd; color:var(--blue); }
.cat-row:hover { background:#f4f6fb; color:inherit; }
.msg-list { display:flex; flex-direction:column; gap:18px; max-height:52vh; overflow:auto; padding-right:4px; }
.filter-btn { padding:6px 12px; border-radius:20px; font-size:12.5px; font-weight:600; cursor:pointer; background:#fff; border:1px solid var(--input); color:var(--ink); display:inline-flex; align-items:center; gap:8px; }
.filter-btn span { font-size:11px; font-weight:700; color:var(--faint); }
.filter-btn.is-on { background:var(--blue); color:#fff; border-color:var(--blue); }
.filter-btn.is-on span { color:var(--gold); }
.filter-btn:hover { color:var(--ink); }
.filter-btn.is-on:hover { color:#fff; }

.j-item { background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px 20px; display:flex; gap:16px; align-items:flex-start; }
.j-date { width:56px; flex:none; text-align:center; border-right:1px solid var(--line-2); padding-right:12px; }
.j-date__d { font-family:'Barlow Condensed',sans-serif; font-size:26px; font-weight:700; line-height:1; }
.j-date__m { font-size:11.5px; text-transform:uppercase; color:var(--faint); font-weight:600; }
.share-bar {
  position:sticky; bottom:16px; background:var(--navy); border-radius:12px;
  padding:15px 18px; display:flex; align-items:center; gap:16px; color:#fff;
}

.heat { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.heat span { aspect-ratio:1; border-radius:5px; display:block; }

.obj { background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; display:flex; flex-direction:column; gap:14px; }
.obj__top { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.obj__title { font-size:25px; margin:0; }
.obj__state { font-size:26px; color:var(--blue); margin:0; }
.obj__kind { font-size:12px; color:var(--faint); font-weight:600; text-transform:uppercase; letter-spacing:.1em; }
.obj__actions { display:flex; gap:9px; flex-wrap:wrap; border-top:1px solid var(--line-2); padding-top:14px; }
.composer { background:#fff; border:1px dashed #c4cadb; border-radius:14px; padding:22px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.composer .input { flex:1; min-width:260px; }

.next-card { background:var(--blue); border-radius:14px; padding:22px; color:#fff; display:flex; flex-direction:column; gap:12px; }
.next-card__k { font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.next-card__t { font-size:24px; margin:0; white-space:pre-line; }
.seance {
  text-align:left; border-radius:10px; padding:13px; cursor:pointer; display:flex;
  flex-direction:column; gap:3px; width:100%; background:#fff;
}
.tr-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; }
.tr-title { font-size:30px; margin:3px 0 0; }
.resume { background:var(--soft); border-radius:10px; padding:18px 20px; display:flex; flex-direction:column; gap:12px; }
.action-item { display:flex; gap:11px; align-items:flex-start; background:var(--gold-bg); border-radius:10px; padding:12px 15px; }
.line { display:flex; gap:16px; }
.line__who { width:96px; flex:none; }

.forum-composer { display:flex; flex-direction:column; gap:12px; }
.avatar-lg { width:40px; height:40px; flex:none; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; }
.post { background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px; display:flex; gap:16px; }
.post__title {
  display:block; text-align:left; border:0; background:transparent; padding:0; cursor:pointer;
  font-family:'Barlow Condensed',sans-serif; font-size:23px; font-weight:700; text-transform:uppercase;
  line-height:1.15; margin-top:4px; color:var(--ink);
}
.post__title:hover { color:var(--blue); }
.pill { padding:8px 14px; border-radius:20px; font-size:13px; font-weight:600; cursor:pointer; background:#fff; border:1px solid var(--input); color:var(--ink); }
.cat-row { font-size:14px; }

.msg { display:flex; flex-direction:column; gap:5px; max-width:78%; }
.bubble { padding:14px 16px; border-radius:12px; font-size:15px; line-height:1.6; }

.thread { max-width:820px; display:flex; flex-direction:column; gap:16px; }
.toggle { width:42px; height:22px; border-radius:20px; position:relative; flex:none; border:0; cursor:pointer; padding:0; }
.toggle i { position:absolute; top:2px; width:18px; height:18px; border-radius:50%; background:#fff; transition:left .18s; display:block; }

.table { background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.table__head, .table__row {
  display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr 1fr; gap:14px; align-items:center;
}
.table__head { padding:14px 22px; background:var(--soft); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); font-weight:700; }
.table__row { width:100%; padding:18px 22px; border:0; border-top:1px solid var(--line-2); background:#fff; cursor:pointer; text-align:left; text-decoration:none; color:inherit; }
.table__row:hover { background:#f8f9fd; }
.table__row--static { cursor:default; }
.table--accounts .table__head,
.table--accounts .table__row,
.table--mails .table__head,
.table--mails .table__row { grid-template-columns:1.5fr 1.4fr 1fr 0.9fr 1.6fr; }
.account-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.account-reject { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.input--sm { width:150px; padding:8px 10px; font-size:13px; border:1px solid var(--input); border-radius:8px; }
.stat--link { display:block; color:inherit; }
.stat--link:hover { border-color:var(--blue); color:inherit; }

.pcm-floor { display:flex; align-items:center; gap:14px; }
.pcm-floor__l { width:130px; font-size:14px; font-weight:600; }
.pcm-floor__w { width:42px; text-align:right; font-size:13.5px; color:var(--muted); font-weight:600; }
.dash { padding:16px; border:1px dashed #c4cadb; border-radius:11px; background:#f8f9fd; cursor:pointer; text-align:left; color:var(--ink); width:100%; }
.error { padding:12px 14px; border-radius:10px; background:#fdeeee; color:#8a2424; font-size:14px; font-weight:500; }
.check { display:flex; align-items:center; gap:9px; margin-top:10px; font-weight:600; color:var(--ink); cursor:pointer; }
.check input { width:16px; height:16px; accent-color:var(--blue); }

.sky:has(.auth--wide) { overflow-x: hidden; overflow-y: auto; }
.auth--wide { max-width: 640px; }
.install-card .auth__fields { gap:12px; }
.install-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.install-kicker {
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--faint); font-weight:700; margin:8px 0 2px;
}

/* ——— Mobile ——— */
@media (max-width: 980px) {
  .app { grid-template-columns: 1fr; }
  .sidebar {
    position: fixed; left: 0; top: 0; transform: translateX(-105%);
    width: min(300px, 88vw); transition: transform .22s ease; box-shadow: none;
  }
  .sidebar.is-open { transform: translateX(0); box-shadow: 20px 0 40px rgba(2,10,24,.35); }
  .sidebar-backdrop.is-on {
    display:block; position:fixed; inset:0; background:rgba(6,12,28,.45); z-index:15;
  }
  .menu-toggle { display:flex; }
  .main { padding:20px 18px 48px; }
  .page-head { flex-wrap:wrap; align-items:center; }
  .page-head__title { font-size:32px; }
  .splash__title { font-size:48px; }
  .sky { padding:36px 20px; }
  .grid-3, .grid-4, .grid-2, .grid-2b, .grid-2c, .grid-2d, .grid-2e, .grid-2f, .grid-2g, .grid-id, .facts, .install-grid {
    grid-template-columns: 1fr;
  }
  .panel-blue { flex-direction:column; align-items:flex-start; padding:22px; }
  .table { overflow-x: auto; }
  .table__head, .table__row { min-width: 720px; }
  .obj__top { flex-direction:column; }
  .auth__card { padding:28px 22px; }
  .share-bar { flex-wrap:wrap; }
  .line { flex-direction:column; gap:6px; }
  .line__who { width:auto; }
  .msg { max-width:92%; }
  .composer .input { min-width: 0; width:100%; }
}

@media (max-width: 640px) {
  .splash__title { font-size:40px; }
  .splash { gap:28px; }
  .btn--pill, .btn--ghost { width:100%; }
  .page-head__title { font-size:28px; }
  .tr-title { font-size:24px; }
  .post { flex-direction:column; }
  .j-item { flex-direction:column; }
  .j-date { width:auto; border:0; padding:0; display:flex; gap:8px; align-items:baseline; text-align:left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media print {
  .sidebar, .sidebar-backdrop, .page-head, .menu-toggle, .preview-bar, .btn, [data-print],
  .sidebar__switch, .toast { display: none !important; }
  .app { display: block; }
  .main { max-width: none; padding: 0; }
  body { background: #fff; }
}
