/* Kudeaketa · Isidro Larrañaga Musika Eskola
   Turkesa (logoa) nabigaziorako, arrosa begiratu beharrekorako; gainerakoa lasai. */

@font-face { font-family: "Instrument Sans"; font-weight: 400; font-display: swap; src: url(../fonts/instrument-sans-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 500; font-display: swap; src: url(../fonts/instrument-sans-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 600; font-display: swap; src: url(../fonts/instrument-sans-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 700; font-display: swap; src: url(../fonts/instrument-sans-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-display: swap; src: url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 500; font-display: swap; src: url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2"); }

:root {
  --bg: #f3f5f4;
  --panel: #ffffff;
  --ink: #1a1f1e;
  --muted: #5b6664;
  --line: #dde3e1;
  --line-strong: #c3ccc9;
  --accent: #127f86;
  --accent-ink: #ffffff;
  --accent-soft: #d9eff0;
  --rail: #0d5a5f;
  --rail-ink: #e6f4f4;
  --rail-muted: #a9d3d5;
  --pink: #c8255f;
  --pink-soft: #fbe3ec;
  --warn: #8f5d00;
  --warn-soft: #fbefd6;
  --ok: #2f7a3a;
  --ok-soft: #e1f1e3;
  --free: #3f7f45;
  --band: #edf1ef;
  --c-hari: #d7ecee;   --c-hari-ink: #0d5e64;
  --c-tekla: #e6e2f5;  --c-tekla-ink: #4a3f8a;
  --c-perk: #f6e1d3;   --c-perk-ink: #8a4314;
  --c-haize: #e1ebd7;  --c-haize-ink: #3d6420;
  --c-ahots: #f7dfe8;  --c-ahots-ink: #93204e;
  --c-triki: #f3ecc8;  --c-triki-ink: #6d5a00;
  --c-talde: #dfe5ee;  --c-talde-ink: #2f4a72;
  --font-ui: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --r: 10px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #121615; --panel: #1a1f1e; --ink: #e8edeb; --muted: #9aa6a3; --line: #2b3331; --line-strong: #3b4542;
    --accent: #5cc3c9; --accent-ink: #0b1f20; --accent-soft: #173d40; --rail: #0b2e30; --rail-ink: #dff1f1; --rail-muted: #8fbfc2;
    --pink: #f07aa3; --pink-soft: #43172a; --warn: #e6b45c; --warn-soft: #3b2c10; --ok: #8cc992; --ok-soft: #1d3320;
    --free: #8cc992; --band: #1f2624;
    --c-hari: #153a3d; --c-hari-ink: #9fe0e4; --c-tekla: #2a2647; --c-tekla-ink: #c9c0f7;
    --c-perk: #41281a; --c-perk-ink: #f3c39f; --c-haize: #26341c; --c-haize-ink: #bddb9f;
    --c-ahots: #431d2d; --c-ahots-ink: #f6b4cd; --c-triki: #3a3412; --c-triki-ink: #e9d97a;
    --c-talde: #1f2a3b; --c-talde-ink: #b6c9e9;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #121615; --panel: #1a1f1e; --ink: #e8edeb; --muted: #9aa6a3; --line: #2b3331; --line-strong: #3b4542;
  --accent: #5cc3c9; --accent-ink: #0b1f20; --accent-soft: #173d40; --rail: #0b2e30; --rail-ink: #dff1f1; --rail-muted: #8fbfc2;
  --pink: #f07aa3; --pink-soft: #43172a; --warn: #e6b45c; --warn-soft: #3b2c10; --ok: #8cc992; --ok-soft: #1d3320;
  --free: #8cc992; --band: #1f2624;
  --c-hari: #153a3d; --c-hari-ink: #9fe0e4; --c-tekla: #2a2647; --c-tekla-ink: #c9c0f7;
  --c-perk: #41281a; --c-perk-ink: #f3c39f; --c-haize: #26341c; --c-haize-ink: #bddb9f;
  --c-ahots: #431d2d; --c-ahots-ink: #f6b4cd; --c-triki: #3a3412; --c-triki-ink: #e9d97a;
  --c-talde: #1f2a3b; --c-talde-ink: #b6c9e9;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font-ui); font-size: 14px; line-height: 1.45; font-variant-numeric: tabular-nums; }
[hidden] { display: none !important; }
a { color: var(--accent); }
h1, h2, h3 { text-wrap: balance; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.mono { font-family: var(--font-mono); font-size: 13px; }
.isila { color: var(--muted); }

.kargatzen { padding: 40px 24px; color: var(--muted); }

/* ---- botoiak eta formularioak --------------------------------------- */
.botoia { font: inherit; font-weight: 600; border-radius: 8px; padding: 8px 14px; border: 1px solid var(--line-strong); background: var(--panel); color: var(--ink); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.botoia:hover { border-color: var(--accent); }
.botoia.nagusia { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.botoia.nagusia:hover { filter: brightness(1.08); }
.botoia.arina { background: transparent; border-color: transparent; }
.botoia.arriskua { color: var(--pink); }
.botoia:disabled { opacity: .55; cursor: default; }

input, select, textarea { font: inherit; color: var(--ink); background: var(--panel); border: 1px solid var(--line-strong); border-radius: 8px; padding: 7px 10px; min-width: 0; }
textarea { resize: vertical; min-height: 80px; }
input:disabled, select:disabled, textarea:disabled { background: var(--band); color: var(--muted); }
.errorea { color: var(--pink); margin: 0; }

/* ---- saioa hasi ----------------------------------------------------- */
.sartu { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; background: var(--rail); }
.sartu-txartela { width: min(380px, 100%); background: var(--panel); border-radius: 14px; padding: 28px 24px; display: grid; gap: 14px; }
.sartu-txartela h1 { margin: 0 0 4px; font-size: 30px; letter-spacing: -0.02em; }
.sartu-txartela label { display: grid; gap: 4px; font-weight: 600; }
.sartu-txartela .botoia { justify-content: center; padding: 10px; margin-top: 4px; }
.marka-txikia { margin: 0; color: var(--accent); font-weight: 600; line-height: 1.2; }
.bikoitza-altan { display: grid; gap: 8px; }
.bikoitza-altan p, .bikoitza-altan ol { margin: 0; }
.bikoitza-altan ol { padding-left: 20px; display: grid; gap: 4px; }
.bikoitza-qr { justify-self: center; width: 200px; height: 200px; background: #fff; padding: 8px; border-radius: 8px; border: 1px solid var(--line); }
.sartu-txartela code { word-break: break-all; }
.sartu-txartela .kodea { font-family: var(--font-mono); font-size: 22px; letter-spacing: .3em; text-align: center; }
.sartu-txartela .txikia { font-size: 13px; margin: 0; }
.proba-oharra { margin: 0; padding: 8px 10px; border-radius: 8px; background: var(--pink-soft); color: var(--pink); font-weight: 600; font-size: 13px; }

/* ---- egitura: nabigazio-zutabea + edukia ---------------------------- */
.app { display: grid; grid-template-columns: 208px minmax(0, 1fr); min-height: 100vh; }
.rail { background: var(--rail); color: var(--rail-ink); display: flex; flex-direction: column; gap: 18px; padding: 22px 14px 18px; position: sticky; top: 0; height: 100vh; }
.marka { color: var(--rail-ink); text-decoration: none; display: grid; line-height: 1.15; padding: 0 8px; }
.marka b { font-size: 17px; letter-spacing: -0.01em; }
.marka span { color: var(--rail-muted); font-weight: 500; }
.proba-txapa { align-self: flex-start; margin-left: 8px; background: var(--pink); color: #fff; font-weight: 700; font-size: 12px; padding: 2px 9px; border-radius: 999px; }
.nabigazioa { display: grid; gap: 2px; }
.nabigazioa a { color: var(--rail-ink); text-decoration: none; font-size: 15px; font-weight: 600; padding: 9px 10px; border-radius: 8px; }
.nabigazioa a:hover { background: rgba(255,255,255,.08); }
.nabigazioa a[aria-current="page"] { background: var(--rail-ink); color: var(--rail); }
.erabiltzailea { margin-top: auto; display: grid; gap: 6px; padding: 0 8px; color: var(--rail-muted); font-size: 13px; }
.erabiltzailea .botoia { color: var(--rail-ink); justify-self: start; padding-inline: 0; }
.erregistro-esteka { color: var(--rail-muted); font-size: 13px; text-decoration: none; }
.erregistro-esteka:hover, .erregistro-esteka[aria-current="page"] { color: var(--rail-ink); text-decoration: underline; }
.erregistroa tbody tr { cursor: default; }
.erregistroa .aldaketak { max-width: 520px; }
.erregistroa .aldaketa { display: block; overflow-wrap: anywhere; }
.edukia { padding: 24px max(16px, 2.5vw) 96px; min-width: 0; outline: none; }
.edukia > * { max-width: 1320px; }

/* ---- orri-burua eta tresna-barra ------------------------------------ */
.orri-burua { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 20px; margin-bottom: 16px; }
.orri-burua h1 { margin: 0; font-size: 26px; letter-spacing: -0.015em; line-height: 1.15; }
.orri-burua p { margin: 4px 0 0; color: var(--muted); }
.orri-burua .ekintzak { display: flex; gap: 8px; flex-wrap: wrap; }
.atzera { display: inline-block; margin-bottom: 8px; color: var(--muted); text-decoration: none; font-weight: 600; }
.atzera:hover { color: var(--accent); }
.tresnak { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 12px; }
.tresnak input[type="search"] { width: 280px; max-width: 100%; }
.iragazkiak { display: flex; flex-wrap: wrap; gap: 6px; }
.iragazkiak button { font: inherit; font-size: 13px; font-weight: 600; border: 1px solid var(--line-strong); background: var(--panel); color: var(--muted); border-radius: 999px; padding: 4px 11px; cursor: pointer; }
.iragazkiak button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--panel); }
.iragazkiak b { font-weight: 500; opacity: .8; margin-left: 2px; }

/* ---- zerrendak ------------------------------------------------------ */
.taula-kutxa { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); overflow: auto; }
table.zerrenda { width: 100%; border-collapse: collapse; }
.zerrenda th { text-align: left; font-size: 12.5px; font-weight: 600; color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: var(--panel); white-space: nowrap; }
.zerrenda td { padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.zerrenda tr:last-child td { border-bottom: 0; }
.zerrenda tbody tr { cursor: pointer; }
.zerrenda tbody tr:hover td { background: var(--band); }
.zerrenda td a.izena { color: var(--ink); font-weight: 600; text-decoration: none; }
.zerrenda td a.izena:hover { color: var(--accent); text-decoration: underline; }
.zerrenda .txikia { color: var(--muted); font-size: 13px; }
.hutsik { padding: 28px 16px; color: var(--muted); }
.kopurua { color: var(--muted); font-size: 13px; margin: 8px 2px 0; }

.pill { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--band); color: var(--muted); white-space: nowrap; }
.pill.ok { background: var(--ok-soft); color: var(--ok); }
.pill.alert { background: var(--pink-soft); color: var(--pink); }
.pill.warn { background: var(--warn-soft); color: var(--warn); }
.pill.accent { background: var(--accent-soft); color: var(--accent); }
.pillak { display: flex; flex-wrap: wrap; gap: 4px; }

/* ---- fitxak --------------------------------------------------------- */
.fitxa { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.zutabea { display: grid; gap: 16px; min-width: 0; }
.atala { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 16px; display: grid; gap: 12px; min-width: 0; }
.atala h2 { margin: 0; font-size: 16px; }
.atala-burua { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.eremuak { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.eremua { display: grid; gap: 4px; align-content: start; }
.eremua > span { font-size: 13px; font-weight: 600; color: var(--muted); }
.eremua.zabala { grid-column: 1 / -1; }
.eremua small { color: var(--muted); }
.eremua.okerra input, .eremua.okerra select { border-color: var(--pink); }
.eremua .errorea { font-size: 13px; }
.abisuak { display: grid; gap: 6px; }
.abisua { padding: 8px 10px; border-radius: 8px; background: var(--warn-soft); color: var(--warn); font-weight: 600; }
.abisua.alert { background: var(--pink-soft); color: var(--pink); }
.lista { list-style: none; margin: 0; padding: 0; display: grid; }
.lista li { padding: 8px 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.lista li:first-child { border-top: 0; padding-top: 0; }
.lista .nagusia { font-weight: 600; }
dl.datuak { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0; }
dl.datuak dt { color: var(--muted); }
dl.datuak dd { margin: 0; overflow-wrap: anywhere; }
.gehitu { display: flex; gap: 8px; flex-wrap: wrap; }
.ezkutua { display: flex; align-items: center; gap: 6px; min-height: 38px; }
.botoia.erakutsi { padding: 2px 8px; font-size: 13px; color: var(--accent); }
.gehitu input { flex: 1 1 200px; }

.gorde-barra { position: fixed; left: 50%; transform: translateX(-50%); bottom: max(16px, env(safe-area-inset-bottom, 0px)); z-index: 40; display: flex; align-items: center; gap: 10px; background: var(--ink); color: var(--panel); padding: 8px 8px 8px 16px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.25); width: max-content; max-width: calc(100vw - 32px); }
.gorde-barra .botoia.arina { color: var(--panel); }

.toast { display: flex; align-items: center; gap: 12px; position: fixed; left: 50%; transform: translateX(-50%); bottom: max(16px, env(safe-area-inset-bottom, 0px)); z-index: 50; background: var(--ok); color: #fff; padding: 9px 14px; border-radius: 10px; font-weight: 600; box-shadow: 0 8px 24px rgba(0,0,0,.2); max-width: calc(100vw - 32px); }
.toast.errorea { background: var(--pink); color: #fff; }
.toast .botoia { color: #fff; border-color: rgba(255,255,255,.55); padding: 4px 10px; }
.akatsa { background: var(--pink-soft); color: var(--pink); border-radius: var(--r); padding: 14px 16px; font-weight: 600; }

/* ---- ordutegia ------------------------------------------------------ */
.stats { display: flex; flex-wrap: wrap; gap: 8px; }
.stat { display: inline-flex; align-items: baseline; gap: 6px; padding: 5px 11px; border-radius: 999px; background: var(--panel); border: 1px solid var(--line); font-size: 13px; color: var(--muted); font: inherit; font-size: 13px; }
.stat b { font-weight: 600; color: var(--ink); }
.stat.alert { border-color: transparent; background: var(--pink-soft); color: var(--pink); }
.stat.alert b { color: var(--pink); }
.stat.warn { border-color: transparent; background: var(--warn-soft); color: var(--warn); }
.stat.warn b { color: var(--warn); }
button.stat { cursor: pointer; }
.tabs { display: inline-flex; max-width: 100%; overflow-x: auto; scrollbar-width: none; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 3px; }
.tabs::-webkit-scrollbar { display: none; }
.tabs button { font: inherit; font-weight: 600; border: 0; background: transparent; color: var(--muted); padding: 6px 14px; border-radius: 7px; cursor: pointer; white-space: nowrap; flex: none; }
@media (max-width: 560px) { .tabs button { padding: 6px 10px; } }
.tabs button[aria-pressed="true"] { background: var(--accent); color: var(--accent-ink); }
.found { font-size: 13px; color: var(--muted); margin: 0 0 10px; }
.found b { color: var(--ink); }
.ord-main { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 16px; align-items: start; }
.side { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 8px; display: grid; gap: 2px; max-height: 760px; overflow: auto; position: sticky; top: 16px; }
.side .lbl { font-size: 12px; font-weight: 600; color: var(--muted); padding: 8px 8px 4px; }
.side button { font: inherit; display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; text-align: left; background: transparent; border: 0; border-radius: 8px; padding: 7px 8px; color: var(--ink); cursor: pointer; }
.side button:hover { background: var(--band); }
.side button[aria-current="true"] { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.side .h { font-size: 12.5px; color: var(--muted); }
.side .dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--pink); margin-left: 6px; vertical-align: middle; }
.side .dot.w { background: var(--warn); }
.side-select { display: none; width: 100%; }
.board { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; min-width: 0; display: grid; }
.board-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; padding: 14px 16px 10px; border-bottom: 1px solid var(--line); }
.board-head h2 { margin: 0; font-size: 18px; }
.board-head .meta { color: var(--muted); font-size: 13px; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--muted); padding: 8px 16px; border-bottom: 1px solid var(--line); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.sw { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.scroll { overflow-x: auto; }
.grid { display: grid; position: relative; min-width: 100%; }
.colhead { position: sticky; top: 0; z-index: 3; background: var(--panel); border-bottom: 1px solid var(--line); padding: 8px 8px 6px; font-weight: 600; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.colhead small { display: block; font-weight: 400; color: var(--muted); font-size: 11.5px; }
.axis, .col { position: relative; }
.axis { border-right: 1px solid var(--line); }
.axis span { position: absolute; right: 6px; transform: translateY(-50%); font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.col { border-right: 1px solid var(--line); }
.col:last-child { border-right: 0; }
.hl { position: absolute; left: 0; right: 0; border-top: 1px solid var(--line); }
.hl.half { border-top-style: dashed; opacity: .6; }
.tramo { position: absolute; left: 0; right: 0; background: var(--band); }
.tramo i { position: absolute; top: 2px; right: 4px; font-style: normal; font-size: 10.5px; color: var(--muted); }
.libre { position: absolute; left: 4px; right: 4px; border: 1.5px dashed var(--pink); border-radius: 6px; background: var(--pink-soft); color: var(--pink); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.2; overflow: hidden; }
.atseden { position: absolute; left: 4px; right: 4px; z-index: 1; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--muted); font: inherit; font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.2; overflow: hidden; padding: 0 4px;
  background: repeating-linear-gradient(135deg, var(--band) 0 6px, var(--panel) 6px 12px); }
button.atseden { cursor: pointer; }
button.atseden:hover { border-color: var(--muted); color: var(--ink); }
.sw-libre { border: 1.5px dashed var(--pink); background: var(--pink-soft); }
.sw-atseden { border: 1px solid var(--line-strong); background: repeating-linear-gradient(135deg, var(--band) 0 3px, var(--panel) 3px 6px); }
.klase { position: absolute; border-radius: 6px; padding: 3px 6px; overflow: hidden; cursor: pointer; font-size: 12px; line-height: 1.25; border: 1px solid transparent; text-align: left; font-family: inherit; }
.klase .t { font-family: var(--font-mono); font-size: 10.5px; opacity: .85; display: flex; justify-content: space-between; gap: 4px; }
.klase .n { font-weight: 600; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.klase .x { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .85; }
.klase.berresteko { border: 2px dashed var(--warn); }
.klase.talka { border: 2px solid var(--pink); box-shadow: 0 0 0 2px var(--pink-soft); }
.klase.gelagabe::after { content: ""; position: absolute; top: 4px; right: 4px; width: 7px; height: 7px; border-radius: 50%; background: var(--warn); }
.klase.dim { opacity: .25; }
.klase.hutsik-klasea { background: var(--pink-soft); color: var(--pink); border: 1.5px solid var(--pink); }
.klase.hutsik-klasea .n { font-weight: 700; }
.klase.ezlektiboa-klasea { background: var(--band); color: var(--muted); border: 1px solid var(--line-strong); }
.klase.ezlektiboa-klasea .n { color: var(--ink); }
.sw-ezlektiboa { background: var(--band); border: 1px solid var(--line-strong); }
.klase.hit { outline: 2px solid var(--ink); outline-offset: 1px; z-index: 2; }
.f-hari { background: var(--c-hari); color: var(--c-hari-ink); }
.f-tekla { background: var(--c-tekla); color: var(--c-tekla-ink); }
.f-perk { background: var(--c-perk); color: var(--c-perk-ink); }
.f-haize { background: var(--c-haize); color: var(--c-haize-ink); }
.f-ahots { background: var(--c-ahots); color: var(--c-ahots-ink); }
.f-triki { background: var(--c-triki); color: var(--c-triki-ink); }
.f-talde { background: var(--c-talde); color: var(--c-talde-ink); }
.empty { padding: 32px 16px; color: var(--muted); }
.detail { position: fixed; right: max(16px, env(safe-area-inset-right, 0px)); bottom: max(16px, env(safe-area-inset-bottom, 0px)); width: min(380px, calc(100vw - 32px)); max-height: 70vh; overflow: auto; background: var(--panel); border: 1px solid var(--line-strong); border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,.18); padding: 16px; z-index: 20; display: grid; gap: 10px; }
.detail h3 { margin: 0; font-size: 17px; padding-right: 56px; }
.detail ul { margin: 0; padding-left: 18px; }
.detail .close { position: absolute; top: 10px; right: 10px; }
.issues { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; display: grid; gap: 10px; margin-top: 16px; }
.issues h2 { margin: 0; font-size: 16px; }
.issues ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.issues button.lotura { font: inherit; border: 0; background: none; color: var(--accent); text-decoration: underline; cursor: pointer; padding: 0; }

/* ---- ordutegia editatzea -------------------------------------------- */
.laguntza { color: var(--muted); font-size: 13px; margin: -4px 0 10px; }
.col.editagarria { cursor: copy; }
.col.editagarria .klase { cursor: grab; }
.klase.arrastatzen { cursor: grabbing; z-index: 10; opacity: .92; box-shadow: 0 10px 24px rgba(0,0,0,.25); transition: none; }
.klase.irekita { outline: 2px solid var(--accent); outline-offset: 1px; z-index: 3; }
button.libre { font: inherit; font-size: 11px; font-weight: 700; cursor: inherit; padding: 0 2px; }
.col.editagarria button.libre { cursor: pointer; }
.col.editagarria button.libre:hover { background: var(--pink); color: #fff; }
.kokapena { position: fixed; z-index: 60; pointer-events: none; background: var(--ink); color: var(--panel); font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 6px; }
.detail { width: min(440px, calc(100vw - 32px)); max-height: calc(100vh - 32px); }
.detail .eremuak { gap: 10px 12px; }
.detail textarea { min-height: 54px; }
.panel-atala { display: grid; gap: 8px; border-top: 1px solid var(--line); padding-top: 12px; }
.panel-atala h4 { margin: 0; font-size: 14px; }
.txikia { font-size: 13px; }

/* ---- irakasleen ikasleak (harremanak) -------------------------------- */
.harremana { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; padding: 1px 0; }
.harremana small { color: var(--muted); }
.harremana a { font-weight: 600; text-decoration: none; }
.harremana a:hover { text-decoration: underline; }
.harremana a.wa { font-size: 12px; font-weight: 600; color: var(--ok); background: var(--ok-soft); padding: 0 7px; border-radius: 999px; }
.harremanak-taula tbody tr { cursor: default; }
.botoia.ezgaitua { opacity: .55; }

/* ---- irakasleen orduak ---------------------------------------------- */
.hilabeteak { margin-bottom: 12px; }
.hilabeteak b { color: inherit; }
.orduak-egoera { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 10px; }
.orduak-egoera .tartea { flex: 1; }
.orduak-hutsik p { margin: 0; color: var(--muted); max-width: 70ch; }
.orduak-taula tbody tr { cursor: default; }
.orduak-taula tbody tr:hover td { background: transparent; }
.orduak-taula td { vertical-align: middle; }
.orduak-taula .zenb { text-align: right; white-space: nowrap; }
.orduak-taula tr.hutsa td { color: var(--muted); }
.orduak-taula tfoot td { font-weight: 600; padding: 10px 12px; border-top: 1px solid var(--line-strong); white-space: nowrap; }
.orduak-taula input { padding: 5px 8px; }
.orduak-taula input.ordu { width: 74px; font-family: var(--font-mono); font-size: 13px; }
.orduak-taula input.asteak { width: 64px; font-family: var(--font-mono); font-size: 13px; }
.orduak-taula input.oharra { width: 150px; }
.orduak-taula input[type="date"] { width: 150px; }
.ordu-eremua { display: flex; flex-wrap: wrap; gap: 6px; }
.orduak-taula.osoa td, .orduak-taula.osoa th { padding-inline: 10px; }
button.aldatua { font: inherit; font-size: 12px; font-weight: 600; border: 0; background: var(--warn-soft); color: var(--warn); border-radius: 999px; padding: 1px 9px; margin-top: 4px; cursor: pointer; }
button.aldatua:hover { text-decoration: underline; }
.orduak-gehitu { margin-top: 12px; }
.orduak-taula td.orduak-oharra { min-width: 220px; max-width: 360px; }
.orduak-taula small { line-height: 1.3; display: inline-block; }
.orduak-gehitu select { flex: 0 1 260px; }
.inprimatzeko { display: none; }

/* ---- bajak ---------------------------------------------------------- */
.bajak-esteka { margin-left: auto; font-weight: 600; text-decoration: none; padding: 4px 4px; }
.bajak-esteka b { font-weight: 500; color: var(--muted); }
.bajak-esteka:hover { text-decoration: underline; }
.bajak-laburpena { margin: -4px 2px 10px; color: var(--muted); }
.baja-atala { border-color: var(--line-strong); }
hr.bereizlea { border: 0; border-top: 1px solid var(--line); margin: 4px 0; width: 100%; }
.elkarrizketa { border: 0; border-radius: 14px; padding: 0; width: min(480px, calc(100vw - 32px)); background: var(--panel); color: var(--ink); box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.elkarrizketa::backdrop { background: rgba(10, 20, 20, .45); }
.elkarrizketa form { display: grid; gap: 12px; padding: 20px; }
.elkarrizketa h2 { margin: 0; font-size: 18px; }
.elkarrizketa p { margin: 0; }
.elkarrizketa textarea { min-height: 60px; }
.kontrol-lerroa { display: flex; gap: 10px; align-items: flex-start; }
.kontrol-lerroa input { margin-top: 3px; flex: none; }
.kontrol-lerroa small { display: block; margin-top: 2px; }
.elkarrizketa-botoiak { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.botoia.nagusia.arriskua-nagusia { background: var(--pink); border-color: var(--pink); color: #fff; }
.orri-burua .ekintzak .pill { align-self: center; }

/* ---- inprimatzeko (orduak, sinatzeko) ------------------------------- */
@media print {
  body.inprimatu { background: #fff; color: #000; font-size: 11pt; }
  body.inprimatu > *:not(.inprimatzeko) { display: none !important; }
  body.inprimatu .inprimatzeko { display: block; }
  .inprimatzeko .inp-eskola { margin: 0; font-weight: 600; }
  .inprimatzeko h1 { font-size: 18pt; margin: 2pt 0 4pt; }
  .inprimatzeko .inp-oharra { margin: 0 0 10pt; color: #333; }
  .inprimatzeko table { width: 100%; border-collapse: collapse; }
  .inprimatzeko th, .inprimatzeko td { border: 1px solid #888; padding: 5pt 6pt; text-align: left; vertical-align: middle; }
  .inprimatzeko th { background: #eee; font-size: 9.5pt; }
  .inprimatzeko tfoot td { font-weight: 600; background: #f4f4f4; }
  .inprimatzeko td { height: 26pt; }
  .inprimatzeko .sinadura { width: 32%; }
  .inprimatzeko tr { break-inside: avoid; }
  @page { size: A4 landscape; margin: 14mm; }
  /* Sinatutako dokumentua: bertikalean */
  .inprimatzeko.dokumentua { page: dokumentua; font-size: 9.5pt; line-height: 1.35; }
  .inprimatzeko.dokumentua h2 { font-size: 13pt; margin: 8pt 0 3pt; }
  .inprimatzeko.dokumentua h3 { font-size: 10.5pt; margin: 7pt 0 2pt; }
  .inprimatzeko.dokumentua h4 { font-size: 10pt; margin: 6pt 0 2pt; }
  .inprimatzeko.dokumentua p { margin: 0 0 3pt; }
  .inprimatzeko.dokumentua ul { margin: 0 0 3pt; padding-left: 14pt; }
  .inprimatzeko.dokumentua hr { border: 0; border-top: 1px solid #999; margin: 8pt 0; }
  .inprimatzeko.dokumentua .aztarna { font-family: monospace; font-size: 7.5pt; color: #444; overflow-wrap: anywhere; }
  @page dokumentua { size: A4 portrait; margin: 15mm; }
}

/* ---- familiek sinatzeko orria (sinatu.html) ------------------------- */
.sinatu-gorputza { min-height: 100vh; display: flex; flex-direction: column; font-size: 15.5px; }
.sinatu-goiburua { background: var(--rail); color: var(--rail-ink); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px 16px; padding: 12px max(16px, calc((100vw - 760px) / 2)); }
.sinatu-marka b { font-size: 17px; }
.sinatu-marka span { color: var(--rail-muted); font-weight: 500; }
.hizkuntza { display: flex; gap: 4px; }
.hizkuntza button { font: inherit; font-size: 13px; font-weight: 600; border: 1px solid rgba(255,255,255,.35); background: transparent; color: var(--rail-ink); border-radius: 999px; padding: 5px 12px; cursor: pointer; }
.hizkuntza button[aria-pressed="true"] { background: var(--rail-ink); color: var(--rail); border-color: var(--rail-ink); }
.sinatu { flex: 1; width: min(760px, 100%); margin: 0 auto; padding: 22px 16px 48px; display: grid; gap: 16px; align-content: start; outline: none; }
.sinatu-burua h1 { margin: 2px 0 4px; font-size: 28px; letter-spacing: -0.015em; line-height: 1.15; }
.sinatu-burua p { margin: 0; }
.sinatu-mota { color: var(--accent); font-weight: 600; }
.sinatu-burua .sinatu-mezua { margin-top: 10px; padding: 10px 12px; border-radius: 8px; background: var(--accent-soft); }
.sinatu-form { display: grid; gap: 16px; }
.sinatu fieldset.atala { margin: 0; }
.sinatu legend { float: left; width: 100%; padding: 0; font-weight: 700; font-size: 16px; }
.sinatu .atala h2 { font-size: 16px; }
.aukerak { display: grid; gap: 8px; }
.aukera { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: 8px; cursor: pointer; font-weight: 600; }
.aukera:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.aukera input { margin: 0; width: 18px; height: 18px; flex: none; accent-color: var(--accent); }
.azpi-izenburua { margin: 0 0 6px; font-weight: 600; color: var(--muted); font-size: 13px; }
.klase-zerrenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.klase-zerrenda li { display: grid; gap: 1px; padding: 8px 10px; background: var(--band); border-radius: 8px; }
.klase-zerrenda span { color: var(--muted); font-size: 14px; }
.dokumentuak { display: grid; gap: 8px; }
details.dokumentua { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
details.dokumentua summary { cursor: pointer; padding: 10px 12px; font-weight: 600; }
details.dokumentua[open] summary { border-bottom: 1px solid var(--line); }
.testua { padding: 4px 14px 12px; max-height: 60vh; overflow: auto; font-size: 14px; overflow-wrap: anywhere; }
.testua h2 { font-size: 17px; margin: 12px 0 6px; }
.testua h3 { font-size: 15px; margin: 12px 0 4px; }
.testua h4 { font-size: 14px; margin: 10px 0 4px; }
.testua p { margin: 0 0 8px; }
.testua ul { margin: 0 0 8px; padding-left: 20px; }
.testua hr { border: 0; border-top: 1px solid var(--line); margin: 14px 0; }
.irudi-esaldia { margin: 0; padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--band); border-radius: 0 8px 8px 0; }
.irudi-esaldia.ezezkoa { border-left-color: var(--pink); }
.sinadura .onartu { font-weight: 600; }
.botoia.handia { justify-content: center; padding: 12px 18px; font-size: 16px; }
.sinatu .txikia { font-size: 13px; margin: 0; }
.sinatu-egoera { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 24px 20px; display: grid; gap: 10px; }
.sinatu-egoera h1 { margin: 0; font-size: 24px; }
.sinatu-egoera p { margin: 0; }
.sinatu-egoera.ondo h1 { color: var(--ok); }
.aztarna { font-size: 11px; color: var(--muted); overflow-wrap: anywhere; padding: 0 14px 10px; margin: 0; }
.sinatu-oina { text-align: center; color: var(--muted); font-size: 13px; padding: 16px; border-top: 1px solid var(--line); }
@media (max-width: 560px) { .sinatu-burua h1 { font-size: 23px; } }

/* ---- mugikorra ------------------------------------------------------ */
@media (max-width: 900px) {
  .app { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
  .rail { position: sticky; top: 0; z-index: 30; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 16px; }
  .marka b { font-size: 15px; }
  .marka span { display: none; }
  .proba-txapa { margin-left: 0; align-self: center; }
  .nabigazioa { order: 3; flex-basis: 100%; display: flex; overflow-x: auto; gap: 4px; }
  .nabigazioa a { padding: 6px 12px; font-size: 14px; white-space: nowrap; }
  .erabiltzailea { margin: 0 0 0 auto; padding: 0; display: flex; align-items: center; gap: 8px; }
  .erabiltzailea #nor { display: none; }
  .edukia { padding: 18px 16px 96px; }
  .fitxa { grid-template-columns: minmax(0, 1fr); }
  .ord-main { grid-template-columns: minmax(0, 1fr); }
  .side { display: none; }
  .side-select { display: block; }
  .ezkutatu-mugikorrean { display: none; }
}
@media (max-width: 560px) {
  .eremuak { grid-template-columns: minmax(0, 1fr); }
  .orri-burua h1 { font-size: 22px; }
  .tresnak input[type="search"] { width: 100%; }
}
@media (prefers-reduced-motion: no-preference) {
  .klase { transition: opacity .15s ease; }
}

/* ---- matrikulak (sinadurak) ----------------------------------------- */
.mt-fitxak { margin-bottom: 12px; }
.kanpaina-burua { margin-bottom: 12px; }
.kanpaina-burua p { margin: 0; }
.kanpaina-kopuruak { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--muted); }
.kanpaina-kopuruak b { color: var(--ink); font-size: 18px; }
.eremua-lerroan { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--muted); font-size: 13px; }
.ekintza-gelaxka { white-space: nowrap; text-align: right; }
.botoia.txikia-botoia { padding: 3px 9px; font-size: 13px; }
.esteka-kutxa { width: 100%; font-size: 12.5px; }
.nabarmena { background: var(--warn-soft); border-radius: 6px; padding: 2px 6px; white-space: pre-wrap; }
.ondo-testua { color: var(--ok); font-weight: 600; }
.aztarna-balioa { overflow-wrap: anywhere; }
.dokumentu-ikuspegia { max-height: 70vh; border: 1px solid var(--line); border-radius: 8px; padding-top: 10px; }
.testu-editorea { font-family: var(--font-mono); font-size: 12.5px; line-height: 1.5; min-height: 360px; }
.aurrebista { border-top: 1px solid var(--line); padding-top: 12px; }
.aurrebista-bi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.aurrebista-bi .testua { border: 1px solid var(--line); border-radius: 8px; padding-top: 10px; }
@media (max-width: 900px) { .aurrebista-bi { grid-template-columns: minmax(0, 1fr); } }

/* ---- ikaslearen fitxa: bezero berria ---------------------------------- */
.bezero-lerroa { display: flex; gap: 8px; align-items: center; }
.bezero-lerroa input { flex: 1 1 auto; }
.elkarrizketa.zabala { width: min(640px, calc(100vw - 32px)); }
.elkarrizketa .aukera small { font-weight: 400; }

/* ---- ikaslearen fitxa: ordutegian jarri ---------------------------------- */
.klase-eskuina { display: inline-flex; align-items: center; gap: 8px; }
.klase-aukerak { gap: 6px; max-height: 45vh; overflow: auto; }
.klase-aukerak li { display: block; padding: 0; border: 0; }
.klase-aukerak .aukera { align-items: flex-start; font-weight: 400; }
.klase-aukerak .aukera input { margin-top: 2px; }
.klase-aukerak .aukera small { display: block; margin-top: 2px; }
.klase-aukerak .aukera .pill { margin-top: 4px; }
.aukera.beteta { opacity: .65; }
[data-libreak] .pillak { gap: 6px; margin-top: 4px; }

/* ---- eskuzko sinadura ------------------------------------------------- */
.sinadura-pada-kutxa { display: grid; gap: 6px; }
.sinadura-pada-kutxa .lerroa { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.sinadura-pada-kutxa .azpi-izenburua { margin: 0; }
.sinadura-pada { display: block; width: 100%; aspect-ratio: 5 / 2; background: #fff; border: 1.5px dashed var(--line-strong); border-radius: 8px; touch-action: none; cursor: crosshair; }
.sinadura-lerroa { margin: 4px 0 8px; }
.sinadura-irudia { display: block; width: 100%; max-width: 300px; height: auto; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
@media print { .inprimatzeko .sinadura-irudia { max-width: 60mm; border: 0; } }

/* ---- posta (Gmail) ------------------------------------------------------ */
.posta-zerrenda { list-style: none; margin: 0; padding: 0; display: grid; }
.posta-zerrenda > li { border-top: 1px solid var(--line); }
.posta-zerrenda > li:first-child { border-top: 0; }
.posta-lerroa { all: unset; box-sizing: border-box; width: 100%; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 2px 8px; align-items: baseline; padding: 8px 4px; border-radius: 6px; }
.posta-lerroa:hover { background: var(--band); }
.posta-lerroa:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.posta-gaia { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.posta-lerroa.irakurri-gabe .posta-gaia { font-weight: 700; }
.posta-noiz { font-size: 12px; color: var(--muted); white-space: nowrap; }
.posta-nor { grid-column: 2 / -1; font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.posta-laburpena { grid-column: 2 / -1; font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.posta-zerrenda > li.irekita .posta-lerroa { background: var(--band); }
.posta-mezua { display: grid; gap: 8px; padding: 8px 4px 12px; }
.mezu-testua { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 14px/1.5 var(--font-ui); background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; max-height: 55vh; overflow: auto; }
.mezu-html { width: 100%; height: 55vh; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.mezu-idazlea { font: 14px/1.5 var(--font-ui); min-height: 220px; resize: vertical; }
.bidalketa progress { width: 100%; height: 12px; accent-color: var(--accent); }
.bidalketa-akatsak { margin: 0; padding-left: 18px; max-height: 160px; overflow: auto; font-size: 13px; color: var(--pink); }
.aukera-lerroa { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.aukera-lerroa label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.aukera-lerroa input, .aukera-sareta input, .hartzaile-zerrenda input { accent-color: var(--accent); flex: none; margin: 0; }
.aukera-taldeak { display: grid; gap: 8px; }
.aukera-taldea { border: 1px solid var(--line); border-radius: 8px; }
.aukera-taldea summary { cursor: pointer; padding: 8px 12px; font-weight: 600; display: flex; justify-content: space-between; gap: 8px; }
.aukera-taldea summary b { font-weight: 500; color: var(--muted); font-size: 13px; }
.aukera-taldea[open] summary { border-bottom: 1px solid var(--line); }
.aukera-sareta { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2px 12px; padding: 8px 12px; max-height: 260px; overflow: auto; }
.aukera-sareta label { display: flex; gap: 6px; align-items: center; padding: 3px 0; cursor: pointer; font-size: 14px; min-width: 0; }
.aukera-sareta label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aukera-sareta label small { margin-left: auto; color: var(--muted); font-size: 12px; }
.aukera-sareta label.hutsa { opacity: .55; }
.hartzaileak-kutxa summary { cursor: pointer; font-weight: 600; color: var(--accent); }
.hartzaile-zerrenda { list-style: none; margin: 8px 0 0; padding: 0; display: grid; max-height: 360px; overflow: auto; }
.hartzaile-zerrenda li { border-top: 1px solid var(--line); padding: 6px 0; }
.hartzaile-zerrenda li:first-child { border-top: 0; }
.hartzaile-zerrenda label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; overflow-wrap: anywhere; }
.hartzaile-zerrenda input { margin-top: 3px; }
.posta-historia { margin-top: 16px; }
.posta-orria code { font-family: var(--font-mono); font-size: 12px; background: var(--band); padding: 0 4px; border-radius: 4px; }

/* ---- ordutegia: instrumentuka eta atsedenak ------------------------------ */
.board-head .board-ekintzak { margin-left: auto; }
.board-head .board-ekintzak:empty { display: none; }
.egun-hautatzailea { padding: 8px 16px 0; }
.libre-zerrenda { padding: 12px 16px 16px; border-top: 1px solid var(--line); display: grid; gap: 10px; }
.libre-zerrenda h3 { margin: 0; font-size: 15px; }
.libre-egunak { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px 18px; }
.libre-egunak ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; font-size: 13px; }
.libre-egunak li { overflow-wrap: anywhere; }
.libre-txipa { font: inherit; font-size: 12px; font-weight: 700; color: var(--pink); background: var(--pink-soft); border: 1px dashed var(--pink); border-radius: 999px; padding: 1px 8px; cursor: pointer; margin-right: 4px; }
.libre-txipa:hover { background: var(--pink); color: #fff; }
.egun-aukerak { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.egun-aukerak legend { font-size: 13px; font-weight: 600; color: var(--muted); padding: 0; margin-bottom: 4px; }
.egun-aukerak label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.egun-aukerak input { accent-color: var(--accent); margin: 0; }
.errorea.lerroka { white-space: pre-line; }

/* ---- eskuragarri (libre, ordaindu gabe) ----------------------------------- */
.eskuragarri-tartea { position: absolute; left: 0; right: 0; background: color-mix(in srgb, var(--pink-soft) 55%, transparent); border-left: 3px solid var(--pink); }
.eskuragarri-tartea i { position: absolute; bottom: 2px; right: 4px; font-style: normal; font-size: 10.5px; color: var(--pink); }
.sw-eskuragarri { background: var(--pink-soft); border-left: 3px solid var(--pink); }
.sw-libre-ordaindua { background: var(--pink-soft); border: 1.5px solid var(--pink); }
.eskuragarri-oharra { background: var(--pink-soft); color: var(--pink); border-radius: 8px; padding: 8px 10px; font-size: 13px; font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.eskuragarri-oharra .botoia { color: var(--pink); }

/* ---- kobroak --------------------------------------------------------------- */
.paralelo-oharra { background: var(--warn-soft); color: var(--warn); border-radius: var(--r); padding: 10px 14px; margin-bottom: 12px; }
.kobro-ekintzak { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.kobro-laburpena { margin-bottom: 12px; }
.kobro-hutsik { max-width: 70ch; }
.kobro-abisuak { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 10px 14px; margin-bottom: 10px; }
.kobro-abisuak h2 { margin: 0 0 2px; font-size: 15px; }
.kobro-abisuak summary { cursor: pointer; font-weight: 600; }
.kobro-abisuak .txikia { margin: 4px 0 6px; color: var(--muted); font-size: 13px; }
.kobro-abisuak.larriak { border-color: transparent; background: var(--pink-soft); }
.kobro-abisuak.larriak h2 { color: var(--pink); }
.kobro-abisu-zerrenda { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 4px; font-size: 14px; }
.kobro-abisu-zerrenda li.larria { color: var(--pink); font-weight: 600; }
.kobro-abisu-zerrenda a.izena { font-weight: 600; color: inherit; }
.kobro-abisu-zerrenda span { color: var(--muted); }
.kobro-abisuak.larriak .kobro-abisu-zerrenda span { color: var(--ink); }
.kobro-tresnak { margin-top: 6px; }
.euro { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.zerrenda th.euro { text-align: right; }
.kobro-taula tr[aria-expanded="true"] td { background: var(--accent-soft); }
.kobro-taula tr.kobro-xehetasuna { cursor: default; }
.kobro-taula tr.kobro-xehetasuna:hover td, .kobro-taula tr.kobro-xehetasuna td { background: var(--band); }
.kobro-xehetasuna > td { padding: 10px 14px 14px; }
.kobro-lerroak { width: 100%; border-collapse: collapse; margin-bottom: 8px; font-size: 14px; }
.kobro-lerroak td { padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.kobro-lerroak td:first-child { color: var(--muted); }
.kobro-xehetasun-botoiak { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.kobro-xehetasuna .txikia { font-size: 13px; }
.kobro-xehetasuna input[type="search"] { margin: 8px 0; width: 280px; max-width: 100%; }
.botoia.txikia { padding: 3px 9px; font-size: 13px; }
.kobro-remesa-berria { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; margin-bottom: 16px; display: grid; gap: 8px; }
.kobro-remesa-berria h2 { margin: 0; font-size: 16px; }
.kobro-remesa-berria p { margin: 0; }
#kb-remesa-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
#kb-remesa-form .eremua { margin: 0; }
.fitxategi-botoia { justify-self: start; cursor: pointer; }
.kobro-ezarpenak { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.kobro-ezarpenak fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.kobro-ezarpenak legend { font-weight: 600; color: var(--muted); font-size: 13px; margin-bottom: 4px; }
.kobro-ezarpenak .aukera small { display: block; }
tr.ald-ezberdin td { background: var(--warn-soft); }
tr.ald-mn td, tr.ald-gurea td { background: var(--pink-soft); }

/* ---- ikaslearen fitxa: ikasgai kontratatuak ---------------------------------------- */
.kt-ikasturtea + .kt-ikasturtea { border-top: 1px solid var(--line); padding-top: 10px; }
.kt-matrikula { margin: 0 0 6px; font-size: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.kt-atala .lista li.itxita { opacity: .6; }
.kt-prezioa { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.kt-zaharrak summary { cursor: pointer; font-weight: 600; color: var(--muted); }
.kt-zaharrak[open] summary { margin-bottom: 8px; }
