/* Sealbox — témázható felület.
   Minden szín CSS-változóban él, a témát a <html data-theme="..."> kapcsolja.
   A "rendszer" beállítást a JS oldja fel világosra/sötétre (app.js, applyTheme).
   Alap: "menta" — a BabL42 landing menta-zöldjéből (#6fe3b1), világos háttérhez
   sötétített, olvasható változatban. */

/* ── VILÁGOS TÉMÁK ───────────────────────────────────────────────────────── */
:root, [data-theme="menta"] {           /* menta — meleg törtfehér + mentazöld */
  --bg: #f1efe9; --bg2: #e7efe9;
  --card: #ffffff; --panel: #f7f6f2; --panel2: #eeece6;
  --border: #e3ded4; --border2: #d5cfc2;
  --text: #2a2e35; --muted: #71757e;
  --accent: #108462; --accent-hover: #0c6e51; --accent-soft: #6fe3b1; --accent-tint: #e7f6f0;
  --on-accent: #ffffff;
  --danger: #c94a45; --danger-bg: #fdeeec; --danger-text: #9c3733;
  --toast-bg: #2a2e35; --toast-text: #ffffff;
  --shadow: 0 10px 40px rgba(42,46,53,0.09), 0 2px 8px rgba(42,46,53,0.05);
}
[data-theme="homok"] {                  /* homok — meleg bézs + terrakotta */
  --bg: #f4ede3; --bg2: #efe3d4;
  --card: #fffdfa; --panel: #faf4ec; --panel2: #f0e6da;
  --border: #e6dac9; --border2: #d8c8b2;
  --text: #3a3129; --muted: #7e7264;
  --accent: #a86136; --accent-hover: #8e4f2b; --accent-soft: #f0b183; --accent-tint: #fbeee3;
  --on-accent: #ffffff;
  --danger: #c24a45; --danger-bg: #fbeceb; --danger-text: #953631;
  --toast-bg: #3a3129; --toast-text: #fffdfa;
  --shadow: 0 10px 40px rgba(58,49,41,0.10), 0 2px 8px rgba(58,49,41,0.06);
}
[data-theme="levendula"] {              /* levendula — halvány lila + ibolya */
  --bg: #f2f0f8; --bg2: #eae7f5;
  --card: #ffffff; --panel: #f7f5fc; --panel2: #ece8f6;
  --border: #e2ddef; --border2: #cfc7e4;
  --text: #2e2a3c; --muted: #77718b;
  --accent: #7857c8; --accent-hover: #6544b3; --accent-soft: #b9a4ef; --accent-tint: #f0ebfd;
  --on-accent: #ffffff;
  --danger: #c4485f; --danger-bg: #fceceF; --danger-text: #99354a;
  --toast-bg: #2e2a3c; --toast-text: #ffffff;
  --shadow: 0 10px 40px rgba(46,42,60,0.10), 0 2px 8px rgba(46,42,60,0.06);
}
[data-theme="papir"] {                  /* papír — hűvös szürke + indigó, letisztult */
  --bg: #f4f5f7; --bg2: #e9ecf1;
  --card: #ffffff; --panel: #f7f8fa; --panel2: #edeff3;
  --border: #e2e5ea; --border2: #cdd2da;
  --text: #262b33; --muted: #6d7480;
  --accent: #3563d6; --accent-hover: #2a51b8; --accent-soft: #93b0f5; --accent-tint: #eaf0fe;
  --on-accent: #ffffff;
  --danger: #ca4444; --danger-bg: #fdecec; --danger-text: #9b3232;
  --toast-bg: #262b33; --toast-text: #ffffff;
  --shadow: 0 10px 40px rgba(38,43,51,0.10), 0 2px 8px rgba(38,43,51,0.05);
}

