/* =========================================================
   REZULTATI — VLASTITI LAYOUT
   Ne koristi .card ni .contentHeader iz starog sustava
========================================================= */

html,
body{
  height:100%;
}

body.page-results-app{
  margin:0;
  min-height:100dvh;
  height:100dvh;
  padding-bottom:var(--footerActualH, calc(var(--footerDockH) + var(--safeBottom)));
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--tableWrapBg) 72%, white) 0%,
      #f7f9fc 100%
    );
}

/* HEADER ostaje shared iz layout.css, samo ga uvažavamo jer je fixed */
body.page-results-app .topHeader{
  flex:0 0 auto;
}

/* MAIN mora krenuti ISPOD fixed headera */
.resultsAppMain{
  flex:1 1 auto;
  min-height:0;
  padding-top:var(--headerActualH, calc(var(--headerH) + var(--safeTop)));
  overflow:hidden;
  display:flex;
}

/* Glavni wrapper stranice */
.resultsShell{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  margin:10px 10px 0;
  border:1px solid var(--cardBorder);
  border-radius:18px;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--cardBg) 94%, white) 0%,
      color-mix(in srgb, var(--tableWrapBg) 45%, white) 100%
    );
  box-shadow:0 14px 32px rgba(15,23,42,.05);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* Gornji blok kartice */
.resultsHead{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 18px 12px;
  background:var(--contentHeaderBg);
  border-bottom:1px solid var(--cardBorder);
}

.resultsHeadMain{
  min-width:0;
  flex:1 1 auto;
}

#resultsTitle{
  margin:0;
  font-size:18px;
  font-weight:900;
}

.resultsHead .compMetaTop{
  font-size:13px;
  color:#666;
  margin-top:2px;
}

.resultsHead .compMetaSub{
  margin-top:6px;
  font-size:12px;
  line-height:1.35;
  color:#334155;
  opacity:.9;
  white-space:normal;
}

.resultsHead .compMetaSub b{
  font-weight:900;
  color:#0f172a;
}

.resultsHeadActions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.resultsHeadActions .btnPdf{
  white-space:nowrap;
}

/* Filteri */
.resultsFiltersBar{
  flex:0 0 auto;
  padding:12px 18px 14px;
  border-bottom:1px solid var(--cardBorder);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--contentHeaderBg) 88%, white),
      color-mix(in srgb, var(--contentHeaderBg) 40%, white)
    );
}

.resultsFilters{
  display:grid;
  grid-template-columns:repeat(3, minmax(220px, 1fr));
  gap:14px;
  padding:0;
  background:transparent;
  border:none;
}

.resultsFilters .f{
  min-width:0;
}

.resultsFilters .f label{
  display:block;
  font-size:11px;
  font-weight:900;
  margin:0 0 6px;
  color:#475569;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.resultsFilters .hint{
  font-size:11px;
  color:#64748b;
  margin-top:6px;
  line-height:1.25;
  opacity:.92;
}

.resultsFilters select{
  width:100%;
  height:40px;
  padding:0 12px;
  border-radius:12px;
  border:1px solid var(--cardBorder);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--cardBg) 96%, white),
      color-mix(in srgb, var(--tableWrapBg) 62%, white)
    );
  color:var(--tableText);
  font:inherit;
  box-shadow:0 1px 3px rgba(15,23,42,.03);
  outline:none;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.resultsFilters select:focus{
  border-color:var(--headerBg);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--headerBg) 14%, white);
}

.resultsFilters select:hover{
  transform:translateY(-1px);
}

/* Tablica je jedini scroll */
.resultsTableWrap{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  margin:0;
  border-top:none;
  border-left:none;
  border-right:none;
  border-bottom:none;
  border-radius:0;
  overflow-x:auto;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  box-shadow:none;
  isolation:isolate;
}

#table thead th{
  box-shadow:none;
}

