:root{--of-dark:#202321;--of-ink:#262523;--of-muted:#706b63;--of-bg:#f5f3ee;--of-card:#fff;--of-line:#ddd8ce;--of-yellow:#efb800;--of-green:#315442;--of-red:#883f37}*{box-sizing:border-box}body.of-body{margin:0;background:var(--of-bg);color:var(--of-ink);font-family:Arial,Helvetica,sans-serif}.of-topbar{height:82px;padding:0 max(22px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--of-dark);color:#fff}.of-brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none}.of-brand img{width:138px;max-height:48px;object-fit:contain}.of-brand span{display:flex;flex-direction:column;padding-left:14px;border-left:1px solid #50544f}.of-brand strong{font-size:11px;letter-spacing:.14em}.of-brand small{margin-top:4px;color:#bbbfb9;font-size:11px}.of-topbar nav{display:flex;align-items:center;gap:6px}.of-topbar nav a{padding:10px 12px;color:#dddeda;text-decoration:none;font-size:12px;font-weight:700}.of-topbar nav a:hover{color:#fff}.of-topbar nav .of-logout{background:var(--of-yellow);color:#1d1f1d}.of-main{min-height:calc(100vh - 142px)}.of-footer{min-height:60px;padding:18px max(22px,calc((100vw - 1240px)/2));display:flex;justify-content:space-between;gap:20px;background:#e9e6df;color:#6d675e;font-size:11px}.of-footer a{color:#48443f}.of-auth-shell{max-width:1180px;margin:0 auto;padding:74px 24px 90px;display:grid;grid-template-columns:1.05fr .75fr;gap:70px;align-items:center}.of-auth-copy{padding:30px 0}.of-kicker{display:block;margin-bottom:12px;color:#efbd16;font-size:11px;font-weight:800;letter-spacing:.14em}.of-kicker.dark{color:#967000}.of-auth-copy h1,.of-pagehead h1,.of-dashboard-head h1{margin:0;font-size:clamp(2.6rem,5vw,4.8rem);line-height:.98;letter-spacing:-.045em}.of-auth-copy>p{max-width:620px;margin:22px 0 0;color:#6d685f;line-height:1.7}.of-auth-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.of-auth-points span{padding:9px 12px;border:1px solid #dcd6ca;background:#fff;font-size:12px}.of-auth-card,.of-card,.of-success-card{background:#fff;border:1px solid var(--of-line);padding:30px;box-shadow:0 16px 38px rgba(0,0,0,.05)}.of-auth-card h2{margin:4px 0 8px;font-size:28px}.of-auth-card>p{margin:0 0 22px;color:var(--of-muted);font-size:13px}.of-form{display:grid}.of-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;font-size:12px;font-weight:700}.of-form input,.of-form textarea,.of-form select{width:100%;padding:12px 13px;border:1px solid #d2ccc1;background:#fdfcf9;font:inherit;color:#222}.of-form small{color:var(--of-muted);font-weight:400;line-height:1.45}.of-btn{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 16px;border:1px solid #cec8bd;background:#fff;color:#25231f;text-decoration:none;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.of-btn.primary{background:var(--of-yellow);border-color:var(--of-yellow)}.of-btn:hover{filter:brightness(.98)}.of-auth-register{display:flex;justify-content:space-between;gap:16px;margin-top:22px;padding-top:18px;border-top:1px solid #e4dfd6;color:#746f66;font-size:12px}.of-auth-register a{color:#292724;font-weight:800}.of-alert{margin-bottom:18px;padding:14px 16px;border:1px solid;font-size:13px;line-height:1.5}.of-alert.error{background:#fbefed;border-color:#dbb8b1;color:#833d34}.of-alert.warning{background:#fbf5df;border-color:#decd8a;color:#64541f}.of-page{max-width:1240px;margin:0 auto;padding:58px 24px 82px}.of-page.narrow{max-width:930px}.of-pagehead{margin-bottom:26px}.of-pagehead>a{display:inline-flex;margin-bottom:24px;color:#5c5851;text-decoration:none;font-size:12px;font-weight:700}.of-pagehead h1{font-size:clamp(2.4rem,4.5vw,4rem)}.of-pagehead>p{margin:14px 0 0;color:var(--of-muted);line-height:1.6}.of-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.of-divider{display:flex;justify-content:space-between;gap:16px;margin:8px 0 18px;padding-top:18px;border-top:1px solid #e2ddd4}.of-divider small{color:var(--of-muted)}.of-check{flex-direction:row!important;align-items:flex-start!important;gap:10px!important}.of-check input{width:auto!important;margin-top:2px}.of-check span{font-weight:400;line-height:1.5;color:#625d55}.of-actions{display:flex;justify-content:flex-end;gap:10px}.of-success-card strong{font-size:20px}.of-success-card p{color:var(--of-muted);line-height:1.6}.of-dashboard-head{display:flex;justify-content:space-between;gap:26px;align-items:flex-end;margin-bottom:26px}.of-dashboard-head h1{font-size:clamp(2.2rem,4.5vw,3.8rem)}.of-dashboard-head p{margin:10px 0 0;color:var(--of-muted)}.of-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:36px}.of-stats article{padding:18px 20px;background:#fff;border:1px solid var(--of-line)}.of-stats span{display:block;color:var(--of-muted);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.of-stats strong{display:block;margin-top:8px;font-size:28px}.of-stats strong.small{font-size:18px;color:var(--of-green)}.of-section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}.of-section-head.compact{margin-bottom:16px}.of-section-head span{display:block;color:#947000;font-size:10px;font-weight:800;letter-spacing:.12em}.of-section-head h2{margin:5px 0 0;font-size:26px}.of-process-list{display:grid;gap:12px}.of-process-list article{display:grid;grid-template-columns:minmax(0,1fr) 190px 260px;gap:20px;align-items:center;padding:20px 22px;background:#fff;border:1px solid var(--of-line)}.of-process-list.compact article{grid-template-columns:minmax(0,1fr) 180px}.of-process-list article>div:first-child>span{color:#8e6a00;font-size:10px;font-weight:800;letter-spacing:.1em}.of-process-list h3{margin:5px 0 6px;font-size:18px}.of-process-list p{margin:0;color:var(--of-muted);font-size:12px}.of-process-state>span{display:inline-flex;padding:5px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.of-process-state .open{background:#e8f0e9;color:#315442}.of-process-state .closed{background:#ece9e2;color:#665f56}.of-process-state small{display:block;margin-top:8px;color:var(--of-muted);font-size:10px;line-height:1.5}.of-process-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.of-text-link{align-self:center;color:#4d4842;font-size:11px;font-weight:700}.of-empty{padding:32px;background:#fff;border:1px solid var(--of-line)}.of-empty p{color:var(--of-muted)}.of-offer-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.of-version-notice{margin-bottom:18px;padding:13px 15px;background:#f7f1dc;border-left:3px solid var(--of-yellow);color:#62593b;font-size:12px;line-height:1.5}.optional{font-weight:400;color:#8a857d}.of-seal-card{position:sticky;top:20px;padding:24px;background:#232623;color:#fff;border-top:4px solid var(--of-yellow)}.of-seal-card>span{color:#f1bd12;font-size:10px;font-weight:800;letter-spacing:.12em}.of-seal-card h3{margin:10px 0;font-size:22px;line-height:1.1}.of-seal-card p{color:#c6cac5;font-size:12px;line-height:1.65}.of-seal-card>div{margin-top:22px;padding-top:16px;border-top:1px solid #444944}.of-seal-card small{display:block;color:#aeb3ad;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.of-seal-card strong{display:block;margin-top:7px;color:#fff}.of-receipt{background:#fff;border:1px solid var(--of-line);padding:32px;box-shadow:0 16px 38px rgba(0,0,0,.04)}.of-receipt-head{display:flex;justify-content:space-between;gap:20px;align-items:start;padding-bottom:20px;border-bottom:2px solid #282725}.of-receipt-head span:first-child{font-size:10px;font-weight:800;letter-spacing:.12em;color:#8d6b00}.of-receipt-head h1{margin:7px 0 0;font-size:24px;letter-spacing:.02em}.of-receipt-version{padding:7px 10px;background:#f3e3a8;font-size:11px;font-weight:800}.of-receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:20px;border:1px solid #e0dbd2}.of-receipt-grid article{padding:16px;border-right:1px solid #e0dbd2;border-bottom:1px solid #e0dbd2}.of-receipt-grid article:nth-child(2n){border-right:0}.of-receipt-grid article:nth-last-child(-n+2){border-bottom:0}.of-receipt-grid small{display:block;color:#837c72;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.of-receipt-grid strong{display:block;margin-top:6px;font-size:13px}.of-receipt-grid span{display:block;margin-top:4px;color:#6f6961;font-size:11px}.of-receipt-files{margin-top:24px}.of-receipt-files h2{font-size:17px}.of-receipt-files>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:12px 0;border-top:1px solid #e4e0d8}.of-receipt-files span{font-size:12px;font-weight:700}.of-receipt-files small{grid-column:1;color:#8a847b;font-size:9px;word-break:break-all}.of-receipt-files a{grid-column:2;grid-row:1/3;align-self:center;color:#333;font-size:11px;font-weight:800}.of-receipt-note{margin-top:20px;padding:14px;background:#f7f4eb;color:#686156;font-size:11px;line-height:1.55}.of-receipt-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}@media(max-width:900px){.of-auth-shell,.of-offer-layout{grid-template-columns:1fr}.of-process-list article{grid-template-columns:1fr}.of-process-actions{justify-content:flex-start}.of-seal-card{position:static}.of-stats{grid-template-columns:1fr 1fr}.of-dashboard-head{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.of-topbar{height:auto;padding:15px 18px;align-items:flex-start}.of-brand span{display:none}.of-topbar nav{flex-wrap:wrap;justify-content:flex-end}.of-topbar nav a{padding:8px}.of-auth-shell,.of-page{padding:42px 18px 60px}.of-grid2,.of-stats,.of-receipt-grid{grid-template-columns:1fr}.of-receipt-grid article{border-right:0!important;border-bottom:1px solid #e0dbd2!important}.of-receipt-grid article:last-child{border-bottom:0!important}.of-footer{flex-direction:column}.of-receipt-head{flex-direction:column}.of-receipt{padding:20px 16px}}@media print{.of-topbar,.of-footer,.of-receipt-actions{display:none!important}.of-body,.of-main,.of-page{background:#fff!important;padding:0!important}.of-receipt{box-shadow:none;border:0}.of-page{max-width:none}}

/* Etapa 58 · estados finales de licitación */
.of-process-state>span.awarded{background:#dfeee4;color:#265a3b;border-color:#aac8b4}.of-process-state>span.awarded-other{background:#e9edf0;color:#3c5364;border-color:#c7d0d7}.of-process-state>span.deserted{background:#f3eadb;color:#765824;border-color:#ddc796}.of-process-state>span.cancelled{background:#f5e8e5;color:#7d3d34;border-color:#dcbab4}
