.files-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 310px), 1fr)); gap: 16px; }
.files-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px; }
.files-card h2 { margin: 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.files-card p { margin: 0; }
.files-card > .button { align-self: flex-start; margin-top: auto; }
.files-list > .empty { grid-column: 1 / -1; }
.files-status-ready { background: var(--green-50); color: var(--green-800); }
.files-status-pending, .files-status-scanning { background: var(--amber-50); color: var(--amber-800); }
.files-status-blocked, .files-status-scan_failed { background: var(--red-50); color: var(--red-700); }
.files-form { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 24px; }
.files-form > h2, .files-form > h3, .files-form > p { margin: 0; }
.files-form .form-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.files-form input:not([type=checkbox]):not([type=hidden]), .files-form select, .files-form textarea { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; }
.files-form button, .files-form .button { white-space: normal; overflow-wrap: anywhere; }
.files-form button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--control-border); border-radius: 6px; padding: 9px 13px; cursor: pointer; }
.files-form button:not(.primary):not(.danger) { color: var(--text); background: var(--control-bg); }
.files-form button.danger { border-color: var(--red-200); }
.files-form button.primary { border-color: var(--primary); }
.files-form select { min-height: 42px; appearance: none; -webkit-appearance: none; padding-right: 32px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238b95a5' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
.files-form progress { width: 100%; }
.files-share-field { margin: 0; padding: 0; min-width: 0; border: 0; }
.files-share-field legend { font-weight: 600; padding: 0; }
.files-share-field > p { margin: 6px 0 12px; }
.files-share-options { display: grid; gap: 8px; max-height: 340px; overflow: auto; }
.files-share-option { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.files-share-option span { min-width: 0; overflow-wrap: anywhere; }
.files-form .files-share-option input[type="checkbox"] { width: 18px; min-width: 18px; max-width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; padding: 0; }
.files-share-option:has(input:checked) { border-color: var(--primary); background: var(--blue-50); }
.files-share-option:focus-within { outline: 2px solid var(--primary); outline-offset: -2px; }
.files-share-empty { margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 6px; }
.files-form .autocomplete-field, .files-form .autocomplete-option > span { min-width: 0; }
.files-form .autocomplete-field [hidden] { display: none; }
.files-form .autocomplete-option { display: grid; justify-content: stretch; text-align: left; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; }
.files-form .autocomplete-option:hover, .files-form .autocomplete-option:focus { background: var(--gray-25); }
.files-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.files-filename { overflow-wrap: anywhere; word-break: break-word; }
.files-access { border-top: 1px solid var(--border); padding-top: 14px; }
.files-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px; padding: 20px; margin: 20px 0 24px; }
.files-search input { box-sizing: border-box; min-width: 0; max-width: 100%; min-height: 44px; appearance: none; -webkit-appearance: none; }
.files-search .button { min-height: 44px; }
.files-list-page .heading-actions { flex-wrap: wrap; }
.files-list-page .heading-actions .button { min-height: 44px; white-space: normal; }
.files-list-page .mobile-action-grid > .button:only-child { grid-column: 1 / -1; }
.files-public { max-width: 800px; margin: 30px auto; }
@media (max-width: 767px) {
    .files-detail { grid-template-columns: minmax(0, 1fr); }
    .files-form { padding: 18px; }
    .files-form button { width: 100%; }
    .files-search { grid-template-columns: minmax(0, 1fr); padding: 16px; }
    .files-search .button { width: 100%; }
    .files-card { padding: 16px; }
}
