/* Cloud adapters to webapp system-v2. Source tokens/components stay in system-v2.css. */
body.dc-layout { color:var(--dc2-ink); }
body.dc-layout .dc-header { background:var(--dc2-surface-card); }
body.dc-layout .dc2-header__avatar { display:grid;place-items:center;background:var(--dc2-accent-soft);color:var(--dc2-accent-ink); }
body.dc-layout .dc-content { min-width:0; }
/* No white tile in either rail state. Custom operator logos retain their colours. */
body.dc-layout .dc2-rail .dc2-rail__logo { background:transparent;padding:0;border-radius:0; }
.cloud-library-nav { display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px; }
.cloud-library-nav .dc2-ic { width:18px;height:18px; }
body.dc-layout .cloud-library-nav .is-active { color:var(--dc2-accent-ink);background:var(--dc2-accent-soft);border-color:var(--dc2-accent-soft); }
.cloud-skip { position:fixed;left:80px;top:-100px;z-index:3000;padding:12px 18px;background:var(--dc2-surface-card);color:var(--dc2-accent-ink);border:2px solid currentColor;border-radius:var(--dc2-radius-sm); }
.cloud-skip:focus { top:8px; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--dc2-accent-ink);outline-offset:3px; }
.dc2-rail :focus-visible { outline-color:white; }
body.dc-layout :is(.dc-card,.empty-state,.ubic-card,.form-card) { background:var(--dc2-surface-card);color:var(--dc2-ink);border:1px solid var(--dc2-border);border-radius:var(--dc2-radius-md);box-shadow:var(--dc2-shadow-card); }
body.dc-layout .dc-card { padding:22px 24px; }
body.dc-layout :is(h1,h2,h3,.page-header h1) { font-family:Manrope,Poppins,sans-serif;color:var(--dc2-ink);font-weight:800; }
body.dc-layout h1 { font-size:24px;line-height:1.3; }
body.dc-layout h2 { font-size:16px; }
body.dc-layout :is(.muted,.empty-state p,.form-row label) { color:var(--dc2-ink-soft); }
body.dc-layout .btn { font:700 13px Manrope,Poppins,sans-serif;border-radius:var(--dc2-radius-pill);min-height:38px;padding:8px 15px;border:1px solid var(--dc2-border);background:var(--dc2-surface-card);color:var(--dc2-ink);text-decoration:none; }
body.dc-layout .btn:hover { background:var(--dc2-surface-sunken);border-color:var(--dc2-ink-faint); }
body.dc-layout :is(.btn-primary,.dc-btn--primary) { background:var(--dc2-accent);color:white;border-color:transparent; }
body.dc-layout :is(.btn-primary,.dc-btn--primary):hover { background:var(--dc2-accent-strong);color:white; }
/* Account actions keep AA white-text contrast when hovered in the dark theme. */
:root[data-theme="dark"] body.dc-layout .mi-cuenta-card .btn-primary:hover { background:var(--dc2-accent); }
body.dc-layout :is(.btn-secondary,.btn-tool,.dc-btn--secondary) { background:var(--dc2-accent-soft);color:var(--dc2-accent-ink);border-color:transparent; }
body.dc-layout .btn-danger { color:var(--dc2-bad);background:var(--dc2-bad-soft); }
body.dc-layout :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea) { background:var(--dc2-surface-card);color:var(--dc2-ink);border:1px solid var(--dc2-border);border-radius:var(--dc2-radius-sm);font:inherit;min-height:38px;padding:9px 12px;max-width:100%; }
body.dc-layout :is(input,select,textarea):focus { border-color:var(--dc2-accent-ink); }
body.dc-layout input[type=checkbox] { accent-color:var(--dc2-accent);width:17px;height:17px; }
body.dc-layout :is(.data-table,.explorer-table) { background:var(--dc2-surface-card);color:var(--dc2-ink); }
body.dc-layout :is(.data-table,.explorer-table) th { background:var(--dc2-surface-sunken);color:var(--dc2-ink-soft);font:700 11px Manrope,Poppins,sans-serif;text-transform:uppercase;letter-spacing:.035em; }
body.dc-layout :is(.data-table,.explorer-table) :is(th,td) { border-color:var(--dc2-border-soft);padding:13px 12px; }
body.dc-layout :is(.data-table,.explorer-table) tbody tr:hover { background:var(--dc2-accent-soft); }
body.dc-layout .explorer-table tr.selected { background:var(--dc2-accent-soft-2); }
body.dc-layout #explorer { border:1px solid var(--dc2-border);border-radius:var(--dc2-radius-md);overflow:hidden;background:var(--dc2-surface-card);box-shadow:var(--dc2-shadow-card); }
body.dc-layout :is(.explorer-toolbar,.explorer-address,.explorer-status) { background:var(--dc2-surface-card);border-color:var(--dc2-border);padding:14px 18px; }
body.dc-layout .explorer-toolbar { gap:8px; }
body.dc-layout :is(.explorer-sidebar,.selection-bar) { background:var(--dc2-surface-sunken);border-color:var(--dc2-border); }
body.dc-layout :is(.explorer-sidebar a,.explorer-breadcrumb a) { color:var(--dc2-ink-soft); }
body.dc-layout .explorer-sidebar .active { color:var(--dc2-accent-ink);background:var(--dc2-accent-soft); }
body.dc-layout .explorer-content { min-width:0;overflow-x:auto; }
body.dc-layout :is(.folder-modal-content,.op-ubic-picker__content,.context-menu,.map-picker-modal) { background:var(--dc2-surface-card);color:var(--dc2-ink);border-color:var(--dc2-border);border-radius:var(--dc2-radius-md);box-shadow:var(--dc2-shadow-pop); }
body.dc-layout :is(.folder-modal-header,.folder-modal-footer) { background:var(--dc2-surface-sunken);border-color:var(--dc2-border); }
body.dc-layout .cloud-op-banner { background:var(--dc2-warn-soft);color:var(--dc2-warn);border-color:var(--dc2-border);margin-bottom:20px; }
body.dc-layout .cloud-op-banner strong { color:inherit; }
.cloud-dashboard { display:grid;gap:20px; }
.cloud-pagehead { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.cloud-pagehead p { color:var(--dc2-ink-soft);font-size:12px;margin-top:6px; }
.cloud-actions { display:flex;gap:8px;align-items:center;flex-wrap:wrap; }
.cloud-eyebrow { font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--dc2-accent-ink);margin-bottom:6px; }
.cloud-kpis { grid-template-columns:repeat(5,minmax(0,1fr)); }
.cloud-kpis .dc2-kpi__icon { background:var(--dc2-accent-soft);color:var(--dc2-accent-ink); }
.cloud-kpis .dc2-kpi__val { font-family:'IBM Plex Mono',monospace;line-height:1.3;font-size:23px;overflow-wrap:anywhere; }
.cloud-kpis .dc2-kpi__lbl { font-size:10px; }
.cloud-grid { display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:20px; }
.cloud-grid > * { min-width:0; }
.cloud-map { height:320px;border-radius:var(--dc2-radius-sm);background:var(--dc2-surface-sunken);overflow:hidden; }
.cloud-map-message { display:grid;place-items:center;height:100%;padding:28px;text-align:center;color:var(--dc2-ink-soft);font-size:13px; }
.cloud-note { font-size:11px;line-height:1.6;color:var(--dc2-ink-soft);margin-top:12px; }
.cloud-map-list { margin-top:12px;max-height:200px;overflow-y:auto;list-style:none; }
.cloud-map-list li { display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--dc2-border-soft);font-size:12px; }
.cloud-map-list a { color:var(--dc2-accent-ink);overflow-wrap:anywhere; }
.cloud-map-list button { border:0;background:transparent;color:var(--dc2-accent-ink);font:inherit;cursor:pointer;text-align:left; }
.cloud-map-list span { color:var(--dc2-ink-soft);flex:none; }
.cloud-usage-value { font:600 30px 'IBM Plex Mono',monospace;color:var(--dc2-ink);margin:4px 0; }
.cloud-meter { height:8px;width:100%;appearance:none;border:0;background:var(--dc2-border-soft);border-radius:var(--dc2-radius-pill);overflow:hidden; }
.cloud-meter::-webkit-progress-bar { background:var(--dc2-border-soft); }
.cloud-meter::-webkit-progress-value { background:var(--dc2-accent);border-radius:var(--dc2-radius-pill); }
.cloud-meter::-moz-progress-bar { background:var(--dc2-accent); }
.cloud-storage-list { list-style:none;margin-top:20px;display:grid;gap:13px; }
.cloud-storage-row { display:grid;grid-template-columns:1fr auto;gap:5px 12px;font-size:12px; }
.cloud-storage-row span { color:var(--dc2-ink-soft); }
.cloud-storage-row progress { grid-column:1/-1;height:4px; }
.cloud-chart { display:flex;align-items:flex-end;gap:3px;height:150px;border-bottom:1px solid var(--dc2-border);padding-top:16px; }
.cloud-chart-bar { flex:1;min-width:0;background:var(--dc2-accent);border-radius:3px 3px 0 0;position:relative; }
.cloud-chart-bar:hover,.cloud-chart-bar:focus-visible { background:var(--dc2-accent-strong); }
.cloud-chart-axis { display:flex;justify-content:space-between;color:var(--dc2-ink-faint);font:10px 'IBM Plex Mono',monospace;margin-top:8px; }
.cloud-chart-tip { color:var(--dc2-ink-soft);font-size:12px;min-height:20px;margin-top:8px; }
.cloud-scroll { overflow:auto;max-width:100%; }
.cloud-dashboard table { width:100%;border-collapse:collapse; }
.cloud-dashboard :is(td,th) { padding:12px 10px;text-align:left;border-bottom:1px solid var(--dc2-border-soft);font-size:12px; }
.cloud-dashboard th { font-size:10px;text-transform:uppercase;color:var(--dc2-ink-faint); }
.cloud-dashboard td a { color:var(--dc2-accent-ink);font-weight:600; }
.cloud-dashboard td:first-child { max-width:300px;overflow-wrap:anywhere; }
.cloud-error { padding:16px 20px;border-radius:var(--dc2-radius-sm);background:var(--dc2-bad-soft);color:var(--dc2-bad); }
.cloud-loading { padding:24px;color:var(--dc2-ink-soft); }
.cloud-panel-spaced { margin-top:20px; }
.cloud-search { flex:1;max-width:300px;min-width:160px; }
@media(max-width:1200px) { .cloud-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:900px) { .cloud-grid { grid-template-columns:minmax(0,1fr); }.cloud-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.cloud-map { height:280px; }.cloud-dashboard .dc2-panel { padding:18px 16px; }.cloud-chart { gap:2px; }.explorer-sidebar { display:none; }.cloud-actions { width:100%; }.cloud-actions .dc2-btn { justify-content:center;flex:1; } }
@media(max-width:420px) { .cloud-kpis .dc2-kpi { padding:12px;gap:8px; }.cloud-kpis .dc2-kpi__icon { width:28px;height:28px; }.cloud-kpis .dc2-kpi__val { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;animation:none!important;transition:none!important; } }
.cloud-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; }
.cloud-explorer-heading { margin-bottom:20px; }
.explorer-address { display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
.explorer-address .explorer-breadcrumb { flex:1;min-width:140px; }
.cloud-search input { width:100%; }
body[data-admin-cloud="0"] #explorer :is([data-action="new-folder"],[data-action="toggle-upload"],[data-action="paste"],[data-action="cut"],[data-action="copy"],[data-action="delete-selected"],[data-action="rename-folder"],[data-action="delete-folder"],[data-action="delete-file"],a[href^="/archivos/edit.php"]) { display:none!important; }
body.dc-layout :is(.galeria-card,.galeria-tile,.admin-card,.mi-cuenta-card,.zonas-filtros,.mapa-list-item,.tree-row) { background:var(--dc2-surface-card);border-color:var(--dc2-border);border-radius:var(--dc2-radius-md);color:var(--dc2-ink);box-shadow:var(--dc2-shadow-card); }
body.dc-layout :is(.galeria-card-title,.galeria-tile-name,.admin-card__title,.mi-cuenta-card__title,.tree-name) { color:var(--dc2-ink);font-family:Manrope,Poppins,sans-serif; }
body.dc-layout :is(.galeria-card-count,.admin-card__desc,.mi-cuenta-card__hint,.zonas-filtros-field span,.mapa-list-item small,.tree-desc,.tree-meta,.sidebar-title) { color:var(--dc2-ink-soft); }
body.dc-layout :is(.galeria-card:hover,.galeria-tile:hover,.admin-card:hover,.mapa-list-item:hover,.tree-row:hover) { background:var(--dc2-accent-soft);border-color:var(--dc2-accent-ink); }
body.dc-layout :is(.galeria-card-image,.galeria-tile-image,.admin-card__icon) { background-color:var(--dc2-accent-soft);color:var(--dc2-accent-ink); }
body.dc-layout .btn-icon { color:var(--dc2-accent-ink);border-radius:var(--dc2-radius-sm);min-width:32px;min-height:32px; }
body.dc-layout .btn-icon img { width:18px;height:18px;object-fit:contain; }
body.dc-layout .zonas-filtros { padding:18px 20px; }
body.dc-layout .tree-row { padding:12px 16px;margin-bottom:6px; }
body.dc-layout .mapa-sidebar { background:var(--dc2-surface-sunken); }
/* Grid children must be allowed to shrink below the intrinsic width of tables. */
.cloud-dashboard { grid-template-columns:minmax(0,1fr); }
.cloud-dashboard > *, [data-dashboard-content] > * { min-width:0; }
.cloud-dashboard .dc2-panel__head { flex-wrap:wrap; }
.cloud-dashboard .dc2-panel__head > div { min-width:0; }
@media(max-width:900px) { .cloud-dashboard .dc2-panel__head .cloud-actions { gap:8px; }.cloud-dashboard .dc2-panel__head select { flex:1;min-width:0; }.cloud-dashboard .cloud-note { overflow-wrap:anywhere; } }
body.dc-layout fieldset { min-width:0;max-width:100%;border-color:var(--dc2-border);border-radius:var(--dc2-radius-md); }
body.dc-layout .form-row-split > div { min-width:0; }
@media(max-width:560px) { body.dc-layout .form-row-split { flex-direction:column; }body.dc-layout .page-header { flex-wrap:wrap; }body.dc-layout legend { max-width:100%; } }
body.dc-layout .quota-fill { background:var(--dc2-accent); }
body.dc-layout .explorer-toolbar [aria-hidden="true"] { display:none; }
.cloud-map-zone { background:transparent;border:0;color:var(--dc2-ink);font:inherit;text-align:left;cursor:pointer;width:100%;padding:0; }
.mapa-list-item a { font-size:12px;color:var(--dc2-accent-ink); }
body.dc-layout :is(.mapa-sidebar label span,#mapa-filtros-count) { color:var(--dc2-ink-soft); }
body.dc-layout :is(.row-name,.row-name-text) { color:var(--dc2-ink); }
body.dc-layout :is(.explorer-status,.quota-text,.form-hint,.mapa-empty,.page-header__sub,.mi-cuenta-card label > span) { color:var(--dc2-ink-soft); }
body.dc-layout .ubic-portada-drop { background:var(--dc2-surface-sunken);border-color:var(--dc2-border);border-radius:var(--dc2-radius-sm); }
body.dc-layout .ubic-portada-empty { color:var(--dc2-ink-soft); }
@media(max-width:560px) {
 .cloud-dashboard .dc2-panel__head .cloud-actions { display:grid;grid-template-columns:auto minmax(0,1fr); }
 .cloud-kpis .dc2-kpi:last-child { grid-column:1/-1; }
}

/* Read-only project folders reuse the explorer table and navigation. */
.cloud-project-library{min-width:0;overflow:hidden;}
.cloud-project-library__scroll{overflow-x:auto;max-width:100%;}
.cloud-project-library .explorer-table{min-width:650px;width:100%;table-layout:fixed;}
.cloud-project-library .explorer-table th:first-child{width:46%;}
.cloud-project-library .explorer-table th:last-child{width:48px;}
.cloud-project-folder,.cloud-project-file{display:flex;align-items:center;gap:9px;min-width:0;color:var(--dc2-accent-ink);text-decoration:none;}
.cloud-project-folder span,.cloud-project-file span{overflow-wrap:anywhere;}
.cloud-flight-reference{display:block;color:var(--dc2-ink-faint);font-size:10px;margin-top:3px;}
.cloud-project-folder .dc2-ic,.cloud-project-file .dc2-ic{width:20px;height:20px;flex:none;}
.cloud-project-preview{display:flex;align-items:center;justify-content:center;width:40px;height:32px;flex:none;}
.cloud-project-preview img{width:40px;height:32px;object-fit:cover;border-radius:5px;}
.cloud-project-preview [hidden]{display:none;}
.cloud-project-pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px;flex-wrap:wrap;font-size:12px;color:var(--dc2-ink-soft);}
.cloud-project-library .cloud-note{margin:16px;}

.cloud-project-library .explorer-breadcrumb li+li::before{content:"/";color:var(--dc2-ink-faint);padding:0 5px;}

/* One library: the same neutral project surface with an Explorer folder tree. */
.cloud-unified-library{display:grid;grid-template-columns:250px minmax(0,1fr);padding:0;overflow:hidden;min-height:560px}
.cloud-library-tree{padding:16px 10px;border-right:1px solid var(--dc2-border);background:var(--dc2-panel-bg);font-size:12px;overflow:auto;max-height:calc(100dvh - 180px)}
.cloud-library-tree ul{padding-left:15px;list-style:none;margin:0}.cloud-library-tree li{margin:3px 0}.cloud-library-tree summary{padding:10px 5px;cursor:pointer;color:var(--dc2-ink);font-weight:700}.cloud-library-tree a{display:inline-block;max-width:100%;padding:8px 5px;color:var(--dc2-ink-soft);text-decoration:none;overflow-wrap:anywhere;border-radius:6px}.cloud-library-tree a:hover,.cloud-library-tree a[aria-current]{background:var(--dc2-accent-soft);color:var(--dc2-accent-ink)}.cloud-tree-home{font-weight:700;display:block!important;margin:6px 0}.cloud-library-main{min-width:0}.cloud-library-tools{display:flex;gap:10px;padding:14px 16px;flex-wrap:wrap;border-bottom:1px solid var(--dc2-border);align-items:center}.cloud-library-tools label{flex:1;min-width:160px}.cloud-library-tools input,.cloud-folder-dialog input,.cloud-folder-dialog select{width:100%;padding:10px 12px;background:var(--dc2-surface-card);color:var(--dc2-ink);border:1px solid var(--dc2-border);border-radius:8px;min-height:42px}.cloud-unified-library .explorer-table th:last-child{width:220px}.cloud-unified-library .explorer-table td:last-child{white-space:normal}.cloud-unified-library .explorer-table td:last-child .dc2-btn{margin:2px}.cloud-folder-dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--dc2-border);border-radius:14px;background:var(--dc2-surface-card);color:var(--dc2-ink);padding:24px}.cloud-folder-dialog::backdrop{background:#0008}.cloud-folder-dialog label{display:block;margin:16px 0}.cloud-folder-dialog label[hidden]{display:none}.cloud-folder-dialog form>div{display:flex;justify-content:flex-end;gap:10px}.cloud-folder-dialog p{font-size:13px;line-height:1.6}.cloud-unified-library tr[hidden]{display:none!important}.cloud-unified-library.is-grid .explorer-table thead{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.cloud-unified-library.is-grid .explorer-table tbody{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));padding:14px;gap:12px}.cloud-unified-library.is-grid .explorer-table tr{display:flex;flex-wrap:wrap;align-content:flex-start;border:1px solid var(--dc2-border);border-radius:10px;padding:12px}.cloud-unified-library.is-grid .explorer-table td{display:block;border:0;padding:6px;font-size:12px}.cloud-unified-library.is-grid .explorer-table td:first-child,.cloud-unified-library.is-grid .explorer-table td:last-child{width:100%}.cloud-unified-library.is-grid .cloud-project-preview,.cloud-unified-library.is-grid .cloud-project-preview img{width:64px;height:52px}.cloud-unified-library a:focus-visible,.cloud-unified-library summary:focus-visible{outline:2px solid var(--dc2-accent-ink);outline-offset:2px}.cloud-unified-library .cloud-note[hidden]{display:none}
.dc2-rail__logo--dc,.dc2-rail__logo--fdc{filter:none!important}
@media(max-width:900px){.cloud-unified-library{grid-template-columns:190px minmax(0,1fr)}.cloud-library-tree{max-height:65dvh}.cloud-unified-library .explorer-table th:last-child{width:120px}}
@media(max-width:600px){.cloud-unified-library{grid-template-columns:1fr}.cloud-library-tree{max-height:210px;border-right:0;border-bottom:1px solid var(--dc2-border)}.cloud-unified-library .explorer-table{min-width:600px}.cloud-unified-library.is-grid .explorer-table{min-width:0}.cloud-library-tools{padding:12px}.cloud-unified-library .explorer-address{overflow:auto}.cloud-library-tree a{min-height:40px}}
.cloud-tree-row{display:flex;align-items:center;gap:2px}.cloud-tree-row>button{border:0;background:transparent;color:var(--dc2-ink-soft);width:28px;min-width:28px;height:36px;display:grid;place-items:center;border-radius:5px;cursor:pointer}.cloud-tree-row>button:hover{background:var(--dc2-accent-soft)}.cloud-tree-row>button[aria-expanded=true] svg{transform:rotate(90deg)}.cloud-tree-row svg{width:16px;height:16px}.cloud-library-tree ul[hidden]{display:none}
.folder-modal [hidden]{display:none!important}
