/* Written by Richard Christopher, Copyright 2026 Mindfull */
.resource-assets-explorer { gap: 16px; color: var(--text); font-size: var(--text-base); }
.resource-assets-explorer .asset-explorer-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.asset-explorer-header h2 { margin: 0; font-size: var(--text-xl); font-weight: var(--weight-bold); line-height: var(--leading-tight); }
.asset-explorer-header p { margin: 4px 0 0; color: var(--text-dim); font-size: var(--text-sm); }
.resource-assets-explorer .asset-explorer-controls { gap: 6px; align-items: center; }
.resource-assets-explorer .asset-explorer-controls button { min-height: 34px; padding: 6px 12px; }
.asset-explorer-workspace { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-raised); overflow: hidden; }
.resource-assets-location-filter .cloudcanvas-ui-select { display: flex; align-items: center; gap: 8px; font-size: var(--text-sm); }
.asset-explorer-content { min-width: 0; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.resource-assets-explorer .asset-explorer-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 3px; min-width: 0; }
.resource-assets-explorer .asset-explorer-breadcrumb button { padding: 2px 4px; min-height: 30px; background: transparent; border-color: transparent; color: var(--text-dim); font-size: var(--text-sm); }
.resource-assets-explorer .asset-explorer-breadcrumb button[aria-current] { color: var(--text); font-weight: var(--weight-semibold); }
.asset-explorer-separator { color: var(--text-dim); font-size: var(--text-sm); }
.asset-explorer-counts { margin: 0; }
/* A source that could not be read is said in one sentence, in the warning colour, with no box of its own. */
.asset-explorer-notice { margin: 0; color: var(--warn); font-size: var(--text-base); overflow-wrap: anywhere; }
.resource-assets-explorer .asset-explorer-files { gap: 0; }
.resource-assets-explorer .asset-explorer-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 14px 2px; background: transparent; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; }
.asset-explorer-file-identity { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.asset-explorer-file-identity > .unified-icon { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 3px; color: var(--text-dim); }
.asset-explorer-file-text { min-width: 0; display: flex; flex-direction: column; gap: 4px; overflow-wrap: anywhere; }
.asset-explorer-filename { font-size: var(--text-base); line-height: 1.4; font-weight: var(--weight-semibold); }
.resource-assets-explorer .asset-explorer-location { background: transparent; border: 0; padding: 0; min-height: 24px; color: var(--text-dim); font-size: var(--text-sm); text-align: start; text-decoration: underline; text-underline-offset: 3px; }
.asset-explorer-file-text small { color: var(--text-dim); font-size: var(--text-xs); }
.asset-explorer-file-metadata { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; color: var(--text-dim); font-size: var(--text-sm); }
.asset-explorer-time { font-variant-numeric: tabular-nums; white-space: nowrap; }
.asset-explorer-access { font-size: var(--text-xs); }
.asset-explorer-access:empty { display: none; }
.asset-explorer-row[data-access="denied"] .asset-explorer-access, .asset-explorer-row[data-access="missing"] .asset-explorer-access { color: var(--text); font-weight: var(--weight-semibold); }
/* A row's own controls, side by side: Open, Download, and Remove for a file of this device (phase 29, P3). */
.asset-explorer-file-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.resource-assets-explorer .asset-explorer-file-actions button { padding: 7px 10px; min-height: 34px; text-align: center; font-size: var(--text-sm); }
/* What an Open or a Remove answered, quiet and in flow. */
.asset-explorer-said { margin: 0; color: var(--text-dim); font-size: var(--text-base); overflow-wrap: anywhere; }
.asset-explorer-said:empty { display: none; }
.asset-explorer-lock-note { grid-column: 1 / -1; margin: 0; color: var(--text-dim); font-size: var(--text-sm); }
.asset-explorer-empty { padding: 42px 16px; text-align: center; color: var(--text-dim); border: 1px dashed var(--border); border-radius: var(--radius-lg); background: var(--bg-sunken); }
.asset-explorer-empty > .unified-icon { width: 32px; height: 32px; margin-bottom: 10px; }
.asset-explorer-empty h3 { margin: 0 0 8px; color: var(--text); font-size: var(--text-lg); font-weight: var(--weight-semibold); }
.asset-explorer-empty p { margin: 6px 0; font-size: var(--text-sm); }
.asset-explorer-empty-hint { max-width: 38rem; margin-inline: auto !important; }
.asset-explorer-error { padding: 10px 12px; margin: 0; border: 1px solid var(--border-strong); border-radius: var(--radius); font-size: var(--text-sm); overflow-wrap: anywhere; }
/* The page's Details: the shared disclosure, set flush with the content it closes. */
.asset-explorer-content > .feed-details { padding: 0; }
.resource-assets-explorer [hidden] { display: none !important; }
@media (max-width: 650px) {
  .asset-explorer-workspace { grid-template-columns: minmax(0, 1fr); }
  .asset-explorer-content { padding: 12px; }
  .resource-assets-explorer .asset-explorer-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .asset-explorer-file-identity { grid-column: 1 / -1; }
  .asset-explorer-file-metadata { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .asset-explorer-file-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .asset-explorer-empty { padding: 28px 12px; }
}
/* Under a finger every control is a full target: a location (pressed and held for its menu), a step of the trail, Refresh and Load more, and a row's Open, Download and Remove. */
@media (pointer: coarse) {
  .resource-assets-explorer .asset-explorer-location, .resource-assets-explorer .asset-explorer-breadcrumb button { min-height: 44px; }
  .resource-assets-explorer .asset-explorer-controls button { min-height: 44px; }
  .resource-assets-explorer .asset-explorer-file-actions button { min-height: 44px; }
  /* A sheet of ours held the locations to 40px at every pointer, over the kit's own coarse 44px. */
}
@media (max-width: 360px) {
  .asset-explorer-header p { max-width: 28ch; }
}
/* A tab that is on one file: its preview is the page, with the file's name and the way back above it (`file-page.js`). */
.asset-file-page { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-raised); }
.asset-file-head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 4px 12px; }
.asset-file-head .asset-file-back { grid-row: 1 / span 2; }
.asset-file-title { margin: 0; font-size: var(--text-lg); font-weight: var(--weight-bold); line-height: var(--leading-tight); overflow-wrap: anywhere; }
.asset-file-facts { margin: 0; color: var(--text-dim); font-size: var(--text-sm); }
.asset-file-facts:empty { display: none; }
.asset-file-stage { min-width: 0; }
.asset-file-say { margin: 0; color: var(--text-dim); overflow-wrap: anywhere; }
.asset-file-say:empty { display: none; }
@media (max-width: 640px) { .asset-file-page { padding: 12px; } .asset-file-head { grid-template-columns: minmax(0, 1fr); } .asset-file-head .asset-file-back { grid-row: auto; justify-self: start; } }
