.works-page { --works-navy:#102f50; --works-blue:#176fa6; --works-green:#16845e; --works-red:#c63e45; --works-amber:#c98219; --works-line:#dfe7ed; --works-soft:#f3f7fa; }
.works-heading,.works-section-head,.works-list-head,.work-tab-head { display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px; }
.works-heading h1,.works-section-head h2,.works-list-head h2,.work-tab-head h2 { margin:3px 0 5px;color:#102b45; }
.works-heading h1 { font-size:clamp(1.75rem,3vw,2.45rem); }
.works-heading p,.works-section-head p,.work-tab-head p { margin:0;color:#66798a; }
.works-heading-actions,.works-report-actions { display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end; }
.works-subnav { display:flex;gap:5px;padding:5px;margin:0 0 25px;background:#eef3f6;border:1px solid #dfe6eb;border-radius:13px;overflow-x:auto;scrollbar-width:thin; }
.works-subnav button { display:flex;align-items:center;gap:7px;white-space:nowrap;border:0;background:transparent;color:#536779;padding:10px 13px;border-radius:9px;font:700 .76rem/1 inherit;cursor:pointer; }
.works-subnav button span { font-size:1rem; }
.works-subnav button:hover { background:#fff;color:#153c60; }
.works-subnav button.active { background:#fff;color:#153c60;box-shadow:0 2px 8px rgba(22,48,72,.09); }
.works-nav-alert[hidden] { display:none!important; }

.works-dashboard-metrics { display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));gap:11px;margin-bottom:14px; }
.works-metric { position:relative;min-height:128px;text-align:left;border:1px solid #dfe7ed;border-radius:15px;padding:16px;background:#fff;cursor:pointer;overflow:hidden;transition:.2s transform,.2s box-shadow; }
.works-metric:hover { transform:translateY(-3px);box-shadow:0 12px 28px rgba(22,51,76,.12); }
.works-metric>span { display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf3f7;color:#274e6e;font-size:1rem;margin-bottom:12px; }
.works-metric small { display:block;color:#6d7f8e;font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase; }
.works-metric strong { display:block;color:#15324b;font-size:1.75rem;line-height:1.1;margin-top:3px; }
.works-metric>i { position:absolute;right:12px;bottom:10px;color:#8393a0;font-size:.63rem;font-style:normal;opacity:0;transition:.2s; }
.works-metric:hover>i { opacity:1; }
.works-metric.red { border-top:4px solid #cb4147; }.works-metric.orange { border-top:4px solid #d58b21; }.works-metric.green { border-top:4px solid #23815e; }.works-metric.teal { border-top:4px solid #178b8a; }.works-metric.blue { border-top:4px solid #287cb4; }.works-metric.navy { border-top:4px solid #193f60; }.works-metric.slate { border-top:4px solid #82919d; }
.works-finance-strip { display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;align-items:center;gap:20px;background:linear-gradient(115deg,#102d4e,#174f72);color:#fff;border-radius:16px;padding:20px 23px;margin-bottom:20px;box-shadow:0 12px 30px rgba(16,45,78,.16); }
.works-finance-strip>div:not(.finance-track) { border-right:1px solid rgba(255,255,255,.16); }
.works-finance-strip small { display:block;color:#b9d1e0;font-size:.66rem;font-weight:800;letter-spacing:.06em; }
.works-finance-strip strong { display:block;font-size:1.24rem;margin-top:4px; }
.finance-track span { display:block;height:8px;border-radius:8px;background:rgba(255,255,255,.15);overflow:hidden;margin-bottom:7px; }
.finance-track span i { display:block;height:100%;background:#49c49d;border-radius:8px; }
.finance-track b { font-size:.76rem;color:#d9ebf4; }
.works-dashboard-grid { display:grid;grid-template-columns:1.35fr .85fr;gap:18px; }
.works-count-pill { display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:18px;background:#fff0f0;color:#b8323a;font-weight:900; }
.works-attention-list { display:grid;gap:6px; }
.works-attention-list>button { display:grid;grid-template-columns:35px 1fr auto 18px;align-items:center;gap:11px;width:100%;border:1px solid transparent;border-radius:11px;background:#f8fafb;padding:11px;text-align:left;cursor:pointer; }
.works-attention-list>button:hover { border-color:#cedbe4;background:#fff; }
.works-attention-list strong { color:#19344d; }.works-attention-list p { margin:3px 0 0;color:#6c7e8e;font-size:.76rem; }.works-attention-list>button>b { color:#193f60;font-size:1.05rem; }
.attention-signal { display:grid;place-items:center;width:31px;height:31px;border-radius:9px;font-weight:900; }.attention-signal.critical { background:#ffe9ea;color:#bd343d; }.attention-signal.warning { background:#fff1da;color:#aa690d; }.attention-signal.notice { background:#e8f2f9;color:#266f9e; }
.works-spotlight-list { display:grid;gap:8px; }
.works-spotlight-list>button { display:grid;grid-template-columns:62px 1fr;gap:11px;align-items:center;border:0;border-radius:12px;background:#f6f9fb;padding:7px;text-align:left;cursor:pointer; }
.works-spotlight-list>button:hover { background:#edf4f8; }.works-spotlight-list strong { display:block;color:#163550; }.works-spotlight-list span { display:flex;gap:5px;align-items:center;color:#718290;font-size:.7rem;margin:3px 0 5px; }

.works-photo { display:block;width:100%;height:100%;object-fit:cover; }.works-photo.thumb,.works-photo-placeholder.thumb { width:62px;height:58px;border-radius:9px; }.works-photo-placeholder { display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(145deg,#d7e5ee,#eef4f7);color:#49667d;overflow:hidden; }.works-photo-placeholder img { width:48px;height:58px;object-fit:contain;opacity:.78; }.works-photo-placeholder span { position:absolute;bottom:10px;padding:4px 8px;border-radius:7px;background:rgba(11,43,67,.78);color:#fff;font-size:.65rem; }.works-photo-placeholder.card { height:205px;position:relative; }.works-photo-placeholder.thumb { position:relative; }.works-photo-placeholder.thumb img { width:31px;height:40px; }.works-photo-placeholder.thumb span { display:none; }
.works-status { display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font:800 .61rem/1 inherit;text-transform:uppercase;letter-spacing:.035em;background:#e9eef2;color:#42586a;white-space:nowrap; }.works-status.green,.timeline-dot.green { background:#dff3ea;color:#147451; }.works-status.red,.timeline-dot.red { background:#ffe2e4;color:#b92c35; }.works-status.orange,.timeline-dot.orange { background:#ffecd2;color:#a76306; }.works-status.teal,.timeline-dot.teal { background:#dff2f1;color:#117675; }.works-status.blue,.timeline-dot.blue { background:#e0edf8;color:#19689c; }.works-status.violet,.timeline-dot.violet { background:#eee6f7;color:#70509a; }.works-status.indigo,.timeline-dot.indigo { background:#e6e8f7;color:#4c5c9c; }.works-status.amber,.timeline-dot.amber { background:#fff0d5;color:#9c650f; }.works-status.cyan,.timeline-dot.cyan { background:#dff2f4;color:#28727a; }.works-status.dark,.timeline-dot.dark { background:#e0e4e7;color:#35434e; }
.works-progress { display:flex;align-items:center;gap:10px; }.works-progress>div { flex:1;height:9px;border-radius:8px;background:#e2eaf0;overflow:hidden; }.works-progress>div i { display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#176b9c,#2fa775); }.works-progress strong { min-width:38px;text-align:right;color:#173a57;font-size:.82rem; }.works-progress.compact>div { height:6px; }.works-progress.compact strong { font-size:.7rem;min-width:30px; }

.works-toolbar { display:grid;grid-template-columns:minmax(240px,2fr) repeat(5,minmax(130px,1fr)) auto;gap:8px;padding:11px;background:#f0f5f8;border:1px solid #dce6ec;border-radius:13px;margin-bottom:16px; }
.works-toolbar select,.works-search { min-width:0;border:1px solid #d2dde5;border-radius:9px;background:#fff;color:#395064;font:600 .74rem/1 inherit; }
.works-toolbar select { padding:10px 9px; }.works-search { display:flex;align-items:center;gap:7px;padding:0 10px; }.works-search input { width:100%;min-width:0;border:0;outline:0;padding:10px 0;background:transparent;color:#1d3448; }
.works-view-toggle { display:flex;padding:4px;border-radius:10px;background:#edf2f5; }.works-view-toggle button { border:0;background:transparent;padding:8px 11px;border-radius:7px;color:#667886;font-weight:700;cursor:pointer; }.works-view-toggle button.active { background:#fff;color:#173d5d;box-shadow:0 2px 6px rgba(24,52,74,.08); }
.works-card-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px; }
.work-card { overflow:hidden;border:1px solid #dfe7ed;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(23,49,70,.055);transition:.2s; }.work-card:hover { transform:translateY(-3px);box-shadow:0 14px 35px rgba(23,49,70,.12); }
.work-card-photo { position:relative;display:block;width:100%;height:205px;padding:0;border:0;background:#e6edf2;cursor:pointer;overflow:hidden; }.work-card-photo>.works-status { position:absolute;left:13px;top:13px;box-shadow:0 3px 12px rgba(0,0,0,.14); }
.work-card-body { padding:16px; }.work-card-title { display:flex;justify-content:space-between;gap:10px; }.work-card-title small { color:#27739e;font-size:.64rem;font-weight:800;text-transform:uppercase; }.work-card-title h3 { margin:4px 0;color:#15344f;font-size:1.05rem; }.work-card-title p { margin:0 0 13px;color:#72828f;font-size:.75rem; }.work-more { width:30px;height:30px;border:0;border-radius:8px;background:#eef3f6;color:#466177;cursor:pointer; }
.work-card-kpis { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 9px; }.work-card-kpis span { padding:9px;border-radius:9px;background:#f5f8fa; }.work-card-kpis small,.work-hero-grid small { display:block;color:#7c8b97;font-size:.57rem;font-weight:800;letter-spacing:.04em; }.work-card-kpis b { display:block;margin-top:3px;color:#1b3d58;font-size:.75rem; }.work-card-due { color:#277198;font-size:.68rem;font-weight:900;text-transform:uppercase;margin-bottom:10px; }.work-card-due.overdue,.danger-text { color:#bd3039!important; }
.work-card-update { min-height:50px;margin:0;padding:10px 0;border-top:1px solid #e8edf1;color:#667887;font-size:.73rem;line-height:1.4; }.work-card-update strong { display:block;color:#334d62;font-size:.61rem;text-transform:uppercase;letter-spacing:.04em; }.work-card-actions { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px; }.work-card-actions .btn { justify-content:center; }
.works-empty { grid-column:1/-1;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:210px;padding:32px;text-align:center;border:1px dashed #ccd9e1;border-radius:14px;background:#f8fafb;color:#6b7c89; }.works-empty>span { display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#e7eef3;color:#2f678d;font-size:1.35rem; }.works-empty h3 { margin:11px 0 3px;color:#2d465a; }.works-empty p { margin:0; }.works-empty-mini { padding:25px;text-align:center;color:#2b775e;background:#edf8f4;border-radius:11px; }
.works-table-panel { padding:0;overflow:hidden; }.works-table th { white-space:nowrap; }.works-table td>button:first-child { border:0;background:transparent;text-align:left;cursor:pointer; }.works-table td strong { display:block;color:#1c3b54; }.works-table td small { display:block;color:#778793;font-size:.68rem;margin-top:3px; }.works-table .works-progress { min-width:110px; }

.works-map-layout { display:grid;grid-template-columns:1.45fr .75fr;gap:18px; }.works-map-canvas { position:relative;min-height:570px;border:1px solid #cedde6;border-radius:17px;overflow:hidden;background-color:#e8f0e8;background-image:linear-gradient(35deg,rgba(70,131,82,.06) 25%,transparent 25%),linear-gradient(145deg,rgba(70,131,82,.05) 25%,transparent 25%),linear-gradient(white 1px,transparent 1px),linear-gradient(90deg,white 1px,transparent 1px);background-size:120px 120px,160px 160px,34px 34px,34px 34px; }.map-road { position:absolute;height:21px;background:#fff;border:1px solid #cbd6dc;transform-origin:left center;box-shadow:0 2px 4px rgba(65,87,99,.08); }.map-road.one { width:115%;left:-10%;top:48%;transform:rotate(-15deg); }.map-road.two { width:90%;left:14%;top:70%;transform:rotate(38deg); }.map-river { position:absolute;width:110%;height:54px;left:-8%;top:20%;background:#b7dce7;transform:rotate(8deg);border:8px solid rgba(255,255,255,.35); }.map-label { position:absolute;color:#53715e;font-weight:900;font-size:1.3rem;opacity:.5; }.map-label.center { left:42%;top:45%; }.map-note { position:absolute;left:14px;bottom:12px;padding:6px 9px;border-radius:8px;background:rgba(255,255,255,.9);color:#647787; }.works-map-pin { position:absolute;z-index:3;display:grid;place-items:center;width:37px;height:37px;transform:translate(-50%,-50%);border:4px solid #fff;border-radius:50% 50% 50% 0;background:#2977a7;color:#fff;box-shadow:0 5px 14px rgba(13,50,72,.28);cursor:pointer;rotate:-45deg; }.works-map-pin span { rotate:45deg;font-weight:900; }.works-map-pin.red { background:#bd363e; }.works-map-pin.green { background:#1c8460; }.works-map-pin.orange { background:#c47915; }.works-map-pin.teal { background:#128584; }.works-map-list { max-height:570px;overflow:auto; }.works-map-list>button { display:grid;grid-template-columns:27px 1fr 16px;gap:9px;width:100%;align-items:center;border:0;border-bottom:1px solid #e5ebef;background:transparent;padding:13px 2px;text-align:left;cursor:pointer; }.works-map-list>button>b { display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e5eff5;color:#27678f; }.works-map-list>button strong { display:block;color:#173c5a; }.works-map-list>button span { display:flex;align-items:center;gap:5px;margin:4px 0;font-size:.68rem; }.works-map-list>button small { color:#758592; }.map-empty { position:absolute;inset:45% 15%;text-align:center;color:#667b89; }

.works-global-timeline { padding:10px 24px; }.works-global-timeline>button { display:grid;grid-template-columns:100px 18px 1fr auto;gap:13px;width:100%;border:0;background:transparent;text-align:left;padding:17px 0;cursor:pointer;position:relative; }.works-global-timeline>button:not(:last-child) { border-bottom:1px solid #e6ecf0; }.works-global-timeline time { color:#6f808e;font-size:.73rem;font-weight:700; }.timeline-dot { width:13px;height:13px;border-radius:50%;margin-top:2px;border:3px solid #fff;box-shadow:0 0 0 2px currentColor; }.works-global-timeline strong { display:block;color:#173953;margin:3px 0; }.works-global-timeline small,.works-global-timeline p { color:#71818e;margin:0;font-size:.72rem; }
.works-pending-panel { padding:0;overflow:hidden; }.works-pending-table td strong { display:block;color:#273f53; }.works-pending-table td small { display:block;color:#70808d;margin-top:3px; }.pending-severity { display:inline-flex;padding:5px 8px;border-radius:999px;background:#e8edf1;color:#506373;font:800 .62rem/1 inherit;text-transform:uppercase; }.pending-severity.atencao { background:#e7f0f8;color:#26709d; }.pending-severity.urgente { background:#fff0d7;color:#a7660d; }.pending-severity.critico { background:#ffe2e4;color:#b82f38; }.pending-severity.normal { background:#e8f5ef;color:#287459; }
.works-document-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }.work-document-card { display:grid;grid-template-columns:47px 1fr auto;align-items:center;gap:12px; }.work-document-card>span,.work-doc-list article>span { display:grid;place-items:center;width:45px;height:45px;border-radius:11px;background:#e5edf3;color:#1e638f;font-size:.7rem;font-weight:900; }.work-document-card small,.work-document-card strong,.work-document-card p { display:block;margin:0; }.work-document-card small { color:#29729c;text-transform:uppercase;font-size:.6rem;font-weight:800; }.work-document-card strong { color:#253e52;margin:3px 0; }.work-document-card p { color:#73838f;font-size:.7rem; }
.works-report-hero { display:grid;grid-template-columns:74px 1fr auto;align-items:center;gap:18px;background:linear-gradient(130deg,#f7fafc,#e9f1f6);margin-bottom:17px; }.works-report-hero img { width:70px;height:84px;object-fit:contain; }.works-report-hero small { color:#2b719b;font-weight:900;letter-spacing:.08em; }.works-report-hero h2 { color:#153650;margin:5px 0; }.works-report-hero p { color:#697a87;margin:0; }
.works-admin-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:18px; }.works-role-list>div { display:grid;grid-template-columns:40px 1fr 20px;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #e8edf1; }.works-role-list>div>span { display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e6eff5;color:#256c99;font-weight:900;font-size:.75rem; }.works-role-list strong,.works-role-list p { display:block;margin:0; }.works-role-list p { color:#6e7e8b;font-size:.74rem; }.works-role-list i { color:#288463; }.works-audit-list { max-height:520px;overflow:auto; }.works-audit-list>div { display:grid;grid-template-columns:31px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid #e8edf1; }.works-audit-list>div>span { display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#edf3f7;color:#276c96;font-weight:900; }.works-audit-list strong,.works-audit-list p,.works-audit-list small { display:block;margin:0; }.works-audit-list p { color:#657785;font-size:.72rem;margin:2px 0; }.works-audit-list small { color:#8897a2;font-size:.65rem; }

.mayor-mode { margin:-28px;padding:0 0 40px;background:#f4f7f9;min-height:100vh; }.mayor-top { padding:32px 24px 72px;text-align:center;background:radial-gradient(circle at 50% 0,#285d81,#0d2c49 65%);color:#fff; }.mayor-top img { display:block;width:66px;height:80px;object-fit:contain;margin:0 auto 8px;filter:drop-shadow(0 5px 12px rgba(0,0,0,.2)); }.mayor-top span { font-size:.68rem;letter-spacing:.18em;font-weight:900;color:#bcd3e2; }.mayor-top h1 { margin:7px 0 4px;font-size:clamp(1.8rem,4vw,3rem); }.mayor-top p { margin:0;color:#bbd0df; }.mayor-back { position:absolute;left:24px;top:24px;border:1px solid rgba(255,255,255,.24);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;padding:9px 12px;cursor:pointer; }.mayor-numbers { position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;max-width:1180px;margin:-42px auto 30px;padding:0 20px; }.mayor-numbers>div { padding:18px;text-align:center;border-radius:14px;background:#fff;box-shadow:0 10px 25px rgba(22,49,70,.11); }.mayor-numbers strong { display:block;color:#173b58;font-size:1.8rem; }.mayor-numbers span { color:#71818d;font-size:.73rem;font-weight:700; }.mayor-numbers .danger { border-bottom:4px solid #c43e45; }.mayor-numbers .warning { border-bottom:4px solid #ca7e1a; }.mayor-numbers .success { border-bottom:4px solid #258361; }.mayor-numbers .money { border-bottom:4px solid #256f9d; }.mayor-numbers .money strong { font-size:1.3rem;margin:5px 0 6px; }.mayor-works { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1180px;margin:auto;padding:0 20px; }.mayor-works article { display:grid;grid-template-columns:42% 1fr;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(20,47,68,.09);cursor:pointer; }.works-photo.mayor,.works-photo-placeholder.mayor { min-height:340px;position:relative; }.mayor-works article>div:last-child { padding:22px; }.mayor-works h2 { color:#153650;margin:11px 0 16px; }.mayor-meta { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0; }.mayor-meta span { padding:10px;border-radius:10px;background:#f2f6f8; }.mayor-meta small { display:block;color:#788995;font-size:.6rem;font-weight:900; }.mayor-meta b { display:block;margin-top:4px;color:#24445c;font-size:.78rem; }.mayor-works p { color:#687a87;font-size:.8rem;line-height:1.5; }.mayor-works p strong { display:block;color:#334e63;text-transform:uppercase;font-size:.61rem; }

.works-detail-back { border:0;background:transparent;color:#2a6f99;font-weight:800;margin:0 0 14px;padding:0;cursor:pointer; }.work-detail-hero { display:grid;grid-template-columns:minmax(340px,.82fr) 1.18fr;gap:0;overflow:hidden;border:1px solid #dbe5eb;border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(20,48,69,.1); }.work-detail-photo { position:relative;min-height:500px;background:#e5edf2; }.works-photo.hero,.works-photo-placeholder.hero { height:100%;min-height:500px;position:relative; }.work-detail-photo>.btn { position:absolute;left:18px;bottom:18px;box-shadow:0 4px 15px rgba(0,0,0,.15); }.work-detail-summary { padding:30px; }.work-detail-status { display:flex;justify-content:space-between;align-items:center; }.work-detail-summary h1 { color:#112f49;font-size:clamp(1.7rem,3vw,2.5rem);margin:8px 0; }.work-detail-summary>p:not(.eyebrow) { color:#657987;line-height:1.55; }.work-progress-hero { display:grid;grid-template-columns:150px 1fr;align-items:center;gap:22px;padding:18px 0;margin:18px 0;border-top:1px solid #e5ebef;border-bottom:1px solid #e5ebef; }.work-progress-hero>strong { color:#123d5c;font-size:2.2rem; }.work-progress-hero>strong small { display:block;font-size:.58rem;letter-spacing:.1em;color:#6b7e8c; }.work-hero-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px; }.work-hero-grid span { padding:11px;border-radius:10px;background:#f3f7f9; }.work-hero-grid b { display:block;color:#1d3d55;margin-top:4px;font-size:.78rem; }.work-hero-grid span.danger { background:#fff0f0; }.work-hero-grid span.danger b { color:#b8323b; }.work-latest { margin:14px 0;padding:13px;border-left:4px solid #2479a8;background:#edf5f9;border-radius:0 9px 9px 0; }.work-latest small,.work-latest strong { display:block; }.work-latest small { color:#577386;font-size:.6rem;font-weight:900; }.work-latest strong { color:#23475f;font-size:.8rem;margin-top:4px;line-height:1.4; }.work-update-main { width:100%;justify-content:center;margin-top:5px; }.work-detail-tabs { display:flex;gap:5px;margin:20px 0;padding:5px;border:1px solid #dce5ea;border-radius:12px;background:#f0f4f6;overflow:auto; }.work-detail-tabs button { flex:1;min-width:max-content;border:0;border-radius:8px;background:transparent;color:#647785;padding:10px;font-weight:800;cursor:pointer; }.work-detail-tabs button.active { background:#fff;color:#17466a;box-shadow:0 2px 7px rgba(21,50,72,.09); }
.work-detail-grid { display:grid;grid-template-columns:1.2fr .8fr;gap:18px; }.work-info-panel dl { display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0; }.work-info-panel dl>div { padding:12px 0;border-bottom:1px solid #e8edf1; }.work-info-panel dl>div:nth-child(odd) { padding-right:18px;border-right:1px solid #e8edf1; }.work-info-panel dl>div:nth-child(even) { padding-left:18px; }.work-info-panel dt { color:#7d8c97;font-size:.62rem;font-weight:900;text-transform:uppercase; }.work-info-panel dd { margin:4px 0 0;color:#28445a;font-weight:700;font-size:.79rem; }.work-info-panel dd small { display:block;color:#788792;margin-top:3px; }.work-alert { display:flex;align-items:center;gap:10px;padding:11px;margin-bottom:8px;border-radius:10px;background:#edf3f7;color:#315872; }.work-alert>span { display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#fff;font-weight:900; }.work-alert.critical { background:#ffe8e9;color:#a82a33; }.work-alert.warning { background:#fff0da;color:#94600f; }.work-alert.notice { background:#e7f1f8;color:#226891; }.works-good-state { text-align:center;padding:25px;border-radius:12px;background:#ecf7f2;color:#28765a; }.works-good-state>span { display:block;font-size:2rem; }.works-good-state p { margin:4px 0; }.work-alert-rules { margin-top:18px;padding-top:15px;border-top:1px solid #e4eaee; }.work-alert-rules>small { display:block;color:#788995;font-size:.6rem;font-weight:900;margin:10px 0 5px; }.work-alert-rules>div { display:flex;gap:5px; }.work-alert-rules span { padding:5px 7px;border-radius:7px;background:#eef2f5;color:#778792;font-size:.64rem;font-weight:800; }.work-alert-rules span.active { background:#ffedd2;color:#9b630d; }.work-alert-rules span.expired { background:#ffe3e5;color:#ae2b34; }

.work-timeline { position:relative;max-width:920px;margin:auto; }.work-timeline:before { content:"";position:absolute;left:129px;top:8px;bottom:8px;width:2px;background:#d7e2e8; }.work-timeline article { display:grid;grid-template-columns:105px 22px 1fr;gap:14px;align-items:flex-start;margin-bottom:14px; }.work-timeline time { text-align:right;color:#657986;font-size:.72rem;font-weight:700;padding-top:8px; }.work-timeline .timeline-dot { position:relative;margin-top:10px; }.work-timeline .panel { padding:17px; }.work-timeline .panel>div:first-child { display:flex;align-items:center;justify-content:space-between;gap:12px; }.work-timeline h3 { color:#1a3b55;margin:12px 0 8px;font-size:.98rem; }.work-timeline p { color:#677987;font-size:.75rem; }.work-timeline small { color:#8897a2; }.timeline-pending { padding:8px;border-radius:8px;background:#fff1dd;color:#8b5b12!important; }.work-update-actions { display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end; }.work-update-actions button { border:1px solid #d4e1e8;border-radius:8px;background:#f2f7f9;color:#286d96;padding:7px 9px;font:800 .68rem/1 inherit;cursor:pointer; }.work-update-actions button:hover { background:#e5f0f5; }.work-update-actions button.danger { border-color:#f0d4d6;background:#fff4f4;color:#b4363e; }.work-update-actions button.danger:hover { background:#ffe8e9; }
.before-after { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px; }.before-after>div { position:relative;overflow:hidden;border-radius:16px;background:#fff;border:1px solid #dfe7ec; }.before-after>div>small { position:absolute;z-index:2;left:13px;top:13px;padding:6px 9px;border-radius:8px;background:rgba(13,44,68,.82);color:#fff;font-weight:900;letter-spacing:.06em; }.before-after img,.works-photo-placeholder.compare { width:100%;height:330px;object-fit:cover;position:relative; }.before-after strong,.before-after p { display:block;margin:0;padding:0 14px; }.before-after strong { color:#24455e;margin-top:12px; }.before-after p { color:#6a7c88;font-size:.75rem;padding-bottom:14px; }.work-gallery { display:grid;grid-template-columns:repeat(3,1fr);gap:13px; }.work-gallery article { overflow:hidden;padding:0; }.work-gallery article>img { width:100%;height:200px;object-fit:cover; }.work-gallery article>div { padding:13px; }.work-gallery span { color:#2a7199;font-size:.65rem;font-weight:800; }.work-gallery strong { display:block;color:#233f55;margin:4px 0; }.work-gallery p,.work-gallery small { display:block;color:#748590;margin:0;font-size:.7rem; }.work-gallery article>div>div { display:flex;justify-content:flex-end;gap:8px;margin-top:10px; }.work-gallery a,.work-gallery button { border:0;background:transparent;color:#2c7199;font-weight:800;cursor:pointer; }.work-gallery button { color:#b33a41; }
.work-stage-list { display:grid;gap:9px; }.work-stage-list article { display:grid;grid-template-columns:42px 1fr 30px 30px;gap:10px;align-items:center;padding:13px; }.work-stage-list article>span { display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#e7f0f6;color:#256a94;font-weight:900; }.work-stage-list article>div>div { display:flex;justify-content:space-between;margin-bottom:8px; }.work-stage-list article strong { color:#24435a; }.work-stage-list article small { color:#768794; }.work-stage-list article>button,.work-doc-list article>button,.works-financial-table td button { border:0;background:#eef3f6;border-radius:7px;color:#607382;width:29px;height:29px;cursor:pointer; }
.work-finance-cards { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:13px; }.work-finance-cards>div { padding:17px;border-radius:13px;background:#123653;color:#fff; }.work-finance-cards small { display:block;color:#b9d0df;font-size:.61rem;font-weight:900; }.work-finance-cards strong { display:block;font-size:1.1rem;margin-top:5px; }.physical-financial>div { margin-bottom:14px; }.physical-financial>div>span { display:flex;justify-content:space-between;color:#3f586b;font-size:.75rem;font-weight:800; }.physical-financial>div>i { display:block;height:11px;background:#e6edf1;border-radius:10px;overflow:hidden;margin-top:6px; }.physical-financial>div>i em { display:block;height:100%;background:#278665;border-radius:10px; }.physical-financial>div>i em.financial { background:#277aa9; }.finance-warning,.finance-ok { padding:10px;border-radius:9px;font-size:.75rem;font-weight:700; }.finance-warning { background:#fff0db;color:#95600d; }.finance-ok { background:#e8f6f0;color:#267456; }.works-financial-table { padding:0;overflow:hidden;margin-top:13px; }
.work-doc-list { display:grid;gap:9px; }.work-doc-list article { display:grid;grid-template-columns:50px 1fr auto auto;gap:12px;align-items:center;padding:13px; }.work-doc-list small,.work-doc-list strong,.work-doc-list p { display:block;margin:0; }.work-doc-list small { color:#2b749c;font-size:.62rem;font-weight:900;text-transform:uppercase; }.work-doc-list strong { color:#29465b;margin:4px 0; }.work-doc-list p { color:#72838f;font-size:.72rem; }.work-row-actions { display:inline-flex;align-items:center;gap:5px; }.work-row-actions button { display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:8px;background:#eef3f6;color:#567185;font-weight:900;cursor:pointer; }.work-row-actions button:last-child { background:#fff0f1;color:#b7373f; }.work-row-actions button:hover { filter:brightness(.96); }
.work-pending-list { display:grid;gap:9px; }.work-pending-list article { display:grid;grid-template-columns:78px 1fr auto 30px 30px;gap:11px;align-items:center;padding:13px;border-left:4px solid #7d909f; }.work-pending-list article.atencao { border-left-color:#2f79a5; }.work-pending-list article.urgente { border-left-color:#ce821b; }.work-pending-list article.critico { border-left-color:#c33b43; }.work-pending-list article.resolved { opacity:.65; }.work-pending-list strong,.work-pending-list p,.work-pending-list small { display:block;margin:0; }.work-pending-list p { color:#70818e;font-size:.74rem;margin:4px 0; }.work-pending-list small { color:#516b7c;font-size:.68rem; }.work-pending-list>article>b { color:#536979;font-size:.65rem;text-transform:uppercase; }
.work-history-list { max-width:880px;margin:auto; }.work-history-list article { display:grid;grid-template-columns:42px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid #e2e9ed; }.work-history-list article>span { display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e5eff5;color:#236a96;font-weight:900; }.work-history-list small,.work-history-list strong,.work-history-list p,.work-history-list em { display:block;margin:0; }.work-history-list strong { color:#29465b;margin:3px 0; }.work-history-list p { color:#667987;font-size:.74rem; }.work-history-list em { color:#8b99a3;font-size:.65rem;margin-top:4px; }

.works-modal { position:fixed;z-index:2000;inset:0;display:grid;place-items:center;padding:20px; }.works-modal-backdrop { position:absolute;inset:0;background:rgba(8,27,42,.67);backdrop-filter:blur(3px); }.works-modal-card { position:relative;width:min(620px,100%);max-height:calc(100vh - 34px);overflow:auto;border:0;border-radius:18px;background:#fff;padding:27px;box-shadow:0 25px 80px rgba(4,20,33,.35); }.works-modal-card.wide { width:min(960px,100%); }.works-modal-card>h2 { color:#143652;margin:3px 0 5px;font-size:1.55rem; }.works-modal-card>p:not(.eyebrow) { margin:0 0 20px;color:#6b7d8a; }.works-modal-close { position:absolute;right:17px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#edf2f5;color:#566b7b;font-size:1.2rem;cursor:pointer; }.works-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:13px; }.works-form-grid label { display:flex;flex-direction:column;gap:6px;color:#344e61;font-size:.72rem;font-weight:800; }.works-form-grid label.span-2 { grid-column:span 2; }.works-form-grid input,.works-form-grid select,.works-form-grid textarea { width:100%;border:1px solid #ccd9e1;border-radius:9px;background:#fff;padding:10px 11px;color:#213d52;font:500 .84rem/1.3 inherit;outline:0; }.works-form-grid input:focus,.works-form-grid select:focus,.works-form-grid textarea:focus { border-color:#3b84af;box-shadow:0 0 0 3px rgba(44,123,171,.12); }.works-form-grid .works-check { grid-column:span 2;display:flex;flex-direction:row;align-items:center;padding:10px;border-radius:9px;background:#f1f6f8; }.works-form-grid .works-check input { width:auto; }.works-file-field { padding:13px;border:1px dashed #aebfca;border-radius:11px;background:#f5f8fa; }.works-file-field small { color:#7b8b97;font-weight:500; }.works-modal-actions { display:flex;justify-content:flex-end;gap:9px;margin-top:21px;padding-top:15px;border-top:1px solid #e5ebef; }.works-modal-actions .btn-danger { margin-right:auto; }.update-work-chip { display:flex;align-items:center;gap:10px;padding:10px;margin-bottom:14px;border-radius:11px;background:#edf4f7; }.works-photo.micro,.works-photo-placeholder.micro { width:50px;height:50px;border-radius:9px;position:relative; }.works-photo-placeholder.micro img { width:28px;height:38px; }.works-photo-placeholder.micro span { display:none; }.update-work-chip strong,.update-work-chip span { display:block; }.update-work-chip strong { color:#21415a; }.update-work-chip span { color:#6f818e;font-size:.72rem; }
.work-form-section { display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;border-radius:11px;background:linear-gradient(100deg,#e9f3f7,#f5f8fa);color:#153b57; }.work-form-section>span { display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#1f789f;color:#fff;font-size:.76rem;font-weight:900; }.work-form-section strong,.work-form-section small { display:block; }.work-form-section small { margin-top:2px;color:#6c7f8c;font-size:.7rem; }.work-contract-reader { display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;padding:14px;border:1px dashed #8eb1c4;border-radius:12px;background:#f1f7f9; }.work-contract-reader>div strong,.work-contract-reader>div small { display:block; }.work-contract-reader>div small { margin-top:4px;color:#69808e;font-size:.72rem; }.work-contract-reader input { grid-column:1; }.work-contract-reader .btn { grid-column:2;grid-row:1 / span 2; }.work-contract-reader p { grid-column:1/-1;margin:2px 0 0;color:#39708d;font-size:.74rem;line-height:1.45; }.work-geocode-row { display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #d9e6ec;border-radius:11px;background:#f7fafb; }.work-geocode-row p { margin:0;color:#607987;font-size:.74rem;line-height:1.4; }.work-geocode-row a { color:#176f98;font-weight:800; }.works-form-grid label>small { color:#6e818d;font-weight:500;line-height:1.4; }.work-process-link { display:grid;grid-template-columns:38px 1fr auto auto;gap:9px;align-items:center;margin-top:15px;padding:13px;border:1px solid #cfe2ea;border-radius:12px;background:#eef7fa; }.work-process-link>span { display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#19789f;color:#fff;font-size:1.05rem; }.work-process-link small,.work-process-link strong,.work-process-link p { display:block;margin:0; }.work-process-link small { color:#39718c;font-size:.6rem;font-weight:900;letter-spacing:.8px; }.work-process-link strong { margin-top:2px;color:#183f59;font-size:.84rem; }.work-process-link p { margin-top:3px;color:#6d818d;font-size:.7rem;line-height:1.35; }

.work-locations-editor { grid-column:1/-1;border:1px solid #cfe0e8;border-radius:14px;padding:14px;background:#f7fafb; }.work-locations-editor-head { display:flex;align-items:center;justify-content:space-between;gap:14px; }.work-locations-editor-head strong,.work-locations-editor-head small { display:block; }.work-locations-editor-head strong { color:#24475f;font-size:.82rem; }.work-locations-editor-head small { margin-top:3px;color:#70838f;font-size:.69rem; }.work-locations-editor [data-work-locations-list] { display:grid;gap:12px;margin-top:12px; }.work-location-editor { border:1px solid #d7e4ea;border-radius:12px;background:#fff;padding:13px;box-shadow:0 3px 10px rgba(29,69,92,.04); }.work-location-editor header { display:flex;align-items:center;justify-content:space-between;gap:10px; }.work-location-editor header>div { display:flex;align-items:center;gap:9px; }.work-location-editor header b { display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#1f789f;color:#fff;font-size:.69rem; }.work-location-editor header span strong,.work-location-editor header span small { display:block; }.work-location-editor header span strong { color:#24475f;font-size:.78rem; }.work-location-editor header span small { margin-top:2px;color:#7a8d98;font-size:.64rem; }.work-location-editor header>button { border:0;border-radius:8px;background:#fff0f1;color:#a92e38;padding:7px 10px;font-weight:800;cursor:pointer; }.work-location-fields { display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px; }.work-location-fields label { display:flex;flex-direction:column;gap:5px;color:#405c6e;font-size:.67rem;font-weight:800; }.work-location-fields label.span-2 { grid-column:span 2; }.work-location-fields input { width:100%;border:1px solid #d0dce3;border-radius:8px;padding:9px 10px;color:#213d52;font:500 .79rem/1.3 inherit;outline:0; }.work-location-fields input:focus { border-color:#3b84af;box-shadow:0 0 0 3px rgba(44,123,171,.11); }.work-location-geocode { display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #edf1f3; }.work-location-geocode p { flex:1;margin:0;color:#69808d;font-size:.69rem;line-height:1.4; }.work-locations-empty { margin:0;padding:16px;border:1px dashed #c8d8e1;border-radius:10px;color:#758894;text-align:center;font-size:.72rem; }.work-info-panel dl>div.work-info-locations { grid-column:1/-1;padding-right:0;border-right:0; }.work-info-locations dd { margin-top:9px; }.work-location-list { display:grid;gap:8px; }.work-location-list article { display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid #dbe6eb;border-radius:10px;background:#f8fafb; }.work-location-list article>span { display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e3f0f5;color:#1d7196;font-size:.67rem;font-weight:900; }.work-location-list article strong,.work-location-list article small { display:block; }.work-location-list article strong { color:#2c4b60;font-size:.75rem; }.work-location-list article small { margin-top:2px;color:#71838f;font-size:.66rem; }.work-location-list article a { color:#17739b;font-size:.69rem;font-weight:900;text-decoration:none; }.work-location-list article em { color:#84939c;font-size:.67rem;font-style:normal; }

@media (max-width:1280px) {
  .works-dashboard-metrics { grid-template-columns:repeat(4,1fr); }.works-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.works-toolbar { grid-template-columns:2fr repeat(3,1fr); }.works-toolbar .btn { width:100%; }.works-finance-strip { grid-template-columns:repeat(3,1fr); }.finance-track { grid-column:span 3; }.works-finance-strip>div:not(.finance-track) { border-right:0; }.mayor-numbers { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px) {
  .works-heading,.works-section-head,.works-list-head,.work-tab-head { flex-direction:column; }.works-heading-actions { justify-content:flex-start; }.works-dashboard-grid,.works-map-layout,.works-admin-grid,.work-detail-grid { grid-template-columns:1fr; }.works-card-grid { grid-template-columns:1fr 1fr; }.works-toolbar { grid-template-columns:1fr 1fr; }.works-search { grid-column:span 2; }.works-document-grid { grid-template-columns:1fr; }.works-map-canvas { min-height:440px; }.work-detail-hero { grid-template-columns:1fr; }.work-detail-photo,.works-photo.hero,.works-photo-placeholder.hero { min-height:330px;max-height:430px; }.mayor-works { grid-template-columns:1fr; }.work-gallery { grid-template-columns:1fr 1fr; }.work-finance-cards { grid-template-columns:1fr 1fr; }
}
@media (max-width:650px) {
  .works-page { padding-bottom:80px; }.works-heading { margin-bottom:15px; }.works-heading-actions { display:grid;grid-template-columns:1fr 1fr;width:100%; }.works-heading-actions .btn-primary { grid-column:span 2; }.works-subnav { position:sticky;top:58px;z-index:15;margin-left:-15px;margin-right:-15px;border-radius:0;border-left:0;border-right:0; }.works-dashboard-metrics { grid-template-columns:1fr 1fr; }.works-metric { min-height:110px;padding:13px; }.works-metric strong { font-size:1.45rem; }.works-finance-strip { grid-template-columns:1fr;gap:13px;padding:17px; }.finance-track { grid-column:auto; }.works-finance-strip>div:not(.finance-track) { padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.13); }.works-card-grid { grid-template-columns:1fr; }.works-toolbar { grid-template-columns:1fr; }.works-search { grid-column:auto; }.works-view-toggle { width:100%; }.works-view-toggle button { flex:1; }.works-attention-list>button { grid-template-columns:31px 1fr auto; }.works-attention-list>button>i { display:none; }.works-report-hero { grid-template-columns:58px 1fr; }.works-report-hero img { width:55px;height:68px; }.works-report-actions { grid-column:span 2;justify-content:stretch; }.works-report-actions .btn { flex:1; }.mayor-mode { margin:-15px; }.mayor-top { padding:58px 18px 62px; }.mayor-back { left:12px;top:12px; }.mayor-numbers { grid-template-columns:1fr 1fr;margin-top:-35px;padding:0 12px; }.mayor-numbers>div { padding:14px 8px; }.mayor-works { padding:0 12px; }.mayor-works article { grid-template-columns:1fr; }.works-photo.mayor,.works-photo-placeholder.mayor { min-height:240px;max-height:280px; }.work-detail-summary { padding:20px; }.work-progress-hero { grid-template-columns:1fr;gap:9px; }.work-hero-grid { grid-template-columns:1fr; }.work-detail-tabs { margin-left:-14px;margin-right:-14px;border-radius:0; }.work-info-panel dl { grid-template-columns:1fr; }.work-info-panel dl>div:nth-child(odd),.work-info-panel dl>div:nth-child(even) { padding:11px 0;border-right:0; }.before-after,.work-gallery { grid-template-columns:1fr; }.before-after img,.works-photo-placeholder.compare { height:250px; }.work-timeline:before { left:8px; }.work-timeline article { grid-template-columns:17px 1fr;gap:10px; }.work-timeline time { grid-column:2;text-align:left;padding:0; }.work-timeline .timeline-dot { grid-column:1;grid-row:1 / span 2; }.work-timeline .panel { grid-column:2; }.work-timeline .panel>div:first-child { align-items:flex-start;flex-direction:column; }.work-update-actions { width:100%;justify-content:stretch; }.work-update-actions button { flex:1;min-height:38px; }.work-finance-cards { grid-template-columns:1fr; }.work-pending-list article { grid-template-columns:1fr auto; }.work-pending-list article>.pending-severity { grid-column:1;justify-self:start; }.work-pending-list article>div { grid-column:1/-1; }.work-pending-list article>b { grid-column:2;grid-row:1; }.work-doc-list article { grid-template-columns:45px 1fr 30px; }.work-doc-list article .btn { grid-column:1/-1;justify-content:center; }.work-stage-list article { grid-template-columns:36px 1fr 28px 28px; }.works-form-grid { grid-template-columns:1fr; }.works-form-grid label.span-2,.works-form-grid .works-check,.works-form-grid .span-2 { grid-column:auto; }.work-contract-reader { grid-template-columns:1fr; }.work-contract-reader input,.work-contract-reader .btn { grid-column:1;grid-row:auto; }.work-contract-reader .btn { justify-content:center; }.work-geocode-row { align-items:stretch;flex-direction:column; }.work-process-link { grid-template-columns:36px 1fr; }.work-process-link .btn { grid-column:1/-1;justify-content:center; }.works-modal { padding:0;align-items:end; }.works-modal-card,.works-modal-card.wide { width:100%;max-height:94vh;border-radius:19px 19px 0 0;padding:22px 16px calc(22px + env(safe-area-inset-bottom)); }.works-modal-actions { position:sticky;bottom:-22px;margin-left:-16px;margin-right:-16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -7px 20px rgba(21,47,67,.08); }.works-modal-actions .btn { flex:1;justify-content:center; }.works-modal-actions .btn-danger { flex:0 0 auto; }.work-tab-head .btn { width:100%;justify-content:center; }
}
@media (max-width:650px) {
  .work-doc-list .work-row-actions { grid-column:1/-1;justify-content:flex-end; }
  .works-financial-table .work-row-actions button { width:38px;height:38px; }
  .work-locations-editor-head,.work-location-geocode { align-items:stretch;flex-direction:column; }
  .work-location-fields { grid-template-columns:1fr; }
  .work-location-fields label.span-2 { grid-column:auto; }
  .work-location-editor header { align-items:flex-start; }
  .work-location-list article { grid-template-columns:28px minmax(0,1fr); }
  .work-location-list article a,.work-location-list article em { grid-column:2;justify-self:start; }
}

/* Mapa cartográfico interativo */
.works-map-heading { align-items:center; }
.works-map-summary { display:flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #d8e5eb;border-radius:12px;background:#f7fafb;color:#5c7180; }
.works-map-summary strong { color:#146f98;font-size:1.7rem;line-height:1; }.works-map-summary span { font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
.works-map-guide { display:flex;gap:8px;flex-wrap:wrap;margin:-3px 0 12px; }.works-map-guide span { padding:6px 9px;border-radius:999px;background:#edf4f7;color:#537083;font-size:.66rem;font-weight:750; }
.works-map-layout { align-items:stretch; }.works-map-shell { position:relative;min-width:0;border:1px solid #cbdbe4;border-radius:17px;overflow:hidden;background:#dce8e9;box-shadow:0 7px 24px rgba(19,54,76,.09); }
.works-map-canvas { position:relative;min-height:600px;border:0;border-radius:0;background:#dce8e9;background-image:none;z-index:1; }
.works-map-canvas.leaflet-container { font-family:inherit; }.works-map-canvas .leaflet-control-zoom { border:0;box-shadow:0 5px 18px rgba(21,55,77,.22); }.works-map-canvas .leaflet-control-zoom a { color:#1a587c; }
.works-map-actions { position:absolute;z-index:500;left:12px;top:12px;display:flex;gap:7px;flex-wrap:wrap;max-width:calc(100% - 70px); }
.works-map-actions button,.works-map-list-head button { display:flex;align-items:center;gap:6px;min-height:36px;padding:7px 10px;border:1px solid rgba(177,197,209,.9);border-radius:9px;background:rgba(255,255,255,.95);color:#285c7c;font:800 .68rem/1 inherit;box-shadow:0 3px 12px rgba(20,52,73,.14);cursor:pointer;backdrop-filter:blur(8px); }
.works-map-actions button:hover,.works-map-list-head button:hover { background:#fff;color:#0e759f;transform:translateY(-1px); }
.works-map-loading,.works-map-unavailable { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;padding:30px;text-align:center;color:#517080;background:linear-gradient(140deg,#e9f1eb,#dce9ec); }
.works-map-loading>span { width:30px;height:30px;border:3px solid rgba(24,113,153,.18);border-top-color:#187199;border-radius:50%;animation:spin .8s linear infinite; }.works-map-loading small { color:#748994; }
.works-map-unavailable strong { color:#244b63;font-size:1rem; }.works-map-unavailable p { max-width:430px;margin:0 0 8px; }
.works-map-empty-overlay { position:absolute;z-index:450;left:50%;top:50%;width:min(420px,calc(100% - 36px));padding:20px;transform:translate(-50%,-50%);border:1px solid rgba(199,216,225,.9);border-radius:14px;background:rgba(255,255,255,.94);text-align:center;box-shadow:0 8px 30px rgba(25,61,82,.14);pointer-events:none; }.works-map-empty-overlay strong { display:block;color:#24485e; }.works-map-empty-overlay p { margin:5px 0 0;color:#6b7f8b;font-size:.75rem;line-height:1.45; }
.works-leaflet-marker { background:transparent!important;border:0!important; }.works-leaflet-marker span { position:absolute;left:3px;top:2px;z-index:2;display:grid;place-items:center;width:36px;height:36px;border:4px solid #fff;border-radius:50%;background:#32739b;color:#fff;font:900 .75rem/1 inherit;box-shadow:0 6px 16px rgba(12,44,64,.32); }.works-leaflet-marker i { position:absolute;left:14px;top:30px;width:14px;height:14px;rotate:45deg;background:#32739b;border-right:3px solid #fff;border-bottom:3px solid #fff;box-shadow:4px 4px 9px rgba(12,44,64,.15); }
.works-leaflet-marker.red span,.works-leaflet-marker.red i { background:#bd363e; }.works-leaflet-marker.green span,.works-leaflet-marker.green i { background:#21805f; }.works-leaflet-marker.orange span,.works-leaflet-marker.orange i { background:#bd7619; }.works-leaflet-marker.teal span,.works-leaflet-marker.teal i { background:#128584; }.works-leaflet-marker.blue span,.works-leaflet-marker.blue i,.works-leaflet-marker.cyan span,.works-leaflet-marker.cyan i { background:#2478a6; }.works-leaflet-marker.violet span,.works-leaflet-marker.violet i,.works-leaflet-marker.indigo span,.works-leaflet-marker.indigo i { background:#6357a6; }.works-leaflet-marker.amber span,.works-leaflet-marker.amber i { background:#b97817; }.works-leaflet-marker.dark span,.works-leaflet-marker.dark i { background:#53616b; }
.leaflet-popup-content-wrapper { border-radius:13px;box-shadow:0 10px 35px rgba(12,39,58,.23); }.leaflet-popup-content { margin:15px;width:auto!important; }.works-map-popup>div { display:flex;align-items:center;justify-content:space-between;gap:10px; }.works-map-popup>div>b { color:#1b729c;font-size:1rem; }.works-map-popup h3 { margin:9px 0 4px;color:#173e59;font-size:1rem;line-height:1.25; }.works-map-popup>p { margin:0 0 10px;color:#667d8b;font-size:.72rem; }.works-map-popup>span { display:inline-flex;flex-direction:column;width:50%;padding:8px;background:#f3f7f9;vertical-align:top;box-sizing:border-box; }.works-map-popup>span small { color:#788b97;font-size:.53rem;font-weight:900; }.works-map-popup>span strong { margin-top:2px;color:#2a4a5f;font-size:.7rem; }.works-map-popup .overdue { color:#b9313b; }.works-map-popup>button { width:100%;margin-top:9px;border:0;border-radius:8px;background:#176f9b;color:#fff;padding:9px;font:800 .69rem/1.2 inherit;cursor:pointer; }
.works-map-list { display:flex;flex-direction:column;max-height:600px;padding:0;overflow:hidden; }.works-map-list-head { display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid #e2eaee; }.works-map-list-head small,.works-map-list-head strong { display:block; }.works-map-list-head small { color:#3880a3;font-size:.58rem;font-weight:900;letter-spacing:.05em; }.works-map-list-head strong { margin-top:2px;color:#29495d; }.works-map-list-head button { width:36px;justify-content:center;padding:6px;box-shadow:none; }
.works-map-list-scroll { flex:1;overflow:auto;padding:0 12px; }.works-map-list-scroll article { position:relative;padding:10px 0;border-bottom:1px solid #e7edf0;transition:.18s; }.works-map-list-scroll article.active { margin:0 -12px;padding:10px 12px;background:#edf6fa;box-shadow:inset 3px 0 #1880aa; }.works-map-focus { display:grid;grid-template-columns:28px 1fr 20px;gap:9px;width:100%;align-items:center;border:0;background:transparent;padding:0;text-align:left;cursor:pointer; }.works-map-focus>b { display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e3eef4;color:#226a91; }.works-map-focus strong { display:block;color:#173c56;line-height:1.25; }.works-map-focus span { display:flex;align-items:center;gap:6px;margin:4px 0; }.works-map-focus span em { color:#176f98;font-size:.7rem;font-style:normal;font-weight:900; }.works-map-focus small { display:block;color:#738692;font-size:.67rem; }.works-map-focus>i { color:#4f849f;font-size:1rem;font-style:normal; }.works-map-open { margin:7px 0 0 37px;border:0;background:transparent;color:#267495;padding:0;font:800 .64rem/1.2 inherit;cursor:pointer; }.works-map-open:hover { color:#0c86b1;text-decoration:underline; }
.works-map-attribution { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-top:1px solid #e0e9ed;background:#f7fafb;font-size:.61rem; }.works-map-attribution span { color:#778994; }.works-map-attribution a { color:#246f95;font-weight:800; }
.works-map-layout:fullscreen { width:100vw;height:100vh;padding:14px;background:#eef3f5;grid-template-columns:minmax(0,1fr) 360px;box-sizing:border-box; }.works-map-layout:fullscreen .works-map-shell,.works-map-layout:fullscreen .works-map-list { height:calc(100vh - 28px);max-height:none; }.works-map-layout:fullscreen .works-map-canvas { height:100%;min-height:0; }

@media (max-width:900px) {
  .works-map-layout { grid-template-columns:1fr; }.works-map-canvas { min-height:520px; }.works-map-list { max-height:430px; }.works-map-layout:fullscreen { grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;overflow:auto; }.works-map-layout:fullscreen .works-map-shell { height:68vh; }.works-map-layout:fullscreen .works-map-list { height:28vh;min-height:220px; }
}
@media (max-width:650px) {
  .works-map-heading { flex-direction:row;align-items:center; }.works-map-heading>div:first-child p:last-child { display:none; }.works-map-summary { padding:8px 10px; }.works-map-summary strong { font-size:1.35rem; }.works-map-summary span { max-width:55px;font-size:.58rem; }.works-map-guide { overflow:auto;flex-wrap:nowrap;padding-bottom:3px; }.works-map-guide span { flex:0 0 auto; }.works-map-canvas { min-height:470px; }.works-map-actions { left:8px;top:8px;gap:5px;max-width:calc(100% - 54px); }.works-map-actions button { width:38px;justify-content:center;padding:6px; }.works-map-actions button span { display:none; }.works-map-list { max-height:390px; }.works-map-attribution { align-items:flex-start;flex-direction:column; }.works-map-layout:fullscreen { padding:0;gap:0;background:#fff; }.works-map-layout:fullscreen .works-map-shell { height:67vh;border:0;border-radius:0; }.works-map-layout:fullscreen .works-map-list { height:33vh;min-height:210px;border:0;border-radius:0; }
}
