/* Auth boot: CSP-safe. Both screens start hidden in HTML and only the verified one is revealed. */
html,body{min-height:100%;}
body.auth-pending{background:#eef7f8;}
body.auth-pending #loginScreen,body.auth-pending #appShell{display:none!important;}
[hidden]{display:none!important;}

:root{
  --bg:#e8e5df;--surface:#f8f7f3;--surface2:#efede8;--card:#fff;--ink:#202322;--muted:#777b78;
  --line:rgba(32,35,34,.10);--brand:#5b3025;--brand2:#7f5849;--brandsoft:#eaded7;--dark:#292824;
  --green:#4f6c5e;--greensoft:#e0e9e4;--amber:#946f3e;--ambersoft:#f0e6d7;--red:#94534e;--redsoft:#f3e1df;
  --shadow:0 24px 70px rgba(41,32,27,.12);--shadow2:0 10px 30px rgba(41,32,27,.07);--r:26px;--r2:18px;--r3:13px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 4% 0%,#d8c8ba 0,transparent 25%),radial-gradient(circle at 100% 100%,#cdbbb0 0,transparent 25%),var(--bg);min-height:100vh}button,input,select,textarea{font:inherit}.hidden{display:none!important}button{cursor:pointer}.muted{color:var(--muted)}
.login-shell{width:min(1480px,calc(100% - 42px));min-height:calc(100vh - 42px);margin:21px auto;display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;border-radius:38px;background:rgba(249,248,245,.9);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow)}
.login-art{position:relative;padding:55px;color:#fff;background:linear-gradient(145deg,rgba(54,33,27,.98),rgba(65,58,53,.94)),radial-gradient(circle at 70% 30%,#a58370,transparent 50%);overflow:hidden}.login-art:before{content:"";position:absolute;width:600px;height:600px;border-radius:50%;right:-230px;top:-240px;border:1px solid rgba(255,255,255,.14);box-shadow:0 0 0 85px rgba(255,255,255,.03),0 0 0 170px rgba(255,255,255,.02)}.login-art:after{content:"";position:absolute;width:390px;height:390px;border-radius:50%;right:80px;bottom:70px;background:radial-gradient(circle at 35% 30%,#bd9680,#67453a 58%,#2d2521);opacity:.48;filter:blur(.2px)}
.brand{display:flex;gap:11px;align-items:center;position:relative;z-index:2}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:850;font-size:12px;letter-spacing:-.04em}.brand-light .brand-mark{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14)}.brand strong{display:block;font-size:15px}.brand span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.13em;opacity:.55;margin-top:2px}.login-copy{position:relative;z-index:2;margin-top:132px;max-width:760px}.kicker{font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.17em;color:var(--brand)}.kicker.light{color:rgba(255,255,255,.65)}.login-copy h1{font-size:clamp(48px,5vw,78px);letter-spacing:-.055em;line-height:1;margin:18px 0 24px}.login-copy p{font-size:17px;line-height:1.65;max-width:620px;color:rgba(255,255,255,.7)}.login-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:33px}.login-pills span{padding:10px 14px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.08);border-radius:999px;font-size:11px;color:rgba(255,255,255,.78)}.login-bottom{position:absolute;z-index:3;left:55px;right:55px;bottom:42px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.login-bottom div{padding-top:17px;border-top:1px solid rgba(255,255,255,.14)}.login-bottom b{display:block;font-size:25px}.login-bottom span{font-size:10px;color:rgba(255,255,255,.48)}
.login-panel{display:grid;place-items:center;padding:54px}.login-card{width:min(440px,100%)}.login-card h2{font-size:40px;letter-spacing:-.045em;margin:10px 0 6px}.login-card>p{margin:0 0 30px}.login-card label:not(.check){display:grid;gap:8px;font-size:11px;font-weight:780;color:#5c615f;margin-bottom:17px}.login-card input[type=email],.login-card input[type=password]{border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px;outline:0;color:var(--ink);transition:.2s}.login-card input:focus{border-color:rgba(91,48,37,.35);box-shadow:0 0 0 4px rgba(91,48,37,.06)}.check{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin:2px 0 22px}.security-note{font-size:10px!important;line-height:1.5;padding:13px 14px;background:var(--surface2);border-radius:13px;margin-top:20px!important}.mobile-brand{display:none;margin-bottom:48px}.text-btn{border:0;background:transparent;color:var(--brand);font-weight:750;font-size:11px;width:100%;padding:15px}
.btn{border:0;border-radius:13px;padding:12px 16px;font-weight:760;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.2s}.btn:hover{transform:translateY(-1px)}.primary{background:var(--brand);color:#fff;box-shadow:0 9px 22px rgba(91,48,37,.18)}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.soft{background:var(--brandsoft);color:var(--brand)}.danger{background:var(--redsoft);color:var(--red)}.wide{width:100%;padding:15px 18px}
.app-shell{width:min(1540px,calc(100% - 38px));min-height:calc(100vh - 38px);margin:19px auto;display:grid;grid-template-columns:260px 1fr;border-radius:36px;overflow:hidden;background:rgba(248,247,243,.94);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.7)}.sidebar{background:var(--dark);color:#fff;padding:27px 19px;display:flex;flex-direction:column}.sidebar .brand{padding:3px 7px 25px;border-bottom:1px solid rgba(255,255,255,.07)}.nav-label{padding:27px 12px 10px;font-size:9px;text-transform:uppercase;letter-spacing:.16em;font-weight:850;color:rgba(255,255,255,.28)}#nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:11px;padding:12px;border-radius:12px;font-size:12px;font-weight:680;text-align:left}.nav-item:hover,.nav-item.active{color:#fff;background:rgba(255,255,255,.08)}.nav-item.active:after{content:"";width:6px;height:6px;border-radius:50%;background:#d5b2a1;margin-left:auto}.nav-icon{width:22px;text-align:center;font-size:17px;font-weight:400}.privacy-card{margin-top:auto;display:flex;gap:10px;padding:16px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.045);border-radius:16px}.privacy-card b{display:block;font-size:10px}.privacy-card small{display:block;color:rgba(255,255,255,.4);font-size:9px;line-height:1.45;margin-top:4px}.status-dot{width:8px;height:8px;border-radius:50%;background:#86a993;margin-top:2px;box-shadow:0 0 0 4px rgba(134,169,147,.12)}
.main-area{min-width:0;padding:28px 32px 50px}.topbar{display:flex;align-items:center;gap:15px;margin-bottom:30px}.topbar p{font-size:10px;color:var(--muted);margin:0 0 4px}.topbar h2{font-size:29px;letter-spacing:-.04em;margin:0}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.role-badge{padding:7px 10px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:var(--greensoft);color:var(--green)}.account-chip{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 5px;background:#fff;border:1px solid var(--line);border-radius:14px}.avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--brand),var(--brand2));color:#fff;display:grid;place-items:center;font-size:10px;font-weight:850}.account-chip b{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;font-size:10px}.account-chip small{font-size:9px;color:var(--muted)}.icon-btn{width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:#fff;color:#676b69;font-size:17px}.view{animation:fade .22s ease}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.hero{min-height:225px;border-radius:28px;padding:34px 38px;display:flex;align-items:center;position:relative;overflow:hidden;background:linear-gradient(120deg,#ece7df,#f8f6f1 55%,#dfd4ca);box-shadow:var(--shadow2);border:1px solid rgba(255,255,255,.75)}.hero:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-50px;top:-65px;background:radial-gradient(circle at 35% 30%,#9a7463,#5b3025 54%,#35231e);box-shadow:0 22px 55px rgba(91,48,37,.22)}.hero:after{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(255,255,255,.22);border-radius:50%;right:22px;top:19px}.hero-content{position:relative;z-index:2;max-width:680px}.hero h3{font-size:36px;letter-spacing:-.045em;line-height:1.08;margin:12px 0}.hero p{max-width:600px;color:#686d69;font-size:13px;line-height:1.6}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:19px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:15px 0}.metric{padding:18px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 5px 15px rgba(35,31,28,.025)}.metric .metric-top{display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.metric strong{display:block;font-size:27px;letter-spacing:-.04em;margin-top:15px}.metric small{font-size:9px;color:var(--muted)}.metric.warn strong{color:var(--amber)}
.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 5px 18px rgba(35,31,28,.025)}.panel-head,.section-head{display:flex;align-items:center;gap:12px}.panel-head{margin-bottom:17px}.panel-head h3,.section-head h3{margin:0;font-size:16px;letter-spacing:-.02em}.panel-head p,.section-head p{font-size:10px;color:var(--muted);margin:4px 0 0}.panel-head .spacer,.section-head .spacer{margin-left:auto}.grid-2{display:grid;grid-template-columns:1.35fr .8fr;gap:14px}.section-head{margin-bottom:17px}.section-head+.group-grid{margin-top:0}.filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.input,.select,.textarea{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:11px 12px;outline:0;font-size:11px}.input:focus,.select:focus,.textarea:focus{border-color:rgba(91,48,37,.32);box-shadow:0 0 0 3px rgba(91,48,37,.05)}.input.search{min-width:240px}.select{min-width:160px}.textarea{min-height:90px;resize:vertical}
.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.group-card{background:#fff;border:1px solid var(--line);border-radius:21px;padding:20px;box-shadow:0 5px 18px rgba(35,31,28,.025)}.group-card-top{display:flex;align-items:flex-start;gap:12px}.group-symbol{width:44px;height:44px;border-radius:14px;background:var(--surface2);display:grid;place-items:center;font-weight:850;color:var(--brand)}.group-card h4{margin:1px 0 3px;font-size:15px}.group-card .wa{font-size:9px;color:var(--muted)}.group-card .counts{display:flex;gap:12px;margin-top:13px;font-size:9px;color:var(--muted)}.subgroups{display:grid;gap:7px;margin-top:15px}.subgroup{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;padding:10px 11px;background:var(--surface);border-radius:12px;border:1px solid rgba(32,35,34,.06)}.subgroup b{font-size:10px}.subgroup small{font-size:9px;color:var(--muted);display:block;margin-top:2px}.code{padding:6px 8px;border-radius:999px;background:var(--brandsoft);color:var(--brand);font-size:9px;font-weight:850;letter-spacing:.04em}.group-actions{display:flex;gap:6px;margin-top:14px}.mini-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 9px;font-size:9px;font-weight:750;color:#636864}.mini-btn:hover{background:var(--surface)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:collapse;min-width:700px;background:#fff}th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;padding:12px 13px;background:#f6f5f1;border-bottom:1px solid var(--line)}td{padding:12px 13px;border-bottom:1px solid rgba(32,35,34,.065);font-size:10px;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfaf8}.folio{font-weight:850;color:var(--brand)}.status{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:999px;font-size:8px;font-weight:820;text-transform:uppercase;letter-spacing:.04em}.status.completed,.status.approved{background:var(--greensoft);color:var(--green)}.status.processing,.status.queued{background:var(--ambersoft);color:var(--amber)}.status.failed{background:var(--redsoft);color:var(--red)}.status.review,.status.completed_with_review{background:#eee7da;color:#82633a}.empty{padding:45px 20px;text-align:center;color:var(--muted);font-size:11px}.empty b{display:block;color:var(--ink);font-size:14px;margin-bottom:6px}
.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.import-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.import-icon{width:44px;height:44px;border-radius:14px;background:var(--surface2);display:grid;place-items:center;font-size:19px;color:var(--brand);margin-bottom:16px}.import-card h4{margin:0 0 7px;font-size:16px}.import-card p{color:var(--muted);font-size:10px;line-height:1.5;min-height:46px}.upload-drop{border:1px dashed rgba(91,48,37,.25);background:#faf8f4;border-radius:14px;padding:14px;margin:14px 0}.upload-drop input{width:100%;font-size:10px}
.checkbox-row{display:flex!important;flex-direction:row;align-items:flex-start;gap:8px;font-size:9px;font-weight:600;color:var(--muted);line-height:1.4}.checkbox-row input{margin-top:2px}
.import-progress{font-size:9px;color:var(--brand);font-weight:780;min-height:12px}
.manual-media-row{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr 1fr;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff}
.manual-media-row .manual-media-name{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manual-media-result{font-size:9px;padding:8px 10px;border-radius:10px;margin-bottom:6px;line-height:1.4}
.manual-media-result.ok{background:var(--greensoft);color:var(--green)}
.manual-media-result.warn{background:#fdf3dd;color:#8a6414}
.manual-media-result.error{background:#f6e8e3;color:#8d3f31}
.manual-media-inline{margin-top:10px;padding:12px;border:1px dashed rgba(7,140,153,.3);border-radius:14px;background:#f4fbfb}
.manual-media-inline>b{display:block;font-size:9px;margin-bottom:8px;color:var(--text)}
.manual-media-inline .manual-media-row{grid-template-columns:1fr 1fr .8fr 1fr 1.2fr;margin-bottom:8px}.form-stack{display:grid;gap:10px}.form-stack label,.form-grid label{display:grid;gap:6px;font-size:9px;font-weight:780;color:#5d625f}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.progress{height:6px;background:var(--surface2);border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:var(--brand);border-radius:99px}
.review-card{display:grid;grid-template-columns:1.35fr .85fr;gap:15px;padding:16px;border:1px solid var(--line);border-radius:16px;margin-bottom:9px}.review-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.review-card .sender{font-weight:820;font-size:10px}.review-card .date{font-size:9px;color:var(--muted)}.review-text{font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.review-controls{display:grid;gap:7px;align-content:center}.confidence{font-size:9px;color:var(--muted)}.review-code-hint{font-size:10px;background:#effaf3;border:1px solid #bfe8cc;color:#1f6d3c;border-radius:8px;padding:6px 9px;line-height:1.4}.pill{display:inline-block;font-size:10px;font-weight:700;background:#eef2f0;color:#3a4a42;border-radius:999px;padding:4px 10px}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(25,23,21,.48);backdrop-filter:blur(7px);display:grid;place-items:center;padding:22px}.modal{width:min(620px,100%);max-height:min(86vh,900px);overflow:auto;background:#f9f8f4;border-radius:24px;padding:25px;box-shadow:0 30px 90px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.7)}.modal.wide-modal{width:min(1000px,100%)}.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.modal-head h3{font-size:20px;letter-spacing:-.03em;margin:0}.modal-head p{font-size:10px;color:var(--muted);margin:5px 0 0}.modal-close{margin-left:auto;width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:19px}.toast{position:fixed;z-index:200;right:25px;bottom:25px;max-width:390px;background:#292824;color:#fff;border-radius:14px;padding:13px 16px;box-shadow:var(--shadow);font-size:10px;line-height:1.45}.toast.error{background:#6f3733}
.participant-head{display:flex;gap:15px;align-items:center;padding-bottom:17px;border-bottom:1px solid var(--line)}.participant-avatar{width:54px;height:54px;border-radius:17px;background:linear-gradient(145deg,var(--brand),var(--brand2));color:#fff;display:grid;place-items:center;font-weight:850}.participant-head h3{margin:0;font-size:20px}.participant-head p{margin:5px 0 0;font-size:10px;color:var(--muted)}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:760}.tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chat{display:grid;gap:11px;max-height:55vh;overflow:auto;padding:4px 4px 8px}.bubble-row{display:flex}.bubble{max-width:78%;padding:11px 12px;border-radius:14px 14px 14px 4px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 12px rgba(30,27,24,.035)}.bubble .meta{display:flex;gap:9px;align-items:center;font-size:8px;color:var(--muted);margin-bottom:6px}.bubble .msg{font-size:10px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.bubble img,.bubble video{display:block;max-width:100%;max-height:330px;border-radius:10px;margin-top:8px}.bubble audio{width:min(360px,100%);margin-top:8px}.doc-link{display:inline-flex;margin-top:8px;padding:8px 10px;background:var(--surface2);border-radius:9px;color:var(--brand);font-size:9px;text-decoration:none}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:55vh;overflow:auto}.media-tile{min-height:120px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff;padding:8px}.media-tile img,.media-tile video{width:100%;height:150px;object-fit:cover;border-radius:9px}.media-tile audio{width:100%}.media-tile small{display:block;font-size:8px;color:var(--muted);margin-top:6px}
.kv{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:15px 0}.kv div{background:var(--surface);border-radius:11px;padding:10px}.kv span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.kv b{display:block;font-size:10px;margin-top:4px;word-break:break-word}.banner{padding:12px 14px;border-radius:13px;background:var(--ambersoft);color:#71552f;font-size:9px;line-height:1.5;margin-bottom:13px}.banner.good{background:var(--greensoft);color:var(--green)}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.group-grid,.import-grid{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}.sidebar{width:82px;padding:25px 11px}.app-shell{grid-template-columns:82px 1fr}.sidebar .brand>div:last-child,.nav-label,.nav-item>span:last-child,.privacy-card div{display:none}.sidebar .brand{justify-content:center}.nav-item{justify-content:center}.privacy-card{justify-content:center}.nav-item.active:after{display:none}}
@media(max-width:780px){.login-shell{width:100%;min-height:100vh;margin:0;border-radius:0;grid-template-columns:1fr}.login-art{display:none}.login-panel{padding:25px}.mobile-brand{display:flex}.app-shell{width:100%;min-height:100vh;margin:0;border-radius:0;grid-template-columns:1fr}.sidebar{position:fixed;z-index:80;bottom:10px;left:10px;right:10px;width:auto;height:62px;min-height:0;border-radius:18px;padding:7px;display:block;box-shadow:0 10px 30px rgba(0,0,0,.2)}.sidebar .brand,.nav-label,.privacy-card{display:none}#nav{display:grid;grid-template-columns:repeat(5,1fr);height:100%}.nav-item{padding:0}.nav-item:nth-child(n+6){display:none}.nav-item>span:last-child{display:none}.main-area{padding:20px 15px 90px}.topbar{align-items:flex-start}.account-chip div:last-child{display:none}.role-badge{display:none}.hero{padding:25px;min-height:280px;align-items:flex-end}.hero:before{opacity:.55;width:220px;height:220px}.hero:after{opacity:.45;width:140px;height:140px}.hero h3{font-size:29px}.metrics{grid-template-columns:1fr 1fr}.group-grid,.import-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.review-card{grid-template-columns:1fr}.media-grid{grid-template-columns:1fr 1fr}.modal{padding:20px}.input.search{min-width:0;width:100%}.filter-row>*{flex:1 1 150px}}
@media(max-width:480px){.metrics{grid-template-columns:1fr}.media-grid{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.hero h3{font-size:27px}.topbar h2{font-size:23px}}

/* Ajustes compatibles con CSP (sin estilos inline) */
.compact-empty{padding:12px}
.compact-empty-title{font-size:10px}
.import-history-panel{margin-top:14px}

/* Navegación jerárquica: Grupo -> subcarpetas -> folios */
.group-grid-folders{grid-template-columns:repeat(3,minmax(0,1fr))}
.folder-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.folder-open-area,.subfolder-open{border:0;background:transparent;color:inherit;text-align:left;width:100%;display:flex;align-items:center;gap:14px;padding:20px}
.folder-open-area:hover,.subfolder-open:hover{background:#fbfaf7}
.folder-icon,.subfolder-icon{width:48px;height:42px;border-radius:12px 12px 9px 9px;background:linear-gradient(145deg,#eaded7,#d8c8be);display:grid;place-items:center;color:var(--brand);font-size:20px;flex:0 0 auto;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.folder-copy,.subfolder-main{min-width:0;flex:1}.folder-copy h4,.subfolder-title h4{margin:0 0 5px;font-size:15px}.folder-copy .counts,.subfolder-main .counts{margin-top:10px;display:flex;gap:9px;flex-wrap:wrap;font-size:8px;color:var(--muted)}
.folder-arrow{margin-left:auto;font-size:18px;color:#a49a93}.folder-actions,.subfolder-actions{border-top:1px solid var(--line);padding:10px 14px;margin:0;justify-content:flex-end}.danger-lite{color:var(--red)}
.workspace-breadcrumb{display:flex;align-items:center;gap:8px;margin:-4px 0 15px;font-size:10px;color:var(--muted)}.breadcrumb-btn{border:0;background:transparent;padding:3px 0;color:var(--brand);font-weight:760}
.group-workspace-hero,.subgroup-hero{background:linear-gradient(125deg,#f0ece6,#fff 58%,#e6ddd5);border:1px solid rgba(255,255,255,.9);border-radius:24px;padding:24px;box-shadow:var(--shadow2);display:grid;grid-template-columns:1.3fr auto auto;gap:20px;align-items:center;margin-bottom:17px}.group-workspace-hero h3,.subgroup-hero h3{font-size:28px;letter-spacing:-.04em;margin:6px 0}.group-workspace-hero p,.subgroup-hero p{font-size:10px;color:var(--muted);line-height:1.55}.wa-line{font-size:10px;margin-top:10px}.workspace-stats{display:grid;grid-template-columns:repeat(2,minmax(90px,1fr));gap:8px}.workspace-stats div{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:14px;padding:12px}.workspace-stats strong{display:block;font-size:20px;letter-spacing:-.03em}.workspace-stats span{display:block;font-size:8px;color:var(--muted);margin-top:3px}.workspace-actions{align-self:start}.group-import-panel{margin-bottom:18px}.destination-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:11px 12px;background:var(--surface);border-radius:13px;margin-bottom:14px}.destination-label{font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:var(--muted);margin-right:4px}.destination-chip{font-size:9px;border:1px solid var(--line);background:#fff;padding:7px 9px;border-radius:999px}.destination-chip b{color:var(--brand)}.compact-import-grid .import-card{box-shadow:none;background:#fcfbf8}.ai-process-box{display:grid;gap:4px;padding:12px;background:var(--greensoft);border-radius:12px;color:var(--green);font-size:9px;line-height:1.45}.ai-process-box b{font-size:10px}.section-spacer{margin-top:18px}.subfolder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subfolder-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 5px 18px rgba(35,31,28,.025)}.subfolder-title{display:flex;gap:8px;align-items:center;justify-content:space-between}.subfolder-main p{font-size:9px;color:var(--muted);margin:0}.count-warn{color:var(--amber)!important;font-weight:780}.group-history{margin-top:18px}.subgroup-hero{grid-template-columns:auto 1fr auto}.subfolder-icon.large{width:72px;height:62px;font-size:28px}.subgroup-hero-copy .banner{margin:12px 0 0;max-width:700px}.workspace-stats.vertical{grid-template-columns:repeat(2,minmax(80px,1fr))}.subgroup-participants-head{margin-top:20px}.context-code{display:inline-flex;margin-top:7px}
@media(max-width:1250px){.group-grid-folders{grid-template-columns:repeat(2,minmax(0,1fr))}.group-workspace-hero{grid-template-columns:1fr auto}.workspace-actions{grid-column:1/-1}.subgroup-hero{grid-template-columns:auto 1fr}.subgroup-hero .workspace-stats{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}}
@media(max-width:820px){.group-grid-folders,.subfolder-grid{grid-template-columns:1fr}.group-workspace-hero,.subgroup-hero{grid-template-columns:1fr}.workspace-stats,.subgroup-hero .workspace-stats{grid-template-columns:repeat(2,1fr)}.subfolder-icon.large{width:55px;height:48px}.destination-row{align-items:flex-start}}
.flow-guide{margin-bottom:18px}.flow-steps{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0 2px}.flow-steps span{font-size:9px;color:var(--muted)}.flow-steps span:nth-child(odd){display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 10px;color:var(--text);font-weight:720}.flow-steps b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--brand);color:#fff;font-size:8px}.subgroup-import-panel{margin-top:18px}.active-destination{border-color:rgba(111,53,39,.34);box-shadow:inset 0 0 0 1px rgba(111,53,39,.12);background:var(--brandsoft)}.subgroup-rule{margin-bottom:14px}.subgroup-upload-note{margin-top:14px}.dossier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dossier-card{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:0 5px 18px rgba(35,31,28,.025)}.dossier-avatar{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand),var(--brand2));color:#fff;font-size:12px;font-weight:850}.dossier-copy{min-width:0}.dossier-label{display:block;font-size:7px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:820}.dossier-copy h4{font-size:14px;margin:3px 0 4px}.dossier-copy p{font-size:9px;line-height:1.45;color:var(--text);margin:0 0 7px}.dossier-copy p span{color:var(--muted)}.dossier-open{grid-column:1/-1;width:100%;justify-content:center}
@media(max-width:1100px){.dossier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dossier-grid{grid-template-columns:1fr}.flow-steps>span:nth-child(even){display:none}}

/* Distribución de participantes por código */
.assignment-distribution{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(32,52,45,.12)}
.assignment-distribution>span:first-child{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.7;margin-right:2px}
.assignment-warning{margin-top:9px;padding:9px 11px;border-radius:12px;background:rgba(151,93,26,.10);font-size:12px}

/* Selector de entrega para expedientes por código */
.assignment-phase-picker{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0;padding:14px 16px;border:1px solid rgba(80,60,45,.12);border-radius:16px;background:rgba(255,255,255,.72)}
.assignment-phase-picker label{display:flex;align-items:center;gap:10px;font-weight:700}
.assignment-phase-picker span{font-size:13px;color:var(--muted,#6b625d)}
.compact-select{width:auto;min-width:170px;padding-top:9px;padding-bottom:9px}
@media (max-width:760px){.assignment-phase-picker{align-items:flex-start;flex-direction:column}.assignment-phase-picker label{width:100%;flex-direction:column;align-items:flex-start}.compact-select{width:100%}}

/* Cambios puntuales solicitados, sin alterar la maquetación existente */
.delivery-chip{display:inline-flex;align-items:center;width:max-content;margin:7px 0 0 6px;padding:5px 8px;border-radius:999px;background:var(--greensoft);color:var(--green);font-size:8px;font-weight:800;border:1px solid rgba(79,108,94,.12)}
.folio-status{display:block;width:max-content;margin:7px 0 0;padding:5px 9px;border-radius:999px;font-size:8px;font-weight:800}
.folio-status.updated{background:var(--greensoft);color:var(--green)}
.folio-status.needs-update{background:#fdf3dd;color:#8a6414}
.folio-status.not-updated{background:#f1efe9;color:var(--muted)}
.form-grid.two{grid-template-columns:1fr 1fr}
.participant-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:14px 0 2px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#f5f3ee}
.participant-date-filter{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.participant-date-filter label{display:grid;gap:5px;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.participant-date-filter .input{width:165px;padding:8px 9px}.participant-transcribe{white-space:nowrap}
.chat-day{grid-column:1/-1;display:flex;justify-content:center;margin:2px 0 3px}.chat-day span{padding:5px 9px;border-radius:999px;background:#eeeae3;border:1px solid var(--line);font-size:8px;font-weight:760;color:var(--muted);text-transform:capitalize}
.transcript-box{margin-top:9px;padding:9px 10px;border-radius:10px;background:var(--greensoft);border:1px solid rgba(79,108,94,.12)}.transcript-box b{display:block;font-size:8px;color:var(--green);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.transcript-box p{margin:0;font-size:9px;line-height:1.5;color:#3d4944;white-space:pre-wrap}.transcript-pending{background:#f3f0e9}.transcript-error{background:var(--redsoft)}.transcript-error b{color:var(--red)}
.media-text{font-size:9px;line-height:1.45;color:var(--ink);margin:7px 2px 0;white-space:pre-wrap;word-break:break-word}

/* Sidebar: conserva el diseño original, pero acompaña el scroll y mantiene la información visible */
@media(min-width:1101px){.app-shell{overflow:clip}.sidebar{position:sticky;top:19px;height:calc(100vh - 38px);max-height:calc(100vh - 38px);align-self:start}.privacy-card{margin-top:auto}}
@media(min-width:901px) and (max-width:1100px){.app-shell{grid-template-columns:220px 1fr;overflow:clip}.sidebar{width:auto;padding:25px 15px;position:sticky;top:19px;height:calc(100vh - 38px);max-height:calc(100vh - 38px);align-self:start}.sidebar .brand>div:last-child,.nav-label,.nav-item>span:last-child,.privacy-card div{display:block}.sidebar .brand{justify-content:flex-start}.nav-item{justify-content:flex-start}.privacy-card{justify-content:flex-start}.nav-item.active:after{display:block}.main-area{padding-left:24px;padding-right:24px}}
@media(max-width:780px){.form-grid.two{grid-template-columns:1fr}.participant-tools{align-items:stretch}.participant-date-filter{align-items:stretch}.participant-date-filter label{width:100%}.participant-date-filter .input{width:100%}.participant-transcribe{width:100%}}
/* Ajustes puntuales: administración de contenido y archivos faltantes. */
.participant-admin-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.media-missing{display:grid;gap:4px;margin-top:8px;padding:9px 10px;border:1px dashed #c99d94;border-radius:10px;background:#fbf3f0;color:#78453d;font-size:9px;line-height:1.4}
.media-missing b{font-size:9px}.media-missing span{color:#7f625d}
@media(max-width:780px){.participant-admin-actions{width:100%}.participant-admin-actions .mini-btn{flex:1}}

/* Visor de imagen/video en grande, disponible para admin y usuario. */
.lightbox-trigger{cursor:zoom-in}
.media-expand{cursor:pointer}
.media-lightbox-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:28px;background:rgba(10,9,8,.86);backdrop-filter:blur(8px);animation:confirmFade .16s ease-out}
.media-lightbox-content{position:relative;max-width:min(1200px,94vw);max-height:92vh;display:flex}
.media-lightbox-content img,.media-lightbox-content video{max-width:100%;max-height:92vh;border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.5);display:block}
.media-lightbox-close{position:absolute;top:-16px;right:-16px;width:36px;height:36px;border-radius:50%;border:none;background:#fff;color:#111;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.4)}

/* Confirmación administrativa propia: reemplaza el confirm() nativo solo al borrar contenido. */
.confirm-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:rgba(24,20,18,.56);backdrop-filter:blur(9px);animation:confirmFade .16s ease-out}
.confirm-dialog{width:min(520px,calc(100vw - 32px));background:#fffdf9;border:1px solid rgba(255,255,255,.78);border-radius:24px;box-shadow:0 28px 80px rgba(25,18,15,.30);padding:24px;display:grid;grid-template-columns:auto 1fr;gap:17px;animation:confirmPop .18s ease-out}
.confirm-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#f6e8e3;color:#8d3f31;font-size:27px;font-weight:500;line-height:1;border:1px solid rgba(141,63,49,.12)}
.confirm-copy{min-width:0}.confirm-kicker{display:block;margin:1px 0 5px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.11em;color:#92776d}.confirm-copy h3{margin:0 0 8px;font-size:21px;letter-spacing:-.025em;color:var(--text)}.confirm-copy>p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}
.confirm-note{display:flex;gap:9px;align-items:flex-start;margin-top:15px;padding:11px 12px;border-radius:13px;background:#f8f2ec;border:1px solid #eadfd6}.confirm-note>span{width:19px;height:19px;flex:0 0 19px;border-radius:50%;display:grid;place-items:center;background:#8d3f31;color:#fff;font-size:10px;font-weight:850}.confirm-note p{margin:0;font-size:9px;line-height:1.5;color:#69564f}
.confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;padding-top:3px}.confirm-danger-btn{background:#7b372b;color:#fff;border:1px solid #7b372b;box-shadow:0 7px 18px rgba(123,55,43,.18)}.confirm-danger-btn:hover{background:#672d24}
@keyframes confirmFade{from{opacity:0}to{opacity:1}}@keyframes confirmPop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:560px){.confirm-dialog{grid-template-columns:1fr;padding:19px}.confirm-icon{width:42px;height:42px;border-radius:14px}.confirm-actions{grid-column:1;display:grid;grid-template-columns:1fr 1fr}.confirm-actions .btn{width:100%}}

/* ========================================================================== 
   REDISEÑO VISUAL SUAVITEL 2026
   Capa puramente visual: no modifica rutas, datos ni comportamiento.
   ========================================================================== */
:root{
  --bg:#dceff1;
  --surface:#f4fbfb;
  --surface2:#e7f5f6;
  --card:#fff;
  --ink:#06283a;
  --text:#06283a;
  --muted:#64808c;
  --line:rgba(6,73,91,.13);
  --brand:#078c99;
  --brand2:#13b4bd;
  --brandsoft:#d8f2f3;
  --dark:#052e48;
  --green:#16856d;
  --greensoft:#dff4ec;
  --amber:#a66d16;
  --ambersoft:#fff0d8;
  --red:#b44159;
  --redsoft:#ffe4ea;
  --pink:#ee2d86;
  --navy:#052e48;
  --cyan:#53d9df;
  --shadow:0 28px 80px rgba(5,46,72,.14);
  --shadow2:0 14px 38px rgba(5,67,84,.09);
}

body{
  background:
    radial-gradient(circle at 5% 0%,rgba(66,200,207,.3),transparent 27%),
    radial-gradient(circle at 100% 100%,rgba(238,45,134,.1),transparent 28%),
    linear-gradient(145deg,#d9eef0,#f4faf9 52%,#e6f3f4);
}

#appShell.app-shell{
  width:min(1720px,calc(100% - 48px));
  min-height:calc(100vh - 48px);
  margin:24px auto;
  grid-template-columns:250px minmax(0,1fr);
  border:1px solid rgba(255,255,255,.86);
  border-radius:30px;
  background:rgba(246,251,251,.96);
  box-shadow:0 30px 90px rgba(4,43,66,.17);
}

#appShell .sidebar{
  position:sticky;
  top:24px;
  align-self:start;
  width:auto;
  height:calc(100vh - 48px);
  max-height:calc(100vh - 48px);
  padding:27px 18px;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 15% 8%,rgba(76,218,223,.2),transparent 25%),
    radial-gradient(circle at 100% 88%,rgba(238,45,134,.16),transparent 28%),
    linear-gradient(165deg,#062f48 0%,#054b61 48%,#063448 100%);
  border-right:1px solid rgba(119,228,231,.16);
}

#appShell .sidebar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18px 18px,rgba(255,255,255,.06) 0 1px,transparent 1.5px);
  background-size:34px 34px;
  opacity:.5;
}

#appShell .sidebar>*{position:relative;z-index:1}
#appShell .sidebar .brand{padding:3px 7px 26px;border-bottom-color:rgba(198,246,248,.14)}
#appShell .sidebar .brand-mark{
  background:linear-gradient(145deg,#10aab4,#087787);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 10px 24px rgba(0,20,34,.22),inset 0 1px 0 rgba(255,255,255,.3);
}
#appShell .brand span{color:rgba(220,250,251,.65);opacity:1}
#appShell .nav-label{color:rgba(207,246,248,.46)}
#appShell #nav{gap:7px}
#appShell .nav-item{
  position:relative;
  min-height:45px;
  padding:12px 13px;
  border:1px solid transparent;
  border-radius:14px;
  color:rgba(224,250,251,.66);
  transition:color .2s,background .2s,border-color .2s,transform .2s;
}
#appShell .nav-item:hover{
  color:#fff;
  border-color:rgba(170,239,242,.12);
  background:rgba(125,224,228,.09);
  transform:translateX(2px);
}
#appShell .nav-item.active{
  color:#fff;
  border-color:rgba(132,231,235,.2);
  background:linear-gradient(105deg,rgba(12,166,177,.28),rgba(255,255,255,.08));
  box-shadow:inset 3px 0 0 var(--pink),0 10px 24px rgba(0,27,42,.12);
}
#appShell .nav-item.active::after{background:var(--pink);box-shadow:0 0 12px rgba(238,45,134,.65)}
#appShell .nav-icon{color:#71dfe3;font-size:17px}
#appShell .privacy-card{
  margin-top:auto;
  border:1px solid rgba(150,235,238,.16);
  background:rgba(0,24,39,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
#appShell .privacy-card small{color:rgba(210,245,247,.47)}
#appShell .status-dot{background:#68e4b3;box-shadow:0 0 0 5px rgba(104,228,179,.11),0 0 15px rgba(104,228,179,.35)}

#appShell .main-area{
  min-width:0;
  padding:27px 30px 48px;
  background:
    radial-gradient(circle at 96% 2%,rgba(34,183,192,.11),transparent 23%),
    linear-gradient(155deg,rgba(248,252,252,.98),rgba(238,248,248,.96));
}
#appShell .topbar{margin-bottom:25px}
#appShell .topbar p{color:#62828d;font-weight:650}
#appShell .topbar h2{color:#052d43;font-size:30px}
#appShell .role-badge{background:#d7f1ee;color:#0f7768;border:1px solid rgba(15,119,104,.08)}
#appShell .account-chip,
#appShell .icon-btn{
  border-color:rgba(6,73,91,.12);
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 24px rgba(5,65,82,.06);
}
#appShell .avatar{background:linear-gradient(145deg,#ee2d86,#0aa6b1);box-shadow:0 6px 16px rgba(238,45,134,.18)}
#appShell .icon-btn{color:#087b88}
#appShell .icon-btn:hover{color:#fff;background:#087f8b;border-color:#087f8b;transform:translateY(-1px)}

#appShell .hero{
  min-height:245px;
  border:1px solid rgba(112,222,227,.2);
  background:
    radial-gradient(circle at 80% 18%,rgba(92,225,229,.22),transparent 24%),
    linear-gradient(122deg,#062e49 0%,#07596b 58%,#088f99 100%);
  box-shadow:0 20px 50px rgba(4,63,83,.18),inset 0 1px 0 rgba(255,255,255,.08);
}
#appShell .hero::before{
  right:-15px;top:-88px;width:350px;height:350px;
  background:radial-gradient(circle at 34% 30%,#5be0e3,#0aa4ae 48%,#07556b 74%);
  box-shadow:0 25px 70px rgba(0,28,47,.3),inset 0 1px 0 rgba(255,255,255,.35);
}
#appShell .hero::after{right:53px;top:27px;width:205px;height:205px;border-color:rgba(255,255,255,.25)}
#appShell .hero h3{color:#fff;font-size:38px}
#appShell .hero p{color:rgba(226,250,251,.72)}
#appShell .hero .kicker{color:#7fe8eb}
#appShell .hero .primary{background:linear-gradient(115deg,#e92d82,#f54c98);box-shadow:0 12px 28px rgba(229,30,119,.28)}

#appShell .metrics{gap:13px;margin:17px 0}
#appShell .metric{
  position:relative;
  overflow:hidden;
  min-height:139px;
  padding:19px;
  border-color:rgba(6,93,108,.12);
  border-radius:19px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 30px rgba(5,66,82,.065);
}
#appShell .metric::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#08a1ac}
#appShell .metric:nth-child(2)::before{background:#39c6cd}
#appShell .metric:nth-child(3)::before{background:#ee2d86}
#appShell .metric:nth-child(4)::before{background:#566ee8}
#appShell .metric:nth-child(5)::before{background:#f3a52e}
#appShell .metric .metric-top{color:#6b8993}
#appShell .metric strong{color:#052c42}
#appShell .metric.warn strong{color:#a96e17}

#appShell .panel,
#appShell .group-card,
#appShell .folder-card,
#appShell .subfolder-card,
#appShell .dossier-card,
#appShell .import-card,
#appShell .review-card,
#appShell .media-tile{
  border-color:rgba(6,83,101,.12);
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 32px rgba(5,64,81,.06);
}
#appShell .panel{border-radius:21px}
#appShell .panel-head h3,
#appShell .section-head h3{color:#062d42;font-size:17px}
#appShell .panel-head p,
#appShell .section-head p{color:#6f8790}

#appShell .group-workspace-hero,
#appShell .subgroup-hero{
  border:1px solid rgba(23,151,161,.14);
  background:
    radial-gradient(circle at 88% 10%,rgba(238,45,134,.08),transparent 25%),
    linear-gradient(125deg,#e1f4f4,#fff 57%,#d9eff1);
  box-shadow:0 16px 40px rgba(5,64,81,.09);
}
#appShell .group-workspace-hero h3,
#appShell .subgroup-hero h3{color:#062e43}
#appShell .workspace-stats div{
  border-color:rgba(6,100,115,.12);
  background:rgba(255,255,255,.86);
  box-shadow:0 7px 20px rgba(6,76,91,.04);
}
#appShell .workspace-stats strong{color:#057b87}
#appShell .folder-card,
#appShell .subfolder-card,
#appShell .dossier-card{transition:transform .2s,box-shadow .2s,border-color .2s}
#appShell .folder-card:hover,
#appShell .subfolder-card:hover,
#appShell .dossier-card:hover{transform:translateY(-3px);border-color:rgba(7,140,153,.28);box-shadow:0 16px 36px rgba(4,66,83,.11)}
#appShell .folder-open-area:hover,
#appShell .subfolder-open:hover{background:#f0fafa}
#appShell .folder-icon,
#appShell .subfolder-icon{
  color:#fff;
  background:linear-gradient(145deg,#12b2bc,#087b89);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 9px 20px rgba(5,112,125,.14);
}
#appShell .folder-arrow{color:#0b98a3}
#appShell .folder-actions,
#appShell .subfolder-actions{border-top-color:rgba(6,83,101,.1);background:#fbfefe}

#appShell .btn{border-radius:12px;transition:transform .2s,box-shadow .2s,background .2s}
#appShell .btn.primary{
  color:#fff;
  background:linear-gradient(115deg,#078e9a,#13b4bd);
  box-shadow:0 10px 24px rgba(7,142,154,.2);
}
#appShell .btn.primary:hover{box-shadow:0 14px 30px rgba(7,142,154,.28)}
#appShell .btn.secondary{border-color:rgba(6,83,101,.14);background:#fff;color:#075f70}
#appShell .btn.soft{background:#dff4f4;color:#077683}
#appShell .mini-btn{border-color:rgba(7,105,119,.15);color:#087684;background:#fff}
#appShell .mini-btn:hover{border-color:#0da4af;background:#e8f8f8}
#appShell .breadcrumb-btn{color:#07818d}

#appShell .input,
#appShell .select,
#appShell .textarea{
  border-color:rgba(6,83,101,.15);
  background:#fff;
  color:#062d42;
}
#appShell .input:focus,
#appShell .select:focus,
#appShell .textarea:focus{
  border-color:rgba(7,152,164,.55);
  box-shadow:0 0 0 4px rgba(13,170,181,.1);
}
#appShell .participant-tools,
#appShell .destination-row{border-color:rgba(6,83,101,.11);background:#eef8f8}
#appShell .upload-drop{border-color:rgba(7,140,153,.34);background:#f0fafa}
#appShell .import-icon{color:#087f8b;background:#dff3f4}
#appShell .ai-process-box{background:#e0f5ef;color:#157864}
#appShell .active-destination{border-color:rgba(7,140,153,.35);background:#ddf3f4}

#appShell .table-wrap{border-color:rgba(6,83,101,.12);border-radius:16px}
#appShell table{background:#fff}
#appShell .import-result{display:inline-block;min-width:210px;max-width:330px;line-height:1.5;color:#51676c;font-size:9px}
#appShell .import-result b{color:#063849;font-size:10px}
#appShell .import-result.error{color:#a63d37;font-weight:700}
#appShell th{color:#52737e;background:#eaf6f6;border-bottom-color:rgba(6,83,101,.12)}
#appShell td{border-bottom-color:rgba(6,83,101,.075)}
#appShell tbody tr:hover{background:#f0fafa}
#appShell .folio{color:#07818d}
#appShell .status.review,
#appShell .status.completed_with_review{background:#fff0db;color:#9a6418}
#appShell .tabs .tab.active{border-color:#078b97;background:#078b97;color:#fff}
#appShell .bubble{border-color:rgba(6,83,101,.12);background:#fff;box-shadow:0 6px 18px rgba(5,70,87,.05)}
#appShell .doc-link{color:#087884;background:#e3f5f5}
#appShell .chat-day span{border-color:rgba(6,83,101,.11);background:#e9f5f5;color:#5c7984}

.modal-backdrop{background:rgba(2,31,49,.62)}
.modal{
  border-color:rgba(126,226,230,.18);
  background:#f7fcfc;
  box-shadow:0 34px 100px rgba(2,34,53,.34);
}
.modal-close{border-color:rgba(6,83,101,.13);color:#087986;background:#fff}
.toast{background:#052f47;box-shadow:0 18px 44px rgba(3,39,58,.24)}
.confirm-overlay{background:rgba(2,31,49,.66)}
.confirm-dialog{background:#f8fdfd;border-color:rgba(134,226,230,.22);box-shadow:0 30px 90px rgba(2,35,53,.34)}
.confirm-icon{background:#ffe5ed;color:#c23862;border-color:rgba(194,56,98,.12)}
.confirm-kicker{color:#087c88}
.confirm-note{background:#edf8f8;border-color:rgba(6,83,101,.12)}
.confirm-note>span{background:#078b97}
.confirm-danger-btn{background:#b43e55;border-color:#b43e55;box-shadow:0 9px 22px rgba(180,62,85,.2)}

@media (max-width:1100px) and (min-width:781px){
  #appShell.app-shell{grid-template-columns:210px minmax(0,1fr)}
  #appShell .sidebar{width:auto;padding:24px 14px}
  #appShell .sidebar .brand>div:last-child,
  #appShell .nav-label,
  #appShell .nav-item>span:last-child,
  #appShell .privacy-card div{display:block}
  #appShell .sidebar .brand,
  #appShell .nav-item,
  #appShell .privacy-card{justify-content:flex-start}
  #appShell .main-area{padding-left:22px;padding-right:22px}
}

@media (max-width:780px){
  body{background:#edf8f8}
  #appShell.app-shell{
    width:100%;
    min-height:100vh;
    margin:0;
    grid-template-columns:1fr;
    border:0;
    border-radius:0;
  }
  #appShell .sidebar{
    position:fixed;
    z-index:80;
    inset:auto 10px 10px;
    width:auto;
    height:64px;
    min-height:0;
    max-height:none;
    padding:7px;
    border:1px solid rgba(113,224,228,.18);
    border-radius:19px;
    box-shadow:0 14px 38px rgba(2,35,53,.28);
  }
  #appShell .sidebar .brand,
  #appShell .nav-label,
  #appShell .privacy-card{display:none}
  #appShell #nav{display:grid;grid-template-columns:repeat(5,1fr);height:100%;gap:4px}
  #appShell .nav-item{justify-content:center;min-height:0;padding:0}
  #appShell .nav-item:hover{transform:none}
  #appShell .nav-item:nth-child(n+6){display:none}
  #appShell .nav-item>span:last-child{display:none}
  #appShell .nav-item.active{box-shadow:inset 0 -3px 0 var(--pink)}
  #appShell .main-area{padding:20px 15px 92px}
  #appShell .hero{min-height:280px;padding:25px}
  #appShell .hero h3{font-size:30px}
}

@media (max-width:480px){
  #appShell .topbar h2{font-size:24px}
  #appShell .metrics{grid-template-columns:1fr}
  #appShell .metric{min-height:118px}
}

/* Profundidad 3D premium: breve, contenida y sin interferir con la interacción. */
#appShell .view{perspective:1500px;transform-style:preserve-3d;animation:suavitelViewIn .42s cubic-bezier(.2,.75,.2,1)}
#appShell .hero,
#appShell .metric,
#appShell .panel,
#appShell .group-card,
#appShell .folder-card,
#appShell .subfolder-card,
#appShell .dossier-card,
#appShell .import-card{
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:transform .3s cubic-bezier(.2,.75,.2,1),box-shadow .3s,border-color .3s;
}
#appShell .hero{animation:suavitelHeroSettle .65s cubic-bezier(.2,.75,.2,1)}
#appShell .hero-content{transform:translateZ(24px)}
#appShell .hero::before{animation:suavitelHeroOrb 8s ease-in-out infinite}
#appShell .metric:hover{transform:translate3d(0,-5px,14px) rotateX(1.2deg);box-shadow:0 18px 42px rgba(5,66,82,.12)}
#appShell .panel:hover{transform:translate3d(0,-2px,7px);box-shadow:0 16px 40px rgba(5,64,81,.09)}
#appShell .group-card:hover,
#appShell .folder-card:hover,
#appShell .subfolder-card:hover,
#appShell .dossier-card:hover,
#appShell .import-card:hover{transform:translate3d(0,-4px,12px) rotateX(1deg);box-shadow:0 20px 45px rgba(4,66,83,.13)}
#appShell .btn,
#appShell .icon-btn,
#appShell .nav-item{transform-style:preserve-3d}
#appShell .btn:active,
#appShell .icon-btn:active{transform:translateY(1px) scale(.985)}
.modal{transform-origin:center 44%;animation:suavitelModalIn .28s cubic-bezier(.2,.78,.2,1)}

@keyframes suavitelViewIn{
  from{opacity:0;transform:translate3d(0,9px,-18px) rotateX(.8deg)}
  to{opacity:1;transform:none}
}
@keyframes suavitelHeroSettle{
  from{opacity:.55;transform:translate3d(0,10px,-25px) rotateX(1.2deg)}
  to{opacity:1;transform:none}
}
@keyframes suavitelHeroOrb{
  0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}
  50%{transform:translate3d(-9px,7px,18px) rotate(2deg)}
}
@keyframes suavitelModalIn{
  from{opacity:0;transform:translate3d(0,12px,-40px) rotateX(2deg) scale(.985)}
  to{opacity:1;transform:none}
}

@media (hover:none){
  #appShell .metric:hover,
  #appShell .panel:hover,
  #appShell .group-card:hover,
  #appShell .folder-card:hover,
  #appShell .subfolder-card:hover,
  #appShell .dossier-card:hover,
  #appShell .import-card:hover{transform:none}
}

@media (prefers-reduced-motion:reduce){
  #appShell .view,
  #appShell .hero,
  #appShell .hero::before,
  .modal{animation:none!important}
  #appShell .metric,
  #appShell .panel,
  #appShell .group-card,
  #appShell .folder-card,
  #appShell .subfolder-card,
  #appShell .dossier-card,
  #appShell .import-card{transition:none!important;transform:none!important}
}

/* ========================================================================== 
   CÓDIGOS DIRECTOS · NAVEGACIÓN PROFESIONAL
   La interfaz entra a carga, análisis y expedientes sin niveles intermedios.
   ========================================================================== */
@media (min-width:781px){
  #appShell.app-shell{
    overflow:clip;
    grid-template-columns:clamp(218px,15vw,258px) minmax(0,1fr);
  }
  #appShell .sidebar{
    box-sizing:border-box;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr) auto;
    height:calc(100vh - 48px);
    height:calc(100dvh - 48px);
    max-height:calc(100vh - 48px);
    max-height:calc(100dvh - 48px);
    min-height:0;
    overflow:hidden;
  }
  #appShell #nav{
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    padding:2px 5px 10px 0;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(113,223,227,.38) transparent;
  }
  #appShell #nav::-webkit-scrollbar{width:5px}
  #appShell #nav::-webkit-scrollbar-track{background:transparent}
  #appShell #nav::-webkit-scrollbar-thumb{background:rgba(113,223,227,.3);border-radius:99px}
  #appShell .privacy-card{margin-top:12px;flex-shrink:0}
}

#appShell .folder-kind{
  display:block;
  margin-bottom:5px;
  color:#5c818c;
  font-size:8px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}
#appShell .folder-copy .folder-kind,
#appShell .subfolder-main .folder-kind{color:#07828e}
#appShell .subfolder-main{min-width:0}
#appShell .subfolder-title{align-items:center}
#appShell .subfolder-title .code{
  padding:6px 10px;
  border:1px solid rgba(7,140,153,.16);
  background:linear-gradient(145deg,#daf3f4,#f3fbfb);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 5px 14px rgba(5,106,119,.08);
}
#appShell .group-identity{
  display:grid;
  grid-template-columns:max-content 1fr;
  gap:5px 14px;
  width:min(440px,100%);
  margin:13px 0 14px;
  padding:12px 14px;
  border:1px solid rgba(6,95,110,.11);
  border-radius:14px;
  background:rgba(255,255,255,.7);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
#appShell .group-identity span{color:#6c8790;font-size:9px}
#appShell .group-identity b{color:#06394b;font-size:10px}
.group-simple-form{gap:15px}
.group-form-intro{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid rgba(6,107,121,.12);
  border-radius:16px;
  background:linear-gradient(135deg,#e6f7f7,#f8fdfd);
}
.group-form-intro>span{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  font-size:18px;
  font-weight:850;
  background:linear-gradient(145deg,#12b1bb,#087a88);
  box-shadow:0 8px 20px rgba(6,117,130,.18),inset 0 1px 0 rgba(255,255,255,.3);
}
.group-form-intro b{display:block;color:#06384a;font-size:11px}
.group-form-intro small{display:block;margin-top:4px;color:#67818a;font-size:9px;line-height:1.45}

#appShell .code-direct-card{
  position:relative;
  min-height:178px;
  border-color:rgba(7,131,145,.13);
  background:
    radial-gradient(circle at 88% 18%,rgba(55,220,220,.16),transparent 31%),
    linear-gradient(145deg,#fff 0%,#f6fcfc 68%,#e8f7f7 100%);
  box-shadow:0 12px 34px rgba(3,71,88,.08),inset 0 1px 0 rgba(255,255,255,.95);
}
#appShell .code-direct-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,var(--pink),#12b6be);
}
#appShell .code-direct-card .folder-open-area{min-height:132px;padding:23px 22px 18px}
#appShell .code-direct-card .folder-icon{
  width:52px;
  height:52px;
  flex:0 0 52px;
  display:grid;
  place-items:center;
  border-radius:17px;
  color:#fff;
  font-size:22px;
  font-weight:900;
  background:linear-gradient(145deg,#16b8c0,#087886);
  box-shadow:0 13px 27px rgba(7,128,142,.22),inset 0 1px 0 rgba(255,255,255,.35);
  transform:translateZ(14px);
}
#appShell .code-direct-card .folder-copy h4{font-size:23px;letter-spacing:-.035em;color:#053247}
#appShell .code-direct-card .folder-copy .wa{margin-top:4px;color:#69848d}
#appShell .code-direct-card .counts{flex-wrap:wrap;margin-top:15px}
#appShell .code-direct-card .counts span{
  padding:6px 9px;
  border:1px solid rgba(6,105,119,.1);
  border-radius:999px;
  background:rgba(255,255,255,.78);
}
#appShell .code-direct-card .folder-actions{margin-top:auto;padding:11px 17px;background:rgba(255,255,255,.72)}
#appShell .code-workspace-hero{
  overflow:hidden;
  border-color:rgba(8,139,151,.14);
  background:
    radial-gradient(circle at 82% 10%,rgba(44,204,209,.18),transparent 28%),
    linear-gradient(125deg,#eefafa,#fff 58%,#dff4f4);
}
#appShell .code-workspace-hero .subfolder-icon{box-shadow:0 15px 34px rgba(5,119,132,.2)}
.code-only-form{gap:16px}
.code-only-form>label{font-size:10px}
.code-only-form .select,
.code-only-form .input{width:100%;min-height:48px;font-weight:800;color:#06465a;text-transform:uppercase;letter-spacing:.06em}

@media (max-width:560px){
  #appShell .code-direct-card{min-height:160px}
  #appShell .code-direct-card .folder-open-area{padding:19px 17px 14px}
  #appShell .code-direct-card .folder-copy h4{font-size:20px}
}

@media (min-width:781px) and (max-height:780px){
  #appShell .sidebar{padding:18px 14px}
  #appShell .sidebar .brand{padding:2px 5px 16px}
  #appShell .nav-label{padding:17px 10px 7px}
  #appShell #nav{gap:4px}
  #appShell .nav-item{min-height:39px;padding:9px 11px}
  #appShell .privacy-card{padding:11px 12px;margin-top:8px}
}

@media (max-width:780px){
  #appShell .group-identity{grid-template-columns:1fr}
  #appShell .folder-kind{font-size:7px}
}

/* ========================================================================== 
   CONTENEDOR DE TRABAJO · SCROLL INTERNO Y MOVIMIENTO SUTIL
   El sidebar permanece integrado a la aplicación; el contenido es la única
   columna que se desplaza en escritorio.
   ========================================================================== */
@media (min-width:781px){
  #appShell.app-shell{
    height:calc(100vh - 48px);
    height:calc(100dvh - 48px);
    min-height:0;
    max-height:calc(100vh - 48px);
    max-height:calc(100dvh - 48px);
    overflow:hidden;
  }

  #appShell .sidebar{
    position:relative;
    top:auto;
    align-self:stretch;
    height:100%;
    max-height:none;
    border-radius:0;
  }

  #appShell .main-area{
    position:relative;
    height:100%;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:rgba(8,139,151,.34) transparent;
  }

  #appShell .main-area::-webkit-scrollbar{width:8px}
  #appShell .main-area::-webkit-scrollbar-track{background:transparent}
  #appShell .main-area::-webkit-scrollbar-thumb{
    border:2px solid transparent;
    border-radius:999px;
    background:rgba(8,139,151,.32);
    background-clip:padding-box;
  }
}

#appShell .sidebar::after{
  content:"";
  position:absolute;
  z-index:0;
  width:210px;
  height:210px;
  right:-105px;
  bottom:9%;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(78,224,226,.12),transparent 68%);
  animation:sidebarAmbient 12s ease-in-out infinite;
}

#appShell .view>:not(.hero){
  animation:workspaceSectionIn .46s cubic-bezier(.2,.75,.2,1) both;
}
#appShell .view>:nth-child(2){animation-delay:.035s}
#appShell .view>:nth-child(3){animation-delay:.07s}
#appShell .view>:nth-child(4){animation-delay:.105s}
#appShell .view>:nth-child(n+5){animation-delay:.14s}
#appShell .privacy-card{transition:border-color .28s,background .28s,box-shadow .28s}
#appShell .privacy-card:hover{
  border-color:rgba(150,235,238,.26);
  background:rgba(0,24,39,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 12px 28px rgba(0,22,35,.14);
}

@keyframes workspaceSectionIn{
  from{opacity:0;transform:translate3d(0,8px,-10px)}
  to{opacity:1;transform:none}
}
@keyframes sidebarAmbient{
  0%,100%{transform:translate3d(0,0,0) scale(.92);opacity:.48}
  50%{transform:translate3d(-14px,-18px,0) scale(1.08);opacity:.8}
}

@media (prefers-reduced-motion:reduce){
  #appShell .sidebar::after,
  #appShell .view>:not(.hero){animation:none!important}
}

/* Los formularios de carga se mantienen en un plano interactivo estable.
   Evita fallos de hit-testing de Edge con tarjetas 3D anidadas. */
#appShell .subgroup-import-panel,
#appShell .subgroup-import-panel:hover,
#appShell .subgroup-import-panel .import-card,
#appShell .subgroup-import-panel .import-card:hover{
  transform:none;
  transform-style:flat;
}
#appShell .subgroup-import-panel .form-stack{
  position:relative;
  z-index:4;
  pointer-events:auto;
}
#appShell .subgroup-import-panel input,
#appShell .subgroup-import-panel button{
  position:relative;
  z-index:5;
  pointer-events:auto;
}
#appShell [data-import-submit][aria-busy="true"]{cursor:progress;opacity:.82}

/* Entregas aisladas, búsqueda general y lectura cómoda de evidencias. */
#appShell .code-global-search{margin:4px 0 20px;padding:20px 22px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(229,248,249,.9));border-color:rgba(8,140,153,.16)}
#appShell .code-global-search .panel-head{margin-bottom:15px}
#appShell .code-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:10px;align-items:end}
#appShell .code-filter-grid label{display:grid;gap:6px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
#appShell .code-filter-grid .select{width:100%;min-width:0}
#appShell .code-filter-actions{display:flex;gap:8px}
#appShell .code-search-results:not(:empty){margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}
#appShell .code-search-hint{padding:13px 15px;border-radius:13px;background:rgba(7,140,153,.07);color:var(--muted);font-size:11px}
#appShell .code-result-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#appShell .code-result-card{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(5,67,84,.05)}
#appShell .code-result-card>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px 9px;min-width:0;flex:1}
#appShell .code-result-card b{font-size:13px}.code-result-card p{grid-column:1/-1;margin:0;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#appShell .code-result-card .mini-btn{white-space:nowrap}

.participant-tool-actions,.participant-download-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.media-participant-meta{margin:9px 2px 2px;padding:9px 10px;border-radius:10px;background:rgba(7,140,153,.075);border-left:3px solid var(--brand);color:#315664;font-size:11px;line-height:1.55;overflow-wrap:anywhere}
.media-participant-meta b{color:var(--text)}
.media-grid.audio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.audio-grid .media-tile{padding:13px;min-height:190px}
.audio-grid .media-tile audio{margin-bottom:3px}
.audio-grid .transcript-box{padding:13px 14px;border-radius:12px}
.audio-grid .transcript-box b{font-size:10px;margin-bottom:7px}
.audio-grid .transcript-box p{font-size:13px;line-height:1.65;color:#28483f}
.bubble .media-participant-meta{font-size:10px}

@media(max-width:1180px){#appShell .code-filter-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.code-filter-actions{grid-column:1/-1}.code-result-list{grid-template-columns:1fr}}
@media(max-width:780px){#appShell .code-filter-grid{grid-template-columns:1fr}.code-filter-actions{display:grid;grid-template-columns:1fr 1fr}.participant-tool-actions,.participant-download-actions,.participant-admin-actions{width:100%}.participant-tool-actions .mini-btn{flex:1}.media-grid.audio-grid{grid-template-columns:1fr}.media-participant-meta{font-size:10px}}

/* Clasificación por etapas A–J: capa aditiva sobre el expediente actual. */
.media-download{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:6px 10px;border:1px solid var(--line);background:#fff;border-radius:999px;color:var(--brand);font-size:9px;font-weight:760;text-decoration:none}.media-download:hover{background:var(--surface2)}
.stage-panel-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.stage-progress{font-size:9px;color:var(--muted);margin-left:auto}
.stage-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}@media(max-width:900px){.stage-checklist{grid-template-columns:1fr}}
.stage-item{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.stage-item .stage-mark{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:900;flex:none;background:var(--surface2);color:var(--muted)}
.stage-item.is-confirmado .stage-mark{background:var(--green);color:#fff}.stage-item.is-probable .stage-mark{background:var(--amber);color:#fff}.stage-item.is-pendiente .stage-mark{background:#cbb98a;color:#fff}
.stage-item-copy{min-width:0}.stage-item-copy .stage-letter{font-weight:850;font-size:11px}.stage-item-copy .stage-status{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-left:6px}.stage-item-copy p{margin:3px 0 0;font-size:9px;color:var(--muted);line-height:1.4}
.folio-stage-panel{padding:14px 16px;margin-bottom:14px}.stage-checklist.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:0}.stage-item.compact{padding:8px 10px;gap:8px}.stage-item.compact .stage-mark{width:20px;height:20px;font-size:11px}.stage-item.compact .stage-item-copy p{display:block;font-size:8px;margin-top:2px}.stage-item.is-confirmado{border-color:var(--green);box-shadow:0 0 0 1px rgba(79,108,94,.18)}.stage-item.is-confirmado .stage-item-copy .stage-status{color:var(--green);font-weight:800}@media(max-width:560px){.stage-checklist.compact{grid-template-columns:1fr}}
.evidence-label{margin-top:8px;padding:8px 10px;background:var(--surface);border-radius:10px;display:flex;flex-direction:column;gap:3px}.evidence-label .evidence-who{font-size:9px;font-weight:800;color:var(--text)}.evidence-label .evidence-stages{font-size:9px;color:var(--muted);line-height:1.5}

/* === Mejora de trazabilidad A–J: filtros, evidencia y actualización silenciosa === */
.stage-item-button{appearance:none;-webkit-appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.stage-item-button:hover{border-color:var(--brand);box-shadow:0 5px 16px rgba(2,91,112,.08);transform:translateY(-1px)}.stage-item-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.stage-evidence-count{display:block;margin-top:4px;font-size:8px;font-weight:750;color:var(--brand)}
.audio-stage-tools{margin:0 0 13px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.72)}.audio-stage-tools-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:9px}.audio-stage-tools-head>div{display:flex;flex-direction:column;gap:2px}.audio-stage-tools-head b{font-size:10px;color:var(--text)}.audio-stage-tools-head span{font-size:8px;color:var(--muted)}.audio-stage-total{margin-left:auto;white-space:nowrap;padding:4px 8px;border-radius:999px;background:var(--surface2);font-size:8px!important;font-weight:750}.audio-stage-filters{display:flex;flex-wrap:wrap;gap:6px}.audio-stage-filter{appearance:none;-webkit-appearance:none;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:999px;padding:6px 9px;font-size:8px;font-weight:760;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.audio-stage-filter span{min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--surface2);display:inline-grid;place-items:center;font-size:7px;color:var(--muted)}.audio-stage-filter:hover{border-color:var(--brand);color:var(--brand)}.audio-stage-filter.active{background:var(--brand);border-color:var(--brand);color:#fff}.audio-stage-filter.active span{background:rgba(255,255,255,.2);color:#fff}.audio-filter-empty{min-height:135px}
.evidence-label{gap:7px}.evidence-empty{gap:3px}.evidence-stage-list{display:grid;gap:7px}.evidence-stage-row{padding-top:7px;border-top:1px solid rgba(3,75,91,.08)}.evidence-stage-row:first-child{padding-top:0;border-top:0}.evidence-stage-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.evidence-stage-head b{font-size:9px;color:var(--text)}.evidence-stage-code{display:inline-grid;place-items:center;min-width:24px;height:20px;padding:0 6px;border-radius:7px;background:var(--brand);color:#fff;font-size:8px;font-weight:850}.evidence-certainty{margin-left:auto;border-radius:999px;padding:3px 6px;font-size:7px;font-weight:850;text-transform:uppercase;letter-spacing:.035em;background:var(--surface2);color:var(--muted)}.evidence-certainty.confirmado{background:rgba(18,137,112,.11);color:var(--green)}.evidence-certainty.probable{background:rgba(190,139,31,.12);color:var(--amber)}.evidence-certainty.pendiente{background:rgba(134,116,76,.12);color:#75613f}.evidence-snippet{margin-top:5px;display:grid;gap:3px}.evidence-snippet>span{font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:var(--muted)}.evidence-snippet q{margin:0;font-size:9px;line-height:1.48;color:#315a61;font-style:normal}.evidence-snippet q::before,.evidence-snippet q::after{color:var(--brand)}
@media(max-width:780px){.audio-stage-tools-head{align-items:center}.audio-stage-tools-head>div span{display:none}.audio-stage-filter{padding:6px 8px}.evidence-certainty{margin-left:0}.stage-evidence-count{font-size:7px}}


/* Clasificación manual de audios que quedaron sin etapa */
.manual-stage-editor{margin-top:7px;padding-top:8px;border-top:1px solid rgba(3,75,91,.09);display:grid;gap:7px}.manual-stage-editor>div:first-child{display:flex;flex-direction:column;gap:2px}.manual-stage-editor b{font-size:9px;color:var(--text)}.manual-stage-editor span{font-size:8px;color:var(--muted)}.manual-stage-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(110px,.55fr) auto;gap:6px;align-items:center}.manual-stage-controls .select{min-height:34px;padding:6px 9px;font-size:8px}.manual-stage-save{white-space:nowrap;min-height:34px}.manual-stage-save[aria-busy="true"]{opacity:.65;pointer-events:none}@media(max-width:720px){.manual-stage-controls{grid-template-columns:1fr}.manual-stage-save{width:100%}}

/* Cierre operativo: No aplica + panel QA de producción. */
.evidence-no-apply{border:1px solid rgba(91,111,120,.18);background:rgba(243,247,248,.9)}
.evidence-no-apply .evidence-stage-code{background:#698087}
.evidence-no-apply>.mini-btn{align-self:flex-start}
.stage-no-apply{border-color:rgba(91,111,120,.25);color:#526970;background:#f7fafb}
.stage-no-apply:hover{border-color:#698087;color:#364f57;background:#eef4f5}
.quality-panel{margin-bottom:18px}
.quality-panel .section-head{align-items:center}
.quality-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:9px;margin-top:13px}
.quality-metrics>div{display:flex;flex-direction:column;gap:3px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(145deg,#fff,rgba(239,250,250,.72))}
.quality-metrics b{font-size:18px;line-height:1;color:var(--text)}
.quality-metrics span{font-size:8px;font-weight:760;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
@media(max-width:900px){.quality-metrics{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media(max-width:520px){.quality-panel .section-head{align-items:stretch}.quality-panel .section-head .btn{width:100%}.quality-metrics{grid-template-columns:1fr 1fr}.quality-metrics>div{padding:11px}.quality-metrics b{font-size:16px}}

/* ==========================================================================
   REDISEÑO VISUAL INMEGA 2026
   Capa de anulación visual sobre el rediseño teal/rosa anterior: sidebar
   claro, acentos verdes, tipografía y esquinas redondeadas alineadas al
   documento de marca. No modifica rutas, datos ni comportamiento.
   El logo real (assets/images/inmega-horizontal.png y inmega-icono.png)
   se integra en cuanto se agreguen esos archivos; mientras tanto se
   conserva la marca de iniciales ya existente, solo recoloreada.
   ========================================================================== */
:root{
  --bg:#eef6f2;
  --surface:#f2f3f6;
  --surface2:#eefaf5;
  --card:#fff;
  --ink:#16201c;
  --text:#3c3c3c;
  --muted:#6b7075;
  --line:rgba(17,23,20,.10);
  --brand:#1c6f52;
  --brand2:#38bb93;
  --brandsoft:#eefaf5;
  --dark:#123b2c;
  --green:#1c6f52;
  --greensoft:#eefaf5;
  --amber:#8a6a1f;
  --ambersoft:#fdf6e6;
  --red:#a63d37;
  --redsoft:#f6e8e3;
  --pink:#38bb93;
  --navy:#123b2c;
  --cyan:#38bb93;
  --shadow:0 30px 80px rgba(17,23,20,.12);
  --shadow2:0 12px 32px rgba(17,23,20,.07);
}

body{
  background:
    radial-gradient(circle at 5% 0%,rgba(56,187,147,.14),transparent 27%),
    radial-gradient(circle at 100% 100%,rgba(28,111,82,.08),transparent 28%),
    linear-gradient(145deg,#f4f8f6,#fff 52%,#eef6f2);
}

#appShell.app-shell{
  background:rgba(255,255,255,.97);
  box-shadow:0 30px 90px rgba(17,23,20,.12);
  border-color:rgba(17,23,20,.06);
}

#appShell .sidebar{
  color:var(--ink);
  background:#fff;
  border-right:1px solid #edeff2;
}
#appShell .sidebar::before{display:none}
#appShell .sidebar::after{display:none}
#appShell .sidebar .brand{border-bottom-color:#edeff2}
#appShell .sidebar .brand-mark{
  background:linear-gradient(145deg,var(--brand),var(--brand2));
  border:1px solid rgba(28,111,82,.14);
  box-shadow:0 8px 18px rgba(28,111,82,.18);
}
#appShell .brand span{color:var(--muted);opacity:1}

/* Logo real INMEGA. En el sidebar (fondo blanco) se usa directo; en las
   zonas oscuras del login se envuelve en una placa blanca para que el
   texto negro del logo siga siendo legible. */
.brand-logo{height:40px;width:auto;object-fit:contain;flex:0 0 auto;display:block}
.brand-logo-badge{display:inline-flex;align-items:center;padding:8px 10px;border-radius:14px;background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.12);flex:0 0 auto}
.brand-logo-badge .brand-logo{height:34px}
#appShell .nav-label{color:#9aa3a0}
#appShell .nav-item{color:#516058}
#appShell .nav-item:hover{
  color:#111;
  border-color:#e2efe8;
  background:#eefaf5;
  transform:translateX(2px);
}
#appShell .nav-item.active{
  color:#111;
  border-color:rgba(28,111,82,.16);
  background:#eefaf5;
  box-shadow:inset 3px 0 0 var(--brand2);
}
#appShell .nav-item.active::after{background:var(--brand2);box-shadow:0 0 10px rgba(56,187,147,.5)}
#appShell .nav-icon{color:var(--brand)}
#appShell .privacy-card{
  border:1px solid #e2efe8;
  background:#f4fbfb;
  box-shadow:none;
}
#appShell .privacy-card b{color:var(--ink)}
#appShell .privacy-card small{color:var(--muted)}
#appShell .privacy-card:hover{border-color:#cfe6da;background:#eefaf5;box-shadow:none}
#appShell .status-dot{background:#38bb93;box-shadow:0 0 0 4px rgba(56,187,147,.14)}
#appShell .account-chip{background:#fff;border-color:#edeff2}
#appShell .icon-btn{color:var(--brand);border-color:#edeff2;background:#fff}
#appShell .icon-btn:hover{color:#fff;background:var(--brand);border-color:var(--brand);transform:translateY(-1px)}

#appShell .main-area{background:#f8f9fa}
#appShell .topbar p{color:var(--muted)}
#appShell .topbar h2{color:#111}
#appShell .role-badge{background:var(--greensoft);color:var(--brand);border:1px solid rgba(28,111,82,.1)}
#appShell .avatar{background:linear-gradient(145deg,var(--brand),var(--brand2));box-shadow:0 6px 16px rgba(28,111,82,.18)}

#appShell .hero{
  border:1px solid #edeff2;
  background:#f2f3f6;
  box-shadow:0 6px 18px rgba(17,17,17,.05);
}
#appShell .hero::before{background:radial-gradient(circle at 35% 30%,#8adfc4,#26986b 55%,#123b2c 100%);box-shadow:none}
#appShell .hero::after{border-color:rgba(255,255,255,.4)}
#appShell .hero h3{color:#111}
#appShell .hero p{color:#3c3c3c}
#appShell .hero .kicker{color:var(--brand)}
#appShell .hero .primary{background:#38bb93;box-shadow:0 9px 22px rgba(56,187,147,.2)}
#appShell .hero .primary:hover{background:#26986b}

#appShell .metric::before{background:var(--brand2)}
#appShell .metric:nth-child(2)::before{background:#4c4a9e}
#appShell .metric:nth-child(3)::before{background:var(--amber)}
#appShell .metric:nth-child(4)::before{background:var(--brand)}
#appShell .metric:nth-child(5)::before{background:#8a6a1f}
#appShell .metric .metric-top{color:var(--muted)}
#appShell .metric strong{color:#111}
#appShell .metric.warn strong{color:var(--amber)}

#appShell .panel,
#appShell .group-card,
#appShell .folder-card,
#appShell .subfolder-card,
#appShell .dossier-card,
#appShell .import-card,
#appShell .review-card,
#appShell .media-tile{
  border-color:#edeff2;
  background:#fff;
  box-shadow:0 6px 18px rgba(17,17,17,.05);
}
#appShell .panel-head h3,
#appShell .section-head h3{color:#111}
#appShell .panel-head p,
#appShell .section-head p{color:var(--muted)}

#appShell .group-workspace-hero,
#appShell .subgroup-hero{
  border:1px solid #edeff2;
  background:linear-gradient(125deg,#eefaf5,#fff 57%,#f2f3f6);
  box-shadow:0 6px 18px rgba(17,17,17,.05);
}
#appShell .group-workspace-hero h3,
#appShell .subgroup-hero h3{color:#111}
#appShell .workspace-stats div{border-color:#edeff2;background:#fff}
#appShell .workspace-stats strong{color:var(--brand)}
#appShell .folder-card:hover,
#appShell .subfolder-card:hover,
#appShell .dossier-card:hover{border-color:rgba(28,111,82,.25);box-shadow:0 12px 28px rgba(17,17,17,.08)}
#appShell .folder-open-area:hover,
#appShell .subfolder-open:hover{background:#f4fbf8}
#appShell .folder-icon,
#appShell .subfolder-icon{
  background:linear-gradient(145deg,var(--brand2),var(--brand));
  box-shadow:0 9px 20px rgba(28,111,82,.18);
}
#appShell .folder-arrow{color:var(--brand)}
#appShell .folder-actions,
#appShell .subfolder-actions{border-top-color:#edeff2;background:#fbfefb}

#appShell .btn.primary{
  color:#fff;
  background:#38bb93;
  box-shadow:0 9px 22px rgba(56,187,147,.22);
}
#appShell .btn.primary:hover{background:#26986b;box-shadow:0 12px 26px rgba(38,150,107,.26)}
#appShell .btn.secondary{border-color:#dfe2e7;background:#fff;color:#3c3c3c}
#appShell .btn.soft{background:var(--greensoft);color:var(--brand)}
#appShell .mini-btn{border-color:#dfe2e7;color:#3c3c3c;background:#fff}
#appShell .mini-btn:hover{border-color:var(--brand2);background:#eefaf5;color:var(--brand)}
#appShell .breadcrumb-btn{color:var(--brand)}

#appShell .input,
#appShell .select,
#appShell .textarea{border-color:#dfe2e7;background:#fff;color:#111}
#appShell .input:focus,
#appShell .select:focus,
#appShell .textarea:focus{border-color:rgba(56,187,147,.55);box-shadow:0 0 0 4px rgba(56,187,147,.12)}
#appShell .participant-tools,
#appShell .destination-row{border-color:#edeff2;background:#f4fbf8}
#appShell .upload-drop{border-color:rgba(56,187,147,.4);background:#f4fbf8}
#appShell .import-icon{color:var(--brand);background:var(--greensoft)}
#appShell .ai-process-box{background:var(--greensoft);color:var(--brand)}
#appShell .active-destination{border-color:rgba(56,187,147,.4);background:#eefaf5}

#appShell table{background:#fff}
#appShell .import-result b{color:#111}
#appShell .import-result.error{color:var(--red);font-weight:700}
#appShell th{color:var(--muted);background:#f6f7f8;border-bottom-color:#edeff2}
#appShell td{border-bottom-color:rgba(17,23,20,.07)}
#appShell tbody tr:hover{background:#f8fbf9}
#appShell .folio{color:var(--brand)}
#appShell .status.review,
#appShell .status.completed_with_review{background:var(--ambersoft);color:var(--amber)}
#appShell .tabs .tab.active{border-color:var(--brand);background:var(--brand);color:#fff}
#appShell .bubble{border-color:#edeff2;background:#fff;box-shadow:0 6px 18px rgba(17,17,17,.05)}
#appShell .doc-link{color:var(--brand);background:var(--greensoft)}
#appShell .chat-day span{border-color:#edeff2;background:#f2f3f6;color:var(--muted)}

.modal-backdrop{background:rgba(17,23,20,.5)}
.modal{border-color:#edeff2;background:#fff;box-shadow:0 34px 100px rgba(17,23,20,.24)}
.modal-close{border-color:#edeff2;color:var(--brand);background:#fff}
.toast{background:#16201c;box-shadow:0 18px 44px rgba(17,23,20,.24)}
.confirm-overlay{background:rgba(17,23,20,.5)}
.confirm-dialog{background:#fff;border-color:#edeff2;box-shadow:0 30px 90px rgba(17,23,20,.24)}
.confirm-icon{background:var(--redsoft);color:var(--red);border-color:rgba(166,61,55,.12)}
.confirm-kicker{color:var(--brand)}
.confirm-note{background:#f2f3f6;border-color:#edeff2}
.confirm-note>span{background:var(--brand)}
.confirm-danger-btn{background:var(--red);border-color:var(--red);box-shadow:0 9px 22px rgba(166,61,55,.2)}

#appShell .folder-kind{color:var(--muted)}
#appShell .folder-copy .folder-kind,
#appShell .subfolder-main .folder-kind{color:var(--brand)}
#appShell .subfolder-title .code{
  border:1px solid rgba(28,111,82,.16);
  background:linear-gradient(145deg,#eefaf5,#fff);
  box-shadow:none;
}
#appShell .group-identity{border:1px solid #edeff2;background:#fff;box-shadow:none}
#appShell .group-identity span{color:var(--muted)}
#appShell .group-identity b{color:#111}
.group-form-intro{border:1px solid #edeff2;background:linear-gradient(135deg,#eefaf5,#fff)}
.group-form-intro>span{background:linear-gradient(145deg,var(--brand2),var(--brand));box-shadow:0 8px 20px rgba(28,111,82,.18)}
.group-form-intro b{color:#111}
.group-form-intro small{color:var(--muted)}

#appShell .code-direct-card{
  border-color:#edeff2;
  background:linear-gradient(145deg,#fff 0%,#fbfefc 68%,#eefaf5 100%);
  box-shadow:0 6px 18px rgba(17,17,17,.05);
}
#appShell .code-direct-card::before{background:linear-gradient(180deg,var(--brand2),var(--brand))}
#appShell .code-direct-card .folder-icon{background:linear-gradient(145deg,var(--brand2),var(--brand));box-shadow:0 13px 27px rgba(28,111,82,.2)}
#appShell .code-direct-card .folder-copy h4{color:#111}
#appShell .code-direct-card .folder-copy .wa{color:var(--muted)}
#appShell .code-direct-card .counts span{border:1px solid #edeff2;background:#fff}
#appShell .code-direct-card .folder-actions{background:#fff}
#appShell .code-workspace-hero{border-color:#edeff2;background:linear-gradient(125deg,#eefaf5,#fff 58%,#f2f3f6)}
.code-only-form .select,
.code-only-form .input{color:#111}

#appShell #nav{scrollbar-color:rgba(28,111,82,.3) transparent}
#appShell #nav::-webkit-scrollbar-thumb{background:rgba(28,111,82,.25)}
#appShell .main-area{scrollbar-color:rgba(28,111,82,.3) transparent}
#appShell .main-area::-webkit-scrollbar-thumb{background:rgba(28,111,82,.28)}

#appShell .code-global-search{background:linear-gradient(135deg,#fff,#f2f3f6);border-color:#edeff2}
#appShell .code-search-hint{background:rgba(28,111,82,.06)}
#appShell .code-result-card{background:#fff;box-shadow:0 7px 20px rgba(17,17,17,.05)}

@media (max-width:780px){
  body{background:#f2f3f6}
  #appShell .sidebar{border:1px solid #edeff2;box-shadow:0 14px 38px rgba(17,23,20,.12)}
  #appShell .nav-item.active{box-shadow:inset 0 -3px 0 var(--brand2)}
}

#appShell .transcript-download-btn{text-decoration:none}
