.odin-v2-document-meta-primary{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .7rem;margin-top:.28rem;color:var(--odin-muted,#7892a5);font-size:calc(.57rem + var(--odin-v2-content-font-boost,.083333rem))}
.odin-v2-document-meta-primary>span,.odin-v2-document-meta-primary>a{display:inline-flex;align-items:center;gap:.28rem;min-width:0;color:inherit;text-decoration:none}
.odin-v2-document-meta-primary>*+*:before{content:"";width:1px;height:.72rem;margin-right:.3rem;background:var(--odin-line,#203449)}
.odin-v2-document-meta-primary i{width:13px;color:color-mix(in srgb,var(--odin-v2-document-row-status,var(--odin-info,#37c6e6)) 72%,var(--odin-muted,#7892a5));text-align:center}
.odin-v2-document-meta-primary b{color:var(--odin-text,#eefaff);font-weight:650}
.odin-v2-document-meta-primary a:hover,.odin-v2-document-meta-primary a:hover b{color:var(--odin-v2-document-row-status,var(--odin-info,#37c6e6))}
.odin-v2-document-meta-primary .fa-download{width:auto;margin-left:.05rem;font-size:.62rem;opacity:.76}
.odin-v2-document-meta-secondary{margin-top:.22rem;opacity:.78}
.odin-v2-document-sharing-trigger{cursor:help;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;font-weight:700;outline:0;box-shadow:none!important}
.odin-v2-document-sharing-trigger i{color:inherit!important}
.odin-v2-document-sharing-label{border-bottom:1px dotted color-mix(in srgb,var(--odin-muted,#7892a5) 42%,transparent)}
.odin-v2-document-sharing-trigger:hover,.odin-v2-document-sharing-trigger:focus-visible{background:transparent!important;color:var(--odin-accent-1,var(--odin-info,#37c6e6))!important}
.odin-v2-document-sharing-trigger:hover .odin-v2-document-sharing-label,.odin-v2-document-sharing-trigger:focus-visible .odin-v2-document-sharing-label{border-bottom-color:var(--odin-accent-1,var(--odin-info,#37c6e6))}
.odin-v2-document-sharing-trigger:hover i,.odin-v2-document-sharing-trigger:focus-visible i{color:var(--odin-accent-1,var(--odin-info,#37c6e6))!important}
.odin-v2-document-sharing-tooltip{--bs-tooltip-max-width:340px!important;--bs-tooltip-bg:#0b1826!important;--bs-tooltip-color:#e8f1f7!important;--bs-tooltip-opacity:1!important}
.odin-v2-document-sharing-tooltip .tooltip-inner{padding:.78rem .86rem!important;border:1px solid #314657!important;border-radius:var(--odin-v2-radius,8px)!important;background:#0b1826!important;color:#e8f1f7!important;text-align:left!important;box-shadow:0 14px 30px rgba(0,0,0,.30)!important}
.odin-document-sharing-tooltip-content{display:grid;gap:.5rem;text-align:left!important}
.odin-document-sharing-tooltip-content strong{display:block;padding-bottom:.35rem;border-bottom:1px solid color-mix(in srgb,var(--odin-accent-1,var(--odin-info,#37c6e6)) 24%,#314657);font-size:.74rem;line-height:1.35;color:var(--odin-accent-1,var(--odin-info,#37c6e6))!important;letter-spacing:.01em;text-align:left!important}
.odin-document-sharing-tooltip-content ul{display:grid;gap:.36rem;margin:0;padding:0;list-style:none;color:#c0cfda!important;font-size:.69rem;text-align:left!important}
.odin-document-sharing-tooltip-content li{position:relative;padding-left:.82rem;line-height:1.42;text-align:left!important}
.odin-document-sharing-tooltip-content li:before{content:"";position:absolute;left:0;top:.5em;width:4px;height:4px;border-radius:50%;background:var(--odin-accent-1,var(--odin-info,#37c6e6))}
.odin-document-sharing-tooltip-content small{color:#9db0bf!important;font-size:.66rem;line-height:1.4;text-align:left!important}

.odin-v2-document-context-line{display:grid;grid-template-columns:minmax(0,460px) 280px;align-items:center;justify-content:start;column-gap:.8rem;margin-top:.45rem;min-width:0}
.odin-v2-document-context{display:inline-flex;align-items:center;gap:.35rem;min-width:0;color:var(--odin-muted,#7892a5);font-size:calc(.57rem + var(--odin-v2-content-font-boost,.083333rem));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.odin-v2-document-context i{width:14px;flex:0 0 14px;color:color-mix(in srgb,var(--odin-v2-document-row-status,var(--odin-info,#37c6e6)) 74%,var(--odin-muted,#7892a5));text-align:center}
.odin-v2-document-student-link{color:inherit;text-decoration:none;font-weight:700;border-bottom:1px dotted color-mix(in srgb,var(--odin-muted,#7892a5) 42%,transparent)}
.odin-v2-document-student-link:hover,.odin-v2-document-student-link:focus-visible{color:var(--odin-accent-1,var(--odin-info,#37c6e6));border-bottom-color:var(--odin-accent-1,var(--odin-info,#37c6e6));outline:0}
.odin-v2-document-validity{width:280px;min-width:280px;max-width:280px}
.odin-v2-document-validity-track{position:relative;height:18px;border:1px solid var(--odin-line,#203449);border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--odin-bg,#07111f) 76%,transparent)}
.odin-v2-document-validity-track>span{position:absolute;inset:0 auto 0 0;min-width:0;border-radius:inherit;background:color-mix(in srgb,var(--odin-v2-document-row-status,var(--odin-info,#37c6e6)) 38%,transparent);transition:width .2s ease,background-color .2s ease}
.odin-v2-document-validity-track>b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 .45rem;color:var(--odin-text,#eefaff);font-size:calc(.51rem + var(--odin-v2-content-font-boost,.083333rem));font-weight:700;letter-spacing:.01em;white-space:nowrap;text-shadow:0 1px 1px rgba(0,0,0,.28)}
.odin-v2-document-row:hover .odin-v2-document-validity-track>span,.odin-v2-document-row:focus-within .odin-v2-document-validity-track>span{background:color-mix(in srgb,var(--odin-v2-document-row-status,var(--odin-info,#37c6e6)) 58%,transparent)}

/* Status filters use semantic document colors, not Accent 1. */
.odin-v2-document-filters button{--odin-filter-status:var(--odin-muted,#7892a5);display:inline-flex;align-items:center;gap:.42rem;border-radius:var(--odin-v2-radius,8px)!important}
.odin-v2-document-filters button[data-document-filter="missing"]{--odin-filter-status:var(--doc-red,#ff6470)}
.odin-v2-document-filters button[data-document-filter="progress"]{--odin-filter-status:var(--doc-blue,#438df8)}
.odin-v2-document-filters button[data-document-filter="complete"]{--odin-filter-status:var(--doc-green,#3dce93)}
.odin-v2-document-filters button[data-document-filter="expiring"]{--odin-filter-status:var(--doc-yellow,#f7bd4b)}
.odin-v2-document-filters button>span{display:inline-flex;align-items:center;justify-content:center;min-width:1.45rem;height:1.2rem;padding:0 .34rem;border:1px solid color-mix(in srgb,var(--odin-filter-status) 52%,var(--odin-line,#203449));border-radius:999px;background:color-mix(in srgb,var(--odin-filter-status) 14%,transparent);color:color-mix(in srgb,var(--odin-filter-status) 88%,var(--odin-text,#eefaff));font-size:.58rem;font-weight:800;line-height:1;vertical-align:middle;transform:translateY(.01rem)}
.odin-v2-document-filters button.active{border-color:color-mix(in srgb,var(--odin-filter-status) 72%,var(--odin-line,#203449))!important;background:color-mix(in srgb,var(--odin-filter-status) 13%,transparent)!important;color:color-mix(in srgb,var(--odin-filter-status) 82%,var(--odin-text,#eefaff))!important;box-shadow:none!important}
.odin-v2-document-filters button.active>span{background:color-mix(in srgb,var(--odin-filter-status) 24%,transparent);border-color:color-mix(in srgb,var(--odin-filter-status) 76%,var(--odin-line,#203449));color:color-mix(in srgb,var(--odin-filter-status) 96%,white)}
.odin-v2-document-filters button:not(.active):hover,.odin-v2-document-filters button:not(.active):focus-visible{border-color:color-mix(in srgb,var(--odin-filter-status) 48%,var(--odin-line,#203449))!important;color:color-mix(in srgb,var(--odin-filter-status) 68%,var(--odin-text,#eefaff))!important}

/* Summary boxes double as status filters. */
.odin-v2-document-stats>div{cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease}
.odin-v2-document-stats>div:hover,.odin-v2-document-stats>div:focus-visible{background:color-mix(in srgb,var(--odin-stat-color,var(--odin-muted,#7892a5)) 6%,transparent);outline:0}
.odin-v2-document-stats>div:nth-child(1){--odin-stat-color:var(--doc-red,#ff6470)}
.odin-v2-document-stats>div:nth-child(2){--odin-stat-color:var(--doc-blue,#438df8)}
.odin-v2-document-stats>div:nth-child(3){--odin-stat-color:var(--doc-green,#3dce93)}
.odin-v2-document-stats>div:nth-child(4){--odin-stat-color:var(--doc-yellow,#f7bd4b)}
.odin-v2-document-stats>div.is-filter-active{background:color-mix(in srgb,var(--odin-stat-color) 9%,transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--odin-stat-color) 76%,transparent)}
.odin-v2-document-stats span{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;column-gap:.7rem!important;align-items:stretch!important;min-height:2.2rem}
.odin-v2-document-stats small{grid-column:1;grid-row:1}
.odin-v2-document-stats em{grid-column:1;grid-row:2!important}
.odin-v2-document-stats strong{grid-column:2;grid-row:1 / span 2;align-self:stretch!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;min-width:1.4em}

/* Standard action sizing: list actions and toolbar buttons share one control height. */
.odin-v2-document-action,
.odin-v2-documents-toolbar .btn{
  min-height:32px;
  padding:.36rem .68rem!important;
  border-radius:var(--odin-v2-radius,8px)!important;
  font-size:.72rem!important;
  line-height:1.15!important;
  font-weight:650;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.42rem;
}
.odin-v2-document-action{min-width:104px;justify-content:space-between}

[data-bs-theme="light"] .odin-v2-document-meta-primary b{color:var(--odin-text,#213240)}
[data-bs-theme="light"] .odin-v2-document-validity-track{background:#eef4f8}
[data-bs-theme="light"] .odin-v2-document-validity-track>b{color:var(--odin-text,#213240);text-shadow:none}
[data-bs-theme="light"] .odin-v2-document-sharing-trigger{background:transparent!important;color:inherit!important}
[data-bs-theme="light"] .odin-v2-document-sharing-label{border-bottom-color:color-mix(in srgb,var(--odin-muted,#607487) 42%,transparent)!important}
[data-bs-theme="light"] .odin-v2-document-sharing-trigger i{color:inherit!important}
[data-bs-theme="light"] .odin-v2-document-sharing-trigger:hover,[data-bs-theme="light"] .odin-v2-document-sharing-trigger:focus-visible{background:transparent!important;color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info,#37c6e6)) 78%,#172433)!important}
[data-bs-theme="light"] .odin-v2-document-sharing-trigger:hover .odin-v2-document-sharing-label,[data-bs-theme="light"] .odin-v2-document-sharing-trigger:focus-visible .odin-v2-document-sharing-label{border-bottom-color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info,#37c6e6)) 78%,#172433)!important}
[data-bs-theme="light"] .odin-v2-document-sharing-trigger:hover i,[data-bs-theme="light"] .odin-v2-document-sharing-trigger:focus-visible i{color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info,#37c6e6)) 78%,#172433)!important}
[data-bs-theme="light"] .odin-v2-document-sharing-tooltip{--bs-tooltip-bg:#fff!important;--bs-tooltip-color:#213240!important}
[data-bs-theme="light"] .odin-v2-document-sharing-tooltip .tooltip-inner{background:#fff!important;color:#213240!important;border-color:#d6e0e8!important;box-shadow:0 12px 26px rgba(32,50,64,.14)!important}
[data-bs-theme="light"] .odin-document-sharing-tooltip-content strong{border-bottom-color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info,#37c6e6)) 20%,#d6e0e8);color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info,#37c6e6)) 78%,#172433)!important}
[data-bs-theme="light"] .odin-document-sharing-tooltip-content ul{color:#4d6272!important}
[data-bs-theme="light"] .odin-document-sharing-tooltip-content small{color:#627989!important}
[data-bs-theme="light"] .odin-v2-document-filters button>span{background:color-mix(in srgb,var(--odin-filter-status) 9%,#fff);border-color:color-mix(in srgb,var(--odin-filter-status) 42%,#d7e2ea);color:color-mix(in srgb,var(--odin-filter-status) 78%,#213240)}
[data-bs-theme="light"] .odin-v2-document-filters button.active{background:color-mix(in srgb,var(--odin-filter-status) 9%,#fff)!important;color:color-mix(in srgb,var(--odin-filter-status) 72%,#213240)!important}
[data-bs-theme="light"] .odin-v2-document-filters button.active>span{background:color-mix(in srgb,var(--odin-filter-status) 16%,#fff);border-color:color-mix(in srgb,var(--odin-filter-status) 68%,#d7e2ea);color:color-mix(in srgb,var(--odin-filter-status) 86%,#172433)}
[data-bs-theme="light"] .odin-v2-document-stats>div.is-filter-active{background:color-mix(in srgb,var(--odin-stat-color) 7%,#fff)}

@media(max-width:991.98px){
  .odin-v2-document-context-line{grid-template-columns:minmax(0,1fr) 250px}
  .odin-v2-document-validity{width:250px;min-width:250px;max-width:250px}
}
@media(max-width:767px){
  .odin-v2-document-row-title{align-items:flex-start;flex-wrap:wrap;row-gap:.38rem}
  .odin-v2-document-row-title h3{flex:1 1 150px;min-width:0}
  .odin-v2-document-status{flex:0 0 auto;max-width:100%;white-space:nowrap;line-height:1.15;text-align:center}
  .odin-v2-document-meta-primary{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:.34rem;margin-top:.38rem}
  .odin-v2-document-meta-primary>span,.odin-v2-document-meta-primary>a{width:100%;align-items:flex-start;white-space:normal}
  .odin-v2-document-meta-primary>*+*:before{display:none}
  .odin-v2-document-meta-primary i{flex:0 0 13px;margin-top:.08rem}
  .odin-v2-document-context-line{display:flex;align-items:flex-start;flex-direction:column;gap:.35rem}
  .odin-v2-document-context{white-space:normal;overflow:visible;text-overflow:clip}
  .odin-v2-document-validity{width:100%;min-width:0;max-width:none;flex:0 1 auto}
  .odin-v2-document-sharing-tooltip{--bs-tooltip-max-width:min(88vw,340px)!important}
  .odin-v2-document-action,
  .odin-v2-documents-toolbar .btn{
    min-height:42px;
    padding:.58rem .82rem!important;
    font-size:.78rem!important;
  }
  .odin-v2-document-action{min-width:118px;width:auto!important;margin-top:.38rem!important}
}

/* Semantic state bars: the pattern communicates state before the label is read. */
@keyframes odinDocumentStripeMove{from{background-position:0 0}to{background-position:32px 0}}
@keyframes odinDocumentAlertPulse{0%,100%{filter:brightness(1);opacity:.94}50%{filter:brightness(1.08);opacity:1}}
.odin-v2-document-row[data-document-state] .odin-v2-document-validity-track{--state-color:var(--odin-v2-document-row-status,var(--odin-info,#37c6e6));border-color:color-mix(in srgb,var(--state-color) 32%,var(--odin-line,#203449));background:color-mix(in srgb,var(--state-color) 5%,var(--odin-bg,#07111f))}
.odin-v2-document-row[data-document-state] .odin-v2-document-validity-track>span{background-color:color-mix(in srgb,var(--state-color) 52%,transparent);background-image:none}
.odin-v2-document-row[data-document-state="missing"] .odin-v2-document-validity-track{--state-color:var(--doc-red,#ff6470)}
.odin-v2-document-row[data-document-state="missing"] .odin-v2-document-validity-track>span{width:20%!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.17) 0 8px,transparent 8px 16px);background-size:32px 32px;animation:odinDocumentStripeMove 3.2s linear infinite}
.odin-v2-document-row[data-document-state="progress"] .odin-v2-document-validity-track{--state-color:var(--doc-blue,#438df8)}
.odin-v2-document-row[data-document-state="progress"] .odin-v2-document-validity-track>span{width:46%!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.15) 0 8px,transparent 8px 16px);background-size:32px 32px;animation:odinDocumentStripeMove 3.8s linear infinite}
.odin-v2-document-row[data-document-state="review"] .odin-v2-document-validity-track{--state-color:var(--doc-blue,#438df8)}
.odin-v2-document-row[data-document-state="review"] .odin-v2-document-validity-track>span{width:72%!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.12) 0 8px,transparent 8px 16px);background-size:32px 32px;animation:odinDocumentStripeMove 4.6s linear infinite}
.odin-v2-document-row[data-document-state="attention"] .odin-v2-document-validity-track{--state-color:var(--doc-red,#ff6470)}
.odin-v2-document-row[data-document-state="attention"] .odin-v2-document-validity-track>span{width:36%!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.18) 0 8px,transparent 8px 16px);background-size:32px 32px;animation:odinDocumentStripeMove 3s linear infinite,odinDocumentAlertPulse 3.6s ease-in-out infinite}
.odin-v2-document-row[data-document-state="medical_clearance_required"] .odin-v2-document-validity-track{--state-color:var(--doc-yellow,#f7bd4b)}
.odin-v2-document-row[data-document-state="medical_clearance_required"] .odin-v2-document-validity-track>span{width:40%!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.16) 0 8px,transparent 8px 16px);background-size:32px 32px;animation:odinDocumentStripeMove 3.5s linear infinite}
.odin-v2-document-row[data-document-state="complete"] .odin-v2-document-validity-track{--state-color:var(--doc-green,#3dce93)}
.odin-v2-document-row[data-document-state="complete"] .odin-v2-document-validity-track>span{background-image:none;animation:none}
.odin-v2-document-row[data-document-state="expiring"] .odin-v2-document-validity-track{--state-color:var(--doc-yellow,#f7bd4b)}
.odin-v2-document-row[data-document-state="expiring"] .odin-v2-document-validity-track>span{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.14) 0 8px,transparent 8px 16px);background-size:32px 32px;animation:odinDocumentStripeMove 4.8s linear infinite}
.odin-v2-document-row[data-document-state="expired"] .odin-v2-document-validity-track{--state-color:var(--doc-red,#ff6470)}
.odin-v2-document-row[data-document-state="expired"] .odin-v2-document-validity-track>span{min-width:8px!important;width:8px!important;background-image:none;animation:odinDocumentAlertPulse 3.4s ease-in-out infinite}
.odin-v2-document-row[data-document-state="missing"] .odin-v2-document-validity-track>b:before{content:"!";display:inline-grid;place-items:center;width:13px;height:13px;margin-right:.32rem;border:1px solid currentColor;border-radius:50%;font-size:.5rem;font-weight:900}
.odin-v2-document-row[data-document-state="progress"] .odin-v2-document-validity-track>b:before{content:"↻";margin-right:.3rem;font-size:.72rem}
.odin-v2-document-row[data-document-state="review"] .odin-v2-document-validity-track>b:before{content:"⌛";margin-right:.3rem;font-size:.65rem}
.odin-v2-document-row[data-document-state="attention"] .odin-v2-document-validity-track>b:before{content:"!";display:inline-grid;place-items:center;width:13px;height:13px;margin-right:.32rem;border:1px solid currentColor;border-radius:3px;font-size:.5rem;font-weight:900}
.odin-v2-document-row[data-document-state="medical_clearance_required"] .odin-v2-document-validity-track>b:before{content:"+";display:inline-grid;place-items:center;width:13px;height:13px;margin-right:.32rem;border:1px solid currentColor;border-radius:50%;font-size:.58rem;font-weight:900}
.odin-v2-document-row[data-document-state="complete"] .odin-v2-document-validity-track>b:before{content:"✓";margin-right:.3rem;font-size:.68rem;font-weight:900}
.odin-v2-document-row[data-document-state="expiring"] .odin-v2-document-validity-track>b:before{content:"◷";margin-right:.3rem;font-size:.68rem}
.odin-v2-document-row[data-document-state="expired"] .odin-v2-document-validity-track>b:before{content:"×";margin-right:.3rem;font-size:.72rem;font-weight:900}
@media(prefers-reduced-motion:reduce){.odin-v2-document-row[data-document-state] .odin-v2-document-validity-track>span{animation:none!important}}

/* Student cards use a narrower column; keep relation tooltips above the shell and inside the viewport. */
.odin-v2-student-document-tooltip{z-index:3000!important}
.odin-v2-student-document-tooltip .tooltip-inner{max-width:min(340px,calc(100vw - 24px))!important}
