/* Landmark Builders dashboard.
   Brand: Arial; LB Black #221e1f and LB Burgundy #96022e as chrome.
   Chart marks are #b3103c + #cb773d, which pass all six dataviz checks
   (CVD dE 16.0 deutan, 19.7 normal vision). Brand burgundy is deliberately NOT a series
   colour -- it sits below the categorical lightness band and fails against LB Blue under
   protanopia. It owns chrome only. */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;background:#f2f0ee;color:#221e1f;
 font-size:11pt;line-height:1.5;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px 64px}

header{background:linear-gradient(135deg,#221e1f 0%,#3a2126 52%,#96022e 100%);color:#fff;padding:24px 0 0}
.hin{max-width:1120px;margin:0 auto;padding:0 20px}
.htop{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.logo{height:44px;width:auto;display:block}
.picker{text-align:right}
.picker label{display:block;font-size:8pt;letter-spacing:.14em;text-transform:uppercase;
 color:#e4b9c5;margin-bottom:5px}
.picker select{font-family:Arial,Helvetica,sans-serif;font-size:10pt;padding:7px 10px;
 min-width:330px;max-width:100%;border-radius:4px;border:1px solid rgba(255,255,255,.35);
 background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.picker select option{background:#221e1f;color:#fff}
.picker .meta{font-size:8.5pt;color:#d9c9ce;margin-top:6px}
.picker .meta b{color:#fff}
.picker .rbtn{margin-top:7px;font-size:8pt;letter-spacing:.08em;text-transform:uppercase;
 background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.3);
 border-radius:3px;padding:4px 10px;cursor:pointer}
.picker .rbtn:hover{background:rgba(255,255,255,.24)}
.picker .rbtn:disabled{opacity:.5;cursor:default}
.title{margin:20px 0 4px;font-size:26pt;font-weight:bold;letter-spacing:-.4px}
.sub{font-size:10.5pt;color:#e0cdd3;padding-bottom:20px}
.sub .pill{display:inline-block;background:rgba(255,255,255,.15);border-radius:3px;
 padding:2px 9px;margin-right:7px;font-size:9pt}
.idstrip{background:#221e1f;color:#cfcccd;font-size:9pt}
.idin{max-width:1120px;margin:0 auto;padding:11px 20px;display:flex;gap:30px;flex-wrap:wrap}
.idstrip b{color:#fff}

/* Six tiles must fit one row or the sixth orphans. Budget is the CONTENT width:
   1120 - 40 padding = 1080, less 5 gaps of 14 = 1010, /6 = 168.3 per tile. */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(164px,1fr));gap:14px;margin:24px 0}
.tile{background:#fcfcfb;border:1px solid #e2dfdb;border-radius:6px;padding:16px 17px;border-top:3px solid #96022e}
.tile.warn{border-top-color:#cb773d}
.tile .k{font-size:8.5pt;text-transform:uppercase;letter-spacing:.09em;color:#58595b;font-weight:bold}
.tile .v{font-size:22pt;font-weight:bold;margin:7px 0 2px;letter-spacing:-.5px}
.tile .n{font-size:9pt;color:#58595b}
.neg{color:#96022e}.pos{color:#1c6b4a}

section{background:#fcfcfb;border:1px solid #e2dfdb;border-radius:6px;padding:22px 24px;margin-bottom:16px}
h2{font-size:13pt;color:#96022e;font-weight:bold;padding-bottom:9px;border-bottom:2px solid #f0eeeb;
 margin-bottom:17px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
h2 .h2n{font-size:9pt;color:#8b8c8f;font-weight:normal}
h3{font-size:10pt;color:#58595b;text-transform:uppercase;letter-spacing:.07em;margin:20px 0 10px;font-weight:bold}
h3:first-child{margin-top:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:820px){.grid2{grid-template-columns:1fr}.picker select{min-width:0;width:100%}
 .htop{flex-direction:column}.picker{text-align:left;width:100%}}

.chart{width:100%;height:auto;overflow:visible}
.chartbox{overflow-x:auto}
text{font-family:Arial,Helvetica,sans-serif}
.cat{font-size:10px;fill:#221e1f}.val{font-size:10px;fill:#58595b;font-weight:bold}
.axis{font-size:9px;fill:#8b8c8f}.axis.over{fill:#cb773d;font-weight:bold}
.bar,.dot{cursor:pointer;transition:opacity .12s}.bar:hover,.dot:hover{opacity:.78}
.legend{display:flex;gap:18px;font-size:9pt;color:#58595b;margin-bottom:13px;flex-wrap:wrap}
.legend i{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:6px;vertical-align:-1px}

table{width:100%;border-collapse:collapse;font-size:10pt}
th{text-align:left;font-size:8.5pt;text-transform:uppercase;letter-spacing:.07em;color:#58595b;
 border-bottom:1.5px solid #e2dfdb;padding:0 10px 7px 0}
td{padding:7px 10px 7px 0;border-bottom:1px solid #f0eeeb;vertical-align:top}
tr:last-child td{border-bottom:none}
.mono{font-family:Consolas,"Courier New",monospace;font-size:9.5pt;color:#58595b}
.rolecell{color:#58595b;width:44%}
.src{font-size:8pt;color:#a7a9ac;font-style:italic}

.note{background:#fbf6ef;border-left:3px solid #cb773d;padding:12px 15px;font-size:9.5pt;
 color:#4a4547;border-radius:0 4px 4px 0;margin-top:15px}
.note b{color:#221e1f}
.note.flag{background:#fdf3f5;border-left-color:#96022e}
.kv{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid #f0eeeb;font-size:10pt}
.kv:last-child{border-bottom:none}
.kv .kvk{color:#58595b}.kv .kvv{font-weight:bold;font-variant-numeric:tabular-nums;text-align:right}
.kv.big .kvv{font-size:12pt}
.statrow{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:16px}
.stat .sv{font-size:17pt;font-weight:bold}
.stat .sk{font-size:8.5pt;text-transform:uppercase;letter-spacing:.07em;color:#58595b}
.empty{color:#8b8c8f;font-size:9.5pt;font-style:italic}

footer{margin-top:30px;padding-top:18px;border-top:2px solid #ddd9d5;font-size:8.5pt;
 color:#58595b;text-align:center;line-height:1.9}
footer b{color:#221e1f}
.prov{font-size:8pt;color:#a7a9ac;margin-top:7px}

#tip{position:fixed;background:#221e1f;color:#fff;padding:6px 10px;border-radius:4px;font-size:9pt;
 pointer-events:none;opacity:0;transition:opacity .1s;z-index:99;max-width:290px;
 box-shadow:0 3px 10px rgba(0,0,0,.28)}

#boot{max-width:1120px;margin:0 auto;padding:40px 20px;color:#58595b;font-size:10.5pt}
#boot .err{background:#fdf3f5;border-left:3px solid #96022e;padding:14px 16px;border-radius:0 4px 4px 0;
 color:#4a4547}
#boot .err b{color:#221e1f}
#boot code{font-family:Consolas,"Courier New",monospace;font-size:9.5pt;background:#f0eeeb;
 padding:1px 5px;border-radius:3px}
.spin{display:inline-block;width:13px;height:13px;border:2px solid #cfcbc7;border-top-color:#96022e;
 border-radius:50%;animation:sp .8s linear infinite;vertical-align:-2px;margin-right:8px}
@keyframes sp{to{transform:rotate(360deg)}}

@media print{body{background:#fff}section,.tile{break-inside:avoid}.picker{display:none}}

/* view switcher (Modern / Classic) */
.vnav{display:flex;gap:4px;margin-top:10px}
.vnav a{font-size:8pt;letter-spacing:.1em;text-transform:uppercase;color:#e0cdd3;
 text-decoration:none;padding:4px 11px;border-radius:3px;border:1px solid rgba(255,255,255,.28)}
.vnav a:hover{background:rgba(255,255,255,.14);color:#fff}
.vnav a.on{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.5)}
