/* EDMS production UI — static CSS (no Vite/Node required). */

:root {

    /* App shell */
    --edms-sidebar-bg: #071832;
    --edms-sidebar-hover: rgba(255, 255, 255, 0.06);
    --edms-sidebar-text: #e8eef7;
    --edms-sidebar-muted: #8ea0b8;
    --edms-sidebar-width: 15.5rem; /* ~248px */

    /* Brand / primary (purple) */
    --edms-primary: #6f4fea;
    --edms-primary-hover: #5d3fd4;
    --edms-primary-soft: rgba(111, 79, 234, 0.12);

    /* Surfaces */
    --edms-page-bg: #f4f6fa;
    --edms-card-bg: #ffffff;
    --edms-border: #e5e7eb;

    /* Text */
    --edms-text: #0f172a;
    --edms-text-muted: #64748b;

    /* Semantic */
    --edms-success: #16a34a;
    --edms-warning: #d97706;
    --edms-danger: #dc2626;
    --edms-info: #2563eb;

    /* Geometry */
    --edms-radius: 0.5rem; /* ~8px */
    --edms-radius-sm: 0.375rem;
    --edms-card-padding: 1rem 1.1rem;
    --edms-header-height: 4.25rem; /* ~68px */
    --edms-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);

    /* Legacy aliases (keep existing components working) */
    --background: var(--edms-page-bg);
    --surface: var(--edms-card-bg);
    --ink: var(--edms-text);
    --foreground: #334155;
    --muted: var(--edms-text-muted);
    --border: var(--edms-border);
    --accent: var(--edms-primary);
    --accent-soft: var(--edms-primary-soft);
    --accent-hover: var(--edms-primary-hover);
    --success: var(--edms-success);
    --danger: var(--edms-danger);
    --font-display: "Segoe UI Variable", "Segoe UI", "Helvetica Neue", ui-sans-serif, system-ui, sans-serif;
}

* {
 box-sizing: border-box;
}

body {

    margin: 0;
    font-family: var(--font-display);
    color: var(--foreground);
    background: var(--background);
}

.min-h-screen {
 min-height: 100vh;
}

.antialiased {
 -webkit-font-smoothing: antialiased;
}

.relative {
 position: relative;
}

.fixed {
 position: fixed;
}

.inset-0 {
 inset: 0;
}

.pointer-events-none {
 pointer-events: none;
}

.mx-auto {
 margin-left: auto; margin-right: auto;
}

.max-w-\[1600px\] {
 max-width: 1600px;
}

.max-w-xl {
 max-width: 36rem;
}

.max-w-xs {
 max-width: 20rem;
}

.max-w-2xl {
 max-width: 42rem;
}

.max-w-3xl {
 max-width: 48rem;
}

.edms-btn, button, .edms-input, input, select, textarea {
 font: inherit;
}

