/* ============================================================
   Gestor documental — estilo Drive, modo claro
   ============================================================ */

:root{
  --bg:#ffffff;
  --canvas:#ffffff;
  --panel:#f7f8fa;
  --text:#1f1f22;
  --muted:#5f6368;
  --faint:#9aa0a6;
  --border:#e4e6e9;
  --border-2:#d6d9dd;
  --hover:#f1f3f4;
  --accent:#1a73e8;
  --accent-soft:#e8f0fe;
  --pdf:#ea4335; --txt:#4285f4; --xlsx:#0f9d58;
  --green:#188038; --green-bg:#e6f4ea;
  --amber:#b06000; --amber-bg:#fef3e0;
  --red:#c5221f;   --red-bg:#fce8e6;
  --radius:12px;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:14px;line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;color:inherit;cursor:pointer}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic-big{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.45}

/* ---------- Estructura ---------- */
.app{display:grid;grid-template-columns:236px minmax(0,1fr);height:100vh}

/* ---------- Rail ---------- */
.rail{border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px}
.brand{padding:4px 10px 12px}
.mark{display:block;width:24px;height:24px;border-radius:8px;background:var(--accent)}
.cta{
  display:flex;align-items:center;justify-content:center;gap:9px;height:46px;margin:4px 2px 14px;padding:0 18px;
  border-radius:23px;border:1px solid var(--border);background:#fff;
  color:var(--text);font-size:14px;font-weight:600;width:auto;
  box-shadow:0 1px 3px rgba(60,64,67,.12);
}
.cta:hover{background:var(--hover);box-shadow:0 1px 4px rgba(60,64,67,.2)}

.rail-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);padding:16px 12px 6px;font-weight:600}
.nav{display:flex;flex-direction:column;gap:2px}
.nav-item{
  display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;
  padding:9px 12px;border-radius:22px;color:var(--muted);font-size:14px;transition:background .12s;
}
.nav-item span:not(.dot):not(.count){flex:1}
.nav-item:hover{background:var(--hover)}
.nav-item.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.count{font-family:var(--mono);font-size:11px;color:var(--faint);font-style:normal}
.nav-item.is-active .count{color:var(--accent)}
.dot{width:10px;height:10px;border-radius:3px;flex:none}
.dot-pdf{background:var(--pdf)}.dot-txt{background:var(--txt)}.dot-xlsx{background:var(--xlsx)}

.rail-foot{margin-top:auto;padding:12px}
.store-bar{height:5px;border-radius:4px;background:var(--border);overflow:hidden}
.store-bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.store-txt{margin-top:8px;font-size:11.5px;color:var(--muted)}

