@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@700;800&display=swap');
:root{--ink:#17202E;--muted:#4B5565;--line:#E3E6EB;--line2:#EEF0F3;--bg:#F5F6F8;--nav:#1E2B4A;--nav2:#33446B;--av:#B4410F;--av-bg:#FBEDE6;--av-fg:#8A3109;--mus:#1D4ED8;--mus-bg:#E6EDFD;--mus-fg:#1A3FA8}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,system-ui,sans-serif}
a{color:var(--nav)}a:hover{color:#0F172A}
h1,h2{font-family:Manrope,Inter,sans-serif;margin:0}
h1{font-size:28px;font-weight:800}h2{font-size:18px;margin-bottom:12px}
.muted{color:var(--muted)}.small{font-size:13px}.big{font-family:Manrope,sans-serif;font-weight:800;font-size:16px}.c{text-align:center}.r{text-align:right;white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.shell{display:flex;flex-wrap:wrap;min-height:100vh}
.side{flex:1 1 230px;max-width:100%;background:var(--nav);color:#fff;padding:24px 14px;display:flex;flex-direction:column;gap:4px}
.side .brand{padding:0 10px 20px}.side .brand b{display:block;font:800 18px Manrope,sans-serif}.side .brand span{font-size:13px;color:#C9D2E3}
.side a{display:block;padding:11px 10px;border-radius:8px;color:#DDE3EE;text-decoration:none}
.side a:hover{background:#2A3A5E;color:#fff}.side a.on{background:var(--nav2);color:#fff;font-weight:600}
.side .who{margin-top:auto;padding:14px 10px 0;border-top:1px solid #3A4A70;font-size:13px;color:#C9D2E3}
.side .who a{display:inline;padding:0;color:#fff;text-decoration:underline}
.content{flex:999 1 560px;min-width:0;padding:28px 36px;display:flex;flex-direction:column;gap:20px}
.head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-end}
.acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.acts.sticky{position:sticky;bottom:0;background:var(--bg);padding:12px 0;z-index:2}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.card.flush{padding:0;overflow:hidden}.pad{padding:20px 20px 0}
.cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.grow{flex:999 1 520px;min-width:0}.side-col{flex:1 1 300px;min-width:0}
.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.row-between{display:flex;justify-content:space-between;gap:10px;align-items:center}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.kpi span{font-size:13px;color:var(--muted);font-weight:500}.kpi b{display:block;font:800 32px Manrope,sans-serif;margin:6px 0 2px}.kpi small{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:8px;border:1px solid var(--nav);background:var(--nav);color:#fff;font:600 14px Inter,sans-serif;text-decoration:none;cursor:pointer}
.btn:hover{background:#0F1B36;color:#fff}.btn.sec{background:#fff;color:var(--ink);border-color:#C8CED8}.btn.sec:hover{background:var(--line2)}
.btn.sm{min-height:36px;padding:6px 12px;font-size:13px}.btn.danger{color:#9B1C1C;border-color:#E9B8B8}
.link{background:none;border:0;color:#9B1C1C;cursor:pointer;text-decoration:underline;font-size:13px;padding:4px}
label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--muted)}
input,select,textarea{font:15px Inter,sans-serif;color:var(--ink);padding:10px 12px;border:1px solid #C8CED8;border-radius:8px;background:#fff;min-height:42px}
input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:3px solid #9DB4F5;outline-offset:1px}
.filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.filtros label.grow{flex:1 1 260px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.span2{grid-column:1/-1}
.w100{width:100%}.narrow{max-width:420px}
.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink)}.check input{min-height:auto;width:18px;height:18px}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin-bottom:12px}.checks.one{grid-template-columns:1fr}
.tbl{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}
td.nom{font-weight:600;white-space:nowrap}
tr.grp th{text-align:center;border-bottom:2px solid var(--nav)}tr.grp th.int{border-bottom-color:var(--av)}tr.grp th:empty{border-bottom:0}
input.nota{width:54px;min-height:38px;padding:6px;text-align:center}input.nota.int{background:#FDF6F2;border-color:#E8C9B9}
table.notas select{min-height:38px;padding:6px}
td.auto,th.auto{background:#F3F4F6;color:var(--muted)}
.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-weight:600;font-size:13px;text-decoration:none}
.chip.AV{background:var(--av-bg);color:var(--av-fg)}.chip.MUS{background:var(--mus-bg);color:var(--mus-fg)}
.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px}.dot.AV{background:var(--av)}.dot.MUS{background:var(--mus)}.legend{font-size:13px;color:var(--muted)}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.b-ok{background:#E3F4EA;color:#14532D}.b-pend{background:var(--line2);color:#374151}.b-int{background:#FDF1EC;color:#8A3109}.b-mal{background:#FDE2E2;color:#8B1A1A}
.txt-mal{color:#8A3109;font-weight:600}
.alert{padding:12px 16px;border-radius:10px;font-weight:500}.a-ok{background:#E3F4EA;color:#14532D}.a-mal{background:#FDE2E2;color:#8B1A1A}.a-info{background:var(--mus-bg);color:var(--mus-fg)}
.bar{display:inline-block;vertical-align:middle;width:140px;height:8px;background:var(--line2);border-radius:999px;overflow:hidden}.bar i{display:block;height:8px;background:var(--nav)}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.list li{padding-bottom:8px;border-bottom:1px solid var(--line2)}
.sep{margin-top:14px;padding-top:12px;border-top:1px solid var(--line2)}
.perfil{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.avatar{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 22px Manrope,sans-serif}
.avatar.AV{background:var(--av-bg);color:var(--av-fg)}.avatar.MUS{background:var(--mus-bg);color:var(--mus-fg)}
.datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:14px;font-size:14px}
.datos span{display:block;font-size:12px;color:var(--muted)}.datos b{font-weight:600}.wrap{word-break:break-all}
.acts-v{min-width:220px}
.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs a{padding:10px 16px;border-radius:8px;border:1px solid #C8CED8;background:#fff;color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}
.tabs a.on{background:var(--nav);border-color:var(--nav);color:#fff}
.grid4{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.mini{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:5px;font-size:13px}
.asis-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 18px;border-bottom:1px solid var(--line2)}.asis-row .n{width:24px}
.seg{display:flex;gap:6px;border:0;margin:0;padding:0}
.seg .opt{flex-direction:row}.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:inline-flex;align-items:center;justify-content:center;min-width:50px;height:44px;border:1px solid #C8CED8;border-radius:8px;font:700 15px Inter;color:var(--ink);cursor:pointer;background:#fff}
.seg input:checked+span{background:var(--av);border-color:var(--av);color:#fff}.seg .P input:checked+span{background:var(--nav);border-color:var(--nav)}
.seg input:focus-visible+span{outline:3px solid #9DB4F5}
th.vert{height:150px;vertical-align:bottom;padding:6px 4px}th.vert span{writing-mode:vertical-rl;transform:rotate(180deg);text-transform:none;letter-spacing:0;font-size:12px;white-space:nowrap}
form.inline{display:inline}
body.simple{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:16px;background:var(--nav)}
.login{width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px}
/* impresión */
body.print-page{background:#fff;padding:20px}
.hoja{max-width:900px;margin:0 auto 30px;padding:28px;border:1px solid var(--line);border-radius:8px;page-break-after:always;break-after:page}
.hoja-head{display:flex;justify-content:space-between;gap:12px;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:18px}.hoja-head span{display:block;font-size:13px;color:var(--muted)}
table.bol th,table.bol td{border:1px solid #C8CED8;padding:6px;font-size:12.5px}
.constancia{font-size:17px;line-height:1.9;margin:28px 0}
.firmas{display:flex;justify-content:space-around;gap:20px;margin-top:70px}.firmas div{border-top:1px solid var(--ink);padding-top:6px;min-width:180px;text-align:center;font-size:13px}
@media print{.no-print{display:none}.hoja{border:0;padding:0}body.print-page{padding:0}}
@media (max-width:700px){.content{padding:20px 16px}.form-grid{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap}.side .who{width:100%}}
