/* Shared styling for gated pages (share + portal), aligned with the brand system. */
:root {
  --navy: #173A55;
  --navy-deep: #0f2636;
  --ink: #0c1a26;
  --paper: #EFEEE9;
  --paper-warm: #E7E5DD;
  --paper-rule: #D6D4CA;
  --slate: #5a6c7a;
  --slate-light: #8a97a2;
  --accent: #317EBD;
  --green: #6db896;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--navy-deep);
  color: var(--paper);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
a { color: var(--paper); }
.wrap { width: 100%; max-width: 960px; margin: 0 auto; padding: 48px 24px; flex: 1; }
.brand { display: flex; align-items: center; gap: 14px; margin-bottom: 56px; }
.brand img { height: 34px; width: auto; }
.brand .label {
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--slate-light);
}
.eyebrow {
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--accent); margin-bottom: 18px;
}
h1 {
  font-family: "Times New Roman", Georgia, serif; font-weight: 400;
  font-size: clamp(34px, 5vw, 56px); line-height: 1.05; margin: 0 0 18px;
}
h1 em { color: #7fa8c4; font-style: italic; }
.lede { color: var(--slate-light); max-width: 52ch; line-height: 1.6; font-size: 17px; }

/* Gate card */
.gate { max-width: 420px; margin-top: 40px; }
.gate label {
  display: block; font-family: "JetBrains Mono", monospace; font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--slate-light); margin-bottom: 10px;
}
.gate input[type="password"], .gate input[type="email"], .gate input[type="text"] {
  width: 100%; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.18);
  color: var(--paper); padding: 14px 16px; font-size: 16px; font-family: inherit; outline: none;
}
.gate input:focus { border-color: var(--accent); }
.btn {
  margin-top: 18px; display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  background: var(--paper); color: var(--ink); border: none; padding: 14px 24px;
  font-family: "JetBrains Mono", monospace; font-size: 12px; letter-spacing: 0.12em;
  text-transform: uppercase; transition: transform 0.2s;
}
.btn:hover { transform: translateY(-1px); }
.btn:disabled { opacity: 0.5; cursor: default; }
.btn .arrow { transition: transform 0.2s; }
.btn:hover .arrow { transform: translateX(4px); }
.msg { margin-top: 16px; font-size: 14px; min-height: 20px; }
.msg.err { color: #d98a6a; }
.msg.ok { color: var(--green); }

/* Material list */
.materials { margin-top: 8px; display: grid; gap: 1px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.12); }
.material { background: var(--navy-deep); padding: 28px; }
.material .cat {
  font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--accent); margin-bottom: 10px;
}
.material h3 { font-family: "Times New Roman", Georgia, serif; font-weight: 400; font-size: 26px; margin: 0 0 8px; }
.material p { color: var(--slate-light); line-height: 1.55; margin: 0 0 16px; font-size: 15px; }
.files { display: flex; flex-wrap: wrap; gap: 10px; }
.file-link {
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
  border: 1px solid rgba(255,255,255,0.22); padding: 9px 14px; font-size: 13px;
  font-family: "JetBrains Mono", monospace; letter-spacing: 0.04em; transition: background 0.2s;
}
.file-link:hover { background: rgba(255,255,255,0.06); }
.empty { color: var(--slate-light); margin-top: 32px; }
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.signout { background: none; border: 1px solid rgba(255,255,255,0.2); color: var(--slate-light);
  cursor: pointer; padding: 8px 14px; font-family: "JetBrains Mono", monospace; font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase; }
.hidden { display: none !important; }
footer.site { padding: 28px 24px; border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 12px; color: var(--slate-light); text-align: center; }

/* Section groups (master dashboard) */
.section-block { margin-bottom: 42px; }
.section-head { font-family: "JetBrains Mono", monospace; font-size: 12px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--accent); margin: 0 0 14px; }

/* Stakeholder notice + internal login divider */
.notice { color: var(--slate-light); line-height: 1.7; max-width: 52ch; font-size: 16px; }
.internal { margin-top: 48px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,0.12); }
.internal .eyebrow { margin-bottom: 14px; }

/* NDA box */
.nda { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.16);
  padding: 24px; margin-top: 28px; max-width: 640px; }