/* ---------- Barra superior ---------- */
.main{display:flex;flex-direction:column;min-width:0}
.bar{display:flex;align-items:center;gap:12px;padding:14px 22px 12px}
.search{
  display:flex;align-items:center;gap:10px;flex:1;max-width:640px;
  background:var(--panel);border:1px solid transparent;border-radius:26px;
  padding:0 16px;height:44px;color:var(--muted);transition:background .15s,box-shadow .15s;
}
.search:focus-within{background:#fff;box-shadow:0 1px 6px rgba(32,33,36,.16)}
.search input{border:0;outline:0;background:transparent;flex:1;color:var(--text);font-size:15px}
.search input::placeholder{color:var(--muted)}

.seg{display:flex;background:var(--panel);border-radius:22px;padding:3px;margin-left:auto}
.seg-btn{border:0;background:transparent;color:var(--muted);width:36px;height:32px;border-radius:18px;display:grid;place-items:center}
.seg-btn.is-active{background:#fff;color:var(--accent);box-shadow:0 1px 2px rgba(60,64,67,.2)}
.ghost{height:38px;padding:0 15px;border-radius:20px;border:1px solid var(--border);background:#fff;color:var(--muted);font-size:13px}
.ghost:hover{background:var(--hover);color:var(--text)}

/* ---------- Breadcrumb ---------- */
.crumb{display:flex;align-items:center;gap:6px;padding:6px 24px 12px;font-size:20px;color:var(--text);font-weight:500}
.crumb button{border:0;background:transparent;font-size:20px;color:var(--muted);padding:4px 8px;border-radius:8px;font-weight:500}
.crumb button:hover{background:var(--hover)}
.crumb .sep{color:var(--faint);font-size:16px}
.crumb .here{padding:4px 8px}

/* ---------- Contenido ---------- */
.content{flex:1;overflow:auto;padding:2px 24px 28px}
.group{margin-bottom:26px}
.group[hidden]{display:none}
.group-label{font-size:13px;font-weight:600;color:var(--text);margin:2px 0 14px}

/* ---------- Carpetas ---------- */
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.folder{
  display:flex;align-items:center;gap:12px;padding:0 14px;height:52px;
  background:var(--panel);border:1px solid transparent;border-radius:12px;cursor:pointer;transition:background .12s;
}
.folder:hover{background:var(--hover)}
.folder svg{width:22px;height:22px;flex:none}
.folder b{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.folder .fcount{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted)}

/* ---------- Iconos de archivo ---------- */
.fico{width:26px;height:26px;flex:none;display:block}
.fico-lg{width:52px;height:52px}

/* ---------- Archivos: CUADRÍCULA ---------- */
.content.is-grid .cols{display:none}
.content.is-grid .files{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.content.is-grid .fitem{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);
  border-radius:12px;overflow:hidden;cursor:pointer;transition:box-shadow .12s,border-color .12s;
}
.content.is-grid .fitem:hover{box-shadow:0 1px 6px rgba(32,33,36,.15)}
.content.is-grid .fitem.is-sel{border-color:var(--accent);background:var(--accent-soft)}
.content.is-grid .thumb{
  height:120px;background:var(--panel);display:grid;place-items:center;border-bottom:1px solid var(--border);
}
.content.is-grid .fitem.is-sel .thumb{background:#dbe8fc}
.content.is-grid .fmeta{display:flex;align-items:center;gap:10px;padding:11px 12px}
.content.is-grid .fmeta .fico{width:20px;height:20px}
.content.is-grid .fmeta b{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.content.is-grid .fmeta .fsub{display:none}

/* ---------- Archivos: LISTA ---------- */
.cols{
  display:grid;grid-template-columns:minmax(0,2.6fr) minmax(0,1.7fr) 120px 90px;gap:16px;
  padding:6px 14px 8px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);
}
.ta-r{text-align:right}
.content.is-list .files{display:flex;flex-direction:column}
.content.is-list .fitem{
  display:grid;grid-template-columns:minmax(0,2.6fr) minmax(0,1.7fr) 120px 90px;gap:16px;align-items:center;
  padding:9px 14px;border-radius:10px;border:1px solid transparent;cursor:pointer;
}
.content.is-list .fitem:hover{background:var(--hover)}
.content.is-list .fitem.is-sel{background:var(--accent-soft)}
.content.is-list .thumb{display:none}
.content.is-list .fmeta{display:flex;align-items:center;gap:12px;min-width:0}
.content.is-list .fmeta b{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.content.is-list .fmeta .fsub{display:none}
.fcli{min-width:0}
.fcli b{display:block;font-weight:400;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fcli small{color:var(--muted);font-size:11.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fper{font-size:12.5px;color:var(--muted)}
.fsize{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right}
.content.is-grid .fcli,.content.is-grid .fper,.content.is-grid .fsize{display:none}

/* etiqueta de incidencias */
.inc{display:inline-block;margin-left:6px;font-family:var(--mono);font-size:10px;color:var(--amber);background:var(--amber-bg);padding:1px 5px;border-radius:5px;vertical-align:middle}

/* ---------- Estado vacío ---------- */
.vacio{display:grid;place-items:center;padding:56px 20px}
.vacio[hidden]{display:none}
.vacio-msg{color:var(--faint);font-size:14px}

/* ---------- Panel de detalle ---------- */
.detail{border-left:1px solid var(--border);overflow:auto}
.detail-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);text-align:center;padding:24px}
.detail-empty small{color:var(--faint)}
.detail-body{padding:22px 22px 30px}
.preview{border:1px solid var(--border);border-radius:12px;background:#fff;height:200px;overflow:hidden;position:relative;margin-bottom:20px}
.pv-txt{padding:16px;font-family:var(--mono);font-size:10.5px;color:var(--muted);white-space:pre;line-height:1.7}
.pv-sheet{width:100%;border-collapse:collapse;font-size:10.5px;font-family:var(--mono)}
.pv-sheet td,.pv-sheet th{border:1px solid var(--border);padding:4px 7px;text-align:left;color:var(--muted)}
.pv-sheet th{background:var(--panel);color:var(--text);font-weight:600}
.pv-pdf{padding:18px;display:flex;flex-direction:column;gap:7px}
.pv-pdf i{display:block;height:7px;border-radius:3px;background:var(--border)}
.pv-pdf i:nth-child(1){width:60%;height:11px;background:var(--border-2)}
.pv-pdf i:nth-child(4){width:80%}.pv-pdf i:nth-child(6){width:45%}
.pv-fade{position:absolute;left:0;right:0;bottom:0;height:44px;background:linear-gradient(transparent,#fff)}

.d-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.d-name{font-size:16px;font-weight:600;margin:0;word-break:break-word}
.d-sub{color:var(--muted);font-family:var(--mono);font-size:11px;margin-top:2px}
.meta{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.meta div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}
.meta dt{color:var(--muted)}
.meta dd{margin:0;text-align:right;font-weight:500}
.meta dd.mono{font-family:var(--mono);font-size:12px;font-weight:400}
.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 8px;border-radius:99px;font-size:11.5px;font-weight:600}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.completado{background:var(--green-bg);color:var(--green)}
.pill.procesando{background:var(--amber-bg);color:var(--amber)}
.pill.error{background:var(--red-bg);color:var(--red)}
.d-actions{display:flex;gap:8px;margin-top:20px}
.d-actions button{flex:1;height:40px;border-radius:20px;border:1px solid var(--border);background:#fff;font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:7px}
.d-actions .primary{background:var(--accent);border-color:var(--accent);color:#fff}
.d-actions button:hover{filter:brightness(.97)}

/* ---------- Panel lateral (drawer) ---------- */
.drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:55;width:380px;max-width:92vw;
  background:#fff;border-left:1px solid var(--border);
  box-shadow:-14px 0 44px -24px rgba(0,0,0,.4);
  transform:translateX(100%);transition:transform .22s ease;overflow:auto;
}
.drawer.open{transform:none}

/* ---------- Modal ---------- */
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px}
.modal[hidden]{display:none}
.mask{position:absolute;inset:0;background:rgba(32,33,36,.5)}
.sheet{
  position:relative;background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:88vh;
  overflow:auto;box-shadow:0 24px 64px -16px rgba(0,0,0,.45);animation:pop .16s ease;
}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.sheet-head{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff}
.sheet-head h3{margin:0;font-size:15.5px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.x{border:0;background:transparent;width:34px;height:34px;border-radius:50%;color:var(--muted);font-size:14px;display:grid;place-items:center;flex:none}
.x:hover{background:var(--hover);color:var(--text)}
.sheet-body{padding:18px}
.sheet-body .preview{height:340px;overflow:auto}
.sheet-body .d-actions{margin-top:18px}
.pv-frame{width:100%;height:100%;border:0;display:block}
.pv-load{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:13px;padding:20px}

/* campos del formulario de subida */
.field{margin-bottom:12px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.field input{width:100%;height:38px;border:1px solid var(--border);border-radius:9px;padding:0 12px;font-size:14px;background:#fff;color:var(--text)}
.field input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.upmsg{color:var(--red);font-size:12.5px;min-height:16px;margin:8px 2px 0}

/* zona de subida */
.upzone{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;color:var(--muted);border:2px dashed var(--border-2);border-radius:14px;padding:34px 20px;cursor:pointer;transition:border-color .12s,background .12s}
.upzone:hover{background:var(--panel)}
.upzone.drag{border-color:var(--accent);background:var(--accent-soft)}
.upzone p{margin:0}.upzone small{color:var(--faint)}
.uplist{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:190px;overflow:auto}
.uplist li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px}
.uplist li:hover{background:var(--panel)}
.uplist .fico{width:22px;height:22px}
.upn{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ups{font-family:var(--mono);font-size:11px;color:var(--muted)}

/* ---------- Carpetas en modo lista ---------- */
.content.is-list .folders{grid-template-columns:1fr;gap:3px}

/* ---------- Paginador ---------- */
.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px 0 6px}
.pager[hidden]{display:none}
.pg{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--text);font-size:16px;display:grid;place-items:center}
.pg:disabled{color:var(--faint);cursor:default}
.pg:not(:disabled):hover{background:var(--hover)}
.pg-info{font-size:13px;color:var(--muted);font-family:var(--mono)}

/* ---------- Responsive ---------- */
@media (max-width:1080px){.app{grid-template-columns:220px minmax(0,1fr)}}
@media (max-width:720px){
  .app{grid-template-columns:1fr}.rail{display:none}
  .cols,.content.is-list .fitem{grid-template-columns:minmax(0,2fr) 90px}
  .cols span:nth-child(2),.cols span:nth-child(3){display:none}
  .fcli,.fper{display:none}
}