[data-theme="tenger"] {                 /* tenger — hűvös világoskék + mélykék */
  --bg: #eef4f7; --bg2: #e2eef3;
  --card: #ffffff; --panel: #f4f9fb; --panel2: #e7f0f5;
  --border: #dbe7ee; --border2: #c3d5e0;
  --text: #23323b; --muted: #637683;
  --accent: #197d9c; --accent-hover: #116075; --accent-soft: #7cc6dd; --accent-tint: #e4f4f9;
  --on-accent: #ffffff;
  --danger: #c34c4c; --danger-bg: #fceded; --danger-text: #96393a;
  --toast-bg: #23323b; --toast-text: #ffffff;
  --shadow: 0 10px 40px rgba(35,50,59,0.10), 0 2px 8px rgba(35,50,59,0.05);
}
[data-theme="rozsa"] {                  /* rózsa — halvány rózsaszín + bordó */
  --bg: #f9f0f1; --bg2: #f4e6ea;
  --card: #fffdfd; --panel: #fdf5f6; --panel2: #f6e8eb;
  --border: #eddade; --border2: #dfc2c9;
  --text: #362a2e; --muted: #866d74;
  --accent: #b04a63; --accent-hover: #983c53; --accent-soft: #e79cae; --accent-tint: #fceef1;
  --on-accent: #ffffff;
  --danger: #c0432f; --danger-bg: #fceceA; --danger-text: #93321f;
  --toast-bg: #362a2e; --toast-text: #fffdfd;
  --shadow: 0 10px 40px rgba(54,42,46,0.10), 0 2px 8px rgba(54,42,46,0.06);
}

/* ── SÖTÉT TÉMÁK ─────────────────────────────────────────────────────────── */
[data-theme="sotet"] {                  /* sötét — semleges grafit + menta */
  --bg: #15171c; --bg2: #1a1d24;
  --card: #1e2128; --panel: #23262e; --panel2: #2a2e37;
  --border: #333741; --border2: #414652;
  --text: #e6e8ec; --muted: #9198a5;
  --accent: #35c496; --accent-hover: #2bb086; --accent-soft: #6fe3b1; --accent-tint: #1d3a33;
  --on-accent: #0e1512;
  --danger: #e06b66; --danger-bg: #3a2422; --danger-text: #f2a9a5;
  --toast-bg: #e6e8ec; --toast-text: #15171c;
  --shadow: 0 12px 44px rgba(0,0,0,0.45), 0 2px 8px rgba(0,0,0,0.3);
}
[data-theme="ejkek"] {                  /* éjkék — mély kék + világoskék */
  --bg: #0f1626; --bg2: #131c31;
  --card: #172033; --panel: #1c263b; --panel2: #222d46;
  --border: #2b3752; --border2: #3a4866;
  --text: #e3e8f2; --muted: #8b97b0;
  --accent: #56a8f5; --accent-hover: #3f93e3; --accent-soft: #9ccbfa; --accent-tint: #1b3350;
  --on-accent: #0a1220;
  --danger: #e2706e; --danger-bg: #3a2028; --danger-text: #f4aead;
  --toast-bg: #e3e8f2; --toast-text: #0f1626;
  --shadow: 0 12px 44px rgba(0,0,0,0.5), 0 2px 8px rgba(0,0,0,0.35);
}
[data-theme="erdo"] {                   /* erdő — mély zöld + meleg lomb */
  --bg: #121a15; --bg2: #16211a;
  --card: #1a241d; --panel: #1f2a22; --panel2: #263229;
  --border: #2e3d32; --border2: #3d4f42;
  --text: #e4eae4; --muted: #8ea092;
  --accent: #86c06a; --accent-hover: #72ad57; --accent-soft: #b3dc9d; --accent-tint: #223020;
  --on-accent: #101710;
  --danger: #dd7368; --danger-bg: #392320; --danger-text: #f3aea6;
  --toast-bg: #e4eae4; --toast-text: #121a15;
  --shadow: 0 12px 44px rgba(0,0,0,0.45), 0 2px 8px rgba(0,0,0,0.3);
}

[data-theme="borostyan"] {              /* borostyán — meleg sötétbarna + mézsárga */
  --bg: #1b1611; --bg2: #221b14;
  --card: #251e17; --panel: #2b231b; --panel2: #342a20;
  --border: #3d3125; --border2: #4e3f30;
  --text: #ece4d9; --muted: #a2917d;
  --accent: #e0a83f; --accent-hover: #c8922f; --accent-soft: #f2cd85; --accent-tint: #3a2d18;
  --on-accent: #1b1611;
  --danger: #e07a63; --danger-bg: #3b241d; --danger-text: #f3b3a1;
  --toast-bg: #ece4d9; --toast-text: #1b1611;
  --shadow: 0 12px 44px rgba(0,0,0,0.5), 0 2px 8px rgba(0,0,0,0.35);
}
[data-theme="szilva"] {                 /* szilva — sötét lilásszürke + orgona */
  --bg: #171420; --bg2: #1d1929;
  --card: #211d2e; --panel: #272236; --panel2: #2f2941;
  --border: #393150; --card-hi: #443a61; --border2: #4a4066;
  --text: #e7e3f0; --muted: #9a92b0;
  --accent: #b08ae8; --accent-hover: #9a71d9; --accent-soft: #d0b9f5; --accent-tint: #2c2440;
  --on-accent: #17121f;
  --danger: #e0707f; --danger-bg: #3a2029; --danger-text: #f3adb6;
  --toast-bg: #e7e3f0; --toast-text: #171420;
  --shadow: 0 12px 44px rgba(0,0,0,0.5), 0 2px 8px rgba(0,0,0,0.35);
}