.edms-btn {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border: 1px solid var(--edms-border);
    background: #fff;
    color: var(--edms-text);
    border-radius: var(--edms-radius);
    padding: .5rem .85rem;
    cursor: pointer;
    text-decoration: none;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.2;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.edms-btn:hover {

    background: #f8fafc;
    border-color: #cbd5e1;
}

.edms-btn-primary {

    background: var(--edms-primary);
    border-color: var(--edms-primary);
    color: #fff;
    box-shadow: none;
}

.edms-btn-primary:hover {

    background: var(--edms-primary-hover);
    border-color: var(--edms-primary-hover);
    color: #fff;
}

.edms-input,
input[type="email"],
input[type="password"],
input[type="text"],
input[type="number"],
input[type="date"],
input[type="file"],
select,
textarea {

    width: 100%;
    border: 1px solid var(--edms-border);
    background: #fff;
    border-radius: var(--edms-radius);
    padding: .55rem .7rem;
    color: var(--edms-text);
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.edms-input:focus,
input:focus,
select:focus,
textarea:focus {

    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
}

.edms-card {

    border: 1px solid var(--edms-border);
    background: var(--edms-card-bg);
    border-radius: var(--edms-radius);
    padding: var(--edms-card-padding);
    box-shadow: var(--edms-shadow);
}

.edms-nav-link {

    display: block;
    border-radius: .55rem;
    padding: .55rem .7rem;
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
}

.edms-nav-link:hover {

    background: var(--accent-soft);
}

.edms-nav-link.is-active {

    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 700;
    box-shadow: inset 3px 0 0 var(--accent);
}

label {
 display: block; margin-bottom: .35rem; font-size: .85rem; font-weight: 600; color: #374151;
}

.space-y-1 > * + * {
 margin-top: .25rem;
}

.space-y-2 > * + * {
 margin-top: .5rem;
}

.space-y-3 > * + * {
 margin-top: .75rem;
}

.space-y-4 > * + * {
 margin-top: 1rem;
}

.space-y-6 > * + * {
 margin-top: 1.5rem;
}

.text-sm {
 font-size: .9rem;
}

.text-xs {
 font-size: .75rem;
}

.text-xl {
 font-size: 1.25rem;
}

.text-2xl {
 font-size: 1.5rem;
}

.text-3xl {
 font-size: 1.875rem;
}

.font-medium {
 font-weight: 600;
}

.font-semibold {
 font-weight: 600;
}

.font-mono {
 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.text-red-600, .text-danger, .text-red-700 {
 color: #9b2c2c;
}

.text-green-800 {
 color: #1f6b4a;
}

.text-\[var\(--ink\)\] {
 color: var(--ink);
}

.text-\[var\(--muted\)\] {
 color: var(--muted);
}

.text-\[var\(--foreground\)\] {
 color: var(--foreground);
}

.text-\[var\(--accent\)\] {
 color: var(--accent);
}

.overflow-x-auto {
 overflow-x: auto;
}

.overflow-y-auto {
 overflow-y: auto;
}

.p-0 {
 padding: 0;
}

.p-3 {
 padding: .75rem;
}

.px-2 {
 padding-left: .5rem; padding-right: .5rem;
}

.px-3 {
 padding-left: .75rem; padding-right: .75rem;
}

.px-4 {
 padding-left: 1rem; padding-right: 1rem;
}

.py-2 {
 padding-top: .5rem; padding-bottom: .5rem;
}

.py-3 {
 padding-top: .75rem; padding-bottom: .75rem;
}

.py-4 {
 padding-top: 1rem; padding-bottom: 1rem;
}

.py-6 {
 padding-top: 1.5rem; padding-bottom: 1.5rem;
}

.pb-2 {
 padding-bottom: .5rem;
}

.pb-4 {
 padding-bottom: 1rem;
}

.mt-1 {
 margin-top: .25rem;
}

.mt-2 {
 margin-top: .5rem;
}

.mt-3 {
 margin-top: .75rem;
}

.mt-4 {
 margin-top: 1rem;
}

.mb-6 {
 margin-bottom: 1.5rem;
}

.truncate {
 overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.whitespace-nowrap {
 white-space: nowrap;
}

.uppercase {
 text-transform: uppercase;
}

.tracking-tight {
 letter-spacing: -0.02em;
}

.tracking-wide {
 letter-spacing: .04em;
}

.tracking-\[0\.16em\] {
 letter-spacing: .16em;
}

.border {
 border: 1px solid var(--border);
}

.border-b {
 border-bottom: 1px solid var(--border);
}

.border-t {
 border-top: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
}

.border-\[var\(--border\)\] {
 border-color: var(--border);
}

.min-w-full {
 width: 100%; min-width: 48rem;
}

.min-w-0 {
 min-width: 0;
}

.w-full {
 width: 100%;
}

.w-48 {
 width: 12rem;
}

.w-40 {
 width: 10rem;
}

table {
 border-collapse: collapse;
}

.flex {
 display: flex;
}

.inline-flex {
 display: inline-flex;
}

.grid {
 display: grid;
}

.flex-1 {
 flex: 1 1 auto;
}

.flex-col {
 flex-direction: column;
}

.flex-wrap {
 flex-wrap: wrap;
}

.gap-2 {
 gap: .5rem;
}

.gap-3 {
 gap: .75rem;
}

.gap-4 {
 gap: 1rem;
}

.gap-6 {
 gap: 1.5rem;
}

.items-start {
 align-items: flex-start;
}

.items-center {
 align-items: center;
}

.items-end {
 align-items: flex-end;
}

.justify-between {
 justify-content: space-between;
}

.justify-center {
 justify-content: center;
}

.rounded-md {
 border-radius: .5rem;
}

.rounded-lg {
 border-radius: .75rem;
}

.rounded-xl {
 border-radius: .9rem;
}

.shadow-\[0_10px_30px_rgba\(48\,38\,22\,0\.05\)\] {
 box-shadow: 0 10px 30px rgba(48, 38, 22, 0.05);
}

.bg-\[var\(--surface\)\]\/90 {
 background: color-mix(in srgb, var(--surface) 90%, transparent);
}

.bg-white\/40 {
 background: rgba(255,255,255,.4);
}

.bg-white\/50 {
 background: rgba(255,255,255,.5);
}

.edms-badge {

    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .18rem .55rem;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .02em;
    border: 1px solid transparent;
    background: #f1f5f9;
    color: #475569;
    line-height: 1.2;
}

.edms-badge-current {

    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
    text-transform: none;
}

.edms-row-current {
 background: rgba(214, 122, 58, 0.06);
}

.edms-bell-badge {

    position: absolute;
    right: -0.25rem;
    top: -0.25rem;
    display: flex;
    min-width: 1.25rem;
    height: 1.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--accent);
    padding: 0 .25rem;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
}

.edms-bell-panel {

    position: absolute;
    right: 0;
    z-index: 40;
    margin-top: .5rem;
    width: 22rem;
    max-width: min(22rem, calc(100vw - 2rem));
    border: 1px solid var(--border);
    border-radius: .75rem;
    background: var(--surface);
    box-shadow: 0 12px 30px rgba(48, 38, 22, 0.12);
}

[x-cloak] {
 display: none !important;
}

.underline {
 text-decoration: underline;
}

.underline-offset-2 {
 text-underline-offset: 2px;
}

.opacity-70 {
 opacity: .7;
}

.max-h-80 {
 max-height: 20rem;
}

.h-fit {
 height: fit-content;
}

.cursor-pointer {
 cursor: pointer;
}

.cursor-not-allowed {
 cursor: not-allowed;
}

.block {
 display: block;
}

.hidden {
 display: none;
}

@media (min-width: 640px) {

    .login-trust {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.5rem;
        text-align: left;
    }

    .login-trust li:not(:last-child) {
        border-right: 1px solid #e5e7eb;
        padding-right: 0.5rem;
    }
}

@media (min-width: 1024px) {

    .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
    .lg\:flex-row { flex-direction: row; }
    .lg\:items-end { align-items: flex-end; }
    .lg\:justify-between { justify-content: space-between; }
    .lg\:min-w-\[34rem\] { min-width: 34rem; }
    .lg\:grid-cols-\[220px_minmax\(0\,1fr\)\] { grid-template-columns: 220px minmax(0, 1fr); }
    .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 768px) {

    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .md\:col-span-2 { grid-column: span 2 / span 2; }


    .doc-fv__mobile-bar {
        display: none;
    }

    .doc-fv__filters-wrap .doc-fv__filters {
        display: grid;
    }


    .doc-fv__mobile-bar {
        display: none;
    }

    .doc-fv__filters-wrap .doc-fv__filters,
    .doc-fv__filters-wrap .doc-fv__filter-bar {
        display: flex;
    }


    .project-setup-folders__picker {
        grid-template-columns: 1fr auto;
        align-items: end;
    }
}

.login-body {

    margin: 0;
    min-height: 100vh;
    font-family: "Segoe UI Variable", "Segoe UI", "Helvetica Neue", ui-sans-serif, system-ui, sans-serif;
    background: #f3f4f6;
    color: #111827;
}

.login-page {

    display: grid;
    min-height: 100vh;
    grid-template-columns: 1fr;
    min-width: 0;
}

.login-hero {

    position: relative;
    display: none;
    overflow: hidden;
    min-width: 0;
    background: linear-gradient(165deg, #0b1220 0%, #111827 55%, #0f172a 100%);
    color: #fff;
    padding: 2.5rem 2rem 1.75rem;
}

.login-hero__glow {

    position: absolute;
    inset: auto -20% -30% 20%;
    height: 70%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.28), transparent 65%);
    pointer-events: none;
}

.login-hero__preview {

    position: absolute;
    right: -6%;
    bottom: 8%;
    width: min(78%, 34rem);
    opacity: 0.28;
    transform: rotate(-6deg);
    pointer-events: none;
}

.login-preview-card {

    border-radius: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(15, 23, 42, 0.72);
    backdrop-filter: blur(8px);
    padding: 1rem;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

.login-preview-card__stats {

    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
    margin-bottom: 0.85rem;
}

.login-preview-card__stats div {

    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.06);
    padding: 0.55rem 0.65rem;
}

.login-preview-card__stats span {

    display: block;
    font-size: 0.65rem;
    color: rgba(255, 255, 255, 0.55);
}

.login-preview-card__stats strong {

    font-size: 1rem;
}

.login-preview-card__body {

    display: grid;
    grid-template-columns: 1.4fr 0.8fr;
    gap: 0.75rem;
}

.login-preview-card__table {

    display: grid;
    gap: 0.4rem;
}

.login-preview-card__table div {

    height: 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
}

.login-preview-card__table div:nth-child(odd) {
 width: 92%;
}

.login-preview-card__table div:nth-child(even) {
 width: 70%;
}

.login-preview-card__chart {

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.05);
    padding: 0.75rem;
}

.login-preview-card__donut {

    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    background:
        conic-gradient(#3b82f6 0 42%, #22c55e 42% 68%, #a855f7 68% 88%, #64748b 88% 100%);
    mask: radial-gradient(circle at center, transparent 48%, #000 50%);
    -webkit-mask: radial-gradient(circle at center, transparent 48%, #000 50%);
}

.login-preview-card__chart p {

    margin: 0;
    font-size: 0.65rem;
    color: rgba(255, 255, 255, 0.6);
}

.login-hero__content {

    position: relative;
    z-index: 1;
    max-width: 34rem;
    width: 100%;
    margin-top: 1.5rem;
    min-width: 0;
}

.login-brand {

    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 2.75rem;
}

.login-brand__mark {

    display: inline-flex;
    flex-shrink: 0;
    filter: drop-shadow(0 8px 16px rgba(37, 99, 235, 0.35));
}

.login-brand__name {

    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
}

.login-brand__tag {

    margin: 0.3rem 0 0;
    font-size: 0.78rem;
    color: rgba(226, 232, 240, 0.72);
}

.login-hero__title {

    margin: 0;
    font-size: clamp(1.7rem, 2.1vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.2;
    overflow-wrap: break-word;
}

.login-hero__lead {

    margin: 1rem 0 0;
    max-width: 30rem;
    font-size: 1rem;
    line-height: 1.55;
    color: rgba(226, 232, 240, 0.78);
}

.login-features {

    list-style: none;
    margin: 2.25rem 0 0;
    padding: 0;
    display: grid;
    gap: 1.15rem;
}

.login-features li {

    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    min-width: 0;
}

.login-features__icon {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.65rem;
    flex-shrink: 0;
}

.login-features__icon--blue {
 background: rgba(37, 99, 235, 0.2); color: #60a5fa;
}

.login-features__icon--purple {
 background: rgba(168, 85, 247, 0.2); color: #c084fc;
}

.login-features__icon--green {
 background: rgba(34, 197, 94, 0.18); color: #4ade80;
}

.login-features strong {

    display: block;
    font-size: 0.95rem;
    font-weight: 700;
}

.login-features span {

    display: block;
    margin-top: 0.15rem;
    font-size: 0.85rem;
    line-height: 1.45;
    color: rgba(226, 232, 240, 0.68);
    overflow-wrap: break-word;
}

.login-hero__copy {

    position: absolute;
    left: 3rem;
    bottom: 1.35rem;
    z-index: 1;
    margin: 0;
    font-size: 0.75rem;
    color: rgba(148, 163, 184, 0.85);
}

.login-panel {

    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: #f3f4f6;
    padding: 1.25rem 1.25rem 1.5rem;
}

.login-panel__top {

    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.65rem;
}

.login-chip {

    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #374151;
    border-radius: 999px;
    padding: 0.4rem 0.75rem;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: default;
    opacity: 0.9;
}

.login-help {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #4b5563;
    text-decoration: none;
}

.login-panel__main {

    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    width: 100%;
    max-width: 28rem;
    margin: 0 auto;
    padding: 1.5rem 0 0.5rem;
}

.login-card {

    width: 100%;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 2rem 1.75rem 1.75rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
}

.login-card__title {

    margin: 0;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #111827;
}

.login-card__subtitle {

    margin: 0.4rem 0 0;
    color: #6b7280;
    font-size: 0.95rem;
}

.login-form {

    margin-top: 1.6rem;
}

.login-label {

    display: block;
    margin: 0 0 0.4rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #374151;
}

.login-form .login-label:not(:first-of-type) {

    margin-top: 1rem;
}

.login-field {

    position: relative;
}

.login-field__icon {

    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    display: inline-flex;
    pointer-events: none;
}

.login-input,
.login-form input.login-input {

    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 0.65rem;
    background: #fff;
    color: #111827;
    padding: 0.78rem 2.6rem 0.78rem 2.65rem;
    font-size: 0.95rem;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.login-input--password {

    padding-right: 2.75rem;
}

.login-input:focus {

    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.login-field__toggle {

    position: absolute;
    right: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: #9ca3af;
    padding: 0.35rem;
    cursor: pointer;
    display: inline-flex;
}

.login-error {

    margin: 0.4rem 0 0;
    font-size: 0.82rem;
    color: #b91c1c;
}

.login-form__row {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.95rem;
}

.login-remember {

    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-size: 0.88rem;
    color: #4b5563;
    cursor: pointer;
}

.login-remember input {

    width: auto;
    margin: 0;
    accent-color: #2563eb;
}

.login-link {

    border: 0;
    background: none;
    padding: 0;
    color: #2563eb;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.login-link:hover {
 text-decoration: underline;
}

.login-hint {

    margin: 0.55rem 0 0;
    font-size: 0.8rem;
    color: #6b7280;
    line-height: 1.4;
}

.login-submit {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    width: 100%;
    margin-top: 1.15rem;
    border: 0;
    border-radius: 0.65rem;
    background: #2563eb;
    color: #fff;
    font-size: 0.98rem;
    font-weight: 700;
    padding: 0.85rem 1rem;
    cursor: pointer;
    box-shadow: 0 10px 20px rgba(37, 99, 235, 0.25);
}

.login-submit:hover {
 background: #1d4ed8;
}

.login-submit:disabled {
 opacity: 0.7; cursor: wait;
}

.login-or {

    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1.15rem 0;
    color: #9ca3af;
    font-size: 0.82rem;
}

.login-or::before,
.login-or::after {

    content: "";
    flex: 1;
    height: 1px;
    background: #e5e7eb;
}

.login-sso {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 0.65rem;
    background: #fff;
    color: #111827;
    font-size: 0.95rem;
    font-weight: 600;
    padding: 0.8rem 1rem;
    cursor: pointer;
}

.login-sso:hover {
 background: #f9fafb;
}

.login-access {

    margin: 1.2rem 0 0;
    text-align: center;
    font-size: 0.88rem;
    color: #6b7280;
}

.login-trust {

    list-style: none;
    margin: 0;
    padding: 0.85rem 0.5rem;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    border-top: 1px solid #e5e7eb;
}

.login-trust li {

    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: #6b7280;
}

.login-trust svg {
 flex-shrink: 0; margin-top: 0.1rem; color: #9ca3af;
}

.login-trust strong {

    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #374151;
}

.login-trust span {

    display: block;
    font-size: 0.72rem;
    color: #9ca3af;
}

@media (min-width: 960px) {

    .login-page {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    }

    .login-hero {
        display: flex;
        flex-direction: column;
    }

    .login-panel {
        padding: 1.5rem 2rem 1.75rem;
    }

    .login-panel__main {
        max-width: 26.5rem;
    }


    .doc-fv {
        grid-template-columns: 17rem minmax(0, 1fr);
    }

    .doc-folder-pane {
        position: sticky;
        top: 1rem;
    }


    .doc-fv {
        grid-template-columns: 17.5rem minmax(0, 1fr);
    }
}

@media (max-width: 959px) {

    .login-panel__main {
        padding-top: 0.75rem;
    }
}

.shell-body {

    margin: 0;
    min-height: 100vh;
    background: var(--edms-page-bg);
    color: var(--edms-text);
    font-family: var(--font-display);
}

.shell {

    display: grid;
    min-height: 100vh;
    grid-template-columns: 1fr;
    background: var(--edms-page-bg);
}

.shell-sidebar {

    --shell-accent: var(--edms-primary);
    --shell-accent-soft: var(--edms-primary-soft);
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    width: min(var(--edms-sidebar-width), calc(100vw - 2.5rem));
    display: flex;
    flex-direction: column;
    background: var(--edms-sidebar-bg);
    color: var(--edms-sidebar-text);
    border-radius: 0;
    box-shadow: 4px 0 24px rgba(7, 24, 50, 0.18);
    transform: translateX(-105%);
    transition: transform 0.22s ease;
    overflow: hidden;
}

.shell-sidebar.is-open {
 transform: translateX(0);
}

.shell-backdrop {

    position: fixed;
    inset: 0;
    z-index: 30;
    background: rgba(15, 23, 42, 0.45);
}

.shell-sidebar__brand {

    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 1rem 0.9rem 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    min-height: var(--edms-header-height);
}

.shell-brand-name {

    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fff;
    line-height: 1.1;
}

.shell-brand-tag {

    margin: 0.28rem 0 0;
    font-size: 0.62rem;
    line-height: 1.35;
    font-weight: 500;
    color: var(--edms-sidebar-muted);
    max-width: 10rem;
}

.shell-sidebar__close {

    margin-left: auto;
    border: 0;
    background: transparent;
    color: var(--edms-sidebar-muted);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.shell-nav {

    flex: 1;
    overflow: auto;
    padding: 0.55rem 0.65rem 0.85rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.35) transparent;
}

.shell-nav-list {

    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.1rem;
}

.shell-nav-section {

    margin: 0.95rem 0 0.28rem;
    padding: 0 0.75rem;
    font-size: 0.62rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #7f90a8;
    line-height: 1.2;
    list-style: none;
}

.shell-nav-section:first-child {
    margin-top: 0.2rem;
}

.shell-nav-divider {

    list-style: none;
    height: 1px;
    margin: 0.7rem 0.55rem 0.35rem;
    background: rgba(255, 255, 255, 0.08);
    border: 0;
}

.shell-nav-link {

    position: relative;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    border: 0;
    background: transparent;
    color: #d5deea;
    text-decoration: none;
    border-radius: 0.65rem;
    padding: 0.62rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.shell-nav-link:hover {

    background: var(--edms-sidebar-hover);
    color: #fff;
}

.shell-nav-link.is-active {

    background: linear-gradient(90deg, rgba(111, 79, 234, 0.34) 0%, rgba(111, 79, 234, 0.16) 100%);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(139, 108, 245, 0.18);
}

.shell-nav-link.is-disabled {

    opacity: 0.4;
    cursor: not-allowed;
}

.shell-nav-link--toggle {
 justify-content: flex-start;
}

.shell-nav-chevron {

    margin-left: auto;
    color: #7f90a8;
    transition: transform 0.15s ease;
    flex-shrink: 0;
}

.shell-nav-chevron.is-open {
 transform: rotate(180deg);
}

.shell-nav-badge {

    margin-left: auto;
    min-width: 1.4rem;
    height: 1.25rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--shell-accent);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.shell-nav-sub {

    list-style: none;
    margin: 0.15rem 0 0;
    padding: 0.1rem 0.35rem 0.15rem 1.05rem;
    display: grid;
    gap: 0.12rem;
    position: relative;
}

.shell-nav-sub a {

    display: block;
    color: #94a3b8;
    text-decoration: none;
    font-size: 0.84rem;
    padding: 0.48rem 0.65rem 0.48rem 1.55rem;
    border-radius: 0.65rem;
}

.shell-nav-sub a:hover {
    color: #e8eef7;
    background: rgba(255, 255, 255, 0.04);
}

.shell-nav-sub a.is-active {
    color: #fff;
    background: var(--edms-primary);
}

.shell-sidebar__footer {

    position: relative;
    display: grid;
    gap: 0.45rem;
    padding: 0.65rem 0.75rem 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    margin-top: auto;
}

.shell-help-link {

    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    padding: 0.55rem 0.7rem;
    border-radius: 0.65rem;
    color: #c7d2e0;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease;
}

.shell-help-link:hover {
    background: var(--edms-sidebar-hover);
    color: #fff;
}

.shell-help-link svg {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    color: var(--edms-sidebar-muted);
}

.shell-help-link:hover svg {
    color: #dbe7f5;
}

.shell-user-card {

    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    background: rgba(255, 255, 255, 0.045);
    color: inherit;
    padding: 0.55rem 0.6rem;
    border-radius: 0.75rem;
    cursor: pointer;
    text-align: left;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.shell-user-card__meta strong {

    display: block;
    font-size: 0.84rem;
    color: #fff;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shell-user-card__meta span {

    display: block;
    margin-top: 0.1rem;
    font-size: 0.7rem;
    color: var(--edms-sidebar-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shell-avatar {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 999px;
    background: linear-gradient(145deg, #5b8def, #2563eb);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    flex-shrink: 0;
    overflow: hidden;
}

.shell-avatar--lg {
 width: 2.25rem; height: 2.25rem;
}

.shell-context {

    display: grid;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
}

.shell-context div {

    border: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(255, 255, 255, 0.03);
    border-radius: 0.55rem;
    padding: 0.45rem 0.6rem;
}

.shell-context span {

    display: block;
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
}

.shell-context strong {

    display: block;
    margin-top: 0.1rem;
    font-size: 0.8rem;
    color: #e2e8f0;
    font-weight: 600;
}

.shell-logout button {

    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: transparent;
    color: #cbd5e1;
    border-radius: 0.55rem;
    padding: 0.5rem 0.7rem;
    cursor: pointer;
    font-size: 0.85rem;
}

.shell-logout button:hover {
 background: rgba(255, 255, 255, 0.05); color: #fff;
}

.shell-copy {

    margin: 0.55rem 0 0;
    font-size: 0.65rem;
    color: #64748b;
    text-align: center;
}

.shell-main {

    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--edms-page-bg);
}

.shell-topbar {

    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: var(--edms-header-height);
    padding: 0.65rem 1rem;
    background: #fff;
    backdrop-filter: none;
    border-bottom: 1px solid var(--edms-border);
    box-shadow: none;
}

.shell-menu-btn,
.shell-icon-btn {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--edms-radius);
    border: 1px solid var(--edms-border);
    background: #fff;
    color: #475569;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    flex-shrink: 0;
}

.shell-topbar__greeting {

    display: none;
    min-width: 0;
}

.shell-topbar__greeting h1 {

    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--edms-text);
}

.shell-topbar__greeting p {

    margin: 0.1rem 0 0;
    font-size: 0.78rem;
    color: var(--edms-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shell-topbar__actions {

    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-left: auto;
    flex-shrink: 0;
}

.shell-topbar-switcher {

        display: block;
        min-width: 0;
        max-width: min(42rem, 55vw);
        flex: 1 1 24rem;
}

.shell-topbar-switcher .edms-input,
.shell-topbar-switcher select {

    height: 2.4rem;
    border-radius: 0.65rem;
    font-size: 0.82rem;
    padding: 0.35rem 0.65rem;
    background: #fff;
    width: 100%;
    min-width: 0;
}

.shell-topbar-switcher label {

    margin: 0;
    color: #6b7280;
    font-size: 0.65rem;
}

.shell-content {

        padding: 1.15rem 1.25rem 1.4rem;
}

.cc {
 display: grid; gap: 1rem; width: 100%; min-width: 0;
}

.cc-pagehead {

    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.cc-kicker {

    margin: 0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--edms-primary);
}

.cc-title {

    margin: 0.2rem 0 0;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--edms-text);
    line-height: 1.25;
}

.cc-subtitle {
 margin: 0.3rem 0 0; color: var(--edms-text-muted); font-size: 0.88rem; font-weight: 400;
}

.cc-card,
.cc-stat {

    background: var(--edms-card-bg);
    border: 1px solid var(--edms-border);
    border-radius: var(--edms-radius);
    box-shadow: var(--edms-shadow);
}

.cc-empty {
 padding: 1.5rem;
}

.cc-empty h3 {
 margin: 0 0 0.35rem;
}

.cc-empty p {
 margin: 0; color: #6b7280;
}

.cc-stats {

    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

.cc-stat {

    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 1rem 1.05rem;
}

.cc-stat__icon {

    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.cc-stat__icon--blue {
 background: var(--edms-primary-soft); color: var(--edms-primary);
}

.cc-stat__icon--purple {
 background: var(--edms-primary-soft); color: var(--edms-primary);
}

.cc-stat__icon--green {
 background: rgba(22, 163, 74, 0.12); color: var(--edms-success);
}

.cc-stat__icon--orange {
 background: rgba(217, 119, 6, 0.14); color: var(--edms-warning);
}

.cc-stat__label {
 margin: 0; font-size: 0.78rem; color: #64748b; font-weight: 500;
}

.cc-stat__value {
 margin: 0.15rem 0 0; font-size: 1.75rem; font-weight: 600; color: #0f172a; letter-spacing: -0.02em;
}

.cc-stat__meta {
 margin: 0.25rem 0 0; font-size: 0.78rem; font-weight: 600;
}

.cc-stat__meta.is-up {
 color: #16a34a;
}

.cc-stat__meta.is-down {
 color: #dc2626;
}

.cc-stat__meta.is-info {
 color: #2563eb;
}

.cc-stat__meta.is-danger {
 color: #dc2626;
}

.cc-stat__meta.is-warn {
 color: #d97706;
}

.cc-grid-2,
.cc-grid-3 {

    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

.cc-card {
 padding: 1rem 1.1rem 1.05rem;
}

.cc-card__head {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.cc-card__head h3 {

    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #0f172a;
}

.cc-card__head a,
.cc-card__foot a {

    color: var(--edms-primary);
    font-size: 0.84rem;
    font-weight: 500;
    text-decoration: none;
}

.cc-card__head a:hover,
.cc-card__foot a:hover {
 text-decoration: underline;
}

.cc-card__foot {

    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f5f9;
    font-size: 0.8rem;
    color: #64748b;
}

.cc-muted {
 margin: 0; color: #6b7280; font-size: 0.9rem;
}

.cc-table-wrap {
 overflow-x: auto;
}

.cc-table {

    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.cc-table th {

    text-align: left;
    color: #64748b;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.45rem 0.4rem;
    border-bottom: 1px solid #e5e7eb;
}

.cc-table td {

    padding: 0.7rem 0.4rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
    vertical-align: middle;
}

.cc-doclink {

    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #0f172a;
    font-weight: 700;
    text-decoration: none;
}

.cc-doclink:hover {
 color: var(--edms-primary);
}

.cc-docicon {

    display: inline-flex;
    color: #64748b;
}

.cc-pill {

    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.18rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.cc-pill--green {
 background: #dcfce7; color: #166534;
}

.cc-pill--blue {
 background: #dbeafe; color: #1d4ed8;
}

.cc-pill--amber {
 background: #ffedd5; color: #c2410c;
}

.cc-pill--red {
 background: #fee2e2; color: #b91c1c;
}

.cc-pill--slate {
 background: #f1f5f9; color: #475569;
}

.cc-workflow {

    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: center;
}

.cc-donut {

    width: 10.5rem;
    height: 10.5rem;
    border-radius: 50%;
    margin: 0 auto;
    display: grid;
    place-items: center;
}

.cc-donut__hole {

    width: 6.6rem;
    height: 6.6rem;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-content: center;
    text-align: center;
}

.cc-donut__hole strong {

    font-size: 1.4rem;
    color: #0f172a;
}

.cc-donut__hole span {

    font-size: 0.72rem;
    color: #64748b;
}

.cc-legend {

    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.cc-legend li {

    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.86rem;
    color: #475569;
}

.cc-legend i {

    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    display: inline-block;
}

.cc-legend b {
 margin-left: auto; color: #0f172a; font-weight: 500;
}

.cc-legend__total {

    margin-top: 0.35rem;
    padding-top: 0.5rem;
    border-top: 1px solid #e5e7eb;
    font-weight: 600;
    color: #0f172a;
}

.cc-list,
.cc-activity {

    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.7rem;
}

.cc-list li {

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.cc-list__title {

    color: #0f172a;
    font-weight: 500;
    text-decoration: none;
    font-size: 0.88rem;
}

.cc-list__title:hover {
 color: var(--edms-primary);
}

.cc-list p {

    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

.cc-activity li {

    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
}

.cc-activity__dot {

    width: 0.65rem;
    height: 0.65rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: #2563eb;
    flex-shrink: 0;
}

.cc-activity__title {

    margin: 0;
    font-size: 0.88rem;
    color: #0f172a;
    font-weight: 600;
    text-transform: capitalize;
}

.cc-activity__meta {

    margin: 0.15rem 0 0;
    font-size: 0.76rem;
    color: #64748b;
}

.cc-insight-label {

    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
}

.cc-statusbar {

    display: flex;
    height: 0.7rem;
    border-radius: 999px;
    overflow: hidden;
    background: #e5e7eb;
}

.cc-statusbar span {
 display: block; height: 100%;
}

.cc-status-legend {

    list-style: none;
    margin: 0.65rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.3rem;
}

.cc-status-legend li {

    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: #475569;
}

.cc-status-legend i {

    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
}

.cc-insight-grid {

    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    margin-top: 1rem;
}

.cc-insight {

    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    padding: 0.75rem;
    background: #f8fafc;
}

.cc-insight p {

    margin: 0;
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 700;
}

.cc-insight strong {

    display: block;
    margin-top: 0.25rem;
    font-size: 1.35rem;
    color: #0f172a;
}

.cc-insight strong.is-ready {
 color: #16a34a;
}

.cc-insight span {

    display: block;
    margin-top: 0.2rem;
    font-size: 0.72rem;
    color: #64748b;
}

.cc-footer {

    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.35rem 0.15rem 0.75rem;
    color: #64748b;
    font-size: 0.78rem;
}

@media (min-width: 720px) {

    .cc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cc-workflow { grid-template-columns: auto 1fr; }
}

@media (min-width: 1100px) {

    .shell {
        grid-template-columns: 17.5rem minmax(0, 1fr);
    }

    .shell-sidebar {
        position: sticky;
        top: 0;
        height: 100vh;
        width: 17.5rem;
        transform: none;
    }

    .shell-sidebar__close,
    .shell-menu-btn,
    .shell-backdrop { display: none; }

    .shell-topbar { padding: 0.95rem 1.35rem; }
    .shell-content { padding: 1.25rem 1.35rem 1.5rem; }
    .shell-topbar-switcher { display: block; min-width: 22rem; }
    .shell-topbar__greeting h1 { font-size: 1.2rem; }

    .cc-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cc-grid-2 { grid-template-columns: 1.35fr 0.9fr; }
    .cc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cc-footer {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }


    .doc-workspace.has-folders {
        grid-template-columns: 15.5rem minmax(0, 1fr);
    }


    .doc-workspace.has-folders {
        grid-template-columns: 17.5rem minmax(0, 1fr);
    }


    .shell {
        grid-template-columns: 18.75rem minmax(0, 1fr);
        gap: 0;
        transition: grid-template-columns 0.22s ease;
    }

    .shell:has(.shell-sidebar.is-collapsed) {
        grid-template-columns: 5.5rem minmax(0, 1fr);
    }

    .shell-sidebar {
        position: sticky;
        top: 0.75rem;
        height: calc(100vh - 1.5rem);
        width: 17.25rem;
        margin: 0.75rem 0 0.75rem 0.75rem;
        transform: none;
        align-self: start;
        transition: width 0.22s ease;
    }

    .shell-sidebar.is-collapsed {
        width: 4.75rem;
    }

    .shell-sidebar__collapse {
        display: inline-flex;
    }

    .shell-sidebar.is-collapsed .shell-sidebar__brand {
        flex-direction: column;
        align-items: center;
        gap: 0.55rem;
        padding: 0.85rem 0.45rem 0.7rem;
    }

    .shell-sidebar.is-collapsed .edms-brand--sidebar {
        flex: 0;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .shell-sidebar.is-collapsed .edms-brand--sidebar .edms-brand__logo {
        max-height: 1.65rem;
        max-width: 2.35rem;
        object-fit: cover;
        object-position: left center;
    }

    .shell-sidebar.is-collapsed .shell-nav-label,
    .shell-sidebar.is-collapsed .shell-nav-section,
    .shell-sidebar.is-collapsed .shell-nav-divider,
    .shell-sidebar.is-collapsed .shell-user-card__meta,
    .shell-sidebar.is-collapsed .shell-user-card__chevron,
    .shell-sidebar.is-collapsed .shell-copy {
        display: none;
    }

    .shell-sidebar.is-collapsed .shell-help-link {
        justify-content: center;
        padding: 0.65rem 0.5rem;
        gap: 0;
    }

    .shell-sidebar.is-collapsed .shell-nav-link {
        justify-content: center;
        padding: 0.72rem 0.55rem;
        gap: 0;
    }

    .shell-sidebar__close,
    .shell-menu-btn,
    .shell-backdrop { display: none; }

    .shell-topbar { padding: 0.95rem 1.35rem; }
    .shell-content { padding: 1.25rem 1.35rem 1.5rem; }
    .shell-topbar-switcher { display: block; min-width: 22rem; }
    .shell-topbar__greeting h1 { font-size: 1.2rem; }

    .cc-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cc-grid-2 { grid-template-columns: 1.35fr 0.9fr; }
    .cc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }


    .shell {
        grid-template-columns: 18.75rem minmax(0, 1fr);
        gap: 0;
        transition: grid-template-columns 0.22s ease;
    }

    .shell:has(.shell-sidebar.is-collapsed) {
        grid-template-columns: 5.5rem minmax(0, 1fr);
    }

    .shell-sidebar {
        position: sticky;
        top: 0.75rem;
        height: calc(100vh - 1.5rem);
        width: 17.25rem;
        margin: 0.75rem 0 0.75rem 0.75rem;
        transform: none;
        align-self: start;
        transition: width 0.22s ease;
    }

    .shell-sidebar.is-collapsed {
        width: 4.75rem;
    }

    .shell-sidebar__collapse {
        display: inline-flex;
    }

    .shell-sidebar.is-collapsed .shell-sidebar__brand {
        flex-direction: column;
        align-items: center;
        gap: 0.55rem;
        padding: 0.85rem 0.45rem 0.7rem;
    }

    .shell-sidebar.is-collapsed .edms-brand--sidebar {
        flex: 0;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .shell-sidebar.is-collapsed .edms-brand--sidebar .edms-brand__logo {
        max-height: 1.65rem;
        max-width: 2.35rem;
        object-fit: cover;
        object-position: left center;
    }

    .shell-sidebar.is-collapsed .shell-nav-label,
    .shell-sidebar.is-collapsed .shell-nav-section,
    .shell-sidebar.is-collapsed .shell-nav-divider,
    .shell-sidebar.is-collapsed .shell-user-card__meta,
    .shell-sidebar.is-collapsed .shell-user-card__chevron,
    .shell-sidebar.is-collapsed .shell-copy {
        display: none;
    }

    .shell-sidebar.is-collapsed .shell-help-link {
        justify-content: center;
        padding: 0.65rem 0.5rem;
        gap: 0;
    }

    .shell-sidebar.is-collapsed .shell-nav-link {
        justify-content: center;
        padding: 0.72rem 0.55rem;
        gap: 0;
    }

    .shell-sidebar__close,
    .shell-menu-btn,
    .shell-backdrop { display: none; }

    .shell-topbar { padding: 0.95rem 1.35rem; }
    .shell-content { padding: 1.25rem 1.35rem 1.5rem; }
    .shell-topbar-switcher { display: block; min-width: 22rem; }
    .shell-topbar__greeting h1 { font-size: 1.2rem; }

    .cc-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cc-grid-2 { grid-template-columns: 1.35fr 0.9fr; }
    .cc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cc-footer {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }


    .shell {
        grid-template-columns: var(--edms-sidebar-width) minmax(0, 1fr);
        gap: 0;
        transition: grid-template-columns 0.22s ease;
    }

    .shell:has(.shell-sidebar.is-collapsed) {
        grid-template-columns: 4.75rem minmax(0, 1fr);
    }

    .shell-sidebar {
        position: sticky;
        top: 0;
        height: 100vh;
        width: var(--edms-sidebar-width);
        margin: 0;
        transform: none;
        align-self: start;
        transition: width 0.22s ease;
        box-shadow: none;
        border-right: 1px solid rgba(255, 255, 255, 0.04);
    }

    .shell-sidebar.is-collapsed {
        width: 4.75rem;
    }

    .shell-sidebar__collapse {
        display: inline-flex;
    }

    .shell-sidebar.is-collapsed .shell-sidebar__brand {
        flex-direction: column;
        align-items: center;
        gap: 0.55rem;
        padding: 0.85rem 0.45rem 0.7rem;
        min-height: auto;
    }

    .shell-sidebar.is-collapsed .edms-brand--sidebar {
        flex: 0;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .shell-sidebar.is-collapsed .edms-brand--sidebar .edms-brand__logo {
        max-height: 1.65rem;
        max-width: 2.35rem;
        object-fit: cover;
        object-position: left center;
    }

    .shell-sidebar.is-collapsed .shell-sidebar__collapse {
        margin-left: 0;
        width: 2.15rem;
        height: 2.15rem;
    }

    .shell-sidebar.is-collapsed .shell-nav {
        padding-inline: 0.45rem;
    }

    .shell-sidebar.is-collapsed .shell-nav-link {
        justify-content: center;
        padding: 0.65rem 0.5rem;
        gap: 0;
    }

    .shell-sidebar.is-collapsed .shell-nav-label,
    .shell-sidebar.is-collapsed .shell-nav-section,
    .shell-sidebar.is-collapsed .shell-nav-divider,
    .shell-sidebar.is-collapsed .shell-user-card__meta,
    .shell-sidebar.is-collapsed .shell-user-card__chevron,
    .shell-sidebar.is-collapsed .shell-copy {
        display: none;
    }

    .shell-sidebar.is-collapsed .shell-help-link {
        justify-content: center;
        padding: 0.65rem 0.5rem;
        gap: 0;
    }

    .shell-sidebar.is-collapsed .shell-nav-badge {
        position: absolute;
        top: 0.35rem;
        right: 0.3rem;
        min-width: 1rem;
        height: 1rem;
        padding: 0 0.25rem;
        font-size: 0.58rem;
        margin-left: 0;
    }

    .shell-sidebar.is-collapsed .shell-nav-link.is-active::before {
        display: none;
    }

    .shell-sidebar.is-collapsed .shell-user-card {
        justify-content: center;
        padding: 0.35rem 0.15rem;
    }

    .shell-sidebar.is-collapsed .shell-sidebar__footer {
        padding-inline: 0.45rem;
    }

    .shell-sidebar.is-collapsed .shell-user-menu {
        left: calc(100% + 0.45rem);
        right: auto;
        bottom: 0;
        min-width: 14rem;
    }

    .shell-sidebar__close,
    .shell-menu-btn,
    .shell-backdrop { display: none; }

    .shell-topbar {
        padding: 0.65rem 1.25rem;
        min-height: var(--edms-header-height);
    }

    .shell-topbar__search {
        max-width: 20rem;
    }

    .shell-topbar__context {
        display: block;
    }

    .shell-content {
        padding: 1.15rem 1.25rem 1.4rem;
    }

    .shell-topbar__greeting--page h1 { font-size: 1.1rem; }

    .cc-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cc-grid-2 { grid-template-columns: 1.35fr 0.9fr; }
    .cc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cc-footer {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
}

.page-stack {

    display: grid;
    gap: 1rem;
}

.page-head {

    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.15rem;
}

.page-head__actions {

    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.page-title {

    margin: 0.2rem 0 0;
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--edms-text);
    line-height: 1.2;
}

.page-subtitle {

    margin: 0.35rem 0 0;
    color: var(--edms-text-muted);
    font-size: 0.9rem;
    max-width: 44rem;
}

.page-section-title {

    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--edms-text);
}

.page-stat-grid {

    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.65rem;
}

.page-stat {

    border: 1px solid var(--border);
    border-radius: 0.75rem;
    background: #f8fafc;
    padding: 0.75rem 0.85rem;
    font-size: 0.86rem;
    color: var(--muted);
}

.page-stat strong {

    display: block;
    margin-top: 0.2rem;
    font-size: 1.25rem;
    color: var(--ink);
}

.page-filters {

    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.page-filters .edms-btn.is-active,
.edms-btn.is-active {

    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent);
}

.shell-content .space-y-6 {

    display: grid;
    gap: 1rem;
}

.shell-content .space-y-6 > * + * {

    margin-top: 0;
}

.shell-content .space-y-4 {

    display: grid;
    gap: 1rem;
}

.shell-content .space-y-4 > * + * {

    margin-top: 0;
}

.shell-content table.min-w-full {

    width: 100%;
    border-collapse: collapse;
}

.shell-content table.min-w-full thead {

    background: #f8fafc;
}

.shell-content table.min-w-full th {

    text-align: left;
    color: var(--edms-text-muted);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
    padding: 0.7rem 1rem;
    border-bottom: 1px solid var(--edms-border);
}

.shell-content table.min-w-full td {

    padding: 0.85rem 1rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
    vertical-align: middle;
}

.shell-content table.min-w-full tbody tr:hover {

    background: #f8fafc;
}

.shell-content .rounded-lg.border,
.shell-content article.rounded-lg {

    border-color: var(--border) !important;
    background: #fff !important;
    border-radius: 0.75rem !important;
}

.shell-content .bg-white\/40,
.shell-content .bg-white\/50 {

    background: #fff !important;
}

.shell-content .text-green-800 {

    color: var(--success) !important;
    font-weight: 600;
}

.shell-content a.font-medium,
.shell-content a.underline {

    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

.shell-content a.font-medium:hover,
.shell-content a.underline:hover {

    text-decoration: underline;
}

.shell-content h2.font-medium {

    font-size: 1rem;
    font-weight: 800;
    color: var(--ink);
}

.edms-card > h1.text-xl,
.edms-card h1.text-xl {

    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
}

.edms-card.overflow-x-auto.p-0 {

    overflow: hidden;
}

.edms-card.overflow-x-auto.p-0 > .border-b,
.edms-card.overflow-x-auto > div.border-b {

    background: #f8fafc;
    font-weight: 800;
    color: var(--ink);
}


/* ——— Later UI rules restored from design iterations ——— */

.shell-brand-mark {

    display: inline-flex;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.shell-nav-link svg {

    flex-shrink: 0;
    width: 18px;
    height: 18px;
    color: var(--edms-sidebar-muted);
}

.shell-nav-link:hover svg {
 color: #dbe7f5;
}

.shell-nav-link.is-active::before {

    content: "";
    position: absolute;
    left: 0;
    top: 0.4rem;
    bottom: 0.4rem;
    width: 3px;
    border-radius: 0 999px 999px 0;
    background: #9b7ef7;
    box-shadow: 0 0 12px rgba(155, 126, 247, 0.9);
}

.shell-nav-link.is-active svg {
 color: #c4b5fd;
}

.shell-nav-group {

    margin-top: 0;
    border-radius: 0.75rem;
    padding: 0;
    transition: background 0.15s ease;
    position: relative;
}

.shell-nav-group.is-open {

    background: rgba(255, 255, 255, 0.03);
    padding: 0.05rem 0 0.3rem;
}

.shell-nav-group.is-open > .shell-nav-link--toggle {

    color: #fff;
    background: transparent;
}

.shell-nav-group.is-open > .shell-nav-link--toggle::before {
 display: none;
}

.shell-nav-group.is-open > .shell-nav-link--toggle svg {
 color: #c5d3e6;
}

.shell-nav-sub::before {

    content: "";
    position: absolute;
    left: 1.35rem;
    top: 0.55rem;
    bottom: 0.55rem;
    width: 1px;
    background: rgba(96, 130, 180, 0.45);
}

.shell-nav-sublink {

    position: relative;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: #9aa8bc;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 550;
    padding: 0.48rem 0.65rem 0.48rem 1.55rem;
    border-radius: 0.65rem;
    transition: background 0.15s ease, color 0.15s ease;
}

.shell-nav-sublink::before {

    content: "";
    position: absolute;
    left: 0.42rem;
    top: 50%;
    width: 0.42rem;
    height: 0.42rem;
    margin-top: -0.21rem;
    border-radius: 999px;
    border: 1.5px solid #6d84a4;
    background: #0a1628;
    z-index: 1;
    box-sizing: border-box;
    box-shadow: none;
}

.shell-nav-sublink svg {

    width: 15px;
    height: 15px;
    flex-shrink: 0;
    color: #8ea0b8;
}

.shell-nav-sublink:hover {

    color: #e8eef7;
    background: rgba(255, 255, 255, 0.04);
}

.shell-nav-sublink:hover svg {
 color: #c5d3e6;
}

.shell-nav-sublink.is-active {

    color: #fff;
    background: var(--edms-primary);
    box-shadow: none;
}

.shell-nav-sublink.is-active::before {

    border-color: #fff;
    background: #fff;
    box-shadow: none;
}

.shell-nav-sublink.is-active svg {
 color: #fff;
}

.shell-user-card:hover {
 background: rgba(255, 255, 255, 0.07);
}

.shell-user-card__meta {

    min-width: 0;
    flex: 1;
}

.shell-user-card__chevron {

    color: var(--edms-sidebar-muted);
    flex-shrink: 0;
    transition: transform 0.15s ease;
}

.shell-user-card__chevron.is-open {
 transform: rotate(180deg);
}

.shell-avatar-wrap {

    position: relative;
    flex-shrink: 0;
}

.shell-avatar-status {

    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: #22c55e;
    border: 2px solid var(--edms-sidebar-bg);
}

.shell-user-menu {

    position: absolute;
    left: 0.65rem;
    right: 0.65rem;
    bottom: calc(100% + 0.35rem);
    z-index: 5;
    padding: 0.65rem;
    border-radius: var(--edms-radius);
    background: #0d213f;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.35);
}

.shell-switcher {

    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
}

.shell-switcher label {

    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.65rem;
    font-weight: 500;
    color: var(--edms-text-muted);
    letter-spacing: 0.01em;
    min-width: 0;
}

.shell-switcher label:first-child {

        flex: 1 1 9rem;
        min-width: 8rem;
        max-width: 14rem;
}

.shell-switcher label:last-child {

        flex: 1.4 1 12rem;
        min-width: 10rem;
}

.edms-btn--accent {

    color: var(--accent);
    border-color: #93c5fd;
    background: #fff;
}

.edms-btn--accent:hover {

    background: #eff6ff;
    border-color: var(--accent);
    color: var(--accent-hover);
}

.doc-flash {

    margin: 0;
    padding: 0.7rem 0.9rem;
    border-radius: 0.75rem;
    background: #ecfdf5;
    color: #166534;
    border: 1px solid #bbf7d0;
    font-size: 0.88rem;
    font-weight: 600;
}

.doc-filters {

    display: grid;
    grid-template-columns: repeat(8, minmax(8.5rem, 1fr));
    gap: 0.75rem 0.85rem;
    padding: 1rem 1.05rem;
    border: 1px solid var(--border);
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.03);
}

.doc-filters label {

    display: grid;
    gap: 0.28rem;
    margin: 0;
    min-width: 0;
}

.doc-filters label span {

    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    letter-spacing: 0.02em;
}

.doc-filters .edms-input {

    height: 2.35rem;
    padding: 0.35rem 0.65rem;
    font-size: 0.84rem;
}

.doc-stats {

    margin: 0;
}

.doc-workspace {

    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
}

.doc-workspace.has-preview {

    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 1280px) {

    .doc-workspace.has-preview {
        grid-template-columns: minmax(0, 1fr) 22rem;
    }


    .doc-workspace.has-preview {
        grid-template-columns: minmax(0, 1fr) 22rem;
    }

    .doc-workspace.has-folders.has-preview {
        grid-template-columns: 15.5rem minmax(0, 1fr) 22rem;
    }
}

.doc-table-card {

    background: #fff;
    border: 1px solid var(--border);
    border-radius: 0.95rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.doc-bulkbar {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 0.9rem;
    background: #eff6ff;
    border-bottom: 1px solid #dbeafe;
}

.doc-bulkbar strong {

    margin-right: 0.35rem;
    color: #1e3a8a;
    font-size: 0.88rem;
}

.doc-bulkbar__clear {

    margin-left: auto;
    border: 0;
    background: transparent;
    color: #2563eb;
    font-weight: 700;
    font-size: 0.84rem;
    cursor: pointer;
    padding: 0.35rem 0.2rem;
}

.doc-more {

    position: relative;
}

.doc-more > summary {

    list-style: none;
}

.doc-more > summary::-webkit-details-marker {
 display: none;
}

.doc-more__menu {

    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    z-index: 8;
    width: 14rem;
    padding: 0.7rem;
    border-radius: 0.75rem;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
    display: grid;
    gap: 0.5rem;
}

.doc-table-wrap {

    overflow-x: auto;
}

.doc-table {

    width: 100%;
    border-collapse: collapse;
    min-width: 56rem;
    font-size: 0.86rem;
}

.doc-table thead th {

    font-size: 0.74rem;
    font-weight: 700;
    color: #475569;
    text-transform: none;
    letter-spacing: 0;
    padding: 0.85rem 0.9rem;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    white-space: nowrap;
}

.doc-table tbody td {

    padding: 0.78rem 0.85rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
    vertical-align: middle;
}

.doc-table tbody tr:hover {

    background: #f8fafc;
}

.doc-table tbody tr.is-selected {

    background: #eff6ff;
}

.doc-table tbody tr.is-preview {

    background: #eff6ff;
    box-shadow: inset 3px 0 0 #2563eb;
}

.doc-table__check {

    width: 2.5rem;
}

.doc-table__actions {

    width: 3rem;
    text-align: center;
}

.doc-table__muted {

    color: #64748b;
    white-space: nowrap;
}

.doc-table__empty {

    padding: 2rem 1rem !important;
    text-align: center;
    color: #64748b;
}

.doc-link,
.doc-title-btn {

    border: 0;
    background: transparent;
    padding: 0;
    color: #0f172a;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    text-align: left;
}

.doc-link {

    color: #1d4ed8;
}

.doc-link:hover,
.doc-title-btn:hover {

    text-decoration: underline;
    text-underline-offset: 2px;
}

.doc-rev {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    padding: 0.15rem 0.45rem;
    border-radius: 0.45rem;
    background: #f1f5f9;
    color: #334155;
    font-weight: 700;
    font-size: 0.78rem;
}

.doc-pill {

    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.18rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.doc-pill--green {
 background: #dcfce7; color: #166534;
}

.doc-pill--green-outline {
 background: #fff; color: #15803d; border: 1px solid #86efac;
}

.doc-pill--blue {
 background: #dbeafe; color: #1d4ed8;
}

.doc-pill--blue-outline {
 background: #fff; color: #2563eb; border: 1px solid #93c5fd;
}

.doc-pill--red {
 background: #fee2e2; color: #b91c1c;
}

.doc-pill--amber {
 background: #ffedd5; color: #c2410c;
}

.doc-pill--slate {
 background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0;
}

.doc-row-menu {

    position: relative;
    display: inline-flex;
}

.doc-row-menu > summary {

    list-style: none;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.55rem;
    cursor: pointer;
    color: #64748b;
    font-size: 1.1rem;
    line-height: 1;
}

.doc-row-menu > summary::-webkit-details-marker {
 display: none;
}

.doc-row-menu > summary:hover {
 background: #f1f5f9; color: #0f172a;
}

.doc-row-menu__panel {

    position: absolute;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 6;
    min-width: 10rem;
    padding: 0.35rem;
    border-radius: 0.7rem;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
    display: grid;
}

.doc-row-menu__panel a,
.doc-row-menu__panel button {

    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.5rem 0.65rem;
    border-radius: 0.45rem;
    color: #334155;
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.doc-row-menu__panel a:hover,
.doc-row-menu__panel button:hover {

    background: #f8fafc;
    color: #0f172a;
}

.doc-pagination {

    padding: 0.85rem 1rem;
    border-top: 1px solid #e2e8f0;
    background: #fff;
}

.doc-pagination > p {

    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
}

.doc-pagination__controls {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.doc-per-page {

    margin: 0;
    min-width: 8.75rem;
}

.doc-per-page .edms-input {

    height: 2.2rem;
    font-size: 0.8rem;
    border-radius: 0.55rem;
}

.doc-pagination nav {

    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.doc-pagination nav span,
.doc-pagination nav a {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.45rem;
    border-radius: 0.5rem;
    border: 1px solid var(--border);
    background: #fff;
    color: #334155;
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 600;
}

.doc-pagination nav span[aria-current="page"],
.doc-pagination nav [aria-current="page"] span {

    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.doc-preview {

    background: #fff;
    border: 1px solid var(--border);
    border-radius: 0.95rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
    display: flex;
    flex-direction: column;
    min-height: 28rem;
    max-height: calc(100vh - 7rem);
    position: sticky;
    top: 4.5rem;
    overflow: hidden;
}

.doc-preview__head {

    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.doc-preview__number {

    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    color: #2563eb;
    letter-spacing: 0.02em;
}

.doc-preview__head h2 {

    margin: 0.2rem 0 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.3;
}

.doc-preview__badges {

    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.55rem;
    align-items: center;
}

.doc-preview__close {

    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: #64748b;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.doc-preview__close:hover {

    background: #f1f5f9;
    color: #0f172a;
}

.doc-preview__tabs {

    display: flex;
    gap: 0.15rem;
    padding: 0.45rem 0.75rem 0;
    border-bottom: 1px solid #e5e7eb;
    overflow-x: auto;
}

.doc-preview__tabs button {

    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.55rem 0.7rem;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
}

.doc-preview__tabs button.is-active {

    color: #2563eb;
    border-bottom-color: #2563eb;
}

.doc-preview__body {

    flex: 1;
    overflow: auto;
    padding: 0.85rem 1rem 1rem;
}

.doc-preview__block + .doc-preview__block {

    margin-top: 1rem;
    padding-top: 0.9rem;
    border-top: 1px solid #f1f5f9;
}

.doc-preview__block h3 {

    margin: 0 0 0.65rem;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.doc-preview__lede {

    margin: 0 0 0.75rem;
    font-size: 0.84rem;
    color: #475569;
}

.doc-preview__empty {

    margin: 0;
    color: #94a3b8;
    font-size: 0.84rem;
}

.doc-meta {

    margin: 0;
    display: grid;
    gap: 0.55rem;
}

.doc-meta > div {

    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: 0.5rem;
    font-size: 0.84rem;
}

.doc-meta dt {

    margin: 0;
    color: #94a3b8;
    font-weight: 600;
}

.doc-meta dd {

    margin: 0;
    color: #0f172a;
    font-weight: 600;
    word-break: break-word;
}

.doc-rev-card {

    display: grid;
    gap: 0.35rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}

.doc-rev-card strong {

    font-size: 1rem;
    color: #0f172a;
}

.doc-rev-card p {

    margin: 0;
    font-size: 0.8rem;
    color: #64748b;
}

.doc-timeline {

    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.7rem;
    position: relative;
}

.doc-timeline::before {

    content: "";
    position: absolute;
    left: 0.35rem;
    top: 0.35rem;
    bottom: 0.35rem;
    width: 2px;
    background: #e2e8f0;
}

.doc-timeline li {

    display: grid;
    grid-template-columns: 0.9rem 1fr;
    gap: 0.65rem;
    position: relative;
}

.doc-timeline__dot {

    width: 0.75rem;
    height: 0.75rem;
    margin-top: 0.2rem;
    border-radius: 999px;
    border: 2px solid #94a3b8;
    background: #fff;
    z-index: 1;
}

.doc-timeline li.is-done .doc-timeline__dot,
.doc-timeline li.is-current .doc-timeline__dot {

    border-color: #2563eb;
    background: #2563eb;
}

.doc-timeline strong {

    display: block;
    font-size: 0.86rem;
    color: #0f172a;
}

.doc-timeline p {

    margin: 0.1rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

.doc-rev-list,
.doc-activity {

    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.doc-rev-list li,
.doc-activity li {

    padding: 0.65rem 0.75rem;
    border-radius: 0.7rem;
    border: 1px solid #eef2f7;
    background: #f8fafc;
}

.doc-rev-list strong,
.doc-activity strong {

    margin-right: 0.4rem;
    color: #0f172a;
}

.doc-rev-list em {

    font-style: normal;
    font-size: 0.72rem;
    font-weight: 700;
    color: #2563eb;
    margin-left: 0.35rem;
}

.doc-rev-list p,
.doc-activity p {

    margin: 0.25rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

.doc-preview__actions {

    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.75rem 0.9rem;
    border-top: 1px solid #e5e7eb;
    background: #f8fafc;
}

.doc-icon-action {

    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.65rem;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #475569;
    text-decoration: none;
    cursor: pointer;
}

.doc-icon-action:hover {

    color: #2563eb;
    border-color: #93c5fd;
}

.doc-preview__open {

    margin-left: auto;
    padding: 0.45rem 0.9rem;
    font-size: 0.84rem;
}

.doc-bulkbar .edms-btn:disabled,
.doc-bulkbar .edms-btn-primary:disabled {

    opacity: 0.55;
    cursor: not-allowed;
}

.doc-register__toolbar {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.55rem;
}

.shell-topbar__greeting--page h1 {

    font-size: 1.35rem;
}

.shell-topbar__greeting--page p {

    white-space: normal;
}

.wf-toolbar {

    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.wf-filters {

    /* same grid as doc-filters, minor override */
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    align-items: end;
}

.wf-filters__close-preview {

    border: 0;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    padding: 0.35rem;
    border-radius: 0.55rem;
    align-self: end;
}

.wf-filters__close-preview:hover {
 background: #f1f5f9; color: #0f172a;
}

.wf-pill {

    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.2rem 0.6rem;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
    line-height: 1.2;
}

.wf-pill--green {
 background: #dcfce7; color: #166534;
}

.wf-pill--blue {
 background: #dbeafe; color: #1d4ed8;
}

.wf-pill--amber {
 background: #ffedd5; color: #c2410c;
}

.wf-pill--red {
 background: #fee2e2; color: #b91c1c;
}

.wf-pill--slate {
 background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0;
}

.wf-stage {

    display: inline-flex;
    align-items: center;
    border-radius: 0.45rem;
    padding: 0.22rem 0.6rem;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.wf-stage--blue {
 background: #dbeafe; color: #1d4ed8;
}

.wf-stage--purple {
 background: #f3e8ff; color: #7e22ce;
}

.wf-stage--green {
 background: #dcfce7; color: #166534;
}

.wf-stage--slate {
 background: #f1f5f9; color: #475569;
}

.wf-priority {

    display: inline-flex;
    align-items: center;
    border-radius: 0.4rem;
    padding: 0.18rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.wf-priority--high {
 background: #fee2e2; color: #b91c1c;
}

.wf-priority--medium {
 background: #fef9c3; color: #854d0e;
}

.wf-priority--low {
 background: #f1f5f9; color: #475569;
}

.wf-overdue {
 color: #b91c1c; font-weight: 700;
}

.wf-register .cc-stats {

    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.wf-table thead th:nth-child(4) {
 min-width: 12rem;
}

.wf-preview__meta-row {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.35rem;
}

.wf-preview__label {

    font-size: 0.72rem;
    color: #94a3b8;
    font-weight: 600;
}

.wf-preview__count {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #e0e7ef;
    color: #334155;
    font-size: 0.64rem;
    font-weight: 700;
    margin-left: 0.2rem;
}

.wf-responses {

    list-style: none;
    margin: 0.4rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.3rem;
}

.wf-responses li {

    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
}

.wf-comment {

    padding: 0.7rem 0.8rem;
    border-radius: 0.75rem;
    border: 1px solid #eef2f7;
    background: #f8fafc;
    margin-bottom: 0.65rem;
}

.wf-comment__head {

    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.wf-comment__head strong {

    display: block;
    font-size: 0.84rem;
    color: #0f172a;
}

.wf-comment__head p {

    margin: 0.1rem 0 0;
    font-size: 0.72rem;
    color: #94a3b8;
}

.wf-comment__body {

    margin: 0;
    font-size: 0.84rem;
    color: #334155;
    line-height: 1.55;
}

.doc-workspace.has-folders {

    grid-template-columns: minmax(0, 1fr);
}

.doc-folder-pane {

    background: #fff;
    border: 1px solid #e8edf3;
    border-radius: 1rem;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
    padding: 0.85rem 0.75rem 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0;
    max-height: calc(100vh - 12rem);
    overflow: auto;
}

.doc-folder-pane__head {

    flex-shrink: 0;
}

.doc-folder-pane__head strong {

    font-size: 0.92rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
}

.doc-folder-pane__hint {

    display: block;
    font-size: 0.72rem;
    color: #94a3b8;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.doc-folder-nav,
.doc-folder-link {

    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.5rem 0.45rem;
    border-radius: 0.65rem;
    color: #1e293b;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    min-width: 0;
}

.doc-folder-nav em,
.doc-folder-link__count {

    margin-left: auto;
    font-style: normal;
    color: var(--muted);
    font-size: 0.72rem;
}

.doc-folder-nav:hover,
.doc-folder-link:hover,
.doc-folder-nav.is-active,
.doc-folder-row.is-active .doc-folder-link {

    background: #eff6ff;
    color: #1d4ed8;
}

.doc-folder-tree {

    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-top: 0.15rem;
}

.doc-folder-node {

    display: flex;
    flex-direction: column;
}

.doc-folder-row {

    position: relative;
    border-radius: 0.65rem;
}

.doc-folder-link__name {

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.doc-folder-row__actions {

    position: relative;
    margin-left: auto;
}

.doc-folder-row:hover .doc-folder-row__actions {

    display: inline-flex;
}

.doc-folder-icon-btn {

    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    padding: 0.15rem 0.3rem;
    border-radius: 0.3rem;
    font-size: 0.75rem;
}

.doc-folder-icon-btn:hover {

    background: #f1f5f9;
    color: var(--ink);
}

.doc-folder-create {

    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.65rem;
    padding-top: 0;
    border-top: 0;
}

.doc-folder-create label {

    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.72rem;
    color: var(--muted);
}

.doc-folder-rename {

    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    width: 100%;
    padding: 0.25rem;
}

.doc-bulk-move {

    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.doc-bulk-move .edms-input {

    min-width: 9rem;
    font-size: 0.8rem;
    padding: 0.35rem 0.5rem;
}

.edms-btn--sm {

    padding: 0.35rem 0.7rem;
    font-size: 0.8rem;
}

.doc-folder-nav--muted {

    opacity: 0.85;
    margin-top: 0.5rem;
    border-top: 1px solid var(--border);
    padding-top: 0.55rem;
    border-radius: 0;
}

.edms-modal-backdrop {

    position: fixed;
    inset: 0;
    z-index: 40;
    background: rgba(15, 23, 42, 0.45);
}

.edms-modal {

    position: fixed;
    z-index: 50;
    left: 50%;
    top: 8vh;
    transform: translateX(-50%);
    width: min(36rem, calc(100vw - 2rem));
    max-height: 84vh;
    overflow: auto;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 0.9rem;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}

.edms-modal__head {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--border);
}

.edms-modal__head h3 {

    margin: 0;
    font-size: 1rem;
}

.edms-modal__close {

    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 1.1rem;
}

.edms-modal__close:hover {

    background: #f1f5f9;
    color: var(--ink);
}

.edms-modal__body {

    padding: 1.1rem;
}

.edms-modal__actions {

    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.edms-form-label {

    display: block;
    font-size: 0.8rem;
    font-weight: 650;
    color: var(--ink);
}

.edms-form-error {

    color: #dc2626;
    font-size: 0.72rem;
}

.edms-form-check {

    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: var(--ink);
}

.doc-fv__title-row {

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.doc-fv__title-actions {

    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    flex-shrink: 0;
}

.doc-create-destination {

    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--border);
    border-radius: 0.75rem;
    background: #f8fafc;
}

.doc-create-destination__path {

    margin: 0;
    font-size: 0.78rem;
    color: var(--ink);
}

.doc-create-destination__label {

    color: var(--muted);
    margin-right: 0.25rem;
}

.doc-create-destination__hint {

    margin: 0;
    font-size: 0.75rem;
    color: var(--muted);
}

.edms-modal--wide {

    width: min(72rem, calc(100vw - 2rem));
}

.doc-move-modal__hint {

    margin: 0;
    font-size: 0.78rem;
    color: var(--muted);
}

.doc-move-modal__path {

    margin: 0;
    font-size: 0.78rem;
    color: var(--ink);
}

.doc-move-modal__path--muted {

    color: var(--muted);
}

.doc-folder-lock {

    margin-left: 0.2rem;
    font-size: 0.72rem;
    opacity: 0.85;
}

.edms-btn--danger {

    background: var(--danger);
    border-color: var(--danger);
    color: #fff;
}

.edms-btn--danger:hover:not(:disabled) {

    background: #991b1b;
    border-color: #991b1b;
    color: #fff;
}

.doc-move-modal__hint--danger {

    color: var(--danger);
}

.doc-fv__filters {

    margin-bottom: 1rem;
}

.doc-fv__subfolder-toggle {

    align-self: end;
    margin-bottom: 0.35rem;
}

.doc-fv__pagination {

    margin-top: 0.75rem;
}

.doc-fv__placeholder {

    margin-top: 1.5rem;
    padding: 2rem;
    text-align: center;
    color: var(--muted);
    border: 1px dashed var(--border);
    border-radius: 0.75rem;
}

.ft-layout {

    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
}

@media (max-width: 900px) {

    .ft-layout {
        grid-template-columns: 1fr;
    }


    .doc-filters {
        grid-template-columns: repeat(2, minmax(9rem, 1fr));
    }


    .edms-tpl-builder-grid > * {
        grid-column: 1 / -1 !important;
    }


    .edms-ft-builder__layout {
        grid-template-columns: 1fr;
    }
}

.ft-template-list {

    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 0.5rem 0 0;
    padding: 0;
    list-style: none;
}

.ft-template-list__item {

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 0.55rem;
    background: #fff;
    cursor: pointer;
}

.ft-template-list__item.is-active {

    border-color: var(--accent);
    background: #f0f9ff;
}

.ft-template-list__inactive {

    font-size: 0.7rem;
    color: var(--muted);
    font-style: normal;
}

.ft-editor__head {

    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.ft-editor__head-actions {

    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.ft-tree,
.ft-node__children {

    margin: 0;
    padding: 0;
    list-style: none;
}

.ft-node__row {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.25rem 0.35rem;
    padding-left: calc(var(--depth, 0) * 0.85rem);
    border-radius: 0.35rem;
}

.ft-node__row:hover {

    background: #f8fafc;
}

.ft-node__name {

    font-size: 0.85rem;
}

.ft-node__actions {

    display: inline-flex;
    gap: 0.2rem;
}

.ft-apply-preview {

    margin: 1rem 0;
    padding: 0.85rem;
    border: 1px solid var(--border);
    border-radius: 0.65rem;
    background: #f8fafc;
}

.ft-apply-preview h4 {

    margin: 0.75rem 0 0.35rem;
    font-size: 0.8rem;
}

.ft-apply-preview h4:first-child {

    margin-top: 0;
}

.ft-apply-preview ul {

    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.78rem;
}

.sr-only {

    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.doc-mode-toggle__btn {

    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.doc-mode-toggle__btn:focus-visible,
.doc-folder-nav:focus-visible,
.doc-folder-link:focus-visible,
.doc-folder-expand:focus-visible,
.doc-folder-icon-btn:focus-visible,
.doc-fv__crumb:focus-visible,
.doc-fv__folder-card:focus-visible,
.doc-fv__mobile-btn:focus-visible,
.doc-fv__clear-folder:focus-visible,
.doc-context-menu__item:focus-visible,
.edms-modal__close:focus-visible {

    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.doc-mode-toggle__btn.is-active {

    box-shadow: inset 0 0 0 1px #bfdbfe;
}

.doc-register__actions {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.55rem;
}

.doc-fv {

    position: relative;
}

.doc-fv.is-loading .doc-fv__main {

    opacity: 0.72;
    pointer-events: none;
}

.doc-fv__loading {

    display: none;
    position: absolute;
    inset: 0;
    z-index: 20;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    background: rgba(255, 255, 255, 0.72);
    border-radius: 0.95rem;
    font-size: 0.82rem;
    color: var(--muted);
    font-weight: 600;
}

.doc-fv__spinner {

    width: 1.15rem;
    height: 1.15rem;
    border: 2px solid #cbd5e1;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: doc-fv-spin 0.7s linear infinite;
}

@keyframes doc-fv-spin {

    to { transform: rotate(360deg); }
}

.doc-fv__drawer-backdrop {

    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    z-index: 140;
}

.doc-fv__mobile-bar {

    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.doc-fv__mobile-btn {

    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid var(--border);
    background: #fff;
    color: var(--ink);
    border-radius: 0.55rem;
    padding: 0.4rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.doc-fv__mobile-btn:hover {

    background: #f8fafc;
    border-color: #cbd5e1;
}

.doc-fv__filter-dot {

    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: #2563eb;
}

.doc-fv__pane-close {

    display: none;
    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    padding: 0.2rem;
    border-radius: 0.35rem;
}

.doc-fv__pane-toggle {

    display: none;
}

.doc-fv__clear-folder {

    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: 0.35rem;
    border: 1px solid var(--border);
    background: #fff;
    color: var(--muted);
    border-radius: 999px;
    padding: 0.15rem 0.5rem;
    font-size: 0.72rem;
    cursor: pointer;
}

.doc-fv__clear-folder:hover {

    color: #1d4ed8;
    border-color: #93c5fd;
    background: #eff6ff;
}

.doc-folder-pane__nav {

    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1;
    min-height: 0;
    padding-bottom: 0.15rem;
}

.doc-folder-icon,
.doc-folder-lock-icon {

    flex-shrink: 0;
    color: #64748b;
}

.doc-folder-row.is-active .doc-folder-icon,
.doc-folder-nav.is-active .doc-folder-icon {

    color: #2563eb;
}

.doc-folder-lock-icon {

    color: #b45309;
}

.doc-folder-lock-icon--inline {

    margin-left: 0.2rem;
    vertical-align: -1px;
}

.doc-folder-lock-icon--title {

    vertical-align: middle;
    margin-left: 0.25rem;
}

.doc-folder-expand__chevron {

    transition: transform 0.15s ease;
}

.doc-folder-expand__chevron.is-expanded {

    transform: rotate(90deg);
}

.doc-folder-row:focus-within {

    background: #f8fafc;
}

.doc-folder-nav:focus-visible,
.doc-folder-link:focus-visible {

    outline: 2px solid #93c5fd;
    outline-offset: 1px;
}

.doc-folder-create__btn {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.7rem 1rem;
    border: 0;
    border-radius: 0.7rem;
    background: #2563eb;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.22);
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.doc-context-menu {

    position: absolute;
    right: 0;
    top: calc(100% + 0.2rem);
    z-index: 30;
    min-width: 10.5rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 0.6rem;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
    padding: 0.3rem;
}

.doc-context-menu--down {

    top: calc(100% + 0.25rem);
}

.doc-context-menu__item {

    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.45rem 0.6rem;
    border-radius: 0.4rem;
    font-size: 0.78rem;
    color: var(--ink);
    cursor: pointer;
    text-decoration: none;
}

.doc-context-menu__item:hover,
.doc-context-menu__item:focus-visible {

    background: #f1f5f9;
}

.doc-context-menu__item--danger {

    color: #b91c1c;
}

.doc-fv__filters-wrap {

    margin-bottom: 1rem;
}

.doc-fv__count {

    font-weight: 500;
    color: var(--muted);
    text-transform: none;
    letter-spacing: 0;
}

.doc-fv__empty {

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 2rem 1.25rem;
    text-align: center;
    border: 1px dashed #cbd5e1;
    border-radius: 0.85rem;
    background: #f8fafc;
    color: var(--muted);
}

.doc-fv__empty h4 {

    margin: 0;
    font-size: 0.92rem;
    color: var(--ink);
}

.doc-fv__empty p {

    margin: 0;
    font-size: 0.8rem;
    max-width: 22rem;
}

.doc-fv__empty--compact {

    padding: 1rem;
    border-style: solid;
    background: #fff;
}

.doc-fv__empty--inline {

    padding: 0.85rem 1rem;
    margin-bottom: 0.75rem;
    flex-direction: row;
    justify-content: flex-start;
}

.doc-fv__empty--table {

    border: 0;
    background: transparent;
    padding: 1.5rem 0.5rem;
}

.doc-fv__empty-icon {

    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
}

.doc-fv__folder-card {

    transition: border-color 0.15s, background 0.15s, transform 0.15s, box-shadow 0.15s;
}

.doc-fv__folder-card:focus-visible,
.doc-fv__folder-card:hover {

    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.08);
}

.doc-fv__cards {

    display: none;
    flex-direction: column;
    gap: 0.65rem;
}

.doc-fv__card {

    border: 1px solid var(--border);
    border-radius: 0.75rem;
    background: #fff;
    padding: 0.85rem 0.95rem;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.doc-fv__card-head {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.doc-fv__card-title {

    margin: 0.35rem 0 0.55rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ink);
}

.doc-fv__card-meta {

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem 0.75rem;
    margin: 0;
    font-size: 0.75rem;
}

.doc-fv__card-meta div {

    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.doc-fv__card-meta dt {

    color: var(--muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.65rem;
}

.doc-fv__card-meta dd {

    margin: 0;
    color: var(--ink);
}

.doc-fv__menu-wrap,
.doc-fv__row-menu {

    position: relative;
}

.doc-fv__quick-actions {

    display: flex;
    gap: 0.35rem;
}

@media (min-width: 768px) and (max-width: 959px) {

    .doc-fv__pane-toggle {
        display: inline-flex;
    }

    .doc-fv.is-pane-collapsed {
        grid-template-columns: minmax(0, 1fr);
    }

    .doc-fv.is-pane-collapsed .doc-folder-pane {
        display: none;
    }
}

@media (max-width: 767px) {

    .doc-fv__mobile-bar {
        display: flex;
    }

    .doc-fv__pane-close {
        display: inline-flex;
    }

    .doc-folder-pane {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(18.5rem, 88vw);
        z-index: 150;
        max-height: none;
        border-radius: 0;
        transform: translateX(-105%);
        transition: transform 0.22s ease;
        box-shadow: 0 20px 50px rgba(15, 23, 42, 0.2);
    }

    .doc-folder-pane.is-open {
        transform: translateX(0);
    }

    .doc-fv__drawer-backdrop {
        display: block;
    }

    .doc-fv__filters-wrap:not(.is-open) .doc-fv__filters {
        display: none;
    }

    .doc-fv__filters-wrap.is-open .doc-fv__filters {
        display: grid;
    }

    .doc-fv__table-only {
        display: none;
    }

    .doc-fv__cards {
        display: flex;
    }

    .doc-fv__title-row {
        flex-direction: column;
    }

    .doc-fv__title-actions {
        width: 100%;
    }

    .doc-register__toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .doc-mode-toggle {
        width: 100%;
    }

    .doc-mode-toggle__btn {
        flex: 1;
        justify-content: center;
    }

    .doc-register__actions {
        width: 100%;
    }

    .doc-register__actions .edms-btn,
    .doc-register__actions .edms-btn-primary {
        flex: 1;
        justify-content: center;
    }


    .doc-register__head-top {
        flex-direction: column;
        align-items: stretch;
    }

    .doc-register__actions {
        justify-content: stretch;
    }

    .doc-register__actions .doc-register__btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .doc-register__tabs {
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .doc-register__tab {
        white-space: nowrap;
    }


    .doc-folder-pane__collapse {
        display: none;
    }

    .doc-folder-pane__handle {
        display: none;
    }


    .shell-topbar {
        flex-wrap: wrap;
        min-height: 0;
        padding: 0.55rem 0.75rem;
        gap: 0.5rem;
    }

    .shell-topbar__search {
        flex: 1 1 calc(100% - 3rem);
        max-width: none;
        order: 1;
    }

    .shell-menu-btn {
        order: 0;
    }

    .shell-topbar__actions {
        order: 2;
        margin-left: 0;
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 0.45rem;
    }

    .shell-topbar__context {
        width: 100%;
        order: -1;
    }

    .shell-switcher {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.45rem;
    }

    .shell-switcher .edms-input,
    .shell-switcher select,
    .shell-switcher label:last-child .edms-input,
    .shell-switcher label:last-child select {
        min-width: 0;
        max-width: none;
        width: 100%;
    }

    .shell-topbar__greeting--page {
        order: 3;
        width: 100%;
    }
}

.doc-folder-pane.is-open {

        transform: translateX(0);
}

.doc-folder-row:hover .doc-folder-row__actions,
.doc-folder-row:focus-within .doc-folder-row__actions {

    display: inline-flex;
}

.edms-brand {

    display: block;
    text-decoration: none;
    line-height: 0;
    min-width: 0;
    flex: 1;
}

.edms-brand__logo {

    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.edms-brand--sidebar .edms-brand__logo {

    max-height: 2.65rem;
}

.edms-brand--login {

    margin-bottom: 2.75rem;
}

.edms-brand--login .edms-brand__logo {

    max-height: 3.25rem;
}

.edms-brand--home .edms-brand__logo {

    max-height: 3.5rem;
}

.edms-home-brand {

    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    background: #050c1f;
    display: inline-block;
}

.login-status {

    margin: 0 0 1rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.65rem;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    color: #166534;
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.45;
}

.login-back {

    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
}

.login-back:hover {

    color: #2563eb;
}

.login-page--auth-only {

    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1rem;
    background: linear-gradient(165deg, #f8fafc 0%, #eef2ff 45%, #f8fafc 100%);
}

.login-panel--solo {

    width: 100%;
    max-width: 28rem;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.login-panel__top--solo {

    padding: 0 0 0.75rem;
    border: 0;
    background: transparent;
}

.login-panel__main--solo {

    max-width: none;
    padding: 0;
}

.shell-sidebar__collapse {

    display: none;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-left: auto;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.04);
    color: #94a3b8;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.shell-sidebar__collapse:hover {

    background: rgba(255, 255, 255, 0.08);
    color: #e2e8f0;
    border-color: rgba(255, 255, 255, 0.16);
}

.shell-nav-label {

    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shell-nav-sub--flyout {

    position: absolute;
    left: calc(100% + 0.45rem);
    top: 0;
    z-index: 50;
    min-width: 13.5rem;
    margin: 0;
    padding: 0.45rem;
    border-radius: var(--edms-radius);
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: #0d213f;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
}

.shell-nav-sub--flyout::before {

    display: none;
}

.shell-nav-sub--flyout .shell-nav-sublink {

    padding-left: 0.65rem;
}

.shell-nav-sub--flyout .shell-nav-sublink::before {

    display: none;
}

.shell.is-sidebar-collapsed {

        grid-template-columns: 5.5rem minmax(0, 1fr);
}

.doc-register.page-stack {

    gap: 1.15rem;
}

.doc-register__head {

    display: grid;
    gap: 0.85rem;
}

.doc-register__head-top {

    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.doc-register__title {

    margin: 0;
    font-size: 1.85rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ink);
    line-height: 1.15;
}

.doc-register__btn {

    min-height: 2.45rem;
    padding: 0.5rem 0.95rem;
    border-radius: 0.65rem;
    font-size: 0.84rem;
    font-weight: 600;
    white-space: nowrap;
}

.doc-register__btn--outline {

    border-color: #93c5fd;
    color: #2563eb;
    background: #fff;
}

.doc-register__btn--outline:hover {

    background: #eff6ff;
    border-color: #60a5fa;
}

.doc-register__tabs {

    display: inline-flex;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid #e5e7eb;
    width: 100%;
}

.doc-register__tab {

    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.86rem;
    font-weight: 600;
    padding: 0.7rem 1rem;
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.doc-register__tab:hover {

    color: #334155;
}

.doc-register__tab.is-active {

    color: #2563eb;
    border-bottom-color: #2563eb;
}

@media (max-width: 1400px) {

    .doc-filters {
        grid-template-columns: repeat(4, minmax(9rem, 1fr));
    }
}

.doc-field {

    display: grid;
    gap: 0.35rem;
    margin: 0;
    min-width: 0;
}

.doc-field__label {

    font-size: 0.72rem;
    font-weight: 700;
    color: #64748b;
    letter-spacing: 0.01em;
}

.doc-field__control {

    position: relative;
    display: flex;
    align-items: center;
}

.doc-field__icon {

    position: absolute;
    left: 0.7rem;
    color: #94a3b8;
    pointer-events: none;
    flex-shrink: 0;
}

.doc-field__input,
.doc-field__select {

    width: 100%;
    min-height: 2.45rem;
    border-radius: 0.6rem;
    font-size: 0.84rem;
}

.doc-field__input {

    padding-left: 2.15rem;
}

.doc-field__input--date {

    color: #334155;
}

.doc-field__select {

    padding: 0.4rem 2rem 0.4rem 0.7rem;
    background: #fff;
}

.doc-field--check .edms-form-check {

    min-height: 2.45rem;
    align-items: center;
}

.doc-stat-grid {

    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

@media (max-width: 1100px) {

    .doc-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    .info-control-panel__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    .edms-tpl-builder__layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {

    .doc-stat-grid {
        grid-template-columns: 1fr;
    }


    .info-control-panel__grid {
        grid-template-columns: 1fr;
    }


    .info-control-panel__item--wide {
        grid-column: span 1;
    }
}

.doc-stat-card {

    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.05rem;
    border: 1px solid var(--border);
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.03);
}

.doc-stat-card__icon {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.7rem;
    flex-shrink: 0;
}

.doc-stat-card--blue .doc-stat-card__icon {
 background: #eff6ff; color: #2563eb;
}

.doc-stat-card--purple .doc-stat-card__icon {
 background: #f5f3ff; color: #7c3aed;
}

.doc-stat-card--green .doc-stat-card__icon {
 background: #ecfdf5; color: #16a34a;
}

.doc-stat-card--orange .doc-stat-card__icon {
 background: #fff7ed; color: #ea580c;
}

.doc-stat-card__label {

    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}

.doc-stat-card__value {

    margin: 0.12rem 0 0;
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--ink);
    line-height: 1.1;
}

.doc-stat-card__meta {

    margin: 0.28rem 0 0;
    font-size: 0.74rem;
    font-weight: 600;
    color: #64748b;
}

.doc-stat-card__meta--up {
 color: #16a34a;
}

.doc-stat-card__meta--purple {
 color: #7c3aed;
}

.doc-stat-card__meta--warn {
 color: #ea580c;
}

.doc-table__sort {

    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.doc-table__sort:hover {

    color: #2563eb;
}

.doc-table__sort.is-active {

    color: #1d4ed8;
}

.doc-table__sort svg {

    opacity: 0.45;
}

.doc-table__sort.is-active svg {

    opacity: 1;
}

.doc-empty-state {

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 3.5rem 1.5rem;
    text-align: center;
}

.doc-empty-state__icon {

    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #94a3b8;
    margin-bottom: 0.35rem;
}

.doc-empty-state__sparkle {

    position: absolute;
    top: 0.35rem;
    right: 0.45rem;
    color: #cbd5e1;
}

.doc-empty-state h3 {

    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #334155;
}

.doc-empty-state p {

    margin: 0;
    font-size: 0.82rem;
    color: #94a3b8;
}

.doc-pagination__summary {

    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
}

.doc-pagination nav a,
.doc-pagination nav span {

    min-width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.55rem;
    font-size: 0.8rem;
}

.doc-folder-row:hover .doc-folder-row__actions,
.doc-folder-row:focus-within .doc-folder-row__actions,
.doc-folder-row.is-active .doc-folder-row__actions {

    display: inline-flex;
}

.doc-workspace.has-folders.has-preview {

        grid-template-columns: 17.5rem minmax(0, 1fr) 22rem;
}

.doc-folder-pane__brand {

    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
}

.doc-folder-pane__titles {

    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.doc-folder-pane__collapse {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 0.4rem;
    flex-shrink: 0;
}

.doc-folder-pane__collapse:hover {

    background: #f8fafc;
    color: #64748b;
}

.doc-folder-pane__divider {

    height: 1px;
    background: #e8edf3;
    margin: 0 0 0.55rem;
    flex-shrink: 0;
}

.doc-folder-icon-well {

    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    background: #f1f5f9;
    color: #64748b;
    flex-shrink: 0;
}

.doc-folder-icon-well--brand {

    background: #eff6ff;
    color: #2563eb;
}

.doc-folder-nav__label,
.doc-folder-link__name {

    flex: 1;
    min-width: 0;
}

.doc-folder-nav:hover,
.doc-folder-link:hover {

    background: #f8fafc;
}

.doc-folder-nav.is-active,
.doc-folder-row.is-active {

    background: #eff6ff;
    color: #2563eb;
}

.doc-folder-nav.is-active .doc-folder-nav__icon,
.doc-folder-row.is-active .doc-folder-link__icon,
.doc-folder-row.is-active .doc-folder-icon {

    color: #2563eb;
}

.doc-folder-nav--footer {

    margin-top: 0.15rem;
}

.doc-folder-link {

    flex: 1;
    width: auto;
    padding: 0.45rem 0.35rem;
}

.doc-folder-badge {

    flex-shrink: 0;
    min-width: 1.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #94a3b8;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
}

.doc-folder-badge.is-active {

    background: #dbeafe;
    color: #2563eb;
}

.doc-folder-node__children {

    position: relative;
    margin-left: 0.95rem;
    padding-left: 0.85rem;
    border-left: 1px dashed #d5dde8;
}

.doc-folder-node__children > .doc-folder-node {

    position: relative;
}

.doc-folder-node__children > .doc-folder-node::before {

    content: '';
    position: absolute;
    left: -0.85rem;
    top: 1.15rem;
    width: 0.85rem;
    border-top: 1px dashed #d5dde8;
    pointer-events: none;
}

.doc-folder-create__btn:hover {

    background: #1d4ed8;
    box-shadow: 0 10px 22px rgba(37, 99, 235, 0.28);
}

.doc-folder-create__icon {

    width: 1.2rem;
    height: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.85);
    flex-shrink: 0;
}

.doc-folder-pane__handle {

    width: 2.5rem;
    height: 0.22rem;
    border-radius: 999px;
    background: #e2e8f0;
    margin: 0.75rem auto 0.15rem;
    flex-shrink: 0;
}

.doc-folder-nav--muted,
.doc-folder-nav--footer {

    opacity: 1;
    margin-top: 0;
    border-top: 0;
    padding-top: 0.45rem;
    border-radius: 0.65rem;
}

.doc-folder-row.is-active .doc-folder-icon,
.doc-folder-nav.is-active .doc-folder-icon,
.doc-folder-nav.is-active .doc-folder-nav__icon,
.doc-folder-row.is-active .doc-folder-link__icon {

    color: #2563eb;
}

.doc-folder-row:focus-within:not(.is-active) {

    background: #f8fafc;
}

.doc-folder-create__btn:focus-visible {

    outline: 2px solid #93c5fd;
    outline-offset: 2px;
}

.doc-folder-row.is-active .doc-folder-link:hover {

    background: transparent;
}

.shell-nav-link--toggle.has-active-child:not(.is-active) {

    color: #e8eef7;
}

.shell-nav-link--toggle.has-active-child:not(.is-active) svg {

    color: #c4b5fd;
}

.doc-fv__filters-wrap:not(.is-open) .doc-fv__filters,
    .doc-fv__filters-wrap:not(.is-open) .doc-fv__filter-bar {

        display: none;
}

.doc-fv__filters-wrap.is-open .doc-fv__filters,
    .doc-fv__filters-wrap.is-open .doc-fv__filter-bar {

        display: flex;
}

.bim-table__actions {

        flex-direction: column;
        align-items: stretch;
}

}

/* ——— Transmittals register page ——— */
.txm-page {

    gap: 1.15rem;
}

.txm-page__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.txm-page__crumb {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
}

.txm-page__crumb-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 0.35rem;
    background: #eff6ff;
    color: #2563eb;
}

.txm-page__crumb-link {
    color: #64748b;
    text-decoration: none;
    font-weight: 500;
}

.txm-page__crumb-link:hover {
    color: #2563eb;
}

.txm-page__crumb-sep {
    color: #94a3b8;
}

.txm-page__title {
    margin: 0.55rem 0 0;
    font-size: 1.85rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #0f172a;
    line-height: 1.15;
}

.txm-page__subtitle {
    margin: 0.45rem 0 0;
    max-width: 44rem;
    color: #64748b;
    font-size: 0.92rem;
    line-height: 1.55;
}

.txm-card {
    border: 1px solid #e5e7eb;
    border-radius: 0.95rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
    padding: 1.15rem 1.25rem 1.2rem;
}

.txm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.45rem;
    padding: 0.45rem 1rem;
    border: 1px solid transparent;
    border-radius: 0.65rem;
    background: transparent;
    color: #334155;
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.txm-btn--primary {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18);
}

.txm-btn--primary:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
}

.txm-filters__grid {
    display: grid;
    grid-template-columns: minmax(14rem, 1.6fr) minmax(10rem, 0.75fr) minmax(10rem, 0.75fr) auto;
    align-items: start;
    gap: 0.85rem 1rem;
}

.txm-search {
    display: grid;
    gap: 0.35rem;
}

.txm-search__wrap {
    position: relative;
    display: block;
}

.txm-search__wrap svg {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
}

.txm-search input {
    width: 100%;
    height: 2.45rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.65rem;
    background: #fff;
    padding: 0.45rem 0.75rem 0.45rem 2.25rem;
    font-size: 0.86rem;
    color: #0f172a;
}

.txm-search input:focus {
    outline: none;
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.txm-search__hint {
    color: #94a3b8;
    font-size: 0.75rem;
    line-height: 1.35;
}

.txm-filter-field {
    display: grid;
    gap: 0.35rem;
}

.txm-filter-field__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
}

.txm-input {
    width: 100%;
    height: 2.45rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.65rem;
    background: #fff;
    padding: 0.45rem 0.75rem;
    font-size: 0.86rem;
    color: #0f172a;
}

.txm-input:focus {
    outline: none;
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.txm-clear-filters {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    align-self: end;
    min-height: 2.45rem;
    padding: 0.35rem 0.65rem;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: #2563eb;
    font-size: 0.84rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.txm-clear-filters:hover {
    background: #eff6ff;
}

.txm-table-wrap {
    overflow-x: auto;
}

.txm-table {
    width: 100%;
    min-width: 56rem;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.86rem;
}

.txm-table thead th {
    padding: 0.7rem 0.85rem;
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: left;
    white-space: nowrap;
}

.txm-table tbody td {
    padding: 0.85rem;
    border-bottom: 1px solid #eef2f7;
    color: #0f172a;
    vertical-align: middle;
}

.txm-table tbody tr:hover {
    background: #fafcff;
}

.txm-table__sort {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.txm-table__sort svg {
    color: #94a3b8;
}

.txm-table__head-label {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.txm-table__head-tip {
    display: inline-flex;
    color: #94a3b8;
    cursor: help;
}

.txm-table__number {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
}

.txm-table__number:hover {
    color: #1d4ed8;
}

.txm-table__number-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 0.45rem;
    background: #eff6ff;
    color: #2563eb;
    flex-shrink: 0;
}

.txm-table__muted {
    color: #64748b;
    white-space: nowrap;
}

.txm-table__actions {
    text-align: right;
    white-space: nowrap;
}

.txm-table__actions-head {
    width: 3rem;
}

.txm-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.txm-pill--neutral {
    background: #f1f5f9;
    color: #64748b;
}

.txm-pill--success {
    background: #ecfdf3;
    color: #15803d;
}

.txm-pill--danger {
    background: #fef2f2;
    color: #b91c1c;
}

.txm-pill__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
}

.txm-row-menu {
    position: relative;
    display: inline-block;
}

.txm-row-menu__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 0.45rem;
    background: transparent;
    color: #64748b;
    cursor: pointer;
}

.txm-row-menu__trigger:hover {
    background: #f1f5f9;
    color: #334155;
}

.txm-row-menu__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 20;
    min-width: 10rem;
    padding: 0.3rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.6rem;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
}

.txm-row-menu__item {
    display: block;
    padding: 0.45rem 0.6rem;
    border-radius: 0.4rem;
    color: #0f172a;
    font-size: 0.78rem;
    text-decoration: none;
}

.txm-row-menu__item:hover {
    background: #f1f5f9;
}

.txm-empty {
    padding: 2rem 1rem;
    text-align: center;
    color: #64748b;
}

.txm-empty p {
    margin: 0;
}

.txm-empty__hint {
    margin-top: 0.35rem !important;
    font-size: 0.84rem;
}

.txm-empty__hint a {
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
}

.txm-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-top: 0.85rem;
    margin-top: 0.15rem;
    border-top: 1px solid #eef2f7;
}

.txm-pagination__summary {
    margin: 0;
    color: #64748b;
    font-size: 0.82rem;
}

.txm-pagination__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.txm-pagination__controls nav {
    display: flex;
    gap: 0.35rem;
}

.txm-pagination__controls nav span,
.txm-pagination__controls nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.55rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.55rem;
    background: #fff;
    color: #334155;
    font-size: 0.8rem;
    text-decoration: none;
}

.txm-pagination__controls nav span[aria-current="page"],
.txm-pagination__controls nav [aria-current="page"] span {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.txm-per-page select {
    height: 2rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.55rem;
    background: #fff;
    padding: 0 0.55rem;
    color: #334155;
    font-size: 0.8rem;
}

.txm-info-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1rem;
    padding: 0.95rem 1.1rem;
    border: 1px solid #bfdbfe;
    border-radius: 0.85rem;
    background: #eff6ff;
}

.txm-info-banner__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: #dbeafe;
    color: #2563eb;
    flex-shrink: 0;
}

.txm-info-banner__copy {
    display: grid;
    gap: 0.15rem;
    flex: 1 1 14rem;
    color: #334155;
    font-size: 0.84rem;
    line-height: 1.45;
}

.txm-info-banner__copy strong {
    color: #0f172a;
    font-size: 0.88rem;
}

.txm-info-banner__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #2563eb;
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.txm-info-banner__link:hover {
    color: #1d4ed8;
}

@media (max-width: 991px) {
    .txm-filters__grid {
        grid-template-columns: 1fr 1fr;
}

.txm-search {

        grid-column: 1 / -1;
}

.txm-clear-filters {

        grid-column: 1 / -1;
        justify-self: start;
}

}

@media (max-width: 767px) {

    .txm-filters__grid {
        grid-template-columns: 1fr;
}

.txm-page__head {

        align-items: stretch;
}

.txm-btn--primary {

        width: 100%;
}

.txm-info-banner__link {

        width: 100%;
}

}

.doc-mdr-columns {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin: 0.65rem 0 0;
    padding: 0.55rem 0.85rem;
    border: 1px dashed var(--border);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.55);
    font-size: 0.82rem;
    color: var(--muted);
}

.doc-mdr-columns__label {

    font-weight: 650;
    color: var(--ink);
}

.doc-mdr-columns__opt {

    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--ink);
    cursor: pointer;
}

.doc-mdr-columns__hint {

    margin-left: auto;
    font-size: 0.75rem;
}

.info-control-panel__grid {

    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem 1rem;
}

.info-control-panel__item {

    min-width: 0;
}

.info-control-panel__item--wide {

    grid-column: span 2;
}

.info-control-panel__item dt {

    margin: 0 0 0.2rem;
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--muted);
}

.info-control-panel__value {

    margin: 0;
    font-size: 0.95rem;
    color: var(--ink);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.cde-transition-modal__facts {

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
    margin: 0;
}

.cde-transition-modal__facts dt {

    margin: 0 0 0.2rem;
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--muted);
}

.cde-transition-modal__facts dd {

    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.cde-transition-modal__block {

    border: 1px solid var(--border);
    border-radius: 0.65rem;
    padding: 0.75rem 0.85rem;
    background: rgba(255, 255, 255, 0.55);
}

.cde-transition-modal__block-title {

    margin: 0 0 0.45rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.86rem;
    font-weight: 650;
    color: var(--ink);
}

.cde-transition-modal__perms {

    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.cde-transition-modal__perms li {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.84rem;
}

.cde-transition-modal__perms code {

    font-size: 0.78rem;
}

.cde-transition-modal__alerts {

    border-radius: 0.65rem;
    padding: 0.75rem 0.85rem;
}

.cde-transition-modal__alerts h4 {

    margin: 0 0 0.35rem;
    font-size: 0.86rem;
}

.cde-transition-modal__alerts ul {

    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.86rem;
}

.cde-transition-modal__alerts--blockers {

    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.cde-transition-modal__alerts--warnings {

    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
}

.cde-transition-modal__confirm {

    border-radius: 0.65rem;
    padding: 0.85rem 0.95rem;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e3a8a;
}

.cde-transition-modal__confirm h4 {

    margin: 0 0 0.35rem;
    font-size: 0.9rem;
}

.cde-transition-modal__confirm p,
.cde-transition-modal__confirm ul {

    margin: 0;
    font-size: 0.86rem;
}

.cde-transition-modal__confirm ul {

    margin-top: 0.55rem;
    padding-left: 1.1rem;
}

@media (max-width: 700px) {

    .cde-transition-modal__facts {
        grid-template-columns: 1fr;
    }
}

.shell-sidebar.is-collapsed .edms-brand--sidebar .edms-brand__logo {

        max-height: 1.65rem;
        max-width: 2.35rem;
        object-fit: cover;
        object-position: left center;
}

.shell-sidebar.is-collapsed .shell-sidebar__collapse {

        margin-left: 0;
        width: 2.15rem;
        height: 2.15rem;
}

.shell-sidebar.is-collapsed .shell-nav {

        padding-inline: 0.45rem;
}

.shell-sidebar.is-collapsed .shell-nav-link {

        justify-content: center;
        padding: 0.72rem 0.55rem;
        gap: 0;
}

.shell-sidebar.is-collapsed .shell-nav-label,
    .shell-sidebar.is-collapsed .shell-nav-section,
    .shell-sidebar.is-collapsed .shell-nav-divider,
    .shell-sidebar.is-collapsed .shell-user-card__meta,
    .shell-sidebar.is-collapsed .shell-user-card__chevron,
    .shell-sidebar.is-collapsed .shell-copy {

        display: none;
}

.shell-sidebar.is-collapsed .shell-help-link {

        justify-content: center;
        padding: 0.65rem 0.5rem;
        gap: 0;
}

.shell-sidebar.is-collapsed .shell-nav-badge {

        position: absolute;
        top: 0.35rem;
        right: 0.3rem;
        min-width: 1rem;
        height: 1rem;
        padding: 0 0.25rem;
        font-size: 0.58rem;
        margin-left: 0;
}

.shell-sidebar.is-collapsed .shell-nav-link.is-active::before {

        top: 0.35rem;
        bottom: 0.35rem;
}

.shell-sidebar.is-collapsed .shell-user-card {

        justify-content: center;
        padding: 0.35rem 0.15rem;
}

.shell-sidebar.is-collapsed .shell-sidebar__footer {

        padding-inline: 0.45rem;
}

.shell-sidebar.is-collapsed .shell-user-menu {

        left: calc(100% + 0.45rem);
        right: auto;
        bottom: 0;
        min-width: 14rem;
}

.project-setup-folders__apply {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.edms-modal__head,
.edms-modal__actions,
.edms-modal__footer {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid var(--border);
}

.edms-modal__actions,
.edms-modal__footer {

    border-bottom: 0;
    border-top: 1px solid var(--border);
    justify-content: flex-end;
}

.edms-tpl-filters {

    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 16rem));
    gap: 0.85rem 1rem;
    align-items: end;
}

.edms-tpl-filters__check {

    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.35rem;
}

.edms-tpl-grid {

    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
    gap: 1rem;
}

.edms-tpl-card,
.edms-tpl-detail {

    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.1rem;
    border: 1px solid var(--border);
    border-radius: 0.9rem;
    background: #fff;
}

.edms-tpl-card.is-archived {

    opacity: 0.72;
}

.edms-tpl-card__top {

    display: flex;
    justify-content: space-between;
    gap: 0.6rem;
    align-items: flex-start;
}

.edms-tpl-card__title {

    font-weight: 800;
    color: var(--ink);
    text-decoration: none;
}

.edms-tpl-card__title:hover {

    text-decoration: underline;
}

.edms-tpl-card__badges {

    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.edms-tpl-card__desc {

    margin: 0;
    font-size: 0.875rem;
    color: var(--muted);
    min-height: 2.5em;
}

.edms-tpl-card__meta {

    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 0.85rem;
    margin: 0;
    font-size: 0.8rem;
}

.edms-tpl-detail__meta {

    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.edms-tpl-card__meta dt {

    color: var(--muted);
    font-weight: 650;
}

.edms-tpl-card__meta dd {

    margin: 0.1rem 0 0;
}

.edms-tpl-actions {

    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.edms-tpl-actions__danger {

    color: #b91c1c;
    border-color: #fecaca;
}

.edms-tpl-preview__hint,
.edms-tpl-preview-widget__empty {

    margin: 0;
    font-size: 0.8rem;
    color: var(--muted);
}

.edms-tpl-preview-section {

    margin-top: 1rem;
}

.edms-tpl-preview-section__head {

    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
}

.edms-tpl-preview-section__head h3 {

    margin: 0;
    font-size: 0.95rem;
}

.edms-tpl-preview-section__head span,
.edms-tpl-preview-widget__meta span {

    font-size: 0.72rem;
    color: var(--muted);
}

.edms-tpl-preview-widget__meta {

    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: flex-start;
}

.edms-tpl-project-list {

    margin: 0;
    padding-left: 1.1rem;
}

.edms-tpl-builder__banner {

    margin: 0;
    padding: 0.75rem 1rem;
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1e3a8a;
    border-radius: 0.75rem;
    font-size: 0.9rem;
}

.edms-tpl-steps {

    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.edms-tpl-steps button {

    border: 1px solid var(--border);
    background: #fff;
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    font-size: 0.85rem;
    cursor: pointer;
}

.edms-tpl-steps .is-current button {

    background: var(--ink, #0f172a);
    color: #fff;
    border-color: transparent;
}

.edms-tpl-builder__form {

    display: grid;
    gap: 0.85rem;
}

.edms-tpl-builder__start {

    border: 1px solid var(--border);
    border-radius: 0.75rem;
    padding: 0.85rem;
    display: grid;
    gap: 0.65rem;
}

.edms-tpl-builder__choice {

    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
}

.edms-tpl-builder__choice em {

    display: block;
    font-style: normal;
    color: var(--muted);
    font-size: 0.85rem;
}

.edms-tpl-builder__layout {

    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr) minmax(14rem, 18rem);
    gap: 1rem;
    align-items: start;
}

.edms-tpl-builder__palette-list {

    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.4rem;
}

.edms-tpl-builder__group {

    margin-top: 0.65rem;
}

.edms-tpl-builder__group summary {

    cursor: pointer;
    font-weight: 650;
}

.edms-tpl-builder__canvas-head,
.edms-tpl-builder__section-head {

    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.65rem;
    align-items: flex-end;
    margin-bottom: 0.75rem;
}

.edms-tpl-builder__heading {

    flex: 1 1 12rem;
}

.edms-tpl-builder-grid {

    display: grid;
    gap: 0.65rem;
    min-height: 4rem;
}

.edms-tpl-builder-widget {

    border: 1px solid var(--border);
    border-radius: 0.7rem;
    padding: 0.55rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.edms-tpl-builder-widget.is-selected {

    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb;
}

.edms-tpl-builder-widget.is-disabled {

    opacity: 0.6;
}

.edms-tpl-builder-widget__select {

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    padding: 0;
}

.edms-tpl-builder-widget__select span,
.edms-tpl-builder__hint {

    font-size: 0.75rem;
    color: var(--muted);
}

.edms-tpl-builder__empty {

    grid-column: 1 / -1;
    margin: 0;
    font-size: 0.875rem;
    color: var(--muted);
}

.edms-tpl-builder__section.is-selected {

    outline: 2px solid #dbeafe;
}

.edms-tpl-builder__section-select {

    border: 0;
    background: transparent;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.edms-tpl-builder__selected {

    margin: 0;
    font-weight: 700;
}

.edms-tpl-builder__inspector .edms-form-label,
.edms-tpl-builder__inspector .edms-dash-check {

    display: block;
    margin-top: 0.7rem;
}

.edms-tpl-builder-grid--tablet > * {

    grid-column: 1 / -1 !important;
}

.ft-tree-preview {

    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
    line-height: 1.45;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border);
    border-radius: 0.65rem;
    background: #fafafa;
    overflow: auto;
    max-height: 28rem;
}

.ft-tree-preview__list {

    list-style: none;
    margin: 0;
    padding: 0;
}

.ft-tree-preview__item.is-collapsed .ft-tree-preview__children {

    display: none;
}

.ft-tree-preview__item.is-collapsed .ft-tree-preview__toggle {

    transform: rotate(-90deg);
}

.ft-tree-preview__row {

    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0;
    padding-left: calc(var(--depth, 0) * 1.1rem);
}

.ft-tree-preview__toggle {

    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--muted);
    font-size: 0.75rem;
    width: 1rem;
    padding: 0;
    line-height: 1;
}

.ft-tree-preview__leaf {

    color: var(--muted);
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
}

.ft-tree-preview__name {

    color: var(--ink);
}

.edms-ft-builder__layout {

    grid-template-columns: minmax(16rem, 1.1fr) minmax(18rem, 1fr);
}

.edms-ft-builder__tree-panel,
.edms-ft-builder__inspector {

    min-height: 22rem;
}

.edms-ft-builder__tree-head {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.edms-ft-builder__subhead {

    font-size: 0.95rem;
    font-weight: 600;
    margin: 1rem 0 0.35rem;
}

.edms-ft-builder__move {

    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.edms-ft-builder__danger {

    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.ft-tree-builder__list {

    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
}

.ft-tree-builder__item.is-collapsed .ft-tree-builder__children {

    display: none;
}

.ft-tree-builder__item.is-collapsed .ft-tree-builder__toggle {

    transform: rotate(-90deg);
}

.ft-tree-builder__item.is-selected > .ft-tree-builder__row {

    background: color-mix(in srgb, var(--accent, #2563eb) 12%, transparent);
    border-radius: 0.35rem;
}

.ft-tree-builder__row {

    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.35rem;
    padding-left: calc(var(--depth, 0) * 1.1rem + 0.35rem);
}

.ft-tree-builder__toggle,
.ft-tree-builder__leaf {

    color: var(--muted);
    width: 1rem;
    flex-shrink: 0;
    text-align: center;
}

.ft-tree-builder__toggle {

    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 0.75rem;
    padding: 0;
    line-height: 1;
}

.ft-tree-builder__select {

    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    text-align: left;
    flex: 1;
    min-width: 0;
}

.ft-tree-builder__name {

    color: var(--ink);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
}

.ft-tree-builder__code {

    font-size: 0.75rem;
    color: var(--muted);
}

.ft-tree-builder__badge {

    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 0.05rem 0.4rem;
}

.edms-ft-builder__structure-card {

    padding: 1rem;
}

.edms-ft-builder__structure-label {

    margin-bottom: 0.85rem;
}

.edms-ft-builder__structure-label .page-section-title {

    margin: 0;
    color: #374151;
    font-size: 1rem;
    font-weight: 650;
}

.edms-ft-builder__structure-label .page-section-title span {

    color: #ef4444;
}

.edms-ft-builder__structure-label p {

    margin: 0.2rem 0 0;
    color: #98a1af;
    font-size: 0.75rem;
}

.edms-ft-builder__toolbar {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid #e5e7eb;
    border-bottom: 0;
    border-radius: 0.55rem 0.55rem 0 0;
    background: #fbfbfc;
}

.edms-ft-builder__toolbar-actions {

    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.edms-ft-builder__toolbar-primary,
.edms-ft-builder__toolbar-button {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 2.25rem;
    padding: 0.4rem 0.75rem;
    border: 1px solid #e1e4ea;
    border-radius: 0.4rem;
    background: #fff;
    color: #4b5563;
    font-family: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

.edms-ft-builder__toolbar-primary {

    border-color: #8b70e8;
    color: #6846d8;
}

.edms-ft-builder__toolbar-primary span {

    font-size: 1.2rem;
    font-weight: 400;
    line-height: 0.7;
}

.edms-ft-builder__toolbar-primary:hover,
.edms-ft-builder__toolbar-button:hover {

    border-color: #6d4de3;
    color: #5b38cf;
}

.edms-ft-builder__search {

    position: relative;
    display: flex;
    align-items: center;
    min-width: 15rem;
}

.edms-ft-builder__search svg {

    position: absolute;
    left: 0.7rem;
    color: #6b7280;
}

.edms-ft-builder__search input {

    width: 100%;
    min-height: 2.25rem;
    padding: 0.4rem 0.7rem 0.4rem 2.1rem;
    border: 1px solid #e1e4ea;
    border-radius: 0.4rem;
    outline: none;
    color: #374151;
    font-family: inherit;
    font-size: 0.75rem;
}

.edms-ft-builder__search input:focus {

    border-color: #8065df;
    box-shadow: 0 0 0 3px rgba(109, 77, 227, 0.1);
}

.edms-ft-builder__paste {

    padding: 0.8rem;
    border: 1px solid #e5e7eb;
    border-top: 0;
    background: #fbfbfc;
}

.edms-ft-builder__paste p {

    margin: 0.35rem 0 0;
    color: #98a1af;
    font-size: 0.72rem;
}

.edms-ft-builder__paste .edms-tpl-actions {

    margin-top: 0.7rem;
}

.edms-ft-builder__tree-shell {

    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 0 0 0.55rem 0.55rem;
    background: #fff;
}

.edms-ft-builder__tree-shell > .ft-tree-builder__list {

    margin-top: 0;
}

.ft-tree-builder__item {

    border-bottom: 1px solid #edf0f3;
}

.ft-tree-builder__item:last-child {

    border-bottom: 0;
}

.ft-tree-builder__row {

    min-height: 2.45rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-right: 0.7rem;
}

.ft-tree-builder__item.is-selected > .ft-tree-builder__row {

    border-radius: 0;
    background: #f7f4ff;
}

.ft-tree-builder__drag-handle {

    width: 1rem;
    color: #9ca3af;
    font-size: 1rem;
    line-height: 1;
    cursor: grab;
}

.ft-tree-builder__toggle {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 1.25rem;
    color: #4b5563;
}

.ft-tree-builder__toggle span {

    display: block;
    transition: transform 120ms ease;
}

.ft-tree-builder__item.is-collapsed .ft-tree-builder__toggle span {

    transform: rotate(-90deg);
}

.ft-tree-builder__folder-icon {

    display: inline-flex;
    flex: 0 0 1.35rem;
    align-items: center;
    color: #7655dc;
}

.ft-tree-builder__select {

    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-height: 1.9rem;
}

.ft-tree-builder__select:hover .ft-tree-builder__name {

    color: #6846d8;
}

.ft-tree-builder__select .ft-tree-builder__code {

    flex: 0 0 2rem;
}

.ft-tree-builder__code {

    color: #5b6472;
    font-family: inherit;
    font-size: 0.75rem;
}

.ft-tree-builder__code-readonly {

    display: inline-flex;
    flex: 0 0 3.3rem;
    align-items: center;
    min-height: 1.9rem;
    padding: 0.3rem 0.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.3rem;
    background: #f9fafb;
    color: #9ca3af;
    font-family: inherit;
    font-size: 0.7rem;
}

.ft-tree-builder__code--automatic {

    display: inline-flex;
    min-width: 3.3rem;
    align-items: center;
    justify-content: center;
    min-height: 1.6rem;
    padding: 0.2rem 0.4rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.3rem;
    background: #f9fafb;
    color: #6b7280;
    font-size: 0.68rem;
    font-style: normal;
    font-weight: 600;
}

.ft-tree-builder__name {

    overflow: hidden;
    color: #374151;
    font-family: inherit;
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ft-tree-builder__actions {

    display: inline-flex;
    align-items: center;
    gap: 1.1rem;
    margin-left: auto;
}

.ft-tree-builder__add,
.ft-tree-builder__more {

    border: 0;
    background: transparent;
    color: #6846d8;
    font-family: inherit;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.ft-tree-builder__more {

    color: #6b7280;
    font-size: 0.95rem;
    letter-spacing: 0.08em;
}

.ft-tree-builder__add:hover,
.ft-tree-builder__more:hover {

    color: #3f20b6;
}

.ft-tree-builder__menu {

    position: relative;
}

.ft-tree-builder__menu-popover {

    position: absolute;
    z-index: 10;
    top: calc(100% + 0.35rem);
    right: 0;
    display: grid;
    min-width: 9.5rem;
    padding: 0.3rem;
    border: 1px solid #e1e4ea;
    border-radius: 0.45rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(31, 35, 45, 0.12);
}

.ft-tree-builder__menu-popover button {

    padding: 0.45rem 0.55rem;
    border: 0;
    border-radius: 0.25rem;
    background: transparent;
    color: #4b5563;
    font-family: inherit;
    font-size: 0.72rem;
    text-align: left;
    cursor: pointer;
}

.ft-tree-builder__menu-popover button:hover {

    background: #f5f3ff;
    color: #5b38cf;
}

.ft-tree-builder__menu-popover button.is-danger {

    color: #dc2626;
}

.ft-tree-builder__code-input,
.ft-tree-builder__name-input {

    min-height: 1.9rem;
    padding: 0.3rem 0.5rem;
    border: 1px solid #d6d9e0;
    border-radius: 0.3rem;
    outline: none;
    color: #374151;
    font-family: inherit;
    font-size: 0.78rem;
}

.ft-tree-builder__code-input {

    flex: 0 0 3.3rem;
    width: 3.3rem;
}

.ft-tree-builder__name-input {

    flex: 1 1 12rem;
    min-width: 5rem;
}

.ft-tree-builder__code-input:focus,
.ft-tree-builder__name-input:focus {

    border-color: #7655dc;
    box-shadow: 0 0 0 2px rgba(109, 77, 227, 0.1);
}

.ft-tree-builder__confirm,
.ft-tree-builder__discard {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.8rem;
    height: 1.8rem;
    border: 0;
    border-radius: 0.3rem;
    cursor: pointer;
}

.ft-tree-builder__confirm {

    background: #7655dc;
    color: #fff;
}

.ft-tree-builder__discard {

    border: 1px solid #e1e4ea;
    background: #fff;
    color: #6b7280;
}

.ft-tree-builder__confirm:hover {

    background: #5b38cf;
}

.ft-tree-builder__discard:hover {

    color: #374151;
}

.edms-ft-builder__tree-footer {

    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.75rem;
    border-top: 1px solid #edf0f3;
    color: #98a1af;
    font-size: 0.7rem;
}

.edms-ft-builder__settings {

    margin-top: 0.85rem;
    padding: 0.8rem 1rem;
}

.edms-ft-builder__settings summary {

    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #4b5563;
    font-size: 0.8rem;
    font-weight: 650;
    cursor: pointer;
}

.edms-ft-builder__settings summary span {

    color: #98a1af;
    font-weight: 400;
}

.edms-ft-builder__settings-grid {

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.edms-ft-builder__move {

    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #edf0f3;
    color: #98a1af;
    font-size: 0.72rem;
}

.edms-ft-builder__move-select {

    width: auto;
    min-width: 12rem;
}

@media (max-width: 700px) {

    .edms-ft-builder__toolbar {

        align-items: stretch;
        flex-direction: column;
    }

    .edms-ft-builder__search {

        min-width: 0;
    }

    .edms-ft-builder__settings-grid {

        grid-template-columns: 1fr;
    }
}

.project-setup-folders__head {

    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.project-setup-folders__picker {

    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.project-setup-folders__preview {

    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.project-setup-folders__preview h4 {

    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.project-setup-folders__preview ul {

    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.85rem;
}

.cc-layout-meta {

    margin: 0.45rem 0 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--edms-text-muted);
}

.cc-pagehead__actions {

    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.cc-btn {

    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 600;
    border-radius: var(--edms-radius);
}

.cc-btn--outline {

    background: #fff;
    border: 1px solid var(--edms-border);
    color: var(--edms-text);
}

.cc-stat__icon--red {
 background: rgba(220, 38, 38, 0.12); color: var(--edms-danger);
}

.shell-content:has(.cc) {

    background: var(--edms-page-bg);
}

.shell-icon-btn:hover,
.shell-menu-btn:hover {

    background: #f8fafc;
    border-color: #cbd5e1;
}

.shell-topbar__search {

        max-width: 20rem;
}

.shell-topbar__greeting--page {

    display: block;
    flex: 1;
    min-width: 0;
}

.shell-topbar__context {

    display: block;
    flex-shrink: 0;
    max-width: 100%;
}

.shell-switcher .edms-input,
.shell-switcher select {

    width: auto;
    min-width: 10.5rem;
    max-width: 16rem;
    height: 2.15rem;
    border-radius: var(--edms-radius);
    font-size: 0.8rem;
    font-weight: 500;
    padding: 0.3rem 1.75rem 0.3rem 0.65rem;
    background: #fff;
    color: var(--edms-text);
    border-color: var(--edms-border);
}

.shell-switcher label:last-child .edms-input,
.shell-switcher label:last-child select {

    min-width: 14rem;
    max-width: 20rem;
}

.shell-global-search {

    position: relative;
    width: 100%;
}

.shell-global-search__field {

    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    height: 2.25rem;
    padding: 0 0.7rem;
    border: 1px solid var(--edms-border);
    border-radius: var(--edms-radius);
    background: #fff;
    color: var(--edms-text-muted);
}

.shell-global-search__field:focus-within {

    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
    color: var(--edms-text);
}

.shell-global-search__input {

    width: 100%;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: auto !important;
    font-size: 0.84rem;
    color: var(--edms-text);
}

.shell-global-search__input::placeholder {

    color: #94a3b8;
}

.shell-global-search__panel {

    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 50;
    max-height: min(24rem, 70vh);
    overflow: auto;
    border: 1px solid var(--edms-border);
    border-radius: var(--edms-radius);
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.1);
}

.shell-global-search__group {

    padding: 0.5rem 0.65rem;
    border-bottom: 1px solid var(--edms-border);
}

.shell-global-search__group-title {

    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--edms-text-muted);
}

.shell-global-search__hit {

    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.45rem 0.5rem;
    border-radius: var(--edms-radius-sm);
    text-decoration: none;
    color: inherit;
}

.shell-global-search__hit:hover {

    background: var(--edms-page-bg);
}

.shell-global-search__hit strong {

    font-size: 0.84rem;
    color: var(--edms-text);
}

.shell-global-search__hit span,
.shell-global-search__meta,
.shell-global-search__snippet {

    font-size: 0.75rem;
    color: var(--edms-text-muted);
}

.shell-global-search__empty,
.shell-global-search__footer {

    padding: 0.75rem;
    font-size: 0.84rem;
    color: var(--edms-text-muted);
}

.shell-global-search__more {

    color: var(--edms-primary);
    font-weight: 500;
    text-decoration: none;
}

.shell-global-search__filter {

    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0.55rem 0.75rem;
    font-size: 0.78rem;
    color: var(--edms-text-muted);
    border-bottom: 1px solid var(--edms-border);
}

@media (min-width: 768px) and (max-width: 1099px) {

    .shell-topbar__context {
        display: block;
    }

    .shell-switcher {
        gap: 0.5rem;
    }

    .shell-switcher .edms-input,
    .shell-switcher select {
        min-width: 8.5rem;
        max-width: 12rem;
    }

    .shell-switcher label:last-child .edms-input,
    .shell-switcher label:last-child select {
        min-width: 11rem;
        max-width: 14rem;
    }

    .shell-topbar__search {
        max-width: 14rem;
    }
}

.edms-badge--success,
.edms-badge-success {

    background: #dcfce7;
    color: #166534;
}

.edms-badge--warning,
.edms-badge-warning {

    background: #ffedd5;
    color: #c2410c;
}

.edms-badge--danger,
.edms-badge-danger {

    background: #fee2e2;
    color: #b91c1c;
}

.edms-badge--info,
.edms-badge-info {

    border-color: transparent;
    background: var(--edms-primary-soft);
    color: var(--edms-primary);
}

.edms-badge--neutral,
.edms-badge-neutral {

    background: #f1f5f9;
    color: #475569;
}

.edms-pagination,
nav[role="navigation"][aria-label*="Pagination"],
.pagination {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.edms-pagination a,
.edms-pagination span,
.pagination a,
.pagination span,
nav[role="navigation"][aria-label*="Pagination"] a,
nav[role="navigation"][aria-label*="Pagination"] span {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.55rem;
    border-radius: var(--edms-radius-sm);
    border: 1px solid var(--edms-border);
    background: #fff;
    color: var(--edms-text);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
}

.edms-pagination .is-active,
.edms-pagination [aria-current="page"],
.pagination .active span,
nav[role="navigation"][aria-label*="Pagination"] [aria-current="page"] {

    background: var(--edms-primary);
    border-color: var(--edms-primary);
    color: #fff;
}

.edms-tabs,
.hub-tabs {

    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem;
    border-bottom: 1px solid var(--edms-border);
    margin-bottom: 0.75rem;
}

.edms-tab,
.hub-tab {

    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid transparent;
    border-bottom: 2px solid transparent;
    border-radius: var(--edms-radius-sm) var(--edms-radius-sm) 0 0;
    padding: 0.55rem 0.85rem;
    background: transparent;
    color: var(--edms-text-muted);
    font-size: 0.84rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
}

.edms-tab:hover,
.hub-tab:hover {

    color: var(--edms-text);
    background: var(--edms-primary-soft);
}

.edms-tab.is-active,
.hub-tab.is-active {

    color: var(--edms-primary);
    border-bottom-color: var(--edms-primary);
    background: transparent;
}

.edms-empty {

    text-align: center;
    padding: 2rem 1rem;
    color: var(--edms-text-muted);
}

.edms-empty__title {

    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--edms-text);
}

.edms-empty__sub {

    margin: 0.35rem 0 0;
    font-size: 0.84rem;
}

.edms-badge-current,
.edms-badge--info,
.edms-badge-info {

    background: var(--edms-primary-soft);
    color: var(--edms-primary);
    text-transform: none;
}

.edms-pagination,
.pagination {

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.edms-pagination a,
.edms-pagination span,
.pagination a,
.pagination span {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.55rem;
    border-radius: var(--edms-radius-sm);
    border: 1px solid var(--edms-border);
    background: #fff;
    color: var(--edms-text);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
}

.edms-pagination .is-active,
.edms-pagination [aria-current="page"],
.pagination .active > span,
.pagination .active > a {

    background: var(--edms-primary);
    border-color: var(--edms-primary);
    color: #fff;
}

.hub-tab.is-active {

    color: var(--edms-primary);
    border-color: var(--edms-border);
    border-bottom-color: var(--edms-card-bg);
    background: var(--edms-card-bg);
    box-shadow: inset 0 -2px 0 var(--edms-primary);
}

.cc-pagehead__copy {
 min-width: 0; flex: 1;
}

.cc-layout-meta__icon {

    color: var(--edms-text-muted);
    flex-shrink: 0;
}

.cc-btn--outline:hover {
 background: #f8fafc;
}

.cc-title__icon {
 color: #94a3b8; flex-shrink: 0;
}

.cc-kpi {

    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    height: 100%;
    margin: 0;
    padding: 0.9rem 1rem;
    background: var(--edms-card-bg);
    border: 1px solid var(--edms-border);
    border-radius: var(--edms-radius);
    box-shadow: var(--edms-shadow);
    text-decoration: none;
    color: inherit;
}

a.cc-kpi:hover {

    border-color: #d4d7de;
    background: #fcfcfd;
}

.cc-kpi__icon {

    width: 2.15rem;
    height: 2.15rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.cc-kpi__icon--purple {
 background: var(--edms-primary-soft); color: var(--edms-primary);
}

.cc-kpi__icon--green {
 background: rgba(22, 163, 74, 0.12); color: var(--edms-success);
}

.cc-kpi__icon--blue {
 background: rgba(37, 99, 235, 0.12); color: var(--edms-info);
}

.cc-kpi__icon--red {
 background: rgba(220, 38, 38, 0.12); color: var(--edms-danger);
}

.cc-kpi__body {
 min-width: 0; flex: 1;
}

.cc-kpi__label {

    margin: 0;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--edms-text-muted);
    line-height: 1.3;
}

.cc-kpi__value {

    margin: 0.35rem 0 0;
    font-size: 1.7rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--edms-text);
    line-height: 1.1;
}

.cc-kpi__caption {

    margin: 0.35rem 0 0;
    font-size: 0.75rem;
    color: var(--edms-text-muted);
    line-height: 1.35;
}

.bulk-reg__steps {

    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.bulk-reg__drop {

    border: 2px dashed var(--edms-border, var(--border));
    border-radius: var(--edms-radius, 0.6rem);
    padding: 2rem 1rem;
    text-align: center;
    background: var(--edms-card-bg, transparent);
    position: relative;
}

.bulk-reg__drop--active {

    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
}

.bulk-reg__file-input {

    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.bulk-reg__drop-title {

    font-weight: 700;
    margin: 0 0 0.35rem;
}

.bulk-reg__stats {

    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.75rem;
}

.bulk-reg__stats div {

    border: 1px solid var(--border);
    border-radius: 0.5rem;
    padding: 0.6rem 0.75rem;
    font-size: 0.85rem;
    color: var(--muted);
}

.bulk-reg__stats span {

    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--ink);
}

.bulk-reg__toolbar {

    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.bulk-reg__bulk-grid {

    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.6rem;
}

.bulk-reg__table-wrap {

    overflow: auto;
    max-height: 70vh;
    border: 1px solid var(--border);
    border-radius: 0.5rem;
}

.bulk-reg__table {

    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.bulk-reg__table th,
.bulk-reg__table td {

    border-bottom: 1px solid var(--border);
    padding: 0.35rem 0.4rem;
    vertical-align: top;
    white-space: nowrap;
}

.bulk-reg__table th {

    position: sticky;
    top: 0;
    background: var(--edms-card-bg, #fff);
    z-index: 1;
    text-align: left;
}

.bulk-reg__cell {

    min-width: 7.5rem;
    font-size: 0.78rem;
    padding: 0.2rem 0.35rem;
}

.bulk-reg__filename {

    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bulk-reg__row--error {

    background: #fef2f2;
}

.bulk-reg__row--warning {

    background: #fffbeb;
}

.bulk-reg__row--valid {

    background: #f0fdf4;
}

.bulk-reg__badge--error {

    background: #fee2e2;
}

.bulk-reg__badge--warning {

    background: #fef3c7;
}

.bulk-reg__badge--valid {

    background: #dcfce7;
}

.bulk-reg__issues {

    margin: 0.25rem 0 0;
    padding-left: 1rem;
    white-space: normal;
    max-width: 18rem;
}

.bulk-reg__issue--error {

    color: #b91c1c;
}

.bulk-reg__issue--warning {

    color: #b45309;
}

.bulk-reg__tiny {

    font-size: 0.7rem;
    padding: 0.1rem 0.4rem;
    margin-top: 0.2rem;
}

.workbench__kpis {

    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
    gap: 0.75rem;
}

.workbench__kpi {

    min-height: 6.25rem;
}

.workbench__kpi--danger {

    border-color: rgba(220, 38, 38, 0.28);
}

.workbench__kpi--warning {

    border-color: rgba(217, 119, 6, 0.28);
}

.workbench__kpi--success {

    border-color: rgba(22, 163, 74, 0.28);
}

.workbench__queue {

    padding: 1rem 1.1rem 1.15rem;
}

.workbench__queue-head {

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.workbench__queue-title {

    margin: 0;
    font-size: 1.05rem;
    font-weight: 750;
}

.workbench__queue-sub {

    margin: 0.2rem 0 0;
    color: var(--edms-text-muted, #64748b);
    font-size: 0.85rem;
}

.workbench__queue-count {

    font-size: 0.8rem;
    color: var(--edms-text-muted, #64748b);
    white-space: nowrap;
}

.workbench__table-wrap {

    overflow-x: auto;
}

.workbench__table {

    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.workbench__table th,
.workbench__table td {

    padding: 0.55rem 0.6rem;
    text-align: left;
    border-bottom: 1px solid var(--edms-border, #e5e7eb);
    vertical-align: top;
}

.workbench__table th {

    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--edms-text-muted, #64748b);
    font-weight: 700;
    white-space: nowrap;
}

.workbench__ref {

    font-weight: 650;
    text-decoration: none;
}

.workbench__priority {

    display: inline-block;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: #f1f5f9;
}

.workbench__priority--critical {
 background: rgba(220, 38, 38, 0.12); color: #b91c1c;
}

.workbench__priority--high {
 background: rgba(217, 119, 6, 0.14); color: #b45309;
}

.workbench__priority--normal {
 background: rgba(37, 99, 235, 0.12); color: #1d4ed8;
}

.workbench__priority--low {
 background: #f1f5f9; color: #475569;
}

.workbench__overdue {
 color: #b91c1c; font-weight: 700;
}

.workbench__actions {

    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.workbench__inline {

    margin-top: 0.55rem;
    min-width: 14rem;
}

.workbench__empty {

    color: var(--edms-text-muted, #64748b);
    padding: 1.25rem 0.6rem;
}


/* ——— Safety: always-on layout contracts ——— */
[x-cloak] { display: none !important; }

.edms-table-wrap { overflow-x: auto; }
.edms-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}
.edms-table th,
.edms-table td {
    padding: 0.65rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.edms-table th {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
    background: #f8fafc;
}
.edms-table tbody tr:hover { background: #f8fafc; }

.edms-btn--primary {
    background: var(--edms-primary);
    border-color: var(--edms-primary);
    color: #fff;
}
.edms-btn--primary:hover {
    background: var(--edms-primary-hover);
    border-color: var(--edms-primary-hover);
    color: #fff;
}
.edms-btn--sm { padding: 0.35rem 0.7rem; font-size: 0.8rem; }
.edms-btn--ghost { background: transparent; }
.edms-btn--danger { color: #fff; background: var(--danger); border-color: var(--danger); }
.edms-btn-secondary { background: #fff; }

.page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}
.page-head__text { min-width: 0; }
.page-head__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.page-title { margin: 0; font-size: 1.45rem; font-weight: 800; letter-spacing: -0.03em; color: var(--ink); }
.page-subtitle { margin: 0.35rem 0 0; color: var(--muted); }

@media (min-width: 960px) {
    .login-page {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    }
    .login-hero {
        display: flex;
        flex-direction: column;
    }
    .login-panel {
        padding: 1.5rem 2rem 1.75rem;
    }
    .login-panel__main {
        max-width: 26.5rem;
    }
}

.login-status {
    margin: 0 0 1rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.55rem;
    background: #ecfdf5;
    color: #166534;
    font-size: 0.85rem;
}

.shell-main,
.shell-content,
.page-stack {
    min-width: 0;
}

@media (min-width: 1280px) {
    .xl\:grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
    .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.commissioning-kpis {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.75rem;
}

.commissioning-centre .cc-card {
    min-width: 0;
}

.commissioning-centre .cc-card__head h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--edms-text);
}

.commissioning-levels {
    display: grid;
    gap: 1rem;
}

.commissioning-level__head,
.commissioning-table__progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.commissioning-level__head span,
.commissioning-table__progress > span {
    color: var(--edms-primary);
    font-weight: 700;
}

.commissioning-progress {
    height: 0.45rem;
    overflow: hidden;
    margin-top: 0.45rem;
    border-radius: 999px;
    background: #eef2f7;
}

.commissioning-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--edms-primary), #9b8af2);
}

.commissioning-level small,
.commissioning-table td small {
    display: block;
    margin-top: 0.25rem;
    color: var(--edms-text-muted);
    font-size: 0.73rem;
}

.commissioning-table__progress {
    min-width: 8rem;
}

.commissioning-table__progress .commissioning-progress {
    flex: 1;
    min-width: 4rem;
    margin-top: 0;
}

.commissioning-empty {
    padding: 1.25rem 0 0.25rem;
}

.commissioning-placeholder {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    max-width: 58rem;
}

.commissioning-placeholder__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.8rem;
    background: var(--edms-primary-soft);
    color: var(--edms-primary);
    font-size: 1.6rem;
}

.commissioning-placeholder h2 {
    margin: 0.15rem 0 0.45rem;
    color: var(--edms-text);
    font-size: 1.15rem;
}

.commissioning-placeholder p {
    margin: 0 0 0.65rem;
    color: var(--edms-text-muted);
}

.commissioning-placeholder__note {
    padding-left: 0.75rem;
    border-left: 3px solid var(--edms-primary);
    font-size: 0.88rem;
}

.commissioning-placeholder .edms-btn-primary {
    margin-top: 0.35rem;
}

@media (min-width: 640px) {
    .commissioning-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 960px) {
    .commissioning-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.commissioning-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 2fr) repeat(2, minmax(10rem, 1fr));
    gap: 0.65rem;
}

.commissioning-form {
    display: grid;
    gap: 1rem;
}

.commissioning-form__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.commissioning-form__head p {
    margin: 0;
}

.commissioning-form__grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.75rem;
}

.commissioning-form__grid label,
.commissioning-form--compact label {
    display: grid;
    gap: 0.35rem;
    color: var(--edms-text-muted);
    font-size: 0.78rem;
    font-weight: 600;
}

.commissioning-form__grid input,
.commissioning-form__grid select,
.commissioning-form__grid textarea,
.commissioning-form--compact input,
.commissioning-form--compact select {
    font-weight: 400;
}

.commissioning-form__wide {
    grid-column: 1 / -1;
}

.commissioning-detail-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.85rem;
}

.commissioning-definition-list {
    display: grid;
    grid-template-columns: minmax(8rem, 0.8fr) minmax(0, 1.2fr);
    gap: 0.6rem 1rem;
    margin: 0.75rem 0 0;
    font-size: 0.86rem;
}

.commissioning-definition-list dt {
    color: var(--edms-text-muted);
}

.commissioning-definition-list dd {
    margin: 0;
    color: var(--edms-text);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.commissioning-record-list {
    display: grid;
    gap: 0.7rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.commissioning-record-list li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid var(--edms-border);
}

.commissioning-record-list small {
    flex-basis: 100%;
    color: var(--edms-text-muted);
}

.commissioning-form--compact {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--edms-border);
}

.commissioning-handover-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.commissioning-handover-grid div {
    display: grid;
    gap: 0.25rem;
    padding: 0.8rem;
    border: 1px solid var(--edms-border);
    border-radius: var(--edms-radius);
}

.commissioning-handover-grid strong {
    color: var(--edms-text);
}

.commissioning-import__intro {
    display: grid;
    gap: 0.65rem;
    max-width: 65rem;
}

.commissioning-import__intro p {
    margin: 0;
    color: var(--edms-text-muted);
}

.commissioning-import__upload {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.commissioning-import-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.commissioning-import-steps li {
    padding: 0.6rem 0.75rem;
    border-bottom: 2px solid var(--edms-border);
    color: var(--edms-text-muted);
    font-size: 0.8rem;
    font-weight: 700;
    text-align: center;
}

.commissioning-import-steps li.is-active,
.commissioning-import-steps li.is-done {
    border-color: var(--edms-primary);
    color: var(--edms-primary);
}

.commissioning-import__summary {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 1rem 0;
    color: var(--edms-text-muted);
    font-size: 0.85rem;
    font-weight: 600;
}

.commissioning-import__summary .is-good {
    color: var(--edms-success);
}

.commissioning-import__summary .is-bad {
    color: var(--edms-danger);
}

.commissioning-level-editor {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.commissioning-level-editor__row {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--edms-border);
    border-radius: 0.75rem;
    background: #fafbff;
}

.commissioning-level-editor__head,
.commissioning-level-editor__actions,
.commissioning-colour-field {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.commissioning-colour-field .edms-input { flex: 1; }
.commissioning-colour { width: 2.5rem; height: 2.5rem; padding: 0.15rem; border: 1px solid var(--edms-border); border-radius: 0.35rem; background: white; }
.commissioning-check { display: flex !important; align-items: center; gap: 0.5rem !important; }
.commissioning-check input { width: 1rem; }
.commissioning-check--warning { color: #9a3412 !important; }

.commissioning-plan-summary,
.commissioning-plan-actions { display: grid; gap: 0.75rem; }
.commissioning-plan-summary article { display: grid; gap: 0.35rem; }
.commissioning-version-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.commissioning-version-list button { display: grid; gap: 0.15rem; min-width: 8rem; padding: 0.7rem; border: 1px solid var(--edms-border); border-radius: 0.6rem; background: var(--surface); text-align: left; }
.commissioning-version-list button.is-current { border-color: var(--edms-primary); box-shadow: 0 0 0 2px var(--edms-primary-soft); }
.commissioning-plan-sections { display: grid; gap: 0.75rem; margin-top: 1rem; }
.commissioning-plan-sections article { display: grid; gap: 0.55rem; padding: 0.85rem; border: 1px solid var(--edms-border); border-radius: 0.6rem; }
.commissioning-plan-sections h3 { margin: 0.15rem 0 0; font-size: 0.95rem; color: var(--edms-text); }
.commissioning-responsibilities { display: grid; gap: 0.65rem; margin-top: 0.75rem; }
.commissioning-responsibility-row { display: grid; grid-template-columns: 1.2fr 0.9fr 1.2fr 1fr auto; gap: 0.5rem; align-items: center; }
.commissioning-compliance-card__body { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.75rem; }
.commissioning-compliance-card__body strong { font-size: 2rem; color: var(--edms-primary); }
.commissioning-compliance-card__body p, .commissioning-compliance-card__body small { margin: 0; color: var(--edms-text-muted); }
@media (min-width: 640px) {
    .commissioning-plan-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .commissioning-plan-actions { display: flex; flex-wrap: wrap; flex-direction: row; }
}
@media (max-width: 639px) {
    .commissioning-responsibility-row { grid-template-columns: 1fr; }
}

.commissioning-script-layout { display: grid; gap: 1rem; }
.commissioning-script-register, .commissioning-script-editor { min-width: 0; }
.commissioning-script-fields, .commissioning-script-copy, .commissioning-step-grid { display: grid; gap: 0.75rem; margin-top: 1rem; }
.commissioning-script-fields label, .commissioning-script-copy label, .commissioning-step-grid label { display: grid; gap: 0.35rem; color: var(--edms-text-muted); font-size: 0.78rem; font-weight: 600; }
.commissioning-script-steps { display: grid; gap: 0.75rem; }
.commissioning-script-steps article { display: grid; gap: 0.75rem; padding: 0.9rem; border: 1px solid var(--edms-border); border-radius: 0.65rem; background: var(--edms-page-bg); }
.commissioning-step-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.commissioning-step-toolbar > div { display: flex; gap: 0.35rem; margin-left: auto; }
.commissioning-step-toolbar button { padding: 0.25rem 0.45rem; border: 1px solid var(--edms-border); border-radius: 0.35rem; background: var(--edms-card-bg); }
.commissioning-step-flags { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; color: var(--edms-text-muted); font-size: 0.76rem; }
.commissioning-step-flags label { display: inline-flex; align-items: center; gap: 0.25rem; }
@media (min-width: 900px) {
    .commissioning-script-layout { grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.8fr); align-items: start; }
    .commissioning-script-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .commissioning-script-copy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .commissioning-script-copy label:last-child { grid-column: 1 / -1; }
    .commissioning-step-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .commissioning-step-grid__wide { grid-column: span 2; }
}

.commissioning-session-fields, .commissioning-session-summary, .commissioning-readiness-grid, .commissioning-execution-layout, .commissioning-execution-form, .commissioning-session-actions { display: grid; gap: 0.75rem; }
.commissioning-session-fields label, .commissioning-execution-form label, .commissioning-session-start label { display: grid; gap: 0.35rem; color: var(--edms-text-muted); font-size: 0.78rem; font-weight: 600; }
.commissioning-asset-picker, .commissioning-session-confirmations { display: grid; gap: 0.5rem; margin-top: 1rem; padding: 0.75rem; border: 1px solid var(--edms-border); border-radius: 0.6rem; }
.commissioning-asset-picker > div, .commissioning-session-confirmations { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; }
.commissioning-asset-picker legend, .commissioning-session-confirmations legend { padding: 0 0.3rem; color: var(--edms-text); font-size: 0.8rem; font-weight: 700; }
.commissioning-readiness-grid { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin-top: 0.75rem; }
.commissioning-readiness-grid > div { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.45rem; padding: 0.65rem; border-radius: 0.55rem; background: var(--edms-card-bg); }
.commissioning-readiness-grid small { grid-column: 2; color: var(--edms-text-muted); }
.commissioning-readiness-grid .is-passed strong { color: #15803d; }
.commissioning-readiness-grid .is-failed strong { color: #b91c1c; }
.commissioning-session-start { display: grid; gap: 0.6rem; margin-top: 1rem; }
.commissioning-step-register { display: grid; gap: 0.45rem; align-content: start; }
.commissioning-step-register button { display: grid; gap: 0.15rem; padding: 0.65rem; border: 1px solid var(--edms-border); border-radius: 0.5rem; background: var(--edms-card-bg); text-align: left; }
.commissioning-step-register button.is-current { border-color: var(--edms-primary); box-shadow: 0 0 0 2px var(--edms-primary-soft); }
.commissioning-step-execution { display: grid; gap: 0.75rem; min-width: 0; }
.commissioning-step-execution h3 { margin: 0; color: var(--edms-text); }
.commissioning-execution-form { margin-top: 0.5rem; }
.commissioning-failure-box { display: grid; gap: 0.6rem; padding: 0.75rem; border: 1px solid #fecaca; border-radius: 0.55rem; background: #fff7f7; }
.commissioning-session-actions { display: flex; flex-wrap: wrap; }
@media (min-width: 640px) {
    .commissioning-session-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .commissioning-session-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .commissioning-session-fields__wide, .commissioning-execution-form__wide { grid-column: span 2; }
    .commissioning-execution-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
    .commissioning-execution-layout { grid-template-columns: minmax(14rem, 0.6fr) minmax(0, 1.8fr); align-items: start; }
}

.commissioning-readiness-toolbar, .commissioning-readiness-toolbar label, .commissioning-readiness-result, .commissioning-readiness-summary, .commissioning-readiness-requirements, .commissioning-gate-editor { display: grid; gap: 0.75rem; }
.commissioning-readiness-toolbar label { color: var(--edms-text-muted); font-size: 0.78rem; font-weight: 600; }
.commissioning-readiness-result { grid-template-columns: 1fr auto; align-items: center; padding: 1.25rem; border: 1px solid var(--edms-border); border-radius: 0.75rem; background: var(--edms-card-bg); }
.commissioning-readiness-result h2, .commissioning-readiness-result p { margin: 0.2rem 0 0; }
.commissioning-readiness-result strong { font-size: 2.4rem; }
.commissioning-readiness-result.is-ready strong { color: #15803d; }
.commissioning-readiness-result.is-risk strong { color: #b45309; }
.commissioning-readiness-result.is-not-ready strong { color: #b91c1c; }
.commissioning-readiness-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.commissioning-readiness-summary article { display: grid; gap: 0.25rem; }
.commissioning-readiness-summary strong { font-size: 1.6rem; }
.commissioning-readiness-requirements { list-style: none; margin: 0; padding: 0; }
.commissioning-readiness-requirements li { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; border-left: 0.25rem solid var(--edms-border); background: var(--edms-card-bg); }
.commissioning-readiness-requirements li > div { display: grid; gap: 0.2rem; flex: 1; }
.commissioning-readiness-requirements li small { color: var(--edms-text-muted); }
.commissioning-readiness-requirements .is-passed { border-color: #16a34a; }
.commissioning-readiness-requirements .is-warning { border-color: #d97706; }
.commissioning-readiness-requirements .is-blocker { border-color: #dc2626; }
.commissioning-readiness-requirements .is-overridden { border-color: #7c3aed; }
.commissioning-override-form { display: grid; gap: 0.75rem; }
.commissioning-gate-editor { margin-top: 1rem; padding: 0.9rem; border: 1px solid var(--edms-border); border-radius: 0.65rem; }
.commissioning-gate-editor__head, .commissioning-requirement-editor { display: grid; gap: 0.5rem; align-items: center; }
.commissioning-requirement-editor { padding-top: 0.65rem; border-top: 1px solid var(--edms-border); }
@media (min-width: 640px) {
    .commissioning-readiness-toolbar { grid-template-columns: 1fr 1fr; }
    .commissioning-readiness-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .commissioning-gate-editor__head { grid-template-columns: 1fr 2fr 0.7fr auto auto; }
    .commissioning-requirement-editor { grid-template-columns: 1fr 1.2fr 2fr 0.8fr 2fr auto auto auto; }
}

.commissioning-dependency-tree, .commissioning-dependency-editor { display: grid; gap: 0.75rem; }
.commissioning-dependency-node { display: grid; grid-template-columns: minmax(10rem, 1fr) auto minmax(10rem, 1fr) auto; gap: 0.75rem; align-items: center; padding: 0.85rem; border-left: 0.25rem solid var(--edms-border); border-radius: 0.5rem; background: var(--edms-card-bg); }
.commissioning-dependency-node.is-complete { border-color: #16a34a; }
.commissioning-dependency-node.is-incomplete { border-color: #64748b; }
.commissioning-dependency-node.is-blocked { border-color: #dc2626; }
.commissioning-dependency-node.is-at-risk { border-color: #d97706; }
.commissioning-dependency-node__subject, .commissioning-dependency-node__prerequisite { display: grid; gap: 0.2rem; }
.commissioning-dependency-node small, .commissioning-dependency-node span { color: var(--edms-text-muted); }
.commissioning-dependency-status { font-size: 0.7rem; font-weight: 700; }
.commissioning-dependency-arrow { color: var(--edms-text-muted); font-size: 0.75rem; text-transform: uppercase; }
.commissioning-dependency-node em { color: var(--edms-text-muted); font-size: 0.75rem; white-space: nowrap; }
.commissioning-dependency-editor__row { display: grid; gap: 0.5rem; padding: 0.75rem 0; border-top: 1px solid var(--edms-border); }
.commissioning-impact-panel { display: grid; gap: 0.75rem; margin-top: 1rem; padding: 1rem; border: 1px solid #f2c08a; border-radius: 0.65rem; background: #fffaf2; }
.commissioning-impact-panel h2 { margin: 0.15rem 0; font-size: 1rem; }
.commissioning-impact-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.commissioning-impact-metrics span { padding: 0.55rem; border: 1px solid #f2c08a; border-radius: 0.4rem; font-size: 0.8rem; }
.commissioning-impact-metrics strong { display: block; font-size: 1.25rem; }
.commissioning-impact-rfs { margin: 0; font-size: 0.85rem; }
.commissioning-impact-reasons { display: grid; gap: 0.35rem; margin: 0; padding-left: 1rem; font-size: 0.8rem; }
@media (max-width: 639px) {
    .commissioning-dependency-node { grid-template-columns: 1fr; }
    .commissioning-dependency-arrow { text-align: center; }
}
@media (min-width: 640px) {
    .commissioning-dependency-editor__row { grid-template-columns: 0.9fr 1fr 1.2fr 1fr 1fr 1fr 1.2fr 1fr 1fr 1fr auto auto auto; }
}

.commissioning-issue-filters, .commissioning-issue-register, .commissioning-issue-form, .commissioning-issue-form__grid, .commissioning-issue-config, .commissioning-issue-workflow-config, .commissioning-issue-evidence { display: grid; gap: 0.75rem; }
.commissioning-issue-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.commissioning-issue-row { display: grid; grid-template-columns: minmax(0, 2fr) auto auto auto; gap: 0.75rem; align-items: center; padding: 0.8rem; color: inherit; text-decoration: none; border-bottom: 1px solid var(--edms-border); }
.commissioning-issue-row:hover { background: var(--edms-page-bg); }
.commissioning-issue-row > div { display: grid; gap: 0.15rem; }
.commissioning-issue-row small { color: var(--edms-text-muted); }
.commissioning-issue-severity { display: inline-flex; width: fit-content; padding: 0.2rem 0.45rem; border-radius: 999px; font-size: 0.7rem; font-weight: 700; }
.commissioning-issue-severity.is-critical { color: #991b1b; background: #fee2e2; }
.commissioning-issue-severity.is-high { color: #9a3412; background: #ffedd5; }
.commissioning-issue-severity.is-medium { color: #92400e; background: #fef3c7; }
.commissioning-issue-severity.is-low { color: #166534; background: #dcfce7; }
.commissioning-issue-severity.is-observation { color: #475569; background: #f1f5f9; }
.commissioning-issue-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.commissioning-issue-form__grid label { display: grid; gap: 0.35rem; font-size: 0.8rem; font-weight: 600; }
.commissioning-issue-form__wide { grid-column: 1 / -1; }
.commissioning-issue-config__choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.commissioning-issue-config fieldset { display: grid; gap: 0.35rem; border: 1px solid var(--edms-border); padding: 0.75rem; }
.commissioning-issue-config legend { font-weight: 700; }
.commissioning-issue-workflow-config { grid-template-columns: 1fr 2fr auto; align-items: center; }
.commissioning-issue-detail__summary { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.commissioning-issue-workflow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; color: var(--edms-text-muted); font-size: 0.78rem; }
.commissioning-issue-workflow span { padding: 0.35rem 0.5rem; border-radius: 0.35rem; }
.commissioning-issue-workflow .is-current { color: var(--edms-text); background: #e2e8f0; font-weight: 700; }
.commissioning-issue-evidence { list-style: none; margin: 0; padding: 0; }
.commissioning-issue-evidence li { display: grid; grid-template-columns: 1fr 1fr auto; gap: 0.75rem; padding: 0.65rem; border-bottom: 1px solid var(--edms-border); }
.commissioning-issue-evidence small { color: var(--edms-text-muted); }
.commissioning-issue-evidence-form { display: grid; grid-template-columns: 1fr 1fr auto auto; margin-top: 1rem; }
@media (max-width: 700px) {
    .commissioning-issue-filters, .commissioning-issue-form__grid, .commissioning-issue-config__choices { grid-template-columns: 1fr; }
    .commissioning-issue-row, .commissioning-issue-evidence li, .commissioning-issue-evidence-form { grid-template-columns: 1fr; align-items: start; }
    .commissioning-issue-detail__summary { display: grid; }
}

@media (min-width: 640px) {
    .commissioning-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .commissioning-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .commissioning-form--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .commissioning-handover-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 960px) {
    .commissioning-detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .commissioning-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 639px) {
    .commissioning-toolbar,
    .commissioning-form__head { grid-template-columns: 1fr; display: grid; }
    .commissioning-import-steps { gap: 0.15rem; }
    .commissioning-import-steps li { padding: 0.5rem 0.15rem; font-size: 0.7rem; }
}

.commissioning-instrument-toolbar { display:flex; gap:.75rem; margin-bottom:1rem; }
.commissioning-instrument-toolbar .edms-input { flex:1; }
.commissioning-instrument-table { overflow-x:auto; }
.commissioning-instrument-table__head, .commissioning-instrument-row { display:grid; grid-template-columns:1.1fr 1.2fr 1fr 1.35fr .85fr; gap:1rem; align-items:center; min-width:50rem; }
.commissioning-instrument-table__head { padding:.65rem .75rem; color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.commissioning-instrument-row { width:100%; padding:.9rem .75rem; border:1px solid var(--border); border-radius:.65rem; background:#fff; color:var(--ink); text-align:left; }
.commissioning-instrument-row + .commissioning-instrument-row { margin-top:.5rem; }
.commissioning-instrument-row:hover { border-color:var(--accent); background:var(--accent-soft); }
.commissioning-instrument-row span, .commissioning-calibration-history div { display:flex; flex-direction:column; gap:.2rem; }
.commissioning-instrument-row small, .commissioning-calibration-history small { color:var(--muted); font-size:.78rem; }
.commissioning-instrument-form, .commissioning-instrument-policy { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; margin-bottom:1rem; }
.commissioning-instrument-form label, .commissioning-instrument-policy label { display:flex; flex-direction:column; gap:.35rem; color:var(--muted); font-size:.8rem; font-weight:700; }
.commissioning-instrument-form__wide { grid-column:1/-1; }
.commissioning-instrument-policy label { flex-direction:row; align-items:center; }
.commissioning-instrument-policy label:first-child, .commissioning-instrument-policy label:nth-child(2) { flex-direction:column; align-items:stretch; }
.commissioning-calibration-history { display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); gap:.7rem; margin-bottom:1.25rem; }
.commissioning-calibration-history > div { padding:.8rem; border:1px solid var(--border); border-radius:.6rem; }
@media (max-width:799px) { .commissioning-instrument-form, .commissioning-instrument-policy { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:559px) { .commissioning-instrument-toolbar, .commissioning-instrument-form, .commissioning-instrument-policy { display:grid; grid-template-columns:1fr; } }
.commissioning-evidence-completeness, .commissioning-test-record-banner { display:flex; flex-direction:column; gap:.75rem; }
.commissioning-evidence-completeness ul { margin:0; padding-left:1.25rem; }
.commissioning-test-record-banner { flex-direction:row; justify-content:space-between; align-items:center; }
.commissioning-test-record-banner small { color:var(--muted); overflow-wrap:anywhere; }
@media (max-width:639px) { .commissioning-test-record-banner { align-items:stretch; } }
.commissioning-turnover-toolbar, .commissioning-turnover-layout, .commissioning-turnover-actions { display:flex; gap:.8rem; }
.commissioning-turnover-toolbar { align-items:end; justify-content:space-between; }
.commissioning-turnover-toolbar label, .commissioning-turnover-form label { display:flex; flex-direction:column; gap:.35rem; color:var(--muted); font-size:.8rem; font-weight:700; }
.commissioning-turnover-layout { align-items:flex-start; }
.commissioning-turnover-register { flex:0 0 34%; }
.commissioning-turnover-detail, .commissioning-turnover-layout > article:nth-child(2) { flex:1; }
.commissioning-turnover-row { display:grid; grid-template-columns:1.4fr 1fr .55fr 1fr; gap:.8rem; width:100%; padding:.75rem; border:1px solid var(--border); border-radius:.6rem; background:#fff; color:var(--ink); text-align:left; }
.commissioning-turnover-row + .commissioning-turnover-row { margin-top:.5rem; }
.commissioning-turnover-row.is-current, .commissioning-turnover-row:hover { border-color:var(--accent); background:var(--accent-soft); }
.commissioning-turnover-row span, .commissioning-turnover-requirements > div { display:flex; flex-direction:column; gap:.2rem; }
.commissioning-turnover-row small, .commissioning-turnover-detail > .cc-card__head span:last-child { color:var(--muted); }
.commissioning-turnover-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin-bottom:1rem; }
.commissioning-turnover-summary { display:flex; align-items:baseline; gap:.8rem; padding:1rem; border-radius:.6rem; background:var(--accent-soft); }
.commissioning-turnover-summary strong { font-size:2rem; }
.commissioning-turnover-missing, .commissioning-turnover-rejected { margin-top:1rem; padding:.75rem; border-radius:.6rem; background:#fff7ed; }
.commissioning-turnover-rejected { background:#fff1f2; }
.commissioning-turnover-actions { flex-wrap:wrap; margin:1rem 0; }
.commissioning-turnover-rejection-field { display:flex; flex-direction:column; gap:.35rem; margin-bottom:.6rem; color:var(--muted); font-size:.8rem; font-weight:700; }
.commissioning-turnover-requirements { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.commissioning-turnover-requirements > div { padding:.7rem; border:1px solid var(--border); border-radius:.6rem; }
@media (max-width:899px) { .commissioning-turnover-layout { flex-direction:column; } .commissioning-turnover-register, .commissioning-turnover-detail, .commissioning-turnover-layout > article:nth-child(2) { width:100%; } }
@media (max-width:639px) { .commissioning-turnover-toolbar, .commissioning-turnover-form, .commissioning-turnover-requirements { display:grid; grid-template-columns:1fr; } .commissioning-turnover-toolbar { align-items:stretch; } .commissioning-turnover-row { grid-template-columns:1fr 1fr; } }
.commissioning-rfs-toolbar,.commissioning-rfs-toolbar label { display:flex; align-items:center; gap:.8rem; }
.commissioning-rfs-toolbar { justify-content:space-between; }
.commissioning-rfs-toolbar label { color:var(--muted); font-size:.8rem; font-weight:700; }
.commissioning-rfs-grid { display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:.8rem; }
.commissioning-rfs-score { display:flex; flex-direction:column; gap:.3rem; }
.commissioning-rfs-score>strong { font-size:3rem; line-height:1; }
.commissioning-rfs-score>span,.commissioning-rfs-score>small,.commissioning-rfs-current-approval small,.commissioning-rfs-blockers small,.commissioning-rfs-requirement small { color:var(--muted); }
.commissioning-rfs-current-approval { display:flex; flex-direction:column; gap:.2rem; margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--border); }
.commissioning-rfs-blockers>div { display:flex; flex-direction:column; gap:.2rem; padding:.6rem 0; border-bottom:1px solid var(--border); }
.commissioning-rfs-requirements { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.commissioning-rfs-requirement { display:flex; flex-direction:column; gap:.35rem; padding:.75rem; border:1px solid var(--border); border-radius:.6rem; }
.commissioning-rfs-warning,.commissioning-rfs-blocker-list { margin-top:1rem; padding:.75rem; border-radius:.6rem; background:#fff7ed; }
.commissioning-rfs-blocker-list { background:#fff1f2; }
.commissioning-rfs-signoff { display:flex; flex-direction:column; gap:.7rem; }
.commissioning-rfs-editor { display:grid; grid-template-columns:.8fr 1.2fr 1fr .7fr 2fr auto; gap:.6rem; margin-bottom:.6rem; }
.commissioning-rfs-approval-row { padding:.7rem 0; border-bottom:1px solid var(--border); }
.commissioning-rfs-approval-row span,.commissioning-rfs-approval-row small { display:block; color:var(--muted); }
@media (max-width:999px) { .commissioning-rfs-grid { grid-template-columns:1fr 1fr; } .commissioning-rfs-grid>article:last-child { grid-column:1/-1; } .commissioning-rfs-requirements { grid-template-columns:repeat(2,minmax(0,1fr)); } .commissioning-rfs-editor { grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:639px) { .commissioning-rfs-toolbar,.commissioning-rfs-toolbar label { align-items:stretch; flex-direction:column; } .commissioning-rfs-grid,.commissioning-rfs-requirements,.commissioning-rfs-editor { grid-template-columns:1fr; } .commissioning-rfs-grid>article:last-child { grid-column:auto; } }

.commissioning-reports { --report-green:#15803d; --report-amber:#b45309; --report-red:#b91c1c; --report-blue:#0369a1; }
.commissioning-report-filters__head,.commissioning-report-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.commissioning-report-filter-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; margin:1rem 0 .75rem; }
.commissioning-report-filter-grid label { display:flex; flex-direction:column; gap:.35rem; color:var(--muted); font-size:.78rem; font-weight:700; }
.commissioning-report-kpis,.commissioning-report-stat-grid,.commissioning-readiness-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; }
.commissioning-report-kpis article,.commissioning-report-stat-grid>div,.report-status-tile { display:flex; flex-direction:column; gap:.25rem; padding:.9rem; }
.commissioning-report-kpis article span,.commissioning-report-kpis article small,.commissioning-report-stat-grid span { color:var(--muted); font-size:.78rem; }
.commissioning-report-kpis strong,.commissioning-report-stat-grid strong { font-size:1.65rem; line-height:1; }
.commissioning-report-table-block { margin-top:1.25rem; }
.commissioning-report-table-block h3,.commissioning-report-two-col h3 { margin:0 0 .55rem; font-size:.9rem; }
.commissioning-report-two-col { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.commissioning-report-stat-grid { grid-template-columns:repeat(4,minmax(0,1fr)); margin:1rem 0; }
.report-progress { display:inline-block; width:6rem; height:.45rem; margin-right:.35rem; overflow:hidden; vertical-align:middle; border-radius:99px; background:#e2e8f0; }
.report-progress span { display:block; height:100%; border-radius:inherit; background:var(--report-blue); }
.report-status,.report-status-tile,.commissioning-heat-cell { border:1px solid var(--border); border-radius:.6rem; }
.report-status { display:inline-block; padding:.25rem .5rem; font-size:.75rem; font-weight:700; }
.report-status--ready,.report-status-tile--ready,.commissioning-heat-cell--complete { color:var(--report-green); background:#f0fdf4; }
.report-status--at_risk,.report-status-tile--at_risk,.commissioning-heat-cell--at_risk { color:var(--report-amber); background:#fffbeb; }
.report-status--blocked,.report-status-tile--blocked,.commissioning-heat-cell--blocked { color:var(--report-red); background:#fff1f2; }
.report-status-tile--not_started,.commissioning-heat-cell--not_started { color:var(--muted); background:#f8fafc; }
.commissioning-heat-legend { display:flex; flex-wrap:wrap; gap:.8rem; margin:1rem 0; color:var(--muted); font-size:.78rem; }
.commissioning-heat-legend span { display:inline-flex; align-items:center; gap:.35rem; }
.report-status-dot { width:.7rem; height:.7rem; border-radius:50%; background:var(--muted); }
.report-status-dot--complete { background:var(--report-green); } .report-status-dot--in_progress { background:var(--report-blue); } .report-status-dot--at_risk { background:var(--report-amber); } .report-status-dot--blocked { background:var(--report-red); }
.commissioning-heat-map { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.7rem; }
.commissioning-heat-cell { display:flex; flex-direction:column; gap:.45rem; min-height:8rem; padding:.85rem; }
.commissioning-heat-cell>div { display:flex; flex-direction:column; gap:.15rem; } .commissioning-heat-cell small { color:var(--muted); font-size:.75rem; } .commissioning-heat-cell b { font-size:1.35rem; }
@media (max-width:999px) { .commissioning-report-filter-grid,.commissioning-report-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } .commissioning-report-two-col { grid-template-columns:1fr; } }
@media (max-width:639px) { .commissioning-report-filter-grid,.commissioning-report-kpis,.commissioning-report-stat-grid,.commissioning-readiness-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .commissioning-report-filters__head,.commissioning-report-section-head { flex-direction:column; } }
.commissioning-intelligence-panel { border-left:3px solid var(--accent); }
.commissioning-intelligence-findings { display:grid; gap:.55rem; margin:1rem 0 0; padding:0; list-style:none; }
.commissioning-intelligence-findings li,.commissioning-related-records>div { display:flex; flex-direction:column; gap:.2rem; padding:.65rem .75rem; border:1px solid var(--border); border-radius:.5rem; background:#f8fafc; }
.commissioning-intelligence-findings small,.commissioning-related-records span,.commissioning-related-records small { color:var(--muted); font-size:.78rem; }
.commissioning-related-records { margin-top:1rem; } .commissioning-related-records h3 { margin:0 0 .45rem; font-size:.85rem; } .commissioning-related-records>div+div { margin-top:.4rem; }
.commissioning-forecast-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:.8rem; }
.commissioning-forecast-dates,.commissioning-forecast-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin:1rem 0; }
.commissioning-forecast-dates>div,.commissioning-forecast-metrics>div { display:flex; flex-direction:column; gap:.2rem; padding:.7rem; border:1px solid var(--border); border-radius:.5rem; }
.commissioning-forecast-dates span,.commissioning-forecast-metrics span { color:var(--muted); font-size:.75rem; } .commissioning-forecast-dates strong { font-size:1.15rem; }
.commissioning-forecast-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.commissioning-forecast-driver { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--border); }
.commissioning-forecast-driver div { display:flex; flex-direction:column; gap:.2rem; } .commissioning-forecast-driver span { color:var(--muted); font-size:.8rem; }
.commissioning-lessons-list { display:grid; gap:.75rem; margin-top:1rem; } .commissioning-lesson-card { padding:1rem; border:1px solid var(--border); border-radius:.65rem; }
.commissioning-lesson-card__head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; } .commissioning-lesson-card h3 { margin:.6rem 0 .4rem; font-size:1rem; } .commissioning-lesson-card p { margin:.5rem 0; }
.commissioning-lesson-edit { display:grid; gap:.7rem; } .commissioning-lesson-edit label { display:flex; flex-direction:column; gap:.3rem; color:var(--muted); font-size:.8rem; font-weight:700; }
.commissioning-lesson-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.75rem; }
@media (max-width:899px) { .commissioning-forecast-grid { grid-template-columns:1fr; } }
@media (max-width:639px) { .commissioning-forecast-dates,.commissioning-forecast-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .commissioning-forecast-driver,.commissioning-lesson-card__head { align-items:stretch; flex-direction:column; } }

/* ---------------------------------------------------------------------------
   First-run workspace setup wizard
   Sits above every other layer: modals and the sidebar backdrop share z-index
   40/50, and this dialog must never be occluded or dismissed.
--------------------------------------------------------------------------- */
.edms-modal-backdrop--blocking {
    z-index: 1000;
    background: rgba(15, 23, 42, 0.72);
    backdrop-filter: blur(2px);
}

.edms-modal--blocking {
    z-index: 1001;
}

.setup-wizard {
    display: flex;
    top: 50%;
    width: min(52rem, calc(100vw - 2rem));
    max-height: min(50rem, calc(100vh - 2.5rem));
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    transform: translate(-50%, -50%);
    border: 1px solid #e4e7ec;
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 1.75rem 4rem rgba(15, 23, 42, 0.22);
}

/* Header --------------------------------------------------------------- */
.setup-wizard__header {
    display: flex;
    flex-shrink: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.7rem 1.75rem 1.3rem;
    border-bottom: 1px solid #edeff3;
}

.setup-wizard__header h3 {
    margin: 0;
    color: #111827;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: -0.015em;
}

.setup-wizard__header p {
    max-width: 23rem;
    margin: 0.5rem 0 0;
    color: #6b7280;
    font-size: 0.82rem;
    line-height: 1.5;
}

.setup-wizard__dismiss {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    margin: -0.2rem -0.35rem 0 0;
    padding: 0;
    border: 0;
    border-radius: 0.45rem;
    background: transparent;
    color: #374151;
}

.setup-wizard__dismiss:disabled {
    cursor: default;
    opacity: 1;
}

/* Two-column body ------------------------------------------------------ */
.setup-wizard__layout {
    display: grid;
    min-height: 0;
    flex: 1;
    grid-template-columns: 12.5rem minmax(0, 1fr);
    gap: 0.9rem;
    overflow: auto;
    padding: 1.5rem 1.75rem 1.75rem;
}

.setup-wizard__aside {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1rem;
}

/* Step rail ------------------------------------------------------------ */
.setup-wizard-steps {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.setup-wizard-steps li {
    position: relative;
    display: grid;
    grid-template-columns: 1.4rem minmax(0, 1fr) 1rem;
    align-items: start;
    gap: 0.6rem;
    margin: 0;
    padding: 0.7rem 0.65rem 0.75rem;
    border: 0;
    border-radius: 0.6rem;
    color: #6b7280;
    font-size: 0.75rem;
    font-weight: 400;
}

.setup-wizard-steps li:not(:last-child)::after {
    position: absolute;
    top: 2.5rem;
    bottom: -0.55rem;
    left: 1.35rem;
    width: 0;
    content: "";
    border-left: 1px dashed #d5d8e0;
}

.setup-wizard-steps li.is-active {
    background: #f5f2fe;
}

.setup-wizard-steps__index {
    display: inline-flex;
    width: 1.4rem;
    height: 1.4rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #dfe2e8;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 600;
}

.setup-wizard-steps li.is-active .setup-wizard-steps__index,
.setup-wizard-steps li.is-done .setup-wizard-steps__index {
    background: #6d4de3;
    color: #fff;
}

.setup-wizard-steps__copy {
    display: block;
    min-width: 0;
    padding-top: 0.05rem;
}

.setup-wizard-steps__copy strong {
    display: block;
    color: #374151;
    font-size: 0.79rem;
    font-weight: 600;
}

.setup-wizard-steps__copy small {
    display: block;
    margin-top: 0.2rem;
    color: #6b7280;
    font-size: 0.7rem;
    line-height: 1.4;
}

.setup-wizard-steps__icon {
    align-self: center;
    color: #9ca3af;
}

.setup-wizard-steps li.is-active .setup-wizard-steps__icon,
.setup-wizard-steps li.is-done .setup-wizard-steps__icon {
    color: #6d4de3;
}

/* Help card ------------------------------------------------------------ */
.setup-wizard-help {
    display: grid;
    grid-template-columns: 1.5rem minmax(0, 1fr);
    gap: 0.6rem;
    margin-top: auto;
    padding: 0.9rem 0.85rem 1rem;
    border-radius: 0.65rem;
    background: #f5f2fe;
}

.setup-wizard-help__icon {
    display: inline-flex;
    width: 1.5rem;
    height: 1.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #e5ddfb;
    color: #6d4de3;
    font-size: 0.78rem;
    font-weight: 700;
}

.setup-wizard-help strong {
    display: block;
    padding-top: 0.15rem;
    color: #374151;
    font-size: 0.79rem;
    font-weight: 600;
}

.setup-wizard-help p {
    margin: 0.4rem 0 0;
    color: #6b7280;
    font-size: 0.7rem;
    line-height: 1.45;
}

/* Form panel ----------------------------------------------------------- */
.setup-wizard__panel {
    min-width: 0;
    padding: 1.35rem 1.5rem 1.6rem;
    border: 1px solid #e9ebf0;
    border-radius: 0.7rem;
    background: #fff;
}

.setup-wizard__kicker {
    display: block;
    color: #6d4de3;
    font-size: 0.78rem;
    font-weight: 600;
}

.setup-wizard__panel h4 {
    margin: 0.5rem 0 0;
    color: #111827;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.setup-wizard__lede {
    margin: 0.45rem 0 0;
    color: #6b7280;
    font-size: 0.81rem;
}

.setup-wizard-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 1.25rem;
    margin-top: 1.5rem;
}

.setup-wizard-field {
    display: block;
    min-width: 0;
}

.setup-wizard-field--full {
    grid-column: 1 / -1;
}

.setup-wizard-field__label {
    display: block;
    margin-bottom: 0.4rem;
    color: #374151;
    font-size: 0.78rem;
    font-weight: 600;
}

.setup-wizard-field__required {
    color: #e11d48;
    font-weight: 600;
}

.setup-wizard-field__optional {
    color: #6b7280;
    font-weight: 400;
}

.setup-wizard-field__help {
    display: block;
    margin-top: 0.4rem;
    color: #98a1af;
    font-size: 0.72rem;
    font-weight: 400;
    line-height: 1.4;
}

.setup-wizard-field__error {
    display: block;
    margin-top: 0.35rem;
    color: #dc2626;
    font-size: 0.72rem;
    font-weight: 600;
}

/* Controls ------------------------------------------------------------- */
.setup-wizard-control {
    position: relative;
    display: block;
}

.setup-wizard-control input,
.setup-wizard-control select {
    width: 100%;
    height: 2.5rem;
    padding: 0 0.8rem;
    border: 1px solid #dcdfe6;
    border-radius: 0.45rem;
    background: #fff;
    color: #1f2937;
    font-family: inherit;
    font-size: 0.83rem;
    outline: none;
}

.setup-wizard-control input::placeholder {
    color: #9ca3af;
}

.setup-wizard-control input:focus,
.setup-wizard-control select:focus {
    border-color: #6d4de3;
    box-shadow: 0 0 0 3px rgba(109, 77, 227, 0.12);
}

.setup-wizard-control--icon input {
    padding-left: 2.3rem;
}

.setup-wizard-control--select select {
    padding-right: 2.3rem;
    appearance: none;
    -webkit-appearance: none;
}

.setup-wizard-control__icon,
.setup-wizard-control__chevron {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.setup-wizard-control__icon {
    left: 0.75rem;
    color: #9ca3af;
}

.setup-wizard-control__chevron {
    right: 0.7rem;
    color: #6b7280;
}

/* Notices -------------------------------------------------------------- */
.setup-wizard-note {
    margin: 1.1rem 0 0;
    padding: 0.6rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.78rem;
    font-weight: 500;
}

.setup-wizard-note--success {
    border: 1px solid rgba(22, 163, 74, 0.28);
    background: rgba(22, 163, 74, 0.08);
    color: #15803d;
}

.setup-wizard-locked {
    margin-top: 1.4rem;
    padding: 1rem 1.1rem;
    border: 1px solid #e9ebf0;
    border-radius: 0.6rem;
    background: #f9fafb;
}

.setup-wizard-locked h5 {
    margin: 0 0 0.4rem;
    color: #111827;
    font-size: 0.88rem;
    font-weight: 600;
}

.setup-wizard-locked p {
    margin: 0;
    color: #6b7280;
    font-size: 0.8rem;
    line-height: 1.55;
}

/* Footer --------------------------------------------------------------- */
.setup-wizard__footer {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0;
    padding: 1rem 1.75rem;
    border-top: 1px solid #edeff3;
}

.setup-wizard__footer-actions {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.setup-wizard__cancel,
.setup-wizard__submit {
    display: inline-flex;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0 1.15rem;
    border-radius: 0.45rem;
    font-family: inherit;
    font-size: 0.82rem;
    white-space: nowrap;
}

.setup-wizard__cancel {
    border: 1px solid #dcdfe6;
    background: #fff;
    color: #374151;
    font-weight: 500;
}

.setup-wizard__cancel:disabled {
    cursor: default;
    opacity: 1;
}

.setup-wizard__submit {
    border: 1px solid #6d4de3;
    background: #6d4de3;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 0.4rem 0.9rem rgba(109, 77, 227, 0.24);
}

.setup-wizard__submit:hover {
    border-color: #5d3fd4;
    background: #5d3fd4;
}

.setup-wizard__submit:disabled {
    opacity: 0.7;
}

.setup-wizard__next {
    color: #6b7280;
    font-size: 0.82rem;
}

@media (max-width: 760px) {
    .setup-wizard {
        top: 0.75rem;
        max-height: calc(100vh - 1.5rem);
        transform: translateX(-50%);
    }

    .setup-wizard__header {
        padding: 1.25rem 1.15rem 1rem;
    }

    .setup-wizard__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.1rem;
        padding: 1.15rem 1.15rem 1.35rem;
    }

    .setup-wizard-steps {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.3rem;
    }

    .setup-wizard-steps li {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
        gap: 0.4rem;
        padding: 0.6rem 0.3rem;
        text-align: center;
    }

    .setup-wizard-steps li:not(:last-child)::after {
        display: none;
    }

    .setup-wizard-steps__copy small,
    .setup-wizard-steps__icon {
        display: none;
    }

    .setup-wizard-help {
        display: none;
    }

    .setup-wizard__panel {
        padding: 1.15rem 1.1rem 1.35rem;
    }

    .setup-wizard-form {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.95rem;
    }

    .setup-wizard-field--full {
        grid-column: auto;
    }

    .setup-wizard__footer {
        align-items: stretch;
        flex-direction: column-reverse;
        gap: 0.7rem;
        padding: 0.9rem 1.15rem;
    }

    .setup-wizard__footer-actions {
        flex-direction: column-reverse;
        align-items: stretch;
        gap: 0.5rem;
        text-align: center;
    }

    .setup-wizard__cancel {
        width: 100%;
    }
}

.setup-folder-structure__numbering {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(10rem, 1fr);
    gap: 0.75rem;
    align-items: end;
    padding: 0.7rem 0;
}

.setup-folder-structure__numbering-fields {
    display: grid;
    grid-template-columns: minmax(9rem, 1.4fr) repeat(3, minmax(4rem, 0.7fr));
    gap: 0.5rem;
}

.setup-folder-structure__numbering-fields .setup-wizard-field {
    margin: 0;
}

.setup-folder-structure__numbering-preview {
    align-self: center;
    color: #98a1af;
    font-size: 0.7rem;
}

.setup-folder-structure__numbering-preview strong {
    display: block;
    margin-top: 0.2rem;
    color: #6846d8;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8rem;
    font-weight: 600;
}

.setup-folder-tree__code-readonly,
.setup-folder-tree__code--automatic {
    display: inline-flex;
    min-width: 3rem;
    align-items: center;
    justify-content: center;
    min-height: 1.65rem;
    padding: 0.2rem 0.4rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.3rem;
    background: #f9fafb;
    color: #6b7280;
    font-size: 0.68rem;
    font-weight: 600;
}

@media (max-width: 760px) {
    .setup-folder-structure__numbering {
        grid-template-columns: 1fr;
    }

    .setup-folder-structure__numbering-fields {
        grid-template-columns: 1fr 1fr;
    }

    .setup-folder-structure__numbering-fields .setup-wizard-field:first-child {
        grid-column: 1 / -1;
    }
}

.setup-wizard-form--single {
    grid-template-columns: minmax(0, 1fr);
}

.setup-wizard-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    grid-column: 1 / -1;
}

.setup-wizard-choice {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.8rem;
    border: 1px solid #dcdfe6;
    border-radius: 0.5rem;
    cursor: pointer;
}

.setup-wizard-choice:has(input:checked) {
    border-color: #6d4de3;
    background: #f5f2fe;
    box-shadow: 0 0 0 1px #6d4de3;
}

.setup-wizard-choice input {
    flex: 0 0 auto;
    margin-top: 0.15rem;
    accent-color: #6d4de3;
}

.setup-wizard-choice strong,
.setup-wizard-choice small {
    display: block;
}

.setup-wizard-choice strong {
    color: #374151;
    font-size: 0.78rem;
    font-weight: 600;
}

.setup-wizard-choice small {
    margin-top: 0.25rem;
    color: #6b7280;
    font-size: 0.7rem;
    line-height: 1.4;
}

.setup-wizard-choice code {
    padding: 0.05rem 0.2rem;
    border-radius: 0.2rem;
    background: #e5e7eb;
    font-size: 0.68rem;
}

.setup-wizard-control textarea {
    display: block;
    width: 100%;
    min-height: 7rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid #dcdfe6;
    border-radius: 0.45rem;
    background: #fff;
    color: #1f2937;
    font-family: inherit;
    font-size: 0.83rem;
    line-height: 1.5;
    outline: none;
    resize: vertical;
}

.setup-wizard-control textarea::placeholder {
    color: #9ca3af;
}

.setup-wizard-control textarea:focus {
    border-color: #6d4de3;
    box-shadow: 0 0 0 3px rgba(109, 77, 227, 0.12);
}

.setup-wizard-folder-preview {
    grid-column: 1 / -1;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 0.55rem;
    background: #fafafa;
}

.setup-wizard-folder-preview__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0.85rem;
    border-bottom: 1px solid #e5e7eb;
}

.setup-wizard-folder-preview__head strong,
.setup-wizard-folder-preview__head small {
    display: block;
}

.setup-wizard-folder-preview__head strong {
    color: #374151;
    font-size: 0.78rem;
    font-weight: 600;
}

.setup-wizard-folder-preview__head small {
    margin-top: 0.2rem;
    color: #98a1af;
    font-size: 0.7rem;
}

.setup-wizard-folder-preview__edit {
    flex-shrink: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #6d4de3;
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
}

.setup-wizard-folder-preview__edit:hover {
    text-decoration: underline;
}

.setup-wizard-folder-preview__tree {
    max-height: 14rem;
    margin: 0;
    padding: 0.55rem 0;
    overflow: auto;
    list-style: none;
}

.setup-wizard-folder-preview__tree li {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 1.55rem;
    color: #4b5563;
    font-size: 0.72rem;
}

.setup-wizard-folder-preview__tree li span {
    color: #9ca3af;
    font-size: 0.65rem;
}

.setup-wizard-form__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 1.25rem;
}

.setup-wizard__skip {
    padding: 0;
    border: 0;
    background: transparent;
    color: #6b7280;
    font-family: inherit;
    font-size: 0.82rem;
    cursor: pointer;
}

.setup-wizard__skip:hover {
    color: #374151;
    text-decoration: underline;
}

@media (max-width: 760px) {
    .setup-wizard-choice-grid,
    .setup-wizard-form__columns {
        grid-template-columns: minmax(0, 1fr);
    }
}

.setup-folder-mode-link {
    justify-self: start;
    margin-top: -0.55rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #6d4de3;
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
}

.setup-folder-mode-link:hover {
    text-decoration: underline;
}

.setup-folder-structure {
    min-width: 0;
    margin-top: 0.25rem;
}

.setup-folder-structure__waiting {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 5rem;
    margin-top: 0.25rem;
    padding: 0.8rem;
    border: 1px dashed #dcdfe6;
    border-radius: 0.45rem;
    color: #98a1af;
    font-size: 0.72rem;
}

.setup-folder-structure__waiting-icon {
    display: inline-flex;
    color: #8b70e8;
}

.setup-folder-structure__heading {
    margin-bottom: 0.55rem;
}

.setup-folder-structure__heading .setup-wizard-field__label {
    margin-bottom: 0.15rem;
}

.setup-folder-structure__heading small {
    color: #98a1af;
    font-size: 0.7rem;
}

.setup-folder-structure__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid #e4e6eb;
    border-bottom: 0;
    border-radius: 0.45rem 0.45rem 0 0;
    background: #fbfbfc;
}

.setup-folder-structure__toolbar-actions {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.setup-folder-structure__primary,
.setup-folder-structure__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2rem;
    padding: 0.3rem 0.6rem;
    border: 1px solid #e1e4ea;
    border-radius: 0.35rem;
    background: #fff;
    color: #4b5563;
    font-family: inherit;
    font-size: 0.68rem;
    font-weight: 600;
    cursor: pointer;
}

.setup-folder-structure__primary {
    border-color: #8b70e8;
    color: #6846d8;
}

.setup-folder-structure__primary span {
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 0.7;
}

.setup-folder-structure__primary:hover,
.setup-folder-structure__button:hover {
    border-color: #6d4de3;
    color: #5b38cf;
}

.setup-folder-structure__search {
    position: relative;
    display: flex;
    align-items: center;
    width: 11rem;
}

.setup-folder-structure__search svg {
    position: absolute;
    left: 0.55rem;
    color: #7b8491;
    pointer-events: none;
}

.setup-folder-structure__search input {
    width: 100%;
    min-height: 2rem;
    padding: 0.3rem 0.55rem 0.3rem 1.8rem;
    border: 1px solid #e1e4ea;
    border-radius: 0.35rem;
    outline: none;
    color: #374151;
    font-family: inherit;
    font-size: 0.68rem;
}

.setup-folder-structure__search input:focus {
    border-color: #6d4de3;
    box-shadow: 0 0 0 2px rgba(109, 77, 227, 0.1);
}

.setup-folder-structure__paste {
    display: grid;
    gap: 0.35rem;
    padding: 0.7rem;
    border: 1px solid #e4e6eb;
    border-top: 0;
    background: #fbfbfc;
}

.setup-folder-structure__paste textarea {
    width: 100%;
    min-height: 5rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid #dcdfe6;
    border-radius: 0.35rem;
    resize: vertical;
    color: #374151;
    font-family: inherit;
    font-size: 0.72rem;
    outline: none;
}

.setup-folder-structure__paste textarea:focus {
    border-color: #6d4de3;
    box-shadow: 0 0 0 2px rgba(109, 77, 227, 0.1);
}

.setup-folder-structure__paste small {
    color: #98a1af;
    font-size: 0.68rem;
}

.setup-folder-structure__paste > div {
    display: flex;
    gap: 0.45rem;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

.setup-folder-structure__tree {
    overflow: auto;
    max-height: 18rem;
    border: 1px solid #e4e6eb;
    border-radius: 0 0 0.45rem 0.45rem;
    background: #fff;
}

.setup-folder-tree__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.setup-folder-tree__item {
    border-bottom: 1px solid #edf0f3;
}

.setup-folder-tree__item:last-child {
    border-bottom: 0;
}

.setup-folder-tree__item.is-collapsed > .setup-folder-tree__children {
    display: none;
}

.setup-folder-tree__row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 2.2rem;
    padding: 0.2rem 0.55rem;
    padding-left: calc(var(--depth, 0) * 1.1rem + 0.55rem);
}

.setup-folder-tree__row:hover {
    background: #faf9ff;
}

.setup-folder-tree__row.is-drag-over {
    background: #f0ebff;
    box-shadow: inset 0 2px 0 #7655dc, inset 0 -2px 0 #7655dc;
}

.setup-folder-tree__row.is-dragging {
    opacity: 0.45;
}

.setup-folder-tree__drag {
    width: 0.8rem;
    flex: 0 0 0.8rem;
    color: #9ca3af;
    font-size: 0.95rem;
    line-height: 1;
    cursor: grab;
}

.setup-folder-tree__drag:active {
    cursor: grabbing;
}

.setup-folder-tree__toggle {
    display: inline-flex;
    width: 1rem;
    height: 1.25rem;
    flex: 0 0 1rem;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #4b5563;
    cursor: pointer;
}

.setup-folder-tree__toggle span {
    transition: transform 120ms ease;
}

.setup-folder-tree__item.is-collapsed > .setup-folder-tree__row .setup-folder-tree__toggle span {
    transform: rotate(-90deg);
}

.setup-folder-tree__toggle--empty {
    cursor: default;
}

.setup-folder-tree__icon {
    display: inline-flex;
    width: 1.35rem;
    flex: 0 0 1.35rem;
    color: #7655dc;
}

.setup-folder-tree__select {
    display: flex;
    min-width: 0;
    flex: 1;
    align-items: center;
    gap: 0.85rem;
    min-height: 1.8rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #374151;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.setup-folder-tree__select:hover .setup-folder-tree__name {
    color: #6846d8;
}

.setup-folder-tree__code {
    width: 2rem;
    flex: 0 0 2rem;
    color: #5b6472;
    font-size: 0.7rem;
}

.setup-folder-tree__name {
    overflow: hidden;
    color: #374151;
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setup-folder-tree__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    margin-left: auto;
}

.setup-folder-tree__add,
.setup-folder-tree__more {
    padding: 0;
    border: 0;
    background: transparent;
    color: #6846d8;
    font-family: inherit;
    cursor: pointer;
}

.setup-folder-tree__add {
    font-size: 1.05rem;
    line-height: 1;
}

.setup-folder-tree__more {
    color: #6b7280;
    font-size: 0.8rem;
    letter-spacing: 0.07em;
}

.setup-folder-tree__add:hover,
.setup-folder-tree__more:hover {
    color: #3f20b6;
}

.setup-folder-tree__menu {
    position: relative;
}

.setup-folder-tree__menu-popover {
    position: absolute;
    z-index: 5;
    top: calc(100% + 0.25rem);
    right: 0;
    display: grid;
    min-width: 8.5rem;
    padding: 0.25rem;
    border: 1px solid #e1e4ea;
    border-radius: 0.4rem;
    background: #fff;
    box-shadow: 0 8px 20px rgba(31, 35, 45, 0.14);
}

.setup-folder-tree__menu-popover button {
    padding: 0.4rem 0.5rem;
    border: 0;
    border-radius: 0.25rem;
    background: transparent;
    color: #4b5563;
    font-family: inherit;
    font-size: 0.68rem;
    text-align: left;
    cursor: pointer;
}

.setup-folder-tree__menu-popover button:hover {
    background: #f5f3ff;
    color: #5b38cf;
}

.setup-folder-tree__menu-popover .is-danger {
    color: #dc2626;
}

.setup-folder-tree__code-input,
.setup-folder-tree__name-input {
    min-height: 1.8rem;
    padding: 0.25rem 0.45rem;
    border: 1px solid #d6d9e0;
    border-radius: 0.3rem;
    outline: none;
    color: #374151;
    font-family: inherit;
    font-size: 0.7rem;
}

.setup-folder-tree__code-input {
    width: 3.1rem;
    flex: 0 0 3.1rem;
}

.setup-folder-tree__name-input {
    min-width: 4rem;
    flex: 1;
}

.setup-folder-tree__code-input:focus,
.setup-folder-tree__name-input:focus {
    border-color: #7655dc;
    box-shadow: 0 0 0 2px rgba(109, 77, 227, 0.1);
}

.setup-folder-tree__confirm,
.setup-folder-tree__cancel {
    display: inline-flex;
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 1.75rem;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 0.3rem;
    cursor: pointer;
}

.setup-folder-tree__confirm {
    border: 0;
    background: #7655dc;
    color: #fff;
}

.setup-folder-tree__cancel {
    border: 1px solid #e1e4ea;
    background: #fff;
    color: #6b7280;
}

.setup-folder-tree__confirm:hover {
    background: #5b38cf;
}

.setup-folder-tree__cancel:hover {
    color: #374151;
}

.setup-folder-structure__empty {
    margin: 0;
    padding: 1.25rem;
    color: #98a1af;
    font-size: 0.72rem;
    text-align: center;
}

.setup-folder-structure__footer {
    display: flex;
    gap: 0.4rem;
    padding: 0.45rem 0.65rem;
    border-top: 1px solid #edf0f3;
    color: #98a1af;
    font-size: 0.68rem;
}

.edms-ft-builder__numbering {
    display: grid;
    grid-template-columns: minmax(12rem, 18rem) minmax(12rem, 1fr) minmax(12rem, 15rem);
    gap: 0.75rem;
    align-items: end;
    margin-bottom: 0.75rem;
    padding: 0.75rem;
    border: 1px solid #e4e6eb;
    border-radius: 0.45rem;
    background: #fbfbfc;
}

.edms-ft-builder__numbering-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-column: 1 / 3;
    gap: 0.55rem;
}

.edms-ft-builder__numbering-fields .edms-form-label:first-child {
    grid-column: 1 / -1;
}

.edms-ft-builder__numbering-fields .edms-form-label {
    margin: 0;
}

.edms-ft-builder__numbering-preview {
    align-self: center;
    color: #98a1af;
    font-size: 0.7rem;
}

.edms-ft-builder__numbering-preview strong {
    display: block;
    margin-top: 0.25rem;
    color: #6846d8;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.82rem;
    font-weight: 600;
}

.edms-ft-builder__numbering .edms-ft-builder__search {
    width: 100%;
    min-width: 0;
}

@media (max-width: 760px) {
    .setup-folder-structure__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .setup-folder-structure__search {
        width: 100%;
    }

    .edms-ft-builder__numbering {
        grid-template-columns: 1fr;
    }

    .edms-ft-builder__numbering-fields {
        grid-column: auto;
        grid-template-columns: 1fr 1fr;
    }
}

/* ——— BIM models register ——— */
.bim-index {
    gap: 1.25rem;
}

.bim-index__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}

.bim-index__intro {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    min-width: 0;
}

.bim-index__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 3.15rem;
    height: 3.15rem;
    margin-top: 0.1rem;
    border-radius: 0.85rem;
    background: #f3efff;
    box-shadow: inset 0 0 0 1px rgba(111, 79, 234, 0.08);
}

.bim-index__titles {
    min-width: 0;
}

.bim-index__title {
    margin: 0;
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.05;
    color: var(--edms-text);
}

.bim-index__kicker {
    margin: 0.15rem 0 0;
    font-size: 1rem;
    font-weight: 600;
    color: #475569;
    letter-spacing: -0.01em;
}

.bim-index__subtitle {
    margin: 0.4rem 0 0;
    max-width: 36rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--edms-text-muted);
}

.bim-index__provider {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.15rem;
    padding: 0.38rem 0.8rem;
    border: 1px solid var(--edms-border);
    border-radius: 999px;
    background: #fff;
    color: var(--edms-text-muted);
    font-size: 0.8rem;
    box-shadow: var(--edms-shadow);
}

.bim-index__provider strong {
    color: var(--edms-text);
    font-weight: 700;
}

.bim-index__provider-note {
    color: #64748b;
}

.bim-index__flash {
    margin: 0;
    padding: 0.7rem 0.9rem;
    border-radius: 0.7rem;
    background: #f3efff;
    color: #4c2fc9;
    font-size: 0.88rem;
    font-weight: 600;
}

.bim-card {
    border: 1px solid var(--edms-border);
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.045);
}

.bim-upload {
    padding: 1.3rem 1.4rem 1.25rem;
}

.bim-upload__head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1.15rem;
}

.bim-upload__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    background: #f3efff;
    color: var(--edms-primary);
    flex-shrink: 0;
}

.bim-upload__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--edms-text);
    letter-spacing: -0.02em;
}

.bim-upload__hint {
    margin: 0.15rem 0 0;
    font-size: 0.86rem;
    color: var(--edms-text-muted);
}

.bim-upload__form {
    display: grid;
    gap: 1.05rem;
}

.bim-field {
    display: grid;
    gap: 0.4rem;
    margin: 0;
    min-width: 0;
}

.bim-field--inline {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.bim-field--inline .bim-input {
    width: auto;
    min-width: 10rem;
}

.bim-field__label {
    font-size: 0.82rem;
    font-weight: 650;
    color: #334155;
}

.bim-field__req {
    color: var(--edms-primary);
}

.bim-field__error {
    margin: 0;
    font-size: 0.8rem;
    color: var(--edms-danger);
}

.bim-index .bim-input,
.bim-index input.bim-input,
.bim-index select.bim-input {
    width: 100%;
    min-height: 2.6rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.65rem;
    background: #fff;
    color: var(--edms-text);
    box-shadow: none;
}

.bim-index .bim-input:focus,
.bim-index input.bim-input:focus,
.bim-index select.bim-input:focus {
    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
}

.bim-dropzone {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 11rem;
    padding: 1.4rem 1rem;
    border: 1.5px dashed #d8dee8;
    border-radius: 0.75rem;
    background: #fcfcfd;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.bim-dropzone.is-dragging,
.bim-dropzone:hover {
    border-color: #c4b5fd;
    background: #faf8ff;
}

.bim-dropzone.has-file {
    border-style: solid;
    border-color: #ddd6fe;
    background: #faf8ff;
}

.bim-index input.bim-dropzone__input,
.bim-dropzone__input {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    margin: 0;
    padding: 0 !important;
    opacity: 0;
    cursor: pointer;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0;
    z-index: 2;
}

.bim-dropzone__body {
    display: grid;
    justify-items: center;
    gap: 0.45rem;
    text-align: center;
    pointer-events: none;
}

.bim-dropzone__cloud {
    display: inline-flex;
    color: var(--edms-primary);
}

.bim-dropzone__lead {
    margin: 0;
    font-size: 0.92rem;
    color: #475569;
}

.bim-dropzone__lead strong {
    color: var(--edms-text);
    font-weight: 650;
}

.bim-dropzone__choose {
    display: inline-flex;
    align-items: center;
    margin-left: 0.2rem;
    padding: 0.28rem 0.7rem;
    border: 1px solid #c4b5fd;
    border-radius: 0.5rem;
    color: var(--edms-primary);
    font-size: 0.82rem;
    font-weight: 650;
    background: #fff;
    vertical-align: middle;
}

.bim-dropzone__replace,
.bim-dropzone__status {
    margin: 0;
    font-size: 0.8rem;
    color: var(--edms-text-muted);
}

.bim-dropzone__meta {
    margin: 0.45rem 0 0;
    font-size: 0.8rem;
    color: #94a3b8;
}

.bim-upload__actions {
    display: flex;
    justify-content: flex-end;
}

.bim-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.45rem;
    padding: 0.45rem 0.95rem;
    border: 1px solid transparent;
    border-radius: 0.65rem;
    background: transparent;
    color: #334155;
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.bim-btn--primary {
    background: var(--edms-primary);
    border-color: var(--edms-primary);
    color: #fff;
    box-shadow: 0 8px 18px rgba(111, 79, 234, 0.22);
}

.bim-btn--primary:hover {
    background: var(--edms-primary-hover);
    border-color: var(--edms-primary-hover);
    color: #fff;
}

.bim-btn--primary:disabled {
    opacity: 0.7;
    cursor: wait;
}

.bim-btn--outline {
    background: #fff;
    border-color: #e2e8f0;
    color: #334155;
}

.bim-btn--outline:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
}

.bim-btn--ghost {
    background: transparent;
    border-color: transparent;
    color: var(--edms-primary);
    min-height: 2.2rem;
    padding: 0.3rem 0.55rem;
}

.bim-btn--sm {
    min-height: 2.05rem;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
}

.bim-library {
    padding: 1.2rem 1.25rem 0.4rem;
}

.bim-library__head {
    margin-bottom: 0.95rem;
}

.bim-library__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--edms-text);
}

.bim-library__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.bim-library__toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.bim-search {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 16rem;
    max-width: 22rem;
    min-height: 2.45rem;
    padding: 0 0.8rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.65rem;
    background: #fff;
    color: #94a3b8;
}

.bim-search input,
.bim-index .bim-search input {
    width: 100%;
    min-width: 0;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--edms-text);
    font-size: 0.88rem;
}

.bim-search input:focus {
    outline: none;
    box-shadow: none !important;
}

.bim-search:focus-within {
    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
}

.bim-library__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 0.75rem;
    margin: 0 0 0.85rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #eef2f7;
    border-radius: 0.7rem;
    background: #f8fafc;
}

.bim-table-wrap {
    overflow-x: auto;
    margin: 0 -0.15rem;
}

.bim-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.bim-table th,
.bim-table td {
    padding: 0.85rem 0.75rem;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
    white-space: nowrap;
}

.bim-table th {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #64748b;
    background: transparent;
}

.bim-table tbody tr:hover {
    background: #fafbff;
}

.bim-table__sort {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.bim-table__name {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--edms-text);
    font-weight: 600;
}

.bim-table__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 0.45rem;
    background: #f3efff;
    color: var(--edms-primary);
}

.bim-table__updated {
    color: #64748b;
    font-size: 0.84rem;
}

.bim-table__actions-head,
.bim-table__actions {
    text-align: right;
}

.bim-table__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
}

.bim-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.bim-pill--format {
    background: #f1f5f9;
    color: #475569;
}

.bim-pill--status {
    font-weight: 650;
}

.bim-pill__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
}

.bim-pill--ready,
.bim-pill--success,
.bim-pill--available {
    background: #ecfdf5;
    color: #15803d;
}

.bim-pill--warning,
.bim-pill--warn,
.bim-pill--processing {
    background: #fffbeb;
    color: #b45309;
}

.bim-pill--danger,
.bim-pill--error {
    background: #fef2f2;
    color: #b91c1c;
}

.bim-pill--info,
.bim-pill--neutral,
.bim-pill--queued {
    background: #f3efff;
    color: #5b3fd4;
}

.bim-row-menu {
    position: relative;
}

.bim-row-menu__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.05rem;
    height: 2.05rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    background: transparent;
    color: #64748b;
    cursor: pointer;
}

.bim-row-menu__trigger:hover {
    background: #f8fafc;
    border-color: #e2e8f0;
}

.bim-row-menu__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 8;
    min-width: 10rem;
    padding: 0.35rem;
    border: 1px solid var(--edms-border);
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
}

.bim-row-menu__item {
    display: block;
    padding: 0.45rem 0.6rem;
    border-radius: 0.45rem;
    color: var(--edms-text);
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
}

.bim-row-menu__item:hover {
    background: #f8fafc;
}

.bim-table__empty-row td {
    padding: 0;
    border-bottom: 0;
}

.bim-table__empty-row:hover {
    background: transparent;
}

.bim-empty {
    display: grid;
    justify-items: center;
    gap: 0.45rem;
    padding: 3.25rem 1.25rem 3.5rem;
    text-align: center;
}

.bim-empty__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5.75rem;
    height: 5.75rem;
    margin-bottom: 0.55rem;
    border-radius: 999px;
    background: #f3efff;
}

.bim-empty__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 750;
    color: var(--edms-text);
}

.bim-empty__hint {
    margin: 0;
    max-width: 26rem;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #94a3b8;
}

.bim-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 0.15rem 1.05rem;
}

.bim-pagination__summary {
    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
}

@media (max-width: 760px) {
    .bim-index__title {
        font-size: 1.7rem;
    }

    .bim-upload,
    .bim-library {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .bim-library__toolbar {
        align-items: stretch;
    }

    .bim-search {
        max-width: none;
    }

    .bim-upload__actions,
    .bim-library__toolbar-actions {
        width: 100%;
    }

    .bim-upload__actions .bim-btn,
    .bim-library__toolbar-actions .bim-btn {
        flex: 1;
    }

    .bim-table__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ——— RFI register ——— */
.rfi-page {
    gap: 1.15rem;
}

.rfi-page .page-head {
    margin-bottom: 0.15rem;
}

.rfi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.45rem;
    padding: 0.45rem 0.95rem;
    border: 1px solid transparent;
    border-radius: 0.65rem;
    background: transparent;
    color: #334155;
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.rfi-btn--primary,
.rfi-page .edms-btn-primary.rfi-btn {
    background: var(--edms-primary);
    border-color: var(--edms-primary);
    color: #fff;
    box-shadow: 0 8px 18px rgba(111, 79, 234, 0.22);
}

.rfi-btn--primary:hover,
.rfi-page .edms-btn-primary.rfi-btn:hover {
    background: var(--edms-primary-hover);
    border-color: var(--edms-primary-hover);
    color: #fff;
}

.rfi-btn--outline,
.rfi-btn--saved {
    background: #fff;
    border-color: #c4b5fd;
    color: var(--edms-primary);
}

.rfi-btn--outline:hover,
.rfi-btn--saved:hover {
    background: #faf8ff;
    border-color: var(--edms-primary);
}

.rfi-btn--ghost {
    background: transparent;
    border-color: transparent;
    color: var(--edms-primary);
    min-height: 2.2rem;
}

.rfi-btn--ghost:hover {
    background: #faf8ff;
}

.register-saved-views {
    position: relative;
}

.register-saved-views__dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 0.4rem);
    z-index: 24;
    min-width: 14.5rem;
    padding: 0.4rem;
    border: 1px solid var(--edms-border);
    border-radius: 0.7rem;
    background: #fff;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);
}

.register-saved-views__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: 0;
    border-radius: 0.45rem;
    background: transparent;
    color: var(--edms-text);
    font-size: 0.84rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.register-saved-views__item:hover,
.register-saved-views__item--save {
    background: #faf8ff;
    color: var(--edms-primary);
}

.register-saved-views__empty {
    margin: 0;
    padding: 0.55rem 0.65rem;
    font-size: 0.82rem;
    color: #94a3b8;
}

.register-saved-views__sep {
    margin: 0.35rem 0.4rem;
    border: 0;
    border-top: 1px solid #eef2f7;
}

.register-saved-views__default {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.rfi-card {
    border: 1px solid var(--edms-border);
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.045);
}

.rfi-filters {
    padding: 1.15rem 1.25rem 1.2rem;
}

.rfi-filters__title {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 1rem;
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--edms-text);
}

.rfi-filters__title svg {
    color: var(--edms-primary);
}

.rfi-filters__form {
    display: grid;
    gap: 0.95rem;
}

.rfi-filters__row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem 1rem;
}

.rfi-filters__row--dates {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: calc(66.666% - 0.5rem);
}

.rfi-field {
    display: grid;
    gap: 0.4rem;
    margin: 0;
    min-width: 0;
}

.rfi-field--search {
    width: 100%;
}

.rfi-field__label {
    font-size: 0.82rem;
    font-weight: 650;
    color: #334155;
}

.rfi-search {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.6rem;
    padding: 0 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.65rem;
    background: #fff;
    color: #94a3b8;
}

.rfi-search input,
.rfi-page .rfi-search input {
    width: 100%;
    min-width: 0;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--edms-text);
}

.rfi-search:focus-within {
    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
}

.rfi-page .rfi-input,
.rfi-page input.rfi-input,
.rfi-page select.rfi-input {
    width: 100%;
    min-height: 2.6rem;
    padding: 0.5rem 0.8rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.65rem;
    background: #fff;
    color: var(--edms-text);
    box-shadow: none;
}

.rfi-page .rfi-input:focus {
    border-color: var(--edms-primary);
    box-shadow: 0 0 0 3px var(--edms-primary-soft);
}

.rfi-filters__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.55rem;
}

.rfi-table-card {
    padding: 0.15rem 0 0.35rem;
    overflow: hidden;
}

.rfi-table-wrap {
    overflow-x: auto;
}

.rfi-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.rfi-table th,
.rfi-table td {
    padding: 0.85rem 1rem;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
}

.rfi-table th {
    font-size: 0.74rem;
    font-weight: 700;
    color: #64748b;
    background: transparent;
    white-space: nowrap;
}

.rfi-table tbody tr:hover {
    background: #fafbff;
}

.rfi-table__sort {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.rfi-table__sort svg {
    color: #cbd5e1;
}

.rfi-table__number {
    color: var(--edms-primary);
    font-weight: 700;
    text-decoration: none;
}

.rfi-table__number:hover {
    text-decoration: underline;
}

.rfi-table__muted {
    color: #64748b;
}

.rfi-table__actions-head,
.rfi-table__actions {
    text-align: right;
    width: 3rem;
}

.rfi-assignee {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.rfi-assignee__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    background: #f3efff;
    color: var(--edms-primary);
    font-size: 0.68rem;
    font-weight: 700;
}

.rfi-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 650;
}

.rfi-pill__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
}

.rfi-pill--success,
.rfi-pill--closed,
.rfi-pill--answered {
    background: #ecfdf5;
    color: #15803d;
}

.rfi-pill--warning,
.rfi-pill--warn,
.rfi-pill--open,
.rfi-pill--draft {
    background: #fffbeb;
    color: #b45309;
}

.rfi-pill--danger,
.rfi-pill--overdue {
    background: #fef2f2;
    color: #b91c1c;
}

.rfi-pill--info,
.rfi-pill--neutral {
    background: #f3efff;
    color: #5b3fd4;
}

.rfi-row-menu {
    position: relative;
    display: inline-flex;
    justify-content: flex-end;
}

.rfi-row-menu__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.05rem;
    height: 2.05rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    background: transparent;
    color: #64748b;
    cursor: pointer;
}

.rfi-row-menu__trigger:hover {
    background: #f8fafc;
    border-color: #e2e8f0;
}

.rfi-row-menu__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 8;
    min-width: 9.5rem;
    padding: 0.35rem;
    border: 1px solid var(--edms-border);
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
}

.rfi-row-menu__item {
    display: block;
    padding: 0.45rem 0.6rem;
    border-radius: 0.45rem;
    color: var(--edms-text);
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
}

.rfi-row-menu__item:hover {
    background: #f8fafc;
}

.rfi-table__empty-row td {
    padding: 0;
    border-bottom: 0;
}

.rfi-table__empty-row:hover {
    background: transparent;
}

.rfi-empty {
    display: grid;
    justify-items: center;
    gap: 0.4rem;
    padding: 2.75rem 1.25rem 3rem;
    text-align: center;
}

.rfi-empty__art {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 6.25rem;
    height: 6.25rem;
    margin-bottom: 0.35rem;
    border-radius: 999px;
    background: #f3efff;
}

.rfi-empty__title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 750;
    color: var(--edms-text);
}

.rfi-empty__hint {
    margin: 0 0 0.55rem;
    max-width: 26rem;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #94a3b8;
}

.rfi-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem 1.05rem;
}

.rfi-pagination__summary {
    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
}

.rfi-pagination__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.rfi-per-page select {
    min-height: 2.2rem;
    width: auto;
    padding: 0.3rem 0.55rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #fff;
}

.rfi-create-modal {
    width: min(48rem, calc(100vw - 1.5rem));
    top: 5vh;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.rfi-create-modal__sub {
    margin: 0.25rem 0 0;
    font-size: 0.82rem;
    font-weight: 400;
    color: #64748b;
}

.rfi-create-modal__body {
    overflow: auto;
    padding: 0;
}

.rfi-create-form {
    display: block;
}

.rfi-create-form__form {
    display: grid;
    gap: 0;
}

.rfi-create-form__section {
    display: grid;
    gap: 0.85rem;
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid #f1f5f9;
}

.rfi-create-form__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.rfi-create-form__heading {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--edms-text);
}

.rfi-create-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem 1rem;
}

.rfi-create-form__doc-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1rem;
    align-items: end;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f5f9;
}

.rfi-create-form__doc-rev {
    display: flex;
    gap: 0.5rem;
    align-items: end;
}

.rfi-create-field {
    display: grid;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 650;
    color: #334155;
}

.rfi-create-field__req {
    color: var(--edms-primary);
}

.rfi-create-field__error {
    margin: 0;
    font-size: 0.8rem;
    color: var(--edms-danger);
}

.rfi-create-form__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.9rem 1.2rem 1.1rem;
    background: #fff;
    border-top: 1px solid #eef2f7;
    position: sticky;
    bottom: 0;
}

@media (max-width: 840px) {
    .rfi-filters__row,
    .rfi-filters__row--dates,
    .rfi-create-form__grid,
    .rfi-create-form__doc-row {
        grid-template-columns: 1fr;
        max-width: none;
    }

    .rfi-page .page-head__actions {
        width: 100%;
    }

    .rfi-page .page-head__actions .rfi-btn,
    .rfi-page .page-head__actions .edms-btn-primary {
        flex: 1;
    }
}
