:root{--ink:#182337;--muted:#536277;--line:#d7dfe8;--green:#147a4b;--focus:#1763b6}
.purchase-success{padding:16px;border:1px solid #a8d2b9;border-radius:8px;background:#e2f3e9;color:#17603d}.transfer-panel{background:#f5f7fa;border:1px solid var(--line);border-radius:8px;padding:20px;margin:20px 0}.transfer-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}.transfer-details dt{font-size:14px;color:var(--muted)}.transfer-details dd{margin:8px 0 0;overflow-wrap:anywhere}.transfer-details dd strong{display:block;margin-bottom:8px}.transfer-amount{font-size:26px;color:var(--green)}.payment-instruction{margin:16px 0}.purchase-section .toolbar{margin-bottom:16px}.purchase-section>small{margin-top:20px}#comprar-modal .form-actions .button-secondary{margin:0}@media(max-width:768px){.transfer-details{grid-template-columns:1fr}}
.field-icon{width:20px;height:20px;vertical-align:-4px;display:inline-block;margin-right:6px;flex-shrink:0}label>.field-icon{color:var(--muted)}
.portal-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat strong.portal-status{font-size:22px}.portal-table{display:table;width:100%}@media(max-width:600px){.portal-stats{grid-template-columns:1fr}}
.license-summary{padding:20px;background:#f5f7fa;border:1px solid var(--line);border-radius:8px;margin-bottom:24px}.license-summary strong{display:block;margin:4px 0 16px}.license-summary strong:last-child{margin-bottom:0}.license-summary small{margin:0}.license-toggle{margin:0}.license-help{border-top:1px solid var(--line);padding-top:16px;margin-top:24px}.license-help .button-secondary{margin-left:0}
#ficha{width:min(1000px,calc(100% - 32px))}#ficha>button[data-open]{margin:12px 8px 16px 0}dialog form>.button-secondary{margin-left:12px}dialog .button-secondary:hover{background:#eef2f6;color:var(--ink)}
.alerts{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.alert-link{flex:1;min-width:180px;padding:16px;border:1px solid #e7b7b7;border-radius:8px;background:#fff0f0;color:#942525;text-decoration:none;font-weight:600}.alert-link.warning{border-color:#e4ca86;background:#fff6da;color:#805300}.alert-link small{color:inherit}.stat-pendientes{border-top-color:#b02d2d}
button:disabled{opacity:.55;cursor:not-allowed}
.button-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:11px 18px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:white;text-decoration:none;font-size:16px;font-weight:600;line-height:1.4;white-space:nowrap}
.button-link:hover{background:#0e603b}.button-link .field-icon{margin:0}.button-secondary{background:white;color:var(--ink);border-color:#bcc8d6}.button-secondary:hover{background:#eef2f6}.button-compact{min-height:40px;padding:8px 12px;font-size:15px}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;grid-column:1/-1;align-items:center;justify-self:start}.form-actions button{width:auto}
.form-actions{margin-top:20px}.form-actions .button-secondary:hover{background:#eef2f6;color:var(--ink)}
.table-scroll{overflow-x:auto;margin-top:20px}.catalog table{display:table;width:100%}.catalog th:last-child,.catalog td:last-child{text-align:right}.catalog th:nth-child(3),.catalog td:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:24px 0 32px}
.stat{background:white;padding:20px;border:1px solid var(--line);border-radius:10px;border-top:3px solid #8a99aa}
.stat strong{display:block;font-size:30px}.stat small{margin:0}.stat-activas{border-top-color:var(--green)}.stat-proximas{border-top-color:#a86b05}.stat-vencidas{border-top-color:#b02d2d}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.toolbar h2,.toolbar h3{margin:0}.toolbar small{margin:0}
body:not(.auth-page) main>form.filters{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.filters label{flex:1;min-width:180px;margin:0}.filters a{padding:10px}.filters button{width:auto}
.company-list{padding:20px}.company-list table{margin-top:20px;overflow:visible;display:table}.company-list td{white-space:normal}.company-list td small{margin:4px 0 0}
.warning{background:#fff2ce;color:#805300}.pagination{justify-content:center;margin:20px 0 0;font-size:15px}
.actions{position:relative}.actions summary{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:24px;list-style:none;background:white}.actions summary::-webkit-details-marker{display:none}.actions summary:focus-visible{outline:3px solid var(--focus)}
.actions>div{position:absolute;right:0;top:44px;z-index:5;width:230px;background:white;border:1px solid var(--line);border-radius:8px;padding:8px;box-shadow:0 8px 24px #18233720}.actions a{display:block;padding:10px;color:var(--ink);text-decoration:none}.actions a:hover{background:#f1f5f9}
dialog{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:24px;border:1px solid var(--line);border-radius:12px;color:var(--ink);overflow-y:auto}dialog::backdrop{background:#18233799}dialog form{padding:24px 0 0;margin:20px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}.close-dialog{width:40px;min-height:40px;padding:0;background:white;color:var(--ink);border-color:var(--line);font-size:26px}.close-dialog:hover{background:#eef2f6}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.company-list{overflow-x:auto}.company-list table{min-width:660px}}
@media(max-width:400px){.stats{grid-template-columns:1fr}.toolbar>button{width:100%}}
*{box-sizing:border-box}
body{margin:0;background:#f4f6fa;color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
header{background:var(--ink);color:white;padding:20px max(24px,calc((100% - 1150px)/2));font-size:21px;font-weight:700}
main{max-width:1150px;margin:32px auto;padding:0 24px 40px;min-width:0}
h1{font-size:30px;line-height:1.25;margin:0 0 24px;letter-spacing:-.035em}
h2{font-size:23px;margin:0 0 20px;line-height:1.35}
h3{font-size:19px;margin:0 0 16px}
section,form{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin:24px 0;box-shadow:0 3px 12px #18233706}
section>form{background:#f8fafc;box-shadow:none}
label{display:block;margin:0 0 20px;font-size:16px;font-weight:600;color:#334155}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;min-width:0;min-height:48px;margin-top:8px;padding:11px 14px;border:1px solid #bcc8d6;border-radius:8px;background:white;color:var(--ink);font:400 17px/1.4 system-ui,sans-serif}
input::placeholder,textarea::placeholder{color:#65748a;opacity:1}
input[type=checkbox],input[type=radio]{width:20px;height:20px;vertical-align:middle;margin:0 8px 0 0;accent-color:var(--green)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1763b626;border-color:var(--focus);outline-offset:1px}
button{font:600 16px/1.4 system-ui,sans-serif;min-height:46px;padding:11px 20px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:white;cursor:pointer}
button:hover{background:#0e603b}
button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
table{display:block;width:100%;overflow-x:auto;background:white;border-collapse:collapse;border:1px solid var(--line);border-radius:8px}
td,th{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap}
th{background:#f1f5f9;font-size:15px;font-weight:700}td{font-size:16px}
a{color:var(--focus);text-underline-offset:3px}
.error{color:#9d2020;background:#fff2f2;border:1px solid #efbaba;border-radius:8px;padding:12px 16px;overflow-wrap:anywhere}.error:empty{display:none}
.badge{display:inline-block;border-radius:6px;padding:4px 10px;background:#e2f3e9;color:#17603d;font-size:14px;font-weight:700}.suspended{background:#ffe3e3;color:#942525}
small{display:block;color:var(--muted);font-size:14px;line-height:1.5;margin-top:10px}code{overflow-wrap:anywhere;white-space:normal}
nav{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:24px}nav>span{font-weight:600}
nav form{padding:0;margin:0;background:none;border:0;box-shadow:none}nav button{background:white;color:var(--ink);border-color:#bcc8d6}nav button:hover{background:#e9eef5}
.auth-page main{max-width:560px;margin:56px auto}.auth-page main>form{padding:32px}
@media(min-width:768px){body:not(.auth-page) main>form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}body:not(.auth-page) main>form h2{grid-column:1/-1}body:not(.auth-page) main>form button{justify-self:start;grid-column:1/-1}}
@media(max-width:600px){main{padding:0 16px 24px;margin:24px auto}header{padding:16px}h1{font-size:26px}section,form{padding:20px}.auth-page main{margin:32px auto}.auth-page main>form{padding:24px}button{width:100%}nav button{width:auto}}
