:root{--blue:#174b7a;--blue-dark:#0e355a;--blue-soft:#eaf3f9;--surface:#fff;--bg:#f4f7f9;--text:#23313c;--muted:#657783;--line:#dbe4ea;--success:#26734d;--success-bg:#e9f6ef;--warning:#8a6419;--warning-bg:#fff6e2;--danger:#9c3434;--danger-bg:#fbecec;--sidebar:272px;--shadow:0 8px 26px rgba(24,55,78,.07)}
*{box-sizing:border-box}html{font-size:17px}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}button,input,textarea,select{font:inherit}button{color:inherit}
.loading-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#123e67,#1d5e91)}.loading-card{background:#fff;border-radius:18px;padding:28px 30px;display:grid;justify-items:center;text-align:center;gap:9px;box-shadow:0 20px 60px rgba(0,0,0,.2)}.loading-card img{width:116px;height:auto}.loading-card strong{font-size:1.2rem;color:var(--blue-dark)}.loading-card span{color:var(--muted)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#123f69 0%,#174b7a 58%,#103b63 100%);color:#fff;z-index:30;display:flex;flex-direction:column;box-shadow:8px 0 26px rgba(19,49,72,.12)}.sidebar-brand{padding:23px 20px 20px;display:flex;gap:15px;align-items:center;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-brand img{width:76px;height:auto;flex:0 0 auto}.sidebar-brand strong{display:block;font-size:1.05rem}.sidebar-brand span{display:block;font-size:.86rem;opacity:.76;margin-top:1px}.side-nav{padding:20px 14px;display:grid;gap:8px;flex:1;align-content:start}.nav-button{border:0;width:100%;background:transparent;color:rgba(255,255,255,.84);display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:11px;cursor:pointer;text-align:left;font-weight:750}.nav-button:hover{background:rgba(255,255,255,.08);color:#fff}.nav-button.active{background:#fff;color:var(--blue-dark);box-shadow:0 6px 18px rgba(0,0,0,.12)}.nav-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.1);font-size:.88rem;font-weight:900}.nav-button.active .nav-icon{background:var(--blue-soft);color:var(--blue)}.sidebar-footer{padding:14px;border-top:1px solid rgba(255,255,255,.12)}.account-card{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:rgba(255,255,255,.08)}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#a6313c;color:#fff;font-weight:850}.account-copy{min-width:0}.account-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.93rem}.account-copy small{display:block;opacity:.68;font-size:.79rem}.logout-button{width:100%;margin-top:9px;border:1px solid rgba(255,255,255,.16);background:transparent;color:#fff;padding:10px 12px;border-radius:10px;cursor:pointer}.logout-button:hover{background:rgba(255,255,255,.08)}
.main-area{margin-left:var(--sidebar);min-height:100vh}.topbar{min-height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:15px 34px;position:sticky;top:0;z-index:20}.menu-button{display:none;border:0;background:var(--blue-soft);color:var(--blue);width:42px;height:42px;border-radius:10px;font-size:1.25rem;cursor:pointer}.topbar-context{min-width:0;flex:1}.topbar-context h1{font-size:1.72rem;line-height:1.2;margin:0;color:var(--blue-dark)}.topbar-context p{margin:4px 0 0;color:var(--muted);font-size:.94rem}.topbar-user{font-size:.9rem;color:var(--muted);white-space:nowrap}.content-area{max-width:1420px;margin:0 auto;padding:30px 34px 58px}
.page-intro{margin-bottom:22px}.page-intro h2{font-size:1.78rem;margin:0 0 6px;color:var(--blue-dark)}.page-intro p{margin:0;color:var(--muted);max-width:900px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:850;line-height:1.2}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.ok{background:var(--success-bg);color:var(--success)}.badge.warn{background:var(--warning-bg);color:var(--warning)}.badge.danger{background:var(--danger-bg);color:var(--danger)}
.tramite-list{display:grid;gap:16px}.tramite-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:21px 22px;box-shadow:var(--shadow)}.tramite-main{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.tramite-title{display:flex;gap:14px;align-items:center}.tramite-title h3{margin:0;color:var(--blue-dark);font-size:1.25rem}.tramite-title p{margin:2px 0 0;color:var(--muted);font-size:.9rem}.degree-mark{width:44px;height:44px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.degree-mark.large{width:54px;height:54px;font-size:1.05rem}.status-copy{margin:15px 0 0;color:var(--muted);max-width:940px}.tramite-actions{margin-top:16px}.status-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);gap:22px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow);margin:16px 0 20px}.eyebrow{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);font-weight:850}.status-panel h2{font-size:1.55rem;line-height:1.3;margin:6px 0 8px;color:var(--blue-dark)}.status-panel p{margin:0;color:var(--muted)}.status-side{border-left:1px solid var(--line);padding-left:22px}.status-side span{display:block;color:var(--muted);font-size:.82rem;margin-bottom:5px}.status-side strong{display:block;color:var(--blue-dark)}
.degree-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.degree-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:21px;box-shadow:var(--shadow);display:flex;flex-direction:column}.degree-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.degree-card h3{font-size:1.35rem;margin:17px 0 2px;color:var(--blue-dark)}.degree-card .reference{margin:0;color:var(--muted);font-size:.88rem}.progress-line{height:8px;border-radius:99px;background:#e8eef2;overflow:hidden;margin:19px 0 8px}.progress-line span{display:block;height:100%;background:var(--blue);border-radius:99px}.degree-meta{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:var(--muted)}.degree-meta strong{color:var(--blue-dark)}.degree-next{color:var(--muted);font-size:.88rem;min-height:54px}.btn.full{width:100%;margin-top:auto}
.workspace-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.workspace-status{display:flex;align-items:center;gap:10px}.workspace-ref{color:var(--muted);font-size:.86rem}.workspace-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:18px}.workspace-tab{border:0;background:transparent;color:var(--muted);padding:11px 13px;border-bottom:3px solid transparent;cursor:pointer;font-weight:750}.workspace-tab:hover{color:var(--blue)}.workspace-tab.active{color:var(--blue-dark);border-bottom-color:var(--blue)}.back-link{border:0;background:transparent;color:var(--blue);padding:6px 0;cursor:pointer;font-weight:750}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.surface{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.surface-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.surface-head h3{margin:0;color:var(--blue-dark);font-size:1.18rem}.surface-head p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.surface-body{padding:20px 21px}.detail-list{display:grid;gap:10px}.detail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:14px 15px}.detail-row strong{display:block}.detail-row small{display:block;color:var(--muted);font-size:.85rem;margin-top:2px}.check-list{display:grid;gap:10px}.check-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:13px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:14px 15px}.check-mark{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#edf2f5;color:#6d7c87;font-weight:900}.check-item.done .check-mark{background:var(--success-bg);color:var(--success)}.check-item strong{display:block}.check-item small{display:block;color:var(--muted);font-size:.84rem;margin-top:3px}.section-list{display:grid;gap:11px}.section-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:15px 16px;cursor:pointer;text-align:left}.section-row:hover{border-color:#b5cdda;background:#f8fbfd}.section-row strong{display:block}.section-row small{display:block;color:var(--muted);font-size:.85rem;margin-top:3px}.editor{margin-top:18px}.form-card{border:1px solid var(--line);background:#fbfcfd;border-radius:13px;padding:20px}.form-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.form-title h3{margin:3px 0 0;color:var(--blue-dark)}.field{margin-bottom:17px}.field label{display:block;font-weight:780;margin-bottom:7px}.field small{display:block;color:var(--muted);font-size:.82rem;margin-top:5px}.field input,.field textarea{width:100%;border:1px solid #c9d5dd;border-radius:10px;padding:12px 13px;background:#fff;color:var(--text);font-size:1rem}.field input:focus,.field textarea:focus{outline:3px solid rgba(23,75,122,.12);border-color:#88aeca}.field input:disabled{background:#f2f5f7;color:#677985}.field textarea{min-height:190px;resize:vertical}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}.actions.left{justify-content:flex-start;margin:0 0 16px}.btn{border:0;border-radius:10px;padding:10px 15px;font-size:.92rem;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-dark)}.btn.secondary{background:#edf2f5;color:#405566}.btn:disabled{opacity:.46;cursor:not-allowed}.notice{border-radius:13px;padding:15px 17px;margin-bottom:18px;border:1px solid #bfd8e7;background:#edf7fc;color:#234f69}.notice strong{display:block;margin-bottom:2px;color:var(--blue-dark)}.notice.warn{border-color:#ead09c;background:var(--warning-bg);color:#725217}.evidence-rule{display:grid;gap:2px;border-left:4px solid var(--blue);background:var(--blue-soft);padding:12px 14px;border-radius:0 10px 10px 0;margin:18px 0;color:#35556b}.evidence-rule strong{color:var(--blue-dark)}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:680px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);padding:13px 12px;vertical-align:top}.data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafb}.data-table td{font-size:.92rem}.timeline{position:relative;margin-left:7px}.timeline::before{content:"";position:absolute;left:10px;top:4px;bottom:4px;width:2px;background:#dce6ec}.timeline-item{position:relative;padding:0 0 18px 36px}.timeline-dot{position:absolute;left:2px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid var(--blue)}.timeline-item strong{display:block}.timeline-item small{display:block;color:var(--muted);margin-top:2px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-block{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.profile-block header{padding:18px 20px;border-bottom:1px solid var(--line)}.profile-block header h3{margin:0;color:var(--blue-dark)}.profile-block header p{margin:4px 0 0;color:var(--muted);font-size:.88rem}.profile-block .body{padding:20px}.save-message{margin-top:12px;border-radius:9px;padding:10px 12px;background:var(--success-bg);color:var(--success);font-weight:750}.save-message.error{background:var(--danger-bg);color:var(--danger)}.empty{border:1px dashed #b9c7d0;border-radius:12px;padding:28px;text-align:center;color:var(--muted)}.empty.compact{padding:18px}.error{border:1px solid #e5b6b6;background:var(--danger-bg);color:#842f2f;border-radius:12px;padding:14px 15px}.sidebar-backdrop{position:fixed;inset:0;background:rgba(8,26,40,.55);z-index:25}
@media(max-width:1180px){.degree-grid{grid-template-columns:1fr 1fr}.grid-2,.profile-grid{grid-template-columns:1fr}.status-panel{grid-template-columns:1fr}.status-side{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}}
@media(max-width:860px){:root{--sidebar:292px}.sidebar{transform:translateX(-100%);transition:.2s ease}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.menu-button{display:grid;place-items:center}.topbar{padding:14px 18px}.topbar-user{display:none}.content-area{padding:22px 18px 46px}.sidebar-brand img{width:82px}}
@media(max-width:640px){html{font-size:16px}.topbar-context h1{font-size:1.38rem}.topbar-context p{font-size:.84rem}.content-area{padding:18px 13px 40px}.degree-grid{grid-template-columns:1fr}.tramite-main,.workspace-toolbar{align-items:flex-start;flex-direction:column}.workspace-status{align-items:flex-start;flex-direction:column}.degree-meta{flex-direction:column;gap:3px}.check-item{grid-template-columns:32px 1fr}.check-item>.badge{grid-column:2;justify-self:start}.detail-row{grid-template-columns:1fr}.actions{flex-direction:column}.actions .btn{width:100%}.sidebar{width:min(88vw,315px)}}

/* ============================================================
   V11 - AJUSTES DE EXPERIENCIA ESTUDIANTE
   ============================================================ */
[hidden]{display:none!important}
:root{--sidebar:294px}
.sidebar{overflow:hidden}
.sidebar-brand{padding:24px 20px 22px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left}
.sidebar-brand img{width:118px;max-width:44%;height:auto;align-self:flex-start}
.sidebar-brand strong{font-size:1.16rem;line-height:1.2}
.sidebar-brand span{font-size:.94rem;margin-top:3px}
.side-nav{overflow:visible;padding-top:22px}
.degree-card-head{align-items:center}
.academic-state{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:800;white-space:nowrap}
.academic-state.preparing{background:#eef4f7;color:#496574}
.academic-state.active{background:var(--success-bg);color:var(--success)}
.degree-next{min-height:46px}
.badge{max-width:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
.detail-row{min-width:0}.detail-row>div{min-width:0}.detail-row small{overflow-wrap:anywhere}
.profile-grid.single-profile{grid-template-columns:minmax(0,820px)}
.profile-readonly{display:grid;gap:12px}
.profile-line{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}
.profile-line span{color:var(--muted)}.profile-line strong{overflow-wrap:anywhere;color:var(--blue-dark)}
.profile-security{margin:8px 0 0}.account-link{justify-self:start}
.guide-grid{display:grid;gap:18px}
.guide-panel{box-shadow:var(--shadow)}
.instruction-list{margin:0;padding-left:1.45rem;display:grid;gap:8px}.instruction-list.numbered{gap:10px}
.guide-checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.guide-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);border-radius:11px;padding:12px 13px}
.guide-item>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#edf2f5;color:#6c7e89;font-weight:900}
.guide-item.progress>span{background:var(--warning-bg);color:var(--warning)}.guide-item.done>span{background:var(--success-bg);color:var(--success)}
.guide-item small{display:block;color:var(--muted);margin-top:2px}.full-structure{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.full-structure summary{cursor:pointer;font-weight:800;color:var(--blue);margin-bottom:14px}.format-note{margin:16px 0 0;color:var(--muted);font-size:.9rem}
@media(max-width:860px){.sidebar-brand img{width:106px;max-width:42%}.sidebar{overflow-y:auto}.guide-checklist{grid-template-columns:1fr}}
@media(max-width:640px){.profile-line{grid-template-columns:1fr;gap:3px}.academic-state{white-space:normal}.sidebar-brand img{width:98px}}

/* v12 - etapas de entrega e instructivos */
.delivery-stage-list{display:grid;gap:14px}.delivery-stage{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px;border:1px solid var(--line,#d9e3ec);border-radius:16px;background:#fff}.delivery-stage h4{margin:4px 0 6px;font-size:1.15rem}.delivery-stage p{margin:0;color:var(--muted,#5b7185);line-height:1.55}.delivery-stage small{display:block;margin-top:8px;color:var(--muted,#5b7185)}.delivery-stage-action{min-width:220px;text-align:right}.delivery-stage-action small{max-width:240px;margin-left:auto}.guide-links{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.section-instructions{margin:0 0 18px;padding:14px 16px;border-left:4px solid #1f5c8d;background:#f2f7fb;border-radius:8px;color:#34566f;line-height:1.55}
@media(max-width:760px){.delivery-stage{align-items:stretch;flex-direction:column}.delivery-stage-action{min-width:0;text-align:left}.delivery-stage-action .btn{width:100%}.delivery-stage-action small{margin-left:0;max-width:none}}

/* ============================================================
   V13 - PRODUCCION CONTROLADA
   ============================================================ */
.report-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px}.field select{width:100%;border:1px solid #c9d5dd;border-radius:10px;padding:12px 13px;background:#fff;color:var(--text);font-size:1rem}.compact-btn{padding:7px 10px;font-size:.82rem;margin:2px 5px 2px 0}.data-table td:last-child{min-width:210px}.sidebar-brand img{width:138px;max-width:54%}.sidebar-brand{padding-top:26px}.report-grid .timeline-item div{margin-top:6px;color:var(--muted);font-size:.9rem}
@media(max-width:980px){.report-grid{grid-template-columns:1fr}}
.advisor-note{display:block;margin-top:6px;color:var(--muted);max-width:360px;white-space:normal}

/* ============================================================
   V13.1 - VISTA PREVIA DE BORRADORES Y CUENTA SIMPLIFICADA
   ============================================================ */
.preview-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}.preview-backdrop{position:absolute;inset:0;background:rgba(7,26,42,.62)}.preview-dialog{position:relative;width:min(920px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.28);border:1px solid var(--line)}.preview-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line)}.preview-dialog header h3{margin:3px 0 3px;color:var(--blue-dark);font-size:1.45rem}.preview-dialog header p{margin:0;color:var(--muted)}.preview-close{border:0;background:#eef3f6;color:var(--blue-dark);width:38px;height:38px;border-radius:10px;font-size:1.55rem;line-height:1;cursor:pointer}.preview-meta{padding:12px 24px;background:#f7fafc;border-bottom:1px solid var(--line);color:var(--muted);font-size:.9rem}.preview-body{padding:22px 24px;display:grid;gap:16px}.preview-field{border:1px solid var(--line);border-radius:12px;padding:15px 17px}.preview-field h4{margin:0 0 8px;color:var(--blue-dark);font-size:1rem}.preview-field>div{white-space:normal;overflow-wrap:anywhere}.preview-empty{color:var(--muted);font-style:italic}.preview-dialog footer{display:flex;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--line);background:#fbfcfd}@media(max-width:640px){.preview-modal{padding:10px}.preview-dialog{max-height:94vh}.preview-dialog header,.preview-body,.preview-meta,.preview-dialog footer{padding-left:16px;padding-right:16px}}
