﻿:root{--navy:#171717;--blue:#cc0000;--bg:#f5f5f5;--line:#e1e1e1;--text:#1c1c1c;--muted:#6b6b6b}*{box-sizing:border-box}body{margin:0;font:14px/1.5 Inter,ui-sans-serif,system-ui,sans-serif;color:var(--text);background:var(--bg)}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:linear-gradient(180deg,#d40000 0,#b00000 100%);padding:28px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:19px}.brand-logo{display:grid;gap:8px;padding:14px;background:#fff;border-radius:10px;box-shadow:0 6px 18px #79000045}.brand-logo img{display:block;width:165px;max-height:54px;object-fit:contain;object-position:center}.brand-logo small{font-size:9px;letter-spacing:1.7px;color:#a90000;font-weight:800;text-align:center}.sidebar nav{display:grid;gap:7px;margin-top:48px}.sidebar nav a,.logout{padding:11px 13px;border-radius:8px;color:#fff}.sidebar nav a.active,.sidebar nav a:hover{background:#fff;color:#b00000;box-shadow:0 5px 14px #75000040}.sidebar form{margin-top:auto}.logout{border:0;background:transparent;width:100%;text-align:left;cursor:pointer}.content{margin-left:240px;padding:30px 42px 60px;max-width:1500px}.topbar,.actions,.panel-head,.section-title.row{display:flex;align-items:center;justify-content:space-between}.topbar{margin-bottom:30px}.topbar small{font-size:10px;letter-spacing:1.8px;color:#8090a8}.topbar h1{margin:2px 0 0;font-size:27px}.user{padding:9px 14px;border:1px solid var(--line);border-radius:99px;background:#fff}.user i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#cc0000;margin-right:8px}.actions{gap:20px;margin-bottom:22px}.actions h2,.actions p{margin:0}.actions p,.panel p{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:10px 16px;font-weight:650;cursor:pointer}.btn.primary{background:linear-gradient(135deg,#df0000,#b50000);color:#fff;box-shadow:0 4px 12px #cc000038}.btn.secondary{background:#fff;color:#344054;border:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;position:relative}.stat small{display:block;color:var(--muted);padding-left:16px}.stat strong{font-size:28px;display:block;margin-top:8px}.dot{position:absolute;width:8px;height:8px;border-radius:50%;top:23px}.blue{background:#3b82f6}.orange{background:#f59e0b}.purple{background:#8b5cf6}.green{background:#22c55e}.dark{background:#334155}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;box-shadow:0 2px 8px #18223008}.panel-head{padding:20px 22px;border-bottom:1px solid var(--line)}.panel-head h2,.section-title h2{font-size:17px;margin:0}.panel-head p,.section-title p{margin:2px 0 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#778399;background:#fafbfc}th,td{padding:14px 20px;border-bottom:1px solid #edf0f4}td strong,td small{display:block}td small{color:var(--muted);margin-top:3px}.empty{text-align:center;color:var(--muted);padding:35px}.tag,.status{display:inline-flex;padding:4px 9px;border-radius:99px;font-size:12px;font-weight:650}.tag{background:#fbe8e8;color:#b00000}.status.aberta{background:#fce8e8;color:#bd0000}.status.aguardando_resposta{background:#fff5df;color:#b66a00}.status.em_analise{background:#f2eaff;color:#7c3aed}.status.finalizada{background:#e9f9ef;color:#16833c}.row-actions{display:flex;gap:12px}.row-actions form{display:inline}.row-actions button{border:0;background:transparent;color:#dc2626;padding:0;cursor:pointer}.form-panel{padding:24px}.section-title{margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span-2{grid-column:span 2}label{display:grid;gap:7px;font-weight:600;color:#344054}input,select,textarea{width:100%;border:1px solid #cfd7e3;border-radius:8px;padding:10px 12px;color:var(--text);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #dbeafe}textarea{resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px}.form-stack{display:grid;gap:18px}.supplier-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.supplier{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:9px}.supplier input{width:18px}.supplier strong,.supplier small{display:block}.supplier small{color:var(--muted);font-weight:400;margin-top:2px}.item-card{display:flex;align-items:end;gap:12px;background:#f8fafc;border:1px solid var(--line);padding:14px;border-radius:10px;margin-bottom:12px}.item-card label{min-width:170px}.item-card .grow{flex:1}.item-number{display:grid;place-items:center;align-self:center;min-width:28px;height:28px;border-radius:50%;background:#fbe5e5;color:#bd0000;font-weight:700}.remove-item{align-self:center;border:0;background:transparent;color:#98a2b3;font-size:25px;cursor:pointer}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.detail{padding:20px;display:grid;gap:10px}.detail small{color:var(--muted);font-size:11px}.detail strong{font-size:20px}.alert{padding:12px 15px;border-radius:9px;margin-bottom:18px}.alert.success{background:#eaf8ef;color:#166534}.alert.error{background:#fff0f0;color:#b42318}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#151515 0,#292929 48%,#a90000 48%,#d40000 100%)}.login-card{width:min(420px,calc(100% - 32px));background:#fff;border-radius:16px;padding:36px;box-shadow:0 30px 80px #0005}.login-logo{background:#fff;margin:-36px -36px 28px;padding:26px 36px 22px;border-radius:16px 16px 0 0;border-bottom:4px solid #cc0000}.login-logo img{display:block;width:190px;max-height:60px;object-fit:contain;object-position:center;margin:auto}.login-card h1{font-size:23px;margin:0}.login-card>p{color:var(--muted);margin:6px 0 25px}.check{display:flex;grid-template-columns:auto 1fr;align-items:center}.check input{width:auto}.login-card .btn{width:100%}@media(max-width:950px){.stats{grid-template-columns:repeat(2,1fr)}.sidebar{width:190px}.content{margin-left:190px;padding:25px}.item-card{align-items:stretch;flex-direction:column}}@media(max-width:680px){.sidebar{position:static;width:auto}.sidebar nav{margin-top:20px;grid-template-columns:repeat(3,1fr)}.sidebar form{display:none}.content{margin:0;padding:20px}.stats,.form-grid,.supplier-grid,.detail-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.actions{align-items:flex-start}.topbar{display:none}}


.upload-field small{color:var(--muted);font-weight:400}.image-preview{display:block;max-width:520px;max-height:300px;margin-top:8px;border:1px solid var(--line);border-radius:10px;object-fit:contain;background:#f5f5f5}.attachment-panel>a{display:block;padding:22px;text-align:center}.attachment-panel>a img{max-width:100%;max-height:620px;border-radius:9px;box-shadow:0 6px 22px #00000018}
.standalone-field{margin-top:20px}.standalone-field small{color:var(--muted);font-weight:400}.status.visualizado{background:#fff4db;color:#9a6100}.status.respondido{background:#e6f7ed;color:#16753a}.status.erro_envio{background:#feecec;color:#b42318}.response-page{min-height:100vh;background:#f1f1f1;padding:30px 16px}.response-shell{max-width:1050px;margin:auto}.response-header{display:flex;justify-content:space-between;align-items:center;background:#c90000;color:#fff;padding:18px 24px;border-radius:12px;margin-bottom:18px}.response-header strong{font-size:25px}.response-shell h1{margin:4px 0 8px}.quote-items{display:grid;gap:0}.quote-response{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:14px;align-items:end;padding:18px 22px;border-bottom:1px solid var(--line)}.quote-response strong,.quote-response small{display:block}.quote-response small{color:var(--muted);margin-top:4px}.confirmation-card{max-width:520px;margin:12vh auto;background:#fff;padding:45px;text-align:center;border-radius:16px;box-shadow:0 20px 60px #0002;border-top:6px solid #c90000}.confirmation-card>div{width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:#e8f8ee;color:#16833c;font-size:28px;margin:auto}@media(max-width:800px){.quote-response{grid-template-columns:1fr}.response-page{padding:14px}}
.financial-approved{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:#f7faf8;border:1px solid #dcecdf;border-radius:10px;padding:20px}.financial-approved small,.financial-approved strong{display:block}.financial-approved small{color:var(--muted);font-size:10px;letter-spacing:.7px}.financial-approved strong{font-size:18px;margin-top:5px}@media(max-width:680px){.financial-approved{grid-template-columns:1fr}}
.approval-body{padding:20px 22px}.approval-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.approval-summary>div{padding:14px;border:1px solid var(--line);border-radius:9px;background:#fafafa}.approval-summary small,.approval-summary strong{display:block}.approval-summary small{font-size:10px;color:var(--muted);letter-spacing:.5px}.approval-summary strong{margin-top:5px;font-size:17px}.approval-form{display:grid;grid-template-columns:2fr 1fr auto;gap:14px;align-items:end;margin-top:20px;padding:18px;background:#fff8f8;border:1px solid #f1d3d3;border-radius:10px}.document-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:800px){.approval-summary,.approval-form{grid-template-columns:1fr}}
/* Alertas de prazo e andamento das propostas */
.deadline-overdue{border-color:#e5484d;background:#fff5f5}.deadline-alert{display:block;color:#b42318!important;font-weight:750;margin-top:4px}.deadline-date{color:#b42318}.quote-overdue{background:#fff8f8}.proposal-progress{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:99px;background:#fff5df;color:#8a4b00}.proposal-progress.complete{background:#e9f9ef;color:#16833c}.proposal-progress strong{display:inline}
/* Edição rápida do preço de internet */
.internet-price-input{min-width:135px;max-width:180px;padding:8px 10px}
/* Inclusão rápida de fornecedor na cotação */
.add-supplier-row{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;gap:18px;align-items:end}.send-email-check{display:flex!important;align-items:center;white-space:nowrap;height:42px}.send-email-check input[type=checkbox]{width:18px}@media(max-width:800px){.add-supplier-row{grid-template-columns:1fr}.send-email-check{height:auto}}
/* Envio da Ordem de Compra */
.purchase-order-send{margin-top:18px;padding:16px;border:1px solid #ead2d2;border-radius:10px;background:#fff8f8;display:flex;align-items:center;justify-content:space-between;gap:18px}.purchase-order-send strong,.purchase-order-send small{display:block}.purchase-order-send small{margin-top:4px;color:var(--muted)}@media(max-width:680px){.purchase-order-send{align-items:stretch;flex-direction:column}}
/* Filtros e encerramento sem compra */
.filter-row{display:flex;align-items:end;gap:12px}.filter-row label{width:min(320px,100%)}.status.encerrada_sem_compra{background:#f1f1f1;color:#555}

/* Login institucional */
.login-page{min-height:100vh;display:block;background:#f3f4f6;color:#171717}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr)}
.login-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:48px clamp(42px,6vw,96px);color:#fff;background:linear-gradient(145deg,#171717 0%,#242424 48%,#9f0000 100%)}
.login-hero:before{content:"";position:absolute;width:520px;height:520px;border:110px solid rgba(255,255,255,.045);border-radius:50%;right:-250px;top:-210px}
.login-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;left:-120px;bottom:-150px;background:#d90000;filter:blur(2px);opacity:.42}
.login-hero-glow{position:absolute;inset:auto -15% 8% 20%;height:230px;background:radial-gradient(ellipse,rgba(226,0,0,.42),transparent 68%);transform:rotate(-10deg)}
.login-brand,.login-hero-content,.login-hero>small{position:relative;z-index:1}
.login-brand{width:225px;padding:15px 18px;background:#fff;border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.22)}
.login-brand img{display:block;width:100%;height:auto}
.login-hero-content{margin:auto 0;max-width:680px;padding:70px 0}
.login-eyebrow,.login-kicker{display:inline-block;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase}
.login-eyebrow{color:#ffb4b4;margin-bottom:20px}
.login-hero h1{font-size:clamp(38px,4.4vw,66px);line-height:1.04;letter-spacing:-2.2px;margin:0 0 24px}
.login-hero-content>p{max-width:590px;margin:0;color:#e4e4e7;font-size:17px;line-height:1.75}
.login-benefits{display:grid;gap:13px;margin-top:38px;color:#f5f5f5;font-weight:600}
.login-benefits div{display:flex;align-items:center;gap:12px}
.login-benefits span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#d60000;font-size:12px;box-shadow:0 0 0 5px rgba(214,0,0,.16)}
.login-hero>small{color:#bdbdbd;font-size:12px;letter-spacing:.5px}
.login-access{display:grid;place-items:center;padding:48px clamp(30px,6vw,90px);background:radial-gradient(circle at 100% 0,#fff 0,#f7f7f8 42%,#f0f1f3 100%)}
.login-card{width:min(460px,100%);padding:0;background:transparent;border-radius:0;box-shadow:none}
.login-mobile-logo{display:none}
.login-kicker{color:#bc0000;margin-bottom:13px}
.login-card h2{margin:0;font-size:34px;letter-spacing:-.8px;color:#18181b}
.login-intro{margin:8px 0 32px;color:#71717a;font-size:15px}
.login-card .form-stack{gap:19px}
.login-card label{gap:8px;color:#34343a;font-size:13px;font-weight:750}
.login-field{position:relative}
.login-field input{height:52px;padding:0 50px 0 46px;border:1px solid #d5d7dc;border-radius:11px;background:#fff;font-size:14px;box-shadow:0 3px 12px rgba(20,20,25,.035);transition:.18s ease}
.login-field input:focus{border-color:#bb0000;box-shadow:0 0 0 4px rgba(190,0,0,.09)}
.login-field-icon{position:absolute;left:16px;top:50%;z-index:1;transform:translateY(-50%);display:grid;place-items:center;width:19px;height:19px;color:#8b8b93;font-size:14px;font-weight:800}
.login-lock{width:15px;height:13px;border:2px solid #8b8b93;border-radius:3px;left:18px;margin-top:3px}
.login-lock:before{content:"";position:absolute;width:9px;height:8px;border:2px solid #8b8b93;border-bottom:0;border-radius:7px 7px 0 0;left:1px;top:-8px}
.password-toggle{position:absolute;right:13px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;cursor:pointer;border-radius:50%}
.password-toggle:before{content:"";position:absolute;width:16px;height:10px;border:2px solid #92929a;border-radius:50% 50%;left:7px;top:8px}
.password-toggle:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#92929a;left:13px;top:13px}
.password-toggle.visible{background:#f3f3f4}
.login-remember{display:flex;align-items:center;gap:9px;color:#68686f!important;font-weight:550!important;cursor:pointer}
.login-remember input{appearance:none;width:18px;height:18px;padding:0;border:1px solid #c7c9ce;border-radius:5px;display:grid;place-items:center}
.login-remember input:checked{background:#bd0000;border-color:#bd0000}
.login-remember input:checked:after{content:"✓";color:#fff;font-size:12px;font-weight:900}
.login-submit{width:100%;height:52px;margin-top:4px;border-radius:11px;background:linear-gradient(135deg,#db0000,#9f0000)!important;box-shadow:0 12px 24px rgba(174,0,0,.22)!important;font-size:14px;letter-spacing:.1px;gap:10px;transition:transform .18s ease,box-shadow .18s ease}
.login-submit:hover{transform:translateY(-1px);box-shadow:0 15px 28px rgba(174,0,0,.29)!important}
.login-submit span{font-size:19px;line-height:1}
.login-support{display:flex;align-items:center;gap:12px;margin-top:30px;color:#96969d}
.login-support span{height:1px;flex:1;background:#dfe0e4}
.login-support p{margin:0!important;font-size:10px!important;white-space:nowrap;color:#96969d!important;text-transform:uppercase;letter-spacing:.55px}
.login-card .alert{margin:0 0 20px;border:1px solid #ffcaca;background:#fff3f3;color:#a80000}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-hero{display:none}.login-access{min-height:100vh;padding:32px 22px}.login-mobile-logo{display:block;width:210px;margin:0 auto 38px;padding:13px 16px;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.08)}.login-mobile-logo img{display:block;width:100%}.login-card h2{text-align:center;font-size:30px}.login-kicker,.login-intro{display:block;text-align:center}.login-intro{margin-bottom:28px}}
@media(max-width:440px){.login-access{padding:26px 20px}.login-mobile-logo{width:185px;margin-bottom:30px}.login-support p{font-size:9px!important;letter-spacing:.25px}.login-card h2{font-size:27px}}

/* Solicitação pública de materiais */
.public-request-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:25px;padding:16px;border:1px solid #ebd4d4;border-radius:12px;background:#fff7f7}
.public-request-callout strong,.public-request-callout small{display:block}.public-request-callout strong{font-size:13px}.public-request-callout small{margin-top:3px;color:#777;font-size:11px}.public-request-callout a{white-space:nowrap;font-weight:750;font-size:12px}.public-request-callout a span{font-size:16px}
.request-page{min-height:100vh;background:linear-gradient(145deg,#f7f7f8 0%,#eceef1 100%);color:#202124}
.request-shell{width:min(980px,calc(100% - 32px));margin:auto;padding:34px 0}
.request-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:18px 24px;border-radius:16px;background:linear-gradient(135deg,#1c1c1e,#8e0000);box-shadow:0 18px 45px #25252520;color:#fff}
.request-header img{display:block;width:185px;padding:11px 14px;border-radius:10px;background:#fff}.request-header div{text-align:right}.request-header span,.request-header strong{display:block}.request-header span{color:#ffc2c2;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.request-header strong{font-size:20px;margin-top:3px}
.request-card{padding:clamp(25px,5vw,52px);border:1px solid #e3e3e6;border-radius:18px;background:#fff;box-shadow:0 18px 55px #20202012}.request-intro{margin-bottom:30px}.request-intro h1{font-size:34px;margin:0}.request-intro p{margin:8px 0 0;color:#71717a}
.request-form{display:grid;gap:30px}.request-form fieldset{margin:0;padding:24px;border:1px solid #e3e3e6;border-radius:13px;background:#fcfcfc}.request-form legend{padding:0 10px;color:#9f0000;font-size:13px;font-weight:800}.request-form textarea{min-height:120px}.request-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.request-actions>a{color:#6f6f76;font-weight:650}.request-actions .btn{min-width:205px;height:48px;gap:12px}.request-actions .btn span{font-size:18px}
.request-shell>footer{text-align:center;padding:24px 0 0;color:#909096;font-size:12px}.request-confirmation{min-height:100vh;display:grid;place-items:center}.request-confirmation .confirmation-card{width:min(540px,100%);margin:0}.request-confirmation h1{font-size:30px}.request-confirmation p{color:#68686f;line-height:1.7}.request-confirmation .login-kicker{display:block;margin:20px 0 8px}.request-back{display:block;margin-top:18px;color:#777;font-weight:650}.request-status{min-width:125px;padding:7px 9px}
@media(max-width:680px){.public-request-callout{align-items:stretch;flex-direction:column}.request-shell{padding:16px 0}.request-header{align-items:flex-start;padding:15px;flex-direction:column;gap:14px}.request-header img{width:165px}.request-header div{text-align:left}.request-card{padding:25px 20px}.request-intro h1{font-size:28px}.request-form fieldset{padding:20px 16px}.request-actions{align-items:stretch;flex-direction:column-reverse}.request-actions .btn{width:100%}.request-actions>a{text-align:center}}
.public-request-callout{display:grid;gap:12px}.public-request-button{width:100%;height:52px;background:#fff;border:1px solid #be0000;color:#ad0000;font-size:14px;gap:10px}.public-request-button:hover{background:#fff0f0}.request-item{padding:20px;margin-bottom:16px;border:1px solid #e1e1e4;border-radius:12px;background:#fff}.request-item-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;color:#a90000}.remove-request-item{border:0;background:transparent;color:#a00000;font-size:12px;font-weight:700;cursor:pointer}.add-request-item{margin-top:2px}.request-deadline{max-width:360px;margin-top:22px}
