:root{--bg:#eee8e1;--paper:#fbf8f4;--paper2:#f4eee8;--ink:#2b2825;--muted:#786f68;--line:#d9ccc0;--copper:#a86d49;--copper2:#c98d65;--deep:#55463c;--ok:#4d8665;--danger:#a54b43;--shadow:0 18px 55px rgba(65,48,37,.12)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}body{background:radial-gradient(circle at 12% 8%,#fff 0,rgba(255,255,255,.4) 22%,transparent 45%),linear-gradient(135deg,#e8dfd6,#f7f3ee 52%,#e9ddd2)}input,select,button{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:32px;position:relative;overflow:hidden}.login:before,.login:after{content:"";position:absolute;border-radius:999px;filter:blur(2px);opacity:.55;pointer-events:none}.login:before{width:520px;height:520px;left:-210px;top:-170px;background:radial-gradient(circle,#d6a27d55,transparent 68%)}.login:after{width:620px;height:620px;right:-260px;bottom:-260px;background:radial-gradient(circle,#9f765844,transparent 68%)}.loginCard{position:relative;z-index:1;width:min(520px,100%);background:rgba(255,252,248,.88);border:1px solid rgba(176,139,111,.3);border-radius:28px;padding:46px 48px 42px;box-shadow:var(--shadow);backdrop-filter:blur(18px)}.loginCard img{width:min(410px,100%);height:auto;display:block;margin:0 auto 34px;mix-blend-mode:multiply}.eyebrow{color:var(--copper);letter-spacing:.22em;font-size:11px;font-weight:800}.loginCard h1,.hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;margin:10px 0;color:#302a26}.loginCard h1{font-size:38px}.loginCard p,.hero p,.toolbar p{color:var(--muted)}.loginCard label{display:block;margin:28px 0 8px;font-weight:650;color:#4d453f}.loginCard input,.filters input,.filters select{width:100%;background:#fffdfa;border:1px solid #d4c2b4;color:var(--ink);border-radius:13px;padding:14px 15px;outline:none;box-shadow:inset 0 1px 2px #4b36200a}.loginCard input:focus,.filters input:focus,.filters select:focus{border-color:var(--copper);box-shadow:0 0 0 3px #b97c5420}.loginCard button{width:100%;margin-top:14px;padding:15px;border:0;border-radius:13px;background:linear-gradient(135deg,#c78c64,#8f5c3d);color:#fff;font-weight:800;box-shadow:0 9px 24px #8c5b3b30}.msg{min-height:22px;color:#a84e45;margin-top:12px;font-size:13px}main{max-width:1500px;margin:auto;padding:0 30px 38px}header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(250,247,243,.52);margin:0 -30px;padding:0 30px;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:20px}.brand img{width:300px;height:62px;object-fit:contain;object-position:left center;mix-blend-mode:multiply}.brand span{border-left:1px solid #cdb6a5;padding-left:20px;color:var(--copper);letter-spacing:.2em;font-size:11px;font-weight:800}.headerActions{display:flex;align-items:center;gap:10px}.status{color:var(--ok);font-size:12px;font-weight:700}.ghost{background:#fffaf6;color:#665b53;border:1px solid #d7c7ba;border-radius:11px;padding:10px 14px}.ghost:hover{background:#fff}.hero{display:flex;justify-content:space-between;align-items:end;padding:42px 2px 28px}.hero h1{font-size:48px;margin-bottom:6px}.hero p{margin:0}.updated{text-align:right;color:var(--muted);font-size:12px;line-height:1.7}.updated strong{color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.stats article{background:rgba(255,252,248,.84);border:1px solid #ddd0c5;border-radius:18px;padding:23px;box-shadow:0 8px 24px #5c45320b}.stats span{display:block;color:#7d7067;font-size:10px;letter-spacing:.12em;font-weight:750}.stats strong{display:block;font-family:Georgia,serif;font-size:36px;margin-top:10px;color:#493b32}.panel{background:rgba(255,252,248,.86);border:1px solid #d9cdc3;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.toolbar{padding:23px;display:flex;justify-content:space-between;gap:24px;align-items:end;border-bottom:1px solid #e1d6cd}.toolbar h2{margin:0;font-size:19px}.toolbar p{margin:5px 0 0;font-size:12px}.toolbarRight{display:flex;align-items:end;gap:10px}.filters{display:grid;grid-template-columns:minmax(260px,420px) 190px;gap:10px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th{text-align:left;color:#8b7d73;font-size:10px;letter-spacing:.12em;padding:14px 18px;border-bottom:1px solid #e2d8d0;background:#f8f3ee}td{padding:16px 18px;border-bottom:1px solid #ebe2da;font-size:13px;color:#4c4641;vertical-align:top}td code{color:#9b6241;font-size:11px}.badge{display:inline-block;padding:6px 9px;border-radius:999px;background:#edf5ee;border:1px solid #c8dccb;color:#4d7958;font-size:10px;letter-spacing:.08em}.file{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty{text-align:center;color:var(--muted);padding:50px}footer{padding:34px 0 4px;text-align:center}footer img{display:block;width:min(520px,82vw);height:50px;object-fit:contain;margin:auto;opacity:.65;filter:grayscale(1)}footer small{display:block;margin-top:16px;color:#8b8077;letter-spacing:.12em;font-size:9px}.danger{background:#a14c43;color:#fff;border:1px solid #95443d;border-radius:11px;padding:13px 14px;white-space:nowrap}.danger:hover{filter:brightness(1.04)}.danger:disabled{opacity:.55;cursor:wait}dialog{border:0;padding:0;background:transparent}dialog::backdrop{background:#493b3270;backdrop-filter:blur(5px)}.dialogCard{width:min(480px,calc(100vw - 32px));background:#fffaf6;border:1px solid #d8c7ba;border-radius:20px;padding:27px;color:var(--ink);box-shadow:0 24px 80px #5e44352f}.dialogCard h3{margin:0 0 12px;font-family:Georgia,serif;font-size:25px;font-weight:500}.dialogCard p{color:var(--muted);line-height:1.55}.dialogCard .warning{color:#a26042}.dialogActions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.dialogActions .ghost{background:#fff}.dialogActions .danger{padding:10px 13px}@media(max-width:1000px){.toolbarRight{width:100%;align-items:stretch;flex-direction:column}.toolbarRight .filters{width:100%;grid-template-columns:1fr 190px}.brand img{width:240px}}@media(max-width:800px){.login{padding:18px}.loginCard{padding:34px 24px}.loginCard h1{font-size:32px}main{padding:0 14px 24px}header{height:auto;padding:16px 14px;margin:0 -14px;align-items:flex-start}.brand img{width:190px;height:48px}.brand span{display:none}.status{display:none}.hero{padding:28px 2px 20px}.hero h1{font-size:38px}.updated{display:none}.stats{grid-template-columns:1fr 1fr}.stats article{padding:17px}.stats strong{font-size:29px}.toolbar{align-items:stretch;flex-direction:column}.toolbarRight .filters{grid-template-columns:1fr}.headerActions{gap:6px}.ghost{padding:9px 10px}.danger{width:100%}}

/* v1.4.1 — acceso más compacto, sin alterar dashboard */
@media (min-width:801px){
  .loginCard{width:min(430px,100%);border-radius:24px;padding:32px 36px 28px}
  .loginCard img{width:min(330px,100%);margin-bottom:24px}
  .loginCard h1{font-size:32px;margin:8px 0}
  .loginCard p{margin:8px 0 0;font-size:14px}
  .loginCard label{margin:20px 0 7px;font-size:14px}
  .loginCard input{padding:12px 13px;border-radius:11px}
  .loginCard button{margin-top:12px;padding:12px;border-radius:11px}
  .msg{min-height:18px;margin-top:9px;font-size:12px}
}

/* v1.5 — herramientas docentes */
.filtersV15{grid-template-columns:minmax(250px,1.5fr) 180px 165px 160px}.toolButtons{display:flex;gap:10px;justify-content:flex-end}.sortBtn{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;padding:0;cursor:pointer}.sortBtn:hover{color:var(--copper)}.reviewBtn{border:1px solid #d8c8ba;background:#fff8f1;color:#986244;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:800;letter-spacing:.08em}.reviewBtn.reviewed{background:#edf5ee;border-color:#c8dccb;color:#4d7958}.mini{padding:7px 9px;font-size:11px;white-space:nowrap}.detailCard{width:min(680px,calc(100vw - 32px))}.detailHead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.detailHead h3{margin-top:7px}.detailGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.detailGrid>div{background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:13px}.detailGrid span,.detailFiles>span{display:block;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px}.detailGrid strong{font-size:14px}.detailFiles{margin-top:18px}.fileRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.fileRow>span{overflow-wrap:anywhere;font-size:13px}.fileRow button{flex:none}@media(max-width:1180px){.filtersV15{grid-template-columns:1fr 1fr}.toolButtons{justify-content:stretch}.toolButtons button{flex:1}}@media(max-width:800px){.filtersV15{grid-template-columns:1fr}.toolButtons{flex-direction:column}.detailGrid{grid-template-columns:1fr}}

/* v1.6 — dashboard compacto + limpieza manual segura de Blob */
@media (min-width:801px){
  main{max-width:1540px;padding:0 24px 24px}
  header{height:72px;margin:0 -24px;padding:0 24px}
  .brand{gap:14px}.brand img{width:238px;height:48px}.brand span{padding-left:14px}
  .hero{padding:24px 2px 16px}.hero h1{font-size:38px;margin:5px 0 3px}.hero p{font-size:12px}
  .stats{gap:10px;margin-bottom:12px}.stats article{padding:14px 17px;border-radius:14px}.stats strong{font-size:28px;margin-top:5px}
  .panel{border-radius:16px}.toolbar{padding:14px 16px;gap:14px}.toolbar h2{font-size:17px}.toolbar p{margin-top:3px}
  .toolbarRight{gap:8px}.filtersV15{grid-template-columns:minmax(220px,1.45fr) 155px 145px 145px;gap:7px}
  .filters input,.filters select{padding:10px 11px;border-radius:10px;font-size:12px}.toolButtons{gap:7px}.toolButtons .ghost,.toolButtons .danger{padding:10px 11px;font-size:11px}
  th{padding:10px 13px;font-size:9px}td{padding:10px 13px;font-size:12px}.file{max-width:320px}.reviewBtn{padding:5px 8px}
  footer{padding:20px 0 2px}footer img{height:38px}
}
.fileActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.deleteBlobBtn{color:#965247;border-color:#d8b8aa;background:#fff8f4}

/* v1.7 Compact UI */
:root{--ui-font:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;--display-font:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif}
html,body{font-family:var(--ui-font);font-size:14px;letter-spacing:-.008em}
header{height:76px}.brand{gap:14px}.brand img{width:248px;height:50px}.brand span{padding-left:14px;font-size:9px;letter-spacing:.18em}.headerActions{gap:7px}.status{font-size:11px}.ghost,.danger,.storageBtn{border-radius:9px;padding:8px 11px;font-size:11px;font-weight:650}
.hero{padding:24px 2px 17px}.hero h1,.loginCard h1{font-family:var(--display-font);font-weight:600;letter-spacing:-.035em}.hero h1{font-size:35px;margin:5px 0 3px}.hero p{font-size:12px}.eyebrow{font-size:9px;letter-spacing:.18em}.updated{font-size:10px;line-height:1.5}
.stats{gap:10px;margin-bottom:12px}.stats article{border-radius:13px;padding:13px 15px}.stats span{font-size:8.5px;letter-spacing:.1em}.stats strong{font-family:var(--display-font);font-size:27px;font-weight:600;margin-top:5px;letter-spacing:-.04em}
.panel{border-radius:15px}.toolbar{padding:12px 14px;gap:10px}.toolbar h2{font-size:15px;font-weight:650;letter-spacing:-.02em}.toolbar p{font-size:10px}.toolbarRight{gap:7px}.filtersV15{grid-template-columns:minmax(210px,1.35fr) 145px 135px 135px;gap:6px}.filters input,.filters select{border-radius:9px;padding:9px 10px;font-size:11px}.toolButtons{gap:6px}.storageBtn{background:#f4e7dc;color:#815438;border:1px solid #d6b59d;white-space:nowrap}.storageBtn:hover{background:#edd9c9}.subtleDanger{background:#fff7f4;color:#9b4d45;border-color:#dfbdb7}
table{min-width:850px}th{font-size:8.5px;letter-spacing:.09em;padding:9px 13px}td{padding:10px 13px;font-size:11.5px}.file{max-width:320px}.badge,.reviewBtn{font-size:8.5px;padding:5px 7px}.mini{font-size:10px;padding:6px 8px}.dialogCard h3{font-family:var(--display-font);font-weight:600;letter-spacing:-.025em}.detailGrid>div{padding:10px}.detailGrid strong{font-size:12px}.fileRow{padding:8px 0}.fileRow>span{font-size:11.5px}
.storageCard{width:min(760px,calc(100vw - 32px));max-height:82vh;display:flex;flex-direction:column}.storageCard .detailHead p{margin:5px 0 0;font-size:11px;max-width:600px}.storageTools{display:flex;justify-content:space-between;align-items:center;margin:14px 0 8px;padding:8px 10px;background:var(--paper2);border:1px solid var(--line);border-radius:9px;font-size:10px;color:var(--muted)}.checkAll{display:flex;align-items:center;gap:7px;font-weight:650;color:var(--ink)}.storageList{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.storageRow{display:grid;grid-template-columns:22px minmax(0,1fr) 90px 110px;gap:9px;align-items:center;padding:9px 11px;border-bottom:1px solid #eee5dd;font-size:10.5px}.storageRow:last-child{border-bottom:0}.storageFile{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storageMeta{color:var(--muted);font-size:9.5px}.storageActions{margin-top:12px}.storageEmpty{padding:28px;text-align:center;color:var(--muted);font-size:11px}
footer{padding-top:22px}footer img{height:42px}footer small{margin-top:10px;font-size:8px}
@media(max-width:1180px){.filtersV15{grid-template-columns:1fr 1fr}.toolButtons{flex-wrap:wrap}.toolButtons button{flex:1}}
@media(max-width:800px){header{height:auto}.brand img{width:185px}.hero{padding-top:20px}.hero h1{font-size:31px}.stats article{padding:12px}.stats strong{font-size:24px}.storageRow{grid-template-columns:22px minmax(0,1fr);}.storageRow .storageMeta{grid-column:2}.toolButtons{flex-direction:column}}
.storageSummary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 6px;padding:9px 10px;background:#fbf6f0;border:1px solid var(--line);border-radius:9px;font-size:10.5px}.storageFilterBtns{display:flex;gap:5px}.storageFilter.active{background:#ead8c9;border-color:#c9a58a;color:#754a31}.storageRow{grid-template-columns:22px minmax(0,1fr) 150px 112px}
@media(max-width:800px){.storageSummary{align-items:flex-start;flex-direction:column}.storageFilterBtns{flex-wrap:wrap}.storageRow{grid-template-columns:22px minmax(0,1fr)}.storageRow .storageMeta{grid-column:2}}
