:root{--navy:#102f4b;--gold:#c69a45;--ink:#162536;--muted:#6c7b88;--line:#dce3e8;--green:#16794b;--red:#b42318;--shadow:0 18px 45px #102f4b17}
*{box-sizing:border-box}
html{font-family:Inter,system-ui,"Segoe UI",sans-serif;color:var(--ink);background:#f7f9fa}
body{margin:0}
a{color:#173f61;text-decoration:none}
button,.btn{border:0;border-radius:10px;background:var(--navy);color:#fff;padding:11px 17px;font-weight:700;cursor:pointer;display:inline-block}
.btn.secondary,button.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}
input,select,textarea{width:100%;border:1px solid #ccd6dd;border-radius:9px;background:#fff;padding:11px 12px;font:inherit}
input:focus,select:focus,textarea:focus{outline:3px solid #c69a4533;border-color:var(--gold)}
label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#415466}
small{display:block;color:var(--muted);font-weight:500}
.sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:var(--navy);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:5}
.brand{display:grid;grid-template-columns:45px 1fr;grid-template-rows:auto auto;gap:0 10px;color:#fff;align-items:center;margin:0 7px 30px}
.brand span,.public-brand>span{grid-row:1/3;width:45px;height:45px;border-radius:12px;background:var(--gold);display:grid;place-items:center;font-family:Georgia,serif;font-weight:800;color:var(--navy)}
.brand b{letter-spacing:2px}
.brand small{color:#cbd8e1}
.sidebar nav{display:flex;flex-direction:column;gap:5px}
.sidebar nav a{color:#dbe6ed;padding:11px 12px;border-radius:9px}
.sidebar nav a:hover{background:#ffffff1a}
.side-user{margin-top:auto;border-top:1px solid #ffffff26;padding:18px 8px 0}
.side-user b,.side-user a{display:block;color:#fff;margin-top:4px}
.side-user a{font-size:12px;color:#e8cf9e;margin-top:10px}
.main{margin-left:235px;padding:36px;min-height:100vh;max-width:1500px}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.page-head h1{margin:4px 0;font-size:29px;color:var(--navy)}
.page-head p{margin:0;color:var(--muted)}
.eyebrow{font-size:11px;letter-spacing:2.2px;color:#9b742d;font-weight:800}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stats article,.panel,.asset,.cert-card{background:#fff;border:1px solid #e4e9ec;border-radius:15px;box-shadow:var(--shadow)}
.stats article{padding:22px}
.stats b{display:block;font-size:32px;color:var(--navy);margin-top:8px}
.panel{padding:22px;margin-bottom:22px}
.panel-title,.select-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.panel-title h2{font-size:18px;margin:0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:#667784;font-size:11px;text-transform:uppercase;letter-spacing:.7px;background:#f7f9fa}
th,td{padding:12px;border-bottom:1px solid #e7ecef}
.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:800;text-transform:uppercase;background:#edf1f3}
.badge.vigente,.badge.aprobado{background:#e1f5ea;color:var(--green)}
.badge.revocado,.badge.no_aprobado{background:#fde7e5;color:var(--red)}
.badge.pendiente{background:#fff1cf;color:#946c13}
.search{display:flex;gap:10px;max-width:620px;margin-bottom:18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.wide{grid-column:1/-1}
textarea{min-height:90px}
.editor{min-height:190px}
.check{flex-direction:row;align-items:center}
.check input{width:auto}
.actions{display:flex;gap:10px}
.alert{padding:13px 16px;border-radius:10px;margin-bottom:18px;background:#e9f3ff;color:#1c4f80}
.alert.success{background:#e1f5ea;color:var(--green)}
.alert.error{background:#fde7e5;color:var(--red)}
.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.asset{overflow:hidden}
.asset img{width:100%;height:170px;object-fit:contain;background:#eef2f4}
.asset div{padding:14px}
.upload-box{display:flex;gap:18px;align-items:end}
.upload-box label{flex:1}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.student-picker{border:1px solid var(--line);border-radius:12px;max-height:430px;overflow:auto;margin:14px 0 20px}
.student-picker>label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid #edf0f2}
.student-picker input{width:auto}
.select-head input{width:330px}
.danger-check{color:var(--red);margin-bottom:20px}
.public-main{min-height:100vh;background:linear-gradient(145deg,#f5f3ed,#fff 50%,#eaf0f3)}
.public-head{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 7%;background:#fff;border-bottom:1px solid #e6ebee}
.public-brand{display:flex;align-items:center;gap:10px}
.public-brand b,.public-brand small{display:block}
.public-brand b{letter-spacing:2px;color:var(--navy)}
.hero{min-height:calc(100vh - 78px);display:grid;grid-template-columns:1.2fr .8fr;gap:7vw;align-items:center;padding:8%}
.hero h1{font:48px/1.08 Georgia,serif;color:var(--navy);max-width:720px;margin:10px 0 18px}
.hero>div>p{font-size:18px;line-height:1.6;color:var(--muted)}
.portal-card,.verify-card{background:#fff;padding:32px;border-radius:18px;box-shadow:0 30px 70px #102f4b26;border-top:5px solid var(--gold)}
.portal-card label{margin:16px 0}
.portal-card button{width:100%;margin:6px 0 14px}
.auth{min-height:100vh;display:grid;place-items:center;padding:30px;background:var(--navy)}
.auth-card{width:min(420px,100%);background:#fff;padding:35px;border-radius:18px;text-align:center}
.logo-mark{margin:0 auto 18px;width:62px;height:62px;border-radius:16px;background:var(--gold);display:grid;place-items:center;font:800 24px Georgia;color:var(--navy)}
.auth-card label{text-align:left;margin:16px 0}
.auth-card button{width:100%;margin-bottom:16px}
.verify-wrap{min-height:calc(100vh - 78px);display:grid;place-items:center;padding:40px}
.verify-card{width:min(580px,100%);text-align:center}
.verify-card dl{display:grid;grid-template-columns:150px 1fr;text-align:left;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:25px 0}
.verify-card dt,.verify-card dd{margin:0;padding:10px 13px;border-bottom:1px solid var(--line)}
.verify-card dt{background:#f5f7f8;color:var(--muted);font-size:12px;font-weight:700}
.status-orb{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#e1f5ea;color:var(--green);font-size:34px;font-weight:800}
.status-orb.revocado,.status-orb.invalid{background:#fde7e5;color:var(--red)}
.student-space{padding:55px 8%}
.student-space h1{font-family:Georgia,serif;color:var(--navy)}
.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.cert-card{padding:22px;position:relative}
.cert-icon{width:42px;height:42px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center}
.cert-select{display:block;width:42px;height:42px;margin:0}.cert-select input{position:absolute;opacity:0;pointer-events:none}.cert-select span{width:42px;height:42px;border-radius:10px;background:#dfe6eb;color:#657481;display:grid;place-items:center;font-size:18px;cursor:pointer;transition:.18s}.cert-select input:checked+span{background:var(--navy);color:#fff;box-shadow:0 0 0 3px #168fd333}.portal-download-toolbar{position:sticky;top:10px;z-index:4;margin:22px 0 -10px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);display:flex;align-items:center;gap:18px}.portal-download-toolbar label{display:flex;align-items:center;gap:8px;margin:0;font-weight:800;color:var(--navy)}.portal-download-toolbar label input{width:18px;height:18px;accent-color:var(--accent)}.portal-download-toolbar span{margin-left:auto;color:var(--muted);font-size:13px}.portal-download-toolbar button{padding:11px 16px}
.cert-card>.badge{position:absolute;right:18px;top:18px}
.cert-card h3{margin:18px 0 7px}
.cert-card p{color:var(--muted);font-size:13px}
.empty{text-align:center;padding:45px;color:var(--muted)}
.credential-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.share-panel{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.share-panel summary{cursor:pointer;color:var(--navy);font-size:13px;font-weight:800}
.social-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
.social{display:flex;align-items:center;justify-content:center;min-height:39px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:700 12px/1.2 Inter,system-ui,sans-serif;text-align:center;background:#fff;color:var(--navy);cursor:pointer}
.social.linkedin{background:#0a66c2;color:#fff;border-color:#0a66c2}
.social.linkedin-outline{color:#0a66c2;border-color:#0a66c2}
.social.whatsapp{background:#178b55;color:#fff;border-color:#178b55}
.social.facebook{background:#1877f2;color:#fff;border-color:#1877f2}
.social.instagram{background:linear-gradient(110deg,#833ab4,#fd1d1d,#fcb045);color:#fff;border-color:#d62e72}
.social.x{background:#111;color:#fff;border-color:#111}
.social.telegram{color:#168acd;border-color:#168acd}
.social.image{background:var(--navy);color:#fff}
.credential-page{display:grid;grid-template-columns:minmax(0,820px) minmax(280px,390px);gap:26px;align-items:start;padding:48px 6%;max-width:1320px;margin:auto}
.credential-public-card,.credential-share{background:#fff;border:1px solid #e4e9ec;border-radius:18px;box-shadow:var(--shadow);padding:30px}
.credential-public-card{border-top:6px solid var(--gold)}
.credential-brand{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px}
.credential-brand img{max-width:230px;max-height:75px;object-fit:contain}
.verified-seal{display:inline-flex;align-items:center;background:#e1f5ea;color:var(--green);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}
.credential-public-card h1{font:36px/1.16 Georgia,serif;color:var(--navy);margin:8px 0 26px}
.credential-public-card h2{font:30px/1.2 Georgia,serif;color:var(--navy);margin:3px 0 25px}
.awarded{color:var(--muted);margin:0}
.credential-public-card dl{display:grid;grid-template-columns:155px 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.credential-public-card dt,.credential-public-card dd{margin:0;padding:11px 14px;border-bottom:1px solid var(--line)}
.credential-public-card dt{font-size:12px;font-weight:800;color:var(--muted);background:#f7f9fa}
.credential-topics{margin-top:22px;padding:18px;background:var(--brand-surface);border-radius:12px}
.credential-topics p{white-space:normal;line-height:1.55;margin-bottom:0}
.credential-share{position:sticky;top:24px}
.credential-share>img{width:100%;border-radius:12px;border:1px solid var(--line);background:var(--navy);aspect-ratio:1200/630;object-fit:cover}
.credential-share h3{margin:18px 0 4px;color:var(--navy)}
.credential-share p{font-size:13px;color:var(--muted)}
.template-filters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(210px,1.4fr) minmax(140px,.7fr) auto;gap:14px;align-items:end;margin-bottom:14px}
.template-filters label{margin:0}.template-filters input,.template-filters select{margin-top:6px}.filter-actions{display:flex;gap:8px;align-items:center;padding-bottom:1px}.result-count{margin:0 0 12px;color:var(--muted);font-size:13px}.result-count b{color:var(--navy)}
.record-filters{display:grid;grid-template-columns:minmax(240px,1.7fr) minmax(220px,1.4fr) minmax(150px,.8fr) minmax(130px,.7fr) auto;gap:14px;align-items:end;margin-bottom:14px}.record-filters label,.certificate-filters label{margin:0}.record-filters input,.record-filters select,.certificate-filters input,.certificate-filters select{margin-top:6px}.certificate-filters{display:grid;grid-template-columns:minmax(230px,1.6fr) minmax(220px,1.3fr) minmax(130px,.7fr) minmax(145px,.75fr) minmax(145px,.75fr) auto;gap:12px;align-items:end;margin-bottom:14px}
.bulk-panel{padding:0;overflow:hidden}.bulk-toolbar{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#f7f9fb;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.bulk-toolbar>div{margin-right:auto;display:flex;flex-direction:column}.bulk-toolbar small{color:var(--muted)}.bulk-toolbar input{width:min(310px,30vw);margin:0;padding:10px 12px}.bulk-toolbar button{padding:10px 14px}.bulk-toolbar button.danger{background:var(--red)}.select-column{width:42px;text-align:center}.select-column input{width:17px;height:17px;accent-color:var(--accent)}
.quick-status-form{margin:0}.status-toggle{border:0;border-radius:999px;padding:7px 11px 7px 8px;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.status-toggle span{width:9px;height:9px;border-radius:50%;background:currentColor}.status-toggle.is-active{background:#e1f5ea;color:var(--green)}.status-toggle.is-inactive{background:#eef1f3;color:#6f7a82}.template-inactive{background:#fafbfc}.template-inactive>td:not(:last-child){opacity:.72}
.career-match{display:block!important;margin-top:5px;font-size:11px!important;font-weight:800}.career-match.matched{color:var(--green)!important}.career-match.unmatched{color:var(--red)!important}.omission-report{border-left:5px solid var(--red);margin-bottom:20px}.omission-report h2{color:var(--red);margin-bottom:3px}.omission-reason{display:inline-block;background:#fde7e5;color:var(--red);border-radius:8px;padding:6px 9px;font-size:12px;font-weight:700}
.plan-assignment-head{display:grid;grid-template-columns:1fr minmax(320px,42%);gap:20px;align-items:end;margin-bottom:18px}.plan-assignment-head h2{margin-bottom:3px}.plan-assignment-head label{margin:0}.plan-checklist{border:1px solid var(--line);border-radius:12px;max-height:480px;overflow:auto;margin-bottom:20px}.plan-checklist>label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid #edf0f2;margin:0}.plan-checklist>label:last-child{border-bottom:0}.plan-checklist input{width:18px;height:18px;accent-color:var(--accent)}.plan-checklist b,.plan-checklist small{display:block}.plan-checklist small{color:var(--muted);margin-top:3px}.student-actions{white-space:nowrap}.student-actions a{display:inline-block;margin-right:7px}
.social-designer{display:grid;grid-template-columns:minmax(520px,1.35fr) minmax(430px,1fr);gap:20px;align-items:start}.social-preview-panel{position:sticky;top:20px}.social-preview{position:relative;aspect-ratio:1200/630;overflow:hidden;border-radius:12px;background-color:var(--card-primary);background-size:cover;background-position:center;color:var(--card-text);box-shadow:inset 0 0 70px #0003}.preview-accent{position:absolute;left:0;top:0;bottom:0;width:1.5%;background:var(--card-accent)}.preview-item{position:absolute;line-height:1.15}.preview-logo{background:#fff;padding:8px;border-radius:4px}.preview-logo img{display:block;width:100%;max-height:62px;object-fit:contain}.preview-verified{color:var(--card-accent);font-weight:900;letter-spacing:1px}.preview-title{font-weight:900}.preview-student{opacity:.88}.preview-meta{opacity:.82}.preview-qr{display:grid;place-items:center;background:#fff;color:#111;border:8px solid #fff;font-weight:900;font-size:22px}.social-preview-panel>small{display:block;color:var(--muted);margin-top:10px}.social-controls h2{margin-top:4px}.social-component-table{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:12px 0 20px}.social-component-head,.social-component-row{display:grid;grid-template-columns:minmax(120px,1.5fr) repeat(4,minmax(62px,.7fr)) 58px;gap:7px;align-items:center;padding:8px 10px}.social-component-head{background:#f1f4f6;font-size:11px;color:var(--muted)}.social-component-row{border-top:1px solid var(--line)}.social-component-row input{margin:0;padding:8px}.social-component-row input[type=checkbox]{width:18px;height:18px;justify-self:center}
@media(max-width:1050px){.credential-page{grid-template-columns:1fr}.credential-share{position:static}}
@media(max-width:1250px){.record-filters,.certificate-filters{grid-template-columns:1fr 1fr 1fr}.filter-actions{padding-bottom:0}}
@media(max-width:1100px){.template-filters{grid-template-columns:1fr 1fr}.filter-actions{padding-bottom:0}.bulk-toolbar{flex-wrap:wrap}.bulk-toolbar>div{width:100%}.bulk-toolbar input{width:100%;flex:1}}
@media(max-width:1200px){.social-designer{grid-template-columns:1fr}.social-preview-panel{position:static}}
@media(max-width:900px){.sidebar{position:static;width:auto}
.sidebar nav{flex-direction:row;overflow:auto}
.side-user{display:none}
.main{margin:0;padding:22px}
.stats,.asset-grid,.cert-grid{grid-template-columns:repeat(2,1fr)}
.hero{grid-template-columns:1fr;padding:50px 7%}
.hero h1{font-size:37px}
.form-grid,.detail-grid{grid-template-columns:1fr}
.plan-assignment-head{grid-template-columns:1fr}
.portal-download-toolbar{position:static;flex-wrap:wrap}.portal-download-toolbar span{margin-left:0}.portal-download-toolbar button{width:100%}
.wide{grid-column:auto}
}
@media(max-width:600px){.stats,.asset-grid,.cert-grid,.template-filters,.record-filters,.certificate-filters{grid-template-columns:1fr}
.page-head,.select-head,.upload-box{align-items:stretch;flex-direction:column}
.select-head input{width:100%}
.hero{padding:35px 5%}
.hero h1{font-size:32px}
.main{padding:16px}
.verify-card dl{grid-template-columns:1fr}
.credential-page{padding:22px 4%}
.credential-public-card,.credential-share{padding:20px}
.social-component-head{display:none}.social-component-row{grid-template-columns:1fr 1fr}.social-component-row b{grid-column:1/-1}.social-preview{min-width:520px}.social-preview-panel{overflow:auto}
.credential-brand{align-items:flex-start;flex-direction:column}
.credential-public-card h1{font-size:29px}
.credential-public-card h2{font-size:25px}
.credential-public-card dl{grid-template-columns:1fr}
.social-buttons{grid-template-columns:1fr}
.credential-actions .btn{width:100%;text-align:center}
}
@media print{.sidebar,.page-head,.panel-title button{display:none}
.main{margin:0}
.panel{box-shadow:none}
}