.skeletonRow td{
  padding:10px 12px;
  background:transparent !important;
  border-bottom:1px solid var(--tableBorder, #dbe3ef);
}

.skeletonCell{
  height:44px;
  border-radius:10px;
  background:
    linear-gradient(
      90deg,
      #eee 25%,
      #ddd 37%,
      #eee 63%
    );
  background-size:400% 100%;
  animation:skeleton 1.2s infinite;
}

@keyframes skeleton{
  0%{ background-position:100% 0; }
  100%{ background-position:0 0; }
}

/* Footer */
.resultsFooter{
  flex:0 0 auto;
  padding:0 10px 8px;
}

.resultsFooterInner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:34px;
  padding:4px 10px;
  border:1px solid var(--cardBorder);
  border-radius:10px;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--cardBg) 92%, white) 0%,
      color-mix(in srgb, var(--tableWrapBg) 55%, white) 100%
    );
  box-shadow:0 6px 14px rgba(15,23,42,.04);
}

.resultsFooterLogo{
  width:84px;
  height:auto;
  display:block;
  opacity:.96;
}

.resultsFooterMeta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
  white-space:nowrap;
}

.resultsFooterVersion{
  font-size:12px;
  font-weight:800;
  color:var(--tableText);
}

.resultsFooterUpdated{
  font-size:11px;
  color:#64748b;
  line-height:1.1;
}

/* helperi iz stare results.css */
.badge-award{
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}

