/* Data UNIVC Product Foundation v0.8.22.0
   Shared visual tokens and interaction primitives. Feature pages remain responsible
   for their information architecture; this file provides the common product language. */
:root{
  --du-canvas:#f3f6f4;
  --du-surface:#ffffff;
  --du-surface-muted:#f7faf8;
  --du-surface-strong:#edf5f0;
  --du-brand-950:#082f23;
  --du-brand-900:#0b3d2d;
  --du-brand-800:#0e5940;
  --du-brand-700:#13704f;
  --du-brand-600:#1b825d;
  --du-brand-100:#dceee5;
  --du-brand-50:#f0f8f4;
  --du-accent:#a9cb55;
  --du-ink-950:#14211b;
  --du-ink-800:#314139;
  --du-ink-700:#46574f;
  --du-ink-600:#66756e;
  --du-ink-500:#85918b;
  --du-line:#dce5e0;
  --du-line-strong:#cbd8d1;
  --du-success:#18714f;
  --du-warning:#9a650b;
  --du-danger:#a43f3f;
  --du-info:#34658f;
  --du-radius-sm:8px;
  --du-radius:12px;
  --du-radius-lg:18px;
  --du-shadow-1:0 1px 2px rgba(10,48,34,.04),0 8px 24px rgba(10,48,34,.035);
  --du-shadow-2:0 8px 30px rgba(7,47,34,.09);
  --du-ease:cubic-bezier(.2,.7,.2,1);
}

