:root{ --bs-primary:#762124; }

/* Βασικά */
html, body { height:100%; }
body { background-color:#f8f9fa; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }
th{ position:sticky; top:0; background:var(--bs-body-bg); z-index:2; }
.page-header{ border-bottom:1px solid var(--bs-border-color); padding-bottom:.5rem; margin-bottom:1rem; }
.table-fixed{ table-layout:fixed; }
.wrap{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.form-label .text-muted{ cursor:help; }

/* Header/Footer */
header{
  background:linear-gradient(135deg,#762124 0%,#8e4257 100%);
  color:#fff; padding:2rem 0; text-align:center; margin-bottom:2rem;
}
footer{
  text-align:center; margin-top:40px; padding:18px; color:#fff;
  background:linear-gradient(135deg,#762124 0%,#8e4257 100%);
}

/* Κάρτες υπηρεσιών */
.service-box{ border:1px solid #eee; border-radius:12px; padding:16px; background:#fff; }
.service-icon{ font-size:2rem; }

/* Drop area */
.drop-area{
  border:2px dashed #ccc; padding:20px; text-align:center; margin-bottom:12px;
  cursor:pointer; border-radius:10px;
}
.drop-area.dragover{ background:#e9ecef; }

/* Όνομα αρχείου / βοηθητικά */
.filename{ font-size:.85rem; color:#666; }
#alert-box{ position:fixed; top:12px; left:50%; transform:translateX(-50%); z-index:1050; max-width:92vw; }
#alert-box.hidden{ display:none; }
#alert-inner .alert-actions{ margin-left:12px; white-space:nowrap; }

/* AUEB brand κουμπιά */
.btn-primary{ background-color:#762124; border-color:#762124; }
.btn-primary:hover{ background-color:#5e1b1e; border-color:#5e1b1e; }

/* Loading overlay */
.loading-overlay{
  position:fixed; inset:0; display:none; align-items:center; justify-content:center;
  background:rgba(255,255,255,.75); z-index:9999; backdrop-filter:blur(2px);
}
.loading-overlay.show{ display:flex; }
.spinner{
  width:56px; height:56px; border-radius:50%;
  border:6px solid #ddd; border-top-color:#762124; animation:spin 1s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg) } }
.loading-text{ margin-top:12px; color:#333; font:500 14px system-ui; }

/* === FIX: highlight όταν έχει επιλεγεί αρχείο === */
.service-box.has-file{
  border-color:#198754;
  box-shadow:0 0 0 3px rgba(25,135,84,.15);
  transform:translateY(-1px);
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.service-box.has-file .drop-area{
  background:#f1f9f4;
  border-color:#198754;
}

/* Pills για πολλά αρχεία */
.file-pills{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.file-pills .pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 8px; border:1px solid #ddd; border-radius:999px;
  font-size:.85rem; background:#f8f9fa;
}
.file-pills .pill .remove{
  border:none; background:transparent; cursor:pointer; line-height:1;
}

/* Progress bar για AJAX uploads */
.progress-holder{
  height:4px; background:#eee; border-radius:999px; overflow:hidden; margin-top:8px; display:none;
}
.progress-holder .bar{ height:100%; width:0; }
.ajax-form.uploading .progress-holder{ display:block; }
.ajax-form.uploading button[type="submit"]{ pointer-events:none; opacity:.7; }

/* Info dot (tooltip trigger) */
.form-label .text-muted[role="button"]{ cursor:help; }
.info-dot{
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%;
  font-size:12px; line-height:1; color:#fff; background:#6b1406;
  margin-left:.4rem; cursor:help;
}

/* Language switcher (ΕΛ / EN) */
header { position: relative; }
.lang-switcher-wrap {
  position: absolute; top: 12px; right: 16px; z-index: 10;
}
.lang-switcher {
  display: inline-flex; border-radius: 999px; overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.55); background: rgba(0, 0, 0, 0.15);
}
.lang-switcher button {
  border: none; background: transparent; color: #fff;
  padding: 6px 10px; font-size: 0.8rem; font-weight: 600; cursor: pointer; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
}
.lang-switcher .lang-flag {
  display: block; width: 24px; height: 24px; object-fit: cover; border-radius: 2px;
}
.lang-switcher button:hover { background: rgba(255, 255, 255, 0.12); }
.lang-switcher button.active { background: #fff; color: #762124; }
header:not(.hero) .lang-switcher,
.wrap > .lang-switcher-wrap .lang-switcher {
  border-color: #ccc; background: #f8f9fa;
}
header:not(.hero) .lang-switcher button,
.wrap > .lang-switcher-wrap .lang-switcher button { color: #333; }
header:not(.hero) .lang-switcher button.active,
.wrap > .lang-switcher-wrap .lang-switcher button.active {
  background: #762124; color: #fff;
}

/* PWA install banner */
.pwa-install-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 10000;
  background: linear-gradient(135deg, #762124 0%, #8e4257 100%);
  color: #fff; padding: 12px 14px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.2);
}
.pwa-install-inner {
  max-width: 720px; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
}
.pwa-install-text { font-size: 0.9rem; line-height: 1.35; flex: 1 1 200px; }
.pwa-install-actions { display: flex; gap: 8px; flex-shrink: 0; }

/* Mobile / PWA standalone */
@media (max-width: 576px) {
  header { padding: 1.25rem 0.75rem; }
  header h1 { font-size: 1.35rem; }
  .service-box { padding: 12px; }
  .drop-area { padding: 14px; font-size: 0.9rem; }
  .lang-switcher-wrap { top: 8px; right: 8px; }
  main.container { padding-bottom: 72px; }
}
@media (display-mode: standalone) {
  body { padding-top: env(safe-area-inset-top, 0px); }
}

/* PWA help button in header */
.pwa-help-header-btn {
  display: block;
  margin: 10px auto 0;
  max-width: 280px;
  font-weight: 600;
}

/* PWA help modal */
.pwa-help-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10001;
  align-items: flex-end;
  justify-content: center;
  padding: 12px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}
.pwa-help-modal.show {
  display: flex;
}
.pwa-help-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.pwa-help-dialog {
  position: relative;
  width: 100%;
  max-width: 420px;
  max-height: 85vh;
  background: #fff;
  border-radius: 16px 16px 12px 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}
.pwa-help-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: linear-gradient(135deg, #762124 0%, #8e4257 100%);
  color: #fff;
}
.pwa-help-header h5 { margin: 0; font-size: 1rem; }
.btn-close-pwa {
  border: none;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}
.pwa-help-body {
  padding: 16px;
  overflow-y: auto;
  font-size: 0.92rem;
}
.pwa-help-platform {
  color: #762124;
  font-weight: 700;
  margin: 12px 0 8px;
}
.pwa-help-platform:first-of-type { margin-top: 0; }
.pwa-help-steps {
  margin: 0 0 8px;
  padding-left: 1.2rem;
}
.pwa-help-steps li { margin-bottom: 6px; line-height: 1.4; }
.pwa-help-note { margin-top: 12px; }
.pwa-help-footer { padding: 12px 16px 16px; border-top: 1px solid #eee; }