.nda h4 { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--slate-light); margin: 0 0 14px; }
.nda .nda-text { color: var(--slate-light); line-height: 1.6; font-size: 14px; white-space: pre-wrap; max-height: 320px; overflow-y: auto; }
.nda .nda-actions { margin-top: 20px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.nda .accept-note { font-size: 12px; color: var(--slate-light); }

/* Deck card (gated presentation) */
.deck-card { display:flex; align-items:center; text-decoration:none; color:var(--paper); background:var(--navy-deep);
  border:1px solid rgba(255,255,255,0.12); overflow:hidden; margin-top:8px; transition:border-color .2s, transform .15s; }
.deck-card:hover { border-color:#d9a441; transform:translateY(-2px); }
.deck-body { flex:1; padding:22px 24px; min-width:0; }
.deck-thumb { position:relative; width:240px; flex-shrink:0; aspect-ratio:16/9; margin:16px; background-color:#0d1c2c;
  background-position:center; background-size:cover; background-repeat:no-repeat; display:flex; align-items:center; justify-content:center; }
.deck-thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,15,25,.4), transparent 55%); }
.deck-play { position:relative; z-index:1; width:44px; height:44px; border-radius:50%; background:rgba(217,164,65,.92);
  color:#1a1200; display:flex; align-items:center; justify-content:center; font-size:14px; padding-left:2px; }
.deck-eyebrow { font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:#d9a441; margin-bottom:8px; }
.deck-card h3 { font-family:"Inter",sans-serif; font-weight:600; font-size:21px; letter-spacing:-.01em; margin:0 0 6px; color:var(--paper); }
.deck-card p { color:var(--slate-light); font-size:14px; line-height:1.55; margin:0 0 14px; }
.deck-cta { font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--paper); }
.deck-card:hover .deck-cta { color:#d9a441; }
@media (max-width:560px){ .deck-card{ flex-direction:column; align-items:stretch; } .deck-thumb{ width:auto; margin:0; order:-1; } }

/* Admin overview + detail (internal) */
.sh-count { font-family:"JetBrains Mono",monospace; font-size:11px; color:var(--slate-light); margin-left:8px; }
.space-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.space-card { background:var(--navy); border:1px solid rgba(255,255,255,0.12); padding:20px 22px; cursor:pointer; transition:border-color .2s, transform .15s; }
.space-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.space-card .sc-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.space-card .sc-slug { font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate-light); }
.space-card h3 { font-family:"Inter",sans-serif; font-weight:600; font-size:19px; color:var(--paper); margin:0 0 6px; letter-spacing:-.01em; }
.space-card .sc-stats { display:flex; gap:16px; margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.1); font-size:12px; color:var(--slate-light); }
.space-card .sc-stats b { color:var(--paper); font-weight:600; }
.dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; display:inline-block; }
.dot.active { background:var(--green); }
.dot.inactive { background:#5a6c7a; }
.back-link { background:none; border:none; color:var(--accent); cursor:pointer; font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:0; }
.pill { display:inline-block; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:5px 10px; border:1px solid rgba(255,255,255,0.14); color:var(--slate-light); margin-right:8px; }
.pill.on { color:var(--green); border-color:rgba(109,184,150,.4); }
.pill.gold { color:#d9a441; border-color:rgba(217,164,65,.4); }
.atable { width:100%; border-collapse:collapse; font-size:14px; }
.atable th { text-align:left; font-weight:500; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--slate-light); padding:0 14px 10px; border-bottom:1px solid rgba(255,255,255,0.12); }
.atable td { padding:13px 14px; border-bottom:1px solid rgba(255,255,255,0.08); color:var(--paper); font-weight:300; }
.atable td .em { font-family:"JetBrains Mono",monospace; font-size:12px; color:var(--slate-light); }
.mgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; }
.mcard { background:var(--navy); border:1px solid rgba(255,255,255,0.12); padding:16px 18px; }
.mcard .cat { font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#d9a441; margin-bottom:8px; }
.mcard h4 { font-family:"Inter",sans-serif; font-weight:500; font-size:15px; color:var(--paper); margin:0 0 10px; }
.badge { font-family:"JetBrains Mono",monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; }
.badge.pub { color:var(--green); border:1px solid rgba(109,184,150,.4); }
.badge.draft { color:var(--slate-light); border:1px solid rgba(255,255,255,0.14); }

/* ===== Internal admin console (Portalöversikt) ===== */
.admin-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.admin-brand { display:flex; align-items:center; gap:12px; }
.admin-brand img { height:30px; width:auto; }
.admin-brand .tag { font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--slate-light); }
.who { font-size:12px; color:var(--slate-light); }
.who b { color:var(--paper); font-weight:500; }
.who button { background:none; border:1px solid rgba(255,255,255,.2); color:var(--slate-light); cursor:pointer; padding:7px 13px; margin-left:14px; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; transition:color .2s, border-color .2s; }
.who button:hover { color:var(--paper); border-color:rgba(255,255,255,.4); }

.admin-hero { font-family:"Times New Roman",Georgia,serif; font-weight:400; font-size:clamp(34px,5vw,44px); line-height:1.05; margin:26px 0 4px; }
.admin-hero em { font-style:italic; color:var(--accent); }
.admin-sub { color:var(--slate-light); font-size:15px; margin-bottom:26px; }

.toolbar { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.abtn { display:inline-flex; align-items:center; gap:8px; background:transparent; border:1px solid var(--accent); color:var(--paper); cursor:pointer; padding:11px 16px; font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; transition:background .2s; }
.abtn:hover { background:rgba(49,126,189,.15); }
.abtn .plus { color:var(--accent); font-size:14px; }
.abtn.sm { padding:9px 13px; font-size:10px; }
.admin-note { min-height:16px; margin-bottom:22px; font-size:12px; color:var(--slate-light); font-family:"JetBrains Mono",monospace; letter-spacing:.03em; }

/* serif section headers in overview */
.sec-head { display:flex; align-items:baseline; gap:12px; margin:0 0 16px; }
.sec-head .sec-num { font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.14em; color:var(--accent); }
.sec-head h2 { font-family:"Times New Roman",Georgia,serif; font-weight:400; font-size:24px; margin:0; }
.sec-head .sec-count { font-size:12px; color:var(--slate-light); margin-left:auto; }

/* richer space card */
.space-card .sc-meta { font-size:13px; color:var(--slate-light); margin-top:2px; }
.space-card.add { border-style:dashed; display:flex; align-items:center; justify-content:center; min-height:120px; color:var(--slate-light); text-align:center; }
.space-card.add:hover { color:var(--accent); border-color:var(--accent); transform:none; }
.space-card.add span { font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }

/* detail heading + sub-labels */
.dhead { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.dsub { font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.14em; color:var(--accent); text-transform:uppercase; margin:34px 0 14px; }

/* clickable material card */
a.mcard { display:block; text-decoration:none; color:inherit; transition:border-color .2s, transform .15s; }
a.mcard:hover { border-color:var(--accent); transform:translateY(-2px); }
.mcard .mopen { display:block; margin-top:12px; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
.mcard .badge { display:inline-block; }
