/* Document patterns reuse application panels, fields, buttons and dialogs. */
.case-docs-library {
    min-width:0;
    padding:16px
}
.case-docs-toolbar,.case-docs-actions,.case-docs-selection,.case-docs-footer {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px
}
.case-docs-toolbar {
    margin-bottom:14px
}
.case-docs-toolbar .sa-button {
    gap:8px
}
.case-docs-search {
    flex:1 1 260px;
    width:auto;
    min-width:120px;
    height:var(--sa-control-height);
    background:var(--sa-color-control-bg)
}
.case-docs-meta {
    margin:8px 0;
    color:var(--sa-color-muted);
    font-size:12px;
    line-height:1.5;
    overflow-wrap:anywhere
}
.case-docs-filters {
    padding:12px;
    border:1px solid var(--sa-color-border);
    border-radius:var(--sa-radius-control);
    margin-bottom:10px
}
.case-docs-filters summary {
    cursor:pointer;
    font-weight:600;
    font-size:13px
}
.case-docs-filters[open] summary {
    margin-bottom:14px
}
.case-docs-form-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px
}
.case-docs-form-grid .legal-field {
    min-width:0;
    gap:5px
}
.case-docs-form-grid input,.case-docs-form-grid select {
    width:100%
}
.case-docs-form-grid .case-docs-wide {
    grid-column:1/-1
}
.case-docs-form-grid textarea {
    min-height:90px
}
.case-docs-filters .case-docs-actions {
    margin-top:12px
}
.case-docs-chips {
    display:flex;
    flex-wrap:wrap;
    gap:6px
}
.case-docs-chip {
    display:inline-flex;
    gap:6px;
    align-items:center;
    padding:4px 9px;
    color:var(--sa-color-blue);
    background:var(--sa-color-blue-soft);
    border:0;
    border-radius:20px;
    font:inherit;
    font-size:11px;
    cursor:pointer
}
.case-docs-selection {
    padding:10px;
    margin:12px 0;
    background:var(--sa-color-blue-soft);
    border-radius:var(--sa-radius-control);
    font-size:12px
}
.case-docs-selection select {
    max-width:100%
}
.case-docs-table-wrap {
    width:100%;
    overflow-x:auto;
    border:1px solid var(--sa-color-border);
    border-radius:var(--sa-radius-control)
}
.case-docs-table {
    width:100%;
    table-layout:fixed;
    border-collapse:collapse;
    font-size:12px
}
.case-docs-table th,.case-docs-table td {
    padding:11px 9px;
    border-bottom:1px solid var(--sa-color-border);
    vertical-align:middle;
    text-align:left;
    overflow-wrap:anywhere;
    line-height:1.45
}
.case-docs-table th {
    background:var(--sa-color-table-head);
    color:var(--sa-color-navy);
    font-size:11px
}
.case-docs-table th:first-child {
    width:34px
}
.case-docs-table th:nth-child(2) {
    width:29%
}
.case-docs-table th:nth-child(4) {
    width:110px
}
.case-docs-table th:last-child {
    width:72px
}
.case-docs-table th button {
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    border:0;
    padding:0;
    background:none;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer
}
.case-docs-table th[aria-sort] {
    color:var(--sa-color-blue)
}
.case-docs-table tr.is-selected {
    background:var(--sa-color-blue-soft)
}
.case-docs-table tbody tr:hover {
    background:var(--sa-color-control-bg)
}
.case-docs-name {
    display:flex;
    gap:9px;
    align-items:start
}
.case-docs-file {
    display:block;
    border:0;
    padding:0;
    background:none;
    color:var(--sa-color-text);
    font:inherit;
    font-weight:600;
    text-align:left;
    cursor:pointer;
    overflow-wrap:anywhere
}
.case-docs-file:hover {
    color:var(--sa-color-blue);
    text-decoration:underline
}
.case-docs-format {
    flex:0 0 37px;
    padding:6px 2px;
    border-radius:7px;
    text-align:center;
    font-size:10px;
    font-weight:700;
    color:var(--sa-color-blue);
    background:var(--sa-color-blue-soft)
}
.case-docs-filename {
    margin-top:4px;
    color:var(--sa-color-muted);
    font-size:10px
}
.case-docs-filename summary {
    cursor:pointer
}
.case-docs-version {
    display:inline-block;
    padding:1px 6px;
    border-radius:9px;
    font-size:10px;
    background:var(--sa-color-blue-soft);
    color:var(--sa-color-blue);
    margin-left:5px
}
.case-docs-row-actions {
    display:flex;
    flex-wrap:wrap;
    gap:6px
}
.case-docs-row-actions .case-text-button {
    font-size:11px
}
.case-docs-snippet {
    margin:7px 0 0;
    font-size:11px;
    color:var(--sa-color-muted)
}
.case-docs-empty {
    padding:36px 20px;
    text-align:center
}
.case-docs-empty strong {
    font-size:17px
}
.case-docs-empty p {
    color:var(--sa-color-muted)
}
.case-docs-footer {
    padding-top:14px;
    font-size:12px
}
.case-docs-footer .sa-pagination {
    display:flex;
    gap:4px;
    margin-left:auto
}
.case-docs-footer .sa-pagination button {
    min-width:32px;
    height:32px;
    cursor:pointer
}
.case-fabula-dialog.case-docs-drawer {
    position:fixed;
    inset:0 0 0 auto;
    margin:0;
    width:min(1060px,100vw);
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
    overflow:hidden
}
.case-docs-drawer [data-doc-title] {
    overflow-wrap:anywhere
}
.case-docs-drawer .case-fabula-dialog-head>div {
    min-width:0
}
.case-docs-tabs {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    border-bottom:1px solid var(--sa-color-border);
    padding-bottom:8px
}
.case-docs-tabs button {
    padding:7px 10px;
    border:0;
    border-radius:var(--sa-radius-control);
    background:transparent;
    color:var(--sa-color-text);
    font:inherit;
    font-size:12px;
    cursor:pointer
}
.case-docs-tabs button[aria-selected="true"] {
    color:var(--sa-color-blue);
    background:var(--sa-color-blue-soft);
    font-weight:600
}
.case-docs-card-scroll {
    flex:1;
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
    padding:0 3px 12px
}
.case-docs-card-scroll .case-docs-form-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.case-docs-card-scroll .case-docs-actions {
    margin:12px 0
}
.case-docs-preview {
    width:100%;
    height:min(65vh,760px);
    border:1px solid var(--sa-color-border);
    border-radius:var(--sa-radius-control);
    background:var(--sa-color-control-bg)
}
.case-docs-image-wrap {
    overflow:auto;
    max-height:65vh;
    border:1px solid var(--sa-color-border);
    background:var(--sa-color-control-bg)
}
.case-docs-image-wrap img {
    display:block;
    max-width:none;
    width:100%;
    height:auto
}
.case-docs-split {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
}
.case-docs-text {
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    font:13px/1.7 var(--sa-font-main);
    background:var(--sa-color-control-bg);
    border:1px solid var(--sa-color-border);
    border-radius:var(--sa-radius-control);
    padding:16px;
    max-height:65vh;
    overflow:auto
}
.case-docs-text-editor {
    width:100%;
    min-height:40vh;
    resize:vertical;
    font:14px/1.6 var(--sa-font-main)
}
.case-docs-stack {
    display:grid;
    gap:12px
}
.case-docs-box {
    padding:12px;
    border:1px solid var(--sa-color-border);
    border-radius:var(--sa-radius-control)
}
.case-docs-box>:first-child {
    margin-top:0
}
.case-docs-box>:last-child {
    margin-bottom:0
}
.case-docs-notice {
    border-left:3px solid var(--sa-color-blue);
    padding:10px 12px;
    background:var(--sa-color-blue-soft);
    font-size:12px;
    line-height:1.6
}
.case-docs-error {
    color:#a92f39
}
.case-docs-check {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px
}
.case-docs-check input,.case-docs-table input[type="checkbox"] {
    width:16px;
    height:16px;
    flex:0 0 16px;
    accent-color:var(--sa-color-blue)
}
.case-fabula-dialog.case-docs-upload-dialog {
    width:min(760px,calc(100vw - 24px))
}
.case-docs-upload-dialog .case-docs-form-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.case-docs-drop {
    display:grid;
    gap:10px;
    padding:24px 16px;
    text-align:center;
    border:2px dashed var(--sa-color-control-border);
    border-radius:var(--sa-radius-control);
    cursor:pointer
}
.case-docs-drop.is-dragover {
    background:var(--sa-color-blue-soft);
    border-color:var(--sa-color-blue)
}
.case-docs-drop input {
    max-width:100%;
    font:inherit
}
.case-docs-queue {
    display:grid;
    gap:10px;
    padding:0;
    margin:0;
    list-style:none
}
.case-docs-queue li {
    padding:12px;
    border:1px solid var(--sa-color-border);
    border-radius:var(--sa-radius-control);
    overflow-wrap:anywhere
}
.case-docs-queue progress {
    width:100%;
    height:8px;
    accent-color:var(--sa-color-blue)
}
.case-docs-operation-dialog form {
    display:grid;
    gap:12px
}
.case-docs-operation-dialog .legal-field {
    margin:10px 0
}
.case-docs-fact-list {
    display:grid;
    grid-template-columns:minmax(110px,1fr) 2fr;
    gap:8px 14px;
    font-size:12px
}
.case-docs-fact-list dt {
    color:var(--sa-color-muted)
}
.case-docs-fact-list dd {
    margin:0;
    overflow-wrap:anywhere
}
.case-docs-overview-item {
    display:flex;
    gap:10px;
    align-items:center
}
.case-docs-overview-item>div {
    min-width:0;
    flex:1
}
.case-docs-overview-item .case-docs-file {
    font-size:12px
}
.case-docs-overview-item .case-docs-meta {
    margin:3px 0 0;
    font-size:10px
}
.case-docs-sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip-path:inset(50%);
    white-space:nowrap;
    border:0
}
#case-panel-documents [hidden],[data-doc-dialogs] [hidden] {
    display:none!important
}
@media(max-width:1100px) {
    .case-docs-form-grid {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
    .case-docs-table {
        min-width:850px
    }
}
@media(max-width:700px) {
    .case-docs-library {
        padding:12px
    }
    .case-docs-toolbar .sa-button {
        flex:1 1 auto
    }
    .case-docs-search {
        flex-basis:100%;
        order:2
    }
    .case-docs-form-grid,.case-docs-card-scroll .case-docs-form-grid,.case-docs-upload-dialog .case-docs-form-grid {
        grid-template-columns:minmax(0,1fr)
    }
    .case-docs-table {
        min-width:0;
        display:block
    }
    .case-docs-table thead {
        display:none
    }
    .case-docs-table tbody {
        display:grid;
        gap:10px
    }
    .case-docs-table tr {
        display:grid;
        grid-template-columns:32px minmax(0,1fr);
        padding:10px;
        border:1px solid var(--sa-color-border);
        border-radius:var(--sa-radius-control)
    }
    .case-docs-table td {
        display:flex;
        gap:8px;
        padding:4px 0;
        border:0;
        grid-column:2
    }
    .case-docs-table td:first-child {
        grid-column:1;
        grid-row:1
    }
    .case-docs-table td[data-label]::before {
        content:attr(data-label) ":";
        color:var(--sa-color-muted)
    }
    .case-docs-table td:nth-child(2) {
        grid-row:1
    }
    .case-docs-table-wrap {
        border:0;
        overflow:visible
    }
    .case-docs-footer .sa-pagination {
        margin-left:0
    }
    .case-docs-footer>span {
        flex-basis:100%
    }
    .case-fabula-dialog.case-docs-drawer {
        padding:14px
    }
    .case-docs-drawer h2 {
        font-size:18px
    }
    .case-docs-drawer .sa-button {
        font-size:12px;
        padding:8px 10px;
        height:auto;
        min-height:var(--sa-control-height)
    }
    .case-docs-split {
        grid-template-columns:minmax(0,1fr)
    }
    .case-docs-drawer .legal-field input,.case-docs-drawer .legal-field textarea,.case-docs-drawer .legal-field select {
        font-size:16px
    }
    .case-docs-fact-list {
        grid-template-columns:minmax(0,1fr);
        gap:3px
    }
    .case-docs-fact-list dd {
        margin-bottom:7px
    }
    .case-docs-actions>.sa-button {
        flex:1 1 auto
    }
}

.case-docs-mobile-sort { display: none; }
@media (max-width: 700px) {
    .case-docs-mobile-sort { display: grid; gap: 6px; width: 100%; color: var(--sa-color-muted); }
    .case-docs-mobile-sort select { width: 100%; max-width: 100%; }
}

.case-docs-pdf-wrap { overflow: auto; width: 100%; max-height: 65vh; min-height: 180px; background: var(--sa-color-control-bg); border: 1px solid var(--sa-color-border); }
.case-docs-pdf-wrap canvas { display: block; max-width: none; margin: 0 auto; }
.case-docs-actions .case-docs-pdf-page { width: 72px; min-width: 0; }
.case-docs-actions .legal-field:has(.case-docs-pdf-page) { min-width: 0; }
.case-docs-row-menu { position: relative; max-width: 200px; }
.case-docs-row-menu summary { cursor: pointer; color: var(--sa-color-blue); }
.case-docs-row-menu[open] { display: grid; gap: 8px; }
.case-docs-row-menu .case-text-button { display: block; text-align: left; padding: 5px 0; }
.case-docs-copy-provenance { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 2fr); gap: 8px 16px; }
.case-docs-copy-provenance dt { font-weight: 600; }
.case-docs-copy-provenance dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) { .case-docs-copy-provenance { grid-template-columns: minmax(0, 1fr); } .case-docs-copy-provenance dd { margin-bottom: 10px; } }
