:root{--ink:#17233d;--blue:#004aac;--bg:#f3f7fd;--line:#dbe5f3;--muted:#52627b;--accent:#eaf2ff}
body{background:linear-gradient(180deg,#e8f0ff 0,#f7f9fc 360px);color:var(--ink)}
.wrapper{width:min(calc(100% - 28px),1160px)}
header{background:#06163d;box-shadow:0 8px 24px #152b4f22}
header a{display:inline-flex;align-items:center}
header img{max-width:170px}
main{padding-top:30px}
nav[aria-label="Ruta"]{font-size:.9rem;color:var(--muted)}
h1{max-width:850px;font-size:clamp(1.75rem,4.5vw,3rem);letter-spacing:-.045em}
h2{font-size:clamp(1.26rem,2.7vw,1.6rem);line-height:1.25;letter-spacing:-.025em;margin:.35em 0}
h3{font-size:1.06rem;line-height:1.4;margin-top:1.3em}
main>p{max-width:800px;color:var(--muted)}
.panel{border:1px solid #dce6f4;border-radius:22px;padding:clamp(17px,3.3vw,32px);box-shadow:0 12px 40px #23446f0a;margin:24px 0}
.app-panel{border-color:#b8d4ff}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.section-heading p{margin:.2rem 0}
.eyebrow{display:block;color:#185bad;text-transform:uppercase;letter-spacing:.095em;font-size:.73rem;font-weight:800}
.privacy-pill{display:inline-flex;align-items:center;background:#eaf6ee;color:#15603a;border:1px solid #baebcf;padding:8px 12px;border-radius:20px;font-size:.8rem;font-weight:700}
.privacy-notice{background:#f3f7fe;border-left:4px solid #397be1;border-radius:8px;padding:13px 16px;font-size:.9rem;color:#324762;margin-bottom:22px}
.muted{color:var(--muted);font-size:.91rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 18px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field.wide{grid-column:1/-1}
.field label,.threshold{font-size:.88rem;font-weight:700;color:#2d3f60}
.field small{font-size:.78rem;color:var(--muted)}
input,select,textarea{width:100%;max-width:100%;min-width:0;border:1px solid #bbcade;border-radius:11px;background:#fff;color:var(--ink);padding:11px 13px;font:inherit;line-height:1.35}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,.table-scroll:focus-visible{outline:3px solid #64a1ff;outline-offset:3px}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:#71829a}
button,.cta-link,.file-button{font:inherit;font-weight:700;border:0;border-radius:11px;padding:12px 17px;min-height:44px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;transition:transform .14s ease,box-shadow .14s ease}
button:hover,.cta-link:hover,.file-button:hover{transform:translateY(-1px);box-shadow:0 5px 12px #16376921}
button:active{transform:translateY(0)}
button{background:var(--blue);color:white}
button.secondary,.file-button{background:#e9f1ff;color:#084189;border:1px solid #bed4f8}
button.ghost{background:#fff;color:#335071;border:1px solid #c5d3e6}
button.danger{background:#fff1f1;color:#a91c32;border:1px solid #f3c2ca}
.form-actions,.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:21px}
.notice{min-height:42px;border-radius:11px;background:#f0f5ff;color:#335780;padding:10px 14px;font-size:.92rem;margin:19px 0 0}
.notice.error{background:#fff1ee;color:#9d2538}
.notice.success{background:#eaf7ee;color:#1f6838}
.threshold{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.threshold select{width:auto;min-width:110px}
.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:15px 0}
.metric{background:#f5f8fe;border:1px solid #e1eaf6;border-radius:14px;padding:17px 10px;text-align:center}
.metric strong{display:block;font-size:clamp(1.5rem,3vw,2rem);color:#0752b0;line-height:1.1}
.metric span{display:block;font-size:.78rem;color:#435470;font-weight:600;margin-top:5px}
.metric.amber strong{color:#a55a00}
.metric.red strong{color:#b22a3b}
.filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:21px}
.row-between{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}
.row-between p{margin:18px 0 9px}
.table-scroll{width:100%;overflow:auto;border:1px solid #e0e8f3;border-radius:12px}
table{width:100%;border-collapse:collapse;min-width:950px;font-size:.84rem}
thead{background:#eaf1fb}
th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #e6edf7;vertical-align:middle}
th{font-size:.78rem;white-space:nowrap;color:#3d5170}
tbody tr:nth-child(even){background:#f9fbff}
tbody tr:last-child td{border-bottom:0}
.status{font-weight:750;text-transform:capitalize;white-space:nowrap}
.status.valid{color:#267244}
.status.soon{color:#976200}
.status.late{color:#b22a3b}
td.numeric{white-space:nowrap}
td.actions{white-space:nowrap}
button.small{padding:7px 10px;min-height:34px;font-size:.77rem;margin-right:4px}
.empty-state{text-align:center;background:#f5f9ff;border:1px dashed #aec8eb;border-radius:13px;padding:35px 14px;color:#405977}
#import-json{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#import-json:focus-visible + *{outline:3px solid #64a1ff}
.guide ol{padding-left:22px}
.guide li{margin:12px 0}
.cta-panel{display:flex;align-items:center;justify-content:space-between;gap:26px;background:linear-gradient(125deg,#eff5ff,#fff)}
.cta-panel>div{max-width:700px}
.cta-panel p{margin:.8em 0}
.cta-link{background:#004aac;color:white;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
[hidden]{display:none!important}
@media(max-width:900px){.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.filters{grid-template-columns:1fr 1fr}.filters .field:first-child{grid-column:1/-1}}
@media(max-width:600px){.wrapper{width:calc(100% - 24px)}main{padding-top:24px}.panel{padding:17px;margin:18px 0;border-radius:17px}.form-grid,.filters{grid-template-columns:1fr}.filters .field:first-child{grid-column:auto}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:13px 8px}.form-actions button,.toolbar button,.file-button{width:100%}.cta-panel{display:block}.cta-link{margin-top:10px;white-space:normal;width:100%}.privacy-pill{font-size:.75rem}}
@media print{header,nav[aria-label="Ruta"],.app-panel,.filters,.toolbar,.cta-panel,.guide,footer,.privacy-notice,.threshold{display:none!important}body{background:#fff}.panel{border:0;box-shadow:none;padding:0}.wrapper{width:100%}main{padding:0}.table-scroll{overflow:visible;border:0}table{min-width:0;font-size:9px}th,td{padding:5px}td.actions,th:last-child{display:none}.metrics{display:flex;gap:10px}.metric{padding:7px;border:1px solid #ddd}.metric strong{font-size:14px}.metric span{font-size:9px}}
@media(prefers-reduced-motion:reduce){button,.cta-link,.file-button{transition:none}}