/* Shared form language */
.du-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.du-field-label{color:var(--du-ink-600);font-size:8px;font-weight:820;letter-spacing:.09em;text-transform:uppercase}
.du-control{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--du-line-strong);border-radius:10px;background:var(--du-surface);color:var(--du-ink-800);font:inherit;outline:0;transition:border-color .16s var(--du-ease),box-shadow .16s var(--du-ease),background .16s var(--du-ease)}
.du-control:hover{border-color:#b7c9c0}
.du-control:focus,.du-control:focus-visible{border-color:var(--du-brand-600);box-shadow:0 0 0 3px rgba(27,130,93,.10);outline:0}
.du-control:disabled{background:#f0f3f1;color:var(--du-ink-500);cursor:not-allowed}
.du-control-help{color:var(--du-ink-500);font-size:8.5px;line-height:1.45}
.du-password{position:relative}
.du-password .du-control{padding-right:42px}
.du-password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:31px;height:31px;display:grid;place-items:center;padding:0;border:0;border-radius:8px;background:transparent;color:var(--du-ink-600)}
.du-password-toggle:hover{background:var(--du-brand-50);color:var(--du-brand-800)}
.du-password-toggle svg{width:16px;height:16px}

/* Long-running integrations: one product-wide language for TALLOS, SEI and imports. */
.du-operation-progress{padding:14px 15px;border:1px solid var(--du-line);border-radius:12px;background:linear-gradient(180deg,#fff,var(--du-surface-muted));box-shadow:var(--du-shadow-1);color:var(--du-ink-800)}
.du-operation-progress.hidden{display:none!important}
.du-operation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.du-operation-copy{min-width:0}
.du-operation-copy strong{display:block;color:var(--du-ink-950);font-size:11px;line-height:1.25}
.du-operation-copy span{display:block;margin-top:3px;color:var(--du-ink-600);font-size:9px;line-height:1.45}
.du-operation-percent{flex:0 0 auto;color:var(--du-brand-800);font-size:12px;font-weight:820;font-variant-numeric:tabular-nums}
.du-progress-track{position:relative;height:7px;overflow:hidden;border-radius:999px;background:#dfe8e3}
.du-progress-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--du-brand-700),#39a176);transition:width .35s var(--du-ease)}
.du-operation-progress.is-indeterminate .du-progress-fill{width:34%;animation:du-progress-indeterminate 1.15s infinite var(--du-ease)}
@keyframes du-progress-indeterminate{0%{transform:translateX(-120%)}100%{transform:translateX(330%)}}
.du-operation-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:10px;color:var(--du-ink-600);font-size:8.5px}
.du-operation-meta strong{color:var(--du-ink-950);font-weight:760}
.du-operation-stage{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:var(--du-brand-800);font-size:8.5px;font-weight:720}
.du-operation-stage::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--du-brand-600);box-shadow:0 0 0 3px rgba(27,130,93,.10)}
.du-operation-progress.is-error{border-color:#eccaca;background:#fff8f8}.du-operation-progress.is-error .du-operation-stage{color:var(--du-danger)}.du-operation-progress.is-error .du-operation-stage::before{background:var(--du-danger)}
.du-operation-progress.is-success{border-color:#bfddcf;background:#f5fbf7}.du-operation-progress.is-success .du-progress-fill{width:100%;background:var(--du-success)}

/* Shared status pill */
.du-status{display:inline-flex;align-items:center;gap:6px;min-height:27px;padding:0 9px;border:1px solid var(--du-line);border-radius:999px;background:rgba(255,255,255,.72);color:var(--du-ink-600);font-size:8.5px;font-weight:690}
.du-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--du-success);box-shadow:0 0 0 3px rgba(24,113,79,.09)}
.du-status.warning::before{background:#d49b2f}.du-status.error::before{background:#ca4a4a}

/* Shared icon rules */
.du-icon{display:inline-grid;place-items:center;flex:0 0 auto;color:currentColor}
.du-icon svg{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Product motion: subtle by default, never required for comprehension. */
.du-enter{animation:du-enter .2s var(--du-ease)}
@keyframes du-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.du-enter,.du-operation-progress.is-indeterminate .du-progress-fill{animation:none!important}.du-progress-fill{transition:none!important}}


/* Shared searchable select — DTNH/DCS filters and faculty analytics. */
.du-combobox-native-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}
.du-combobox{position:relative;width:100%;min-width:0}
.du-combobox-control{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;min-height:38px;border:1px solid var(--du-line,#cbd8d1);border-radius:9px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.du-combobox:focus-within .du-combobox-control,.du-combobox.open .du-combobox-control{border-color:var(--du-brand-700,#0e8058);box-shadow:0 0 0 3px rgba(14,128,88,.09)}
.du-combobox-input{width:100%;min-width:0;height:36px;padding:0 5px 0 10px;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:var(--du-ink-800,#263d33);font:inherit;font-size:10px}
.du-combobox-input::placeholder{color:var(--du-ink-500,#83918a);opacity:1}
.du-combobox-clear,.du-combobox-toggle{display:flex;align-items:center;justify-content:center;width:31px;height:31px;padding:0;border:0;background:transparent;color:var(--du-ink-500,#66756e);font-size:15px;cursor:pointer}
.du-combobox-clear:hover,.du-combobox-toggle:hover{color:var(--du-brand-900,#07563a);background:var(--du-brand-50,#eef8f4);border-radius:8px}
.du-combobox-clear[hidden]{display:none}
.du-combobox-menu{position:absolute;z-index:190;top:calc(100% + 5px);left:0;right:0;max-height:min(300px,42vh);overflow:auto;padding:5px;border:1px solid var(--du-line,#cbd8d1);border-radius:10px;background:#fff;box-shadow:0 14px 34px rgba(15,52,36,.16);overscroll-behavior:contain}
.du-combobox-option{display:block;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--du-ink-800,#263d33);text-align:left;font:inherit;font-size:10.5px;line-height:1.35;cursor:pointer;white-space:normal;overflow-wrap:anywhere}
.du-combobox-option:hover,.du-combobox-option.active{background:var(--du-brand-50,#eef8f4);color:var(--du-brand-950,#06452f)}
.du-combobox-option.selected{font-weight:800;color:var(--du-brand-900,#07563a)}
.du-combobox-empty{padding:12px 10px;color:var(--du-ink-500,#66756e);font-size:10px;text-align:center}
.du-combobox.disabled .du-combobox-control{background:#f5f7f6;border-color:var(--du-line,#d9e2dd);box-shadow:none}
.du-combobox.disabled .du-combobox-input,.du-combobox.disabled .du-combobox-toggle,.du-combobox.disabled .du-combobox-clear{color:var(--du-ink-500,#83918a);cursor:not-allowed}
.faculty-filter-grid .du-combobox-control{min-height:40px;border-radius:10px}.faculty-filter-grid .du-combobox-input{height:38px;font-size:inherit}.faculty-filter-grid .du-combobox-menu{z-index:210}
.table-filter .du-combobox-control{min-height:34px;height:34px;border-radius:6px}.table-filter .du-combobox-input{height:32px;padding-left:9px;font-size:10px}.table-filter .du-combobox-clear,.table-filter .du-combobox-toggle{width:27px;height:27px;font-size:14px}
.analysis-bar .du-combobox-control{min-height:36px}.analysis-bar .du-combobox-input{height:34px}
@media(max-width:760px){.du-combobox-menu{max-height:38vh}.du-combobox-option{padding:10px;font-size:11px}}