/* ── ALAPOK ──────────────────────────────────────────────────────────────── */
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: linear-gradient(160deg, var(--bg) 0%, var(--bg2) 100%);
  background-attachment: fixed;
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: 15px; -webkit-font-smoothing: antialiased;
  display: flex; justify-content: center; align-items: flex-start;
  padding: 40px 16px;
  transition: background 0.25s ease, color 0.25s ease;
}
#app { width: 100%; max-width: 520px; }
.view { width: 100%; }
.hidden { display: none !important; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.error { color: var(--danger-text); font-size: 13px; margin-top: 8px; min-height: 16px; }

/* ── A kártya: minden nézet ebben él ─────────────────────────────────────── */
.center-card, .app-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 18px; box-shadow: var(--shadow);
  transition: background 0.25s ease, border-color 0.25s ease;
}
.center-card { padding: 32px 28px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.auth-card { align-items: stretch; }
.app-card { overflow: hidden; }

.brand { font-size: 24px; font-weight: 700; text-align: center; letter-spacing: -0.3px; }
.brand.small { font-size: 17px; }
.brand-lock { filter: saturate(0.95); }
.tagline { color: var(--muted); font-size: 13px; text-align: center; margin: 0 0 6px; line-height: 1.5; }

.spinner {
  width: 32px; height: 32px; border: 3px solid var(--panel2); border-top-color: var(--accent);
  border-radius: 50%; animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Témaválasztó ────────────────────────────────────────────────────────── */
.theme-picker { display: flex; align-items: center; gap: 6px; }
.theme-picker label { font-size: 12px; color: var(--muted); }
.theme-select {
  background: var(--panel); color: var(--text); border: 1px solid var(--border2);
  border-radius: 8px; padding: 5px 8px; font-size: 12.5px; cursor: pointer;
  font-family: inherit;
}
.theme-select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-tint); }
.auth-theme { margin-top: 6px; justify-content: center; }

/* ── Űrlapok ─────────────────────────────────────────────────────────────── */
.auth-form { display: flex; flex-direction: column; gap: 12px; }
.auth-form label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; color: var(--muted); }
.auth-form input, .field input {
  background: var(--panel); color: var(--text); border: 1px solid var(--border2);
  border-radius: 10px; padding: 10px 12px; font-size: 15px; font-family: inherit;
}
.auth-form input:focus, .field input:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-tint);
}
.hint { font-size: 12px; color: var(--muted); margin: 2px 0; line-height: 1.5; }

.btn-primary {
  background: var(--accent); color: var(--on-accent); border: none; border-radius: 10px;
  padding: 11px; font-size: 15px; font-weight: 600; cursor: pointer; transition: background 0.15s;
  font-family: inherit;
}
.btn-primary:hover:not(:disabled) { background: var(--accent-hover); }
.btn-primary:disabled { background: var(--panel2); color: var(--muted); cursor: default; }
.btn-ghost { background: var(--card); color: var(--text); border: 1px solid var(--border2); border-radius: 10px; padding: 9px 14px; cursor: pointer; font-family: inherit; }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
.btn-text { background: none; border: none; color: var(--muted); cursor: pointer; text-decoration: underline; font-size: 13px; font-family: inherit; }
.btn-link { background: none; border: none; color: var(--accent); cursor: pointer; padding: 0; font-size: inherit; font-weight: 600; font-family: inherit; }
.btn-icon { background: none; border: none; color: var(--muted); font-size: 17px; cursor: pointer; line-height: 1; }
.btn-icon:hover { color: var(--danger); }
.btn-small { padding: 6px 12px; font-size: 13px; border-radius: 8px; }