.aw1{ background:#fff3b0; border:1px solid #f2d15b; color:#7a5a00; }
.aw2{ background:#f2f2f2; border:1px solid #d6d6d6; color:#444; }
.aw3{ background:#f7d7c3; border:1px solid #e2a883; color:#6a3a1f; }
.awP{ background:#e7f1ff; border:1px solid #a8c9ff; color:#1e56a0; }

.badge-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  cursor:help;
  white-space:nowrap;
}

.statusDot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  flex:0 0 auto;
  opacity:.95;
}

.badge-status.isBlink .statusDot{
  animation:statusPulse 1.1s ease-in-out infinite;
}

@keyframes statusPulse{
  0%{ transform:scale(.8); opacity:.35; }
  50%{ transform:scale(1.15); opacity:1; }
  100%{ transform:scale(.8); opacity:.35; }
}

.stWait{ background:#fff3b0; border:1px solid #f2d15b; color:#7a5a00; }
.stProgress{ background:#fff1dd; border:1px solid #f5bf73; color:#9a5a00; }
.stLive{ background:#ffe1e1; border:1px solid #ff9b9b; color:#9b0000; }
.stNotStarted{ background:#e7f1ff; border:1px solid #a8c9ff; color:#1e56a0; }

td.cell-student{
  white-space:normal;
  line-height:1.25;
  word-break:break-word;
}

.tdBold{
  font-weight:900;
}

.tdDisc{
  font-weight:600;
  font-size:12.5px;
  letter-spacing:.05em;
}

.tdMentor{
  font-weight:500;
}

.badge-yesno{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid transparent;
  cursor:help;
}

.tdScore{
  font-weight:700;
  font-size:14px;
  letter-spacing:.02em;
}

.badge-yesno.yes{
  background:#e8f7ee;
  border-color:#b6ebc8;
  color:#0f7a3a;
}

.badge-yesno.no{
  background:#f2f4f7;
  border-color:#d7dce3;
  color:#4b5563;
}

/* Responsive */
@media (max-width: 1100px){
  .resultsFilters{
    grid-template-columns:repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 820px){
  body.page-results-app{
    height:auto;
    min-height:100vh;
    overflow:auto;
  }

  .resultsAppMain{
    display:block;
    overflow:visible;
    padding-top:var(--headerActualH, calc(var(--headerH) + var(--safeTop)));
  }

  .resultsShell{
    margin:0;
    border-radius:0;
    border-left:none;
    border-right:none;
    box-shadow:none;
  }

  .resultsHead{
    flex-direction:column;
    align-items:flex-start;
  }

  .resultsHeadActions{
    width:100%;
    justify-content:flex-start;
  }

  .resultsFiltersBar{
    padding:12px 14px;
  }

  .resultsFilters{
    grid-template-columns:1fr;
    gap:12px;
  }

  .resultsTableWrap{
    max-height:none;
  }

  .resultsFooter{
    padding:0 10px 10px;
  }

  .resultsFooterInner{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }

  .resultsFooterMeta{
    white-space:normal;
    flex-wrap:wrap;
  }
}
.btnTableFullscreen{
  display:none;
}

body.tableFullscreenOn{
  overflow:hidden;
}

.tableCloseBtn{
  position:fixed;
  top:calc(10px + var(--safeTop));
  right:calc(10px + var(--safeRight));
  z-index:10000;
  width:42px;
  height:42px;
  border:none;
  border-radius:999px;
  background:rgba(15,23,42,.82);
  color:#fff;
  font-size:28px;
  line-height:1;
  display:none;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

body.tableFullscreenOn .tableCloseBtn{
  display:flex;
}

@media (max-width: 820px){
  .resultsHead{
    padding:12px 14px 10px;
    gap:10px;
  }

  #resultsTitle.titleBadge{
    padding:0;
    border:none;
    border-radius:0;
    background:none;
    box-shadow:none;
    color:var(--tableText);
    font-size:19px;
    letter-spacing:.02em;
  }

  .resultsHead .compMetaTop{
    font-size:12px;
    line-height:1.35;
  }

  .resultsHeadActions{
    gap:8px;
  }

  .resultsHeadActions .badge{
    padding:5px 9px;
    font-size:11px;
  }

  .btnTableFullscreen{
    display:inline-flex;
  }

  .resultsFiltersBar{
    padding:10px 12px;
  }

  .resultsFilters{
    grid-template-columns:1fr;
    gap:10px;
  }

  .resultsFilters .f label{
    font-size:10px;
    margin-bottom:4px;
  }

  .resultsFilters .hint{
    display:none;
  }

  .resultsFilters select{
    height:38px;
    border-radius:10px;
    padding:0 10px;
  }

  body.tableFullscreenOn .topHeader,
  body.tableFullscreenOn .appFooter,
  body.tableFullscreenOn .resultsHead,
  body.tableFullscreenOn .resultsFiltersBar{
    display:none !important;
  }

  body.tableFullscreenOn .resultsAppMain{
    padding-top:0;
    height:100dvh;
  }

  body.tableFullscreenOn .resultsShell{
    margin:0;
    border:none;
    border-radius:0;
    box-shadow:none;
    background:var(--cardBg);
    height:100dvh;
  }

  body.tableFullscreenOn .resultsTableWrap{
    height:100dvh;
    max-height:none;
    padding:0;
  }

  body.tableFullscreenOn .resultsTableWrap{
  overflow-x:auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

  body.tableFullscreenOn #table{
    min-width:760px;
  }
}


.btnMobileToggle{display:none;}
@media (max-width: 820px){.resultsHead{padding:10px 12px 8px;}.resultsHeadMain{width:100%;}.resultsHeadActions{width:100%;flex-wrap:wrap;}.resultsHeadActions .btnPdf{flex:0 0 auto;height:34px;padding:7px 11px;font-size:12px;}.btnMobileToggle{display:inline-flex;}.resultsHeadActions .badge{margin-left:auto;}.resultsFiltersBar{padding:8px 12px 10px;border-top:1px solid var(--cardBorder);}.resultsFilters{grid-template-columns:1fr 1fr;gap:8px 10px;}.resultsFilters .f:first-child{grid-column:1 / -1;}.resultsFilters .f label{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--statsNeutralText, #64748b);}.resultsFilters select{height:36px;font-size:12px;}body.resultsFiltersCollapsed .resultsFiltersBar{display:none;}body.tableFullscreenOn .btnMobileToggle{display:none !important;}}
@media (max-width: 520px){.resultsTableWrap{max-height:calc(100dvh - 360px);}}
