/* Solar Gain O&M Tracker - navy rail, sun-orange accent, calm working surface */
:root{
  --bg:#f3f5f7; --surface:#ffffff; --sunk:#f7f9fa; --ink:#15202b; --muted:#566573; --faint:#8a97a3; --line:#dde3e8;
  --navy:#172338; --navy-2:#22314d; --sun:#f8b030; --sun-ink:#9a5d00; --link:#1f5e9e;
  --ok:#1e8449; --ok-soft:#e3f3e9; --warn:#b06a00; --warn-soft:#fdf0d8; --crit:#c0392b; --crit-soft:#fbe4e1;
  --info:#2c6bab; --info-soft:#e5eef8; --none:#77838e; --none-soft:#edf0f2;
  --map-land:#dde5ea; --map-edge:#a3b3bf; --map-bg:#f5f7f9;
  --display:Arial,"Segoe UI",sans-serif;
  --body:Arial,"Segoe UI",sans-serif;
  --mono:Arial,"Segoe UI",sans-serif;
  --r:8px; color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--ink);font:14px/1.5 var(--body)}
a{color:var(--link);text-decoration:none} a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--sun);outline-offset:2px}
h1,h2,h3{margin:0;text-wrap:balance}
h1{font:600 30px/1.1 var(--display);letter-spacing:.01em}
h2{font:600 20px/1.2 var(--display);letter-spacing:.01em}
h3{font:600 14px/1.3 var(--body)}
.muted{color:var(--muted)} .faint{color:var(--faint)} .mono{font-family:var(--mono)} .num{font-variant-numeric:tabular-nums}
.small{font-size:12.5px}
.eyebrow{font:500 11px/1.4 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}