/* ── Fő elrendezés (a kártyán belül) ─────────────────────────────────────── */
.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; border-bottom: 1px solid var(--border); background: var(--panel);
  gap: 10px;
}
.topbar-right { display: flex; align-items: center; gap: 10px; }
.me-name { font-size: 13px; color: var(--muted); max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav { display: flex; gap: 4px; padding: 10px 12px; border-bottom: 1px solid var(--border); }
.nav-btn {
  flex: 1; background: transparent; color: var(--muted); border: none;
  padding: 9px 8px; border-radius: 9px; cursor: pointer; font-size: 13.5px; font-weight: 500;
  font-family: inherit;
}
.nav-btn:hover { background: var(--panel2); color: var(--text); }
.nav-btn.active { background: var(--accent-tint); color: var(--accent); font-weight: 600; }
.badge { background: var(--accent); color: var(--on-accent); border-radius: 10px; padding: 1px 6px; font-size: 11px; font-weight: 700; margin-left: 4px; }
.content { padding: 20px; }

.field { margin-bottom: 18px; display: flex; flex-direction: column; gap: 8px; }
.field > label { font-size: 13px; color: var(--text); font-weight: 600; }
.contact-results { display: flex; flex-direction: column; gap: 4px; }
.contact-item { padding: 9px 12px; background: var(--panel); border: 1px solid var(--border); border-radius: 9px; cursor: pointer; }
.contact-item:hover { border-color: var(--accent); background: var(--accent-tint); }
.selected-recipient { background: var(--accent-tint); border: 1px solid var(--accent-soft); border-radius: 9px; padding: 9px 12px; display: flex; align-items: center; gap: 8px; }

.dropzone { border: 1.5px dashed var(--border2); border-radius: 12px; padding: 24px; text-align: center; color: var(--muted); background: var(--panel); }
.dropzone.drag { border-color: var(--accent); background: var(--accent-tint); color: var(--accent); }
.file-list, .offer-files { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.file-list li { display: flex; align-items: center; gap: 10px; background: var(--panel); border: 1px solid var(--border); border-radius: 9px; padding: 8px 12px; }
.fl-name, .of-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fl-size, .of-size { color: var(--muted); font-size: 12px; flex-shrink: 0; }

.offer-list { display: flex; flex-direction: column; gap: 12px; }
.offer-card { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 14px; }
.offer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; gap: 8px; }
.offer-from { font-weight: 600; }
.offer-status { font-size: 11.5px; color: var(--muted); background: var(--panel2); padding: 3px 9px; border-radius: 10px; flex-shrink: 0; }
.offer-files li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--border); }
.offer-files li:first-child { border-top: none; }
.of-prog { font-size: 12px; color: var(--accent); min-width: 132px; text-align: right; flex-shrink: 0; }
.of-prog.muted { color: var(--muted); }
.of-prog.error { color: var(--danger-text); }

/* Haladás-csík: felül a művelet neve + százalék, alatta a csík, alatta a méret. */
.prog-top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.prog-label { color: var(--muted); }
.prog-pct { font-weight: 700; font-variant-numeric: tabular-nums; }
.prog-bar { height: 5px; background: var(--panel2); border-radius: 3px; overflow: hidden; margin: 4px 0 3px; }
.prog-bar > i { display: block; height: 100%; background: var(--accent); border-radius: 3px; transition: width 0.2s ease; }
.prog-size { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.offer-actions { display: flex; gap: 8px; margin-top: 12px; }
.empty-state { color: var(--muted); text-align: center; padding: 32px 12px; line-height: 1.6; }

.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--toast-bg); color: var(--toast-text); padding: 12px 18px; border-radius: 11px;
  font-size: 14px; box-shadow: var(--shadow); z-index: 100; max-width: 90vw;
}
.toast.error { background: var(--danger); color: #fff; }

/* Kis képernyőn a kártya kitölti a szélességet, de marad a levegős margó. */
@media (max-width: 560px) {
  body { padding: 16px 12px; }
  .center-card { padding: 26px 20px; }
  .content { padding: 16px; }
  .me-name { max-width: 70px; }
  .topbar { padding: 10px 12px; }
}

/* Lezárt (átvett / elutasított / visszavont) küldemény: halványabb, hogy egy
   pillantással elváljon attól, amivel még dolgunk van. */
.offer-card.lezart { opacity: 0.72; background: transparent; border-style: dashed; }
.offer-card.lezart .offer-from { font-weight: 500; }
