*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#c5d0d6;font-family:"Avenir Next","Segoe UI",sans-serif;color:#1c1915}
#app{position:fixed;inset:0}
#topbar{position:fixed;top:0;left:0;right:0;height:44px;background:rgba(243,240,232,.62);border-bottom:1px solid rgba(28,25,21,.14);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:14px;letter-spacing:.5px}
.brand b{color:#1c1915;font-weight:600}.sim{background:#f3f0e8;color:#7a2430;font-weight:650;padding:4px 10px;border-radius:2px;border:1px solid #7a2430;letter-spacing:.08em;font-size:11px}
#left,#right{position:fixed;top:54px;width:290px;max-height:calc(100vh - 64px);display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(28,25,21,.28) transparent}#left{left:10px;overflow:auto}#right{right:10px;width:332px;height:calc(100vh - 64px);gap:8px;overflow:hidden}
.panel{background:rgba(243,240,232,.94);border:1px solid rgba(28,25,21,.12);border-radius:2px;padding:10px 12px;box-shadow:0 10px 28px rgba(28,25,21,.05)}
h3{margin:0 0 8px;font-size:11px;color:#5c564c;letter-spacing:.14em;font-weight:600}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}
button{background:transparent;color:#1c1915;border:1px solid rgba(28,25,21,.18);border-radius:2px;padding:7px 6px;font-size:12px;cursor:pointer;letter-spacing:.04em}
button:hover{border-color:#1c1915}button.on{background:#1c1915;border-color:#1c1915;color:#f3f0e8}
.btns{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.gauge{position:relative;width:120px;height:120px;margin:0 auto 6px}.gauge svg{transform:rotate(-90deg)}
.trk{fill:none;stroke:#e4dfd4;stroke-width:8}.arc{fill:none;stroke:#1c1915;stroke-width:8;stroke-linecap:round;stroke-dasharray:314;transition:stroke-dashoffset .26s}
.gv{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gv span{font-size:30px;font-weight:560}.gv small{color:#5c564c;font-size:11px;letter-spacing:.08em}
.rows div.r{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:3px 0;border-bottom:1px solid rgba(28,25,21,.08)}
.r .v{font-family:ui-monospace,Consolas,monospace;color:#1c1915}
i.b{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}
.green{background:#2f6b45}.blue{background:#2f5f78}.amber{background:#9a7030}.purple{background:#6a587f}.red{background:#8d3a3a}
.legend div{font-size:12px;padding:2px 0}.muted{color:#5c564c;font-size:12px}
#bottom{position:fixed;bottom:0;left:0;right:0;min-height:30px;height:auto;background:#f3f0e8;border-top:1px solid rgba(28,25,21,.14);font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 16px;font-family:ui-monospace,Consolas,monospace;color:#1c1915}
#xraykey,#intkey{position:fixed;left:312px;right:354px;bottom:38px;z-index:4;background:rgba(243,240,232,.94);border:1px solid rgba(28,25,21,.14);color:#1c1915;font-size:12px;padding:6px 10px;border-radius:2px}
#labels{position:fixed;inset:0;pointer-events:none}
.hs{position:absolute;transform:translate(-50%,-120%);pointer-events:auto;cursor:pointer;background:rgba(243,240,232,.92);border:1px solid rgba(28,25,21,.28);border-radius:2px;padding:2px 7px;font-size:11px;white-space:nowrap;color:#1c1915}
.hs.unit{width:74px;padding:3px 5px 4px;transform:translate(-50%,-115%);display:flex;flex-direction:column;gap:2px;background:rgba(243,240,232,.96)}
.hs.unit .nm{font-size:11px;font-weight:700;letter-spacing:.6px;text-align:center;line-height:1.15}
.hbar{display:block;height:6px;background:#e4dfd4;border-radius:3px;overflow:hidden}
.hbar i{display:block;height:100%;width:0;border-radius:3px}
.hbar.ok i{background:#1f6b45}
.hbar.mid i{background:#8a6230}
.hbar.bad i{background:#8d3144}
.hbar.lg{height:10px;margin:6px 0 8px}
button.hbar{width:100%;padding:0;border:0;cursor:pointer;line-height:0}
button.hbar.lg{height:14px}
button.hbar:hover{border:0;outline:1px solid #1c1915}
.btns.cats button{flex:1 1 0;font-size:10px;padding:6px 2px;letter-spacing:.3px}
a.man{display:block;color:#3d4a44;font-size:12px;margin:4px 0;text-decoration:none}
a.man:hover{color:#1c1915}
ol.steps{margin:2px 0 8px;padding-left:18px;font-size:12px}
ol.steps li{margin:4px 0}
.health-flag{color:#5c4d68;font-weight:650;letter-spacing:.12em;font-size:12px;margin:0 0 4px}
ul.parts{margin:2px 0 6px;padding-left:16px;font-size:12px}
ul.parts li{margin:2px 0}
.hs:hover,.hs.sel{background:#e7e1d4}
#detail .r{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:12px;padding:3px 0;border-bottom:1px solid rgba(28,25,21,.08)}
#detail .r .v{text-align:right;max-width:62%;word-break:break-word}
.cause{font-size:12px;margin:3px 0}
.build{display:flex;flex-direction:column;gap:6px}
.build-steps{display:flex;flex-wrap:wrap;gap:4px}
.build-steps button{flex:1 1 calc(25% - 4px);min-width:0;font-size:10px;padding:6px 2px;letter-spacing:.3px}
.build-blurb{color:#5c564c;font-size:12px;line-height:1.35}
.build-body{display:flex;flex-direction:column;gap:6px}
.build-card{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:3px 8px;align-items:center;width:100%;text-align:left;white-space:normal;line-height:1.35;margin:0;padding:8px;font-size:13px;transition:border-color .25s,background .25s}
button.build-card{cursor:pointer}
.build-card .name{letter-spacing:.2px;font-weight:600}
.build-card .act{justify-self:end;width:52px;text-align:center;font-size:9px;letter-spacing:.6px;border:1px solid #6a587f;color:#4c4458;border-radius:99px;padding:2px 0;background:#f6f1e8}
.build-card .blurb,.build-card .size,.build-card .notice{grid-column:1 / -1;font-weight:400;letter-spacing:0}
.build-card .blurb{color:#3f3a34;font-size:12px;overflow-wrap:break-word}
.build-card .size{color:#6a645c;font-size:11px;overflow-wrap:break-word}
.build-card .notice{color:#4c4458;font-size:11px;border:1px dashed #6a587f;border-radius:4px;padding:5px 6px;background:#f6f1e8}
.build-card.on{background:#e7f0ea;border-color:#1f6b45}
.build-card.on .act{border-color:#1f6b45;color:#1c1915;background:#e7f0ea}
#detail .k{margin-top:8px}
#modes{grid-template-columns:repeat(5,1fr)}
#modes button{font-size:10px;padding:5px 2px;letter-spacing:0}
.modebar{padding:4px 6px;flex:0 0 auto}
.railtabs{grid-template-columns:repeat(4,1fr);flex:0 0 auto;gap:4px;padding:0 7px;box-sizing:border-box}
.railtabs button{font-size:10px;padding:5px 2px;letter-spacing:.2px}
#railbody{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:rgba(28,25,21,.28) transparent}
.rail-page,#detail{min-height:0;padding:8px 6px}
.gauge.sm{width:108px;height:108px;margin:0;flex:0 0 auto}
.gauge.sm .arc{stroke-dasharray:289}
.gauge.sm .gv span{font-size:26px}
.gauge.sm .gv small{font-size:9px;letter-spacing:.3px}
.rdy-top{display:flex;gap:8px;align-items:center}
.cats{flex:1;min-width:0}
.cat{margin:0 0 4px}
.cat-h{display:flex;gap:4px;align-items:baseline;font-size:10px;letter-spacing:.2px;color:#5c564c}
.cat-h span{flex:1;min-width:0}
.cat-h b{font-family:Consolas,monospace;color:#1c1915}
.cat-h em{font-style:normal;font-size:9px;letter-spacing:.4px}
.cat-h em.complete,.slim b.complete,.v.complete{color:#1f6b45}
.cat-h em.attention,.slim b.attention,.v.attention{color:#7a5a18}
.cat-h em.overdue,.slim b.overdue,.v.overdue,.v.missing{color:#8d3144}
.cat-h em.empty,.slim b.empty{color:#5c564c}
.bar{height:6px;background:#e4dfd4;border-radius:4px;overflow:hidden;margin-top:2px}
.bar>span{display:block;height:100%;width:0;border-radius:4px}
.bar.complete>span{background:#1f6b45}
.bar.attention>span{background:#8a6230}
.bar.overdue>span{background:#8d3144}
.bar.empty{outline:1px dashed rgba(28,25,21,.35)}
.key{font-size:10px;color:#5c564c;margin:2px 0 4px}
.sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin:0 3px 0 6px;vertical-align:middle}
.sw.complete{background:#1f6b45}.sw.attention{background:#8a6230}.sw.overdue{background:#8d3144}
.syspick{display:flex;flex-wrap:nowrap;gap:3px;margin:4px 0 6px}
.syspick button{flex:1;min-width:0;padding:4px 0;font-size:9px;letter-spacing:0}
.vault{flex-wrap:nowrap}
.vault button{min-width:0;font-size:10px;padding:5px 2px}
.chips{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 6px}
.chip{flex:0 0 auto;border:1px solid rgba(28,25,21,.22);border-radius:99px;padding:3px 7px;font-size:10px;letter-spacing:.3px;color:#1c1915;background:#f3f0e8}
.chip.complete{border-color:#1f6b45;color:#1c1915;background:#e7f0ea}
.badges{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:4px 0 8px}
button.ach{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:34px;padding:4px 2px;font-size:11px;letter-spacing:.4px;line-height:1.15;border-radius:4px}
button.ach .sub{font-size:8px;letter-spacing:.5px;color:#1f6b45}
button.ach.filed{background:#e7f0ea;border-color:#1f6b45;color:#1c1915}
button.ach.sel{box-shadow:inset 0 0 0 1px #1c1915}
.chip.attention{border-color:#8a6416;color:#7a5a18;background:#f8f1e4}
.chip.overdue{border-color:#d7b4bc;color:#8d3144;background:#f8eef0}
.k{margin:7px 0 3px;font-size:10px;letter-spacing:1.2px;color:#5c564c}
.quest{border-left:3px solid rgba(28,25,21,.22);padding:3px 4px 3px 6px;margin:3px 0;background:#e7e1d4}
.quest.overdue,.quest.missing{border-left-color:#8d3144}
.quest.attention{border-left-color:#8a6230}
.quest.complete{border-left-color:#1f6b45}
.quest-top{display:flex;align-items:center;gap:4px}
.quest-top>b{width:12px;color:#5c564c;font-size:11px;flex:0 0 auto}
.imp{font-family:Consolas,monospace;color:#1c1915;font-size:12px;width:34px;flex:0 0 auto}
.qt{flex:1;min-width:0;font-size:12px}
.quest .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quest .muted.detail{white-space:normal;overflow:visible;text-overflow:unset}
.quest button{padding:3px 6px;font-size:10px}
.banner{border:1px dashed rgba(28,25,21,.35);color:#3f3a34;background:#f7f4ee;border-radius:4px;padding:6px 8px;font-size:12px;margin:0 0 6px}
.banner.est{border-color:#6a587f;color:#4c4458;background:#f6f1e8}
.slim{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-family:Consolas,monospace;margin:2px 0 4px}
.slim b{font-size:20px}
.sysname{font-size:15px;font-weight:600;letter-spacing:.3px;margin:2px 0}
.provline{font-size:11px;line-height:1.45;margin:2px 0 4px}
#readiness{padding:0}
#readiness h3{margin-bottom:2px}
#readiness .btns,#sysvault .btns{margin-bottom:2px}
.sysname .tag{display:inline-block;margin-left:6px;border:1px solid #1f6b45;border-radius:99px;padding:1px 6px;font-size:9px;letter-spacing:.4px;color:#1c1915;background:#e7f0ea;vertical-align:middle}
#readiness .r{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;font-size:12px;padding:3px 0;border-bottom:1px solid rgba(28,25,21,.08)}
#readiness .r span:first-child{flex:1;min-width:0;padding-right:4px}
#readiness .v{font-size:11px;text-align:right;max-width:48%;word-break:break-word}
#readiness small.muted{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#provenance{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:center;margin-top:8px;padding-top:6px;border-top:1px solid rgba(28,25,21,.14)}
#provenance h3{width:100%;margin:0 0 2px}
#provenance div{padding:0}
.vault button{flex:1}
@media (max-width:860px){
  #topbar{height:auto;min-height:44px;flex-wrap:wrap;gap:4px 8px;padding:6px 10px}
  #topbar .brand{font-size:12px;flex:1 1 180px}
  .sim{font-size:10px;letter-spacing:.3px;padding:4px 8px}
  #left,#right{left:8px;right:8px;width:auto}
  #left{top:58px;max-height:28vh}
  #right{top:auto;bottom:72px;max-height:42vh;height:42vh}
  #bottom{height:auto;min-height:30px;flex-wrap:wrap;font-size:10px}
  #xraykey,#intkey{left:8px;right:8px;bottom:46vh}
  .rdy-top{flex-direction:column;align-items:stretch}
  .gauge.sm{margin:0 auto}
  #modes{grid-template-columns:repeat(5,1fr)}
  .railtabs,.badges{grid-template-columns:repeat(4,1fr)}
}
#memo-open{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);border:0}
#memo{position:fixed;z-index:30;top:52px;left:12px;bottom:42px;width:min(400px,38vw);display:flex;flex-direction:column;background:#f3efe6;color:#1c1915;border-radius:10px;box-shadow:0 16px 48px #000a;overflow:hidden;font-family:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,serif;font-size:16.5px;line-height:1.55;transition:transform .28s ease}
#memo-open:not(:checked)~#memo{transform:translateX(calc(-100% - 24px));pointer-events:none}
.memo-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #e0d9cc;background:#f3efe6;flex:0 0 auto}
.memo-flag{margin:0;font-family:"Avenir Next","Segoe UI",sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;color:#7a1020}
.memo-hide{font-family:"Avenir Next","Segoe UI",sans-serif;font-size:12px;letter-spacing:.04em;color:#1c1915;border:1px solid #c9c0b2;border-radius:99px;padding:6px 12px;cursor:pointer;background:#fffdf8}
.memo-hide:hover{border-color:#1c1915}
.memo-scroll{overflow:auto;padding:18px 20px 28px;flex:1 1 auto;-webkit-overflow-scrolling:touch}
#memo h1{font-size:34px;font-weight:500;letter-spacing:-.02em;margin:0 0 4px;line-height:1.1;color:#1c1915}
#memo .meta{margin:0 0 8px;font-family:"Avenir Next","Segoe UI",sans-serif;font-size:12px;letter-spacing:.03em;color:#5e584e}
#memo h2{font-family:"Avenir Next","Segoe UI",sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#6a6258;margin:22px 0 8px}
#memo h3{font-family:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,serif;font-size:18px;font-weight:600;letter-spacing:0;color:#1c1915;margin:16px 0 4px}
#memo p{margin:0 0 10px}
#memo .note{font-family:"Avenir Next","Segoe UI",sans-serif;font-size:12px;letter-spacing:.02em;color:#5e584e}
#memo ul{margin:0 0 12px;padding-left:1.15em}
#memo li{margin:0 0 6px}
#memo-tab{display:none;font-family:"Avenir Next","Segoe UI",sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#f3efe6;background:#1c1915;border:1px solid #d9d0c2;border-radius:99px;padding:4px 10px;cursor:pointer;margin-right:10px}
#memo-open:not(:checked)~#topbar #memo-tab{display:inline-flex;align-items:center}
#topbar{z-index:40}
#bottom{z-index:35}
@media (min-width:861px){
  body:has(#memo-open:checked) #left{visibility:hidden;pointer-events:none}
  body:has(#memo-open:checked) #xraykey,body:has(#memo-open:checked) #intkey{left:min(432px,calc(38vw + 28px))}
}
@media (max-width:860px){
  #memo{top:56px;left:8px;right:8px;bottom:auto;width:auto;height:min(42vh,380px);max-height:42vh;border-radius:12px;font-size:17px}
  #memo-open:not(:checked)~#memo{transform:translateY(calc(-100% - 80px))}
  #memo h1{font-size:28px}
  body:has(#memo-open:checked) #left,body:has(#memo-open:checked) #right{visibility:hidden;pointer-events:none}
  #memo-tab{margin-right:8px}
}
.breakdown{display:flex;flex-direction:column;gap:2px;margin:0 0 8px;padding:6px 8px;border:1px solid rgba(28,25,21,.12);border-radius:4px;background:#e7e1d4}
.breakdown>button{width:100%}
.money{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:2px 0;border-bottom:1px solid rgba(28,25,21,.08)}
.money span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.money b{font-family:Consolas,monospace;color:#1c1915;font-weight:500;white-space:nowrap}
.money.total b{color:#1c1915}
.look{font-size:12px;color:#3f3a34;line-height:1.35;margin:2px 0 4px}
.lead{margin:0 0 8px;font-size:13px;line-height:1.4;color:#3f3a34}
.fit{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin:6px 0 0;font-size:12px}
.fit b{font-family:Consolas,ui-monospace,monospace;font-weight:550}
.fit span{color:#5c564c}
.figure{margin:8px 0 2px}
.figure-n{font-family:Consolas,ui-monospace,monospace;font-size:22px;line-height:1.2;margin:2px 0}
.hold-date{font-family:Georgia,"Iowan Old Style",Palatino,serif;font-size:22px;line-height:1.2;margin:2px 0 6px}
.svc-msg{color:#7a2430;font-size:12px;margin:6px 0}
button.textlink{display:inline;width:auto;min-height:0;margin:0 0 0 8px;padding:0;border:0;background:transparent;color:#1c1915;text-decoration:underline;font-size:12px;vertical-align:baseline}
button.go{display:flex;align-items:center;justify-content:center;width:100%;background:#1c1915;color:#f3f0e8;border-color:#1c1915;min-height:44px;margin:8px 0;font-size:13px}
button.go:hover{background:#3a342c;color:#f3f0e8;border-color:#3a342c}
button.back{display:flex;align-items:center;width:100%;border:0;background:transparent;padding:0;min-height:44px;text-align:left;color:#5c564c}
button.back::before{content:"← "}
button.quiet{display:flex;align-items:center;justify-content:center;width:100%;border:0;background:transparent;color:#5c564c;min-height:44px}
details.lines{margin:4px 0 8px}
details.lines summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:12px}
.picks{margin-top:0}
.quote-sum{font-family:Consolas,monospace;font-size:12px;color:#1c1915;padding:4px 0 6px;background:#f3f0e8}
.quote-sum .muted{font-family:"Avenir Next","Segoe UI",sans-serif}
.job{width:100%;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0 0 4px}
pre.note{margin:6px 0;padding:8px;background:#efeae0;border:1px solid rgba(28,25,21,.14);white-space:pre-wrap;font:12px/1.45 ui-monospace,Menlo,monospace;color:#1c1915}
.job b{font-size:12px}
.job span{font-size:11px;color:#5c564c}
.jsteps{display:flex;gap:4px;margin:6px 0}
.jsteps button{flex:1;min-width:0;font-size:10px;padding:5px 2px}
.jsteps button:disabled{opacity:.35;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin:4px 0}
.cal-grid span,.cal-grid button{font-size:10px;padding:4px 0;text-align:center;min-width:0}
.cal-grid span{color:#6a645c}
.cal-grid button:disabled{opacity:.35}
.svc-row{display:flex;gap:4px;align-items:center;margin:4px 0}
.svc-row select{flex:1;min-width:0}
.svc-row b{flex:1;text-align:center;font-size:12px;font-weight:600}
.check{display:flex;gap:6px;align-items:flex-start;font-size:11px;line-height:1.35;margin:2px 0;color:#3f3a34}
input.field,select.field{width:100%;background:#f3f0e8;color:#1c1915;border:1px solid rgba(28,25,21,.22);border-radius:4px;padding:6px;font-size:12px}
.rec{display:inline-block;margin-right:4px;font-style:normal;font-size:9px;letter-spacing:.4px;color:#1c1915;background:#e7f0ea;border:1px solid #1f6b45;border-radius:99px;padding:0 5px;vertical-align:middle}
.build-card.held{opacity:.7}

/* Chrome pass: focus, hit size, motion. Palette and canvas stay. */
:focus-visible{outline:2px solid #1c1915;outline-offset:2px}
button,a,.hs,label{cursor:pointer}
button{transition:background-color .18s ease,border-color .18s ease,color .18s ease}
button:disabled{cursor:default}
button:disabled:hover{border-color:rgba(28,25,21,.22)}
#modes button,.railtabs button,.btns.cats button,.build-steps button,.jsteps button,.job,button.ach,#views button,.btns>button{min-height:44px}
#modes button,.railtabs button,.btns.cats button,.build-steps button,.jsteps button{font-size:11px;padding:8px 2px}
.job{padding:8px;justify-content:center}
.cal-grid{gap:4px}
.cal-grid button{min-height:44px;font-size:13px;padding:0}
.svc-row button,.quest button{min-height:44px}
.quest button{padding:8px 10px}
input.field,select.field{min-height:44px;padding:10px 8px;font-size:16px;transition:border-color .18s ease}
input.field:hover,select.field:hover{border-color:#1c1915}
.field-lab{display:block;margin:8px 0 4px;font-size:12px;letter-spacing:.6px;color:#5c564c;cursor:pointer}
.check{min-height:44px;align-items:center;padding:8px 0;font-size:13px;line-height:1.4}
.check input{width:22px;height:22px;margin:0;flex:0 0 auto}
#detail{font-size:13px;line-height:1.45}
#detail .r{padding:6px 0}
.cause{font-size:13px;line-height:1.45;margin:4px 0}
a.man{display:flex;align-items:center;min-height:44px;font-size:14px;padding:4px 0}
a.man:focus-visible{outline:2px solid #1c1915;outline-offset:2px}
button.hbar{position:relative;overflow:visible;background:transparent;height:44px;margin:0}
button.hbar.lg{height:44px;margin:-8px 0}
button.hbar::before{content:"";position:absolute;left:0;right:0;top:50%;height:10px;transform:translateY(-50%);background:#e4dfd4;border-radius:3px;pointer-events:none}
button.hbar i{position:absolute;left:0;top:50%;height:10px;transform:translateY(-50%);z-index:1}
button.hbar:hover{border:0;outline:none}
button.hbar:hover::before{box-shadow:0 0 0 1px #1c1915}
button.hbar:focus-visible{outline:2px solid #1c1915;outline-offset:2px}
#memo-open:focus{outline:none}
#memo-open:focus-visible~#topbar #memo-tab,#memo-open:focus-visible~#memo .memo-hide{outline:2px solid #1c1915;outline-offset:3px}
.hs:focus-visible{outline:2px solid #1c1915;outline-offset:2px}
@media (max-width:860px){
  #modes button,.railtabs button,.btns.cats button,.build-steps button,.jsteps button,.job,button.ach,.cal-grid button,.svc-row button,.quest button{min-height:44px}
  #modes button,.railtabs button{font-size:12px}
  input.field,select.field{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .arc,.build-card,#memo,button,a,input.field,select.field{transition:none}
}

#topbar{backdrop-filter:blur(16px) saturate(1.12);-webkit-backdrop-filter:blur(16px) saturate(1.12)}
body.bare #left,body.bare #right,body.bare #topbar,body.bare #bottom,body.bare #memo,body.bare #xraykey,body.bare #intkey,body.bare #labels{display:none !important}
body.mode-service #railtabs{display:none}
body.mode-service #railbody{overflow:hidden}
body.mode-service #detail{flex:1 1 auto;min-height:0;overflow:auto}
body.mode-service #detail:has(.request){display:flex;flex-direction:column;overflow:hidden}
.request{flex:1;min-height:0;display:flex;flex-direction:column}
.request-scroll{flex:1;min-height:0;overflow:auto}
.dock{flex:0 0 auto;background:#f3f0e8;padding-top:6px;border-top:1px solid rgba(28,25,21,.12)}
.dock .go{margin:0}
.chip.complete{color:#1f6b45}
.chip.attention{color:#7a5a18;border-color:#c4a36a;background:#f8f1e4}
.chip.overdue{color:#8d3144;border-color:#d7b4bc;background:#f8eef0}
button.ach.filed{color:#1f6b45}
.sysname .tag{color:#1f6b45}
.rec{color:#1f6b45}
