/* ===== Startskott, förslag E: "Produktsida" ===== */
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 400 700; font-stretch: 75% 100%; font-display: swap;
  src: url("/fonts/instrument-sans-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 400 700; font-stretch: 75% 100%; font-display: swap;
  src: url("/fonts/instrument-sans-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --white: #FFFFFF;
  --grey: #F5F5F7;
  --grey-2: #EBEBEF;
  --track: #E3E3E8;
  --paper: #F7F6F2;
  --paper-2: #EFEDE7;
  --surface: #FFFFFF;
  --field: #FFFFFF;
  --ink: #1B2230;
  --ink-hover: #2B3446;
  --ink-2: #5B6170;
  --ink-3: #8C909A;
  --on-ink-2: #AEB3BE;
  --line: #E4E1DA;
  --line-2: #D6D6DC;
  --sun: #FF7A3D;
  --sun-2: #FF8A50;
  --sun-ink: #B5491A;
  --sky-1: #CFE3FA;
  --sky-2: #E3DDF6;
  --sky-3: #F9D8E1;
  --sky-4: #FFDDC4;
  --free-ink: #146C43;
  --danger: #B42318;
  --ok: #1C7A45;
  --warn: #9A5B00;
  --font: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --max: 1180px;
  --text: 980px;
  --gutter: clamp(20px, 5vw, 48px);
  --nav-h: 52px;
  --ease: cubic-bezier(.25, .1, .25, 1);
  --ease-out: cubic-bezier(.32, .72, 0, 1);
  --sun-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='7.5' fill='%23FF7A3D'/%3E%3Cpath d='M16 2.2v3.3M16 26.5v3.3M2.2 16h3.3M26.5 16h3.3M6.2 6.2l2.4 2.4M23.4 23.4l2.4 2.4M6.2 25.8l2.4-2.4M23.4 8.6l2.4-2.4' stroke='%23FF7A3D' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
  color-scheme: light;
  box-sizing: border-box;
}
*, *::before, *::after { box-sizing: inherit; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 8px); -webkit-text-size-adjust: 100%; background: #fff; }
body {
  margin: 0; background: #fff; color: var(--ink);
  font-family: var(--font); font-size: 17px; line-height: 1.47; letter-spacing: -0.012em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}
img { max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 6px; }
.ink :focus-visible { outline-color: #fff; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
.chev { display: inline-block; flex: none; width: 7px; height: 12px; margin-left: 2px; transition: transform 200ms var(--ease); }
a:hover > .chev, button:hover > .chev { transform: translateX(2px); }

/* ---------- Knappar och länkar ---------- */
.btn-pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 24px; border-radius: 999px; border: 0;
  background: var(--ink); color: #fff; font-size: 17px; font-weight: 500; text-decoration: none; cursor: pointer;
  transition: background 200ms var(--ease), color 200ms var(--ease), box-shadow 200ms var(--ease), transform 150ms var(--ease);
}
.btn-pill:hover { background: var(--ink-hover); }
.btn-pill:active { transform: scale(0.97); }
.btn-pill.light { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.btn-pill.light:hover { background: var(--ink); color: #fff; }
.btn-pill.white { background: #fff; color: var(--ink); }
.btn-pill.white:hover { background: #E9E9EE; }
.btn-pill.ghost { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.6); }
.btn-pill.ghost:hover { background: rgba(255, 255, 255, 0.12); box-shadow: inset 0 0 0 1.5px #fff; }
.link-more {
  display: inline-flex; align-items: center; gap: 4px; min-height: 44px;
  color: var(--sun-ink); font-size: 17px; font-weight: 500; text-decoration: none;
}
.link-more:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.link-btn { background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 44px; }
.icon-btn {
  position: relative; display: inline-grid; place-items: center; flex: none;
  width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
  background: transparent; color: var(--ink); cursor: pointer; text-decoration: none;
  transition: background 200ms var(--ease);
}
.icon-btn:hover { background: rgba(27, 34, 48, 0.06); }
.icon-btn svg { width: 20px; height: 20px; }
.icon-btn .n {
  position: absolute; top: 5px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--sun); color: var(--ink); font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
svg.bm path { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }

.btn-big {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 0;
  background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); font-size: 16px; font-weight: 600; text-decoration: none; cursor: pointer;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.btn-big:hover { background: var(--ink); color: #fff; }
.btn-big.primary { background: var(--ink); color: #fff; box-shadow: none; }

/* ---------- Toppmenyn ---------- */
.gn {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  padding-top: env(safe-area-inset-top, 0px);
  background: rgba(255, 255, 255, 0.78);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(27, 34, 48, 0.08);
}
.gn-in { position: relative; display: flex; align-items: center; gap: 4px; max-width: var(--max); height: var(--nav-h); margin: 0 auto; padding: 0 calc(var(--gutter) - 10px) 0 var(--gutter); }
.brand { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; font-size: 18px; font-weight: 600; letter-spacing: -0.025em; }
.brand-mark { width: 24px; height: 24px; flex: none; background: var(--sun-svg) center / contain no-repeat; }
.gn-links { position: absolute; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 2px; }
.gn-links a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px;
  font-size: 14px; color: rgba(27, 34, 48, 0.8); text-decoration: none; white-space: nowrap;
  transition: color 200ms var(--ease);
}
.gn-links a:hover { color: var(--ink); }
.gn-tools { display: flex; align-items: center; gap: 0; margin-left: auto; }
.lang-sw { display: inline-flex; align-items: center; margin-left: 6px; }
.lang-sw a {
  display: inline-grid; place-items: center; min-width: 40px; min-height: 44px; padding: 0 4px;
  font-size: 13px; font-weight: 500; color: var(--ink-2); text-decoration: none; letter-spacing: 0.02em;
}
.lang-sw a + a::before { content: ""; position: relative; left: -4px; width: 1px; height: 12px; background: var(--line-2); }
.lang-sw a + a { display: inline-flex; align-items: center; gap: 0; }
.lang-sw a:hover { color: var(--ink); }
.lang-sw a[aria-current="true"] { color: var(--ink); font-weight: 700; }
.menu-btn { display: none; }
@media (max-width: 960px) {
  .gn-links, .gn .lang-sw { display: none; }
  .menu-btn { display: inline-grid; }
}

/* Menyn på mobil */
.menu {
  position: fixed; inset: 0; z-index: 80; overflow-y: auto;
  padding: env(safe-area-inset-top, 0px) 0 calc(env(safe-area-inset-bottom, 0px) + 32px);
  background: rgba(255, 255, 255, 0.97);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  animation: menu-in 280ms var(--ease-out) both;
}
.menu-top { display: flex; align-items: center; justify-content: space-between; height: var(--nav-h); padding: 0 calc(var(--gutter) - 10px) 0 var(--gutter); }
.menu-links { list-style: none; margin: 16px 0 0; padding: 0 var(--gutter); }
.menu-links li { opacity: 0; transform: translateY(-6px); animation: menu-item 360ms var(--ease-out) forwards; }
.menu-links li:nth-child(2) { animation-delay: 30ms; } .menu-links li:nth-child(3) { animation-delay: 60ms; }
.menu-links li:nth-child(4) { animation-delay: 90ms; } .menu-links li:nth-child(5) { animation-delay: 120ms; }
.menu-links li:nth-child(6) { animation-delay: 150ms; } .menu-links li:nth-child(7) { animation-delay: 180ms; }
.menu-links li:nth-child(8) { animation-delay: 210ms; } .menu-links li:nth-child(9) { animation-delay: 240ms; }
.menu-links a { display: flex; align-items: center; min-height: 52px; font-size: 28px; font-weight: 600; letter-spacing: -0.03em; text-decoration: none; }
.menu-links li.small a { min-height: 44px; font-size: 17px; font-weight: 500; color: var(--ink-2); letter-spacing: -0.01em; }
.menu-links li.small:first-of-type, .menu-links li.gap { margin-top: 18px; }
.menu-links li.menu-konto a { color: var(--sun-ink); font-weight: 600; }
.menu-small { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; margin: 28px var(--gutter) 0; padding-top: 18px; border-top: 1px solid var(--line); }
.menu-small a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; color: var(--ink-2); text-decoration: none; }
.menu-small .lang-sw { display: inline-flex; margin: 0 0 0 auto; }
@keyframes menu-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes menu-item { to { opacity: 1; transform: none; } }

/* ---------- Sektioner ---------- */
.sec { padding: clamp(72px, 9vw, 128px) var(--gutter); scroll-margin-top: var(--nav-h); }
.grey { background: var(--grey); }
.sec-head { max-width: var(--text); margin: 0 auto; text-align: center; }
.sec-head h2 { margin: 0; font-size: clamp(34px, 5vw, 60px); font-weight: 600; line-height: 1.05; letter-spacing: -0.04em; }
.sec-head p { margin: 12px auto 0; max-width: 34em; font-size: clamp(19px, 1.9vw, 24px); line-height: 1.35; color: var(--ink-2); letter-spacing: -0.015em; }
.sec-head .lang-note { font-size: 15px; }

/* ---------- Hero ---------- */
.hero { padding: calc(var(--nav-h) + env(safe-area-inset-top, 0px) + clamp(36px, 5.5vw, 76px)) 0 clamp(48px, 7vw, 104px); background: #fff; overflow: hidden; }
.hero-in { max-width: 1120px; margin: 0 auto; padding: 0 var(--gutter); text-align: center; }
.hero-k { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 15px; font-weight: 600; color: var(--sun-ink); letter-spacing: -0.005em; }
.hero-k .brand-mark { width: 18px; height: 18px; }
.hero h1, .hero .h1 {
  margin: 0 auto; max-width: 15.5em;
  font-size: clamp(36px, 5.3vw, 72px); line-height: 1.04; font-weight: 600; letter-spacing: -0.045em;
}
.hero h1 span, .hero .h1 span { display: block; color: var(--ink-3); }
.hero-sub { margin: 22px auto 0; max-width: 31em; font-size: clamp(18px, 1.75vw, 22px); line-height: 1.42; color: var(--ink-2); letter-spacing: -0.015em; }
.hero-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 28px; margin-top: 32px; }

/* Galleriet: Vi tipsar */
.gal { margin-top: clamp(44px, 5.5vw, 80px); }
.gal-head { display: flex; align-items: center; gap: 4px 14px; max-width: var(--max); margin: 0 auto 20px; padding: 0 var(--gutter); }
.gal-head h2 { margin: 0; font-size: clamp(26px, 2.8vw, 34px); font-weight: 600; letter-spacing: -0.035em; line-height: 1.1; }
.gal-head p { margin: 0; padding-top: 4px; font-size: clamp(17px, 1.6vw, 21px); color: var(--ink-2); }
.gal-rail {
  --edge: max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
  display: flex; gap: 18px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: var(--edge);
  padding: 6px var(--edge) 26px; scrollbar-width: none;
}
.gal-rail::-webkit-scrollbar { display: none; }
.tile {
  position: relative; flex: none; display: block; isolation: isolate; overflow: hidden;
  width: min(80vw, 372px); height: clamp(410px, 34vw, 490px); border-radius: 28px;
  /* Safari klipper inte runda hörn när plattan skalas (hover/tryck) och bakgrunden är suddad: clip-path håller hörnen runda. */
  clip-path: inset(0 round 28px); -webkit-clip-path: inset(0 round 28px);
  background: #2A3142; color: #fff; text-decoration: none; scroll-snap-align: start;
  transition: transform 400ms var(--ease);
}
@media (hover: hover) { .tile:hover { transform: scale(1.015); } .tile:hover .tile-plus { background: rgba(255, 255, 255, 0.95); color: var(--ink); } }
.tile:active { transform: scale(0.985); }
.tile-bg { position: absolute; inset: -60px; z-index: -2; width: calc(100% + 120px); max-width: none; height: calc(100% + 120px); object-fit: cover; filter: blur(34px) saturate(1.35); }
.tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 12, 18, 0.62) 0%, rgba(10, 12, 18, 0.38) 55%, rgba(10, 12, 18, 0.28) 100%); }
.tile-txt { position: absolute; top: 26px; left: 26px; right: 26px; display: flex; flex-direction: column; gap: 8px; }
.tile-k { font-size: 14px; font-weight: 600; letter-spacing: -0.005em; color: rgba(255, 255, 255, 0.86); }
.tile-t { font-size: clamp(25px, 2.2vw, 29px); line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.tile-m { font-size: 15px; color: rgba(255, 255, 255, 0.78); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile-pic { position: absolute; left: 16px; right: 16px; bottom: 16px; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: rgba(255, 255, 255, 0.08); box-shadow: 0 14px 36px rgba(0, 0, 0, 0.28); }
.tile-pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tile-plus {
  position: absolute; right: 28px; bottom: 28px;
  width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(255, 255, 255, 0.22); color: #fff; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.tile-plus svg { width: 16px; height: 16px; }
.tile-sun { display: none; }
.tile.fb { background: var(--sky-1); color: var(--ink); }
.tile.fb::before, .tile.fb .tile-bg, .tile.fb .tile-pic { display: none; }
.tile.fb .tile-k { color: var(--ink-2); }
.tile.fb .tile-m { color: var(--ink-2); }
.tile.fb .tile-plus { bottom: 24px; right: 24px; background: rgba(27, 34, 48, 0.08); color: var(--ink); }
.tile.fb .tile-sun { display: block; position: absolute; left: 50%; bottom: -96px; width: 300px; height: 300px; transform: translateX(-50%); background: var(--sun-svg) center / contain no-repeat; opacity: 0.95; }
.fb.c-business, .c-business .fb { background-color: var(--sky-4); }
.fb.c-network, .c-network .fb { background-color: var(--sky-3); }
.fb.c-science, .c-science .fb { background-color: var(--sky-2); }
.gal-nav { display: flex; gap: 12px; margin-left: auto; }
.paddle {
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(27, 34, 48, 0.07); color: var(--ink); cursor: pointer;
  transition: background 200ms var(--ease), opacity 200ms var(--ease);
}
.paddle svg { width: 18px; height: 18px; }
.paddle:hover { background: rgba(27, 34, 48, 0.13); }
.paddle[aria-disabled="true"] { opacity: 0.32; cursor: default; }
.paddle[aria-disabled="true"]:hover { background: rgba(27, 34, 48, 0.07); }

/* ---------- Den här veckan ---------- */
.seg {
  position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr));
  width: min(100%, 540px); margin: 36px auto 0; padding: 3px; border-radius: 999px; background: var(--track);
}
.seg-thumb {
  position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc((100% - 6px) / var(--n)); border-radius: 999px;
  background: #fff; box-shadow: 0 1px 2px rgba(27, 34, 48, 0.1), 0 3px 10px rgba(27, 34, 48, 0.08);
  transform: translateX(calc(var(--i) * 100%)); transition: transform 360ms var(--ease-out);
}
.seg button {
  position: relative; z-index: 1; min-height: 44px; padding: 0 8px; border: 0; border-radius: 999px; background: transparent;
  font-size: 15px; font-weight: 500; color: var(--ink-2); cursor: pointer; white-space: nowrap;
  transition: color 200ms var(--ease);
}
.seg button:hover { color: var(--ink); }
.seg button[aria-selected="true"], .seg button[aria-pressed="true"] { color: var(--ink); font-weight: 600; }
.wk-panel { max-width: var(--max); margin: 36px auto 0; outline: none; }
.wk-panel.wk-in > * { animation: wk-in 320ms var(--ease-out) both; }
.wk-panel.wk-in > * + * { animation-delay: 40ms; }
@keyframes wk-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.wk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.wk-grid.n1 { grid-template-columns: minmax(0, 380px); justify-content: center; }
.wk-grid.n2 { grid-template-columns: repeat(2, minmax(0, 380px)); justify-content: center; }
.wk-card {
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border-radius: 24px; background: #fff; color: inherit; text-decoration: none;
  transition: box-shadow 300ms var(--ease);
}
.wk-card:hover { box-shadow: 0 2px 6px rgba(27, 34, 48, 0.05), 0 16px 40px rgba(27, 34, 48, 0.08); }
.wk-im { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--grey-2); }
.wk-im img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.wk-card:hover .wk-im img { transform: scale(1.035); }
.wk-im.fb { background: var(--sky-1) var(--sun-svg) center / 64px 64px no-repeat; }
.c-business .wk-im.fb { background-color: var(--sky-4); } .c-network .wk-im.fb { background-color: var(--sky-3); } .c-science .wk-im.fb { background-color: var(--sky-2); }
.wk-body { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px 24px; }
.wk-when { font-size: 14px; font-weight: 600; color: var(--sun-ink); font-variant-numeric: tabular-nums; }
.wk-t { font-size: 20px; line-height: 1.2; font-weight: 600; letter-spacing: -0.025em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wk-m { font-size: 15px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-foot { display: flex; flex-direction: column; align-items: center; gap: 2px; margin: 28px 0 0; text-align: center; }
.wk-foot .note { font-size: 15px; color: var(--ink-2); }
.wk-empty { padding: 48px 24px; border-radius: 24px; background: #fff; text-align: center; }
.wk-empty p { margin: 0 0 18px; font-size: 21px; font-weight: 600; letter-spacing: -0.02em; }
.wk-empty p small { display: block; margin-top: 6px; font-size: 16px; font-weight: 400; color: var(--ink-2); letter-spacing: -0.01em; }

/* ---------- Nyhetsbrevet ---------- */
.nl { background: #fff; text-align: center; }
.nl-in { max-width: 720px; margin: 0 auto; }
.nl-sun { display: block; width: 60px; height: 60px; margin: 0 auto 26px; background: var(--sun-svg) center / contain no-repeat; }
.nl h2 { margin: 0; font-size: clamp(34px, 5vw, 60px); font-weight: 600; line-height: 1.05; letter-spacing: -0.04em; }
.nl-lede { margin: 14px auto 0; max-width: 30em; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.4; color: var(--ink-2); }
.nl-form { width: min(100%, 500px); margin: 34px auto 0; text-align: left; }
.nl-field {
  display: flex; align-items: center; gap: 6px; height: 58px; padding: 0 6px 0 0; border-radius: 16px;
  background: var(--grey); box-shadow: inset 0 0 0 1px rgba(27, 34, 48, 0.07);
  transition: box-shadow 200ms var(--ease), background 200ms var(--ease);
}
.nl-field:focus-within { background: #fff; box-shadow: inset 0 0 0 2px var(--ink); }
.nl-field input {
  flex: 1; min-width: 0; height: 100%; padding: 0 12px 0 20px; border: 0; background: transparent; outline: none;
  font-size: 17px; -webkit-appearance: none; appearance: none; border-radius: 16px;
}
.nl-field input::placeholder { color: var(--ink-2); opacity: 0.8; }
.nl-go {
  flex: none; height: 46px; padding: 0 20px; border: 0; border-radius: 12px;
  background: var(--ink); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer;
  transition: background 200ms var(--ease), transform 150ms var(--ease);
}
.nl-go:hover { background: var(--ink-hover); }
.nl-go:active { transform: scale(0.97); }
.nl-go[disabled] { opacity: 0.6; cursor: progress; }
.nl-how { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows 320ms var(--ease-out), opacity 240ms var(--ease); }
.nl-how > div { overflow: hidden; }
.nl-form:focus-within .nl-how, .nl-form:has(input[type="email"]:not(:placeholder-shown)) .nl-how { grid-template-rows: 1fr; opacity: 1; }
.nl-how select {
  display: block; width: 100%; height: 48px; margin-top: 10px; padding: 0 16px; border: 0; border-radius: 12px;
  background: var(--grey); color: var(--ink-2); font-size: 15px; cursor: pointer;
}
.nl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nl-note { max-width: 470px; margin: 16px auto 0; font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.nl-note a { color: var(--ink-2); }
.nl-msg { margin: 18px auto 0; max-width: 470px; font-size: 17px; font-weight: 600; color: var(--ok); animation: wk-in 300ms var(--ease-out) both; }
.nl-msg.err { color: var(--danger); }
/* Stängknappen (×) i kontots rutor. */
.bkpop-x { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--ink-2); font-size: 22px; line-height: 1; cursor: pointer; }
.bkpop-x:hover { background: var(--grey); }
/* Exempel ur senast skickade brevet (lib/nl-sample.js bygger samma markup på servern) */
.nl-ex { max-width: 460px; margin: 28px auto 0; padding: 20px 22px 8px; border-radius: 20px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); text-align: left; }
.nl-ex-k { display: flex; justify-content: space-between; gap: 12px; margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--sun-ink); }
.nl-ex-k time { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ink-2); }
.nl-ex-s { margin: 8px 0 0; font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: var(--ink); }
.nl-ex ul { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--line); }
.nl-ex li { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.35; }
.nl-ex li time { font-weight: 600; color: var(--sun-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nl-ex li span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--ink); }
.nl-ex-more { margin: 8px 0 0 !important; font-size: 14px !important; color: var(--ink-2); }
.nl-ex-go { font-size: 16px; }
.nl-mini .nl-ex, .evp-nl .nl-ex { background: #fff; box-shadow: none; }
/* A/B-test, variant B: exemplet står ovanför formuläret (till vänster på dator i stora rutan) */
.nl-b .nl-ex { margin: 22px auto 0; }
.nl-b.nl-in .nl-ex { margin: 0 auto 32px; }
.qrpop.nl-b .nl-ex { margin-top: 18px; }
@media (min-width: 900px) {
  .nl-in.has-ex { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 72px; align-items: center; max-width: var(--max); text-align: left; }
  .has-ex .nl-sun { margin-left: 0; }
  .has-ex .nl-lede, .has-ex .nl-form, .has-ex .nl-note, .has-ex .nl-msg { margin-left: 0; }
  .has-ex .nl-ex { max-width: none; margin: 0; padding: 26px 28px 12px; }
  .nl-b.has-ex { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
  .nl-b.has-ex .nl-ex { margin: 0; }
}

/* ---------- Vad vill du göra? ---------- */
.do-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; max-width: var(--max); margin: 48px auto 0; }
.do-tile {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column;
  min-height: 320px; padding: clamp(26px, 2.8vw, 38px); border-radius: 28px;
  background: #fff; color: var(--ink); text-decoration: none;
  transition: transform 300ms var(--ease);
}
.do-tile:active { transform: scale(0.99); }
.do-top { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.do-w { font-size: clamp(36px, 4.4vw, 60px); line-height: 0.98; font-weight: 600; letter-spacing: -0.045em; }
.do-d { max-width: 19em; font-size: clamp(16px, 1.4vw, 19px); line-height: 1.35; color: var(--ink-2); }
.do-n { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 17px; font-weight: 600; color: var(--sun-ink); }
.do-tile:hover .do-n { text-decoration: underline; text-underline-offset: 4px; }
.do-tile:hover .do-n .chev { transform: translateX(3px); }
/* Plattornas bilder ligger helt inne i plattan: en bildyta med fast proportion längst ner, rundade hörn, ingen förskjutning. */
.do-pic { position: relative; z-index: 0; display: block; width: 100%; aspect-ratio: 16 / 9; margin-top: auto; border-radius: 18px; overflow: hidden; background: rgba(255, 255, 255, 0.5); }
.do-top + .do-pic { margin-top: 24px; }
.do-tile.has-img .do-top { margin-bottom: auto; }
.do-pic picture, .do-pic img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
@media (hover: hover) { .do-tile:hover .do-pic img { transform: scale(1.035); } }
/* Värt att resa för: en platta över hela bredden under de fyra, större än dem, med bild (eventbild eller reservfoto). */
.do-resa { grid-column: span 12; min-height: clamp(400px, 40vw, 500px); background: var(--sky-2); }
.do-resa .do-d { color: #3F4757; }
.do-resa .do-n { color: var(--ink); }
.do-tile.do-resa { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; gap: 24px 40px; min-height: 0; }
.do-resa .do-top { margin-bottom: 0; }
.do-resa .do-pic { margin: 0; }
.do-bygga { grid-column: span 7; min-height: clamp(380px, 38vw, 480px); }
.do-bygga .do-pic { width: 78%; align-self: flex-end; }
.do-pitcha { grid-column: span 5; background: var(--sun); justify-content: flex-end; }
.do-pitcha .do-top { flex-direction: column-reverse; }
.do-pitcha .do-w { font-size: clamp(56px, 8.4vw, 124px); line-height: 0.9; letter-spacing: -0.055em; margin-top: 6px; }
.do-pitcha .do-d { color: rgba(27, 34, 48, 0.78); }
.do-pitcha .do-n { color: var(--ink); }
.do-lara { grid-column: span 5; background: var(--sky-1); min-height: 400px; }
.do-folk { grid-column: span 4; background: var(--sky-3); min-height: 400px; }
.do-lara .do-d, .do-folk .do-d { color: #3F4757; }
.do-lara .do-n, .do-folk .do-n { color: var(--ink); }
.do-hacka { grid-column: span 3; background: var(--ink); color: #fff; min-height: 400px; justify-content: space-between; }
.do-hacka .do-d { color: var(--on-ink-2); }
.do-hacka .do-n { color: #fff; }
.do-hacka .do-w.long, .do-folk .do-w.long { font-size: clamp(30px, 3.2vw, 44px); }
.do-pitcha .do-w.long { font-size: clamp(48px, 6.4vw, 92px); }
.do-hacka::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; background: var(--sun-svg) center / contain no-repeat; opacity: 0.95; z-index: -1; }

/* ---------- Alla event ---------- */
.list-sec { background: #fff; }
.list-in { max-width: var(--text); margin: 0 auto; }
.lt { display: flex; flex-direction: column; align-items: center; gap: 14px; margin: 36px auto 0; }
.search-field { position: relative; width: min(100%, 640px); }
.search-field svg { position: absolute; left: 18px; top: 50%; width: 19px; height: 19px; transform: translateY(-50%); color: var(--ink-2); pointer-events: none; }
.search {
  width: 100%; height: 54px; padding: 0 18px 0 50px; border: 0; border-radius: 16px;
  background: var(--grey); font-size: 17px; box-shadow: inset 0 0 0 1px rgba(27, 34, 48, 0.06);
  -webkit-appearance: none; appearance: none; transition: background 200ms var(--ease), box-shadow 200ms var(--ease);
}
.search::placeholder { color: var(--ink-2); opacity: 0.85; }
.search:focus { outline: none; background: #fff; box-shadow: inset 0 0 0 2px var(--ink); }
.chips-label { margin: 6px 0 -6px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.chips { display: flex; gap: 8px; max-width: 100%; overflow-x: auto; padding: 2px; scrollbar-width: none; }
.chips::-webkit-scrollbar { display: none; }
.chip {
  flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px;
  background: var(--grey); color: var(--ink); font-size: 15px; font-weight: 500; cursor: pointer; white-space: nowrap;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.chip:hover { background: var(--grey-2); }
.chip[aria-pressed="true"] { background: var(--ink); color: #fff; }
.chip i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.ctrl-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px 6px; }
.ctrl {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px;
  background: transparent; color: var(--ink); font-size: 15px; font-weight: 500; cursor: pointer; white-space: nowrap;
  transition: background 200ms var(--ease);
}
.ctrl:hover { background: var(--grey); }
.ctrl svg { width: 18px; height: 18px; }
.ctrl .n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 700; }
.ctrl.mine[aria-pressed="true"] { background: var(--ink); color: #fff; }
.ctrl.mine[aria-pressed="true"] .n { background: #fff; color: var(--ink); }
.ctrl.mine[aria-pressed="true"] svg.bm path { fill: currentColor; }
.sw-ui { position: relative; flex: none; width: 42px; height: 26px; border-radius: 13px; background: #C9CBD2; transition: background 240ms var(--ease); }
.sw-ui::after { content: ""; position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22); transition: transform 280ms var(--ease-out); }
[aria-pressed="true"] > .sw-ui { background: var(--ink); }
[aria-pressed="true"] > .sw-ui::after { transform: translateX(16px); }

/* ---------- Alla event: sidopanel och lista (funktion från F, stil från E) ---------- */
.list-sec { --side-w: 268px; --mbar-h: 0px; }
.shell { display: grid; grid-template-columns: var(--side-w) minmax(0, 1fr); gap: 44px; max-width: var(--max); margin: 52px auto 0; align-items: start; }
.side { position: sticky; top: calc(var(--nav-h) + 18px); max-height: calc(100vh - var(--nav-h) - 36px); overflow-y: auto; overscroll-behavior: contain; padding: 2px 8px 28px 2px; scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
.sheet-head, .sheet-foot, .grab { display: none; }
.s-grp { padding: 16px 0; border-top: 1px solid var(--line); }
.s-grp:first-child { padding-top: 0; border-top: 0; }
.s-h { margin: 0 0 6px 14px; font-size: 13px; font-weight: 600; color: var(--ink-2); letter-spacing: 0; }
.s-list { display: flex; flex-direction: column; gap: 2px; }
.f-row {
  display: flex; align-items: center; gap: 11px; width: 100%; min-height: 44px; padding: 0 14px; border: 0; border-radius: 13px;
  background: transparent; color: var(--ink); font-size: 15px; font-weight: 500; text-align: left; cursor: pointer;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.f-row:hover { background: var(--grey); }
.f-row .ic { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; color: var(--ink-2); transition: color 200ms var(--ease); }
.f-l { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.f-c { flex: none; font-size: 13px; font-weight: 500; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.f-row[aria-pressed="true"] { background: var(--ink); color: #fff; }
.f-row[aria-pressed="true"] .ic { color: #fff; }
.f-row[aria-pressed="true"] .f-c { color: var(--on-ink-2); }
.f-row.f-view { font-weight: 600; }
.f-row:disabled { color: var(--ink-3); cursor: default; }
.f-row:disabled:hover { background: transparent; }
.f-row:disabled .ic { color: #B9BCC3; }
.f-sw[aria-pressed="true"] { background: transparent; color: var(--ink); }
.f-sw[aria-pressed="true"] .f-c { color: var(--ink-2); }
.f-sw[aria-pressed="true"]:hover { background: var(--grey); }
.cat-dot { flex: none; width: 10px; height: 10px; margin: 0 4px; border-radius: 50%; }
.cat-dot.c-tech { background: #7FB2F0; } .cat-dot.c-business { background: var(--sun); } .cat-dot.c-science { background: #A99BE0; } .cat-dot.c-network { background: #EE9AB2; }
.f-row[aria-pressed="true"] .cat-dot { box-shadow: 0 0 0 2px #fff; }
.s-grp .seg.mini { margin: 0; }
.s-grp .seg.mini button { min-height: 40px; }
.main { min-width: 0; }
.lh { position: relative; }
.lh .search-field { width: 100%; }
.lh kbd { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); padding: 2px 8px; border-radius: 7px; box-shadow: inset 0 0 0 1px var(--line-2); font: 500 12px var(--font); color: var(--ink-2); }
.search:focus + kbd { opacity: 0; }
@media (hover: none) { .lh kbd { display: none; } }
.lh-desc { margin: 12px 4px 0; font-size: 15px; color: var(--ink-2); }
.lh-desc .link-btn, .hint-line .link-btn, .applied > .link-btn { color: var(--sun-ink); min-height: 0; }
.applied { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.applied:empty { display: none; }
.chip-x {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 12px 0 16px; border: 0; border-radius: 999px;
  background: var(--ink); color: #fff; font-size: 14px; font-weight: 500; cursor: pointer; transition: background 200ms var(--ease), transform 150ms var(--ease);
}
.chip-x:hover { background: var(--ink-hover); }
.chip-x:active { transform: scale(0.96); }
.chip-x .ic { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; opacity: 0.8; }
.applied > .link-btn { font-size: 14px; margin-left: 4px; }
.hint-line { flex-basis: 100%; margin: 2px 0 0 4px; font-size: 14px; color: var(--ink-2); }
.lc { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; margin: 18px 4px 0; font-size: 15px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.lc .link-btn { color: var(--sun-ink); font-size: 15px; }
.board.swap { animation: wk-in 320ms var(--ease-out) both; }
.day { margin-top: 14px; }
.day-h {
  position: sticky; top: calc(var(--nav-h) + var(--mbar-h)); z-index: 6; display: flex; align-items: baseline; gap: 10px; margin: 0;
  padding: 16px 4px 11px; border-bottom: 1px solid var(--ink);
  background: rgba(255, 255, 255, 0.96); -webkit-backdrop-filter: saturate(180%) blur(16px); backdrop-filter: saturate(180%) blur(16px);
}
.day-m { font-size: clamp(21px, 2vw, 24px); font-weight: 600; letter-spacing: -0.03em; }
.day-s { font-size: 15px; font-weight: 500; color: var(--ink-2); }
.day-n { margin-left: auto; font-size: 13px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.rows { display: flex; flex-direction: column; }
.row {
  position: relative; display: grid; align-items: center; column-gap: 20px;
  grid-template-columns: 62px 112px minmax(0, 1fr) 92px 44px;
  min-height: 92px; padding: 14px 12px; margin: 0 -12px; border-radius: 16px; cursor: pointer;
  transition: background 200ms var(--ease);
}
.row + .row::before { content: ""; position: absolute; left: 12px; right: 12px; top: 0; height: 1px; background: var(--line); transition: opacity 200ms var(--ease); }
.row:hover { background: var(--grey); }
.row:hover::before, .row:hover + .row::before { opacity: 0; }
.r-time { display: flex; flex-direction: column; align-self: start; padding-top: 2px; font-variant-numeric: tabular-nums; line-height: 1.25; }
.r-tt { font-size: 16px; font-weight: 600; color: var(--sun-ink); letter-spacing: -0.01em; }
.r-t2 { font-size: 13px; color: var(--ink-2); }
.r-sig { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--sun-ink); }
.r-sig::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--sun); }
.r-th { width: 112px; height: 70px; border-radius: 13px; overflow: hidden; background: var(--grey-2); }
.r-th img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--ease); }
.row:hover .r-th img { transform: scale(1.05); }
.r-th.fb { background: var(--sky-1) var(--sun-svg) center / 28px 28px no-repeat; }
.c-business .r-th.fb, .c-business .sim-im.fb { background-color: var(--sky-4); } .c-network .r-th.fb, .c-network .sim-im.fb { background-color: var(--sky-3); } .c-science .r-th.fb, .c-science .sim-im.fb { background-color: var(--sky-2); }
.r-main { min-width: 0; }
.r-t { display: inline; margin: 0; font-size: 17px; line-height: 1.3; font-weight: 600; letter-spacing: -0.02em; overflow-wrap: anywhere; }
.r-t a { text-decoration: none; }
.r-bd { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 8px; vertical-align: 2px; }
.bdg { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; background: var(--grey-2); font-size: 12px; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.bdg.tip { background: #FFEBDD; color: var(--sun-ink); }
.bdg.resa { background: var(--sky-1); color: var(--ink); }
.bdg.warn, .bdg.x { background: #FDE6E3; color: var(--danger); }
/* Tillträde (2026-10-25): hårt = fylld i varningsfärg med lås, mjukt = tunn grå ram. */
.bdg.hart { gap: 4px; background: var(--warn); color: #fff; }
.bdg.hart .ic { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bdg.mjukt { background: transparent; box-shadow: inset 0 0 0 1px var(--line-2); color: var(--ink-2); }
.row:hover .bdg.hart { background: var(--warn); } .row:hover .bdg.mjukt { background: transparent; }
.evp-bd { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 4px; }
.row:hover .bdg { background: #fff; } .row:hover .bdg.tip { background: #FFEBDD; } .row:hover .bdg.resa { background: var(--sky-1); } .row:hover .bdg.warn, .row:hover .bdg.x { background: #FDE6E3; }
.r-sub { margin: 4px 0 0; font-size: 14px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.r-mob { display: none; margin: 3px 0 0; font-size: 14px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.r-place { display: none !important; flex-direction: column; min-width: 0; font-size: 14px; line-height: 1.35; }
.r-place span, .r-place small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.r-place small { font-size: 13px; color: var(--ink-2); }
.r-price { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.r-price.is-free { color: var(--free-ink); }
.r-act { display: flex; align-items: center; justify-content: flex-end; }
.r-book {
  position: absolute; right: 60px; top: 50%; z-index: 1; min-height: 40px; padding: 0 16px; gap: 6px; font-size: 14px;
  opacity: 0; transform: translateY(-50%) translateX(6px); pointer-events: none;
  transition: opacity 200ms var(--ease), transform 250ms var(--ease-out), background 200ms var(--ease);
}
.r-book .ic { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.row:hover .r-book, .r-book:focus-visible { opacity: 1; transform: translateY(-50%); pointer-events: auto; }
.r-book:active { transform: translateY(-50%) scale(0.97); }
.r-book.wait { background: #fff; }
.r-arc { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--ink-2); }
.r-arc:hover { background: #fff; color: var(--ink); }
.r-arc .ic { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.row.is-x .r-t a { text-decoration: line-through; text-decoration-thickness: 1.5px; }
.row.is-x .r-th, .row.is-past .r-th { filter: grayscale(0.7); opacity: 0.75; }
.row-admin { grid-column: 3 / -1; }
.end-line { margin: 40px 0 0; text-align: center; font-size: 15px; color: var(--ink-2); }
.end-line::before { content: ""; display: block; width: 36px; height: 36px; margin: 0 auto 12px; background: var(--sun-svg) center / contain no-repeat; }
.shade { display: none; }
.topic-go { width: 100%; min-height: 52px; margin-top: 22px; border: 0; border-radius: 16px; background: var(--ink); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; transition: background 200ms var(--ease), transform 150ms var(--ease); }
.topic-go:hover { background: var(--ink-hover); }
.topic-go:active { transform: scale(0.98); }
.book {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 20px; border-radius: 999px;
  background: var(--ink); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none;
  transition: background 200ms var(--ease), transform 150ms var(--ease);
}
.book:hover { background: var(--ink-hover); }
.book:active { transform: scale(0.97); }
.book.wait { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.book.wait:hover { background: var(--ink); color: #fff; }
.save-btn {
  position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
  border: 0; border-radius: 50%; background: transparent; color: var(--ink-2); cursor: pointer;
  transition: background 200ms var(--ease), color 200ms var(--ease), transform 200ms var(--ease-out);
}
.save-btn:hover { background: var(--grey); color: var(--ink); }
.save-btn:active { transform: scale(0.88); }
.save-btn svg { width: 21px; height: 21px; }
.save-btn svg path, .act svg.bm path { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; transition: fill 200ms var(--ease); }
.save-btn[aria-pressed="true"] { color: var(--sun-ink); }
.save-btn[aria-pressed="true"] svg path { fill: var(--sun); stroke: var(--sun-ink); }
.save-remove { font-size: 14px; color: var(--ink-2); }
.row.ev-flash { animation: ev-flash 2.4s var(--ease); }
@keyframes ev-flash { 0%, 60% { background: #FFF1E8; } 100% { background: transparent; } }
.more-wrap { display: flex; justify-content: center; margin-top: 36px; }
.more-btn span { color: inherit; opacity: 0.7; font-weight: 400; }
.list-done { margin: 36px 0 0; text-align: center; font-size: 15px; color: var(--ink-2); }
.empty { padding: 56px 24px; text-align: center; border-radius: 24px; background: var(--grey); margin-top: 18px; }
.empty.empty-s { padding: 22px 20px; background: none; box-shadow: inset 0 0 0 1px var(--line); }
.empty.empty-s h3 { font-size: 20px; }
.empty.empty-s + .acct, .empty.empty-s + .acct-set { margin-top: 14px; }
.empty h3 { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -0.025em; }
.empty p { margin: 8px auto 0; max-width: 32em; color: var(--ink-2); }
.arc-teaser { margin: 28px 0 0; text-align: center; }
.br-hint { font-size: 15px; color: var(--ink-2); }
.br-hint .link-btn { color: var(--sun-ink); }
.mine-note { margin: 24px 0 0; text-align: center; font-size: 14px; color: var(--ink-2); }
.admin-hint { margin: 16px 0; padding: 12px 14px; border-radius: 10px; border: 1px dashed currentColor; font-size: 14px; opacity: 0.8; }

/* Nyhetsbrevet vid listans slut */
.nl-mini { margin: 56px auto 0; padding: clamp(36px, 5vw, 56px) clamp(22px, 5vw, 56px); border-radius: 28px; background: var(--grey); text-align: center; }
.nl-mini .nl-sun { width: 40px; height: 40px; margin-bottom: 16px; }
.nl-mini h3 { margin: 0; font-size: clamp(26px, 3vw, 34px); font-weight: 600; line-height: 1.1; letter-spacing: -0.035em; }
.nl-mini > p:not(.nl-note):not(.nl-msg) { margin: 8px auto 0; color: var(--ink-2); }
.nl-mini .nl-form { margin-top: 24px; }
.nl-mini .nl-field { background: #fff; }

/* ---------- Konto för Min lista (frivilligt, 2026-10-28) ---------- */
.acct { position: relative; margin: 28px 0 0; padding: 26px clamp(20px, 4vw, 32px) 22px; border-radius: 24px; background: var(--grey); }
.acct h3 { margin: 0 44px 0 0; font-size: clamp(21px, 2.2vw, 25px); font-weight: 600; line-height: 1.15; letter-spacing: -0.03em; }
.acct > p:not(.nl-note):not(.nl-msg) { margin: 8px 0 0; max-width: 34em; color: var(--ink-2); line-height: 1.45; }
.acct .acct-x { top: 10px; right: 10px; }
.acct-form { margin: 18px 0 0; max-width: 500px; }
.acct .nl-field { background: #fff; height: 54px; }
.acct .nl-field input { font-size: 16px; padding-left: 18px; }
.acct .nl-go { height: 42px; padding: 0 18px; font-size: 15px; }
.acct-why { list-style: none; margin: 12px 0 0; padding: 0; }
.acct-why li { position: relative; padding: 3px 0 3px 26px; font-size: 16px; line-height: 1.4; }
.acct-why li::before { content: ""; position: absolute; left: 2px; top: 9px; width: 12px; height: 7px; border-left: 2px solid var(--sun-ink); border-bottom: 2px solid var(--sun-ink); transform: rotate(-45deg); }
.acct-have { margin: 8px 0 0; font-size: 14px; color: var(--ink-2); }
#konto { scroll-margin-top: calc(var(--nav-h) + 12px); }
.acct-check { display: flex; align-items: flex-start; gap: 10px; margin: 14px 0 0; font-size: 15px; line-height: 1.4; color: var(--ink); cursor: pointer; }
.acct-check input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--ink); }
.acct .nl-note { margin: 14px 0 0; max-width: 34em; }
.acct .nl-msg { margin: 12px 0 0; font-size: 15px; }
.acct-sent h3 { margin-right: 0; }
.acct-sent .acct-big { display: block; width: 40px; height: 40px; margin: 0 0 14px; background: var(--sun-svg) center / contain no-repeat; }
.acct-again { margin-top: 6px; color: var(--sun-ink); font-size: 15px; }
.acct-hi { margin: 14px 4px 0; padding: 12px 16px; border-radius: 14px; background: #E9F5EE; color: var(--ok); font-size: 15px; font-weight: 600; }
.acct-nl { margin: 28px 0 0; padding: clamp(28px, 4.5vw, 44px) clamp(22px, 4.5vw, 44px); border-radius: 28px; background: var(--ink); color: #fff; text-align: center; }
.acct-nl .nl-sun { width: 44px; height: 44px; margin: 0 auto 16px; }
.acct-nl .acct-k { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sun-2); }
.acct-nl h3 { margin: 0 auto; max-width: 14em; font-size: clamp(27px, 3.4vw, 38px); font-weight: 600; line-height: 1.08; letter-spacing: -0.035em; text-wrap: balance; }
.acct-nl > p.acct-nl-p { margin: 12px auto 0; max-width: 30em; color: rgba(255, 255, 255, 0.78); font-size: 17px; line-height: 1.45; }
.acct-nl .nl-inbox { margin: 22px auto 0; max-width: 460px; text-align: left; }
.acct-nl-go { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 54px; margin: 24px 0 0; padding: 0 26px; border: 0; border-radius: 999px; background: var(--sun); color: var(--ink); font-size: 17px; font-weight: 600; cursor: pointer; transition: background 200ms var(--ease), transform 150ms var(--ease); }
.acct-nl-go span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acct-nl-go:hover { background: var(--sun-2); }
.acct-nl-go:active { transform: scale(0.97); }
.acct-nl-go[disabled] { opacity: 0.7; cursor: progress; }
.acct-nl-to { margin: 10px 0 0; font-size: 15px; color: rgba(255, 255, 255, 0.85); overflow-wrap: anywhere; }
.acct-nl-note { margin: 12px auto 0; max-width: 30em; font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, 0.62); }
.acct-nl-note a { color: inherit; }
.acct-nl .nl-msg { color: #8FE0B0; }
.acct-nl .nl-msg.err { color: #FFB4A8; }
.acct-set { margin: 28px 0 0; padding: 24px clamp(20px, 4vw, 32px) 14px; border-radius: 24px; box-shadow: inset 0 0 0 1px var(--line); }
.acct-set h3 { margin: 0; font-size: 21px; font-weight: 600; letter-spacing: -0.025em; }
.acct-mail { margin: 4px 0 0; color: var(--ink-2); font-size: 15px; overflow-wrap: anywhere; }
.acct-mail b { color: var(--ink); font-weight: 600; }
.acct-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 18px 0 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); cursor: pointer; }
.acct-row b { display: block; font-weight: 600; font-size: 16px; }
.acct-row small { display: block; margin-top: 2px; font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.acct-sw { flex: none; position: relative; width: 50px; height: 30px; margin: 0; border-radius: 999px; background: var(--line-2); -webkit-appearance: none; appearance: none; cursor: pointer; transition: background 200ms var(--ease); }
.acct-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); transition: transform 200ms var(--ease); }
.acct-sw:checked { background: var(--ok); }
.acct-sw:checked::after { transform: translateX(20px); }
.acct-btns { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 6px 0 0; font-size: 15px; }
.acct-btns .link-btn { color: var(--ink-2); }
.acct-btns .link-btn.danger { color: var(--danger); }
.acct-del { margin: 6px 0 10px; padding: 16px; border-radius: 16px; background: #FDF0EE; }
.acct-del p { margin: 0 0 12px; font-size: 15px; line-height: 1.45; }
.acct-del .btn-pill { min-height: 44px; padding: 0 20px; font-size: 15px; background: var(--danger); }
.acct-del .link-btn { margin-left: 14px; font-size: 15px; }
.acct-small { margin: 18px 0 0; text-align: center; font-size: 15px; color: var(--ink-2); }
.acct-small .link-btn { color: var(--sun-ink); }
.acct-code-form, .nl-code-form { margin: 18px 0 0; max-width: 360px; }
.acct-code-l { display: block; margin: 0 0 8px; font-size: 15px; font-weight: 600; }
.acct-code-form .nl-field input, .nl-code-form .nl-field input { font-size: 22px; letter-spacing: 0.12em; font-variant-numeric: tabular-nums; }
/* Nyhetsbrevet: koden från mejlet i rutan efter anmälan (2026-10-29), samma delar som kontots Nästan klart. */
.nl-code { width: min(100%, 500px); margin: 22px auto 0; text-align: left; }
.nl-code-h { margin: 0; font-size: 16px; line-height: 1.45; color: var(--ink-2); overflow-wrap: anywhere; }
.nl-code-h b { color: var(--ink); font-weight: 600; }
.nl-code .nl-msg { margin: 12px 0 0; font-size: 15px; }
.nl-code .nl-msg.nl-done { font-size: 17px; }
.nl-c .nl-code .link-btn, .nl-d .nl-code .link-btn { color: inherit; }
@media (min-width: 900px) { .has-ex .nl-code { margin-left: 0; } }
.acct-sent .acct-again { display: block; }
.acct-spam { margin: 10px 0 0; font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.acct-spam .link-btn { display: inline; min-height: 0; padding: 0; color: var(--sun-ink); font-size: 15px; line-height: inherit; vertical-align: baseline; }
/* Pop-upen efter Skapa konto: kolla skräpposten (inbyggd dialog, showModal). */
dialog.acct-dlg { width: min(440px, calc(100% - 32px)); max-height: calc(100% - 32px); padding: 32px clamp(22px, 5vw, 32px) 24px; border: 0; border-radius: 28px; background: #fff; color: var(--ink); box-shadow: 0 40px 120px rgba(0, 0, 0, 0.3); overflow-y: auto; }
dialog.acct-dlg[open] { animation: modal-in 380ms var(--ease-out) both; }
dialog.acct-dlg::backdrop { background: rgba(12, 15, 22, 0.42); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.acct-dlg-ic { display: block; width: 40px; height: 40px; margin: 0 0 14px; background: var(--sun-svg) center / contain no-repeat; }
.acct-dlg h2 { margin: 0; font-size: 25px; font-weight: 600; line-height: 1.15; letter-spacing: -0.03em; }
.acct-dlg p { margin: 12px 0 0; font-size: 16px; line-height: 1.45; color: var(--ink-2); }
.acct-dlg .acct-dlg-k { margin-top: 18px; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sun-ink); }
.acct-dlg-mail { margin: 8px 0 0; padding: 4px 16px; border-radius: 16px; background: var(--grey); }
.acct-dlg-mail div { display: flex; gap: 12px; padding: 10px 0; }
.acct-dlg-mail div + div { border-top: 1px solid var(--line); }
.acct-dlg-mail dt { flex: none; width: 4.2em; font-size: 14px; color: var(--ink-2); }
.acct-dlg-mail dd { margin: 0; min-width: 0; font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.acct-dlg-mail dd b { font-weight: 600; }
.acct-dlg-mail dd span { color: var(--ink-2); }
.acct-dlg-ok { display: block; width: 100%; min-height: 52px; margin: 22px 0 0; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font-size: 17px; font-weight: 600; cursor: pointer; }
.acct-dlg-ok:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
.acct-home { position: relative; display: flex; align-items: flex-start; gap: 14px; margin: 14px 0 0; padding: 14px 52px 14px 14px; border-radius: 18px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.acct-home-ic { flex: none; width: 44px; height: 44px; border-radius: 11px; background: url("/apple-touch-icon.png") center / cover no-repeat; }
.acct-home-t { min-width: 0; }
.acct-home-h { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.35; }
.acct-home-p { margin: 4px 0 0; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.home-share { display: inline-block; width: 18px; height: 18px; margin: 0 1px; vertical-align: -3px; color: #0A84FF; }
.acct-home-go { margin: 8px 0 0; min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; }
.acct-home .acct-home-x { top: 4px; right: 4px; }
.toast .link-btn { min-height: 0; margin-left: 8px; color: #FFB48F; font-weight: 600; }
.evp-savemsg .link-btn { min-height: 0; margin-left: 6px; color: var(--sun-ink); font-weight: 600; }

/* ---------- Arkivet ---------- */
.arc-top { display: flex; justify-content: center; margin-bottom: 8px; }
.arc-back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: var(--grey); font-size: 15px; font-weight: 500; cursor: pointer; transition: background 200ms var(--ease); }
.arc-back:hover { background: var(--grey-2); }
.arc-back svg { width: 14px; height: 14px; }
.doing { display: flex; align-items: center; gap: 8px; max-width: 100%; overflow-x: auto; padding: 2px; scrollbar-width: none; }
.doing::-webkit-scrollbar { display: none; }
.doing-label { flex: none; font-size: 14px; color: var(--ink-2); margin-right: 4px; }
.chip-btn, .tab {
  flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px;
  background: var(--grey); color: var(--ink); font-size: 15px; font-weight: 500; cursor: pointer; white-space: nowrap;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.chip-btn:hover, .tab:hover { background: var(--grey-2); }
.chip-btn[aria-pressed="true"], .tab[aria-pressed="true"] { background: var(--ink); color: #fff; }
.tab i { display: none; }
.tabs { display: flex; gap: 8px; max-width: 100%; overflow-x: auto; padding: 2px; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.sel select {
  min-height: 44px; padding: 0 40px 0 16px; border: 0; border-radius: 999px; background: var(--grey); font-size: 15px; font-weight: 500; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231B2230' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 11px 8px;
}
.toggle { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 12px; border-radius: 999px; font-size: 15px; font-weight: 500; cursor: pointer; }
.toggle input { -webkit-appearance: none; appearance: none; position: relative; flex: none; width: 42px; height: 26px; margin: 0; border-radius: 13px; background: #C9CBD2; cursor: pointer; transition: background 240ms var(--ease); }
.toggle input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22); transition: transform 280ms var(--ease-out); }
.toggle input:checked { background: var(--ink); }
.toggle input:checked::after { transform: translateX(16px); }
.arc-month { display: flex; align-items: baseline; justify-content: space-between; margin: 40px 0 0; padding-bottom: 12px; border-bottom: 1px solid var(--ink); font-size: clamp(21px, 2.2vw, 26px); font-weight: 600; letter-spacing: -0.03em; }
.arc-month span { font-size: 15px; font-weight: 500; color: var(--ink-2); letter-spacing: 0; }
.arc-row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 4px 18px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--line); }
.date-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 56px; height: 60px; border-radius: 14px; background: var(--grey); line-height: 1; }
.date-badge b { font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }
.date-badge span { margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--ink-2); }
.arc-main { min-width: 0; }
.arc-title { margin: 0; font-size: 18px; line-height: 1.25; font-weight: 600; letter-spacing: -0.02em; }
.arc-title a { text-decoration: none; }
.arc-title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.arc-meta, .arc-desc { margin: 4px 0 0; font-size: 15px; color: var(--ink-2); }
.arc-tags { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 6px; font-size: 13px; color: var(--ink-2); }
.arc-tags .cat i { display: none; }
.arc-tags .tag.free { color: var(--free-ink); font-weight: 600; }
.arc-tags .tag.full { color: var(--danger); font-weight: 600; }
.arc-link { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: 15px; color: var(--sun-ink); text-decoration: none; white-space: nowrap; }
.arc-link:hover { text-decoration: underline; }
.arc-clear { border: 0; background: none; padding: 0; min-height: 44px; font: inherit; font-size: 15px; color: var(--sun-ink); cursor: pointer; }
mark { background: #FFE2CC; color: inherit; border-radius: 3px; padding: 0 1px; }

/* ---------- Om oss ---------- */
.ink { background: var(--ink); color: #fff; }
.about-in { max-width: var(--text); margin: 0 auto; }
.about h2 { margin: 0; text-align: center; font-size: clamp(34px, 5vw, 60px); font-weight: 600; line-height: 1.05; letter-spacing: -0.04em; }
.about-lead { margin: 26px auto 0; max-width: 26em; text-align: center; font-size: clamp(22px, 2.7vw, 34px); line-height: 1.28; font-weight: 500; letter-spacing: -0.028em; }
.about-lead span { color: var(--on-ink-2); }
.about-photo { margin: clamp(48px, 6vw, 72px) auto 0; aspect-ratio: 21 / 9; border-radius: 28px; background: url("/hero.jpg") 80% 68% / cover no-repeat; background-image: image-set(url("/hero-1000.webp") type("image/webp"), url("/hero.jpg") type("image/jpeg")); }
.about-why { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 32px clamp(32px, 6vw, 96px); margin-top: clamp(56px, 7vw, 88px); }
.about-q { margin: 0; font-size: clamp(28px, 3.2vw, 40px); font-weight: 600; line-height: 1.08; letter-spacing: -0.035em; }
.about-q small { display: block; margin-top: 14px; font-size: 17px; font-weight: 400; line-height: 1.47; letter-spacing: -0.012em; color: var(--on-ink-2); }
.why { list-style: none; margin: 0; padding: 0; }
.why li { padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.why li:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.why h4 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.022em; }
.why p { margin: 6px 0 0; font-size: 16px; color: var(--on-ink-2); }
.follow { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: clamp(48px, 6vw, 72px); }
.follow-note { margin: 14px 0 0; text-align: center; font-size: 15px; color: var(--on-ink-2); }

/* ---------- Sidfoten ---------- */
.ft { background: var(--grey); color: var(--ink-2); font-size: 13px; line-height: 1.5; padding: 0 var(--gutter) calc(28px + env(safe-area-inset-bottom, 0px)); }
.ft-in { max-width: var(--max); margin: 0 auto; }
.ft-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px 40px; padding: clamp(44px, 5vw, 64px) 0; border-bottom: 1px solid var(--line-2); }
.ft-cta h2 { margin: 0; font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; line-height: 1.12; letter-spacing: -0.03em; color: var(--ink); }
.ft-cta p { margin: 8px 0 0; max-width: 34em; font-size: 16px; }
.ft-cta p a { color: var(--sun-ink); }
.ft-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.ft-disc { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line-2); font-size: 13px; }
.ft-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 26px 0 12px; }
.ft-col h3 { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--ink); letter-spacing: -0.005em; }
.ft-tog { display: none; }
.ft-col ul { list-style: none; margin: 0; padding: 0; }
.ft-col li { margin: 0; }
.ft-col a { display: inline-flex; align-items: center; min-height: 30px; color: var(--ink-2); text-decoration: none; }
.ft-col a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.ft-col .cal-note { margin: 6px 0 0; max-width: 22em; font-size: 12px; }
.ft-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 24px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.ft-bottom p { margin: 0; }
.ft-bottom .lang-sw { margin: 0; }
.foot-install p { margin: 0; }
.install-btn { min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }

/* ---------- Eventrutan ---------- */
html.evp-lock, html.evp-lock body { overflow: hidden; }
.evp { position: fixed; inset: 0; z-index: 70; display: flex; align-items: center; justify-content: center; padding: 32px 24px; }
.evp-backdrop { position: absolute; inset: 0; background: rgba(12, 15, 22, 0.42); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: fade-in 300ms var(--ease) both; }
.evp-panel {
  position: relative; display: flex; flex-direction: column; width: min(780px, 100%); max-height: 100%;
  border-radius: 30px; background: #fff; overflow: hidden;
  box-shadow: 0 40px 120px rgba(0, 0, 0, 0.32); animation: modal-in 420ms var(--ease-out) both;
}
.evp.is-closing .evp-backdrop { animation: fade-out 220ms var(--ease) both; }
.evp.is-closing .evp-panel { animation: modal-out 220ms var(--ease) both; }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(24px) scale(0.97); } to { opacity: 1; transform: none; } }
@keyframes modal-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(12px) scale(0.98); } }
.evp-bar { position: absolute; top: 16px; right: 16px; z-index: 3; }
.evp-nav { position: absolute; top: 16px; left: 16px; z-index: 3; display: flex; align-items: center; gap: 8px; }
.evp-nav button:disabled { opacity: 0.4; cursor: default; }
.evp-nav button:disabled:hover { background: rgba(255, 255, 255, 0.82); }
.evp-pos { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.82); -webkit-backdrop-filter: blur(12px) saturate(180%); backdrop-filter: blur(12px) saturate(180%); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.evp-body.swap .evp-pad, .evp-body.swap .evp-hero { animation: wk-in 300ms var(--ease-out) both; }
.evp-close {
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, 0.82); color: var(--ink); cursor: pointer;
  -webkit-backdrop-filter: blur(12px) saturate(180%); backdrop-filter: blur(12px) saturate(180%);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12); transition: background 200ms var(--ease), transform 150ms var(--ease);
}
.evp-close:hover { background: #fff; }
.evp-close:active { transform: scale(0.92); }
.evp-close svg { width: 18px; height: 18px; }
.evp-body { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.evp-hero { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--grey-2); }
.evp-hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evp-hero.fb { aspect-ratio: auto; height: 150px; background-color: var(--sky-1); }
.evp-hero .tile-sun { display: block; position: absolute; left: 50%; bottom: -70px; width: 200px; height: 200px; transform: translateX(-50%); background: var(--sun-svg) center / contain no-repeat; }
.evp-hero:not(.fb) .tile-sun { display: none; }
/* Rutan för event utan bild, varianterna A/B/C (FB_STIL i skriptet). Färg efter typ: --tb bakgrund, --tm mellan, --ti mörk. */
.ty-hackathon { --tb: #FFDDC4; --tm: #FF7A3D; --ti: #7A2E0C; }
.ty-pitch { --tb: #FFECB0; --tm: #B07800; --ti: #5C3E00; }
.ty-workshop { --tb: #D3EFD9; --tm: #2F9A5A; --ti: #144D2A; }
.ty-karriar { --tb: #E3DDF6; --tm: #6F59C9; --ti: #33256E; }
.ty-forelasning { --tb: #CFE3FA; --tm: #3474C9; --ti: #173C6B; }
.ty-mingel { --tb: #F9D8E1; --tm: #D9506F; --ti: #6E1F33; }
.ty-studiebesok { --tb: #CDEDEC; --tm: #24908D; --ti: #134645; }
.ty-ovr { --tb: #E6E7EC; --tm: #5B6170; --ti: #1B2230; }
.r-th, .sim-im { position: relative; }
.fba { position: absolute; inset: 0; display: block; overflow: hidden; background: var(--tb); color: var(--ti); container-type: size; }
.tile.fb.art { background: var(--grey); }
.tile.fb.art .tile-pic { display: block; box-shadow: none; background: none; }
.tile.fb.art .tile-sun { display: none; }
.evp-hero.fb.art { height: 190px; }
.evp-hero.art .tile-sun { display: none; }
.evp-hero .fba-c .fba-org { display: none; } /* knapparna ligger där; arrangören står under titeln */
.fba-org { display: none; position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 20px); padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.94); color: var(--ink); font-size: 12px; font-weight: 600; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@container (min-width: 170px) and (min-height: 90px) { .fba-org { display: block; } }
/* A: Kalenderblad */
.fba-a { display: grid; place-items: center; }
.kb { display: flex; flex-direction: column; align-items: center; width: 62cqh; height: 78cqh; border-radius: 9cqh; overflow: hidden; background: #fff; box-shadow: 0 1px 2px rgba(27, 34, 48, 0.06), 0 5cqh 14cqh rgba(27, 34, 48, 0.10); }
.kb-w { display: block; width: 100%; text-align: center; background: var(--tm); color: #fff; font-size: 9px; font-size: max(8px, 11cqh); line-height: 2; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.kb-d { display: block; margin-top: 5cqh; font-size: 22px; font-size: 34cqh; line-height: 1; font-weight: 600; letter-spacing: -0.04em; color: var(--ink); font-variant-numeric: tabular-nums; }
.kb-m { display: block; margin-top: 1cqh; font-size: 9px; font-size: max(8px, 10cqh); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ti); }
/* B: Mönster */
.fba-b svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.fba-b .p1 { fill: var(--tm); stroke: var(--tm); } .fba-b .p2 { fill: var(--ti); stroke: var(--ti); } .fba-b .p3 { fill: #fff; stroke: #fff; }
.fba-b svg * { stroke-width: 0.35; }
/* D: Ämne. Färg efter ämnet (första i amnen, annars kategorin), linjeillustration per ämne. */
.am-ai { --tb: #E6E0F8; --tm: #6F59C9; --ti: #2F2266; }
.am-startup { --tb: #FFE0CC; --tm: #F26A2E; --ti: #74290A; }
.am-vetenskap { --tb: #CFEDEB; --tm: #22918D; --ti: #124442; }
.am-teknik { --tb: #D3E5FA; --tm: #3474C9; --ti: #163A69; }
.am-design { --tb: #FADAE3; --tm: #D54C6C; --ti: #6A1C31; }
.am-hallbarhet { --tb: #D6F0DB; --tm: #2F9A5A; --ti: #134A28; }
.am-ekonomi { --tb: #FFEDB8; --tm: #B07800; --ti: #573B00; }
.am-halsa { --tb: #FFDCD4; --tm: #DE4F3A; --ti: #681D12; }
.am-natverk { --tb: #E6E7EC; --tm: #5B6170; --ti: #1B2230; }
.fba-d svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
.fba-d .halo { fill: #fff; opacity: 0.45; }
.fba-d .ln { fill: none; stroke: var(--tm); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fba-d .ln.wide { stroke-width: 4; } .fba-d .ln.thin { stroke-width: 2; opacity: 0.6; } .fba-d .ln.bg { stroke: var(--tb); }
.fba-d .fl { fill: var(--tm); } .fba-d .dk { fill: var(--ti); } .fba-d .dkf { fill: var(--ti); } .fba-d .pad { fill: var(--tb); stroke: var(--tm); stroke-width: 2.5; }
.fba-am { display: none; position: absolute; left: 8px; top: 7px; color: var(--ti); font-size: 11px; font-weight: 700; letter-spacing: 0.02em; line-height: 1.2; }
@container (min-width: 100px) { .fba-am { display: block; } }
@container (min-width: 170px) and (min-height: 90px) { .fba-am { left: 12px; top: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.85); font-size: 12px; } }
.evp-hero .fba-am { top: auto; bottom: 12px; left: 16px; }
/* C: Affisch */
.fba-c::before { content: ""; position: absolute; right: -20cqh; top: -26cqh; width: 78cqh; height: 78cqh; border-radius: 50%; background: var(--tm); }
.fba-c .aff { position: absolute; left: 7cqw; bottom: 5cqh; font-size: 16px; font-size: min(48cqh, calc(150cqw / var(--n)), 64px); line-height: 0.92; font-weight: 600; letter-spacing: -0.05em; color: var(--ti); white-space: nowrap; }
.fba-c .fba-org { top: 10px; bottom: auto; padding: 0; background: none; color: var(--ti); max-width: 60%; }
.evp-pad { padding: 30px clamp(22px, 5vw, 52px) 44px; }
.evp-past { margin: 0 0 22px; padding: 14px 18px; border-radius: 16px; background: var(--grey); font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--ink); }
.evp-past a { color: var(--sun-ink); font-weight: 500; white-space: nowrap; }
.evp-k { margin: 0; font-size: 15px; font-weight: 600; color: var(--sun-ink); }
.evp-k .st { color: var(--danger); }
.evp-title { margin: 8px 0 0; font-size: clamp(30px, 4.4vw, 46px); line-height: 1.06; font-weight: 600; letter-spacing: -0.04em; outline: none; overflow-wrap: anywhere; }
.evp-when { margin: 14px 0 0; font-size: clamp(18px, 1.8vw, 21px); line-height: 1.35; color: var(--ink-2); }
.evp-when strong { color: var(--ink); font-weight: 600; white-space: nowrap; }
.evp-place { margin: 2px 0 0; font-size: clamp(18px, 1.8vw, 21px); color: var(--ink-2); }
.evp-actions { margin-top: 28px; }
.evp-main {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 56px; padding: 0 22px; border: 0; border-radius: 16px;
  background: var(--ink); color: #fff; font-size: 17px; font-weight: 600; text-decoration: none; cursor: pointer;
  transition: background 200ms var(--ease), transform 150ms var(--ease);
}
.evp-main:hover { background: var(--ink-hover); }
.evp-main:active { transform: scale(0.985); }
.evp-main.wait, .evp-main.light { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.evp-main.wait:hover, .evp-main.light:hover { background: var(--ink); color: #fff; }
.evp-note { display: grid; place-items: center; min-height: 56px; margin: 0; border-radius: 16px; background: var(--grey); font-weight: 600; color: var(--ink-2); text-align: center; }
.evp-acts { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.act {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 76px; padding: 10px 6px;
  border: 0; border-radius: 16px; background: var(--grey); color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer;
  transition: background 200ms var(--ease), transform 150ms var(--ease);
}
.act:hover { background: var(--grey-2); }
.act:active { transform: scale(0.96); }
.act svg { width: 23px; height: 23px; }
.act[aria-pressed="true"] { color: var(--sun-ink); }
.act[aria-pressed="true"] svg.bm path { fill: var(--sun); stroke: var(--sun-ink); }
.act[aria-expanded="true"] { background: var(--grey-2); }
.evp-savemsg { margin: 8px 0 0; font-size: 14px; color: var(--ink-2); text-align: center; }
.evp-savemsg:empty { display: none; }
.evp-gcal { margin: 12px 0 0; text-align: center; font-size: 14px; }
.evp-gcal a { color: var(--sun-ink); text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; }
.evp-gcal a:hover { text-decoration: underline; }
.evp-sharebox { margin-top: 12px; padding: 18px; border-radius: 18px; background: var(--grey); animation: wk-in 280ms var(--ease-out) both; }
.evp-sharebox label { display: block; font-size: 13px; font-weight: 600; color: var(--ink-2); margin-bottom: 8px; }
.evp-sharerow { display: flex; gap: 8px; }
.evp-sharerow input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 0; border-radius: 12px; background: #fff; font-size: 15px; }
.evp-sharerow .btn-big { flex: none; min-height: 46px; padding: 0 16px; border: 0; border-radius: 12px; background: var(--ink); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; }
.evp-sharelinks { display: flex; gap: 18px; margin-top: 6px; }
.evp-sharelinks a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sun-ink); font-size: 15px; font-weight: 500; text-decoration: none; }
.evp-sharemsg { margin: 4px 0 0; font-size: 14px; color: var(--ok); }
.evp-sharemsg:empty { display: none; }
.evp-sec { margin-top: 40px; }
.evp-sec h2 { margin: 0 0 14px; font-size: 22px; font-weight: 600; letter-spacing: -0.025em; }
.spec { margin: 0; border-top: 1px solid var(--line); }
.spec > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 4px 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.spec dt { font-size: 15px; color: var(--ink-2); }
.spec dd { margin: 0; font-size: 16px; font-weight: 500; overflow-wrap: anywhere; }
.spec dd.free { color: var(--free-ink); }
.spec dd a { color: inherit; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
.spec dd a:hover { color: var(--sun-ink); text-decoration-color: currentColor; }
.evp-fmt { margin: 0 0 10px; font-size: 15px; font-weight: 600; color: var(--sun-ink); }
.evp-text { margin: 0; font-size: 17px; line-height: 1.55; }
.evp-list { margin: 0; padding: 0 0 0 20px; font-size: 17px; line-height: 1.55; }
.evp-list li + li { margin-top: 6px; }
.evp-muted { color: var(--ink-2); }
.evp-svnote { margin: 8px 0 0; font-size: 13px; }
.evp-map { height: 260px; margin-bottom: 16px; border-radius: 20px; overflow: hidden; background: var(--grey); }
.evp-maps { margin-top: 4px; }
.evp-nl { margin-top: 44px; padding: 34px clamp(20px, 4vw, 40px); border-radius: 24px; background: var(--grey); text-align: center; }
.evp-nl .nl-sun { width: 36px; height: 36px; margin-bottom: 14px; }
.evp-nl h2 { margin: 0; font-size: 26px; font-weight: 600; letter-spacing: -0.03em; line-height: 1.12; }
.evp-nl > p:not(.nl-note):not(.nl-msg) { margin: 8px auto 0; max-width: 28em; font-size: 16px; color: var(--ink-2); }
.evp-nl .nl-form { margin-top: 20px; }
.evp-nl .nl-field { background: #fff; }
.evp-sim { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.evp-sim a { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 16px; min-height: 84px; padding: 10px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.sim-im { width: 64px; height: 64px; border-radius: 14px; overflow: hidden; background: var(--grey-2); }
.sim-im img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sim-im.fb { background: var(--sky-1) var(--sun-svg) center / 28px 28px no-repeat; }
.sim-t { min-width: 0; font-size: 17px; font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; }
.sim-t small { display: block; margin-bottom: 2px; font-size: 13px; font-weight: 600; color: var(--sun-ink); letter-spacing: 0; }
.evp-sim .chev { color: var(--ink-3); }
.evp-sim a:hover .sim-t { text-decoration: underline; text-underline-offset: 3px; }
.evp-foot { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 24px; margin: 36px 0 0; }
.evp-missing { padding-top: 72px; text-align: center; }
.evp-missing .evp-text { margin: 12px 0 24px; color: var(--ink-2); }
.tag.sw-note { font-size: 13px; color: var(--ink-3); }
.evp-return {
  position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 45; transform: translateX(-50%);
  display: flex; align-items: center; max-width: calc(100vw - 24px); padding: 0 4px 0 6px; border-radius: 999px;
  background: rgba(27, 34, 48, 0.92); color: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); animation: toast-in 320ms var(--ease-out) both;
}
.evp-return button { border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.evp-return-go { min-height: 48px; padding: 0 8px 0 14px; font-size: 15px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evp-return-x { flex: none; width: 44px; min-height: 48px; font-size: 22px; line-height: 1; opacity: 0.75; }

/* ---------- Tipsformuläret ---------- */
dialog.tip-dlg { width: min(560px, calc(100% - 24px)); max-height: calc(100% - 24px); padding: 0; border: 0; border-radius: 28px; background: #fff; color: var(--ink); box-shadow: 0 40px 120px rgba(0, 0, 0, 0.3); }
dialog.tip-dlg[open] { animation: modal-in 380ms var(--ease-out) both; }
dialog.tip-dlg::backdrop { background: rgba(12, 15, 22, 0.42); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.tip-form, .tip-done { padding: 30px clamp(22px, 5vw, 40px) 30px; }
.tip-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.tip-head h2, .tip-done h2 { margin: 0; font-size: 30px; font-weight: 600; line-height: 1.1; letter-spacing: -0.035em; }
.tip-head .evp-close { flex: none; background: var(--grey); box-shadow: none; margin: -6px -10px 0 0; }
.tip-lede { margin: 10px 0 22px; color: var(--ink-2); }
.tip-f { display: block; margin-bottom: 14px; font-size: 14px; font-weight: 600; }
.tip-f span { font-weight: 400; color: var(--ink-2); }
.tip-f input, .tip-f textarea { display: block; width: 100%; margin-top: 6px; padding: 13px 16px; border: 0; border-radius: 14px; background: var(--grey); font-size: 17px; font-weight: 400; box-shadow: inset 0 0 0 1px rgba(27, 34, 48, 0.06); transition: background 200ms var(--ease), box-shadow 200ms var(--ease); }
.tip-f input:focus, .tip-f textarea:focus { outline: none; background: #fff; box-shadow: inset 0 0 0 2px var(--ink); }
.tip-f textarea { resize: vertical; min-height: 96px; }
.tip-f small { display: block; margin-top: 4px; text-align: right; font-weight: 400; color: var(--ink-2); }
.tip-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tip-err { margin: 0 0 10px; color: var(--danger); font-size: 15px; font-weight: 600; }
.tip-err:empty { display: none; }
.tip-send { width: 100%; min-height: 54px; border: 0; border-radius: 16px; background: var(--ink); color: #fff; font-size: 17px; font-weight: 600; cursor: pointer; }
.tip-send:hover { background: var(--ink-hover); }
.tip-small { margin: 12px 0 0; text-align: center; font-size: 13px; color: var(--ink-2); }
.tip-done { text-align: center; }
.tip-done p { color: var(--ink-2); }
.tip-done .btn-big { min-height: 48px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; }

/* ---------- Sidor som byggs på servern (ämnessidor, veckosidor, nyhetsbrevet, Om, Integritet, Dela) ---------- */
/* Samma sidhuvud (.gn) och sidfot (.ft) som startsidan, byggda i lib/site-chrome.js. Toppmenyn ligger fast ovanpå. */
body > main { padding-top: calc(var(--nav-h) + env(safe-area-inset-top, 0px)); }
/* Sidan finns inte (404) */
.nf { padding-bottom: clamp(72px, 10vw, 128px); }
.nf-sun { display: block; width: 56px; height: 56px; margin: 0 auto 22px; background: var(--sun-svg) center / contain no-repeat; }
.nf-go { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 22px; margin-top: 28px !important; }
.nf-en { font-size: 15px !important; }
.nf-en a { color: var(--sun-ink); }

/* QR-besökare: stor nyhetsbrevsruta mitt på skärmen */
.qrpop-bg { position: fixed; inset: 0; z-index: 96; background: rgba(12, 15, 22, 0.42); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: fade-in 300ms var(--ease) both; }
.qrpop { position: fixed; left: 50%; top: 50%; z-index: 97; width: min(460px, calc(100% - 32px)); padding: 40px 28px 24px; border-radius: 28px; background: #fff; text-align: center; box-shadow: 0 40px 120px rgba(0, 0, 0, 0.3); transform: translate(-50%, -50%); animation: qr-in 420ms var(--ease-out) both; }
@keyframes qr-in { from { opacity: 0; transform: translate(-50%, -46%) scale(0.97); } to { opacity: 1; transform: translate(-50%, -50%); } }
.qrpop-x { position: absolute; top: 14px; right: 14px; background: var(--grey); box-shadow: none; }
.qrpop .nl-sun { width: 44px; height: 44px; margin-bottom: 16px; }
.qrpop h2 { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.12; letter-spacing: -0.03em; }
.qrpop > p:not(.nl-msg) { margin: 10px 0 0; color: var(--ink-2); }
.qrpop .nl-form { margin-top: 22px; }
.qrpop-no { margin-top: 10px; font-size: 15px; color: var(--ink-2); }
.qrpop .nl-ex { margin-top: 20px; padding: 16px 18px 4px; }
.qrpop .nl-ex-s { display: none; }
.qrpop { max-height: calc(100% - 24px); overflow-y: auto; }

/* ---------- Småsaker ---------- */
.toast {
  position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 95; transform: translateX(-50%);
  max-width: calc(100% - 32px); padding: 13px 22px; border-radius: 999px;
  background: rgba(27, 34, 48, 0.92); color: #fff; font-size: 15px; font-weight: 500;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
  animation: toast-in 320ms var(--ease-out) both;
}
@keyframes toast-in { from { opacity: 0; transform: translateX(-50%) translateY(10px); } to { opacity: 1; transform: translateX(-50%); } }
.lang-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: max(14px, env(safe-area-inset-bottom)); z-index: 60; display: flex; align-items: center; gap: 8px; max-width: calc(100vw - 24px); padding: 4px 4px 4px 18px; border-radius: 999px; background: #fff; color: var(--ink); font-size: 15px; box-shadow: 0 0 0 1px rgba(27, 34, 48, 0.06), 0 12px 36px rgba(27, 34, 48, 0.18); }
.lang-bar span { color: var(--ink-2); white-space: nowrap; }
.lang-bar a { font-weight: 600; color: var(--ink); white-space: nowrap; }
.lang-bar button { flex: none; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; font-size: 20px; line-height: 1; cursor: pointer; color: var(--ink-2); }
.lang-bar button:hover { background: var(--grey); }
.tag { font-size: inherit; }
.js #app > .ssr { display: none; }
.ssr { max-width: 760px; margin: 0 auto; padding: 32px 16px 64px; font-family: var(--font); }
.ssr h1 { font-size: 32px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; margin: 12px 0; }
.ssr h2 { font-size: 22px; font-weight: 600; margin: 32px 0 12px; }
.ssr h3 { font-size: 18px; font-weight: 600; margin: 0 0 4px; }
.ssr ol, .ssr ul { list-style: none; padding: 0; margin: 0; }
.ssr li { padding: 14px 0; border-top: 1px solid var(--line); }
.ssr p { margin: 4px 0; color: var(--ink-2); }

/* ---------- Admin (bara för Mille i claude.ai) ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--ink); background: #fff; color: var(--ink); font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; }
.btn:hover { background: var(--ink); color: #fff; }
.btn-solid { background: var(--ink); color: #fff; }
.btn-solid:hover { opacity: 0.88; }
.btn-quiet { border-color: transparent; padding: 0 12px; background: transparent; }
.btn-quiet:hover { background: var(--paper-2); color: var(--ink); }
.btn[disabled] { opacity: 0.5; cursor: not-allowed; }
dialog:not(.tip-dlg):not(.acct-dlg) { width: min(680px, calc(100% - 24px)); max-height: calc(100% - 24px); padding: 0; border: 0; border-radius: 16px; background: var(--surface); color: var(--ink); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.35); }
dialog:not(.tip-dlg):not(.acct-dlg)::backdrop { background: rgba(8, 10, 12, 0.6); }
.dlg-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 22px 8px; }
.dlg-head h2 { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -0.02em; }
.dlg-body { padding: 8px 22px 8px; }
.dlg-foot { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 14px 22px 18px; background: var(--surface); border-top: 1px solid var(--line); }
.dlg-note { margin: 0 0 12px; color: var(--ink-2); font-size: 14px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 14px; }
.field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.field label { font-size: 14px; font-weight: 500; }
.field .hint { font-size: 13px; color: var(--ink-2); }
.field input[type="text"], .field input[type="url"], .field input[type="date"], .field input[type="time"], .field select, .field textarea { width: 100%; min-height: 42px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--field); }
.field textarea { min-height: 84px; resize: vertical; }
.field.bad input, .field.bad select, .field.bad textarea { border-color: var(--danger); }
.err { color: var(--danger); font-size: 13px; font-weight: 600; }
.checks { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-bottom: 14px; }
.section-title { margin: 18px 0 10px; font-size: 17px; font-weight: 600; }
.tools { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.steps { margin: 0 0 14px; padding-left: 22px; font-size: 15px; }
.imp-summary { margin: 0 0 10px; font-size: 15px; }
.imp-list { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; margin-bottom: 16px; }
.imp-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 10px 12px; border-top: 1px solid var(--line); cursor: pointer; }
.imp-row:first-child { border-top: 0; }
.imp-row input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--ink); }
.imp-row.off { cursor: default; opacity: 0.7; }
.imp-main { min-width: 0; }
.imp-main strong { display: block; font-weight: 600; overflow-wrap: anywhere; }
.imp-main span { display: block; font-size: 13px; color: var(--ink-2); }
.pill { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border-radius: 999px; font-size: 12px; font-weight: 600; border: 1px solid var(--line); white-space: nowrap; }
.pill.new { border-color: var(--ok); color: var(--ok); }
.pill.upd { border-color: var(--warn); color: var(--warn); }
.pill.del, .pill.bad { border-color: var(--danger); color: var(--danger); }
.row-admin { display: flex; gap: 6px; margin-top: 12px; grid-column: 2; }
.row-admin button { min-height: 34px; padding: 0 12px; border-radius: 999px; cursor: pointer; border: 1.5px solid var(--line); background: #fff; font-size: 13px; font-weight: 600; }
.row-admin button.del { color: var(--danger); }
.admin-entry { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 20; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--ink); background: var(--surface); color: var(--ink); font-size: 14px; font-weight: 500; cursor: pointer; }
.adminbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--surface); color: var(--ink); border-top: 1px solid var(--ink); }
.adminbar-inner { max-width: 1120px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.adminbar .who { margin-right: auto; font-size: 15px; font-weight: 600; }
.adminbar .who span { display: block; font-size: 13px; font-weight: 400; color: var(--ink-2); }
.pending { color: var(--warn); }

/* ---------- Skärmbredder ---------- */
@media (max-width: 1060px) {
  .wk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wk-grid > :nth-child(n+5) { display: none; }
}
@media (max-width: 760px) {
  .do-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 36px; }
  .do-tile { grid-column: span 1; min-height: 210px; padding: 20px; border-radius: 24px; }
  .do-bygga { grid-column: span 2; min-height: 300px; }
  .do-bygga .do-pic { width: 100%; }
  .do-lara, .do-folk, .do-hacka { min-height: 230px; }
  .do-w { font-size: clamp(30px, 8vw, 40px); }
  .do-d { font-size: 15px; }
  .do-tile:not(.do-bygga):not(.do-resa) .do-d { display: none; }
  .do-resa { grid-column: span 2; min-height: 340px; }
  .do-tile.do-resa { display: flex; align-items: stretch; }
  .do-resa .do-pic { margin-top: 20px; }
  .do-n { font-size: 15px; margin-top: 2px; }
  .do-pic { border-radius: 12px; }
  .do-top + .do-pic { margin-top: 16px; }
  .do-hacka::after { width: 150px; height: 150px; right: -44px; bottom: -44px; }
  .do-pitcha .do-w { font-size: clamp(40px, 11vw, 52px); }
  .do-w.long, .do-pitcha .do-w.long { font-size: clamp(24px, 6.6vw, 32px); }
  .do-bygga .do-w.long { font-size: clamp(30px, 8vw, 40px); }
  .about-why { grid-template-columns: 1fr; }
  .ft-cols { grid-template-columns: 1fr; gap: 0; padding-top: 8px; }
  .ft-col { border-bottom: 1px solid var(--line-2); }
  .ft-col h3 { margin: 0; }
  .ft-col h3 .ft-h { display: none; }
  .ft-tog { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: 0; border: 0; background: none; font-size: 15px; font-weight: 600; color: var(--ink); cursor: pointer; text-align: left; }
  .ft-tog svg { width: 12px; height: 12px; transition: transform 280ms var(--ease-out); }
  .ft-tog[aria-expanded="true"] svg { transform: rotate(180deg); }
  .ft-col ul { display: none; padding: 0 0 12px; }
  .ft-col.open ul { display: block; animation: wk-in 280ms var(--ease-out) both; }
  .ft-col a { min-height: 44px; font-size: 15px; }
  .ft-cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  .wk-grid.n1, .wk-grid.n2 { grid-template-columns: 1fr; }
  .sec { padding-top: 64px; padding-bottom: 64px; }
  .hero { padding-bottom: 44px; }
  .gal { margin-top: 40px; }
  .gal-rail { padding-bottom: 18px; }
  .wk-grid { grid-template-columns: 1fr; gap: 10px; }
  .wk-grid > :nth-child(n+4) { display: none; }
  .wk-card { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; gap: 0 14px; padding: 10px; border-radius: 20px; }
  .wk-im { width: 84px; height: 84px; aspect-ratio: auto; border-radius: 13px; }
  .wk-im.fb { background-size: 40px 40px; }
  .wk-body { padding: 0; gap: 3px; }
  .wk-t { font-size: 17px; -webkit-line-clamp: 2; }
  .wk-m { font-size: 14px; }
  .seg button { font-size: 14px; padding: 0 4px; }
  .seg { margin-top: 24px; }
  .wk-panel { margin-top: 20px; }
  .wk-foot { margin-top: 18px; }
  .sec-head p { margin-top: 8px; }
  .gal-head { margin-bottom: 14px; }
  .gal-head p { display: none; }
  .hero { padding-top: calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 30px); }
  .hero-k { margin-bottom: 12px; }
  .hero-sub { margin-top: 16px; }
  .hero-cta { margin-top: 24px; }
  .tile { height: 392px; }
  .tile-t { -webkit-line-clamp: 3; }
  .wk-foot .note { display: none; }
  .nl-sun { width: 48px; height: 48px; margin-bottom: 18px; }
  .tile { border-radius: 24px; }
  .tile-txt { top: 22px; left: 22px; right: 22px; }
  .tile-plus { right: 22px; }
  .chips, .lt .tabs, .lt .doing { align-self: stretch; margin: 0 calc(-1 * var(--gutter)); padding: 2px var(--gutter); max-width: none; }
  .evp { padding: 0; align-items: flex-end; }
  .evp-panel { width: 100%; height: calc(100% - 10px - env(safe-area-inset-top, 0px)); max-height: none; border-radius: 18px 18px 0 0; animation-name: sheet-in; }
  .evp.is-closing .evp-panel { animation-name: sheet-out; }
  .evp-bar { top: 12px; right: 12px; }
  .evp-nav { top: 12px; left: 12px; }
  .spec > div { grid-template-columns: 96px minmax(0, 1fr); gap: 4px 14px; }
  .arc-row { grid-template-columns: 56px minmax(0, 1fr); }
  .arc-link { grid-column: 2; }
  dialog.tip-dlg { width: 100%; max-width: 100%; height: 100%; max-height: 100%; border-radius: 0; }
  .nl-field { height: 56px; }
  .nl-go { padding: 0 16px; font-size: 15px; }
  .hero-cta { flex-direction: column; gap: 6px; }
}
/* Listan: mellanstora skärmar och mobil */
@media (max-width: 1100px) {
  .row { grid-template-columns: 62px 104px minmax(0, 1fr) 44px; }
  .r-th { width: 104px; height: 66px; }
  .r-price { display: none; }
  .r-mob { display: block; }
  .r-sub { display: none; }
}
@media (max-width: 1023px) {
  .list-sec { --mbar-h: 62px; }
  .shell { display: block; margin-top: 0; }
  .mbar {
    position: sticky; top: var(--nav-h); z-index: 20; display: flex; align-items: center; gap: 8px; height: var(--mbar-h);
    margin: 28px calc(-1 * var(--gutter)) 0; padding: 0 var(--gutter);
    background: rgba(255, 255, 255, 0.88); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid rgba(27, 34, 48, 0.07);
  }
  .mbar-filter {
    flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px 0 14px; border: 0; border-radius: 999px;
    background: var(--ink); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer;
  }
  .mbar-filter svg { width: 18px; height: 18px; }
  .mbar-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--sun); color: var(--ink); font-size: 12px; font-weight: 700; }
  .mbar-seg { display: flex; gap: 6px; min-width: 0; overflow-x: auto; scrollbar-width: none; padding: 2px; margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); }
  .mbar-seg::-webkit-scrollbar { display: none; }
  .mbar-seg .chip { min-height: 40px; padding: 0 15px; font-size: 14px; }
  .mbar-seg .chip:disabled { color: var(--ink-3); }
  .main { padding-top: 20px; }
  .side {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 92; display: flex; flex-direction: column;
    max-height: 88vh; padding: 0; overflow: hidden; background: #fff; border-radius: 26px 26px 0 0;
    box-shadow: 0 -12px 50px rgba(15, 18, 26, 0.18);
    transform: translateY(104%); visibility: hidden; transition: transform 380ms var(--ease-out), visibility 0s linear 380ms;
  }
  .side.open { transform: none; visibility: visible; transition: transform 420ms var(--ease-out), visibility 0s; }
  .sheet-head { position: relative; display: flex; align-items: center; gap: 8px; padding: 22px 12px 10px 22px; }
  .sheet-head h2 { margin: 0 auto 0 0; font-size: 24px; font-weight: 600; letter-spacing: -0.03em; }
  .sheet-head .link-btn { color: var(--sun-ink); font-size: 15px; padding: 0 8px; }
  .sheet-x { background: var(--grey); }
  .grab { display: block; position: absolute; top: 8px; left: 50%; width: 38px; height: 5px; border-radius: 3px; background: #D5D5DA; transform: translateX(-50%); }
  .side-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 16px 20px; }
  .s-when .s-list { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .s-when .f-row { width: auto; min-height: 44px; padding: 0 14px; background: var(--grey); border-radius: 999px; }
  .s-when .f-row .f-l { flex: none; }
  .s-typ .s-list, .s-amne .s-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .s-typ .f-row, .s-amne .f-row { min-height: 52px; background: var(--grey); border-radius: 15px; padding: 0 12px; }
  .s-typ .f-row .f-l, .s-amne .f-row .f-l { white-space: normal; line-height: 1.2; }
  .s-typ .f-row[aria-pressed="true"], .s-amne .f-row[aria-pressed="true"], .s-when .f-row[aria-pressed="true"] { background: var(--ink); }
  .s-typ .f-row:disabled, .s-amne .f-row:disabled, .s-when .f-row:disabled { background: var(--grey); opacity: 0.6; }
  .s-h { margin-left: 4px; }
  .sheet-foot { display: block; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); }
  .sheet-foot .topic-go { margin: 0; }
  .shade { display: block; position: fixed; inset: 0; z-index: 91; background: rgba(12, 15, 22, 0.38); opacity: 0; visibility: hidden; transition: opacity 300ms var(--ease), visibility 0s linear 300ms; }
  .shade.on { opacity: 1; visibility: visible; transition: opacity 300ms var(--ease), visibility 0s; }
  html.sheet-lock, html.sheet-lock body { overflow: hidden; }
}
/* Snabbchipsen syns också på dator (utan Filter-knappen, sidopanelen syns ju bredvid). Arkivets månadsrad bara på mobil. */
@media (min-width: 1024px) {
  .mbar { display: flex; align-items: center; gap: 8px; margin: 28px 0 -8px; }
  .mbar-filter, .mbar.mbar-arc { display: none; }
  .mbar-seg { display: flex; flex-wrap: wrap; gap: 6px; }
  .mbar-seg .chip { min-height: 38px; padding: 0 15px; font-size: 14px; }
}
.mbar-seg .chip[hidden] { display: none; }
/* Sökförslag: kategorier med antal ("Hackathon · 7 event") under rutan. */
.q-sug { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; display: flex; flex-direction: column; padding: 6px; border-radius: 18px; background: #fff; box-shadow: 0 12px 40px rgba(15, 18, 26, 0.16), 0 0 0 1px var(--line); }
.q-sug[hidden] { display: none; }
.q-cat { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 12px; background: transparent; font: 600 15px var(--font); color: var(--ink); text-align: left; cursor: pointer; }
.q-cat span { font-weight: 500; color: var(--ink-2); }
.q-cat:hover, .q-cat:focus-visible { background: var(--grey); }
/* Noll träffar: sök på ett av orden, närmaste kategori, de närmaste eventen. */
.zero-try { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 18px 0 0; }
.zero-h { margin: 28px 0 4px; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
.zero-nl { margin: 18px 0 0; text-align: center; }
.zero-nl a { color: var(--sun-ink); font-weight: 600; text-decoration: none; }
@media (max-width: 640px) {
  .row { grid-template-columns: 72px minmax(0, 1fr) 44px; grid-template-areas: "th time act" "th main act"; column-gap: 14px; row-gap: 2px; min-height: 0; padding: 14px 10px; margin: 0 -10px; align-items: start; }
  .r-th { grid-area: th; width: 72px; height: 72px; border-radius: 14px; }
  .r-time { grid-area: time; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 0 6px; padding: 0; }
  .r-tt { font-size: 14px; }
  .r-t2 { font-size: 14px; color: var(--sun-ink); margin-left: -6px; }
  .r-sig { margin: 0 0 0 4px; }
  .r-main { grid-area: main; }
  .r-act { grid-area: act; align-self: center; }
  .r-t { font-size: 16px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .r-bd { display: flex; margin: 5px 0 0; }
  .r-sub { display: none; }
  .r-book { display: none; }
  .bdg.en { display: none; }
  .r-bd:not(:has(.bdg:not(.en))) { display: none; }
  .row + .row::before { left: 10px; right: 10px; }
  .day-h { padding-top: 14px; }
  .day-m { font-size: 20px; }
  .day-s { font-size: 14px; }
}
@keyframes sheet-in { from { transform: translateY(100%); } to { transform: none; } }
@keyframes sheet-out { from { transform: none; } to { transform: translateY(100%); } }
@media (max-width: 380px) {
  .nl-field { flex-wrap: wrap; height: auto; padding: 6px; }
  .nl-field input { height: 46px; padding-left: 12px; }
  .nl-go { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 1ms !important; animation-delay: 0ms !important; transition-duration: 1ms !important; }
}
/* ---------- Nyhetsbrevsrutan, A/B-test omgång 2 (lib/nl-ab.js) ----------
   Stil B: ljus ruta med exemplet ur brevet (reglerna .nl-b ovan). Stil C: mörk ruta med antalet kommande event per typ.
   Stil D: orange ruta med senaste brevet som en rad i inkorgen. Färgerna byts med variablerna, så att rutornas egna regler gäller. */
.nl-c { --ink: #FFFFFF; --ink-2: var(--on-ink-2); --grey: rgba(255, 255, 255, 0.1); --ok: #8EE0A8; --danger: #FFB4A3; color: #fff; }
.nl-in.nl-c, .nl-in.nl-d { max-width: 860px; padding: clamp(40px, 6vw, 76px) clamp(22px, 5vw, 64px); border-radius: 32px; }
.nl-in.nl-c, .nl-mini.nl-c, .evp-nl.nl-c, .qrpop.nl-c { background: #1B2230; }
.nl-c .nl-field { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18); }
.nl-c .nl-field:focus-within { background: rgba(255, 255, 255, 0.16); box-shadow: inset 0 0 0 2px #fff; }
.nl-c .nl-field input { color: #fff; }
.nl-c .nl-go { background: var(--sun); color: #1B2230; }
.nl-c .nl-go:hover { background: var(--sun-2); }
.nl-c a { color: inherit; }
.nl-c .bkpop-x:hover, .nl-c .qrpop-x { background: rgba(255, 255, 255, 0.12); color: #fff; }
.nl-cnt { max-width: 520px; margin: 26px auto 0; }
.nl-cnt-n { margin: 0; font-size: 17px; line-height: 1.35; color: var(--ink-2); }
.nl-cnt-n b { display: block; margin-bottom: 4px; font-size: clamp(52px, 8vw, 84px); font-weight: 600; line-height: 1; letter-spacing: -0.05em; color: var(--sun); }
.nl-cnt ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.nl-cnt li { padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14); font-size: 15px; }
.nl-cnt li b { margin-left: 4px; color: var(--sun); }
.nl-d { --ink-2: #1B2230; --grey: #FFFFFF; --ok: #1B2230; --danger: #4A1200; }
.nl-in.nl-d, .nl-mini.nl-d, .evp-nl.nl-d, .qrpop.nl-d { background: var(--sun); color: #1B2230; }
.nl-d .nl-sun { display: none; }
.nl-d .nl-field { box-shadow: none; }
.nl-d .nl-msg { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.nl-d .bkpop-x:hover, .nl-d .qrpop-x { background: rgba(255, 255, 255, 0.4); color: #1B2230; }
.nl-in.nl-d h2 { font-size: clamp(38px, 6vw, 72px); letter-spacing: -0.05em; }
.nl-inbox { display: flex; align-items: flex-start; gap: 12px; max-width: 480px; margin: 26px auto 0; padding: 14px 16px; border-radius: 16px; background: #fff; color: #1B2230; text-align: left; text-decoration: none; box-shadow: 0 14px 34px rgba(27, 34, 48, 0.2); transform: rotate(-1.2deg); transition: transform 200ms var(--ease); }
.nl-inbox:hover { transform: rotate(0); }
.nl-inbox-av { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--paper) var(--sun-svg) center / 26px no-repeat; }
.nl-inbox-t { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.nl-inbox-top { display: flex; justify-content: space-between; gap: 8px; font-size: 15px; }
.nl-inbox-top time { flex: none; font-size: 13px; color: #5B6170; }
.nl-inbox-s { overflow: hidden; font-size: 15px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.nl-inbox-x { display: -webkit-box; overflow: hidden; font-size: 14px; line-height: 1.35; color: #5B6170; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
