:root{--navy:#123a66;--navy-2:#0c2d51;--blue:#1d64a5;--sky:#eaf4fd;--green:#18764a;--green-bg:#e9f7ef;--amber:#a85c00;--amber-bg:#fff4da;--ink:#172638;--muted:#627184;--line:#d8e1ea;--paper:#fff;--wash:#f4f7fa;--shadow:0 14px 38px rgba(17,47,78,.1)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;padding-bottom:84px;background:var(--wash);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.45}.topbar{min-height:94px;padding:20px max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;gap:16px;background:var(--navy-2);color:white;border-bottom:4px solid #4c9c72}.brand-mark{width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:10px;display:grid;gap:5px}.brand-mark span{display:block;border-radius:2px;background:#fff}.brand-mark span:nth-child(2){width:70%;background:#66d091}.eyebrow,.step{margin:0 0 3px;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800}.eyebrow{color:#9fd4b7}.topbar h1{font-family:Georgia,"Times New Roman",serif;margin:0;font-size:1.8rem;font-weight:700}.save-state{margin-left:auto;color:#d7e5f2;font-size:.85rem;display:flex;align-items:center;gap:8px}.save-state i{width:8px;height:8px;border-radius:50%;background:#66d091;box-shadow:0 0 0 4px rgba(102,208,145,.12)}main{width:min(1440px,calc(100% - 32px));margin:28px auto 50px}.setup-card,.workspace,.summary{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.setup-card{padding:24px 26px;display:grid;grid-template-columns:260px 1fr;gap:18px 32px;align-items:end}.step{color:var(--blue)}h2{font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;line-height:1.15;margin:4px 0}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:.86rem;font-weight:750;color:#34475b}input,select{width:100%;margin-top:7px;border:1px solid #b9c7d4;border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:1rem;padding:12px 13px;outline:none;transition:.2s}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,100,165,.12)}.local-note{grid-column:2;margin:0;color:var(--muted);font-size:.82rem}.workspace{margin-top:22px;overflow:hidden}.workspace-head{padding:24px 26px 20px;display:flex;justify-content:space-between;gap:20px;align-items:end}.help{margin:7px 0 0;color:var(--muted)}.progress-block{display:flex;gap:12px}.progress-block div{min-width:110px;padding:10px 14px;border-left:3px solid var(--blue);background:var(--sky);border-radius:0 10px 10px 0}.progress-block strong{display:block;font-size:1.45rem;color:var(--navy)}.progress-block span{font-size:.76rem;color:var(--muted)}.toolbar{border-top:1px solid var(--line);padding:14px 26px;display:flex;gap:12px;justify-content:space-between}.search{position:relative;width:min(440px,100%)}.search span{position:absolute;left:13px;top:15px;font-size:1.35rem;color:var(--muted)}.search input{margin:0;padding-left:40px}.ghost,.primary{border-radius:10px;padding:11px 17px;font:inherit;font-weight:800;cursor:pointer}.ghost{border:1px solid #bdc9d5;color:var(--navy);background:#fff}.ghost:hover{background:var(--wash)}.primary{border:0;background:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(18,58,102,.2)}.primary:hover{background:var(--blue)}.legend{display:flex;gap:20px;padding:0 26px 14px;color:var(--muted);font-size:.78rem}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.dot.selected{background:var(--blue)}.dot.complete{background:var(--green)}.dot.pending{background:#d48a18}.table-wrap{overflow:auto;border-top:1px solid var(--line)}.matrix{min-width:970px;display:grid;grid-template-columns:1fr 1fr 1fr}.matrix-header{position:sticky;top:0;z-index:2;padding:14px 18px;color:#fff;border-right:1px solid rgba(255,255,255,.2)}.matrix-header span,.matrix-header small{display:block;opacity:.8;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}.matrix-header strong{font-family:Georgia,"Times New Roman",serif;font-size:1.25rem}.plan-old{background:#153d68}.plan-mid{background:#21628f}.plan-new{background:#236b50}.matrix-rows{display:contents}.course-row{display:contents}.cell{min-height:70px;padding:11px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px;background:#fff}.course-row:nth-child(even) .cell{background:#fbfcfd}.cell-source{cursor:pointer}.cell-source:hover{background:#f0f6fb!important}.cell-source input{width:20px;height:20px;margin:0;accent-color:var(--blue);flex:0 0 auto}.code{display:inline-block;font-size:.77rem;font-weight:850;letter-spacing:.03em;color:var(--navy);background:#e7eef5;padding:3px 7px;border-radius:5px;margin-bottom:4px}.name{display:block;font-size:.9rem;font-weight:700;line-height:1.25}.cell-result{color:#7b8795}.cell-result.ready{background:var(--green-bg)!important;color:var(--ink);box-shadow:inset 4px 0 var(--green)}.cell-result.pending{background:var(--amber-bg)!important;color:var(--amber);box-shadow:inset 4px 0 #d28a1b}.status-label{font-size:.78rem;font-weight:800}.empty{padding:28px;text-align:center;color:var(--muted)}.summary{margin-top:22px;padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:24px}.summary p:not(.step){margin:8px 0 0;color:var(--muted)}.summary .primary{position:fixed;right:24px;bottom:24px;z-index:8;min-width:180px;box-shadow:0 12px 28px rgba(18,58,102,.32)}.toast{position:fixed;left:50%;bottom:88px;transform:translate(-50%,20px);background:#182b40;color:#fff;padding:11px 17px;border-radius:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}.print-view{display:none}
@media(max-width:760px){.topbar{padding:16px}.topbar h1{font-size:1.35rem}.save-state{display:none}main{width:min(100% - 20px,1440px);margin-top:14px}.setup-card{grid-template-columns:1fr;padding:20px}.setup-grid{grid-template-columns:1fr}.local-note{grid-column:1}.workspace-head{align-items:flex-start;flex-direction:column;padding:20px}.progress-block{width:100%}.progress-block div{flex:1}.toolbar{padding:12px 20px}.ghost{font-size:.8rem}.legend{padding:0 20px 12px;gap:12px;flex-wrap:wrap}.summary{align-items:stretch;flex-direction:column;padding:20px}.summary .primary{left:12px;right:12px;bottom:12px;width:auto}}
@media print{html,body{background:#fff}.topbar,main,.toast{display:none!important}.print-view{display:block!important;font-family:Arial,sans-serif;color:#000;padding:0}.print-header{text-align:center;border-bottom:2px solid #000;padding-bottom:10px}.print-header h1{font-family:Arial,sans-serif;font-size:15pt;margin:0}.print-header p{margin:4px 0 0;font-size:10pt}.print-meta{display:grid;grid-template-columns:1.5fr 1.5fr .7fr;gap:10px;margin:14px 0}.print-meta div{display:flex;gap:5px;font-size:9pt}.print-meta dt{font-weight:bold}.print-meta dd{margin:0}.print-view table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.5pt}.print-view th{background:#dfeaf4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-view th,.print-view td{border:1px solid #333;padding:6px;vertical-align:top}.print-view th small{font-weight:normal}.print-view td strong{display:block;font-size:8pt}.print-note{font-size:7.5pt;margin-top:10px}.print-view tr{break-inside:avoid}@page{size:letter landscape;margin:12mm}}
.topbar{display:grid;grid-template-columns:64px minmax(0,1fr) auto 64px;grid-template-areas:"kardex copy save informatica";background:linear-gradient(135deg,#f7fbff 0%,#e3f2fa 55%,#d2eaf6 100%);color:var(--navy-2);border-bottom-color:#4aa6b8;box-shadow:0 4px 18px rgba(17,47,78,.1)}
.header-logo{width:64px;height:64px;object-fit:contain;background:transparent;border:0;padding:0;filter:drop-shadow(0 3px 7px rgba(0,0,0,.28))}
.header-logo-kardex{grid-area:kardex;justify-self:start}.header-logo-informatica{grid-area:informatica;justify-self:end}.brand-copy{grid-area:copy;min-width:0}.topbar .eyebrow{color:#176b86}.save-state{grid-area:save;color:#48657a}
@media(max-width:760px){.topbar{grid-template-columns:46px minmax(0,1fr) 46px;grid-template-areas:"kardex copy informatica";gap:10px}.header-logo{width:46px;height:46px}.eyebrow{font-size:.64rem;letter-spacing:.08em}}
