:root{
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#263c36;
  background:#f5f6f2;
  font-synthesis:none;
  --green:#164b42;
  --muted:#708078;
  --border:#e0e6dd;
  --amber:#98612b;
  --shadow:0 3px 16px #263c3604
}
*{
  box-sizing:border-box
}
body{
  margin:0
}
button,input,select{
  font:inherit
}
a{
  color:inherit;
  text-decoration:none
}
button,select{
  color:inherit
}
button,a,select{
  -webkit-tap-highlight-color:transparent
}
button{
  cursor:pointer
}
button:disabled{
  cursor:not-allowed;
  opacity:.52
}
button:focus-visible,a:focus-visible,select:focus-visible{
  outline:3px solid #b17a40;
  outline-offset:3px
}
h1,h2,h3,p{
  margin:0
}
button,select,.button{
  border:1px solid #dce2d8;
  border-radius:7px;
  background:white;
  min-height:36px;
  padding:8px 12px
}
button:hover:not(:disabled),.button:hover{
  background:#f0f4ed
}
select{
  font-size:12px;
  padding-right:25px;
  max-width:100%
}
.icon{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
.button{
  display:inline-flex;
  gap:8px;
  align-items:center;
  font-size:12px;
  font-weight:550;
  justify-content:center
}
.sr-only{
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}
.skip-link{
  position:fixed;
  top:-80px;
  left:240px;
  background:white;
  padding:12px;
  z-index:20
}
.skip-link:focus{
  top:10px
}
.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:220px;
  background:#fbfcf8;
  border-right:1px solid var(--border);
  padding:30px 17px;
  display:flex;
  flex-direction:column;
  z-index:5
}
.brand{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 7px 48px
}
.brand span{
  font-size:22px;
  font-weight:650;
  letter-spacing:-.9px
}
.brand small{
  font-size:7px;
  letter-spacing:1.1px;
  display:block;
  margin-top:6px;
  font-weight:650
}
.workspace-label{
  font-size:9px;
  font-weight:650;
  letter-spacing:1.5px;
  color:#89958c;
  padding-left:12px
}
.site-switch{
  display:flex;
  gap:10px;
  align-items:center;
  padding:17px 10px 26px;
  font-size:13px;
  font-weight:600
}
.site-switch small{
  display:block;
  font-size:10px;
  color:var(--muted);
  font-weight:400;
  margin-top:5px
}
.site-marker{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#89a67e;
  margin-left:auto
}
nav{
  display:grid;
  gap:6px
}
nav a{
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:7px;
  padding:13px 14px;
  font-size:13px;
  color:#78857d
}
nav a:hover{
  background:#f0f4eb;
  color:var(--green)
}
nav a[aria-current]{
  background:var(--green);
  color:#fff
}
nav b{
  margin-left:auto;
  font-size:10px;
  background:#e8ece4;
  color:var(--green);
  padding:3px 6px;
  border-radius:4px
}
.sidebar-bottom{
  margin-top:auto;
  padding:24px 12px 0;
  border-top:1px solid var(--border);
  font-size:10px
}
.sidebar-bottom strong{
  font-weight:600
}
.sidebar-bottom p{
  font-size:10px;
  line-height:1.7;
  color:var(--muted);
  margin:9px 0 25px
}
.sidebar-bottom>span{
  font-size:9px;
  letter-spacing:1.6px;
  color:#9aa49b
}
.connection-dot{
  display:inline-block;
  width:6px;
  height:6px;
  background:#a3af96;
  border-radius:50%;
  margin-right:6px
}
.workspace{
  margin-left:220px
}
.topbar{
  height:70px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--border);
  background:#fcfdf9;
  padding:0 34px;
  font-size:11px
}
.topbar>div{
  display:flex;
  align-items:center;
  gap:12px
}
.topbar .icon{
  color:#7e9287;
  width:17px
}
.topbar span{
  color:#829087
}
.topbar strong{
  font-weight:500
}
.slash{
  margin:0 4px
}
.topbar-mode{
  font-size:10px;
  border:1px solid var(--border);
  padding:5px 9px;
  border-radius:4px
}
main{
  padding:22px 34px;
  max-width:1680px;
  margin:auto
}
main:focus{
  outline:none
}
.demo-banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  background:#efece1;
  border:1px solid #e5dfcc;
  border-radius:6px;
  font-size:10px;
  color:#73674f;
  padding:8px 12px;
  min-height:40px
}
.demo-banner b{
  font-size:9px;
  letter-spacing:1.2px;
  margin-right:10px;
  background:#e5dec9;
  padding:4px 6px;
  border-radius:3px
}
.demo-banner label{
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap
}
.demo-banner select{
  min-height:27px;
  padding-top:3px;
  padding-bottom:3px;
  border-color:#ded7c2;
  background:#faf9f3;
  font-size:10px
}
.page-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:29px 0 27px
}
.eyebrow{
  font-size:9px;
  font-weight:600;
  letter-spacing:1.7px;
  color:#8d9c91;
  margin-bottom:8px
}
h1{
  font-size:32px;
  letter-spacing:-1.2px;
  font-weight:550;
  line-height:1.2
}
.page-title p:not(.eyebrow){
  font-size:12px;
  color:var(--muted);
  margin-top:9px
}
.refresh-area{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end
}
.refresh-area>span{
  font-size:9px;
  color:#849187
}
.refresh-area .button{
  background:#fcfdf9
}
.summary-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
  padding:24px 0;
  box-shadow:var(--shadow)
}
.summary-strip>div{
  padding:0 26px;
  border-right:1px solid var(--border)
}
.summary-strip>div:last-child{
  border:0
}
.summary-strip span{
  font-size:11px;
  color:var(--muted)
}
.summary-strip strong{
  display:block;
  font-size:33px;
  font-weight:500;
  letter-spacing:-.9px;
  margin:12px 0 9px;
  line-height:1.1
}
.summary-strip strong small{
  font-size:18px;
  color:#8a978c;
  font-weight:400;
  letter-spacing:-.3px
}
.summary-strip p{
  font-size:10px;
  color:#8a978c
}
.summary-strip .mode{
  font-size:21px;
  color:var(--green);
  padding:7px 0 5px;
  letter-spacing:-.5px
}
.section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:27px 0 14px
}
h2{
  font-size:15px;
  font-weight:580;
  letter-spacing:-.25px
}
.section-heading>span{
  font-size:10px;
  color:#8a968c
}
.room-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px
}
.room-card{
  border:1px solid var(--border);
  border-radius:9px;
  background:#fcfdf9;
  padding:17px 18px 0;
  box-shadow:var(--shadow);
  transition:border-color .15s,transform .15s
}
.room-card:hover{
  border-color:#91b09d;
  transform:translateY(-2px)
}
.room-card.stale{
  background:#fcfaf5;
  border-color:#e3dac8
}
.room-top{
  display:flex;
  align-items:center;
  justify-content:space-between
}
.room-index{
  font-family:ui-monospace,monospace;
  font-size:10px;
  color:#9ba697
}
.pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 6px;
  border-radius:4px;
  font-size:9px;
  white-space:nowrap;
  background:#edf1e9;
  color:#65816c
}
.pill i{
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor
}
.pill.stale,.pill.suspect{
  color:#98612b;
  background:#f1e6d3
}
.pill.empty-state{
  color:#75817b;
  background:#ebeeea;
  padding:4px 6px
}
.room-card h3{
  font-size:14px;
  font-weight:550;
  margin:18px 0 15px;
  display:flex;
  align-items:center;
  justify-content:space-between
}
.room-card h3 .icon{
  width:14px;
  color:#9aa89c
}
.room-values{
  display:flex;
  align-items:baseline;
  gap:20px;
  justify-content:space-between
}
.room-values>span{
  font-size:29px;
  letter-spacing:-1px;
  white-space:nowrap
}
.room-values small{
  font-size:15px;
  color:#8d998b;
  margin-left:3px;
  letter-spacing:0
}
.room-values .humidity{
  font-size:17px;
  letter-spacing:-.4px;
  display:flex;
  gap:2px;
  align-items:baseline;
  color:#76887c
}
.humidity .icon{
  width:12px;
  height:14px;
  margin-right:2px
}
.humidity small{
  font-size:11px
}
.old-value{
  color:#9c866a
}
.room-bottom{
  font-size:9px;
  display:flex;
  align-items:center;
  gap:5px;
  color:#859280;
  border-top:1px solid #e7ebe1;
  margin-top:18px;
  padding:11px 0
}
.room-bottom .icon{
  width:12px;
  height:12px
}
.color-dot{
  width:5px;
  height:5px;
  border-radius:50%;
  margin-left:auto
}
.overview-lower{
  display:grid;
  grid-template-columns:minmax(0,2.2fr) minmax(250px,1fr);
  gap:18px;
  margin-top:23px
}
.panel{
  padding:22px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:var(--shadow);
  min-width:0
}
#view>.panel+ .panel{
  margin-top:20px
}
.panel-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:17px
}
.panel-heading .eyebrow{
  font-size:8px;
  margin-bottom:6px
}
.segmented{
  display:flex;
  padding:3px;
  background:#f2f4ee;
  border:1px solid #e7eae1;
  border-radius:6px
}
.segmented button{
  border:none;
  background:transparent;
  font-size:10px;
  min-height:27px;
  padding:5px 10px;
  white-space:nowrap
}
.segmented button[aria-pressed=true]{
  background:white;
  box-shadow:0 1px 4px #27372c16;
  color:var(--green)
}
.chart-controls{
  display:flex;
  gap:9px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px
}
.chart-controls select{
  font-size:10px;
  min-height:30px
}
.chart{
  width:100%;
  height:auto;
  display:block;
  overflow:visible
}
.chart text{
  fill:#87958b;
  font-size:11px;
  font-family:inherit
}
.chart-legend{
  display:flex;
  gap:13px;
  flex-wrap:wrap;
  font-size:9px;
  color:#6b7e72;
  margin:6px 0 20px
}
.chart-legend span{
  display:flex;
  align-items:center;
  gap:5px
}
.chart-legend i{
  width:6px;
  height:6px;
  border-radius:50%
}
.band-key{
  margin-left:auto;
  font-size:8px;
  background:#f0f5ee;
  padding:3px 5px
}
.gap-tracks{
  display:grid;
  gap:5px
}
.gap-track-row{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:8px;
  color:#8c978e
}
.gap-track-row>span{
  width:52px
}
.gap-track{
  height:5px;
  position:relative;
  background:#edf2ec;
  border-radius:1px;
  flex:1;
  overflow:hidden
}
.gap-track i{
  position:absolute;
  top:0;
  height:5px;
  background:repeating-linear-gradient(135deg,#cbbd9c 0,#cbbd9c 1px,#f6f2e8 1px,#f6f2e8 4px)
}
.chart-note{
  font-size:9px;
  line-height:1.6;
  margin-top:12px;
  color:#8d988c
}
.count{
  font-size:10px;
  padding:4px 7px;
  background:#eee8da;
  color:#956d35;
  border-radius:4px
}
.muted{
  color:var(--muted)
}
.small{
  font-size:10px;
  line-height:1.7
}
.attention .panel-heading{
  margin-bottom:8px
}
.attention-item{
  display:flex;
  gap:11px;
  padding:23px 0;
  border-bottom:1px solid #e8ece4;
  align-items:flex-start
}
.attention-symbol{
  flex-shrink:0;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:6px;
  background:#f5ecd9;
  color:#a07332;
  font-size:12px
}
.attention-item strong{
  font-size:11px;
  font-weight:550
}
.attention-item p{
  font-size:10px;
  line-height:1.6;
  color:#8a958a;
  margin-top:7px
}
.attention-item>.icon{
  width:13px;
  margin-left:auto;
  color:#93a18e
}
.diagnostic-tip{
  display:flex;
  gap:10px;
  margin:22px 0;
  background:#f5f7f1;
  border:1px solid #e9ede2;
  border-radius:6px;
  padding:12px
}
.diagnostic-tip .icon{
  width:15px;
  color:#8f9f88
}
.diagnostic-tip strong{
  font-size:10px;
  font-weight:550
}
.diagnostic-tip p{
  font-size:10px;
  line-height:1.7;
  color:#87917f;
  margin-top:6px
}
.text-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  color:var(--green)
}
.text-link .icon{
  width:14px
}
.page-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:18px
}
.page-toolbar p{
  font-size:12px;
  color:var(--muted)
}
.page-toolbar .chart-controls{
  margin:0;
  gap:16px
}
.table-wrap{
  overflow-x:auto
}
table{
  width:100%;
  border-collapse:collapse;
  font-size:11px;
  text-align:left
}
caption{
  text-align:left;
  font-size:15px;
  font-weight:550;
  margin:0 0 22px
}
thead th{
  font-size:9px;
  color:#8b988c;
  font-weight:500;
  padding:0 12px 14px;
  border-bottom:1px solid var(--border)
}
tbody th,td{
  padding:16px 12px;
  border-bottom:1px solid #e9ede5;
  font-weight:400;
  white-space:nowrap
}
tbody small{
  display:block;
  color:#939c90;
  margin-top:6px;
  font-size:9px
}
tbody th{
  font-weight:500
}
.explanation{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:10px;
  color:var(--muted);
  line-height:1.8;
  margin-top:20px
}
.notice{
  display:flex;
  gap:14px;
  border:1px solid #e1dbc9;
  background:#f5f0e4;
  padding:18px 22px;
  border-radius:8px
}
.notice strong{
  font-size:13px;
  font-weight:550
}
.notice p{
  font-size:11px;
  color:#8b7c61;
  margin-top:7px;
  line-height:1.7
}
.notice .icon{
  color:#9c885d
}
.alert-row{
  display:flex;
  align-items:center;
  gap:15px;
  padding:22px 0;
  border-bottom:1px solid var(--border)
}
.alert-row:last-child{
  border:0
}
.alert-row>div{
  flex:1
}
.alert-row strong{
  font-size:13px;
  font-weight:550
}
.alert-row p{
  font-size:11px;
  color:var(--muted);
  margin-top:6px
}
.alert-row button{
  font-size:11px
}
.settings-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:20px
}
.settings-row{
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center;
  padding:24px 0;
  border-bottom:1px solid #e9ede4
}
.settings-row:last-child{
  border:0
}
.settings-row strong{
  font-size:12px;
  font-weight:550
}
.settings-row p{
  font-size:11px;
  line-height:1.8;
  color:#83917f;
  margin-top:7px
}
.settings-row button{
  flex-shrink:0;
  font-size:11px
}
.settings-row select{
  min-width:155px
}
.tag{
  font-size:9px;
  white-space:nowrap;
  border:1px solid #e1e6da;
  color:#82907a;
  background:#f4f6ef;
  border-radius:4px;
  padding:6px 8px
}
.settings-grid .small{
  margin-top:15px
}
.empty-state{
  padding:50px 20px;
  text-align:center;
  color:#85917e
}
.empty-state>.icon{
  width:34px;
  height:34px;
  margin-bottom:17px
}
.empty-state h3{
  font-size:16px;
  font-weight:500;
  color:#4a6356
}
.empty-state p{
  max-width:450px;
  margin:10px auto 0;
  font-size:12px;
  line-height:1.8
}
.error-panel{
  text-align:center;
  padding-bottom:40px
}
.calm{
  font-size:12px;
  margin:24px 0;
  color:#74896c
}
footer{
  display:flex;
  justify-content:space-between;
  gap:15px;
  font-size:9px;
  color:#9aa392;
  margin:28px 0 3px
}
@media(min-width:1600px){
  main{
    padding:30px 45px
  }
  .topbar{
    padding:0 45px
  }
  .room-card{
    padding:22px 22px 0
  }
  .room-values>span{
    font-size:34px
  }
  .overview-lower{
    grid-template-columns:minmax(0,2.6fr) minmax(280px,1fr)
  }
}
@media(max-width:1150px){
  .sidebar{
    width:190px;
    padding-inline:12px
  }
  .brand span{
    font-size:20px
  }
  .brand small{
    font-size:6px
  }
  .workspace{
    margin-left:190px
  }
  main{
    padding:20px
  }
  .topbar{
    padding:0 20px
  }
  .summary-strip>div{
    padding:0 17px
  }
  .room-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .overview-lower{
    grid-template-columns:minmax(0,1fr)
  }
  .attention{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 30px
  }
  .attention .panel-heading,.attention>.small,.attention>.text-link{
    grid-column:1/-1
  }
  .attention-item{
    padding:15px 0
  }
  .diagnostic-tip{
    margin:5px 0
  }
  .settings-grid{
    grid-template-columns:1fr
  }
  .chart{
    min-height:180px
  }
}
@media(max-width:740px){
  .sidebar{
    position:sticky;
    top:0;
    width:auto;
    height:auto;
    padding:10px 16px;
    background:#fbfcf8f5;
    backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
    border-right:0
  }
  .brand{
    margin:0 0 12px;
    gap:7px
  }
  .brand img{
    width:27px;
    height:27px
  }
  .brand span{
    font-size:19px
  }
  .brand small{
    display:none
  }
  .workspace-label,.site-switch,.sidebar-bottom{
    display:none
  }
  nav{
    display:flex;
    gap:6px
  }
  nav a{
    padding:9px 10px;
    gap:6px;
    font-size:11px;
    flex:1;
    justify-content:center
  }
  nav .icon{
    width:15px;
    height:15px
  }
  nav b{
    display:none
  }
  .workspace{
    margin-left:0
  }
  .topbar{
    height:48px;
    padding:0 16px;
    font-size:10px
  }
  .topbar-mode{
    display:none
  }
  main{
    padding:16px
  }
  .demo-banner{
    display:block;
    font-size:10px;
    line-height:1.6
  }
  .demo-banner label{
    margin-top:9px;
    justify-content:space-between
  }
  .page-title{
    margin:24px 0 20px;
    align-items:flex-start
  }
  .page-title h1{
    font-size:27px
  }
  .page-title p:not(.eyebrow){
    font-size:11px;
    line-height:1.6;
    max-width:210px
  }
  .refresh-area .button{
    font-size:0;
    padding:8px
  }
  .refresh-area .icon{
    width:17px
  }
  .refresh-area>span{
    max-width:120px;
    line-height:1.6;
    text-align:right;
    font-size:8px
  }
  .summary-strip{
    grid-template-columns:1fr 1fr;
    padding:10px 0
  }
  .summary-strip>div{
    padding:14px 18px
  }
  .summary-strip>div:nth-child(2){
    border:0
  }
  .summary-strip strong{
    font-size:28px
  }
  .summary-strip .mode{
    font-size:19px
  }
  .summary-strip span{
    font-size:10px
  }
  .summary-strip p{
    font-size:9px
  }
  .section-heading{
    align-items:flex-start
  }
  .section-heading>span{
    font-size:9px;
    max-width:130px;
    text-align:right;
    line-height:1.6
  }
  h2{
    font-size:14px
  }
  .room-grid{
    gap:10px
  }
  .room-card{
    padding:13px 12px 0
  }
  .room-card h3{
    font-size:13px;
    margin:15px 0
  }
  .room-values{
    gap:8px;
    align-items:flex-start;
    flex-direction:column
  }
  .room-values>span{
    font-size:28px
  }
  .room-values .humidity{
    font-size:16px
  }
  .room-bottom{
    font-size:8px;
    line-height:1.5;
    gap:4px
  }
  .room-bottom .icon{
    display:none
  }
  .room-index{
    font-size:8px
  }
  .pill{
    font-size:8px;
    padding:4px 5px
  }
  .panel{
    padding:18px 14px
  }
  .overview-lower{
    gap:16px
  }
  .chart-controls{
    gap:5px;
    flex-wrap:wrap
  }
  .segmented button{
    font-size:10px;
    padding:4px 8px
  }
  .chart-legend{
    gap:10px;
    font-size:9px
  }
  .band-key{
    margin-left:0
  }
  .attention{
    display:block
  }
  .attention>.small{
    margin-bottom:10px
  }
  .attention-item{
    padding:16px 0
  }
  .diagnostic-tip{
    margin:20px 0
  }
  .page-toolbar{
    display:block
  }
  .page-toolbar p{
    margin-bottom:15px
  }
  .page-toolbar .chart-controls{
    justify-content:space-between
  }
  .chart{
    min-height:160px
  }
  .notice{
    padding:16px 14px;
    gap:10px
  }
  .notice p{
    font-size:11px
  }
  .alert-row{
    flex-wrap:wrap;
    gap:10px
  }
  .alert-row>div{
    min-width:70%;
    flex:1
  }
  .alert-row .button{
    margin-left:34px
  }
  .settings-row{
    display:block;
    padding:20px 0
  }
  .settings-row select,.settings-row button,.settings-row .tag{
    display:inline-block;
    margin-top:13px
  }
  .settings-row p{
    font-size:11px
  }
  footer{
    font-size:8px;
    line-height:1.7
  }
  footer span:last-child{
    text-align:right;
    max-width:180px
  }
  .skip-link{
    left:16px
  }
}
@media(prefers-reduced-motion:reduce){
  *{
    transition:none!important;
    scroll-behavior:auto!important
  }
}
.gap-details{
  border-top:1px solid var(--border);
  margin-top:16px;
  padding-top:14px;
  font-size:11px;
  color:#6c7f71
}
.gap-details summary{
  cursor:pointer;
  color:var(--green)
}
.gap-details ul{
  padding:0;
  list-style:none
}
.gap-details li{
  display:flex;
  gap:20px;
  padding:10px 0;
  border-bottom:1px solid #eef1e9;
  font-size:11px
}
.gap-details li strong{
  min-width:70px;
  font-weight:500
}
.gap-details li b{
  margin-left:auto;
  font-weight:400
}
.gap-details p{
  font-size:10px;
  line-height:1.7;
  max-width:700px
}
.gap-details summary:focus-visible{
  outline:3px solid #b17a40;
  outline-offset:3px
}
@media(max-width:740px){
  .gap-details li{
    flex-wrap:wrap;
    gap:8px;
    font-size:10px
  }
}
/* Portfolio matrix and comparative analysis. One fixed scale per signal. */
.matrix-toolbar { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:0 0 20px; }
.matrix-toolbar h2 { font-size:17px; }
.matrix-toolbar p { font-size:11px; color:var(--muted); margin-top:7px; }
.matrix-toolbar .segmented button { display:flex; align-items:center; gap:6px; font-size:11px; padding:7px 11px; }
.matrix-toolbar .icon { width:15px; height:15px; }
.heat-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; font-size:10px; color:#64786b; padding:14px 17px; background:#fff; border:1px solid var(--border); border-radius:7px; }
.heat-legend strong { font-size:10px; font-weight:550; margin-right:6px; }
.heat-legend span { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.heat-legend i { width:17px; height:13px; border-radius:3px; border:1px solid #0000000e; }
.matrix-note { font-size:10px; color:#879284; line-height:1.7; margin:10px 0 24px; }
.building-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:16px; }
.building-card { background:#fff; border:1px solid var(--border); border-radius:10px; overflow:hidden; box-shadow:var(--shadow); }
.building-card header { display:flex; align-items:center; gap:10px; padding:20px 16px; border-bottom:1px solid var(--border); }
.building-card header h2 { font-size:16px; }
.building-card header p { font-size:10px; margin-top:6px; color:var(--muted); }
.building-card header .tag { margin-left:auto; font-size:8px; }
.building-icon { display:grid; place-items:center; width:32px; height:34px; border-radius:7px; color:#477263; background:#eef3e8; }
.floor-matrix { display:grid; grid-template-columns:28px repeat(var(--sections),minmax(0,1fr)); padding:14px 10px 10px; gap:6px; }
.floor-heading,.section-label { font-size:9px; color:#8a968a; text-align:center; padding:6px 0 10px; }
.floor-heading { font-size:8px; }
.section-label { letter-spacing:.6px; color:#688073; }
.floor-label { display:grid; place-items:center; font-size:12px; color:#889585; border-top:1px solid #f0f2ec; }
.sensor-cell { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:5px; padding-top:6px; border-top:1px solid #f0f2ec; }
.sensor-tile { position:relative; min-width:0; border:1.5px solid transparent; border-radius:5px; padding:9px 5px 8px; text-align:left; min-height:80px; transition:transform .1s,border-color .1s; }
.sensor-tile:hover:not(:disabled) { background:var(--tile-bg); border-color:#6d8d7c; transform:translateY(-1px); }
.sensor-tile[aria-pressed=true] { border-color:#164b42; box-shadow:inset 0 0 0 1px #164b42,0 2px 7px #164b4215; }
.sensor-tile[aria-pressed=true] .tile-check { color:#fff; background:#164b42; }
.tile-code { display:block; font-size:9px; line-height:1.3; font-weight:600; color:inherit; padding-right:12px; }
.tile-check { position:absolute; right:4px; top:5px; width:13px; height:13px; border-radius:50%; display:grid; place-items:center; color:#4b504343; font-size:9px; font-weight:500; }
.sensor-tile strong { display:block; font-size:18px; letter-spacing:-.6px; font-weight:550; margin:7px 0 5px; line-height:1; }
.sensor-tile strong small { font-size:9px; margin-left:2px; letter-spacing:0; font-weight:400; }
.tile-status { display:block; font-size:9px; line-height:1.4; opacity:.76; white-space:normal; }
.heat-temperature-0 { --tile-bg:#e6eff4; background:var(--tile-bg); color:#456a7d; }
.heat-temperature-1 { --tile-bg:#f4f0e7; background:var(--tile-bg); color:#756b53; }
.heat-temperature-2 { --tile-bg:#f8dfcd; background:var(--tile-bg); color:#8d5036; }
.heat-temperature-3 { --tile-bg:#edb197; background:var(--tile-bg); color:#7e392a; }
.heat-temperature-4 { --tile-bg:#c76357; background:var(--tile-bg); color:#fff; }
.heat-humidity-0 { --tile-bg:#f2e8d5; background:var(--tile-bg); color:#8a6b35; }
.heat-humidity-1 { --tile-bg:#e3f0e8; background:var(--tile-bg); color:#4e7a63; }
.heat-humidity-2 { --tile-bg:#c5e3dd; background:var(--tile-bg); color:#326d63; }
.heat-humidity-3 { --tile-bg:#9cc7d5; background:var(--tile-bg); color:#285e75; }
.heat-humidity-4 { --tile-bg:#497b98; background:var(--tile-bg); color:#fff; }
.heat-unavailable { --tile-bg:#e8ebe7; background:repeating-linear-gradient(135deg,#e8ebe7 0,#e8ebe7 5px,#e5e8e4 5px,#e5e8e4 6px); color:#3f5143; }
.heat-unavailable:hover:not(:disabled) { background:#e8ebe7; }
.heat-unavailable strong { color:#3f5143; }
.heat-unavailable .tile-status { opacity:1; }
.no-sensor { font-size:9px; color:#a0a99e; padding:20px 3px; }
.building-footer { display:flex; align-items:center; gap:6px; color:#94a08f; font-size:8px; padding:12px 13px; border-top:1px solid #f0f2ed; }
.building-footer .icon { width:12px; height:12px; }
.selection-bar { position:sticky; bottom:12px; display:flex; flex-wrap:wrap; align-items:center; gap:17px; background:#fcfdf9f5; backdrop-filter:blur(12px); border:1px solid #bdcbbb; border-radius:9px; padding:16px 18px; margin:25px 0 0; box-shadow:0 5px 22px #2d49321a; z-index:3; }
.selection-inline { position:relative; bottom:auto; margin:0 0 20px; box-shadow:none; }
.selection-count { display:flex; gap:10px; align-items:center; flex-shrink:0; }
.selection-count>span { display:grid; place-items:center; width:34px; height:36px; border-radius:7px; background:#e6eee1; color:#305c48; font-size:18px; }
.selection-count strong { display:block; font-size:11px; font-weight:550; }
.selection-count small { display:block; font-size:9px; color:#83917b; margin-top:5px; }
.selection-chips { display:flex; flex-wrap:wrap; gap:5px; flex:1; }
.selection-chips button { min-height:27px; font-size:9px; padding:5px 7px; border:1px solid #dae2d2; background:#f3f6ee; white-space:nowrap; }
.selection-chips button b { padding-left:7px; font-weight:400; color:#7c8f74; }
.more-selected { font-size:10px; color:#83927a; padding:6px; }
.selection-actions { display:flex; gap:9px; margin-left:auto; flex-shrink:0; }
.selection-actions button { font-size:11px; min-height:35px; }
.primary-button { display:flex; align-items:center; gap:10px; background:#164b42; color:white; border-color:#164b42; }
.primary-button:hover:not(:disabled) { background:#235f53; }
.matrix-guidance { display:flex; gap:30px; padding:24px 5px 0; color:#8b9785; font-size:10px; }
.matrix-guidance>div { display:flex; gap:8px; line-height:1.8; }
.matrix-guidance .icon { width:15px; height:15px; }
.matrix-guidance strong { font-weight:500; color:#70866f; }
.analysis-layout { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:18px; align-items:start; }
.analysis-main { min-width:0; }
.comparison-panel { padding:17px 16px; }
.range-toolbar { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center; }
.zoom-controls { display:flex; gap:4px; }
.zoom-controls button { font-size:11px; padding:5px 9px; min-height:30px; }
.range-label { font-size:10px; color:#6d806f; padding:12px 2px 15px; }
.comparison-legend { display:flex; flex-wrap:wrap; gap:7px; border-top:1px solid #edf1e6; padding:14px 0; }
.comparison-legend button { display:flex; align-items:center; gap:6px; font-size:9px; min-height:29px; padding:6px 8px; }
.comparison-legend i { width:7px; height:7px; border-radius:50%; }
.comparison-legend button[aria-pressed=false] { opacity:.5; background:#f1f3ee; }
.comparison-legend button span { font-size:8px; margin-left:3px; color:#899681; }
.comparison-chart { width:100%; height:590px; }
.chart-help { font-size:9px; color:#8b9786; line-height:1.8; padding:0 12px 12px; }
.sensor-picker { padding:20px 14px; }
.sensor-picker h2 { font-size:14px; }
.sensor-picker>p { font-size:10px; color:var(--muted); margin:7px 0 17px; }
.sensor-picker input[type=search] { width:100%; border:1px solid #d7e0d0; border-radius:6px; padding:10px 8px; font-size:10px; background:#fcfdf9; }
.sensor-options { max-height:660px; overflow-y:auto; scrollbar-width:thin; padding-right:4px; }
.sensor-options fieldset { margin:20px 0 0; padding:0; border:none; }
.sensor-options legend { font-size:11px; font-weight:600; color:#587257; padding:0 0 10px; }
.sensor-option { display:flex; align-items:center; gap:9px; padding:10px 2px; border-top:1px solid #f0f2eb; cursor:pointer; }
.sensor-option input { width:14px; height:14px; accent-color:#216450; flex-shrink:0; }
.sensor-option strong { font-size:11px; font-weight:500; }
.sensor-option small { display:block; font-size:9px; color:#93a087; margin-top:4px; }
.option-status { width:5px; height:5px; border-radius:50%; margin-left:auto; background:#a3b697; }
.option-status.stale,.option-status.empty { background:#aeb3a8; }
.search-empty { font-size:11px; color:var(--muted); line-height:1.8; padding:22px 0; }
.keyboard-inspector { margin:12px 0 20px; padding:12px 0; border-top:1px solid var(--border); font-size:11px; }
.keyboard-inspector summary { color:#4b7459; cursor:pointer; }
.keyboard-inspector label { display:block; font-size:10px; color:#879780; margin-top:18px; }
.keyboard-inspector input { display:block; width:100%; margin:15px 0; accent-color:#217568; }
#cursor-readout>strong { font-size:11px; font-weight:550; color:#4b7054; }
.cursor-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; }
.cursor-values>div { border:1px solid var(--border); border-radius:5px; padding:12px; display:flex; flex-direction:column; gap:9px; font-size:11px; }
.cursor-values b { font-size:10px; color:#697d64; }
.cursor-values small { display:block; font-size:9px; color:#8e9b83; margin-top:4px; }
.readings-panel { margin-top:18px; }
.analysis-main .gap-details li { flex-wrap:wrap; gap:7px 14px; font-size:10px; }
.analysis-main .gap-details li strong { min-width:160px; }
@media(max-width:1250px){.building-grid{gap:10px}.floor-matrix{padding-inline:6px;gap:4px;grid-template-columns:20px repeat(var(--sections),minmax(0,1fr))}.sensor-cell{gap:3px}.tile-code{font-size:8px}.sensor-tile strong{font-size:16px}.tile-status{font-size:9px}.selection-chips{display:none}.analysis-layout{grid-template-columns:minmax(0,1fr) 205px}.building-card header{padding:16px 10px;gap:7px}.building-card header .tag{display:none}}
@media(max-width:1000px){.building-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.building-card:first-child{grid-row:span 2}.analysis-layout{grid-template-columns:minmax(0,1fr)}.sensor-picker{grid-row:1}.sensor-options{max-height:230px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.selection-inline .selection-count small{display:block}.tile-code{font-size:9px}.sensor-tile strong{font-size:19px}.tile-status{font-size:10px}}
@media(max-width:740px){nav a{font-size:10px;padding:8px 5px;gap:4px}nav a .icon{width:13px}.matrix-toolbar{display:block}.matrix-toolbar .segmented{margin-top:18px;justify-content:space-between}.matrix-toolbar .segmented button{font-size:11px;flex:1;justify-content:center}.heat-legend{gap:10px;font-size:9px;padding:12px}.heat-legend strong{width:100%}.matrix-note{font-size:9px;margin-bottom:18px}.building-grid{grid-template-columns:1fr;gap:17px}.building-card:first-child{grid-row:auto}.building-card header{padding:17px}.building-card header .tag{display:block}.floor-matrix{padding:12px;grid-template-columns:24px repeat(var(--sections),minmax(0,1fr));gap:7px}.sensor-cell{gap:6px}.sensor-tile{padding:10px 6px;min-height:85px}.tile-code{font-size:10px}.sensor-tile strong{font-size:20px}.tile-status{font-size:10px}.tile-check{width:15px;height:15px;font-size:10px}.building-footer{font-size:9px;padding:13px}.selection-bar{padding:12px;gap:10px;flex-wrap:wrap;bottom:7px}.selection-count>span{width:30px;height:32px;font-size:16px}.selection-count strong{font-size:11px}.selection-count small{font-size:8px}.selection-actions{gap:6px}.selection-actions button,.selection-actions .button{font-size:10px;padding:7px 9px}.selection-actions .icon{width:14px}.matrix-guidance{display:block;font-size:10px}.matrix-guidance>div{margin-bottom:12px}.analysis-layout{gap:14px}.comparison-panel{padding:12px 7px}.range-toolbar{gap:10px}.zoom-controls{flex-wrap:wrap;gap:5px}.zoom-controls button{font-size:10px;min-height:30px}.range-label{font-size:9px;line-height:1.8}.sensor-picker{padding:18px 14px}.sensor-options{grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px}.comparison-chart{height:590px}.comparison-legend{gap:5px}.comparison-legend button{font-size:8px}.chart-help{font-size:9px;padding:0 6px}.cursor-values{grid-template-columns:1fr}.gap-details{margin-inline:5px}.selection-inline{position:relative;bottom:auto}.selection-inline .selection-actions{margin-left:0}.keyboard-inspector{margin-inline:5px}.readings-panel{padding:14px 8px}}
.config-context {display:grid;grid-template-columns:230px 230px 1fr;gap:20px;align-items:center}
.config-context label,.config-heading label,.config-form label {display:flex;flex-direction:column;gap:8px;font-size:12px;color:#526757}
.config-context select,.config-heading select,.config-form select,.config-form input {width:100%;min-width:0;min-height:40px;border:1px solid #dce3d8;border-radius:6px;padding:9px;background:#fff;color:#263d32;font:inherit}
.permission-summary {display:flex;flex-direction:column;gap:7px;font-size:12px}.permission-summary small {line-height:1.6;color:#758675}
.config-heading {display:flex;align-items:center;justify-content:space-between;gap:24px}.config-heading h2 {margin:4px 0 18px}.config-heading select {min-width:200px}
.config-stats {display:flex;gap:30px;border-top:1px solid #edf0e8;padding-top:20px;color:#738271;font-size:12px}.config-stats b {font-size:24px;color:#2c493b;margin-right:6px}
.config-grid {display:grid;grid-template-columns:1fr 1fr;gap:22px}.config-grid .panel {min-width:0}
.config-form {display:grid;gap:14px;padding:20px 0;border-bottom:1px solid #edf0e8}.config-form:last-child {border-bottom:0}.config-form button {justify-self:start;min-height:40px}
.form-pair {display:grid;grid-template-columns:100px 1fr;gap:15px}.config-details {padding-top:20px}.config-details summary {cursor:pointer;font-size:13px;color:#315d4f}
.catalog-tree {max-height:660px;overflow:auto}.catalog-tree details {border-top:1px solid #e8ede2;padding:16px 0}.catalog-tree summary {font-size:14px;font-weight:600;cursor:pointer}
.catalog-floor {display:flex;gap:15px;padding:16px 8px;border-bottom:1px solid #f0f2ec}.catalog-floor>b {width:30px;color:#637a66}.catalog-floor strong {font-size:12px}.catalog-floor p {display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}.catalog-floor span {background:#f1f4ec;padding:5px 8px;border-radius:4px;font-size:11px}
.config-feedback {background:#eaf4eb;color:#2b5944;border:1px solid #c9dfcc;padding:16px 20px;border-radius:8px;margin-bottom:22px;font-size:13px;line-height:1.6;display:flex;gap:20px;align-items:center;justify-content:space-between}.config-feedback.error {background:#fff0e9;color:#833b28;border-color:#e5c6ba}.config-feedback button {flex-shrink:0}
.permission-note {padding:10px 14px;background:#f5f1e7;border-radius:5px;font-size:12px;color:#796c4f}.sensor-identity {display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:13px}.sensor-identity code {background:#f1f4ec;padding:6px 9px;font-size:11px}.sensor-identity>span {color:#85917e;font-size:11px}
.unmonitored {cursor:default;opacity:1}.empty-building {grid-column:1/-1;font-size:12px;line-height:1.7;padding:15px;color:#748272}
@media(max-width:1100px){.config-context {grid-template-columns:1fr 1fr}.permission-summary{grid-column:1/-1}}
@media(max-width:740px){.config-context,.config-grid {grid-template-columns:1fr}.config-heading{align-items:stretch;flex-direction:column;gap:10px}.config-stats{gap:15px;flex-wrap:wrap}.config-feedback{align-items:stretch;flex-direction:column}.permission-summary{grid-column:auto}.config-heading select{min-width:0}}
@media(max-width:740px){nav{gap:4px}nav a{min-width:0;flex:1 1 0;font-size:10px;padding:8px 4px}nav a .icon{display:none}nav a span{min-width:0;white-space:normal}}

.selection-notice { flex-basis:100%; margin:0; color:#693c12; font-size:12px; line-height:1.6; }

.comparison-feedback {font-size:12px;line-height:1.6;padding:12px 15px;background:#f1f4ed;border:1px solid #dce3d8;border-radius:6px;margin:12px 0;color:#425947}
.comparison-feedback.error {background:#fff4ed;border-color:#e7cdb9;color:#783c21}
.comparison-feedback ul {margin:8px 0;padding-left:18px}.comparison-feedback p {margin:8px 0}.comparison-feedback button {font-size:12px}
.option-status.loading,.option-status.error,.option-status.unavailable {background:#7a8179}
/* App access and object selection. No external fonts or third-party resources. */
.access-page{min-height:100vh;display:grid;grid-template-columns:minmax(340px,1fr) minmax(360px,1fr);background:#fcfdf9}
.access-story{background:#173e36;color:#edf4e9;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:64px}
.access-brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:750;letter-spacing:-.8px}
.access-brand small{display:block;font-size:9px;letter-spacing:1.4px;margin-top:4px;font-weight:500}
.access-story .eyebrow{color:#b7cabd;font-size:10px;letter-spacing:1.8px;margin-bottom:22px}
.access-story h1{font-size:clamp(30px,3.5vw,49px);line-height:1.15;font-weight:550;letter-spacing:-1.5px;margin-bottom:24px}
.access-story p{line-height:1.7;color:#c9d9cd;max-width:430px;font-size:14px}
.access-origins{display:flex;gap:20px;margin-top:32px;border-top:1px solid #497064;padding-top:24px}
.access-origins span{font-size:14px}.access-origins small{display:block;margin-top:7px;color:#b8cbbf;font-size:11px}
.access-story .access-independent{font-size:12px;max-width:400px}
.access-card{align-self:center;justify-self:center;width:min(420px,100%);padding:48px 28px}
.access-card h2{font-size:28px;letter-spacing:-.8px;line-height:1.25;margin:14px 0}
.access-card>p{color:#67786e;font-size:13px;line-height:1.6}
.access-form{display:flex;flex-direction:column;gap:20px;margin:28px 0 20px}
.access-form label{font-size:12px;font-weight:600;display:flex;flex-direction:column;gap:9px}
.access-form input:not([type=checkbox]){width:100%;min-height:46px;padding:12px;border:1px solid #cdd8ce;border-radius:7px;background:white;color:#263c36;font:inherit;font-size:15px}
.access-form input:focus-visible{outline:3px solid #b17a40;outline-offset:2px}
.access-form .show-password{flex-direction:row;align-items:center;gap:8px;font-weight:400;margin-top:-9px}
.access-form .primary-button{min-height:46px;font-weight:600}
.access-links{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#164b42;text-decoration:underline;text-underline-offset:3px}
.access-text-link{display:block;margin-top:18px;font-size:13px;text-decoration:underline}
.access-feedback{padding:14px;background:#edf4e9;border:1px solid #cddfc8;border-radius:7px;margin:20px 0;font-size:13px;line-height:1.6}
.access-feedback.error{background:#fff2e8;border-color:#e9c5a7;color:#70441f}
.access-hint,.invite-note p{font-size:12px;line-height:1.7;color:#64756b}.invite-note{margin:26px 0}.invite-note p{margin-top:13px}
.fixture-notice{padding:12px;background:#fff1cf;border:1px solid #e3ca81;border-radius:6px;font-size:11px;margin-top:20px;color:#705210}.fixture-notice p{margin-top:6px;line-height:1.5}
.fixture-tools{display:flex;flex-wrap:wrap;gap:8px;border-top:1px dashed #d2d7c9;margin-top:26px;padding-top:12px}.fixture-tools button{font-size:11px}
.app-session-bar{height:64px;position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #dce3d8;display:flex;align-items:center;gap:20px;padding:12px 24px}
.app-session-bar .access-brand{font-size:19px}.app-session-bar label{font-size:11px;display:flex;align-items:center;gap:10px}.app-session-bar select{max-width:330px}
.session-user{margin-left:auto;font-size:12px;color:#64756b}.app-session-bar button{font-size:12px}
.fixture-session{background:#fff1cf;color:#705210;font-size:11px;padding:8px 24px;display:flex;align-items:center;gap:10px}.fixture-session button{font-size:11px;min-height:28px;padding:4px 8px}
.workspace-host .sidebar{top:64px;height:calc(100vh - 64px)}
.objects-page{max-width:1100px;margin:0 auto;padding:64px 32px}.objects-page h1{font-size:34px;letter-spacing:-1px;margin:12px 0}.objects-page>p{font-size:14px;color:#627568;line-height:1.65}
.objects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:24px;margin-top:34px}
.object-card{background:white;border:1px solid #d9e3d5;border-radius:12px;padding:28px;min-height:290px;display:flex;flex-direction:column;gap:15px;transition:border-color .15s}
.object-card:hover{border-color:#286b58}.object-card h2{font-size:27px;letter-spacing:-.7px}.object-card p{font-size:13px;line-height:1.65;color:#5f7167}
.object-mode{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#27614b}.object-card.demo .object-mode{color:#8d632b}.object-card.unclassified .object-mode{color:#7f543d}
.object-card .object-note{font-size:12px;border-top:1px solid #edf0e8;padding-top:14px}.object-open{margin-top:auto;font-size:13px;font-weight:600;padding-top:12px}
.unassigned-panel{margin-top:22px}.unassigned-tiles{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.unassigned-tiles .sensor-tile{width:150px;min-height:100px}
@media(max-width:760px){.access-page{display:block}.access-story{padding:28px;gap:30px}.access-story>div:not(.access-brand),.access-story>.access-independent{display:none}.access-card{padding:36px 26px;margin:auto}.app-session-bar{height:auto;min-height:64px;padding:10px 14px;gap:10px;flex-wrap:wrap}.app-session-bar .access-brand{font-size:17px}.app-session-bar label{order:3;width:100%}.app-session-bar select{max-width:none;flex:1;min-width:0}.session-user{display:none}.app-session-bar>button{margin-left:auto}.fixture-session{flex-wrap:wrap;padding:8px 14px}.objects-page{padding:32px 20px}.objects-grid{grid-template-columns:1fr}.workspace-host .sidebar{position:static;height:auto}.access-origins{flex-wrap:wrap}}
.fixture-session{position:relative;z-index:31}
@media(min-width:761px){.fixture-session~.workspace-host .sidebar{top:108px;height:calc(100vh - 108px)}}

.access-recheck{margin-top:20px}

.access-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.provider-access { display: grid; gap: 12px; margin: 24px 0; }
.provider-access p, .local-access p { color: var(--muted); font-size: 13px; line-height: 1.6; }
.local-access { border-top: 1px solid var(--border); padding-top: 18px; margin-top: 22px; }
.local-access summary { cursor: pointer; font-weight: 600; }
.app-session-bar:has(.session-authority[open]) { z-index: 40; }
.session-authority { position: relative; max-width: 300px; font-size: 12px; }
.session-authority summary { cursor: pointer; }
.session-authority div { position: absolute; top: calc(100% + 12px); left: 0; width: 300px; padding: 16px; line-height: 1.5; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 8px 28px #173f3426; z-index: 40; }
@media(max-width:760px){.session-authority div{position:fixed;top:auto;left:14px;right:14px;width:auto;margin-top:10px}}
.session-feedback { padding: 12px 24px; background: #fff2cb; margin: 0; }