.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100%}
.rail{background:var(--navy);color:#dfe7ee;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:20px 14px}
.brand img{width:150px;display:block}
.brand span{display:block;margin-top:8px;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#9fb2c4}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border-radius:6px;color:#cfdae3;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff;text-decoration:none}
.nav a[aria-current=page]{background:rgba(248,176,48,.14);color:#fff;box-shadow:inset 3px 0 0 var(--sun)}
.nav .count{font:500 11px var(--mono);background:rgba(255,255,255,.1);border-radius:10px;padding:1px 7px}
.nav .count.hot{background:var(--crit);color:#fff}
.railfoot{margin-top:auto;font-size:12px;color:#9fb2c4;display:flex;flex-direction:column;gap:4px}
.railfoot b{color:#e8eef3;font-weight:500}
main{min-width:0;padding:26px max(18px,env(safe-area-inset-right,0px)) 60px max(18px,env(safe-area-inset-left,0px))}
#view:focus{outline:none}
.wrap{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 13px;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:hover{border-color:var(--faint)}
.btn.primary{background:var(--sun);border-color:var(--sun);color:#1d1404}
.btn.ghost{background:transparent;border-color:transparent;color:var(--link);padding-inline:6px}
.btn.sm{padding:4px 10px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.panel>.ph{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}
.panel>.pb{padding:16px}
.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:20px;padding:2px 9px;white-space:nowrap;line-height:1.45}
.pill.crit{background:var(--crit-soft);color:var(--crit)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.info{background:var(--info-soft);color:var(--info)} .pill.none{background:var(--none-soft);color:var(--none)}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.dot.crit{background:var(--crit)} .dot.warn{background:var(--warn)} .dot.ok{background:var(--ok)} .dot.info{background:var(--info)} .dot.none{background:var(--faint)}

/* home */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.acard{all:unset;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px 14px 18px;display:flex;flex-direction:column;gap:6px;position:relative;min-width:0}
.acard::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 3px 3px 0;background:var(--faint)}
.acard.crit::before{background:var(--crit)} .acard.warn::before{background:var(--warn)} .acard.info::before{background:var(--info)}
.acard:hover{border-color:var(--faint)} .acard:focus-visible{outline:2px solid var(--sun)}
.acard .t{font-weight:600;line-height:1.35}
.acard .d{font-size:12.5px;color:var(--muted)}
.acard .foot{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);margin-top:auto}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.list{display:flex;flex-direction:column}
.row{all:unset;cursor:pointer;display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 16px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row:hover{background:var(--sunk)} .row:focus-visible{outline:2px solid var(--sun);outline-offset:-2px}
.row .when{font:500 12px var(--mono);color:var(--muted)}
.row .what{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.empty{padding:22px;text-align:center;color:var(--muted);font-size:13px}
.people{display:flex;flex-wrap:wrap;gap:8px}
.person{all:unset;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:5px 12px;font-size:13px;display:flex;gap:8px;align-items:center}
.person:hover{border-color:var(--faint)}
.person b{font-weight:600}
.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}

/* tables */
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.toolbar input[type=search],.toolbar select{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:8px 11px;min-width:0}
.toolbar input[type=search]{flex:1 1 240px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{all:unset;cursor:pointer;border:1px solid var(--line);border-radius:20px;padding:4px 11px;font-size:12.5px;background:var(--surface)}
.chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.tablebox{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--sunk)}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr.click{cursor:pointer} tr.click:hover td{background:var(--sunk)}
td.nw{white-space:nowrap}
td select{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:3px 6px;font-size:12.5px}

/* site workspace */
.crumb{font-size:13px}
.sitehead{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-start}
.sitehead .sub{color:var(--muted);margin-top:4px}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sbox{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}
.sbox .k{font-size:12px;color:var(--muted)}
.sbox .v{font:600 20px/1.2 var(--display)}
.sbox .s{font-size:12px}
.tabs{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.tabs a{padding:9px 13px;color:var(--muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--ink);text-decoration:none}
.tabs a[aria-selected=true]{color:var(--ink);border-bottom-color:var(--sun)}
.tabs .count{font:500 11px var(--mono);color:var(--faint);margin-left:4px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.facts{display:grid;grid-template-columns:minmax(130px,max-content) minmax(0,1fr);gap:8px 16px;margin:0;font-size:13px}
.facts dt{color:var(--muted)}
.facts dd{margin:0;min-width:0;overflow-wrap:anywhere;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.src{font:400 10.5px var(--mono);color:var(--faint);border:1px dashed var(--line);border-radius:4px;padding:0 5px;white-space:nowrap}
a.src:hover{color:var(--link);border-color:var(--link);text-decoration:none}
.src.conflict{color:var(--crit);border:1px solid var(--crit)} .src.missing{color:var(--warn);border-color:var(--warn)} .src.confirmed{color:var(--ok);border:1px solid var(--ok)}
.item{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.items{display:flex;flex-direction:column;gap:10px}
.item .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.item .title{font-weight:600}
.tags{display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:11px;background:var(--sunk);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--muted)}
.timeline{display:flex;flex-direction:column}
.tl{display:grid;grid-template-columns:96px 14px minmax(0,1fr);gap:10px;padding:8px 0}
.tl .when{font:500 12px var(--mono);color:var(--muted);text-align:right}
.tl .mk{position:relative}
.tl .mk::before{content:"";position:absolute;left:6px;top:0;bottom:-8px;width:1px;background:var(--line)}
.tl .mk i{position:absolute;left:2px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--faint)}
.tl .d{font-size:12.5px;color:var(--muted)}
.note{border-left:3px solid var(--sun);background:var(--surface);border-radius:0 var(--r) var(--r) 0;padding:10px 14px;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.note .by{font-size:12px;color:var(--muted);margin-bottom:4px}
.note p{margin:0;white-space:pre-wrap}
.composer{display:flex;flex-direction:column;gap:8px}
.composer textarea{border:1px solid var(--line);border-radius:6px;padding:9px 11px;background:var(--surface);min-height:80px;resize:vertical}
.composer .opts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px}
.composer .opts input,.composer .opts select{border:1px solid var(--line);border-radius:5px;padding:5px 8px;background:var(--surface)}

/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);min-width:680px}
.cal .dh{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--sunk)}
.cal .day{min-height:100px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}
.cal .day.out{background:var(--sunk)} .cal .day.out .dn{color:var(--faint)}
.cal .day.today{box-shadow:inset 0 0 0 2px var(--sun)}
.cal .dn{font:11px var(--mono);color:var(--muted)}
.ev{all:unset;cursor:pointer;font-size:11px;line-height:1.3;padding:2px 5px;border-radius:3px;border-left:3px solid var(--faint);background:var(--sunk);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.ev.pm{border-color:var(--info);background:var(--info-soft)} .ev.clean{border-color:var(--ok);background:var(--ok-soft)} .ev.contract{border-color:var(--crit);background:var(--crit-soft)} .ev.task{border-color:var(--warn);background:var(--warn-soft)}
.ev.proj{border-left-style:dashed}

/* map */
.mapbox{position:relative;height:460px;background:var(--map-bg);border-radius:0 0 var(--r) var(--r);overflow:hidden}
.mapbox canvas{display:block;width:100%;height:100%;touch-action:none}
.maplabel{position:absolute;font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);pointer-events:none;transform:translate(-50%,-50%);white-space:nowrap}
.maptip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-size:12px;box-shadow:0 4px 14px rgba(0,0,0,.12);max-width:240px;display:none;z-index:3}

/* dialogs, toasts */
dialog{border:1px solid var(--line);border-radius:10px;padding:0;background:var(--surface);color:var(--ink);width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 40px)}
dialog::backdrop{background:rgba(10,16,22,.45)}
.dlg{display:flex;flex-direction:column;max-height:calc(100vh - 42px)}
.dlg header,.dlg footer{padding:13px 18px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--line)}
.dlg footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}
.dlg .body{padding:18px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld.wide{grid-column:1/-1}
.fld label{font-size:12px;color:var(--muted);font-weight:500}
.fld input,.fld select,.fld textarea{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--sunk);width:100%}
.fld textarea{min-height:72px;resize:vertical}
.checks{display:flex;flex-wrap:wrap;gap:6px 12px;max-height:160px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px;background:var(--sunk)}
.checks label{font-size:12.5px;display:flex;gap:5px;align-items:center}
.toast{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--navy);color:#fff;padding:11px 15px;border-radius:7px;font-size:13px;z-index:50;display:none;max-width:380px;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.banner{border:1px solid var(--line);border-left:4px solid var(--info);background:var(--surface);padding:10px 14px;border-radius:var(--r);font-size:13px}
.banner.warn{border-left-color:var(--warn)} .banner.crit{border-left-color:var(--crit)}
footer.site{max-width:1240px;margin:28px auto 0;font-size:12px;color:var(--faint);display:flex;gap:12px;flex-wrap:wrap}
.loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--muted)}
pre.notice{white-space:pre-wrap;font:12px/1.5 var(--mono);background:var(--sunk);border:1px solid var(--line);border-radius:6px;padding:12px;max-height:340px;overflow:auto}

@media (max-width:1050px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr)}.cols3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{position:static;height:auto;gap:12px;padding:14px max(16px,env(safe-area-inset-left,0px))}
  .brand img{width:120px}
  .nav{flex-direction:row;overflow-x:auto}
  .nav a{white-space:nowrap;padding:6px 10px}
  .railfoot{display:none}
  .grid2{grid-template-columns:minmax(0,1fr)}
  .dlg .body{grid-template-columns:minmax(0,1fr)}
  .mapbox{height:340px}
}
@media (max-width:480px){.summary{grid-template-columns:minmax(0,1fr)}h1{font-size:25px}.row{grid-template-columns:64px minmax(0,1fr)}.row>:last-child{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- top navigation ---- */
.app{display:flex;flex-direction:column;min-height:100%}
.rail{position:sticky;top:0;z-index:20;height:auto;flex-direction:row;align-items:center;gap:22px;padding:10px max(18px,env(safe-area-inset-right,0px)) 10px max(18px,env(safe-area-inset-left,0px))}
.rail .brand{flex:none}
.nav{flex-direction:row;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.nav a{white-space:nowrap;gap:8px;padding:8px 13px}
.nav a[aria-current=page]{background:rgba(248,176,48,.16);color:#fff;box-shadow:inset 0 -3px 0 var(--sun)}
.railfoot{margin:0;flex:none;flex-direction:column;align-items:flex-end;gap:0}
main{max-width:1440px;width:100%;margin:0 auto}
@media (max-width:900px){.rail{flex-wrap:wrap;gap:8px}.nav{order:3;flex-basis:100%}.railfoot{display:flex;margin-left:auto}}
/* ---- notes ---- */
.composer{display:flex;flex-direction:column;gap:10px}
.composer select{width:100%;margin-top:4px}
.composer textarea{min-height:110px}
.dest{font-size:13px;padding:8px 10px;border-radius:6px;border-left:3px solid var(--line)}
.dest.desk{background:var(--info-soft);border-left-color:var(--info)}
.dest.site{background:var(--none-soft);border-left-color:var(--none)}
.err{background:var(--crit-soft);color:var(--crit);padding:8px 10px;border-radius:6px;font-size:13px}
.pill.dark{background:var(--info);color:#fff}
a.pill{text-decoration:none}
.note.desk{border-left:3px solid var(--info);padding-left:10px}
.item a.title{color:inherit}
.crumbs{font-size:13px;margin-bottom:8px}
.homemap{position:relative;height:300px;border-radius:8px;overflow:hidden}
.homemap .empty{height:100%;display:grid;place-items:center}
.rail .brand img{width:128px}.rail .brand span{margin-top:3px;font-size:10px}

/* Neutral service workspace: light surfaces, compact controls, restrained status colors. */
:root {
  --bg:#f6f7f9; --surface:#fff; --sunk:#f8f9fb; --ink:#28313b;
  --muted:#626d79; --faint:#74808b; --line:#e2e6eb;
  --navy:#344355; --navy-2:#44556a; --sun:#2876cf; --sun-ink:#2467ab; --link:#2269b3;
  --ok:#377454; --ok-soft:#edf6f0; --warn:#936728; --warn-soft:#fbf5e9;
  --crit:#b24945; --crit-soft:#fbefee; --info:#346fa9; --info-soft:#eef4fb;
  --none:#67727e; --none-soft:#f0f2f5;
  --map-land:#e6eaf0; --map-edge:#b9c2ce; --map-bg:#fafbfc;
  --r:4px; color-scheme:light;
}
body {font-size:13px;line-height:1.5}
h1 {font-size:24px;line-height:1.3;font-weight:600;letter-spacing:0}
h2 {font-size:16px;line-height:1.4;font-weight:600;letter-spacing:0}
h3 {font-size:13px}
.eyebrow {font-family:var(--body);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted)}
.rail {background:#fff;color:var(--ink);border-bottom:1px solid #dce1e7;padding:0 22px;min-height:66px;gap:25px;box-shadow:none}
.rail .brand {text-decoration:none;padding:10px 0}
.rail .brand img {width:112px;filter:brightness(.3) saturate(.2)}
.rail .brand span {color:#67727e;font-size:11px;letter-spacing:0;text-transform:none;margin-top:3px}
.nav {align-self:stretch;align-items:stretch;gap:4px}
.nav a {color:#536171;border-radius:0;font-weight:400;padding:0 12px;min-height:54px;border-bottom:2px solid transparent}
.nav a:hover {background:#f8fafd;color:#266bb5}
.nav a[aria-current=page] {color:#2269b3;background:#fff;box-shadow:none;border-bottom-color:#2876cf;font-weight:600}
.nav .count,.nav .count.hot {background:#f0f2f5;color:#596775;border-radius:3px;font:11px Arial,sans-serif;padding:0 5px}
.railfoot {color:#75808b;font-size:11px;gap:1px;padding:8px 0}
.railfoot b {color:#394657;font-weight:400}
.railfoot .btn {font-size:11px;padding:3px 7px;border-color:transparent;color:#2870ba;background:none;min-height:0}
main {padding-top:24px}
.wrap {gap:18px}
.btn,.toolbar input[type=search],.toolbar select,.composer textarea,.fld input,.fld select,.fld textarea {border-radius:4px}
.btn {font-weight:400;font-size:13px;min-height:31px;padding:5px 12px}
.btn.primary {background:#2876cf;border-color:#2876cf;color:white}
.btn.primary:hover {background:#2369b8;border-color:#2369b8}
.btn:hover {border-color:#b6c2cf;background:#f8fafd}
.btn.ghost:hover {background:#f0f5fb}
.panel {box-shadow:none;border-color:#e0e5eb}
.panel>.ph {padding:10px 14px;background:#fff}
.panel>.pb {padding:14px}
.pill {border-radius:3px;font-size:11px;font-weight:400;padding:2px 7px}
.pill.dark {background:var(--info-soft);color:var(--info)}
.chip,.person {border-radius:4px;box-shadow:none}
.chips {gap:5px}
.chip {font-size:12px;padding:4px 10px;color:#5c6977}
.chip[aria-pressed=true] {background:#eef4fb;border-color:#b9cfe8;color:#2269b3}
.person {background:#fff;padding:5px 9px;font-size:12px}
.person b {font-weight:400}
th {font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;background:#f6f8fa;color:#606b78;padding:10px 12px}
td {padding:10px 12px;border-bottom-color:#e9edf1;font-size:13px}
td b {font-weight:600}
tr:last-child td {border-bottom:0}
tr.click:hover td {background:#f5f9ff}
.sbox .v {font-family:var(--body);font-size:18px;font-weight:500}
.cards {gap:0;border:1px solid var(--line);border-radius:4px;background:#fff;overflow:hidden}
.acard {border:0;border-bottom:1px solid var(--line);border-radius:0;background:white;padding:13px 16px;gap:5px}
.acard::before {display:none}
.acard:hover {background:#f8fafc}
.acard .t {font-weight:600;font-size:13px}
.acard .d {font-size:12px;color:#687482}
.acard .foot {font-size:11px}
.acard.crit .foot {color:#a54843}
.item {border-radius:3px;padding:11px 13px;gap:5px}
.item p {margin:2px 0}
.items {gap:8px}
.tabs a {font-weight:400;font-size:13px}
.tabs a[aria-selected=true] {color:#2269b3}
.dest,.err {border-radius:3px}
.note {border-left-width:2px}
.homemap {border-radius:3px}
.maplabel {font-family:Arial,sans-serif;text-transform:none;letter-spacing:0}
.toast {border-radius:4px;box-shadow:0 2px 8px #0002}
dialog {border-radius:5px}
@media(max-width:900px){
  .rail {padding:7px 16px;gap:8px}
  .nav a {min-height:38px;padding:6px 10px}
  .railfoot {padding:0}
}
.seg{display:inline-flex;border:1px solid #d8dfe7;border-radius:4px;overflow:hidden;background:#fff}
.seg button{appearance:none;background:#fff;border:0;border-right:1px solid #d8dfe7;padding:6px 12px;font-size:12px;cursor:pointer;color:#5b6877}
.seg button:last-child{border-right:0}
.seg button.on{background:#eef4fb;color:#2269b3;font-weight:600}
.seg button:hover{background:#f5f8fc}
/* Portfolio analytics */
.analytics{display:flex;flex-direction:column;gap:16px}
.analytics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:4px}
.analytics-stat{display:flex;flex-direction:column;gap:4px;padding:15px 18px;color:var(--ink);border-right:1px solid var(--line)}
.analytics-stat:last-child{border:0}
.analytics-stat:hover{background:#f8fafd;text-decoration:none}
.analytics-stat>span{font-size:12px;color:var(--muted)}
.analytics-stat strong{font-size:26px;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums}
.analytics-stat small{font-size:11px;color:var(--muted)}
.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.analytics-bars{display:flex;flex-direction:column;gap:12px;padding:18px 15px}
.analytics-bar-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(70px,1.25fr) 25px;align-items:center;gap:12px;color:var(--ink);font-size:12px}
.analytics-bar-row svg{display:block;width:100%;height:12px}
.analytics-bar-row b{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.analytics-bar-row:hover{text-decoration:none;color:var(--link)}
.analytics-months{display:flex;gap:18px;align-items:flex-end;padding:18px 22px 12px}
.analytics-months a{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;color:var(--muted);font-size:11px}
.analytics-months svg{display:block;width:100%;height:105px}
.analytics-months strong{font-weight:500;font-size:12px;color:var(--ink)}
.analytics-footnote{font-size:11px;color:var(--muted);margin:0;padding:0 15px 12px}
.attention-detail{background:#fff;border:1px solid var(--line);border-radius:4px}
.attention-detail summary{padding:12px 15px;cursor:pointer;font-weight:600}
.attention-detail summary span{margin-left:12px;font-weight:400}
@media(max-width:720px){.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-stat:nth-child(2){border-right:0}.analytics-stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.analytics-grid{grid-template-columns:1fr}.analytics-bar-row{grid-template-columns:minmax(110px,1fr) minmax(60px,1.25fr) 25px}}
