
*, *::before, *::after { box-sizing: border-box; }

body { margin: 0; font-family: "Segoe UI", system-ui, sans-serif; font-size: 14px; background: #f5f6fa; }
.dms-shell          { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }
.dms-shell.dms-embedded { height: 100vh; }

.dms-header         { display: flex; align-items: center;
                       background: #1a5fac; color: white; padding: 0 16px; height: 48px;
                       flex-shrink: 0; box-shadow: 0 2px 4px rgba(0,0,0,.25); gap: 16px; }
.dms-header-search  { flex: 1; display: flex; align-items: center; justify-content: center; }
.dms-header-right   { margin-left: auto; display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.dms-header-left    { display: flex; align-items: center; gap: 0; flex-shrink: 0; }
.dms-logo-link      { display: flex; align-items: center; text-decoration: none;
                       padding: 2px 4px; border-radius: 4px; line-height: 1; }
.dms-logo-link:hover { background: rgba(255,255,255,.12); }
.dms-logo-img       { height: 36px; width: auto; object-fit: contain;
                       border-radius: 3px; display: block; }
.dms-logo-divider   { width: 1px; height: 22px; background: rgba(255,255,255,.35); margin: 0 12px; flex-shrink: 0; }
.dms-app-name       { font-size: .95rem; font-weight: 400; opacity: .95; white-space: nowrap; color: white; }

.dms-search-box     { display: flex; align-items: center; width: 100%; max-width: 480px;
                       background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.25);
                       border-radius: 4px; padding: 0 10px; height: 32px;
                       transition: background .15s, border-color .15s; }
.dms-search-box:focus-within { background: white; border-color: white; }
.dms-search-box:focus-within .dms-search-icon { color: #555; }
.dms-search-box:focus-within .dms-search-input { color: #1a1a1a; }
.dms-search-box:focus-within .dms-search-input::placeholder { color: #aaa; }
.dms-search-icon    { width: 16px; height: 16px; color: rgba(255,255,255,.8); flex-shrink: 0; margin-right: 7px; }
.dms-search-input   { border: none; background: transparent; color: white; font-size: .875rem;
                       font-family: inherit; outline: none; flex: 1; min-width: 0; }
.dms-search-input::placeholder { color: rgba(255,255,255,.65); }
.dms-search-input::-webkit-search-cancel-button { filter: invert(1) opacity(.6); cursor: pointer; }

.dms-user-avatar    { width: 32px; height: 32px; border-radius: 50%;
                       background: #8764b8; color: white;
                       display: flex; align-items: center; justify-content: center;
                       font-size: .875rem; font-weight: 600; flex-shrink: 0;
                       cursor: default; user-select: none; }
.dms-user-name      { font-size: .875rem; white-space: nowrap; max-width: 160px;
                       overflow: hidden; text-overflow: ellipsis; color: #ffffff; font-weight: 600; }
.dms-signout-link   {
    color: #ffffff;
    font-weight: 600;
    text-decoration: none;
    border-radius: 4px;
    padding: 3px 8px;
    border: 1px solid transparent;
}
.dms-signout-link:hover,
.dms-signout-link:focus-visible {
    color: #ffffff;
    background: rgba(255,255,255,.18);
    border-color: rgba(255,255,255,.6);
    text-decoration: none;
    outline: none;
}
.dms-main           { flex: 1; overflow: hidden; display: flex; flex-direction: column; }
.dms-toolbar        { display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
                       padding: 8px 16px; background: white;
                       border-bottom: 1px solid #e0e0e0; flex-shrink: 0; }
.dms-toolbar__breadcrumb { display: flex; align-items: center; gap: 4px;
                            flex: 1; min-width: 200px; overflow: hidden; white-space: nowrap; }
.dms-toolbar__actions    { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.dms-toolbar-control-row { display: inline-flex; align-items: center; gap: 5px; }
.dms-toolbar-btn {
    margin: 0;
    height: 32px;
    min-height: 32px;
}
.dms-toolbar-btn.mud-icon-button {
    width: 34px;
    padding: 4px;
}
.dms-toolbar-btn.mud-button-root {
    padding: 0 8px;
}
.dms-toolbar-btn--goto {
    min-width: 66px;
}
.dms-toolbar-columns-btn {
    margin: 0;
}
.dms-toolbar-columns-btn .mud-button-root {
    height: 32px;
    min-height: 32px;
    min-width: 34px;
    width: 34px;
    padding: 0 8px !important;
}
.dms-toolbar-btn--folder .mud-icon-root {
    color: #f2b600 !important;
}
.dms-toolbar-btn--note .mud-icon-root {
    color: #0f766e !important;
}
.dms-toolbar-btn--refresh .mud-icon-root {
    color: #1a5fac !important;
}
.dms-toolbar-btn--refresh:hover .mud-icon-root {
    color: #155090 !important;
}

.dms-rich-editor {
    width: 100%;
    min-height: 320px;
}

.dms-breadcrumb-link { cursor: pointer; color: #1a5fac; font-size: .875rem;
                        text-decoration: none; max-width: 160px;
                        overflow: hidden; text-overflow: ellipsis; }
.dms-breadcrumb-link:hover { text-decoration: underline; }
.dms-breadcrumb-current    { font-size: .875rem; font-weight: 600;
                              max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.dms-chevron        { opacity: .4; }
.dms-drop-zone      { flex: 1; overflow: hidden; position: relative;
                       display: flex; flex-direction: column;
                       transition: background .15s; }
.dms-drop-zone--active { background: rgba(26,95,172,.06) !important;
                           outline: 3px dashed #1a5fac; outline-offset: -6px; }
.dms-loading        { padding: 8px 0; }
.dms-empty          { display: flex; flex-direction: column; align-items: center;
                       justify-content: center; height: calc(100% - 80px); color: #9e9e9e; gap: 6px; }
.dms-auth-wait      { display: flex; flex-direction: column; align-items: center;
                       justify-content: center; height: 100vh; gap: 12px; }
.dms-error-page     { display: flex; flex-direction: column; align-items: center;
                       justify-content: center; height: 100vh; gap: 12px; padding: 32px; }
.dms-error-message  { max-width: 480px; text-align: center; }
.dms-list-container { overflow: auto; flex: 1; min-height: 0; position: relative; }
.dms-table          { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; color: #323130; table-layout: fixed; }
.dms-table thead    { position: sticky; top: 0; z-index: 20; }
.dms-th             { position: sticky; top: 0; z-index: 21; background: #1a5fac; color: white;
                       padding: 9px 12px; text-align: left; white-space: nowrap;
                       border-right: 1px solid rgba(255,255,255,.15); cursor: pointer;
                       user-select: none; font-weight: 600; font-size: .78rem; }
.dms-th--handle,
.dms-th--name { z-index: 22; }
.dms-table thead tr { box-shadow: 0 2px 0 rgba(0,0,0,.08); }
.dms-th--name       { min-width: 540px; width: 540px; background: #0d3d75; }
.dms-th--handle     { width: 34px; cursor: default; background: #0d3d75; padding: 0; }
.dms-th--handle:hover { background: #0d3d75; }
.dms-th:hover       { background: #155090; }
.dms-sort-icon      { vertical-align: middle; margin-left: 2px; }

.dms-row            { border-bottom: 1px solid #f0f0f0; cursor: default;
                       transition: background .1s; height: 36px; }
.dms-row:hover      { background: #f0f4ff !important; }
.dms-row--folder .dms-td--name { font-weight: 500; }
.dms-row:nth-child(even) { background: #fafafa; }
.dms-row--selected  { background: #e8f0fe !important; }
.dms-row--portalcomment { background: #f5f9ff !important; border-top: 1px solid #dbe7f7; }
.dms-row--portalcomment:hover { background: #ecf4ff !important; }
.dms-row--annotation {
    background: linear-gradient(90deg, #eef5ff 0, #f8fbff 44px, #fbfdff 100%) !important;
    border-top: 1px solid #d8e4f4;
    border-bottom: 1px solid #edf2f8;
}
.dms-row--annotation:hover {
    background: linear-gradient(90deg, #e7f0ff 0, #f2f7ff 44px, #f5f9ff 100%) !important;
}
.dms-row--physical-filenote { background: #f9f7ff !important; border-top: 1px solid #ede8f7; }
.dms-row--physical-filenote:hover { background: #f2edff !important; }
.dms-row--physical-filenote .dms-td--name { font-style: italic; }
.dms-row--physical-filenote .dms-item-name { color: #5b4b8a; }
.dms-row-comment-name,
.dms-row-annotation-name { gap: 4px; }
.dms-row--portalcomment .dms-name-actions {
    width: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transition: opacity .12s ease;
}
.dms-row--portalcomment:hover .dms-name-actions,
.dms-row--portalcomment:focus-within .dms-name-actions {
    width: 24px;
    opacity: 1;
    pointer-events: auto;
}
.dms-comment-chevron {
    width: 22px;
    height: 22px;
    margin-right: 2px;
}
.dms-comment-chevron-spacer {
    display: inline-block;
    width: 22px;
    flex: 0 0 22px;
}
.dms-comment-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 1px;
}
.dms-comment-title {
    display: flex;
    align-items: center;
    min-width: 0;
}
.dms-comment-meta {
    font-size: .7rem;
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dms-row-annotation-note {
    color: #56657a;
    font-size: .76rem;
    letter-spacing: .01em;
    background: rgba(255, 255, 255, .45);
}
.dms-row--annotation .dms-col-cell--Created {
    color: #64748b;
    font-size: .71rem;
    text-align: left;
    padding-left: 18px;
}
.dms-row--annotation .dms-row-annotation-name {
    color: #24476b;
    padding-left: 10px;
    border-left: 4px solid #9ebbe1;
    background: rgba(255, 255, 255, .35);
}
.dms-row--annotation .dms-item-name {
    color: #24476b;
}
.dms-row--annotation .dms-comment-meta {
    color: #7a8796;
}
.dms-annotation-file {
    display: inline-block;
    margin-right: 8px;
    color: #1a5fac;
    font-weight: 600;
}
.dms-row--drag-faded { opacity: .3 !important; }
.dms-row--dragging  { cursor: grabbing !important; }
.dms-row--drop-target {
    background: #1a5fac !important;
    position: relative;
    box-shadow: inset 0 0 0 2px #0d3d75;
    transition: background 0s;
}
.dms-row--drop-target.dms-row--move-target {
    background: #1a7c4a !important;
    box-shadow: inset 0 0 0 2px #0d5233;
}
.dms-row--drop-target td,
.dms-row--drop-target td * { color: #fff !important; }
.dms-row--drop-target .mud-icon-root { color: #fff !important; }
.dms-row--drop-target .dms-td--name::after {
    content: "\2193  Drop to upload into \"" attr(data-folder-name) "\"";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 4px;
    padding: 2px 10px;
    font-size: .72rem;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    pointer-events: none;
    letter-spacing: .03em;
}
.dms-row--drop-target.dms-row--move-target .dms-td--name::after {
    content: "\2192  Move into \"" attr(data-folder-name) "\"";
}
.dms-row--drop-target .dms-td--name { position: relative; overflow: visible; }
.dms-client-chip    { display: inline-flex; align-items: center; gap: 4px;
                       background: #e8f0fe; border: 1px solid #c5d5ef;
                       border-radius: 16px; padding: 3px 10px;
                       font-size: .875rem; font-weight: 600; color: #1a5fac;
                       white-space: nowrap; flex-shrink: 0; }
.dms-th-resizable   { position: relative; overflow: visible !important; }
.dms-th-label       { display: inline-flex; align-items: center; gap: 2px;
                       cursor: pointer; user-select: none; white-space: nowrap; }
.dms-col-resize-handle { position: absolute; right: 0; top: 0; width: 6px; height: 100%;
                          cursor: col-resize; z-index: 1;
                          border-right: 2px solid rgba(255,255,255,.25); }
.dms-col-resize-handle:hover { border-right-color: rgba(255,255,255,.8); }
.dms-col-dragging   { opacity: .45; background: #0a2f60 !important; }
.dms-col-drag-over  { background: #0d4880 !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.5); }
.dms-th--filtered { background: #0a3d70 !important; }

.dms-th-filter-wrap { display: inline-flex; align-items: center; margin-left: 4px; }

.dms-th-filter .sd-toggle {
    min-height: 18px; height: 18px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 9px;
    background: rgba(255,255,255,.08);
    padding: 0 7px;
    color: rgba(255,255,255,.75);
    cursor: pointer;
    font-size: .72rem;
    font-weight: 500;
    white-space: nowrap;
    display: inline-flex; align-items: center;
}
.dms-th-filter .sd-toggle:hover {
    border-color: rgba(255,255,255,.7);
    background: rgba(255,255,255,.18);
    color: #fff;
}
.dms-th-filter--active .sd-toggle {
    background: #f59e0b;
    border-color: #d97706;
    color: #1a1a1a;
    font-weight: 600;
}
.dms-th-filter--active .sd-toggle:hover {
    background: #fbbf24;
    border-color: #d97706;
}
.dms-th-filter .sd-chevron { display: none; }
.dms-th-filter .sd-panel {
    width: min(280px, 80vw);
    z-index: 2147483010;
    background: #fff;
    border: 1px solid #cfdced;
    border-radius: 6px;
    box-shadow: 0 12px 28px rgba(10,25,50,.2);
    padding: 6px;
    color: #1e293b;
}
.dms-th-filter .sd-search {
    width: 100%; border: 1px solid #d0d9e8; border-radius: 4px;
    padding: 6px 8px; font-size: .84rem; margin-bottom: 5px; color: #1e293b;
}
.dms-th-filter .sd-options { max-height: 240px; overflow-y: auto;
    border: 1px solid #d9e3f0; border-radius: 4px; background: #fff; }
.dms-th-filter .sd-option { display: flex; align-items: center; gap: 8px;
    font-size: .84rem; padding: 7px 8px; color: #1e293b; }
.dms-th-filter .sd-option:hover { background: #f0f5ff; }
.dms-th-filter .sd-option-all { position: sticky; top: 0; background: #fff;
    border-bottom: 1px solid #d9e3f0; font-weight: 600; z-index: 1; }
.dms-filter-bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
    padding: 5px 10px;
    background: #fff8e6;
    border: 1px solid #f0c040;
    border-radius: 6px;
    margin-bottom: 4px;
    font-size: .82rem;
}
.dms-filter-bar__icon { color: #d97706; flex-shrink: 0; }
.dms-filter-bar__label { font-weight: 600; color: #92400e; flex-shrink: 0; }
.dms-filter-chip {
    display: inline-flex; align-items: center; gap: 4px;
    background: #fef3c7; border: 1px solid #f0c040; border-radius: 12px;
    padding: 2px 8px; color: #92400e; font-size: .78rem; font-weight: 500;
}
.dms-filter-chip__remove {
    background: none; border: none; cursor: pointer; color: #92400e;
    font-size: .88rem; line-height: 1; padding: 0 1px;
}
.dms-filter-chip__remove:hover { color: #dc2626; }
.dms-filter-bar__clear {
    margin-left: auto; background: none; border: none; cursor: pointer;
    color: #1a5fac; font-size: .78rem; font-weight: 500; text-decoration: underline;
}
.dms-filter-bar__clear:hover { color: #dc2626; }

.dms-col-settings-menu {
    min-width: 220px;
    max-width: 320px;
    padding: 8px 10px;
}
.dms-user-settings-menu {
    min-width: 240px;
    max-width: 340px;
    padding: 8px 10px;
}
.dms-col-settings-title {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #5f6368;
    margin: 0 0 6px;
}
.dms-col-settings-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 2px;
    font-size: .84rem;
    cursor: pointer;
}
.dms-col-settings-item input {
    margin: 0;
}
.dms-user-settings-order-controls {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.dms-col-settings-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 6px;
    border-top: 1px solid #eceff3;
    margin-top: 6px;
}
.dms-drive-picker   { padding: 32px 24px; }
.dms-drive-card     { display: flex; flex-direction: column; align-items: center; gap: 8px;
                       cursor: pointer; transition: box-shadow .15s, border-color .15s;
                       border: 1px solid #e8e8e8 !important; }
.dms-drive-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,.12) !important; border-color: #1a5fac !important; }

.dms-td             { padding: 0 10px; vertical-align: middle; white-space: nowrap;
                       max-width: 220px; overflow: hidden; text-overflow: ellipsis;
                       height: 32px; }
.dms-td--name       { min-width: 540px; width: 540px; max-width: none; display: flex; align-items: center; gap: 6px;
                       overflow: hidden; cursor: pointer; height: 32px; }
.dms-name-actions   { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.dms-name-actions .mud-button-root {
    min-width: 24px !important;
    width: 24px;
    height: 24px;
    padding: 0 !important;
}
.dms-td--date       { font-size: 13px; color: #605e5c; }
.dms-col-cell--Created {
    width: 140px;
    min-width: 140px;
    max-width: 140px;
}
.dms-td--wrap       { white-space: nowrap; padding: 0 6px; overflow: hidden; }
.dms-td--handle     { width: 34px; padding: 0 2px; text-align: center; user-select: none; }

.dms-rich-editor-toolbar {
    display: flex;
    align-items: center;
    gap: 2px;
    border: 1px solid #d7dbe3;
    border-radius: 4px;
    padding: 2px 4px;
    background: #f8fafc;
}

.dms-rich-editor {
    min-height: 170px;
    border: 1px solid #c9d2df;
    border-radius: 4px;
    padding: 10px;
    background: #fff;
    overflow-y: auto;
    line-height: 1.45;
}

.dms-rich-editor:focus {
    outline: none;
    border-color: #1a5fac;
    box-shadow: 0 0 0 1px rgba(26,95,172,.35);
}
.dms-handle-menu    { display: flex !important; align-items: center; justify-content: center; }
.dms-handle-menu .mud-button-root { padding: 0 !important; min-width: 0 !important; }
.dms-drag-grip      { display: flex; align-items: center; justify-content: center;
                       width: 30px; height: 34px; cursor: grab;
                       color: #ccc; border-radius: 4px; transition: color .15s, background .15s; }
.dms-drag-grip:hover { color: #1a5fac; background: rgba(26,95,172,.08); }
.dms-drag-grip:active { cursor: grabbing; }
.dms-drag-grip--menuonly {
    cursor: pointer;
}
.dms-drag-grip--menuonly:active {
    cursor: pointer;
}
.dms-drag-grip--disabled {
    cursor: not-allowed;
    opacity: 0.35;
}
.dms-drag-grip--disabled:hover { color: #ccc; background: none; }
.dms-drag-grip--disabled:active { cursor: not-allowed; }
.dms-td--tag        { min-width: 130px; max-width: 220px; padding: 0 4px; overflow: visible;
                       height: 32px; line-height: 32px; }

.dms-file-icon      { flex-shrink: 0; align-self: center; margin-right: 6px; }
.dms-row--item .dms-name-actions,
.dms-row--item .dms-file-icon {
    align-self: center;
}
.dms-row--item .dms-name-actions {
    height: 32px;
    display: inline-flex;
    align-items: center;
}
.dms-row--item .dms-name-actions .mud-button-root {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.dms-item-name      { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dms-pin-indicator  { color: #1a5fac; opacity: .9; margin-left: 6px; flex-shrink: 0; }
.dms-folder-link    { font-weight: 500; cursor: pointer; color: #1a5fac !important;
                       text-decoration: none !important; }
.dms-folder-link:hover { text-decoration: underline !important; }
.dms-file-link      { color: #323130; text-decoration: none; }
.dms-file-link:hover { color: #1a5fac; text-decoration: underline; }
.dms-tag-chip.mud-chip { height: 20px; font-size: .7rem; margin: 1px 2px; }
.dms-tag-cell       { display: flex; flex-wrap: nowrap; align-items: center; gap: 3px;
                       height: 32px; min-width: 0; overflow: hidden; }
.dms-tag-trigger { display: inline-flex !important; width: auto !important; flex-shrink: 0; }
.dms-tag-trigger .mud-input-control { margin: 0 !important; padding: 0 !important; }
.dms-tag-trigger .mud-input-root {
    min-height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
}
.dms-tag-trigger input.mud-input-slot { display: none !important; }
.dms-tag-trigger .mud-input { padding: 0 !important; min-height: 0 !important; }
.dms-tag-trigger .mud-input-adornment { padding: 0 2px !important; display: flex !important; align-items: center !important; }
.dms-tag-trigger .mud-input-adornment svg {
    width: 14px !important; height: 14px !important; font-size: 14px !important;
    color: #aaa !important; transition: color .15s;
}
.dms-tag-trigger:hover .mud-input-adornment svg { color: #1a5fac !important; }
.dms-tag-trigger .mud-input-underline::before,
.dms-tag-trigger .mud-input-underline::after { display: none !important; }

.sd-root {
    position: relative;
    z-index: 0;
}

.sd-root.sd-open {
    z-index: 2147483000;
}

.sd-label {
    display: block;
    margin-bottom: 4px;
    font-size: .78rem;
    color: #516581;
}

.sd-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    text-align: left;
}

.sd-toggle-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sd-chevron {
    color: #6b7280;
    font-size: .72rem;
    flex: 0 0 auto;
}

.sd-panel {
    position: fixed;
    z-index: 2147483001;
    min-width: 240px;
    max-height: min(360px, calc(100vh - 240px));
    background: #fff;
    border: 1px solid #cfdced;
    border-radius: 6px;
    box-shadow: 0 14px 28px rgba(27, 42, 74, 0.18);
    padding: 6px;
}

.sd-search {
    width: 100%;
    margin-bottom: 6px;
}

.sd-options {
    max-height: min(280px, calc(100vh - 300px));
    overflow: auto;
    border: 1px solid #d9e3f0;
    border-radius: 4px;
    background: #fff;
}

.sd-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
    font-size: .84rem;
    color: #1f2937;
}

.sd-option:hover {
    background: #f4f8ff;
}

.sd-option input[type="checkbox"] {
    margin: 0;
}

.sd-option-all {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    border-bottom: 1px solid #d9e3f0;
    font-weight: 600;
}

.dms-tag-searchable {
    width: auto;
    flex: 0 0 auto;
}

.dms-tag-searchable .sd-label {
    display: none;
}

.dms-tag-searchable .sd-toggle {
    min-height: 22px;
    height: 22px;
    border: 1px solid #d4dbe6;
    border-radius: 11px;
    background: #f8fafc;
    padding: 0 8px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #4b5563;
    cursor: pointer;
    font-size: .78rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
}

.dms-tag-searchable .sd-toggle:hover {
    border-color: #1a5fac;
    color: #1a5fac;
    background: #edf4ff;
}
.dms-tag-searchable .sd-chevron {
    display: none;
}

.dms-tag-searchable .sd-panel {
    width: min(320px, 70vw);
    background: #fff;
    border: 1px solid #cfdced;
    border-radius: 6px;
    box-shadow: 0 12px 24px rgba(21, 36, 56, 0.18);
    padding: 6px;
    z-index: 2147483002;
}

.dms-tag-searchable .sd-search {
    width: 100%;
    min-height: 30px;
    border: 1px solid #cfdced;
    border-radius: 4px;
    padding: 6px 8px;
    font-size: .84rem;
    margin-bottom: 6px;
}

.dms-tag-searchable .sd-options {
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #d9e3f0;
    border-radius: 4px;
    background: #fff;
}

.dms-tag-searchable .sd-option {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .84rem;
    padding: 7px 8px;
}

.dms-tag-searchable .sd-option:hover {
    background: #f4f8ff;
}

.dms-tag-searchable .sd-option-all {
    position: sticky;
    top: 0;
    background: #fff;
    border-bottom: 1px solid #d9e3f0;
    z-index: 1;
    font-weight: 600;
}
.dms-choice-chip    { display: inline-flex; align-items: center;
                       padding: 2px 8px; border-radius: 10px;
                       font-size: .7rem; font-weight: 500;
                       color: #fff; white-space: nowrap;
                       letter-spacing: .02em; line-height: 1.4; }
.dms-choice-chip    { max-width: 105px; overflow: hidden; text-overflow: ellipsis; flex-shrink: 1; }

.dms-tag-overflow-btn {
    border: 1px solid #d4dbe6;
    background: #f8fafc;
    color: #4b5563;
    border-radius: 10px;
    height: 20px;
    line-height: 18px;
    padding: 0 6px;
    font-size: .68rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}
.dms-tag-overflow-btn:hover {
    border-color: #1a5fac;
    color: #1a5fac;
    background: #edf4ff;
}
.mud-popover-relative-width { min-width: 280px !important; }
.mud-popover-relative-width .mud-list,
.mud-popover-relative-width .mud-list-padding { max-height: 72vh !important; overflow-y: auto !important; }
.dms-inline-date-input {
    border: none; background: transparent; font-size: .78rem; color: #333;
    padding: 0; width: 76px; min-width: 76px; cursor: pointer; font-family: inherit;
    line-height: 32px; height: 32px; vertical-align: middle;
    appearance: none;
}
.dms-inline-date-wrap {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    gap: 1px;
}
.dms-inline-date-input:focus { outline: 1px solid #1a5fac; border-radius: 3px;
                                 background: #fff; padding: 0 2px; }
.dms-inline-date-input:not(:focus):not(.dms-inline-date-input--has-value)::-webkit-datetime-edit { opacity: 0; }
.dms-inline-date-input::-webkit-calendar-picker-indicator { opacity: 0; width: 0; padding: 0; margin: 0; }
.dms-inline-date-btn {
    border: none;
    background: transparent;
    color: #7a7f87;
    width: 18px;
    height: 18px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    vertical-align: middle;
    position: relative;
    top: 1px;
    cursor: pointer;
}
.dms-inline-date-btn:hover {
    color: #1a5fac;
}
.dms-inline-date-today-btn {
    border: 1px solid #cfd6df;
    background: #f8fafc;
    color: #425466;
    border-radius: 50%;
    height: 18px;
    width: 18px;
    line-height: 16px;
    padding: 0;
    font-size: .66rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    position: relative;
    top: 1px;
    cursor: pointer;
}
.dms-inline-date-btn .mud-icon-root,
.dms-inline-date-today-btn .mud-icon-root {
    display: block;
    line-height: 1;
}
.dms-inline-date-today-btn:hover {
    border-color: #1a5fac;
    color: #1a5fac;
    background: #edf4ff;
}
.dms-col-cell--Comments {
    overflow: hidden;
    padding: 0 6px;
    position: relative;
    box-sizing: border-box;
    vertical-align: top;
    height: auto;
    min-height: 32px;
    white-space: normal;
}
.dms-col-cell--Comments-edit {
    overflow: visible;
    padding: 0;
}

.dms-comments-content {
    display: block;
    white-space: normal;
    word-break: break-word;
    overflow: hidden;
    font-size: .78rem;
    line-height: 1.4;
    padding: 2px 0;
    flex: 1 1 0;
    min-width: 0;
}

.dms-comments-inline {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    min-height: 28px;
    height: auto;
    width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
    padding: 2px 0;
}

.dms-comment-cell-tooltip {
    width: min(420px, calc(100vw - 24px));
    max-width: min(420px, calc(100vw - 24px));
    height: auto;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.35;
    text-align: left;
}

.dms-comment-tooltip-trigger {
    width: 100%;
    min-width: 0;
}
.dms-col-cell--Comments .mud-tooltip-root {
    display: block;
    width: 100%;
    min-width: 0;
}

.dms-expand-btn {
    flex-shrink: 0;
    width: 28px;
    height: 24px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 2px 4px;
    color: #1a5fac;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    transition: background-color .15s;
    opacity: 0;
    line-height: 1;
    margin-top: 1px;
}

.dms-col-cell--Comments:hover .dms-expand-btn {
    opacity: 1;
}

.dms-expand-btn:hover {
    background-color: rgba(26, 95, 172, .1);
}

.dms-expand-btn:active {
    background-color: rgba(26, 95, 172, .2);
}
.dms-inline-comment {
    border: none; background: transparent; font-size: .78rem; color: #333;
    padding: 2px 0; width: 0; min-width: 0; max-width: none;
    flex: 1 1 0%;
    font-family: inherit; line-height: 1.4;
    min-height: 28px; height: auto;
    white-space: pre-wrap; overflow: hidden;
    display: block; resize: none; vertical-align: top;
    cursor: text;
}
.dms-inline-comment::placeholder { color: #bbb; font-style: italic; }
.dms-inline-comment:focus {
    outline: 1px solid #1a5fac; border-radius: 3px; background: #fff;
    line-height: 1.4; padding: 4px; overflow: auto;
    white-space: pre-wrap; resize: none;
    position: relative; z-index: 5;
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.dms-folder-color-grid {
    display: grid;
    grid-template-columns: repeat(8, 28px);
    gap: 6px;
    padding: 4px 0;
}
.dms-color-swatch {
    width: 28px; height: 28px; border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: transform .1s, border-color .1s;
    padding: 0;
}
.dms-color-swatch:hover { transform: scale(1.15); border-color: rgba(0,0,0,.25); }
.dms-color-swatch.selected { border-color: rgba(0,0,0,.55); transform: scale(1.1); }


.dms-grid           { display: grid;
                       grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
                       gap: 12px; padding: 16px; align-content: start;
                       flex: 1; min-height: 0; overflow: auto; }
.dms-th--actions {
    width: 66px;
    min-width: 66px;
    padding: 0;
    text-align: center;
    background: #0d3d75;
    cursor: default;
    z-index: 22;
}
.dms-th--actions:hover { background: #0d3d75; }
.dms-th--handle {
    width: 0;
    min-width: 0;
    padding: 0;
    background: #0d3d75;
    border: none;
    z-index: 22;
}
.dms-td--actions {
    width: 66px;
    min-width: 66px;
    padding: 0 3px;
    vertical-align: middle;
    white-space: nowrap;
}
.dms-actions-cell {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 5px;
    gap: 4px;
    width: 100%;
    height: 36px;
    min-height: 36px;
    line-height: 1;
}
.dms-actions-cell--header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 8px;
    height: 36px;
    min-height: 36px;
    line-height: 1;
}
.dms-row--item .dms-actions-cell {
    height: 32px;
    min-height: 32px;
}
.dms-td--actions .dms-check-input {
    margin: 0;
    vertical-align: middle;
}
.dms-actions-cell > .dms-check-input,
.dms-actions-cell > .mud-menu,
.dms-actions-cell > .dms-drag-grip {
    align-self: center;
}
.dms-td--handle {
    width: 0;
    min-width: 0;
    padding: 0;
    overflow: hidden;
}
.dms-check-input {
    width: 15px;
    height: 15px;
    cursor: pointer;
    accent-color: #1a5fac;
    opacity: 0;
    transition: opacity .12s;
    display: inline-block;
    vertical-align: middle;
}
.dms-check-input--header { opacity: 1; }
.dms-row:hover .dms-check-input,
.dms-table.dms-has-selection .dms-check-input,
.dms-row--multi-selected .dms-check-input { opacity: 1; }
.dms-row--multi-selected { background: #dce8ff !important; }
.dms-row--multi-selected:hover { background: #cfe0ff !important; }
.dms-selection-bar {
    flex-shrink: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height .22s cubic-bezier(.4, 0, .2, 1);
}
.dms-selection-bar--visible { max-height: 56px; }
.dms-selection-bar__inner {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #2f4a3a;
    color: white;
    padding: 9px 16px;
    border: 1px solid #274032;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,.16);
    margin: 0 8px 8px;
}
.dms-selection-count {
    font-size: .875rem;
    font-weight: 600;
    color: white;
    white-space: nowrap;
    margin-right: 6px;
}
.dms-selection-bar__inner .mud-button-root {
    color: white;
    border-color: rgba(255,255,255,.45);
    height: 30px;
    min-height: 30px;
    font-size: .8125rem;
}
.dms-selection-bar__inner .mud-button-root:hover {
    background: rgba(255,255,255,.18);
    border-color: rgba(255,255,255,.85);
}
.dms-selection-bar__inner .mud-icon-button {
    color: rgba(255,255,255,.7);
    margin-left: auto;
}
.dms-selection-bar__inner .mud-icon-button:hover { color: white; }

.dms-grid-card      { background: white; border: 1px solid #e8e8e8; border-radius: 8px;
                       padding: 12px 10px 8px; cursor: pointer;
                       transition: box-shadow .15s, border-color .15s;
                       display: flex; flex-direction: column; align-items: center; gap: 4px;
                       position: relative; }
.dms-grid-card:hover         { box-shadow: 0 4px 12px rgba(0,0,0,.12); border-color: #1a5fac; }
.dms-grid-card--selected     { border-color: #1a5fac; background: #f0f4ff; }
.dms-grid-card--multi-selected { border-color: #1a5fac !important; background: #dce8ff !important; outline: 2px solid #1a5fac; outline-offset: -2px; }
.dms-grid-card--folder       { background: #fffbf0; border-color: #ffe082; }
.dms-grid-check {
    position: absolute;
    top: 7px;
    left: 7px;
    width: 15px;
    height: 15px;
    cursor: pointer;
    accent-color: #1a5fac;
    opacity: 0;
    transition: opacity .12s;
    z-index: 2;
}
.dms-grid-card:hover .dms-grid-check,
.dms-grid-card--multi-selected .dms-grid-check { opacity: 1; }
.dms-grid-card__icon         { font-size: 2.5rem; }
.dms-grid-card__name         { font-size: .78rem; font-weight: 500; text-align: center;
                                word-break: break-word; max-width: 120px; }
.dms-grid-card__meta         { font-size: .7rem; color: #999; display: flex; gap: 6px; }
.dms-grid-card__actions      { position: absolute; top: 4px; right: 4px; opacity: 0;
                                transition: opacity .15s; }
.dms-grid-card:hover .dms-grid-card__actions { opacity: 1; }
.dms-grid-card__tags         { display: flex; flex-wrap: wrap; justify-content: center;
                                gap: 2px; margin-top: 4px; }
.dms-upload-name    { font-weight: 500; max-width: 260px; overflow: hidden;
                      text-overflow: ellipsis; display: inline-block; vertical-align: bottom; }
.dms-upload-bulk {
    border: 1px solid #dce7f4;
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
    border-radius: 8px;
}
.dms-upload-dialog {
    width: min(99vw, 1800px);
    max-width: min(99vw, 1800px);
    height: min(94vh, 1100px);
    max-height: min(94vh, 1100px);
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.dms-upload-dialog .mud-paper {
    overflow: visible;
}
.dms-upload-dialog .mud-dialog-content {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow: auto;
    display: flex;
    flex-direction: column;
    scrollbar-gutter: stable;
}
.dms-upload-dialog .mud-dialog-actions {
    flex: 0 0 auto;
}
.dms-upload-compact .mud-input-control {
    margin-top: 0;
    margin-bottom: 0;
}
.dms-upload-bulk .mud-button-root {
    min-height: 32px;
    height: 32px;
}
.dms-upload-bulk__action-cell {
    display: flex;
    align-items: flex-end;
}
.dms-upload-bulk-row {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: nowrap;
}
.dms-upload-bulk__btn {
    min-width: 132px;
    width: auto;
}
.dms-upload-bulk__btn--ghost {
    min-width: 128px;
}
.dms-upload-bulk-row .dms-upload-bulk__btn {
    align-self: flex-end;
    margin-bottom: 4px;
}
.dms-upload-bulk__action-cell .dms-upload-bulk__btn {
    align-self: flex-end;
    margin-bottom: 4px;
}
.dms-upload-bulk__date {
    max-width: 210px;
}
.dms-upload-bulk__comments {
    max-width: 360px;
    flex: 0 1 360px;
}
.dms-upload-bulk__control-cell {
    display: flex;
    align-items: flex-end;
}

@media (max-width: 1279px) {
    .dms-upload-dialog {
        width: 99vw;
        max-width: 99vw;
        height: 95vh;
        max-height: 95vh;
    }

    .dms-upload-bulk-row {
        flex-wrap: wrap;
    }
    .dms-upload-bulk__date,
    .dms-upload-bulk__comments {
        max-width: 100%;
    }
    .dms-upload-bulk__btn,
    .dms-upload-bulk__btn--ghost {
        min-width: 0;
        width: 100%;
        margin-bottom: 0;
    }

    .dms-upload-grid {
        min-width: 1020px;
    }
}

@media (max-width: 900px) {
    .dms-upload-grid {
        min-width: 920px;
    }
}

.dms-upload-grid-wrap {
    border: 1px solid #dfe6f2;
    border-radius: 8px;
    overflow: auto;
    flex: 1 1 auto;
    min-height: 260px;
    max-height: none;
    scrollbar-gutter: stable both-edges;
    background: #fff;
}
.dms-upload-grid {
    width: 100%;
    min-width: 1180px;
    border-collapse: separate;
    border-spacing: 0;
}
.dms-upload-grid thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #edf3fb;
    color: #1b3f72;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    padding: 8px;
    border-bottom: 1px solid #d6e0ef;
    white-space: nowrap;
}
.dms-upload-grid tbody td {
    padding: 6px 8px;
    border-bottom: 1px solid #eef2f8;
    vertical-align: middle;
}
.dms-upload-grid tbody tr:hover {
    background: #f9fcff;
}
.dms-upload-grid__name-cell {
    min-width: 260px;
}
.dms-upload-grid__size-cell {
    white-space: nowrap;
    color: #58677d;
    font-size: .77rem;
}

.dms-upload-preference-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: .85rem;
    color: #2f3e52;
    user-select: none;
}

.dms-upload-preference-row input[type="checkbox"] {
    margin: 0;
    width: 15px;
    height: 15px;
    cursor: pointer;
}

.dms-upload-preference-row span {
    pointer-events: none;
}

.dms-upload-searchable .sd-label {
    margin-bottom: 4px;
    font-size: .78rem;
    color: #516581;
}

.dms-upload-searchable .sd-toggle {
    width: 100%;
    min-height: 34px;
    border: 1px solid #cfdced;
    border-radius: 4px;
    background: #fff;
    padding: 7px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #1f2937;
    cursor: pointer;
    font-size: .84rem;
}

.dms-upload-searchable .sd-toggle:hover {
    border-color: #8eb2de;
}

.dms-upload-searchable .sd-root {
    position: relative;
}

.dms-upload-searchable .sd-root.sd-open {
    z-index: 2147483000;
}

.dms-upload-searchable .sd-toggle-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.dms-upload-searchable .sd-chevron {
    color: #6b7280;
    flex: 0 0 auto;
}

.dms-upload-searchable .sd-panel {
    min-width: 260px;
    background: #fff;
    border: 1px solid #cfdced;
    border-radius: 6px;
    box-shadow: 0 12px 24px rgba(21, 36, 56, 0.18);
    padding: 6px;
    z-index: 2147483003;
}

.dms-upload-searchable .sd-search {
    width: 100%;
    min-height: 32px;
    border: 1px solid #cfdced;
    border-radius: 4px;
    padding: 6px 8px;
    font-size: .84rem;
    margin-bottom: 6px;
}

.dms-upload-searchable .sd-options {
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #d9e3f0;
    border-radius: 4px;
}

.dms-upload-searchable .sd-option {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .84rem;
    padding: 7px 8px;
}

.dms-upload-searchable .sd-option:hover {
    background: #f4f8ff;
}

.dms-upload-searchable .sd-option-all {
    position: sticky;
    top: 0;
    background: #fff;
    border-bottom: 1px solid #d9e3f0;
    z-index: 1;
    font-weight: 600;
}

.dms-upload-searchable--row .sd-panel {
    min-width: 240px;
}

.dms-file-preview-dialog {
    width: 98vw;
    max-width: 98vw;
    height: 96vh;
    max-height: 96vh;
    display: flex;
    flex-direction: column;
}
.dms-file-preview-dialog .mud-dialog-title {
    padding-bottom: 0;
}
.dms-file-preview-dialog .mud-dialog-content {
    padding: 4px 6px 2px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.dms-file-preview-dialog .mud-dialog-actions {
    padding-top: 4px;
}
.dms-file-preview-title {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
}
.dms-file-preview-title--inline {
    padding: 2px 4px 6px;
    width: 100%;
}
.dms-file-preview-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dms-file-preview-count {
    color: #6b7280;
    flex-shrink: 0;
}
.dms-file-preview-shell {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    height: calc(100% - 10px);
    min-height: 0;
    margin: 0 auto;
    border: 1px solid #dbe4f3;
    border-radius: 8px;
    overflow: hidden;
    background: #f3f6fb;
}
.dms-file-preview-frame {
    width: 100%;
    height: 100%;
    border: 0;
    background: #fff;
}
.dms-file-preview-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.55);
    background: rgba(17,24,39,.48);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}
.dms-file-preview-nav:disabled {
    opacity: .35;
    cursor: default;
}
.dms-file-preview-nav--left {
    left: 10px;
}
.dms-file-preview-nav--right {
    right: 10px;
}

@media (max-width: 900px) {
    .dms-file-preview-dialog {
        width: 98vw;
        max-width: 98vw;
        height: 97vh;
        max-height: 97vh;
    }
    .dms-file-preview-shell {
        height: 100%;
    }
}
.fp-breadcrumb      { display: flex; align-items: center; flex-wrap: wrap; gap: 2px;
                       font-size: .8rem; padding: 4px 0; }
.fp-chevron         { color: #bbb; margin: 0 2px; }
.fp-crumb-link      { color: #1a5fac; cursor: pointer; text-decoration: underline; }
.fp-crumb-link:hover{ opacity: .8; }
.fp-crumb-current   { font-weight: 600; color: #333; }
.fp-list            { border: 1px solid #e0e0e0; border-radius: 6px; overflow: auto;
                       max-height: 320px; min-height: 80px; background: #fff; }
.fp-loading,
.fp-empty           { padding: 16px; text-align: center; }
.fp-folder-row      { display: flex; align-items: center; padding: 8px 12px;
                       cursor: pointer; transition: background .1s; border-bottom: 1px solid #f0f0f0; }
.fp-folder-row:last-child { border-bottom: none; }
.fp-folder-row:hover       { background: #f0f4ff; }
.fp-folder-row--selected   { background: #e8f0fe; }
.fp-folder-name     { flex: 1; font-size: .875rem; overflow: hidden;
                       text-overflow: ellipsis; white-space: nowrap; }
.fp-drill-icon      { opacity: .35; flex-shrink: 0; }
.fp-type-chips      { display: flex; gap: 6px; flex-wrap: wrap; }
.fp-type-chip       { display: inline-flex; align-items: center; padding: 3px 10px;
                       border-radius: 12px; font-size: .78rem; cursor: pointer;
                       border: 1px solid #bdbdbd; background: #fff;
                       transition: background .15s, color .15s; user-select: none; }
.fp-type-chip:hover          { background: #e8f0fe; border-color: #1a5fac; }
.fp-type-chip--active        { background: #1a5fac; color: #fff; border-color: #1a5fac; }

.fp-client-banner   { display: flex; align-items: center; background: #e8f4fd;
                       border: 1px solid #b3d9f5; border-radius: 6px; padding: 6px 10px;
                       font-size: .85rem; gap: 4px; }
.fp-client-banner__label { flex: 1; }
.fp-client-banner__spacer { flex: 1; }

.fp-subtype-row     { display: flex; gap: 6px; }

.fp-entity-badge    { display: inline-block; padding: 1px 7px; border-radius: 10px;
                       font-size: .72rem; font-weight: 600; flex-shrink: 0;
                       margin-right: 8px; text-transform: uppercase; letter-spacing: .03em; }
.fp-entity-badge--client { background: #e3f2fd; color: #1565c0; }
.fp-entity-badge--policy { background: #e8f5e9; color: #2e7d32; }
.fp-entity-badge--claim  { background: #fff3e0; color: #e65100; }

.fp-entity-sub      { font-size: .75rem; color: #888; flex-shrink: 0; margin-left: 8px; }

.fp-entity-header   { display: flex; align-items: center; font-size: .9rem;
                       font-weight: 500; gap: 4px; }
.fp-entity-label    { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.fp-year-row        { display: flex; align-items: center; }
.fp-year-label      { font-size: .85rem; white-space: nowrap; }

.fp-selection-row   { display: flex; align-items: center; min-height: 32px; gap: 8px; }
.fp-search-row      { gap: 6px; cursor: pointer; }
.fp-result-id       { font-size: .78rem; color: #555; font-family: monospace; flex-shrink: 0; }
.fp-result-name     { font-size: .875rem; font-weight: 500; flex: 1;
                       overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dms-content-viewer {
    max-width: 600px;
    max-height: 400px;
    overflow-y: auto;
    padding: 8px 0;
}
.qconnect-file-note-modal-overlay {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(14, 24, 38, .58);
    padding: 20px;
}

.qconnect-file-note-modal-dialog {
    width: min(80vw, 1200px);
    height: 80vh;
    max-width: calc(100vw - 40px);
    max-height: calc(100vh - 40px);
    background: #fff;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.qconnect-file-note-modal-dialog.qconnect-file-note-modal-fullscreen {
    width: 100vw;
    height: 100vh;
    max-width: none;
    max-height: none;
    border-radius: 0;
}

.qconnect-file-note-modal-header {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #ddd;
}

.qconnect-file-note-modal-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.qconnect-file-note-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 16px 20px;
}

.qconnect-file-note-modal-loading {
    min-height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.qconnect-file-note-html-view {
    width: 100%;
    padding: 4px;
}

@media (max-width: 900px) {
    .qconnect-file-note-modal-overlay {
        padding: 12px;
    }

    .qconnect-file-note-modal-dialog {
        width: calc(100vw - 24px);
        height: calc(100vh - 24px);
        max-width: calc(100vw - 24px);
        max-height: calc(100vh - 24px);
    }
}

.dms-fill-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    overflow: visible;
    pointer-events: none;
    z-index: 5;
}

.dms-fill-box {
    position: absolute;
    box-sizing: border-box;
    border: 2px solid #1a5fac;
    pointer-events: none;
}

.dms-fill-box--range {
    background: rgba(26, 95, 172, .08);
}

.dms-fill-box--dragging {
    border-style: dashed;
}

.dms-fill-handle {
    position: absolute;
    box-sizing: border-box;
    width: 10px;
    height: 10px;
    background: #1a5fac;
    border: 1px solid #fff;
    cursor: crosshair;
    pointer-events: auto;
    touch-action: none;
}

.dms-fill-handle::after {
    content: "";
    position: absolute;
    inset: -7px;
}

body.dms-fill-dragging,
body.dms-fill-dragging * {
    cursor: crosshair !important;
    user-select: none !important;
}

.dms-fill-status {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 40;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-radius: 18px;
    background: #323130;
    color: #fff;
    font-size: 13px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}

.dms-fill-status .mud-progress-circular {
    width: 16px;
    height: 16px;
    color: #fff;
}

.dms-fill-live {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
