@charset "UTF-8";
@font-face{
  font-family:"DSEG7Local";
  src:url("fonts/DSEG7Classic-Bold.woff2") format("woff2"),
      url("fonts/DSEG7Classic-Bold.woff") format("woff");
  font-style:normal;
  font-weight:700;
  font-display:block;
}
:root{
  --bg:#f3f3ef;
  --panel:#fbfbf7;
  --text:#111;
  --muted:#666;
  --line:#c9c9c2;
  --danger:#d40000;
  --font-ui:"Noto Sans","Roboto","Segoe UI","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body,button,textarea,input,select{font-family:var(--font-ui)}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.dashboard{width:min(1180px,100%);min-height:100vh;margin:auto;padding:14px 16px 18px}
.header-frame{
  position:relative;
  width:100%;
  margin:0 0 10px;
  padding:8px 10px 10px;
  border:1.5px solid var(--line);
  border-radius:14px;
  background:var(--panel);
  box-sizing:border-box;
  overflow:hidden;
}
.header-frame.header-pinned{position:sticky;top:0;z-index:6000;background:var(--bg)}
.header-frame .brand-header{
  position:relative;
  display:flex!important;
  align-items:center;
  justify-content:center;
  min-height:min(var(--brand-logo-size,110px),22vw);
  padding:4px clamp(58px,18vw,165px) 7px!important;
  overflow:hidden;
}
.header-frame .brand-logo-wrap{
  position:absolute;
  left:6px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:auto!important;
  max-width:24vw;
}
.header-frame .brand-logo{
  display:block;
  width:min(var(--brand-logo-size,110px),22vw)!important;
  height:min(var(--brand-logo-size,110px),22vw)!important;
  min-width:0!important;
  min-height:0!important;
  max-width:150px!important;
  max-height:150px!important;
  object-fit:cover!important;
  transition:none!important;
}
.header-frame .brand-title{
  margin:0!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  line-height:1.05!important;
}
.header-time-layout{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto auto;
  justify-items:center;
  align-items:center;
  gap:6px!important;
  margin:0!important;
  padding:4px 0 0!important;
  border:0!important;
  background:transparent!important;
  min-width:0;
}
.header-time-layout .clock{
  font-family:var(--header-clock-font,"DSEG7Local")!important;
  font-size:min(var(--header-clock-size,72px),16vw)!important;
  font-weight:700!important;
  font-synthesis:none;
  line-height:.95!important;
  text-align:center;
  white-space:nowrap;
  letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;
  max-width:100%;
  overflow:hidden;
}
.header-calendar-row{
  width:100%;
  min-width:0;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:clamp(4px,1.2vw,12px);
  white-space:nowrap!important;
  overflow:hidden;
  line-height:1.2;
  padding:0 4px;
  box-sizing:border-box;
}
#weekday,#solar-date{
  flex:0 1 auto;
  min-width:0;
  font-family:var(--header-date-font,"Times New Roman",serif)!important;
  font-size:min(var(--header-date-size,24px),4.9vw)!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
#lunar-date{
  flex:0 1 auto;
  min-width:0;
  margin:0!important;
  font-family:var(--header-lunar-font,"Times New Roman",serif)!important;
  font-size:min(var(--header-lunar-size,18px),4.5vw)!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.header-calendar-dot{font-size:min(var(--header-date-size,24px),4.2vw);opacity:.72;flex:0 0 auto}
@media (max-width:520px){.header-frame{padding:6px 7px 8px}
.header-frame .brand-header{padding-inline:clamp(50px,18vw,76px)!important;min-height:min(var(--brand-logo-size,110px),20vw)}
.header-frame .brand-logo{width:min(var(--brand-logo-size,110px),20vw)!important;height:min(var(--brand-logo-size,110px),20vw)!important}
.header-time-layout{gap:4px!important}
.header-calendar-row{gap:4px;padding-inline:1px}}
.upcoming-wrap{width:100%;display:flex;justify-content:center;padding:0 4px}
.upcoming-box{
  width:min(980px,100%);
  height:66px;
  margin:10px auto 5px;
  border:1.5px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  overflow:hidden;
}
.upcoming-stage{position:relative;width:100%;height:100%;overflow:hidden}
.upcoming-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  align-content:center;
  gap:2px 0;
  padding:7px 14px;
  text-align:center;
  font-size:14px;
  line-height:1.4;
  font-weight:700;
  background:transparent;
  overflow:hidden;
}
#event-frame .highlight,#event-frame .event-date{color:var(--danger);font-weight:900}
#event-frame .event-label-text{font-weight:800}
.event-gap{display:inline-block;width:18px;flex:0 0 18px}
.calendar-ticker{
  min-height:42px;
  display:flex;
  align-items:center;
  margin:7px 0 5px;
  border:1.5px solid var(--line);
  border-radius:9px;
  background:var(--panel);
  overflow:hidden;
}
.calendar-label{
  flex:0 0 auto;
  padding:9px 12px;
  border-right:1px solid var(--line);
  font-weight:900;
  white-space:nowrap;
}
.calendar-window{flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.calendar-track{
  display:inline-block;
  padding-left:100%;
  white-space:nowrap;
  font-weight:800;
  animation:calendarMarquee var(--calendar-marquee-seconds,60s) linear infinite;
}
.calendar-item{display:inline-block;margin-right:42px}
.calendar-time{font-weight:900;font-variant-numeric:tabular-nums}
@keyframes calendarMarquee{from{transform:translateX(0)}
to{transform:translateX(-100%)}}
.calendar-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px 6px;
  border-left:1px solid var(--line);
}
#calendar-state{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}
.location-status{
  margin:12px 0 8px;
  text-align:center;
  font-size:clamp(17px,2vw,24px);
  font-weight:800;
}
.weather-grid{display:grid;grid-template-columns:1.3fr 2.7fr;gap:12px}
.panel{
  background:var(--panel);
  border:1.5px solid var(--line);
  border-radius:12px;
}
.now-panel{
  padding:16px;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:15px;
}
.temperature{
  font-size:clamp(58px,9vw,110px);
  line-height:.9;
  letter-spacing:-.055em;
  font-weight:900;
}
.weather-desc{font-size:clamp(17px,2vw,25px);font-weight:800}
.weather-meta{
  margin-top:9px;
  display:grid;
  grid-template-columns:repeat(2,minmax(100px,1fr));
  gap:6px 14px;
  color:var(--muted);
  font-size:14px;
}
.weather-meta b{color:var(--text)}
.forecast-panel{padding:12px 10px;overflow:hidden}
.panel-title{font-weight:900;margin-bottom:9px;font-size:16px}
.hours{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(76px,1fr);
  overflow-x:auto;
  scrollbar-width:none;
  border-top:1px solid var(--line);
}
.hours::-webkit-scrollbar{display:none}
.hour{text-align:center;padding:9px 5px;border-right:1px solid var(--line);min-height:116px}
.htime{font-size:13px;color:var(--muted);font-weight:700}
.hicon{font-size:27px;line-height:1.4;filter:grayscale(1)}
.htemp{font-size:19px;font-weight:900}
.hrain{font-size:12px;color:var(--muted);margin-top:3px}
.bottom-grid{display:grid;grid-template-columns:2.8fr 1.2fr;gap:12px;margin-top:12px}
.note-panel,.system-panel{padding:14px;min-height:118px}
#note{
  width:100%;
  min-height:72px;
  resize:none;
  border:0;
  outline:none;
  background:transparent;
  color:var(--text);
  font:600 16px/1.45 var(--font-ui);
}
#sys,#wake-state{font-size:13px;line-height:1.5;color:var(--muted)}
.buttons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:9px}
button{
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:8px;
  background:transparent;
  color:var(--text);
  font-weight:700;
}
footer{text-align:center;color:var(--muted);font-size:12px;margin-top:10px}
.loading{opacity:.72}
@media (max-width:900px){.dashboard{padding:12px}
.topbar{grid-template-columns:1fr 2fr 1fr}
.clock{font-size:clamp(48px,10.5vw,94px)}
.upcoming-box{height:76px}
.upcoming-slide{font-size:13px;padding:8px 10px}
.weather-grid{grid-template-columns:1fr}}
@media (max-width:640px){.dashboard{padding:9px}
.topbar{grid-template-columns:1fr;gap:8px}
.clock{order:-1;font-size:clamp(44px,15.5vw,82px);margin-bottom:3px}
.date-panel{text-align:center;font-size:clamp(17px,5vw,23px)}
.device-panel{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:16px;
    text-align:center;
    font-size:clamp(17px,5vw,23px);
  }
.upcoming-box{height:94px;width:100%}
.upcoming-slide{font-size:12px;line-height:1.45;padding:8px}
.event-gap{width:9px;flex-basis:9px}
.calendar-ticker{flex-wrap:wrap}
.calendar-label{padding:7px 8px;font-size:12px}
.calendar-actions{
    width:100%;
    justify-content:center;
    border-left:0;
    border-top:1px solid var(--line);
  }
#calendar-state{display:none}
.now-panel{grid-template-columns:1fr;text-align:center}
.weather-meta{max-width:390px;margin:10px auto 0}
.bottom-grid{grid-template-columns:1fr}}
@media (max-width:380px){.clock{font-size:clamp(38px,14.5vw,62px)}
.upcoming-box{height:108px}
.upcoming-slide{font-size:11px}
.date-panel,.device-panel{font-size:16px}}
@media (prefers-color-scheme:dark){:root{--bg:#121212;--panel:#181818;--text:#eee;--muted:#aaa;--line:#444}}
.attendance-panel{
  margin-top:12px;
  padding:12px 14px;
  overflow:hidden;
}
.attendance-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.attendance-kicker{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
#attendance-title{
  margin:2px 0 0;
  font-family:"Times New Roman",Times,serif;
  font-size:clamp(20px,2.5vw,30px);
  line-height:1.05;
}
.attendance-status{
  flex:0 0 auto;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  text-align:right;
}
.attendance-table-wrap{
  width:100%;
  max-height:210px;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--panel);
}
.attendance-table{
  width:max-content;
  min-width:100%;
  table-layout:auto;
  border-collapse:separate;
  border-spacing:0;
  background:var(--panel);
  font-family:"Times New Roman",Times,serif;
  font-size:clamp(12px,1.35vw,15px);
}
.attendance-table th,.attendance-table td{
  width:1%;
  max-width:none;
  padding:5px 8px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  vertical-align:middle;
  line-height:1.2;
  white-space:nowrap;
}
.attendance-table th:last-child,.attendance-table td:last-child{border-right:0}
.attendance-table tbody tr:last-child td{border-bottom:0}
.attendance-table thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:#ffebcd;
  color:#111;
  font-weight:900;
  text-align:center;
  box-shadow:0 1px 0 var(--line);
}
.attendance-name{font-weight:700}
.attendance-center{text-align:center}
.attendance-late{font-weight:800}
.attendance-empty{
  width:auto !important;
  padding:14px !important;
  text-align:center;
  color:var(--muted);
}
@media (max-width:640px){.attendance-panel{padding:9px}
.attendance-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
.attendance-status{text-align:left}
.attendance-table-wrap{max-height:195px}
.attendance-table{
    width:max-content;
    min-width:100%;
    font-size:12px;
  }
.attendance-table th,.attendance-table td{padding:5px 6px}}
@media (prefers-color-scheme:dark){.attendance-table thead th{
    background:#332a1e;
    color:var(--text);
  }}
.market-panel{
  padding:14px;
  min-height:118px;
}
.market-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.market-heading .panel-title{margin:0}
.market-updated{
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  text-align:right;
}
.market-sections{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.market-section{
  min-width:0;
  border-top:1px solid var(--line);
  padding-top:7px;
}
.market-section:first-child{border-top:0;padding-top:0}
.market-section h3{
  margin:0 0 5px;
  font-size:13px;
  line-height:1.25;
}
.market-source,.market-unit{
  color:var(--muted);
  font-size:10px;
  line-height:1.3;
}
.market-source{margin-bottom:4px}
.market-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
  padding:2px 0;
  font-size:12px;
}
.market-row span{min-width:0}
.market-row strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.market-mini-head,.market-rate-row{
  display:grid;
  grid-template-columns:42px 1fr 1fr;
  gap:5px;
  align-items:center;
}
.market-mini-head{
  color:var(--muted);
  font-size:9px;
  text-align:right;
  padding-bottom:2px;
}
.market-mini-head span:first-child{text-align:left}
.market-rate-row{
  font-size:11px;
  padding:2px 0;
  font-variant-numeric:tabular-nums;
}
.market-rate-row span{text-align:right;white-space:nowrap}
.market-gold-name{font-size:12px;font-weight:800;margin-bottom:3px}
.market-gold-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.market-gold-grid>div{
  display:flex;
  flex-direction:column;
  gap:1px;
}
.market-gold-grid span{color:var(--muted);font-size:9px}
.market-gold-grid strong{
  font-size:11px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.market-loading,.market-error{
  color:var(--muted);
  font-size:11px;
}
.market-error{line-height:1.35}
.system-details{
  margin-top:10px;
  padding:0;
  overflow:hidden;
}
.system-details summary{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:9px 14px;
  cursor:pointer;
  list-style:none;
  user-select:none;
  font-weight:900;
}
.system-details summary::-webkit-details-marker{display:none}
.system-arrow{
  display:inline-block;
  transition:transform .18s ease;
  font-size:12px;
}
.system-details:not([open]) .system-arrow{
  transform:rotate(180deg);
}
.system-details-body{
  border-top:1px solid var(--line);
  padding:10px 14px 13px;
}
.system-details-body #sys,.system-details-body #wake-state{
  font-size:13px;
  line-height:1.5;
  color:var(--muted);
}
@media (max-width:640px){.market-panel{padding:11px}
.market-sections{
    grid-template-columns:repeat(3,minmax(0,1fr));
    overflow-x:auto;
    gap:8px;
  }
.market-section{
    min-width:165px;
    border-top:0;
    border-left:1px solid var(--line);
    padding:0 0 0 8px;
  }
.market-section:first-child{border-left:0;padding-left:0}}
@media (min-width:900px){.market-sections{
    grid-template-columns:1fr;
  }}
#attendance-panel[hidden]{display:none !important}
.market-panel{
  min-height:0;
  padding:10px 12px;
}
.market-heading{
  margin-bottom:5px;
}
.market-sections{
  display:block;
}
.market-fuel-fixed{
  border-top:0 !important;
  padding-top:0 !important;
  padding-bottom:4px;
}
.market-scroll{
  max-height:76px;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  border-top:1px solid var(--line);
}
.market-scroll .market-section{
  padding:5px 2px 4px;
  border-top:1px solid var(--line);
}
.market-scroll .market-section:first-child{
  border-top:0;
}
.market-section h3{
  margin:0 0 3px;
  font-size:12px;
}
.market-source{
  margin-bottom:2px;
  font-size:9px;
}
.market-row{
  padding:1px 0;
  font-size:11px;
}
.market-mini-head,.market-rate-row{
  line-height:1.2;
}
.market-rate-row{
  padding:1px 0;
  font-size:10px;
}
.market-gold-name{
  margin-bottom:2px;
  font-size:11px;
}
.market-gold-grid strong{
  font-size:10px;
}
.market-unit{
  font-size:9px;
}
@media (max-width:640px){.market-sections{
    display:block;
    overflow:visible;
  }
.market-section{
    min-width:0;
    border-left:0;
    padding-left:0;
  }
.market-scroll{
    max-height:82px;
  }}
.attendance-updated{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  line-height:1.25;
}
.calendar-picker{
  margin:8px 0 0;
  padding:11px 12px;
  border:1.5px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  box-shadow:0 1px 0 rgba(0,0,0,.10);
}
.calendar-picker[hidden]{display:none!important}
.calendar-picker-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.calendar-picker-head strong{
  display:block;
  font-size:14px;
}
.calendar-picker-sub{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
#calendar-picker-close{
  flex:0 0 auto;
  min-width:34px;
  min-height:32px;
  padding:4px 9px;
  font-size:20px;
  line-height:1;
}
.calendar-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:7px;
  max-height:190px;
  overflow:auto;
  padding:2px;
}
.calendar-choice{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-width:0;
  padding:8px 9px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  font-size:12px;
  line-height:1.25;
}
.calendar-choice input{
  flex:0 0 auto;
  width:17px;
  height:17px;
  margin:0;
}
.calendar-choice-text{
  min-width:0;
}
.calendar-choice-name{
  display:block;
  font-weight:800;
  overflow-wrap:anywhere;
}
.calendar-choice-meta{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
  overflow-wrap:anywhere;
}
.calendar-picker-loading,.calendar-picker-empty{
  grid-column:1/-1;
  padding:12px;
  color:var(--muted);
  text-align:center;
  font-size:12px;
}
.calendar-picker-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin-top:9px;
}
.calendar-save{
  font-weight:900!important;
  border-color:#111!important;
}
@media (max-width:640px){.calendar-list{
    grid-template-columns:1fr;
    max-height:220px;
  }
.calendar-picker-actions{
    justify-content:stretch;
  }
.calendar-picker-actions button{
    flex:1 1 auto;
  }}
.calendar-settings-button{
  min-width:36px;
  padding:6px 9px;
  font-size:17px;
  line-height:1;
}
.calendar-speed-panel{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:6px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel);
}
.calendar-speed-panel[hidden]{display:none!important}
.calendar-speed-title{
  flex:0 0 auto;
  font-size:12px;
  font-weight:900;
}
.calendar-speed-control{
  display:flex;
  align-items:center;
  gap:7px;
  flex:1;
  min-width:180px;
  font-size:10px;
  color:var(--muted);
}
.calendar-speed-control input{
  flex:1;
  min-width:100px;
}
.calendar-speed-value{
  flex:0 0 auto;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
.note-panel{
  position:relative;
}
.note-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.note-heading .panel-title{
  margin:0;
}
.note-tools-button{
  width:34px;
  height:32px;
  padding:4px;
  font-size:18px;
  line-height:1;
}
.note-tools-menu{
  position:absolute;
  top:44px;
  right:12px;
  z-index:10;
  display:flex;
  gap:6px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--panel);
  box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.note-tools-menu[hidden]{display:none!important}
.note-tools-menu button{
  padding:6px 9px;
  font-size:11px;
  white-space:nowrap;
}
.note-clear-button{
  font-weight:900;
}
@media (max-width:640px){.calendar-speed-panel{
    align-items:stretch;
    flex-direction:column;
    gap:6px;
  }
.calendar-speed-control{
    width:100%;
  }
.calendar-speed-value{
    white-space:normal;
  }}
.device-tools{display:flex;justify-content:flex-end;margin-top:4px}
.device-tools button{padding:0;border:0;background:transparent;box-shadow:none;font:inherit;line-height:1;min-width:0;color:inherit;appearance:none;-webkit-appearance:none}
html.dark{--bg:#111;--panel:#1b1b1b;--text:#f3f3ef;--muted:#aaa;--line:#444;--danger:#ff5a5a}
html.dark body,html.dark .panel,html.dark .upcoming-box,html.dark .calendar-ticker,html.dark .calendar-picker,html.dark .calendar-speed-panel,html.dark .system-details{background:var(--bg);color:var(--text)}
html.dark .panel,html.dark .upcoming-box,html.dark .calendar-ticker,html.dark .calendar-picker,html.dark .calendar-speed-panel,html.dark .system-details{background:var(--panel);border-color:var(--line)}
html.dark button,html.dark textarea,html.dark input,html.dark select{background:#222;color:var(--text);border-color:#555}
@media (max-width:760px){.device-tools{justify-content:center}}
#weekday,#solar-date,#lunar-date,#battery,#network{
  font-family:"Times New Roman",Times,serif !important;
}
.device-tools{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin-top:3px;
  min-height:1.28em;
}
#theme-toggle{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:1em !important;
  height:1em !important;
  min-width:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  outline:0;
  background:transparent !important;
  box-shadow:none !important;
  color:inherit;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif !important;
  font-size:1em !important;
  font-weight:400 !important;
  line-height:1 !important;
  opacity:.92;
  appearance:none;
  -webkit-appearance:none;
}
.app-settings{
  position:fixed;
  right:max(14px,env(safe-area-inset-right));
  bottom:max(14px,env(safe-area-inset-bottom));
  z-index:1000;
}
.system-menu-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(120,120,120,.10);
  color:var(--text);
  box-shadow:none;
  font-size:25px;
  line-height:1;
  opacity:.52;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.system-menu-toggle:hover,.system-menu-toggle:focus-visible,.system-menu-toggle[aria-expanded="true"]{
  opacity:.9;
  background:rgba(120,120,120,.16);
}
.system-menu{
  position:absolute;
  right:0;
  bottom:50px;
  width:min(280px,calc(100vw - 28px));
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel);
  color:var(--text);
  box-shadow:0 6px 24px rgba(0,0,0,.18);
}
.system-menu[hidden]{display:none!important}
.system-menu-title{
  padding:2px 4px 8px;
  font-weight:900;
  font-size:14px;
  border-bottom:1px solid var(--line);
}
.system-status-row{
  padding:7px 4px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  border-bottom:1px solid var(--line);
}
.system-menu-button{
  display:block;
  width:100%;
  min-height:38px;
  margin:7px 0 0;
  padding:8px 10px;
  text-align:left;
  border:1px solid var(--line);
  border-radius:8px;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:13px;
  font-weight:800;
}
.system-update-button{
  margin-top:10px;
  border-top-width:2px;
}
.market-heading{
  margin-bottom:4px;
}
.market-source{
  white-space:normal;
  line-height:1.25;
}
html.dark .system-menu{
  background:var(--panel);
  color:var(--text);
  border-color:var(--line);
}
html.dark .system-menu-toggle{
  color:var(--text);
  background:rgba(255,255,255,.08);
}
@media (max-width:760px){.device-tools{justify-content:center}
.app-settings{
    right:max(10px,env(safe-area-inset-right));
    bottom:max(10px,env(safe-area-inset-bottom));
  }
.system-menu-toggle{
    width:40px;
    height:40px;
    font-size:23px;
  }}
.user-login-area{
  position:fixed;
  top:max(8px,env(safe-area-inset-top));
  right:max(10px,env(safe-area-inset-right));
  z-index:1500;
}
.user-login-button,.admin-user-chip{
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(245,245,242,.86);
  color:var(--text);
  font:inherit;
  font-size:11px;
  font-weight:800;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.user-login-button{padding:6px 10px}
.admin-user-chip{
  display:flex;
  align-items:center;
  gap:7px;
  padding:4px 5px 4px 9px;
}
.admin-user-chip[hidden]{display:none!important}
.admin-user-chip button{
  border:0;
  border-radius:999px;
  padding:4px 7px;
  background:rgba(120,120,120,.12);
  color:inherit;
  font:inherit;
  font-size:10px;
}
.managed-section{position:relative}
.section-admin-gear{
  position:absolute;
  top:6px;
  right:7px;
  z-index:20;
  width:30px;
  height:30px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(120,120,120,.10);
  color:var(--text);
  font-size:18px;
  line-height:1;
  opacity:.62;
}
.section-admin-gear[hidden]{display:none!important}
.attendance-admin-gear{top:8px;right:9px}
.weather-refresh-button{
  position:absolute;
  top:7px;
  right:8px;
  z-index:8;
  width:30px;
  height:30px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text);
  font-size:22px;
  font-weight:700;
  line-height:1;
  opacity:.68;
}
.weather-refresh-button:active{transform:rotate(35deg)}
.admin-modal{
  position:fixed;
  inset:0;
  z-index:3000;
  display:grid;
  place-items:center;
  padding:14px;
}
.admin-modal[hidden]{display:none!important}
.admin-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.38);
}
.admin-dialog{
  position:relative;
  z-index:1;
  width:min(430px,100%);
  max-height:min(86vh,760px);
  overflow:auto;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel);
  color:var(--text);
  box-shadow:0 12px 40px rgba(0,0,0,.26);
}
.admin-wide-dialog{width:min(850px,100%)}
.admin-dialog-close{
  position:absolute;
  top:7px;right:8px;
  width:32px;height:32px;
  border:0;background:transparent;color:inherit;
  font-size:24px;line-height:1;
}
.admin-dialog h2{margin:0 36px 14px 0;font-size:18px}
.inline-admin-form{
  display:grid;
  gap:9px;
  padding:11px;
  border:1px solid var(--line);
  border-radius:10px;
}
.inline-admin-form label{display:grid;gap:4px;font-size:12px;font-weight:800}
.inline-admin-form input,.inline-admin-form select{
  width:100%;
  box-sizing:border-box;
  min-height:36px;
  padding:7px 8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel);
  color:var(--text);
  font:inherit;
}
.admin-form-actions{display:flex;gap:7px;flex-wrap:wrap}
.admin-primary{
  border:1px solid var(--text)!important;
  background:var(--text)!important;
  color:var(--panel)!important;
  font-weight:900!important;
}
.admin-form-message{
  min-height:18px;
  margin:7px 0;
  font-size:12px;
  font-weight:700;
}
.admin-form-message.error{color:#b42318}
.event-admin-list{display:grid;gap:5px}
.inline-event-row{
  display:grid;
  grid-template-columns:60px 48px minmax(0,1fr) auto auto;
  gap:6px;
  align-items:center;
  padding:6px 0;
  border-bottom:1px solid var(--line);
  font-size:11px;
}
.inline-event-row button,.attendance-file-admin-row button{
  border:1px solid var(--line);
  border-radius:6px;
  padding:5px 7px;
  background:transparent;
  color:inherit;
  font:inherit;
  font-size:10px;
}
.danger-mini{font-weight:900;color:#a51d16!important}
.attendance-admin-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.admin-hint{font-size:10px;color:var(--muted)}
.attendance-admin-status{
  margin:10px 0;
  padding:8px;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:11px;
}
.attendance-admin-files{display:grid;gap:5px}
.attendance-file-admin-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:7px;
  padding:6px 0;
  border-bottom:1px solid var(--line);
  font-size:11px;
}
.admin-empty{padding:12px;text-align:center;color:var(--muted)}
html.dark .user-login-button,html.dark .admin-user-chip{background:rgba(30,30,30,.84)}
@media (max-width:640px){.inline-event-row{grid-template-columns:52px 42px minmax(0,1fr);align-items:start}
.inline-event-row button{grid-row:2}
.attendance-admin-grid{grid-template-columns:1fr}
.user-login-area{top:max(5px,env(safe-area-inset-top));right:max(6px,env(safe-area-inset-right))}}
.app-settings{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
}
.floating-tool-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(120,120,120,.08);
  color:var(--text);
  box-shadow:none;
  line-height:1;
  opacity:.48;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.login-key-button{
  font-size:20px;
}
.system-menu-toggle{
  position:static!important;
  width:40px!important;
  height:40px!important;
  font-size:23px!important;
}
.floating-tool-button:hover,.floating-tool-button:focus-visible{
  opacity:.9;
  background:rgba(120,120,120,.14);
}
.system-menu{
  bottom:94px!important;
}
.system-admin-chip{
  margin:7px 0 3px;
  width:100%;
  box-sizing:border-box;
  justify-content:space-between;
  border-radius:8px;
}
.effects-settings{
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.effects-settings-title{
  margin-bottom:6px;
  font-size:12px;
  font-weight:900;
}
.system-switch-row,.system-select-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:6px 3px;
  border-bottom:1px solid var(--line);
  font-size:11px;
}
.system-switch-row input{
  width:18px;
  height:18px;
}
.system-select-row select{
  max-width:112px;
  min-height:30px;
  padding:3px 5px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
  color:var(--text);
  font:inherit;
  font-size:11px;
}
.attendance-visibility-inline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 10px;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  font-size:12px;
  font-weight:900;
}
.attendance-visibility-inline input{
  width:20px;
  height:20px;
}
.stars-layer,.fireworks-canvas{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  left:0;
  width:100%;
  width:100vw;
  height:100%;
  height:100vh;
  z-index:1900;
  pointer-events:none;
  overflow:hidden;
}
.stars-layer[hidden],.fireworks-canvas[hidden]{display:none!important}
.stars-layer{z-index:1800}
.fireworks-canvas{z-index:1850}
.falling-star{
  position:absolute;
  top:-28px;
  color:#f5c518;
  text-shadow:0 0 3px rgba(255,193,7,.55);
  animation-name:obslStarFall;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
  will-change:transform;
}
@keyframes obslStarFall{0%{transform:translate3d(0,-40px,0) rotate(0deg)}
100%{transform:translate3d(22px,calc(100vh + 80px),0) rotate(360deg)}}
.admin-system-status[hidden],.admin-only[hidden]{
  display:none!important;
}
.effects-preview-button{
  margin-top:9px;
  text-align:center;
}
#system-attendance-visibility-row{
  margin-top:7px;
  border-top:1px solid var(--line);
}
#system-attendance-visibility-row input{
  width:20px;
  height:20px;
}
.app-settings{
  display:block !important;
}
.login-key-button{
  display:none!important;
}
.system-menu{
  bottom:50px!important;
  width:min(310px,calc(100vw - 24px))!important;
  max-height:min(78vh,660px);
  overflow:auto;
  padding:10px!important;
}
.system-menu-head{
  position:relative;
  display:flex;
  align-items:center;
  min-height:34px;
  padding:0 38px 8px 3px;
  border-bottom:1px solid var(--line);
}
.system-menu-head .system-menu-title{
  padding:0!important;
  border:0!important;
  font-size:14px;
  font-weight:900;
}
.system-theme-toggle{
  position:absolute;
  top:-2px;
  right:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  padding:0;
  margin:0;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit;
  font-size:18px;
  line-height:1;
  opacity:.8;
  appearance:none;
  -webkit-appearance:none;
}
.system-group{
  margin:7px 0 0;
  border:1px solid var(--line);
  border-radius:9px;
  background:transparent;
  overflow:hidden;
}
.system-group[hidden]{
  display:none!important;
}
.system-group>summary{
  position:relative;
  cursor:pointer;
  list-style:none;
  padding:9px 31px 9px 10px;
  font-size:12px;
  font-weight:900;
  user-select:none;
  -webkit-user-select:none;
}
.system-group>summary::-webkit-details-marker{
  display:none;
}
.system-group>summary::after{
  content:"›";
  position:absolute;
  top:50%;
  right:10px;
  transform:translateY(-50%) rotate(90deg);
  font-size:18px;
  line-height:1;
  opacity:.65;
  transition:transform .18s ease;
}
.system-group[open]>summary::after{
  transform:translateY(-50%) rotate(-90deg);
}
.system-group[open]>summary{
  border-bottom:1px solid var(--line);
}
.system-group-body{
  padding:7px 8px 8px;
}
.system-group-body .system-menu-button{
  margin:5px 0 0;
}
.system-group-body .system-menu-button:first-child{
  margin-top:0;
}
.system-info-body .system-status-row{
  padding:7px 3px;
}
.system-info-body .system-status-row:last-child{
  border-bottom:0;
}
.system-login-zone{
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--line);
}
.system-login-form{
  display:grid;
  gap:7px;
}
.system-login-form[hidden]{
  display:none!important;
}
.system-login-title{
  font-size:12px;
  font-weight:900;
}
.system-login-form label{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  align-items:center;
  gap:7px;
  font-size:11px;
  font-weight:700;
}
.system-login-form input{
  width:100%;
  box-sizing:border-box;
  min-height:32px;
  padding:5px 7px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel);
  color:var(--text);
  font:inherit;
}
.system-login-submit{
  width:100%;
  min-height:34px;
  border-radius:7px!important;
}
.system-login-form .admin-form-message{
  margin:0;
  min-height:0;
  font-size:10px;
}
.system-admin-chip{
  margin:0!important;
  width:100%;
  box-sizing:border-box;
}
.device-tools{
  display:none!important;
}
@media (max-width:560px){.system-menu{
    width:min(300px,calc(100vw - 18px))!important;
    max-height:76vh;
  }
.system-login-form label{
    grid-template-columns:64px minmax(0,1fr);
  }}
.pwa-install-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:5000;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 6px 24px rgba(0,0,0,.2)}
.pwa-install-banner[hidden]{display:none!important}
.pwa-install-banner div{display:grid;gap:2px}
.pwa-install-banner span{font-size:10px;color:var(--muted)}
.pwa-install-banner button{min-height:34px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;font:inherit;font-weight:800}
.pwa-install-banner #pwa-install-close{border:0;font-size:20px}
@media (max-width:560px){.pwa-install-banner{grid-template-columns:minmax(0,1fr) auto}
.pwa-install-banner #pwa-install-close{position:absolute;right:3px;top:1px}
.pwa-install-banner #pwa-install-button{grid-column:1/-1;width:100%}}
.seo-title{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.brand-header{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:2px 12px 8px;
  margin:0 auto;
  text-align:center;
  overflow:hidden;
}
.brand-title{
  margin:0;
  max-width:100%;
  color:var(--text);
  font-family:"Dancing Script","Segoe Print","Bradley Hand","Comic Sans MS",cursive;
  font-size:clamp(28px,5vw,54px);
  font-weight:700;
  line-height:1.05;
  letter-spacing:.015em;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
}
.pwa-install-banner{
  white-space:normal!important;
}
.pwa-install-copy{
  min-width:0;
  display:grid;
  gap:2px;
}
.pwa-install-copy strong,.pwa-install-copy span{
  overflow-wrap:anywhere;
}
.pwa-install-banner::before,.pwa-install-banner::after{
  content:none!important;
}
@media (max-width:420px){.brand-header{padding-inline:6px}
.brand-title{
    font-size:clamp(25px,9vw,38px);
    letter-spacing:0;
  }}
.pwa-install-banner{
  left:12px!important;
  right:auto!important;
  bottom:12px!important;
  width:min(420px,calc(100vw - 84px))!important;
  max-width:calc(100vw - 84px)!important;
  box-sizing:border-box;
  z-index:900!important;
}
.app-settings{
  z-index:1200!important;
}
@media (max-width:520px){.pwa-install-banner{
    left:8px!important;
    bottom:8px!important;
    width:calc(100vw - 72px)!important;
    max-width:calc(100vw - 72px)!important;
  }}
#system-menu-toggle,.system-menu-toggle{
  width:38px!important;
  height:38px!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  outline:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  color:var(--text)!important;
  opacity:.62!important;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif!important;
  font-size:27px!important;
  font-weight:400!important;
  line-height:1!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
#system-menu-toggle:hover,#system-menu-toggle:focus,#system-menu-toggle:active,.system-menu-toggle:hover,.system-menu-toggle:focus,.system-menu-toggle:active{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.9!important;
}
.location-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:100%;
}
.location-row .location-status{
  margin:0;
  text-align:center;
}
.location-dropdown-button{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:0!important;
  padding:0 3px!important;
  min-width:20px;
  font-size:19px;
  line-height:1;
  cursor:pointer;
  color:inherit;
  opacity:.72;
}
.location-picker{
  position:fixed;
  inset:0;
  z-index:5000;
  background:rgba(0,0,0,.28);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
}
.location-picker[hidden]{display:none!important}
.location-picker-card{
  position:relative;
  width:min(520px,100%);
  max-height:82vh;
  overflow:auto;
  background:var(--panel,#fff);
  color:var(--text,#111);
  border:1px solid rgba(127,127,127,.35);
  border-radius:14px;
  padding:18px;
  box-sizing:border-box;
}
.location-picker-title{
  text-align:center;
  font-weight:700;
  font-size:18px;
  margin:0 34px 8px;
}
.location-picker-note{
  font-size:13px;
  opacity:.72;
  margin-bottom:14px;
  line-height:1.4;
}
.location-picker-card label{
  display:block;
  margin:10px 0;
  font-weight:600;
}
.location-picker-card select{
  display:block;
  width:100%;
  margin-top:5px;
  padding:10px;
  font:inherit;
  color:inherit;
  background:var(--panel,#fff);
  border:1px solid rgba(127,127,127,.45);
  border-radius:8px;
}
.location-picker-close{
  position:absolute;
  right:10px;
  top:8px;
  border:0;
  background:transparent;
  color:inherit;
  font-size:26px;
  cursor:pointer;
}
.location-picker-status{
  min-height:20px;
  font-size:12px;
  opacity:.78;
  margin:8px 0;
}
.location-apply{
  width:100%;
  padding:10px;
  border-radius:8px;
  cursor:pointer;
}
#system-menu-toggle,.system-menu-toggle{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:0!important;
  padding:0!important;
}
.system-flag-icon{
  display:block;
  width:34px;
  height:34px;
  object-fit:contain;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.loading,body.loading,.dashboard.loading{
  opacity:1!important;
  filter:none!important;
  transition:none!important;
}
#location-dropdown-button,.location-dropdown-button,#note-tools-button,.note-tools-button{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  outline:0!important;
  border-radius:0!important;
  padding:0 4px!important;
  color:inherit!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
#location-dropdown-button,.location-dropdown-button{
  font-size:18px!important;
}
#note-tools-button,.note-tools-button{
  font-size:19px!important;
}
.brand-header{
  position:relative;
  display:grid!important;
  grid-template-columns:minmax(0,150px) minmax(0,1fr) minmax(0,150px);
  align-items:center;
  width:100%;
  min-height:46px;
  box-sizing:border-box;
  padding:4px 12px 8px!important;
}
.brand-logo-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:150px;
  max-width:100%;
  min-width:0;
}
.brand-logo{
  display:block;
  width:110px;
  height:110px;
  max-width:150px;
  max-height:150px;
  object-fit:cover;
  object-position:center;
  border:0;
  box-shadow:none;
}
.brand-title{
  grid-column:2;
  justify-self:center;
  width:100%;
  min-width:0;
  max-width:100%;
  text-align:center;
  overflow-wrap:anywhere;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.brand-balance{
  width:150px;
  max-width:100%;
}
.tools-subgroup{
  margin-top:8px;
  border-top:1px solid var(--line);
}
.tools-subgroup>summary{
  cursor:pointer;
  padding:9px 2px 5px;
  font-weight:900;
  font-size:12px;
}
.title-logo-tools-body{
  display:grid;
  gap:9px;
  padding-top:7px;
}
.brand-admin-field{
  display:grid;
  gap:5px;
  font-size:11px;
  font-weight:800;
}
.brand-admin-field input[type="text"],.brand-admin-field select{
  width:100%;
  min-height:34px;
  box-sizing:border-box;
  padding:6px 7px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel);
  color:var(--text);
  font:inherit;
}
.brand-font-preview{
  min-height:54px;
  padding:9px;
  border:1px dashed var(--line);
  border-radius:8px;
  background:transparent;
  font-size:20px;
  line-height:1.25;
  text-align:center;
  overflow-wrap:anywhere;
}
.brand-logo-drop{
  display:grid;
  grid-template-columns:68px 1fr;
  gap:9px;
  align-items:center;
  padding:9px;
  border:1px dashed var(--line);
  border-radius:9px;
  cursor:pointer;
  font-size:10px;
}
.brand-logo-drop.dragover{
  outline:2px solid currentColor!important;
  outline-offset:2px!important;
}
.brand-logo-drop img{
  width:64px;
  height:64px;
  object-fit:cover;
  border-radius:7px;
}
.brand-logo-drop div{
  display:grid;
  gap:3px;
}
.brand-logo-drop span{
  color:var(--muted);
}
.brand-show-row{
  border-top:0!important;
}
.brand-save-status{
  min-height:16px;
  font-size:10px;
  font-weight:700;
}
@media (max-width:760px){.brand-header{
    grid-template-columns:72px minmax(0,1fr) 72px;
    padding-inline:8px!important;
  }
.brand-logo-wrap,.brand-balance{width:72px}
.brand-logo{
    width:min(var(--brand-logo-size,72px),72px)!important;
    height:min(var(--brand-logo-size,72px),72px)!important;
  }}
@media (max-width:420px){.brand-header{
    grid-template-columns:52px minmax(0,1fr) 52px;
  }
.brand-logo-wrap,.brand-balance{width:52px}
.brand-logo{
    width:min(var(--brand-logo-size,50px),50px)!important;
    height:min(var(--brand-logo-size,50px),50px)!important;
  }}
#system-menu-toggle,.system-menu-toggle{
  width:36px!important;
  height:36px!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  outline:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  color:var(--text)!important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  font-size:25px!important;
  font-weight:400!important;
  line-height:1!important;
  opacity:.72!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
#system-menu-toggle:hover,#system-menu-toggle:focus,#system-menu-toggle:active{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:1!important;
}
.system-admin-chip{
  display:flex!important;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.system-admin-chip[hidden]{
  display:none!important;
}
.admin-timeout-control{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:9px;
  font-weight:700;
  margin-left:auto;
}
.admin-timeout-control select{
  min-height:26px;
  padding:2px 4px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
  color:var(--text);
  font:inherit;
  font-size:9px;
}
#system-menu-toggle,#pwa-install-banner{
  transition:opacity .18s ease, visibility .18s ease!important;
}
#system-menu-toggle.ui-auto-hidden,#pwa-install-banner.ui-auto-hidden{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#system-menu-toggle.ui-auto-visible,#pwa-install-banner.ui-auto-visible{
  visibility:visible!important;
}
.market-card,.market-body,#market-content{max-height:none!important;height:auto!important;overflow:visible!important}
.market-panel{position:relative}
.app-uptime-item{white-space:nowrap}
.admin-frozen{position:sticky!important;top:0!important;z-index:1100!important;background:var(--bg,#fff)!important}
.brand-freeze-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;border:1px solid var(--line);font-size:10px}
.site-footer{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px 8px;border-top:1px solid var(--line);font:12px "Times New Roman",serif}
.footer-links{display:flex;gap:7px}
.footer-links a{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;text-decoration:none;color:inherit}
.footer-admin-preview,.note-style-preview{padding:8px;border:1px dashed var(--line);text-align:center}
.notify-toggle-row{display:flex!important;justify-content:space-between}
.note-advanced{display:grid;gap:8px;margin:10px 0;padding:9px;border-top:1px solid var(--line)}
#system-menu-toggle.ui-auto-hidden,#pwa-install-banner.ui-auto-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.market-one-frame,.market-no-scroll{display:block!important;max-height:none!important;height:auto!important;overflow:visible!important}
.market-scroll{max-height:none!important;overflow:visible!important;padding-right:0!important}
.market-section{break-inside:avoid}
@keyframes obslSpin{to{transform:rotate(360deg)}}
.footer-links a img{width:20px;height:20px;object-fit:contain;display:block}
.footer-links a{border:0!important;background:none!important;box-shadow:none!important}
.note-tools-menu{max-height:min(70vh,520px);overflow:auto}
.note-advanced select,.note-advanced input[type=range]{width:100%}
.admin-frozen{position:sticky!important;top:var(--freeze-top,0)!important;z-index:1100!important}
.site-footer{display:flex!important;visibility:visible!important;opacity:1!important}
.obsl-frozen{position:fixed!important;top:var(--f-top)!important;left:var(--f-left)!important;width:var(--f-width)!important;min-height:var(--f-height)!important;z-index:5000!important;background:var(--bg,#fff)!important;margin:0!important}
.app-uptime-item{font-family:"Times New Roman",serif;white-space:nowrap}
.site-footer{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  width:100%!important;
  min-height:44px!important;
  padding:10px 12px!important;
  margin:8px 0 0!important;
  border-top:1px solid var(--line)!important;
  color:var(--text)!important;
  background:var(--bg)!important;
  position:relative!important;
  z-index:2!important;
}
.site-footer .footer-links{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
}
.site-footer .footer-links a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  height:24px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  text-decoration:none!important;
}
.app-uptime-item{
  display:block!important;
  font-family:"Times New Roman",Times,serif!important;
  font-size:1em!important;
  line-height:1.28!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.obsl-freeze-placeholder{
  display:block!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.obsl-frozen{
  position:fixed!important;
  top:var(--f-top)!important;
  left:var(--f-left)!important;
  width:var(--f-width)!important;
  height:var(--f-height)!important;
  z-index:4900!important;
  background:var(--bg)!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.header-frame{width:100%;margin:0 0 10px;padding:8px 10px 10px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel);box-sizing:border-box;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.header-frame .brand-header{margin:0!important;padding:2px 4px 6px!important}
.header-frame .topbar{margin:0!important;border:0!important;padding:4px 0 0!important;background:transparent!important}
.header-frame.header-pinned{position:sticky!important;top:0!important;z-index:4800!important;box-shadow:0 2px 10px rgba(0,0,0,.14)!important}
.note-tools-menu{width:min(760px,calc(100vw - 28px))!important;max-width:760px!important;padding:12px!important}
.note-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}
.note-editor-controls{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;min-width:0}
.note-editor-controls label{display:grid;grid-template-columns:minmax(100px,.85fr) minmax(120px,1.15fr);gap:8px;align-items:center;font-size:11px;font-weight:800;min-width:0}
.note-editor-controls select,.note-editor-controls input[type="range"]{width:100%;min-width:0}
.note-editor-preview-column{display:grid;grid-template-rows:minmax(112px,1fr) auto;gap:9px;min-width:0}
.note-editor-preview-column .note-style-preview{height:100%;min-height:112px;margin:0!important;display:flex;align-items:flex-start;justify-content:flex-start;text-align:left;overflow:auto;white-space:pre-wrap}
.note-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.note-editor-actions button{width:100%;min-height:38px}
.location-setting-row{display:grid!important;grid-template-columns:1fr minmax(150px,1fr);gap:8px;align-items:center;margin:9px 0;font-size:11px;font-weight:800}
.location-setting-row select{width:100%}
.footer-admin-item{display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px}
.footer-admin-item>label:not(.system-switch-row){display:grid;gap:4px;font-size:10px;font-weight:700}
.obsl-frozen,.admin-frozen{position:static!important;top:auto!important;left:auto!important;width:auto!important;height:auto!important;z-index:auto!important}
.obsl-freeze-placeholder{display:none!important}
.site-footer .footer-links img{display:block;width:22px;height:22px;object-fit:contain}
@media (max-width:760px){.header-frame{padding:7px 8px}
.header-frame .brand-header{grid-template-columns:68px minmax(0,1fr) 68px!important}
.header-frame .topbar{grid-template-columns:1fr!important;gap:5px!important}
.header-frame .clock{order:-1!important;margin:2px auto 4px!important}
.header-frame .date-panel,.header-frame .device-panel{text-align:center!important}
.header-frame .device-panel{display:flex!important;justify-content:center!important;gap:10px!important;flex-wrap:wrap!important}
.note-editor-layout{grid-template-columns:1fr}
.note-editor-controls label,.location-setting-row{grid-template-columns:1fr}}
@media (max-width:420px){.header-frame .brand-header{grid-template-columns:50px minmax(0,1fr) 50px!important}
.note-tools-menu{width:calc(100vw - 16px)!important}}
.header-frame.header-pinned{position:sticky!important;top:0!important;z-index:6000!important;background:var(--bg)!important;isolation:isolate;box-shadow:0 2px 10px rgba(0,0,0,.16)!important}
.header-runtime-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin:0 4px}
.header-runtime-icon img{display:block;width:var(--header-icon-size,20px);height:var(--header-icon-size,20px);object-fit:contain;border-radius:var(--header-icon-radius,50%)}
.header-status-line{display:flex;align-items:center;justify-content:flex-end;gap:2px;min-width:0}
.header-custom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.header-custom-group{min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px;display:grid;gap:6px}
.header-custom-group legend{font-size:11px;font-weight:900;padding:0 5px}
.header-custom-group label{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(120px,1.1fr);gap:7px;align-items:center;font-size:10px;font-weight:700}
.header-custom-group input,.header-custom-group select{width:100%;min-width:0;box-sizing:border-box}
.brand-seo-group{border:1px solid var(--line);border-radius:8px;padding:6px;margin-top:6px}
.brand-seo-group>summary{cursor:pointer;font-weight:900;font-size:11px}
.brand-admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.site-footer .footer-links img{width:24px!important;height:24px!important;object-fit:contain!important;border-radius:50%!important}
.note-editor-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
@media (max-width:760px){.header-custom-grid{grid-template-columns:1fr}
.header-custom-group label{grid-template-columns:minmax(85px,.85fr) minmax(90px,1.15fr)}
.note-editor-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:6px!important}
.note-editor-controls{padding:6px!important;gap:5px!important}
.note-editor-controls label{grid-template-columns:minmax(70px,.85fr) minmax(75px,1.15fr)!important;gap:4px!important;font-size:9px!important}
.note-editor-preview-column{min-width:0!important}
.note-tools-menu{width:calc(100vw - 12px)!important;padding:7px!important}}
@media (max-width:420px){.note-editor-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:4px!important}
.note-editor-controls label{grid-template-columns:1fr!important;font-size:8px!important}
.note-editor-actions{gap:4px!important}
.note-editor-actions button{font-size:9px!important;padding:5px 3px!important}}
.weather-updated-status{margin-left:auto;margin-right:8px;font-size:11px;font-family:"Times New Roman",Times,serif;opacity:.78;white-space:nowrap}
@media (max-width:560px){.weather-updated-status{font-size:9px;white-space:normal;text-align:right;line-height:1.15}}
#calendar-settings{border:0!important;background:transparent!important;box-shadow:none!important;font-size:20px!important;padding:0 4px!important}
.calendar-connect-inside{margin-top:8px;width:100%;min-height:34px}
.weather-updated-status{margin:10px auto 0!important;text-align:center!important;width:100%;font-size:11px;font-family:"Times New Roman",Times,serif;opacity:.78;white-space:normal}
.site-footer .footer-links a[hidden]{display:none!important}
.dashboard{width:100%;max-width:100%;box-sizing:border-box}
.event-frame,.footer-frame{position:relative;width:100%!important;max-width:100%!important;box-sizing:border-box;margin:12px 0 0;padding:10px;border:1.5px solid var(--line);border-radius:12px;background:var(--panel);overflow:visible}
.event-frame .upcoming-wrap,.event-frame .calendar-ticker{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;box-sizing:border-box}
.event-frame .upcoming-box{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box}
.event-frame .calendar-ticker{margin-top:8px!important}
.footer-frame .site-footer{width:100%!important;max-width:100%!important;margin:0!important;padding:12px!important;border:1px solid var(--line)!important;border-radius:9px!important;background:var(--panel)!important;box-sizing:border-box!important}
.section-editor-pencil{font-size:18px!important;border:0!important;background:transparent!important;box-shadow:none!important}
.section-config-panel{width:100%;max-width:100%;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-sizing:border-box;overflow:hidden}
.section-config-panel[hidden]{display:none!important}
.section-config-panel .tools-subgroup{margin:0!important;border:0!important;padding:0!important}
.section-config-panel .tools-subgroup>summary{display:none!important}
.section-config-panel .title-logo-tools-body{width:100%;max-width:100%;box-sizing:border-box}
.section-config-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
#header-frame{position:relative}
#weather-section-editor,#header-section-editor,#event-section-editor,#footer-section-editor{position:relative}
.footer-frame + .app-settings{width:100%;max-width:100%;margin-top:8px}
@media (max-width:760px){.event-frame,.footer-frame{padding:7px;margin-top:9px;border-radius:10px}
.section-config-panel{padding:7px}
.event-frame .calendar-ticker{flex-wrap:wrap}
.event-frame .calendar-window{width:100%;min-width:0}
.footer-frame .site-footer{padding:10px 8px!important}}
.event-public-editor{display:block;position:relative;z-index:5;width:100%;max-width:100%;box-sizing:border-box}
.event-public-editor[hidden]{display:none!important}
.event-editor-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.event-editor-group{display:grid;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:8px}
.event-editor-group label{display:grid;grid-template-columns:minmax(90px,.65fr) minmax(120px,1.35fr);gap:8px;align-items:center;font-size:11px;font-weight:800}
.event-editor-group select{width:100%;min-width:0}
#calendar-settings{position:relative;z-index:20;pointer-events:auto!important;cursor:pointer}
#calendar-connect,#calendar-picker button{pointer-events:auto!important;position:relative;z-index:10}
@keyframes obsl-cal-rtl{from{transform:translateX(100%)}
to{transform:translateX(-100%)}}
@keyframes obsl-cal-ltr{from{transform:translateX(-100%)}
to{transform:translateX(100%)}}
@keyframes obsl-cal-up{from{transform:translateY(100%)}
to{transform:translateY(-100%)}}
@keyframes obsl-cal-down{from{transform:translateY(-100%)}
to{transform:translateY(100%)}}
.calendar-typewriter{white-space:nowrap!important}
.footer-app-tools{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:8px;min-height:42px}
.footer-tool-button,.footer-app-tools .system-menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;width:38px!important;height:38px!important;min-width:38px!important;padding:0!important;border:0!important;border-radius:50%!important;background:rgba(120,120,120,.08)!important;box-shadow:none!important;font-size:20px!important;opacity:.65}
.footer-app-tools .app-settings{position:static!important;right:auto!important;bottom:auto!important;z-index:20!important;display:flex;align-items:center;justify-content:center}
.footer-app-tools .system-menu{position:absolute!important;left:50%!important;right:auto!important;bottom:48px!important;transform:translateX(-50%);width:min(320px,calc(100vw - 28px))}
#pwa-install-banner.footer-pwa-banner{position:absolute!important;left:50%!important;right:auto!important;bottom:52px!important;transform:translateX(-50%);width:min(420px,calc(100vw - 24px));z-index:25}
.section-config-panel .tools-subgroup[open]>.title-logo-tools-body{display:grid!important}
@media (max-width:640px){.event-editor-columns{grid-template-columns:1fr}
.event-editor-group label{grid-template-columns:1fr}
.footer-app-tools{gap:7px}}
#header-admin-editor{
  top:auto!important;
  bottom:7px!important;
  right:7px!important;
}
.footer-app-tools{display:none!important}
.footer-frame .app-settings{position:fixed!important;right:max(14px,env(safe-area-inset-right))!important;bottom:max(14px,env(safe-area-inset-bottom))!important;z-index:1000!important}
.app-settings{position:fixed!important;right:max(14px,env(safe-area-inset-right))!important;bottom:max(14px,env(safe-area-inset-bottom))!important;z-index:1000!important}
.pwa-install-banner{position:fixed!important;right:max(14px,env(safe-area-inset-right))!important;left:auto!important;bottom:66px!important;transform:none!important;z-index:1100!important;width:min(390px,calc(100vw - 28px))!important;max-width:calc(100vw - 28px)!important}
.section-config-panel:not([hidden]){display:block!important}
.section-config-panel .tools-subgroup[open]>.title-logo-tools-body{display:grid!important}
.section-config-panel .tools-subgroup[open]>.system-group-body{display:block!important}
.note-style-preview:empty,.brand-font-preview:empty,.footer-admin-preview:empty{min-height:42px}
#weather-admin-editor{top:auto!important;bottom:7px!important;right:7px!important}
.now-panel{padding-bottom:38px!important}
.brand-font-preview{
  display:block!important;
  min-height:52px!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:8px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  line-height:1.15!important;
}
#brand-title{
  max-width:100%!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
#brand-logo,#brand-logo-admin-preview{
  object-fit:cover!important;
  overflow:hidden!important;
  transition:border-radius .15s ease,width .15s ease,height .15s ease!important;
}
.obsl-toast-track{
  display:inline-block!important;
  width:max-content!important;
  min-width:max-content!important;
  white-space:nowrap!important;
  padding:10px 14px!important;
  font:700 13px/1.2 system-ui,sans-serif!important;
  animation:obsl-toast-marquee var(--obsl-toast-speed,20s) linear infinite!important;
  will-change:transform;
}
@keyframes obsl-toast-marquee{from{transform:translateX(100vw)}
to{transform:translateX(-100%)}}
.footer-frame{margin-bottom:76px!important}
body.pwa-visible .footer-frame{margin-bottom:170px!important}
.app-settings{
  position:fixed!important;
  right:max(12px,env(safe-area-inset-right))!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
}
.pwa-install-banner{
  position:fixed!important;
  left:auto!important;
  right:max(12px,env(safe-area-inset-right))!important;
  bottom:64px!important;
  transform:none!important;
  width:min(390px,calc(100vw - 76px))!important;
  max-width:calc(100vw - 76px)!important;
}
@media (max-width:520px){.footer-frame{margin-bottom:72px!important}
body.pwa-visible .footer-frame{margin-bottom:190px!important}
.pwa-install-banner{
    right:8px!important;
    bottom:62px!important;
    width:calc(100vw - 70px)!important;
    max-width:calc(100vw - 70px)!important;
    font-size:11px!important;
  }
.obsl-toast-track{font-size:12px!important}}
.weather-updated-status{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:7px auto 0!important;
  padding:0 8px!important;
  text-align:center!important;
  justify-self:center!important;
  font-family:"Times New Roman",Times,serif!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
@keyframes obsl-toast-marquee{from{transform:translateX(100vw)}
to{transform:translateX(-100%)}}
.obsl-bottom-tools-row{
  position:fixed!important;left:8px!important;right:8px!important;bottom:8px!important;z-index:5000!important;
  display:flex!important;align-items:flex-end!important;justify-content:flex-end!important;gap:8px!important;
  pointer-events:none!important;max-width:calc(100vw - 16px)!important;
}
.obsl-bottom-tools-row .pwa-install-banner,.obsl-bottom-tools-row .app-settings{pointer-events:auto!important}
.obsl-bottom-tools-row .app-settings{
  position:relative!important;right:auto!important;bottom:auto!important;left:auto!important;top:auto!important;
  flex:0 0 auto!important;margin:0!important;
}
.obsl-bottom-tools-row .pwa-install-banner{
  position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;
  transform:none!important;margin:0!important;width:min(390px,calc(100vw - 76px))!important;max-width:calc(100vw - 76px)!important;
  min-height:42px!important;padding:5px 7px!important;display:flex;align-items:center;gap:6px;
}
.obsl-bottom-tools-row .pwa-install-banner[hidden]{display:none!important}
.obsl-bottom-tools-row .pwa-install-copy{min-width:0!important;display:flex!important;align-items:center!important;gap:5px!important}
.obsl-bottom-tools-row .pwa-install-copy span{display:none!important}
.obsl-bottom-tools-row .pwa-install-copy strong{white-space:nowrap!important;font-size:11px!important}
.obsl-bottom-tools-row #pwa-install-button{white-space:nowrap!important;padding:5px 7px!important}
.obsl-bottom-tools-row #pwa-install-close{flex:0 0 auto!important}
.footer-frame{margin-bottom:58px!important}
body.pwa-visible .footer-frame{margin-bottom:58px!important}
#brand-font-preview{
  display:block!important;min-height:52px!important;width:100%!important;box-sizing:border-box!important;
  overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;padding:8px!important;
}
#brand-logo,#brand-logo-admin-preview{
  object-fit:cover!important;transition:border-radius .12s ease,width .12s ease,height .12s ease!important;
}
#brand-title{
  min-width:0!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
@media (max-width:560px){.weather-updated-status{font-size:9px!important;white-space:nowrap!important}
.obsl-bottom-tools-row{left:5px!important;right:5px!important;bottom:5px!important;gap:5px!important}
.obsl-bottom-tools-row .pwa-install-banner{width:calc(100vw - 64px)!important;max-width:calc(100vw - 64px)!important}
.footer-frame{margin-bottom:52px!important}}
.now-panel{
  position:relative!important;
  padding-bottom:38px!important;
}
#weather-admin-editor{
  top:auto!important;
  right:7px!important;
  bottom:7px!important;
  z-index:30!important;
  pointer-events:auto!important;
}
.now-panel .weather-updated-status{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  bottom:8px!important;
  transform:translateX(-50%)!important;
  width:max-content!important;
  max-width:calc(100% - 54px)!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:11px!important;
  line-height:1.15!important;
  z-index:8!important;
}
.section-admin-gear,.section-editor-pencil{
  pointer-events:auto!important;
  touch-action:manipulation!important;
  cursor:pointer!important;
  z-index:40!important;
}
.section-config-panel:not([hidden]){
  display:block!important;
  position:relative!important;
  z-index:35!important;
  overflow:visible!important;
}
.section-config-panel .tools-subgroup[open]>.title-logo-tools-body{
  display:grid!important;
}
.obsl-bottom-tools-row{
  position:fixed!important;
  left:8px!important;
  right:8px!important;
  bottom:max(8px,env(safe-area-inset-bottom))!important;
  z-index:5000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  max-width:calc(100vw - 16px)!important;
  max-height:58px!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:visible!important;
  pointer-events:none!important;
  transition:opacity .18s ease,visibility .18s ease!important;
}
.obsl-bottom-tools-row.tools-hidden{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.obsl-bottom-tools-row .pwa-install-banner,.obsl-bottom-tools-row .app-settings{
  pointer-events:auto!important;
}
.obsl-bottom-tools-row .app-settings{
  position:relative!important;
  inset:auto!important;
  flex:0 0 auto!important;
  margin:0!important;
}
.obsl-bottom-tools-row .pwa-install-banner{
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  margin:0!important;
  width:min(390px,calc(100vw - 72px))!important;
  max-width:calc(100vw - 72px)!important;
  min-height:42px!important;
  padding:5px 7px!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
.obsl-bottom-tools-row .pwa-install-banner[hidden]{
  display:none!important;
}
.obsl-bottom-tools-row .pwa-install-copy{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  gap:5px!important;
}
.obsl-bottom-tools-row .pwa-install-copy span{
  display:none!important;
}
.obsl-bottom-tools-row .pwa-install-copy strong{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:11px!important;
}
.obsl-bottom-tools-row #pwa-install-button{
  flex:0 0 auto!important;
  min-height:30px!important;
  padding:4px 7px!important;
  white-space:nowrap!important;
}
.obsl-bottom-tools-row #pwa-install-close{
  flex:0 0 auto!important;
  position:static!important;
}
.footer-frame{
  margin-bottom:0!important;
  transition:margin-bottom .18s ease!important;
}
body.obsl-tools-visible .footer-frame{
  margin-bottom:58px!important;
}
@media (max-width:560px){.now-panel .weather-updated-status{
    max-width:calc(100% - 48px)!important;
    font-size:9px!important;
  }
.obsl-bottom-tools-row{
    left:5px!important;
    right:5px!important;
    bottom:max(5px,env(safe-area-inset-bottom))!important;
    gap:5px!important;
    max-width:calc(100vw - 10px)!important;
  }
.obsl-bottom-tools-row .pwa-install-banner{
    width:calc(100vw - 62px)!important;
    max-width:calc(100vw - 62px)!important;
    min-height:38px!important;
    padding:4px 6px!important;
  }
.obsl-bottom-tools-row .pwa-install-copy strong{
    font-size:10px!important;
  }
.obsl-bottom-tools-row #pwa-install-button{
    font-size:10px!important;
    min-height:28px!important;
    padding:3px 6px!important;
  }
body.obsl-tools-visible .footer-frame{
    margin-bottom:52px!important;
  }}
#weekday,#solar-date,#lunar-date,#battery,#network,#app-uptime{
  transition:font-size .12s ease,font-family .12s ease!important;
}
.brand-logo-choose{
  display:inline-flex!important;
  width:auto!important;
  min-height:32px!important;
  margin-top:6px!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
#brand-logo-file{pointer-events:auto!important}
@keyframes obsl-toast-marquee{from{transform:translateX(760px)}
to{transform:translateX(-100%)}}
#obsl-bottom-tools-row{display:none!important}
.pwa-install-banner{
  position:fixed!important;
  left:12px!important;
  right:auto!important;
  bottom:12px!important;
  transform:none!important;
  width:min(420px,calc(100vw - 84px))!important;
  max-width:calc(100vw - 84px)!important;
  min-height:unset!important;
  height:auto!important;
  margin:0!important;
  padding:8px 10px!important;
  box-sizing:border-box!important;
  z-index:900!important;
  white-space:normal!important;
  display:flex;
  align-items:center;
  gap:8px;
}
.pwa-install-banner[hidden]{display:none!important}
.pwa-install-copy{
  min-width:0!important;
  display:grid!important;
  gap:2px!important;
}
.pwa-install-copy strong,.pwa-install-copy span{
  overflow-wrap:anywhere!important;
  white-space:normal!important;
}
.pwa-install-banner::before,.pwa-install-banner::after{content:none!important}
.app-settings{
  position:fixed!important;
  right:max(14px,env(safe-area-inset-right))!important;
  left:auto!important;
  bottom:max(14px,env(safe-area-inset-bottom))!important;
  top:auto!important;
  z-index:1200!important;
  margin:0!important;
}
.footer-frame,body.obsl-tools-visible .footer-frame,body.pwa-visible .footer-frame{
  margin-bottom:0!important;
}
@media (max-width:520px){.pwa-install-banner{
    left:8px!important;
    right:auto!important;
    bottom:8px!important;
    width:calc(100vw - 72px)!important;
    max-width:calc(100vw - 72px)!important;
    padding:6px 8px!important;
    gap:6px!important;
  }
.pwa-install-copy strong{font-size:11px!important}
.pwa-install-copy span{font-size:9px!important;line-height:1.15!important}
#pwa-install-button{white-space:nowrap!important;padding:5px 7px!important}
@keyframes obsl-toast-marquee{from{transform:translateX(100vw)}
to{transform:translateX(-100%)}}}
.footer-copyright-group{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  min-width:0!important;
}
.footer-admin-pencil{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  font-size:18px!important;
  line-height:1!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  opacity:.68!important;
}
.footer-admin-pencil[hidden]{display:none!important}
.footer-admin-pencil:hover,.footer-admin-pencil:focus-visible{opacity:1!important}
#footer-section-editor:not([hidden]){
  display:block!important;
  width:100%!important;
  margin-top:8px!important;
}
#footer-section-editor #footer-tools-group{display:block!important}
#footer-section-editor #footer-tools-group[open]>.title-logo-tools-body{display:grid!important}
.brand-logo-drop{cursor:default!important}
.brand-logo-choose{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:32px!important;
  padding:6px 9px!important;
  margin:5px 0 2px!important;
  border:1px solid var(--line)!important;
  border-radius:7px!important;
  background:transparent!important;
  color:inherit!important;
  font-size:10px!important;
  font-weight:800!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
.brand-logo-native-file,.inline-admin-form input[type="file"]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  width:100%!important;
  max-width:100%!important;
  min-height:34px!important;
  margin:3px 0 0!important;
  font-size:10px!important;
}
.footer-frame,body.obsl-tools-visible .footer-frame,body.pwa-visible .footer-frame{
  margin-bottom:0!important;
  padding-bottom:10px!important;
}
.footer-tools-row{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  width:100%!important;
  max-width:100%!important;
  max-height:72px!important;
  margin:8px auto 0!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  opacity:1!important;
  visibility:visible!important;
  transition:max-height .18s ease,margin .18s ease,opacity .18s ease,visibility .18s ease!important;
}
.footer-tools-row.tools-hidden{
  max-height:0!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  visibility:hidden!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.footer-tools-row .pwa-install-banner{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  z-index:20!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  align-items:center!important;
  gap:7px!important;
  width:min(420px,calc(100% - 50px))!important;
  max-width:calc(100% - 50px)!important;
  min-height:42px!important;
  height:auto!important;
  margin:0!important;
  padding:7px 9px!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  background:var(--panel)!important;
  color:var(--text)!important;
  box-shadow:0 4px 16px rgba(0,0,0,.14)!important;
  box-sizing:border-box!important;
  white-space:normal!important;
}
.footer-tools-row .pwa-install-banner[hidden]{display:none!important}
.footer-tools-row .pwa-install-copy{
  display:grid!important;
  gap:1px!important;
  min-width:0!important;
  text-align:left!important;
}
.footer-tools-row .pwa-install-copy strong{
  font-size:11px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.footer-tools-row .pwa-install-copy span{
  font-size:9px!important;
  line-height:1.15!important;
  color:var(--muted)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.footer-tools-row #pwa-install-button{
  min-height:27px!important;
  height:27px!important;
  padding:2px 7px!important;
  border:1px solid var(--line)!important;
  border-radius:7px!important;
  background:transparent!important;
  color:inherit!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.footer-tools-row #pwa-install-close{
  position:static!important;
  width:22px!important;
  height:22px!important;
  min-height:22px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  font-size:18px!important;
  line-height:1!important;
}
.footer-tools-row .app-settings{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  z-index:30!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:38px!important;
  height:38px!important;
  margin:0!important;
}
.footer-tools-row #system-menu-toggle{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  font-size:22px!important;
  margin:0!important;
}
.footer-tools-row .system-menu{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  bottom:44px!important;
  transform:translateX(-50%)!important;
  width:min(310px,calc(100vw - 24px))!important;
  z-index:60!important;
}
@media (max-width:560px){.site-footer{gap:6px!important;padding:8px 6px!important}
.footer-copyright-group{gap:2px!important}
.footer-admin-pencil{width:22px!important;height:22px!important;min-width:22px!important;font-size:17px!important}
.footer-tools-row{gap:5px!important;margin-top:6px!important}
.footer-tools-row .pwa-install-banner{
    width:calc(100% - 45px)!important;
    max-width:calc(100% - 45px)!important;
    min-height:38px!important;
    padding:5px 6px!important;
    gap:5px!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
  }
.footer-tools-row .pwa-install-copy strong{font-size:10px!important}
.footer-tools-row .pwa-install-copy span{display:none!important}
.footer-tools-row #pwa-install-button{height:25px!important;min-height:25px!important;padding:2px 6px!important;font-size:9px!important}
.footer-tools-row .app-settings{width:34px!important;height:34px!important}
.footer-tools-row #system-menu-toggle{width:33px!important;height:33px!important;min-width:33px!important;font-size:20px!important}}
.footer-tools-row,.footer-tools-row.tools-hidden{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  width:100%!important;
  min-height:34px!important;
  height:auto!important;
  max-height:none!important;
  margin:5px auto 0!important;
  padding:3px 4px!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:visible!important;
  box-sizing:border-box!important;
  transition:none!important;
  pointer-events:auto!important;
}
.footer-frame{
  margin-bottom:0!important;
  padding-bottom:6px!important;
}
.pwa-install-compact{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  position:static!important;
  inset:auto!important;
  width:auto!important;
  max-width:min(250px,calc(100vw - 70px))!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
.pwa-install-compact[hidden]{display:none!important}
#pwa-install-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  min-height:28px!important;
  height:28px!important;
  padding:3px 8px!important;
  margin:0!important;
  border:1px solid var(--line)!important;
  border-radius:7px!important;
  background:var(--panel)!important;
  color:var(--text)!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#pwa-install-close{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:static!important;
  width:26px!important;
  height:28px!important;
  min-width:26px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:6px!important;
  background:transparent!important;
  color:var(--text)!important;
  font-size:17px!important;
  line-height:1!important;
}
.footer-tools-row .app-settings{
  position:static!important;
  inset:auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:0!important;
  z-index:5200!important;
}
.footer-tools-row #system-menu-toggle{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  font-size:20px!important;
  margin:0!important;
}
#system-menu{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:48px!important;
  transform:translateX(-50%)!important;
  width:min(360px,calc(100vw - 16px))!important;
  max-width:calc(100vw - 16px)!important;
  max-height:min(78vh,620px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  box-sizing:border-box!important;
  z-index:9000!important;
}
.admin-editor-root>.title-logo-tools-body,.admin-accordion{
  display:grid!important;
  gap:7px!important;
}
.admin-subsection{
  width:100%!important;
  margin:0!important;
  border:1px solid var(--line)!important;
  border-radius:8px!important;
  background:var(--panel)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.admin-subsection>summary{
  cursor:pointer!important;
  list-style:none!important;
  padding:9px 10px!important;
  font-size:12px!important;
  font-weight:900!important;
  user-select:none!important;
}
.admin-subsection>summary::-webkit-details-marker{display:none!important}
.admin-subsection>summary::after{
  content:"⌄";
  float:right;
  opacity:.65;
}
.admin-subsection[open]>summary::after{content:"⌃"}
.admin-subsection-body{
  display:grid!important;
  gap:8px!important;
  padding:8px 10px 10px!important;
  border-top:1px solid var(--line)!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.admin-subsection:not([open])>.admin-subsection-body{display:none!important}
.admin-subsection .header-custom-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.event-admin-motion-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
.event-admin-motion-grid label{
  display:grid!important;
  gap:4px!important;
  min-width:0!important;
  font-size:11px!important;
  font-weight:800!important;
}
.event-admin-motion-grid select{width:100%!important;min-width:0!important}
.weather-admin-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
  width:100%!important;
}
.weather-admin-actions .system-menu-button{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.footer-copyright-group{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
}
.footer-admin-pencil{
  order:2!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:22px!important;
  height:22px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:16px!important;
  opacity:.72!important;
}
.footer-copyright-group #footer-text{order:1!important}
@media (max-width:640px){#system-menu{
    bottom:44px!important;
    width:calc(100vw - 10px)!important;
    max-width:calc(100vw - 10px)!important;
    max-height:76vh!important;
  }
.admin-subsection .header-custom-grid{
    grid-template-columns:1fr!important;
  }
.event-admin-motion-grid{
    grid-template-columns:1fr!important;
  }
.admin-subsection-body{
    padding:7px!important;
  }
.footer-tools-row{
    gap:3px!important;
    padding:2px!important;
  }
#pwa-install-button{
    max-width:calc(100vw - 100px)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }}
#header-section-editor,#calendar-speed-panel,#weather-section-editor,#footer-section-editor,#system-menu{
 box-sizing:border-box!important;max-width:min(94vw,680px)!important;width:min(94vw,680px)!important;
 overflow-x:hidden!important;overflow-y:auto!important;max-height:82vh!important;
}
#header-section-editor input,#header-section-editor select,#header-section-editor textarea,#calendar-speed-panel input,#calendar-speed-panel select,#weather-section-editor input,#weather-section-editor select,#weather-section-editor textarea,#footer-section-editor input,#footer-section-editor select,#footer-section-editor textarea,#system-menu input,#system-menu select,#system-menu textarea{max-width:100%!important;box-sizing:border-box!important}
#event-frame,#footer-frame{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
@media (max-width:640px){#header-section-editor,#calendar-speed-panel,#weather-section-editor,#footer-section-editor,#system-menu{
  left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:94vw!important;max-width:94vw!important;
 }}
#header-section-editor,#calendar-speed-panel,#weather-section-editor,#note-tools-menu,#footer-section-editor,#system-menu{box-sizing:border-box!important;max-width:min(94vw,680px)!important;min-width:0!important;overflow-x:hidden!important;overflow-y:auto!important}
#header-section-editor *,#calendar-speed-panel *,#weather-section-editor *,#note-tools-menu *,#footer-section-editor *,#system-menu *{box-sizing:border-box}
@media (max-width:640px){#header-section-editor,#calendar-speed-panel,#weather-section-editor,#note-tools-menu,#footer-section-editor,#system-menu{width:94vw!important;max-width:94vw!important}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#stt-message{font-size:10px;text-align:center;overflow-wrap:anywhere}
#clear-cache{display:none!important}
.theme-label{font-size:11px;font-weight:800;margin-right:4px}
.tag-editor-list{display:grid;gap:6px}
.tag-editor-row{display:grid;grid-template-columns:minmax(90px,1fr) 42px auto auto;gap:6px;align-items:center}
.tag-auto-row{grid-template-columns:minmax(100px,1fr) auto}
.tag-add-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tag-add-row>input[type="text"],.tag-add-row>input:not([type]){flex:1 1 140px}
.tag-blink{animation:obsl-tag-blink .72s steps(2,end) infinite!important;will-change:opacity}
@keyframes obsl-tag-blink{0%,49%{opacity:1}
50%,100%{opacity:.18}}
@keyframes toastRtl{from{transform:translateX(min(48vw,380px))}
to{transform:translateX(-100%)}}
@keyframes toastLtr{from{transform:translateX(-100%)}
to{transform:translateX(min(48vw,380px))}}
@keyframes toastUp{from{transform:translateY(120%)}
to{transform:translateY(-120%)}}
@keyframes toastDown{from{transform:translateY(-120%)}
to{transform:translateY(120%)}}
@keyframes toastBlink{50%{opacity:.15}}
.attendance-heading{grid-template-columns:1fr!important}
.attendance-title-block{min-width:0;text-align:left}
.attendance-kicker,.attendance-status{display:none!important}
@media (max-width:640px){.tag-editor-row{grid-template-columns:minmax(80px,1fr) 38px auto}
.tag-editor-row button{grid-column:1/-1}
.brand-admin-actions{grid-template-columns:1fr!important}}
#header-frame.header-frame{
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  padding:clamp(6px,1.2vw,12px)!important;
  border:1.5px solid var(--line)!important;
  border-radius:14px!important;
  background:var(--panel)!important;
}
#header-frame .brand-header{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:var(--brand-logo-effective-size,110px)!important;
  padding:4px calc(var(--brand-logo-effective-size,110px) + 12px) 7px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
#header-frame .brand-logo-wrap{
  position:absolute!important;
  left:6px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  justify-content:flex-start!important;
  align-items:center!important;
  width:var(--brand-logo-effective-size,110px)!important;
  height:var(--brand-logo-effective-size,110px)!important;
  min-width:0!important;
  max-width:none!important;
}
#header-frame .brand-logo{
  display:block!important;
  width:var(--brand-logo-effective-size,110px)!important;
  height:var(--brand-logo-effective-size,110px)!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
}
#header-frame .brand-title{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0 4px!important;
  text-align:center!important;
  line-height:1.08!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#header-frame .header-time-layout{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(2px,.7vw,7px)!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
}
#header-frame #clock{
  order:0!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
  font-family:var(--header-clock-font,"DSEG7Local",monospace)!important;
  font-size:var(--header-clock-effective-size,var(--header-clock-size,72px))!important;
  line-height:1.08!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  font-variant-numeric:tabular-nums!important;
}
#header-frame .header-calendar-row{
  order:1!important;
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:clamp(2px,.65vw,8px)!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0 2px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  line-height:1.2!important;
  box-sizing:border-box!important;
}
#header-frame #weekday,#header-frame #solar-date{
  flex:0 0 auto!important;
  min-width:0!important;
  font-family:var(--header-date-font,"Times New Roman",serif)!important;
  font-size:var(--header-date-effective-size,var(--header-date-size,24px))!important;
  white-space:nowrap!important;
}
#header-frame #lunar-date{
  flex:0 0 auto!important;
  min-width:0!important;
  font-family:var(--header-lunar-font,"Times New Roman",serif)!important;
  font-size:var(--header-lunar-effective-size,var(--header-lunar-size,18px))!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
#header-frame .header-calendar-dot{flex:0 0 auto!important;font-size:.8em!important;opacity:.65!important}
#header-frame .device-panel,#header-frame #battery,#header-frame #network,#header-frame #app-uptime{display:none!important}
@media (max-width:520px){#header-frame.header-frame{padding:6px!important}
#header-frame .brand-header{padding-top:3px!important;padding-bottom:5px!important}
#header-frame .brand-logo-wrap{left:3px!important}
#header-frame .header-calendar-row{gap:2px!important}}
#attendance-title{color:var(--attendance-title-color,#111111)!important}
.attendance-table tbody tr:nth-child(even) td{background:var(--attendance-alt-color,#f3f5f7)}
.attendance-table thead th{background:var(--attendance-row1-color,#fff4cc)!important}
.attendance-table td.attendance-checkin.is-threshold{box-shadow:inset 0 0 0 2px var(--attendance-checkin-border,#1976d2);font-weight:900}
.attendance-table td.attendance-late.is-threshold{box-shadow:inset 0 0 0 2px var(--attendance-late-border,#d32f2f);font-weight:900}
.attendance-style-admin{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.attendance-style-admin h3{margin:0 0 10px}
.attendance-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:10px}
.attendance-style-grid label{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(82px,.65fr);gap:6px;align-items:center;font-size:11px;font-weight:800;min-width:0}
.attendance-style-grid input{min-width:0;max-width:100%;box-sizing:border-box}
.attendance-style-grid input[type="color"]{width:42px;height:32px;padding:1px}
#event-frame .event-weekday,#event-frame .calendar-weekday{font-weight:900;white-space:nowrap}
.weekend-blink{animation:obsl-weekend-blink .8s steps(2,end) infinite!important}
@keyframes obsl-weekend-blink{0%,49%{opacity:1}
50%,100%{opacity:.22}}
.calendar-connect-inside{
  position:relative!important;z-index:50!important;pointer-events:auto!important;touch-action:manipulation!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:42px!important;cursor:pointer!important;user-select:none!important;-webkit-user-select:none!important;
  -webkit-tap-highlight-color:rgba(0,0,0,.08);-webkit-appearance:button!important;appearance:button!important
}
.calendar-connect-inside:disabled{opacity:.6;cursor:wait!important}
@media (max-width:720px){.attendance-style-grid{grid-template-columns:1fr}
.attendance-style-grid label{grid-template-columns:minmax(0,1fr) 42px minmax(88px,.8fr)}}
@keyframes sttWeatherRtl{0%{transform:translateX(105%)}
100%{transform:translateX(-105%)}}
@keyframes sttWeatherLtr{0%{transform:translateX(-105%)}
100%{transform:translateX(105%)}}
@keyframes sttWeatherUp{0%,12%{transform:translateY(0);opacity:1}
48%{transform:translateY(-115%);opacity:.15}
52%{transform:translateY(115%);opacity:.15}
88%,100%{transform:translateY(0);opacity:1}}
@keyframes sttWeatherDown{0%,12%{transform:translateY(0);opacity:1}
48%{transform:translateY(115%);opacity:.15}
52%{transform:translateY(-115%);opacity:.15}
88%,100%{transform:translateY(0);opacity:1}}
@keyframes sttWeatherType{0%,8%{clip-path:inset(0 100% 0 0)}
68%,100%{clip-path:inset(0 0 0 0)}}
@keyframes sttWeatherBlink{0%,49%{opacity:1}
50%,100%{opacity:.18}}
#header-frame .header-calendar-row{
  align-items:center!important;
  line-height:1.15!important;
  transform:none!important;
  transition:none!important;
  contain:layout paint;
}
#header-frame #weekday,#header-frame #solar-date,#header-frame #lunar-date,#header-frame .header-calendar-dot{
  line-height:1.15!important;
  transition:none!important;
}
/* Header text effects own transform on these three nodes. The previous transform:none!important
   here overrode every pulse/float/ping animation selected by Admin. */
#header-frame .header-calendar-dot{transform:none!important;}
.falling-star.star-js-driven{top:0!important;left:0!important;animation:none!important;contain:layout style paint;backface-visibility:hidden}
@keyframes obsl-cal-enter-rtl{from{transform:translateX(22%);opacity:.2}
to{transform:translateX(0);opacity:1}}
@keyframes obsl-cal-enter-ltr{from{transform:translateX(-22%);opacity:.2}
to{transform:translateX(0);opacity:1}}
@keyframes obsl-cal-enter-up{from{transform:translateY(70%);opacity:.2}
to{transform:translateY(0);opacity:1}}
@keyframes obsl-cal-enter-down{from{transform:translateY(-70%);opacity:.2}
to{transform:translateY(0);opacity:1}}
.calendar-track{will-change:transform,opacity}
#brand-logo[style*="pointer"]{touch-action:manipulation}
.google-calendar-panel{
  display:grid;
  gap:10px;
}
.google-calendar-panel[hidden]{display:none!important}
.google-calendar-panel-head{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}
#calendar-panel-state{font-size:11px;color:var(--muted);font-weight:700}
.google-calendar-connect-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.google-calendar-admin-config{
  border-top:1px solid var(--line);
  padding-top:10px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  align-items:end;
}
.google-calendar-admin-config[hidden]{display:none!important}
.google-calendar-admin-config>strong,.google-calendar-admin-config>#calendar-config-message{
  grid-column:1/-1;
}
.google-calendar-admin-config label{
  display:grid;
  gap:4px;
  min-width:0;
  font-size:11px;
  font-weight:800;
}
.google-calendar-admin-config select{width:100%;min-width:0}
#calendar-config-save{grid-column:1/-1}
@media (max-width:680px){.google-calendar-connect-grid,.google-calendar-admin-config{grid-template-columns:1fr}
.google-calendar-admin-config>strong,.google-calendar-admin-config>#calendar-config-message,#calendar-config-save{grid-column:auto}}
.location-picker-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}
.location-auto{font-weight:800}
@media (max-width:420px){.location-picker-actions{grid-template-columns:1fr}}
.attendance-local-form{grid-column:1/-1}
.attendance-local-form input,.attendance-local-form select{width:100%;min-width:0}
.market-gas-title{margin:7px 0 3px;padding-top:6px;border-top:1px solid var(--line);font-weight:900;font-size:12px;letter-spacing:.02em}
.market-gas-row{display:grid;grid-template-columns:minmax(70px,.8fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:5px;align-items:center;padding:3px 0;border-bottom:1px dashed var(--line);font-size:10px}
.market-gas-row strong{min-width:0}
.market-gas-row span{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.market-gas-error{padding:2px 0}
@media (max-width:520px){.market-gas-row{grid-template-columns:1fr 1fr}
.market-gas-row strong{grid-column:1/-1}
.market-gas-row span{text-align:left}}
.calendar-track{
  display:block!important;
  padding-left:0!important;
  animation:none!important;
  transform:none;
  width:max-content;
  max-width:100%;
}
.calendar-track .calendar-item{margin-right:0!important}
.calendar-label-custom-icon{display:block;width:1em;height:1em;object-fit:contain}
html.obsl-font-preflight #header-frame .brand-header,html.obsl-font-preflight #header-frame .topbar,html.obsl-font-preflight #event-frame .upcoming-box,html.obsl-font-preflight #event-frame .calendar-ticker{visibility:hidden!important;opacity:0!important;transition:none!important}
html.obsl-font-ready #header-frame .brand-header,html.obsl-font-ready #header-frame .topbar,html.obsl-font-ready #event-frame .upcoming-box,html.obsl-font-ready #event-frame .calendar-ticker{visibility:visible!important;opacity:1!important;transition:none!important}
.calendar-ticker{overflow:hidden!important}
.calendar-ticker .calendar-window{
  flex:1 1 auto!important;width:auto!important;max-width:none!important;min-width:0!important;
  margin:0!important;overflow:hidden!important;contain:layout paint!important;
}
.calendar-ticker .calendar-track{
  width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;
  animation:none!important;transition:none!important;text-align:center!important;
}
.calendar-ticker .calendar-item{display:block!important;width:100%!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.attendance-panel{position:relative!important}
.attendance-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.attendance-title-block{min-width:0;flex:1 1 auto}
.attendance-title-line{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-width:0}
.attendance-title-line #attendance-title{flex:0 1 auto;min-width:0;margin:2px 0 0!important}
.attendance-title-line .attendance-date-button{flex:0 0 auto}
.attendance-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto}
.attendance-date-button{
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);
  font-size:18px;line-height:1;cursor:pointer;padding:0;
}
.attendance-date-popover{
  position:fixed!important;z-index:12000!important;left:8px;right:auto;top:58px;width:min(330px,calc(100vw - 20px));
  max-height:min(78vh,520px);overflow:auto;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);
  box-shadow:0 10px 30px rgba(0,0,0,.22);box-sizing:border-box;
}
.attendance-date-popover[hidden]{display:none!important}
.attendance-date-popover-title{font-weight:700;text-align:center;margin-bottom:8px}
.attendance-date-popover input[type="date"]{width:100%;min-height:40px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit}
.attendance-date-available{font-size:12px;line-height:1.55;color:var(--muted);margin:8px 0;max-height:170px;overflow:auto;overflow-wrap:anywhere}
.attendance-date-list-label{font-weight:900;color:var(--text)}
.attendance-date-link{display:inline!important;border:0!important;background:transparent!important;color:inherit!important;padding:0!important;margin:0!important;font:inherit!important;line-height:inherit!important;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.attendance-date-link.is-active{font-weight:900;color:var(--text)!important;text-decoration-thickness:2px}
.attendance-date-dot{opacity:.75}
.attendance-date-none{display:block;text-align:center}
.attendance-date-popover-actions{display:grid;grid-template-columns:1fr;gap:8px}
.attendance-date-popover-actions button{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;font-weight:700}
.attendance-browser-folder-box{padding:10px;border:1px dashed var(--line);border-radius:10px;margin-bottom:10px}
.attendance-browser-folder-title{font-weight:700;margin-bottom:6px}
.attendance-browser-folder-actions{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}
@media (max-width:600px){.attendance-date-button{width:30px;height:30px;font-size:16px}
.attendance-date-popover{width:min(320px,calc(100vw - 16px))!important}}
.attendance-panel{overflow:visible!important}
.attendance-table-wrap{position:relative!important;z-index:1!important;overflow:auto!important}
.attendance-date-popover{isolation:isolate!important}
.market-gas-title{display:none!important}
.market-gas-heading{margin:0!important;border-top:0!important;padding-top:3px!important}
.market-gas-heading strong{font-size:9px!important;color:var(--muted)!important;font-weight:700!important}
.market-gas-row{margin:0!important;padding:3px 0!important;border-top:0!important;border-bottom:1px dashed var(--line)!important}
.market-gas-error{padding:0!important;margin:0!important}
.calendar-ticker{
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:center!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.calendar-label,.calendar-actions{flex:0 0 auto!important;min-width:0!important}
.calendar-window{
  position:relative!important;
  flex:1 1 0!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  contain:layout paint!important;
}
.calendar-track{
  position:relative!important;
  display:inline-block!important;
  width:max-content!important;
  max-width:none!important;
  min-width:max-content!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  text-align:left!important;
  animation:none!important;
  transition:none;
  will-change:transform;
}
.calendar-track .calendar-item,.calendar-item{
  display:inline-block!important;
  width:auto!important;
  max-width:none!important;
  min-width:max-content!important;
  margin:0!important;
  padding:0 8px!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  vertical-align:middle!important;
}
#calendar-speed-panel.calendar-speed-panel{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  transform:none!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:8px 0 0!important;
  padding:10px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  box-sizing:border-box!important;
}
#calendar-speed-panel[hidden]{display:none!important}
#calendar-speed-panel *,.google-calendar-admin-config *,.google-calendar-connect-grid *{box-sizing:border-box!important;min-width:0!important}
.google-calendar-connect-grid,.google-calendar-admin-config{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
}
.google-calendar-admin-config>strong,.google-calendar-admin-config>#calendar-config-message,#calendar-config-save{grid-column:1/-1!important}
.google-calendar-admin-config label,.google-calendar-connect-grid>*{width:100%!important;max-width:100%!important;min-width:0!important}
.google-calendar-admin-config input,.google-calendar-admin-config select,.google-calendar-admin-config button,.google-calendar-connect-grid input,.google-calendar-connect-grid select,.google-calendar-connect-grid button{width:100%!important;max-width:100%!important;min-width:0!important}
@media (max-width:760px){.google-calendar-connect-grid,.google-calendar-admin-config{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:520px){.calendar-ticker{min-height:42px!important}
.calendar-label{padding:7px 8px!important}
.calendar-actions{gap:3px!important;padding:3px 4px!important}
#calendar-state{display:none!important}
.google-calendar-connect-grid,.google-calendar-admin-config{grid-template-columns:1fr!important}
.google-calendar-admin-config>strong,.google-calendar-admin-config>#calendar-config-message,#calendar-config-save{grid-column:auto!important}
#calendar-speed-panel.calendar-speed-panel{padding:8px!important}}
.attendance-config-stack{display:grid;gap:8px;width:100%;min-width:0}
.attendance-config-section{
  width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden;
}
.attendance-config-section>summary{
  list-style:none;cursor:pointer;padding:10px 12px;font-weight:900;display:flex;align-items:center;justify-content:space-between;gap:8px;user-select:none;
}
.attendance-config-section>summary::-webkit-details-marker{display:none}
.attendance-config-section>summary::after{content:"⌄";flex:0 0 auto;transition:transform .16s ease}
.attendance-config-section[open]>summary::after{transform:rotate(180deg)}
.attendance-config-body{padding:0 10px 10px;min-width:0}
.attendance-config-body .attendance-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;min-width:0}
.attendance-config-body form{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.attendance-config-body input,.attendance-config-body select,.attendance-config-body button{max-width:100%;min-width:0;box-sizing:border-box}
.attendance-status-lines{display:grid;gap:3px;line-height:1.45}
.attendance-status-source{overflow-wrap:anywhere}
@media (max-width:700px){.attendance-config-body .attendance-admin-grid{grid-template-columns:1fr}}
.calendar-ticker{
  display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;gap:clamp(5px,1vw,10px)!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
  min-height:48px!important;padding:5px 7px!important;box-sizing:border-box!important;
  overflow:hidden!important;border:0!important;background:transparent!important;
}
.calendar-brand{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:1.4em}
.calendar-brand #calendar-label-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.15em;line-height:1}
.calendar-window{position:relative!important;display:block!important;width:100%!important;min-width:0!important;max-width:none!important;height:1.8em!important;overflow:hidden!important;white-space:nowrap!important;contain:layout paint!important;border:0!important;background:transparent!important;padding:0!important;margin:0!important}
.calendar-track{position:absolute!important;left:0!important;top:0!important;display:inline-flex!important;align-items:center!important;height:100%!important;width:max-content!important;min-width:max-content!important;max-width:none!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;transform:translate3d(0,0,0);visibility:hidden;line-height:1.45!important;padding:0!important;margin:0!important;animation:none!important;will-change:transform}
.calendar-track .calendar-item{display:inline-block!important;width:max-content!important;min-width:max-content!important;max-width:none!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;padding:0!important;margin:0!important}
.calendar-meta-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0;white-space:nowrap}
.calendar-count{font-size:.72em;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.calendar-state-compact{display:none!important}
.calendar-settings-button{flex:0 0 auto;width:32px!important;height:32px!important;min-width:32px!important;padding:0!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
#calendar-speed-panel.calendar-speed-panel{width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important;padding:10px!important;margin:7px 0 0!important;box-sizing:border-box!important}
.google-calendar-panel-head,.google-calendar-connect-grid,.google-calendar-admin-config{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
.google-calendar-admin-config{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))!important}
.google-calendar-admin-config label,.google-calendar-admin-config select,.google-calendar-admin-config input,.google-calendar-admin-config button{min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important}
@media (max-width:680px){.calendar-ticker{grid-template-columns:auto minmax(0,1fr) auto!important;gap:4px!important;padding:4px 5px!important;min-height:44px!important}
.calendar-count{font-size:9px!important;max-width:74px;overflow:hidden;text-overflow:ellipsis}
.calendar-settings-button{width:29px!important;height:29px!important;min-width:29px!important}
.google-calendar-admin-config,.google-calendar-connect-grid{grid-template-columns:1fr!important}}
@media (max-width:390px){.calendar-count{max-width:56px;font-size:8px!important}
.calendar-brand{min-width:1.1em}
.calendar-ticker{gap:3px!important}}
.guest-notify-settings{display:grid;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.webpush-tag-row{grid-template-columns:minmax(80px,.65fr) 42px auto minmax(140px,1.35fr) auto!important}
.webpush-tag-row [data-push-message]{min-width:0;width:100%}
@media (max-width:620px){.webpush-tag-row{grid-template-columns:minmax(0,1fr) 42px auto!important}
.webpush-tag-row [data-push-message]{grid-column:1/-1}
.webpush-tag-row button{grid-column:1/-1}}
.market-gas-more{margin:2px 0 0;border-top:1px dashed var(--line);padding-top:2px}
.market-gas-more>summary{cursor:pointer;font-size:10px;font-weight:800;color:var(--muted);list-style:none;padding:3px 0}
.market-gas-more>summary::-webkit-details-marker{display:none}
.market-gas-more>summary::after{content:" ⌄"}
.market-gas-more[open]>summary::after{content:" ⌃"}
.market-gas-hcm{font-weight:800}
.calendar-ticker .calendar-window{position:relative!important;display:block!important;width:100%!important;min-width:0!important;max-width:none!important;height:1.8em!important;overflow:hidden!important;white-space:nowrap!important;contain:layout paint!important;border:0!important;background:transparent!important;padding:0!important;margin:0!important}
.calendar-ticker .calendar-track{position:absolute!important;left:0!important;top:0!important;display:inline-flex!important;align-items:center!important;height:100%!important;width:max-content!important;min-width:max-content!important;max-width:none!important;overflow:visible!important;text-align:left!important;white-space:nowrap!important;padding:0!important;margin:0!important;animation:none!important;transition:none;will-change:transform}
.calendar-ticker .calendar-track .calendar-item{display:inline-block!important;width:max-content!important;min-width:max-content!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;padding:0!important;margin:0!important}
.calendar-day-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:800;min-width:3.8em;font-variant-numeric:tabular-nums}
.birthday-event-panel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;overflow:hidden;padding:10px 14px;margin-top:14px}
.birthday-event-label{font-weight:800;white-space:nowrap}
.birthday-event-window{position:relative;min-width:0;overflow:hidden;height:34px;display:flex;align-items:center}
.birthday-event-track{position:absolute;left:0;top:50%;transform:translateY(-50%);white-space:nowrap;width:max-content;will-change:transform;font-weight:650;max-width:none}
.birthday-event-actions{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:.9em}
.birthday-name,.birthday-date{font-weight:900}
.birthday-name-blink{animation:birthday-name-blink 1s steps(2,end) infinite}
@keyframes birthday-name-blink{50%{opacity:.18}}
.birthday-event-empty{opacity:.68;font-weight:500}
.birthday-config-body{display:grid;gap:10px}
.birthday-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.birthday-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.birthday-settings-grid>label{min-width:0}
.tag-auto-row{grid-template-columns:minmax(110px,.7fr) minmax(220px,2fr) auto!important}
@media (max-width:760px){.birthday-event-panel{grid-template-columns:auto minmax(0,1fr) auto;gap:7px;padding:9px 10px;min-height:52px}
.birthday-event-label{font-size:.9em}
.birthday-event-actions{font-size:.78em;gap:4px}
.birthday-event-window{height:30px}
.birthday-settings-grid{grid-template-columns:1fr 1fr}
.birthday-upload-row{grid-template-columns:1fr}}
@media (max-width:430px){.birthday-event-panel{grid-template-columns:auto minmax(0,1fr) auto;gap:4px;padding-inline:7px}
.birthday-event-label{font-size:.78em;max-width:54px;overflow:hidden;text-overflow:ellipsis}
.birthday-event-actions{font-size:.68em;gap:2px}
.birthday-settings-grid{grid-template-columns:1fr}
.tag-auto-row{grid-template-columns:1fr!important}}
.calendar-day-badge{min-width:1.75em!important;width:1.75em!important;padding:0!important;font-size:1.12em!important;line-height:1!important;text-align:center!important}
.birthday-event-panel{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;min-height:54px!important;height:auto!important;padding:8px 10px!important;overflow:hidden!important}
.birthday-event-panel[hidden]{display:none!important}
.birthday-event-label{display:flex!important;align-items:center!important;justify-content:center!important;width:38px!important;height:34px!important;min-width:38px!important;font-size:24px!important;line-height:1!important;overflow:visible!important;max-width:none!important}
.birthday-event-window{height:34px!important;min-width:0!important;display:flex!important;align-items:center!important;overflow:hidden!important}
.birthday-event-track{top:50%!important;line-height:1.35!important;display:inline-flex!important;align-items:center!important;min-height:30px!important}
.birthday-event-item{display:inline-flex!important;align-items:center!important;line-height:1.35!important;white-space:nowrap!important}
.birthday-event-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;height:34px!important;margin:0!important;font-size:inherit!important}
.birthday-event-date-picker{width:126px!important;max-width:126px!important;height:32px!important;box-sizing:border-box!important;padding:3px 5px!important;margin:0!important;border:1px solid var(--line)!important;border-radius:8px!important;background:var(--panel)!important;color:inherit!important;font:inherit!important;font-size:12px!important;line-height:1!important}
.birthday-event-actions .section-admin-gear{position:static!important;inset:auto!important;transform:none!important;flex:0 0 auto!important;margin:0!important;width:32px!important;height:32px!important;min-width:32px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.birthday-days-number,.birthday-date{font-weight:900!important}
@media (max-width:620px){.birthday-event-panel{grid-template-columns:34px minmax(0,1fr) auto!important;gap:5px!important;padding:7px!important;min-height:50px!important}
.birthday-event-label{width:34px!important;min-width:34px!important;height:32px!important;font-size:21px!important}
.birthday-event-actions{height:32px!important;gap:3px!important}
.birthday-event-date-picker{width:108px!important;max-width:108px!important;height:30px!important;font-size:10px!important;padding-inline:3px!important}
.birthday-event-actions .section-admin-gear{width:30px!important;height:30px!important;min-width:30px!important}
.birthday-event-window{height:32px!important}}
@media (max-width:390px){.birthday-event-panel{grid-template-columns:30px minmax(0,1fr) auto!important;gap:3px!important;padding:6px 5px!important}
.birthday-event-label{width:30px!important;min-width:30px!important;font-size:19px!important}
.birthday-event-date-picker{width:98px!important;max-width:98px!important;font-size:9px!important}}
.birthday-event-item{
  display:inline-block!important;
  white-space:nowrap!important;
  line-height:1.35!important;
  vertical-align:middle!important;
}
.birthday-today-lead,.birthday-days-number,.birthday-name,.birthday-date{font-weight:900!important}
.birthday-event-empty{display:inline-block!important;white-space:nowrap!important;font-weight:600!important;opacity:.78!important}
.birthday-event-actions{gap:2px!important}
.birthday-event-date-picker{
  width:112px!important;
  max-width:112px!important;
  height:30px!important;
  padding:2px 3px!important;
  font-size:10px!important;
}
.birthday-event-actions .section-admin-gear{margin-left:0!important}
.calendar-day-badge{
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:1px!important;
  width:auto!important;
  min-width:42px!important;
  padding:0 2px!important;
  white-space:nowrap!important;
  font-weight:900!important;
  font-variant-numeric:tabular-nums!important;
  line-height:1!important;
}
.calendar-day-main{font-weight:950!important;font-size:1.22em!important;line-height:1!important}
.calendar-month-sub{font-weight:900!important;font-size:.64em!important;line-height:1!important;position:relative;bottom:-.22em}
.calendar-year-sup{font-weight:900!important;font-size:.58em!important;line-height:1!important;position:relative;top:-.34em}
@media (max-width:560px){.birthday-event-panel{grid-template-columns:28px minmax(0,1fr) auto!important;gap:3px!important;padding:6px!important}
.birthday-event-label{width:28px!important;min-width:28px!important;font-size:18px!important}
.birthday-event-date-picker{width:94px!important;max-width:94px!important;height:28px!important;font-size:8.5px!important}
.birthday-event-actions .section-admin-gear{width:28px!important;height:28px!important;min-width:28px!important}
.birthday-event-empty{font-size:.86em!important}
.calendar-day-badge{min-width:36px!important}}
.birthday-event-actions{gap:1px!important}
.birthday-event-date-picker{margin-right:-1px!important}
@media (max-width:560px){.birthday-event-actions{gap:0!important}
.birthday-event-date-picker{margin-right:-2px!important}}
.notification-app-settings{margin-top:8px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.notification-app-settings>summary{cursor:pointer;padding:10px 12px;font-weight:800}
.notification-app-body{display:grid;gap:10px;padding:10px}
.notification-channel-card{border:1px solid var(--line);border-radius:10px;padding:10px;min-width:0}
.notification-channel-card h4{margin:0 0 8px;font-size:1em}
.notification-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.notification-category-grid label{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}
@media (max-width:520px){.notification-category-grid{grid-template-columns:1fr}
.notification-app-body{padding:7px}
.notification-channel-card{padding:8px}}
#obsl-toast-stack{
  position:fixed;left:50%;bottom:max(62px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:12050;
  width:100vw;max-height:min(72vh,620px);overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;gap:7px;align-items:center;pointer-events:none;padding:4px 6px;
  box-sizing:border-box;scrollbar-width:thin;
}
.obsl-toast-item{
  position:relative;pointer-events:auto;width:auto;max-width:calc(100vw - 12px);min-width:160px;min-height:42px;box-sizing:border-box;
  display:flex;align-items:center;justify-content:flex-start;overflow:hidden;white-space:nowrap!important;
  border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:0 5px 16px rgba(0,0,0,.15);
  touch-action:pan-y;user-select:none;-webkit-user-select:none;
}
.obsl-toast-item.no-frame{border:0;box-shadow:none;background:transparent}
.obsl-toast-item-track{
  display:inline-block;flex:0 0 auto;width:max-content;max-width:none;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;
  line-height:1.15;padding:9px 14px;font-size:clamp(12px,1.35vw,17px);font-weight:650;text-align:left;
  will-change:transform;transform:translateX(0);font-variant-numeric:tabular-nums;
}
.obsl-toast-item-track .obsl-notify-tag{font-weight:900!important;white-space:nowrap!important}
.obsl-notify-tag-blink{animation:obslTagBlink .72s steps(2,end) infinite!important}
.obsl-toast-whole-blink{animation:obslTagBlink .72s steps(2,end) infinite!important}
.obsl-toast-css-rtl{animation:obslToastRtl var(--toast-duration,10s) linear forwards}
.obsl-toast-css-ltr{animation:obslToastLtr var(--toast-duration,10s) linear forwards}
@keyframes obslTagBlink{50%{opacity:.18}}
@keyframes obslToastRtl{from{transform:translateX(var(--toast-from,0px))}
to{transform:translateX(var(--toast-to,-100%))}}
@keyframes obslToastLtr{from{transform:translateX(var(--toast-from,0px))}
to{transform:translateX(var(--toast-to,100%))}}
@media (max-width:640px){#obsl-toast-stack{bottom:max(56px,env(safe-area-inset-bottom));gap:5px;padding-inline:4px}
.obsl-toast-item{max-width:calc(100vw - 8px);min-width:150px;min-height:38px;border-radius:10px}
.obsl-toast-item-track{padding:7px 10px;font-size:12px}}
.event-notification-rule-list{display:grid;gap:9px;min-width:0;max-width:100%;overflow:hidden}
.event-notification-rule-row{
  display:grid;grid-template-columns:minmax(120px,1fr) 74px minmax(110px,auto) auto;
  grid-template-areas:"tag color blink del" "toast toast toast toast" "push push push push";
  gap:7px;align-items:end;border:1px solid var(--line);border-radius:10px;padding:9px;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;
}
.event-notification-rule-row label{display:grid;gap:4px;min-width:0;max-width:100%;font-size:10px;font-weight:800}
.event-notification-rule-row input{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.event-notification-rule-row input[type=color]{min-height:34px;padding:2px}
.event-rule-tag{grid-area:tag}
.event-rule-color{grid-area:color}
.event-rule-check{grid-area:blink}
.event-rule-delete{grid-area:del}
.event-rule-toast{grid-area:toast}
.event-rule-push{grid-area:push}
.event-rule-check{align-self:center!important;display:flex!important;align-items:center;gap:5px;white-space:nowrap}
.event-rule-check input{width:auto!important;flex:0 0 auto}
.event-rule-delete{min-width:56px;max-width:100%;align-self:end}
.event-notification-add{margin-top:8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;min-width:0}
.event-notification-add input{min-width:0;width:100%;box-sizing:border-box}
@media (max-width:700px){.event-notification-rule-row{grid-template-columns:minmax(0,1fr) 68px;grid-template-areas:"tag color" "blink del" "toast toast" "push push"}
.event-rule-delete{width:100%}
.event-rule-check{min-height:34px}}
@media (max-width:430px){.event-notification-rule-row{padding:7px;gap:6px;grid-template-columns:minmax(0,1fr) 58px}
.event-notification-rule-row label{font-size:9px}
.event-notification-add{grid-template-columns:1fr}
.event-notification-add button{width:100%}}
#obsl-toast-stack{
  gap:5px!important;
  padding:2px 4px!important;
  max-height:min(68vh,560px)!important;
}
.obsl-toast-item{
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  border-radius:10px!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0!important;
}
.obsl-toast-item-track{
  padding:5px 10px!important;
  line-height:1.05!important;
  font-size:clamp(11px,1.2vw,16px)!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
}
@media (max-width:640px){#obsl-toast-stack{gap:4px!important;padding:2px!important}
.obsl-toast-item{border-radius:8px!important;max-width:calc(100vw - 6px)!important}
.obsl-toast-item-track{padding:4px 8px!important;font-size:11.5px!important;line-height:1.02!important}}
#obsl-toast-stack{
  width:100vw!important;
  max-width:100vw!important;
  gap:4px!important;
  padding:2px 3px!important;
}
.obsl-toast-item{
  width:fit-content;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  max-width:calc(100vw - 8px)!important;
  padding:0!important;
  border-radius:8px!important;
  line-height:1!important;
}
.obsl-toast-item-track{
  display:inline-block!important;
  width:max-content!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  padding:3px 8px!important;
  margin:0!important;
  line-height:1.08!important;
  font-size:clamp(11px,1.15vw,15px)!important;
  white-space:nowrap!important;
}
@media (max-width:640px){#obsl-toast-stack{gap:3px!important;padding:1px 2px!important}
.obsl-toast-item{max-width:calc(100vw - 4px)!important;border-radius:7px!important}
.obsl-toast-item-track{padding:3px 7px!important;font-size:11px!important;line-height:1.05!important}}
.birthday-event-panel{grid-template-columns:28px minmax(0,1fr) auto!important;gap:4px!important;padding:6px 8px!important;min-height:46px!important}
.birthday-event-label{width:28px!important;min-width:28px!important;height:28px!important;font-size:18px!important}
.birthday-event-window{height:30px!important}
.birthday-event-actions{justify-content:flex-start!important;gap:2px!important;min-width:0!important}
.birthday-event-date-picker{width:112px!important;max-width:112px!important;height:30px!important;padding:2px 4px!important;margin-right:0!important;border-radius:8px!important}
.birthday-event-actions .section-admin-gear{width:30px!important;height:30px!important;min-width:30px!important}
@media (max-width:640px){.birthday-event-panel{grid-template-columns:24px minmax(0,1fr) auto!important;gap:3px!important;padding:6px!important}
.birthday-event-label{width:24px!important;min-width:24px!important;height:24px!important;font-size:16px!important}
.birthday-event-date-picker{width:102px!important;max-width:102px!important;height:28px!important;font-size:10px!important}
.birthday-event-actions .section-admin-gear{width:28px!important;height:28px!important;min-width:28px!important}}
.obsl-toast-item{display:flex!important;align-items:stretch!important;overflow:hidden!important}
.obsl-toast-content{flex:1 1 auto;min-width:0;overflow:hidden;display:flex;align-items:center}
.obsl-toast-close{
  flex:0 0 24px;width:24px;min-width:24px;align-self:stretch;border:0;border-left:1px solid var(--line);
  background:transparent;color:inherit;font:700 16px/1 system-ui,-apple-system,"Segoe UI",sans-serif;
  display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;cursor:pointer;touch-action:manipulation;
}
.obsl-toast-item.no-frame .obsl-toast-close{border-left:0}
.obsl-toast-close:active{transform:scale(.92)}
@media (max-width:640px){.obsl-toast-close{flex-basis:22px;width:22px;min-width:22px;font-size:15px}}
#obsl-toast-stack{position:fixed!important;left:0!important;right:0!important;bottom:max(56px,env(safe-area-inset-bottom))!important;z-index:2147483200!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important;pointer-events:none!important;width:100vw!important;max-width:100vw!important;padding:2px 3px!important;box-sizing:border-box!important}
.obsl-toast-item{display:flex!important;align-items:stretch!important;justify-content:flex-start!important;box-sizing:border-box!important;width:auto;min-width:174px!important;max-width:calc(100vw - 8px)!important;min-height:0!important;height:auto!important;padding:0!important;overflow:hidden!important;pointer-events:auto!important;border-radius:9px!important}
.obsl-toast-content{position:relative!important;display:block!important;flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;white-space:nowrap!important}
.obsl-toast-item-track{position:relative!important;display:inline-block!important;width:max-content!important;max-width:none!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:5px 8px!important;white-space:nowrap!important;line-height:1.08!important;animation:none!important;will-change:transform!important}
.obsl-toast-close{position:relative!important;z-index:2!important;flex:0 0 25px!important;width:25px!important;min-width:25px!important;align-self:stretch!important;border:0!important;border-left:1px solid var(--line)!important;border-radius:0!important;background:var(--panel)!important;color:inherit!important;padding:0!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.obsl-toast-item.no-frame .obsl-toast-close{background:transparent!important;border-left:0!important}
.obsl-toast-item-track.obsl-toast-css-rtl,.obsl-toast-item-track.obsl-toast-css-ltr{animation:none!important}
.birthday-event-panel{grid-template-columns:24px minmax(0,1fr) auto!important;gap:3px!important;padding:5px 7px!important;min-height:44px!important}
.birthday-event-label{width:24px!important;min-width:24px!important;height:26px!important;font-size:17px!important}
.birthday-event-window{height:29px!important}
.birthday-event-actions{height:29px!important;gap:2px!important;margin:0!important}
.birthday-event-date-picker{box-sizing:border-box!important;width:100px!important;max-width:100px!important;height:29px!important;padding:1px 2px 1px 4px!important;margin:0!important;font-size:11px!important;letter-spacing:-.15px!important}
.birthday-event-date-picker::-webkit-calendar-picker-indicator{margin:0!important;padding:1px!important;width:15px!important;height:15px!important}
.birthday-event-actions .section-admin-gear{width:29px!important;height:29px!important;min-width:29px!important}
#event-section-editor .event-admin-motion-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
#event-section-editor select,#event-section-editor input{max-width:100%!important;box-sizing:border-box!important}
@media (max-width:640px){.obsl-toast-item{min-width:154px!important;max-width:calc(100vw - 4px)!important}
.obsl-toast-item-track{padding:4px 7px!important;font-size:11px!important}
.obsl-toast-close{flex-basis:23px!important;width:23px!important;min-width:23px!important}
.birthday-event-panel{grid-template-columns:22px minmax(0,1fr) auto!important;padding:5px!important;gap:2px!important}
.birthday-event-label{width:22px!important;min-width:22px!important;font-size:16px!important}
.birthday-event-date-picker{width:94px!important;max-width:94px!important;height:27px!important;font-size:10px!important;padding-left:3px!important}
.birthday-event-actions .section-admin-gear{width:27px!important;height:27px!important;min-width:27px!important}
#event-section-editor .event-admin-motion-grid{grid-template-columns:1fr!important}}
#obsl-toast-stack{overflow:hidden!important;contain:layout style!important}
.obsl-toast-item{position:relative!important;left:auto!important;right:auto!important;margin-left:auto!important;margin-right:auto!important;touch-action:pan-y!important;max-width:calc(100vw - 8px)!important}
.obsl-toast-content{overflow:hidden!important}
#obsl-toast-stack{
  position:fixed!important;
  inset:auto 0 max(56px,env(safe-area-inset-bottom)) 0!important;
  width:100vw!important;
  max-width:100vw!important;
  margin:0!important;
  transform:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-end!important;
  overflow:hidden!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
}
.obsl-toast-item{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  margin-left:auto!important;
  margin-right:auto!important;
  flex:none!important;
  pointer-events:auto!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  touch-action:pan-y!important;
}
.obsl-toast-content{position:relative!important;min-width:0!important;overflow:hidden!important;contain:paint!important}
.obsl-toast-item-track{position:relative!important;left:0!important;right:auto!important;margin:0!important;white-space:nowrap!important}
.obsl-toast-item.is-swipe-detecting{cursor:grabbing}
:root{--obsl-toast-fixed-width:min(560px,calc(100vw - 12px))}
#obsl-toast-stack{width:100vw!important;max-width:100vw!important;align-items:center!important;padding-inline:6px!important;overflow:hidden!important}
#obsl-toast-stack>.obsl-toast-item{
  width:var(--obsl-toast-fixed-width)!important;
  min-width:var(--obsl-toast-fixed-width)!important;
  max-width:var(--obsl-toast-fixed-width)!important;
  margin-left:auto!important;margin-right:auto!important;
  transform:none;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-content{width:auto!important;flex:1 1 auto!important;min-width:0!important;overflow:hidden!important}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{flex:0 0 28px!important;width:28px!important;min-width:28px!important}
@media (max-width:640px){:root{--obsl-toast-fixed-width:calc(100vw - 8px)}
#obsl-toast-stack{padding-inline:4px!important}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{flex-basis:26px!important;width:26px!important;min-width:26px!important}}
:root{--obsl-toast-fixed-width:clamp(210px,42vw,340px);--obsl-toast-font-size:13px}
#obsl-toast-stack>.obsl-toast-item{
  width:var(--obsl-toast-fixed-width)!important;
  min-width:var(--obsl-toast-fixed-width)!important;
  max-width:var(--obsl-toast-fixed-width)!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-content{min-width:0!important;overflow:hidden!important}
#obsl-toast-stack>.obsl-toast-item .obsl-toast-item-track{
  font-size:var(--obsl-toast-font-size)!important;
  line-height:1.08!important;
  padding:5px 7px!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{flex:0 0 26px!important;width:26px!important;min-width:26px!important}
@media (max-width:640px){:root{--obsl-toast-fixed-width:clamp(210px,54vw,280px)}
#obsl-toast-stack{padding-inline:3px!important}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{flex-basis:24px!important;width:24px!important;min-width:24px!important}}
@media (max-width:340px){:root{--obsl-toast-fixed-width:210px}}
.google-calendar-admin-config .google-calendar-wide{grid-column:1/-1!important;width:100%!important;min-width:0!important}
.google-calendar-admin-config .google-calendar-wide input{width:100%!important;min-width:0!important;box-sizing:border-box!important}
#birthday-event-editor{display:none!important}
.upcoming-box .upcoming-slide{
  font-family:inherit!important;
  font-size:inherit!important;
}
.event-frame .calendar-ticker{
  border:2px solid var(--line)!important;
  border-radius:10px!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 5%,transparent)!important;
  padding:3px 6px!important;
  background:var(--panel)!important;
}
@supports not (color:color-mix(in srgb,black 50%,white)){.event-frame .calendar-ticker{box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)!important}}
#weather-admin-editor{display:none!important;visibility:hidden!important}
.now-panel{padding-bottom:10px!important}
.now-panel{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(150px,.9fr) minmax(220px,1.1fr)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  align-items:center!important;
  gap:clamp(8px,1.4vw,18px)!important;
  padding:clamp(12px,1.8vw,20px)!important;
  padding-bottom:clamp(12px,1.8vw,20px)!important;
  min-width:0!important;
}
.now-panel .temperature{grid-area:temp!important;min-width:0!important;text-align:center!important;font-size:clamp(58px,8.2vw,108px)!important;line-height:.9!important}
.now-panel .weather-summary{grid-area:summary!important;min-width:0!important;align-self:center!important}
.now-panel .weather-desc{font-size:clamp(18px,2.1vw,28px)!important;line-height:1.15!important;overflow-wrap:anywhere!important}
.now-panel .weather-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(5px,.8vw,10px) clamp(8px,1.4vw,20px)!important;min-width:0!important}
.now-panel .weather-meta span{min-width:0!important;white-space:normal!important;line-height:1.25!important}
.now-panel .weather-updated-status{
  grid-area:updated!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  margin:2px 0 0!important;
  padding:0!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:clamp(9px,1.2vw,12px)!important;
  line-height:1.2!important;
}
#weather-admin-editor{display:none!important;visibility:hidden!important;pointer-events:none!important}
@media (max-width:760px){.weather-grid{grid-template-columns:1fr!important}
.now-panel{grid-template-columns:minmax(120px,.82fr) minmax(170px,1.18fr)!important;gap:8px!important;padding:11px!important}
.now-panel .temperature{font-size:clamp(54px,18vw,88px)!important}
.now-panel .weather-desc{font-size:clamp(17px,5vw,24px)!important}
.now-panel .weather-meta{font-size:clamp(12px,3.4vw,15px)!important;gap:6px 9px!important}}
@media (max-width:430px){.now-panel{grid-template-columns:1fr!important;grid-template-areas:"temp" "summary" "updated"!important;text-align:center!important}
.now-panel .temperature{font-size:clamp(68px,26vw,104px)!important}
.now-panel .weather-summary{text-align:center!important}
.now-panel .weather-meta{max-width:330px!important;margin:8px auto 0!important;text-align:left!important}
.now-panel .weather-updated-status{white-space:normal!important}}
.now-panel .weather-summary{display:grid!important;grid-template-rows:auto auto!important;gap:clamp(10px,1.2vw,16px)!important;width:100%!important;min-width:0!important}
.now-panel .weather-desc{font-size:clamp(22px,2.5vw,34px)!important;font-weight:900!important;line-height:1.12!important;text-align:center!important;white-space:normal!important}
.now-panel .weather-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(34px,auto)!important;gap:clamp(8px,1vw,14px) clamp(12px,1.6vw,24px)!important;width:100%!important;margin:0!important;font-size:clamp(15px,1.55vw,20px)!important;align-items:center!important}
.now-panel .weather-meta span{display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:8px!important;width:100%!important;min-width:0!important;padding:2px 0!important;line-height:1.25!important;white-space:nowrap!important}
.now-panel .weather-meta b{font-size:1.08em!important;flex:0 0 auto!important}
@media (min-width:1200px){.now-panel .weather-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:760px){.now-panel .weather-desc{font-size:clamp(21px,5.8vw,30px)!important}
.now-panel .weather-meta{font-size:clamp(14px,3.9vw,18px)!important;gap:8px 14px!important}}
@media (max-width:430px){.now-panel .weather-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:100%!important;margin:6px 0 0!important;text-align:initial!important;gap:8px 10px!important}
.now-panel .weather-meta span{white-space:normal!important;align-items:center!important}}
.now-panel{
  position:relative!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  grid-template-areas:"temp summary"!important;
  align-items:center!important;
  column-gap:clamp(12px,1.5vw,20px)!important;
  row-gap:0!important;
  padding:clamp(12px,1.7vw,18px)!important;
  padding-bottom:52px!important;
  min-width:0!important;
}
.now-panel .temperature{
  grid-area:temp!important;
  min-width:0!important;
  text-align:left!important;
  font-size:clamp(58px,9vw,110px)!important;
  line-height:.9!important;
}
.now-panel .weather-summary{
  grid-area:summary!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  align-self:center!important;
  transform:translateY(-10px)!important;
}
.now-panel .weather-desc{
  font-size:clamp(20px,2.2vw,30px)!important;
  font-weight:900!important;
  line-height:1.1!important;
  text-align:left!important;
  white-space:normal!important;
  margin:0 0 10px!important;
}
.now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px clamp(12px,1.6vw,24px)!important;
  width:100%!important;
  margin:0!important;
  font-size:clamp(14px,1.5vw,19px)!important;
  align-items:center!important;
}
.now-panel .weather-meta span{
  display:block!important;
  min-width:0!important;
  padding:0!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}
.now-panel .weather-meta b{font-size:1.08em!important;color:var(--text)!important}
.now-panel .weather-updated-status{
  position:absolute!important;
  left:12px!important;
  right:12px!important;
  bottom:10px!important;
  transform:none!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:clamp(10px,1.15vw,12px)!important;
  line-height:1.2!important;
  z-index:2!important;
}
#weather-admin-editor{display:none!important;visibility:hidden!important;pointer-events:none!important}
@media (max-width:760px){.weather-grid{grid-template-columns:1fr!important}
.now-panel{grid-template-columns:auto minmax(0,1fr)!important;padding-bottom:48px!important;column-gap:10px!important}
.now-panel .temperature{font-size:clamp(56px,18vw,90px)!important}
.now-panel .weather-summary{transform:translateY(-8px)!important}
.now-panel .weather-desc{font-size:clamp(18px,5vw,25px)!important;margin-bottom:8px!important}
.now-panel .weather-meta{font-size:clamp(12px,3.5vw,16px)!important;gap:7px 12px!important}}
@media (max-width:430px){.now-panel{grid-template-columns:minmax(112px,.85fr) minmax(0,1.15fr)!important;grid-template-areas:"temp summary"!important;text-align:left!important;padding:10px 10px 46px!important}
.now-panel .temperature{font-size:clamp(54px,20vw,82px)!important;text-align:left!important}
.now-panel .weather-summary{text-align:left!important;transform:translateY(-7px)!important}
.now-panel .weather-desc{font-size:clamp(17px,5vw,23px)!important;text-align:left!important}
.now-panel .weather-meta{grid-template-columns:1fr 1fr!important;font-size:clamp(11px,3.2vw,14px)!important;gap:6px 8px!important}
.now-panel .weather-meta span{white-space:normal!important}
.now-panel .weather-updated-status{left:8px!important;right:8px!important;bottom:8px!important;font-size:9px!important}}
.now-panel{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(118px,.86fr) minmax(190px,1.14fr)!important;
  grid-template-areas:"temp summary"!important;
  align-items:center!important;
  column-gap:clamp(10px,1.35vw,18px)!important;
  padding:clamp(12px,1.55vw,18px)!important;
  padding-bottom:clamp(62px,7vw,78px)!important;
  min-width:0!important;
  overflow:hidden!important;
}
.now-panel .temperature{
  grid-area:temp!important;
  align-self:center!important;
  text-align:center!important;
  font-size:clamp(62px,9vw,112px)!important;
  line-height:.86!important;
  margin:0!important;
}
.now-panel .weather-summary{
  grid-area:summary!important;
  display:block!important;
  min-width:0!important;
  width:100%!important;
  align-self:center!important;
  transform:translateY(-16px)!important;
}
.now-panel .weather-desc{
  margin:0 0 clamp(10px,1vw,14px)!important;
  font-size:clamp(21px,2.3vw,31px)!important;
  line-height:1.08!important;
  font-weight:900!important;
  text-align:left!important;
  white-space:normal!important;
}
.now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(8px,1vw,12px) clamp(14px,1.5vw,22px)!important;
  width:100%!important;
  margin:0!important;
  font-size:clamp(14px,1.45vw,19px)!important;
}
.now-panel .weather-meta span{
  display:block!important;
  min-width:0!important;
  line-height:1.22!important;
  white-space:nowrap!important;
}
.now-panel .weather-meta b{font-size:1.08em!important;font-weight:900!important}
.now-panel .weather-updated-status{
  position:absolute!important;
  left:12px!important;right:12px!important;bottom:14px!important;
  width:auto!important;margin:0!important;padding:0!important;
  text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  font-size:clamp(10px,1.15vw,13px)!important;line-height:1.2!important;
}
@media (max-width:900px){.now-panel{grid-template-columns:minmax(112px,.82fr) minmax(170px,1.18fr)!important;padding-bottom:62px!important;column-gap:9px!important}
.now-panel .temperature{font-size:clamp(58px,12vw,92px)!important}
.now-panel .weather-summary{transform:translateY(-14px)!important}
.now-panel .weather-desc{font-size:clamp(18px,3.2vw,25px)!important;margin-bottom:9px!important}
.now-panel .weather-meta{font-size:clamp(12px,2.2vw,16px)!important;gap:7px 10px!important}}
@media (max-width:560px){.weather-grid{grid-template-columns:1fr!important}
.now-panel{grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr)!important;padding:10px 10px 58px!important;column-gap:8px!important}
.now-panel .temperature{font-size:clamp(54px,19vw,84px)!important;text-align:center!important}
.now-panel .weather-summary{transform:translateY(-12px)!important}
.now-panel .weather-desc{font-size:clamp(17px,5vw,23px)!important;margin-bottom:8px!important}
.now-panel .weather-meta{font-size:clamp(11px,3.2vw,14px)!important;gap:6px 8px!important}
.now-panel .weather-meta span{white-space:normal!important}
.now-panel .weather-updated-status{left:8px!important;right:8px!important;bottom:10px!important;font-size:9.5px!important}}
#weather-admin-editor{display:none!important;visibility:hidden!important;pointer-events:none!important}
.obsl-toast-item{display:flex!important;align-items:stretch!important}
.obsl-toast-icon-lane{flex:0 0 calc(var(--obsl-toast-icon-size,24px) + 10px)!important;width:calc(var(--obsl-toast-icon-size,24px) + 10px)!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;padding-left:5px!important;box-sizing:border-box!important}
.obsl-toast-icon-lane[hidden]{display:none!important}
.obsl-toast-fixed-icon{width:var(--obsl-toast-icon-size,24px)!important;height:var(--obsl-toast-icon-size,24px)!important;object-fit:cover!important;border-radius:5px!important;display:block!important;flex:none!important}
.obsl-toast-content{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important}
.obsl-toast-close{flex:none!important}
#script-tools-group textarea,#popup-tools-group textarea{width:100%!important;min-height:90px!important;resize:vertical!important;box-sizing:border-box!important;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace!important}
#popup-tools-group input,#popup-tools-group select,#script-tools-group input{max-width:100%!important;box-sizing:border-box!important}
#obsl-popup-layer{position:fixed;inset:0;z-index:2147482500;pointer-events:none;display:flex;padding:12px;box-sizing:border-box}
#obsl-popup-layer.has-backdrop{background:rgba(0,0,0,.34);pointer-events:auto}
#obsl-popup-layer.pos-center{align-items:center;justify-content:center}
#obsl-popup-layer.pos-top{align-items:flex-start;justify-content:center}
#obsl-popup-layer.pos-bottom{align-items:flex-end;justify-content:center}
#obsl-popup-layer.pos-bottom-right{align-items:flex-end;justify-content:flex-end}
#obsl-popup-layer.pos-bottom-left{align-items:flex-end;justify-content:flex-start}
.obsl-popup-card{position:relative;width:min(var(--popup-width,420px),calc(100vw - 24px));max-height:min(82vh,720px);overflow:auto;background:var(--panel,#fff);color:var(--text,#111);border:1px solid var(--line,#ccc);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.24);padding:16px;pointer-events:auto;box-sizing:border-box}
.obsl-popup-card.type-promotion{border-width:2px}
.obsl-popup-card.type-notification{border-left-width:5px}
.obsl-popup-card h3{margin:0 34px 10px 0;font-size:1.25em}
.obsl-popup-image{display:block;max-width:100%;max-height:280px;object-fit:contain;margin:0 auto 12px;border-radius:10px}
.obsl-popup-content{line-height:1.5;overflow-wrap:anywhere}
.obsl-popup-close{position:absolute;right:7px;top:7px;width:30px;height:30px;border:1px solid var(--line,#ccc);border-radius:50%;background:var(--panel,#fff);font-size:20px;cursor:pointer}
.obsl-popup-action{display:inline-flex;margin-top:12px;padding:9px 14px;border-radius:9px;text-decoration:none;background:#1769d1;color:#fff;font-weight:800}
.obsl-popup-card.effect-fade{animation:obslPopupFade .22s ease-out}
.obsl-popup-card.effect-scale{animation:obslPopupScale .22s ease-out}
.obsl-popup-card.effect-slide-up{animation:obslPopupSlide .25s ease-out}
@keyframes obslPopupFade{from{opacity:0}
to{opacity:1}}
@keyframes obslPopupScale{from{opacity:0;transform:scale(.92)}
to{opacity:1;transform:none}}
@keyframes obslPopupSlide{from{opacity:0;transform:translateY(30px)}
to{opacity:1;transform:none}}
@media (max-width:520px){.obsl-popup-card{padding:13px;border-radius:11px}
.obsl-popup-card h3{font-size:1.12em}}
.now-panel{
  position:relative!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  align-items:center!important;
  gap:clamp(10px,1.4vw,18px) clamp(12px,1.8vw,24px)!important;
  padding:clamp(12px,1.55vw,18px)!important;
  overflow:hidden!important;
  min-width:0!important;
}
.now-panel .temperature{
  grid-area:temp!important;
  align-self:center!important;
  justify-self:center!important;
  margin:0!important;
  text-align:center!important;
  font-size:clamp(62px,9vw,112px)!important;
  line-height:.88!important;
}
.now-panel .weather-summary{
  grid-area:summary!important;
  align-self:center!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  transform:none!important;
  text-align:left!important;
}
.now-panel .weather-desc{
  margin:0 0 clamp(8px,1vw,12px)!important;
  text-align:left!important;
  font-size:clamp(20px,2.25vw,31px)!important;
  line-height:1.1!important;
  font-weight:900!important;
  white-space:normal!important;
}
.now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(7px,.9vw,11px) clamp(12px,1.5vw,22px)!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  font-size:clamp(14px,1.45vw,19px)!important;
  color:var(--muted)!important;
}
.now-panel .weather-meta span{
  display:block!important;
  min-width:0!important;
  padding:0!important;
  line-height:1.22!important;
  white-space:nowrap!important;
}
.now-panel .weather-meta b{font-size:1.08em!important;font-weight:900!important;color:var(--text)!important}
.now-panel .weather-updated-status{
  grid-area:updated!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  margin:clamp(3px,.55vw,7px) 0 0!important;
  padding:0!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:clamp(10px,1.12vw,13px)!important;
  line-height:1.25!important;
  z-index:auto!important;
}
#weather-admin-editor{display:none!important;visibility:hidden!important;pointer-events:none!important}
@media (max-width:1100px){.now-panel{
    grid-template-columns:1fr!important;
    grid-template-areas:"temp" "summary" "updated"!important;
    row-gap:clamp(8px,1.2vw,14px)!important;
    text-align:center!important;
    padding:clamp(12px,2vw,20px)!important;
  }
.now-panel .temperature{
    font-size:clamp(76px,18vw,150px)!important;
    text-align:center!important;
  }
.now-panel .weather-summary{
    text-align:center!important;
  }
.now-panel .weather-desc{
    text-align:center!important;
    font-size:clamp(22px,4.6vw,34px)!important;
    margin-bottom:clamp(10px,1.6vw,16px)!important;
  }
.now-panel .weather-meta{
    max-width:min(720px,92%)!important;
    margin:0 auto!important;
    font-size:clamp(15px,2.7vw,23px)!important;
    gap:clamp(8px,1.4vw,15px) clamp(18px,4vw,54px)!important;
    text-align:left!important;
  }
.now-panel .weather-meta span{white-space:nowrap!important}
.now-panel .weather-updated-status{
    margin-top:clamp(6px,1.2vw,12px)!important;
    font-size:clamp(10px,2vw,14px)!important;
  }}
@media (max-width:560px){.weather-grid{grid-template-columns:1fr!important}
.now-panel{padding:12px 10px!important;row-gap:8px!important}
.now-panel .temperature{font-size:clamp(72px,27vw,116px)!important}
.now-panel .weather-desc{font-size:clamp(20px,7vw,28px)!important;margin-bottom:10px!important}
.now-panel .weather-meta{
    max-width:96%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    font-size:clamp(13px,4.2vw,17px)!important;
    gap:8px 14px!important;
  }
.now-panel .weather-meta span{white-space:normal!important}
.now-panel .weather-updated-status{font-size:10px!important;white-space:nowrap!important;margin-top:7px!important}}
@media (max-width:360px){.now-panel .temperature{font-size:clamp(66px,25vw,94px)!important}
.now-panel .weather-meta{font-size:12px!important;gap:6px 9px!important}
.now-panel .weather-updated-status{font-size:9px!important}}
#obsl-toast-stack{overflow:visible!important}
#obsl-toast-stack>.obsl-toast-item{
  position:relative!important;
  overflow:visible!important;
  align-items:center!important;
  width:var(--obsl-toast-fixed-width)!important;
  min-width:var(--obsl-toast-fixed-width)!important;
  max-width:var(--obsl-toast-fixed-width)!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-icon-lane{
  position:absolute!important;
  right:calc(100% + 8px)!important;
  left:auto!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:var(--obsl-toast-icon-size,24px)!important;
  height:var(--obsl-toast-icon-size,24px)!important;
  min-width:0!important;
  flex:none!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  pointer-events:none!important;
  z-index:3!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-icon-lane[hidden]{display:none!important}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-icon-lane>.obsl-toast-fixed-icon{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  display:block!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-content{
  position:relative!important;
  flex:1 1 auto!important;
  min-width:0!important;
  overflow:hidden!important;
  align-self:stretch!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{align-self:stretch!important}
@media (max-width:640px){#obsl-toast-stack{padding-left:58px!important;padding-right:4px!important;box-sizing:border-box!important}}
@media (max-width:1100px){.weather-grid{width:100%!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important}
.now-panel{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:"temp" "summary" "updated"!important;
    justify-items:center!important;
    align-items:center!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:clamp(16px,2.4vw,26px) clamp(18px,4vw,42px) clamp(14px,2vw,22px)!important;
    margin:0!important;
    row-gap:clamp(7px,1.2vw,12px)!important;
    text-align:center!important;
  }
.now-panel .temperature{
    grid-area:temp!important;width:100%!important;margin:0!important;padding:0!important;
    text-align:center!important;justify-self:center!important;transform:none!important;
    font-size:clamp(76px,18vw,150px)!important;line-height:.94!important;
  }
.now-panel .weather-summary{
    grid-area:summary!important;width:min(100%,760px)!important;max-width:760px!important;
    margin:0 auto!important;padding:0!important;transform:none!important;text-align:center!important;
    justify-self:center!important;box-sizing:border-box!important;
  }
.now-panel .weather-desc{
    width:100%!important;margin:0 auto clamp(9px,1.5vw,14px)!important;text-align:center!important;
    font-size:clamp(22px,4.7vw,35px)!important;line-height:1.08!important;
  }
.now-panel .weather-meta{
    display:grid!important;grid-template-columns:1fr 1fr!important;
    width:min(100%,700px)!important;max-width:700px!important;margin:0 auto!important;
    padding:0!important;box-sizing:border-box!important;
    column-gap:clamp(24px,6vw,76px)!important;row-gap:clamp(8px,1.4vw,14px)!important;
    font-size:clamp(15px,2.8vw,23px)!important;text-align:left!important;
  }
.now-panel .weather-meta span{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
    align-items:baseline!important;gap:8px!important;min-width:0!important;width:100%!important;
    margin:0!important;padding:0!important;line-height:1.25!important;white-space:nowrap!important;
  }
.now-panel .weather-updated-status{
    grid-area:updated!important;position:static!important;inset:auto!important;transform:none!important;
    width:100%!important;max-width:760px!important;justify-self:center!important;
    margin:clamp(5px,1vw,9px) auto 0!important;padding:0!important;box-sizing:border-box!important;
    text-align:center!important;line-height:1.3!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
    font-size:clamp(10px,2vw,14px)!important;
  }}
@media (max-width:560px){.now-panel{padding:13px 14px 12px!important;row-gap:7px!important}
.now-panel .temperature{font-size:clamp(70px,26vw,112px)!important}
.now-panel .weather-summary{width:100%!important;max-width:100%!important}
.now-panel .weather-desc{font-size:clamp(20px,7vw,28px)!important;margin-bottom:9px!important}
.now-panel .weather-meta{width:100%!important;max-width:100%!important;column-gap:16px!important;row-gap:7px!important;font-size:clamp(12px,4vw,16px)!important}
.now-panel .weather-meta span{gap:5px!important;white-space:nowrap!important}
.now-panel .weather-updated-status{width:100%!important;max-width:100%!important;font-size:10px!important;margin-top:6px!important}}
@media (max-width:360px){.now-panel{padding-inline:10px!important}
.now-panel .weather-meta{column-gap:10px!important;font-size:11px!important}
.now-panel .weather-meta span{gap:3px!important}
.now-panel .weather-updated-status{font-size:9px!important}}
.obsl-popup-close{
  position:absolute!important;right:8px!important;top:7px!important;
  width:auto!important;height:auto!important;min-width:18px!important;min-height:18px!important;
  padding:1px 3px!important;margin:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;outline:none!important;
  color:inherit!important;font:700 18px/1 system-ui,-apple-system,"Segoe UI",sans-serif!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  cursor:pointer!important;z-index:3!important;
}
.obsl-popup-close:hover,.obsl-popup-close:focus{background:transparent!important;box-shadow:none!important;border:0!important}
.obsl-popup-close img{display:block!important;width:18px!important;height:18px!important;object-fit:contain!important;border:0!important;background:transparent!important}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{
  align-self:stretch!important;
  border-radius:0 9px 9px 0!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
#obsl-toast-stack>.obsl-toast-item.no-frame>.obsl-toast-close{border-radius:9px!important}
@media (max-width:640px){#obsl-toast-stack>.obsl-toast-item>.obsl-toast-close{border-radius:0 8px 8px 0!important}}
#notification-tools-group .admin-actions-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
#notification-tools-group .admin-actions-row>.system-menu-button{flex:0 1 auto}
@media (max-width:620px){#notification-tools-group .admin-actions-row>.system-menu-button{flex:1 1 100%}}
.location-row{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
  padding:0 clamp(8px,1.4vw,18px)!important;
  box-sizing:border-box!important;
}
.location-row .location-status,#location-status{
  min-width:0!important;
  margin:8px 0 7px!important;
  text-align:center!important;
  font-size:clamp(22px,2.25vw,34px)!important;
  font-weight:900!important;
  line-height:1.12!important;
  letter-spacing:-.01em!important;
  overflow-wrap:anywhere!important;
}
.weather-grid{
  display:grid!important;
  grid-template-columns:minmax(380px,.92fr) minmax(0,1.58fr)!important;
  align-items:stretch!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.weather-grid > *{min-width:0!important;box-sizing:border-box!important}
.now-panel{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(150px,.82fr) minmax(205px,1.18fr)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  align-items:center!important;
  justify-items:stretch!important;
  column-gap:clamp(10px,1.2vw,20px)!important;
  row-gap:7px!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  padding:clamp(12px,1.25vw,18px) clamp(12px,1.35vw,20px) 10px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.now-panel .temperature{
  grid-area:temp!important;
  align-self:center!important;
  justify-self:center!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  text-align:center!important;
  font-size:clamp(64px,6.4vw,102px)!important;
  line-height:.88!important;
  letter-spacing:-.06em!important;
  white-space:nowrap!important;
}
.now-panel .weather-summary{
  grid-area:summary!important;
  align-self:center!important;
  justify-self:stretch!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  text-align:left!important;
}
.now-panel .weather-desc{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 9px!important;
  padding:0!important;
  text-align:left!important;
  font-size:clamp(21px,2.05vw,30px)!important;
  font-weight:900!important;
  line-height:1.08!important;
  white-space:normal!important;
}
.now-panel .weather-desc img,.now-panel .weather-desc .weather-icon{width:1.15em!important;height:1.15em!important;object-fit:contain!important;flex:0 0 auto!important;vertical-align:middle!important}
.now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  column-gap:clamp(12px,1.6vw,24px)!important;
  row-gap:7px!important;
  color:var(--muted)!important;
  font-size:clamp(14px,1.28vw,18px)!important;
  text-align:left!important;
}
.now-panel .weather-meta span{
  display:flex!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  gap:5px!important;
  min-width:0!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  line-height:1.18!important;
  white-space:nowrap!important;
}
.now-panel .weather-meta b{
  flex:0 0 auto!important;
  margin:0!important;
  font-size:1.04em!important;
  font-weight:900!important;
  color:var(--text)!important;
}
.now-panel .weather-updated-status{
  grid-area:updated!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  justify-self:center!important;
  align-self:end!important;
  width:100%!important;
  max-width:100%!important;
  min-height:16px!important;
  margin:2px 0 0!important;
  padding:0!important;
  text-align:center!important;
  font-size:clamp(10px,1vw,13px)!important;
  font-weight:400!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media (min-width:901px) and (max-width:1280px){.weather-grid{grid-template-columns:minmax(360px,.98fr) minmax(0,1.42fr)!important;gap:10px!important}
.now-panel{grid-template-columns:minmax(140px,.82fr) minmax(190px,1.18fr)!important;padding:12px 13px 9px!important;column-gap:10px!important}
.now-panel .temperature{font-size:clamp(62px,7.2vw,92px)!important}
.now-panel .weather-desc{font-size:clamp(20px,2.35vw,27px)!important;margin-bottom:8px!important}
.now-panel .weather-meta{font-size:clamp(13px,1.55vw,17px)!important;column-gap:12px!important;row-gap:6px!important}}
@media (max-width:900px){.location-row .location-status,#location-status{font-size:clamp(22px,4.3vw,32px)!important;margin:7px 0 6px!important}
.weather-grid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
.now-panel{
    grid-template-columns:1fr!important;
    grid-template-areas:"temp" "summary" "updated"!important;
    justify-items:center!important;
    row-gap:5px!important;
    padding:13px clamp(14px,4vw,30px) 10px!important;
    text-align:center!important;
  }
.now-panel .temperature{
    justify-self:center!important;
    font-size:clamp(76px,19vw,132px)!important;
    line-height:.9!important;
  }
.now-panel .weather-summary{
    width:min(100%,700px)!important;
    max-width:700px!important;
    margin:0 auto!important;
    text-align:center!important;
  }
.now-panel .weather-desc{
    justify-content:center!important;
    text-align:center!important;
    font-size:clamp(23px,5vw,34px)!important;
    margin:0 0 8px!important;
  }
.now-panel .weather-meta{
    width:min(100%,650px)!important;
    max-width:650px!important;
    margin:0 auto!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:clamp(18px,5vw,56px)!important;
    row-gap:7px!important;
    font-size:clamp(15px,3vw,21px)!important;
  }
.now-panel .weather-meta span{justify-content:center!important;gap:6px!important}
.now-panel .weather-updated-status{margin-top:4px!important;font-size:clamp(10px,2vw,13px)!important}}
@media (max-width:560px){.location-row{padding-inline:8px!important}
.location-row .location-status,#location-status{font-size:clamp(21px,6vw,28px)!important;line-height:1.08!important}
.now-panel{padding:11px 12px 9px!important;row-gap:4px!important}
.now-panel .temperature{font-size:clamp(72px,24vw,112px)!important}
.now-panel .weather-desc{font-size:clamp(21px,7vw,29px)!important;margin-bottom:7px!important}
.now-panel .weather-meta{width:100%!important;column-gap:12px!important;row-gap:6px!important;font-size:clamp(13px,4vw,17px)!important}
.now-panel .weather-meta span{justify-content:flex-start!important;gap:4px!important}
.now-panel .weather-updated-status{font-size:10px!important;margin-top:4px!important}}
@media (max-width:360px){.location-row .location-status,#location-status{font-size:20px!important}
.now-panel{padding-inline:9px!important}
.now-panel .temperature{font-size:72px!important}
.now-panel .weather-desc{font-size:20px!important}
.now-panel .weather-meta{font-size:12px!important;column-gap:8px!important;row-gap:5px!important}
.now-panel .weather-meta span{gap:3px!important}
.now-panel .weather-updated-status{font-size:9px!important}}
.weather-grid{align-items:stretch!important}
.now-panel{
  box-sizing:border-box!important;
  position:relative!important;
  overflow:hidden!important;
}
.now-panel .weather-summary{min-width:0!important}
.now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  column-gap:clamp(18px,3.2vw,48px)!important;
  row-gap:clamp(6px,1vw,10px)!important;
  box-sizing:border-box!important;
}
.now-panel .weather-meta span{
  display:flex!important;
  align-items:baseline!important;
  gap:6px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
.now-panel .weather-meta span:nth-child(1),.now-panel .weather-meta span:nth-child(3){
  justify-content:flex-start!important;
  text-align:left!important;
}
.now-panel .weather-meta span:nth-child(2),.now-panel .weather-meta span:nth-child(4){
  justify-content:flex-end!important;
  text-align:right!important;
}
.now-panel .weather-meta b{margin:0!important;flex:0 0 auto!important}
.now-panel .weather-updated-status{
  position:static!important;
  transform:none!important;
  width:100%!important;
  margin-top:8px!important;
  text-align:center!important;
  white-space:nowrap!important;
}
@media (min-width:901px){.weather-grid{grid-template-columns:minmax(390px,.96fr) minmax(520px,1.44fr)!important;gap:12px!important}
.now-panel{
    display:grid!important;
    grid-template-columns:minmax(150px,.82fr) minmax(220px,1.18fr)!important;
    grid-template-areas:"temp summary" "updated updated"!important;
    align-items:center!important;
    column-gap:14px!important;
    row-gap:4px!important;
    padding:12px 16px 10px!important;
    min-width:0!important;
  }
.now-panel .temperature{grid-area:temp!important;justify-self:center!important;text-align:center!important;font-size:clamp(70px,6.4vw,108px)!important;line-height:.88!important}
.now-panel .weather-summary{grid-area:summary!important;width:100%!important;align-self:center!important;text-align:left!important}
.now-panel .weather-desc{justify-content:flex-start!important;text-align:left!important;margin:0 0 8px!important;font-size:clamp(22px,2.2vw,31px)!important;line-height:1.05!important}
.now-panel .weather-meta{font-size:clamp(14px,1.35vw,19px)!important}
.now-panel .weather-updated-status{grid-area:updated!important;font-size:clamp(10px,.95vw,13px)!important;margin-top:2px!important}}
@media (max-width:900px){.weather-grid{grid-template-columns:1fr!important;gap:10px!important}
.now-panel{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-areas:"temp" "summary" "updated"!important;
    justify-items:stretch!important;
    align-items:start!important;
    padding:12px clamp(18px,5vw,34px) 10px!important;
    row-gap:4px!important;
  }
.now-panel .temperature{grid-area:temp!important;justify-self:center!important;text-align:center!important;font-size:clamp(84px,20vw,132px)!important;line-height:.9!important}
.now-panel .weather-summary{grid-area:summary!important;width:100%!important;max-width:760px!important;margin:0 auto!important}
.now-panel .weather-desc{justify-content:center!important;text-align:center!important;margin:0 0 10px!important;font-size:clamp(25px,5.5vw,36px)!important;line-height:1.04!important}
.now-panel .weather-meta{font-size:clamp(17px,3.4vw,23px)!important;column-gap:clamp(20px,7vw,72px)!important;row-gap:8px!important}
.now-panel .weather-updated-status{grid-area:updated!important;margin-top:8px!important;font-size:clamp(11px,2.3vw,14px)!important}}
@media (max-width:560px){.now-panel{padding:10px 14px 9px!important}
.now-panel .temperature{font-size:clamp(78px,25vw,112px)!important}
.now-panel .weather-desc{font-size:clamp(23px,7vw,30px)!important;margin-bottom:9px!important}
.now-panel .weather-meta{font-size:clamp(14px,4.2vw,18px)!important;column-gap:18px!important;row-gap:7px!important}
.now-panel .weather-meta span{gap:4px!important}
.now-panel .weather-updated-status{font-size:10px!important;margin-top:7px!important}}
@media (max-width:360px){.now-panel{padding-inline:10px!important}
.now-panel .temperature{font-size:74px!important}
.now-panel .weather-desc{font-size:21px!important}
.now-panel .weather-meta{font-size:12px!important;column-gap:12px!important;row-gap:6px!important}}
html,body{max-width:100%;overflow-x:hidden}
.dashboard{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  padding-left:max(12px,env(safe-area-inset-left))!important;
  padding-right:max(12px,env(safe-area-inset-right))!important;
}
.dashboard>*,.managed-section,.panel,.weather-grid,.attendance-panel,.birthday-event-panel,.event-frame,.google-calendar-wrap{
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.weather-grid,.forecast-panel,.upcoming-wrap,.google-calendar-wrap{overflow-x:hidden!important}
@media (orientation:landscape) and (max-height:620px){.dashboard{padding-left:max(10px,env(safe-area-inset-left))!important;padding-right:max(10px,env(safe-area-inset-right))!important}
.panel,.managed-section{margin-left:0!important;margin-right:0!important}
.weather-grid{gap:8px!important}}
@media (max-width:700px){.dashboard{padding-left:max(8px,env(safe-area-inset-left))!important;padding-right:max(8px,env(safe-area-inset-right))!important}}
.webpush-broadcast-card{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);min-width:0}
.webpush-broadcast-card h4,.webpush-broadcast-card .admin-hint,.webpush-broadcast-card .admin-actions-row,.webpush-broadcast-card .admin-form-message{grid-column:1/-1;margin:0}
.webpush-broadcast-card textarea,.webpush-broadcast-card input,.webpush-broadcast-card select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
@media (max-width:640px){.webpush-broadcast-card{grid-template-columns:1fr;padding:8px}
.webpush-broadcast-card>*{grid-column:1!important}}
.now-panel .weather-summary{box-sizing:border-box!important;overflow:visible!important}
.now-panel .weather-meta{
  box-sizing:border-box!important;
  padding-left:clamp(8px,1.6vw,18px)!important;
  padding-right:clamp(8px,1.6vw,18px)!important;
}
.now-panel .weather-meta span:nth-child(1),.now-panel .weather-meta span:nth-child(3){padding-left:0!important}
.now-panel .weather-meta span:nth-child(2),.now-panel .weather-meta span:nth-child(4){padding-right:0!important}
@media (orientation:landscape) and (min-width:701px) and (max-width:1180px){.weather-grid{grid-template-columns:minmax(330px,40%) minmax(0,60%)!important;gap:8px!important}
.now-panel{
    grid-template-columns:minmax(112px,.76fr) minmax(190px,1.24fr)!important;
    column-gap:8px!important;
    padding:10px 12px 9px!important;
  }
.now-panel .temperature{font-size:clamp(60px,8.2vw,82px)!important;line-height:.9!important}
.now-panel .weather-summary{padding-inline:4px!important}
.now-panel .weather-desc{font-size:clamp(17px,2.5vw,23px)!important;margin-bottom:6px!important}
.now-panel .weather-meta{
    font-size:clamp(11px,1.65vw,15px)!important;
    column-gap:clamp(8px,1.8vw,18px)!important;
    row-gap:5px!important;
    padding-inline:clamp(10px,1.8vw,18px)!important;
  }
.now-panel .weather-meta span{gap:3px!important}
.now-panel .weather-updated-status{font-size:9px!important;margin-top:4px!important}}
@media (orientation:landscape) and (max-width:820px){.weather-grid{grid-template-columns:minmax(300px,42%) minmax(0,58%)!important}
.now-panel{grid-template-columns:minmax(100px,.72fr) minmax(176px,1.28fr)!important;padding-inline:10px!important}
.now-panel .weather-meta{padding-inline:12px!important;font-size:11px!important;column-gap:8px!important}}
.webpush-broadcast-card .brand-admin-field{min-width:0}
@media (orientation:landscape) and (max-height:520px),
       (min-width:700px) and (max-width:1100px){.weather-grid{grid-template-columns:minmax(400px,46%) minmax(0,1fr)!important;gap:12px!important}
.now-panel{
    grid-template-columns:minmax(148px,38%) minmax(232px,1fr)!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    grid-template-areas:"temp summary" "updated updated"!important;
    column-gap:12px!important;
    row-gap:4px!important;
    padding:12px 16px 10px!important;
    overflow:hidden!important;
  }
.now-panel .temperature{
    grid-area:temp!important;align-self:center!important;justify-self:center!important;
    min-width:0!important;width:100%!important;margin:0!important;
    font-size:clamp(82px,15vw,150px)!important;line-height:.88!important;text-align:center!important;
  }
.now-panel .weather-summary{
    grid-area:summary!important;align-self:center!important;justify-self:stretch!important;
    min-width:0!important;width:100%!important;margin:0!important;padding:0 4px!important;
  }
.now-panel .weather-desc{
    justify-content:center!important;text-align:center!important;margin:0 0 7px!important;
    font-size:clamp(21px,3vw,31px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
.now-panel .weather-meta{
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:16px!important;row-gap:8px!important;width:100%!important;min-width:0!important;
    font-size:clamp(12px,1.75vw,17px)!important;
  }
.now-panel .weather-meta span{
    display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;align-items:baseline!important;
    width:100%!important;min-width:0!important;gap:5px!important;padding:0!important;white-space:nowrap!important;
  }
.now-panel .weather-meta span:nth-child(1),.now-panel .weather-meta span:nth-child(3){text-align:left!important;padding-left:2px!important}
.now-panel .weather-meta span:nth-child(2),.now-panel .weather-meta span:nth-child(4){text-align:left!important;padding-right:2px!important}
.now-panel .weather-meta b{justify-self:end!important;white-space:nowrap!important;min-width:max-content!important}
.now-panel .weather-updated-status{
    grid-area:updated!important;position:static!important;transform:none!important;width:100%!important;
    margin:2px 0 0!important;padding:0 4px!important;text-align:center!important;
    font-size:clamp(9px,1.3vw,12px)!important;line-height:1.15!important;white-space:nowrap!important;
  }}
@media (orientation:landscape) and (max-height:430px) and (max-width:850px){.weather-grid{grid-template-columns:minmax(360px,48%) minmax(0,1fr)!important;gap:10px!important}
.now-panel{grid-template-columns:minmax(132px,36%) minmax(218px,1fr)!important;padding:10px 12px 9px!important;column-gap:9px!important}
.now-panel .temperature{font-size:clamp(72px,14vw,118px)!important}
.now-panel .weather-desc{font-size:clamp(18px,2.8vw,25px)!important;margin-bottom:5px!important}
.now-panel .weather-meta{font-size:clamp(11px,1.65vw,14px)!important;column-gap:12px!important;row-gap:6px!important}
.now-panel .weather-meta span{gap:3px!important}}
.now-panel{
  container-type:inline-size!important;
  container-name:obsl-current-weather!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.now-panel .weather-summary,.now-panel .weather-meta,.now-panel .weather-metric{box-sizing:border-box!important;min-width:0!important}
.now-panel .weather-meta em{font-style:normal!important;font-weight:400!important;color:var(--muted)!important;white-space:nowrap!important}
.now-panel .weather-meta b{font-weight:800!important;color:var(--text)!important;white-space:nowrap!important}
@container obsl-current-weather (min-width: 520px){.now-panel{
    display:grid!important;
    grid-template-columns:minmax(170px,42%) minmax(260px,58%)!important;
    grid-template-areas:"temp summary" "updated updated"!important;
    grid-template-rows:1fr auto!important;
    align-items:center!important;
    column-gap:14px!important;
    row-gap:4px!important;
    padding:12px 18px 10px!important;
  }
.now-panel .temperature{
    grid-area:temp!important;width:100%!important;min-width:0!important;margin:0!important;
    justify-self:center!important;align-self:center!important;text-align:center!important;
    font-size:clamp(76px,19cqw,132px)!important;line-height:.86!important;
  }
.now-panel .weather-summary{
    grid-area:summary!important;width:100%!important;margin:0!important;padding:0 8px!important;
    align-self:center!important;overflow:visible!important;
  }
.now-panel .weather-desc{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    width:100%!important;margin:0 0 10px!important;padding:0!important;
    font-size:clamp(22px,4.2cqw,31px)!important;line-height:1.05!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
.now-panel .weather-meta{
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:9px 20px!important;width:100%!important;margin:0!important;padding:0 4px!important;
    font-size:clamp(14px,2.65cqw,18px)!important;
  }
.now-panel .weather-metric{
    display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;
    align-items:baseline!important;gap:5px!important;width:100%!important;margin:0!important;padding:0!important;
  }
.now-panel .weather-metric-feels,.now-panel .weather-metric-wind{text-align:left!important}
.now-panel .weather-metric-humidity,.now-panel .weather-metric-rain{text-align:left!important}
.now-panel .weather-metric b{justify-self:end!important}
.now-panel .weather-updated-status{
    grid-area:updated!important;position:static!important;inset:auto!important;transform:none!important;
    width:100%!important;margin:5px 0 0!important;padding:0 6px!important;text-align:center!important;
    font-size:clamp(10px,1.8cqw,13px)!important;line-height:1.15!important;white-space:nowrap!important;
    overflow:hidden!important;text-overflow:ellipsis!important;
  }}
@container obsl-current-weather (min-width: 350px) and (max-width: 519px){.now-panel{
    display:grid!important;
    grid-template-columns:minmax(118px,42%) minmax(190px,58%)!important;
    grid-template-areas:"temp summary" "updated updated"!important;
    grid-template-rows:1fr auto!important;
    align-items:center!important;column-gap:8px!important;row-gap:3px!important;
    padding:10px 12px 8px!important;
  }
.now-panel .temperature{
    grid-area:temp!important;width:100%!important;margin:0!important;text-align:center!important;
    font-size:clamp(64px,25cqw,98px)!important;line-height:.86!important;
  }
.now-panel .weather-summary{grid-area:summary!important;width:100%!important;margin:0!important;padding:0 5px!important;overflow:visible!important}
.now-panel .weather-desc{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    width:100%!important;margin:0 0 7px!important;padding:0!important;
    font-size:clamp(19px,5.8cqw,25px)!important;line-height:1.03!important;white-space:nowrap!important;
    overflow:hidden!important;text-overflow:ellipsis!important;
  }
.now-panel .weather-meta{
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:6px 10px!important;width:100%!important;margin:0!important;padding:0!important;
    font-size:clamp(11px,3.25cqw,14px)!important;
  }
.now-panel .weather-metric{
    display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;
    align-items:baseline!important;gap:3px!important;width:100%!important;min-width:0!important;
    margin:0!important;padding:0!important;white-space:nowrap!important;
  }
.now-panel .weather-metric em{overflow:hidden!important;text-overflow:ellipsis!important}
.now-panel .weather-metric b{justify-self:end!important;font-size:1em!important}
.now-panel .weather-updated-status{
    grid-area:updated!important;position:static!important;transform:none!important;width:100%!important;
    margin:5px 0 0!important;padding:0 4px!important;text-align:center!important;font-size:9px!important;
    line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }}
@container obsl-current-weather (max-width: 349px){.now-panel{
    display:grid!important;grid-template-columns:1fr!important;grid-template-areas:"temp" "summary" "updated"!important;
    justify-items:stretch!important;row-gap:4px!important;padding:10px 12px 8px!important;
  }
.now-panel .temperature{grid-area:temp!important;justify-self:center!important;margin:0!important;font-size:76px!important;line-height:.88!important;text-align:center!important}
.now-panel .weather-summary{grid-area:summary!important;width:100%!important;margin:0!important;padding:0 6px!important}
.now-panel .weather-desc{justify-content:center!important;text-align:center!important;margin:0 0 7px!important;font-size:21px!important;line-height:1.05!important}
.now-panel .weather-meta{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px 12px!important;width:100%!important;margin:0!important;padding:0 4px!important;font-size:12px!important}
.now-panel .weather-metric{display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;gap:3px!important;min-width:0!important}
.now-panel .weather-metric b{justify-self:end!important}
.now-panel .weather-updated-status{grid-area:updated!important;position:static!important;transform:none!important;margin:5px 0 0!important;text-align:center!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}}
@supports not (container-type:inline-size){.now-panel .weather-meta{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px 12px!important;padding-inline:8px!important}
.now-panel .weather-meta span{display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;gap:3px!important;min-width:0!important;font-size:12px!important}
.now-panel .weather-meta b{justify-self:end!important}}
.market-panel,.market-sections,.market-section,#market-fuel,#market-gold,#market-currency{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.market-row{
  display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:start!important;gap:4px 8px!important;width:100%!important;min-width:0!important;
  font-weight:400!important;
}
.market-row>span:first-child{min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.25!important;font-weight:400!important}
.market-row strong,.market-row .market-value{font-weight:400!important;white-space:normal!important;text-align:right!important;overflow-wrap:anywhere!important;line-height:1.25!important}
.market-section h3,.market-gold-name{font-weight:700!important}
.market-gold-grid strong,.market-rate-row strong{font-weight:400!important;white-space:normal!important}
.market-gas-heading,.market-gas-title{display:none!important}
.market-gas-cityblock{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(92px,auto)!important;gap:8px!important;align-items:start!important;width:100%!important;min-width:0!important;padding:4px 0!important;border-top:1px solid var(--line)!important;font-size:11px!important;font-weight:400!important}
.market-gas-city{min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.25!important;font-weight:400!important}
.market-gas-prices{display:grid!important;grid-template-columns:1fr!important;gap:3px!important;min-width:0!important;font-weight:400!important}
.market-gas-prices>div{display:grid!important;grid-template-columns:32px minmax(0,1fr)!important;gap:5px!important;align-items:baseline!important;min-width:0!important}
.market-gas-prices span{font-weight:400!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:right!important;line-height:1.2!important}
.market-gas-other{display:grid!important;grid-template-columns:1fr!important;gap:2px!important;padding:4px 0!important;font-size:10px!important;font-weight:400!important}
.market-gas-other span{white-space:normal!important;overflow-wrap:anywhere!important;font-weight:400!important}
@media (max-width:520px){.market-row{grid-template-columns:minmax(0,1fr) minmax(74px,42%)!important}
.market-gas-cityblock{grid-template-columns:minmax(0,1fr) minmax(86px,44%)!important;gap:6px!important}
.market-gas-prices>div{grid-template-columns:30px minmax(0,1fr)!important;gap:4px!important}}
#weather-widget.weather-grid{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  gap:12px!important;
  align-items:stretch!important;
}
@media (min-width:960px){#weather-widget.weather-grid{
    grid-template-columns:minmax(430px,42%) minmax(0,58%)!important;
  }}
@media (max-width:959px){#weather-widget.weather-grid{grid-template-columns:minmax(0,1fr)!important}}
#weather-widget .now-panel{
  position:relative!important;
  display:grid!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  padding:14px 18px 12px!important;
  gap:8px 16px!important;
  align-content:center!important;
}
#weather-widget .now-panel .temperature,#weather-widget .now-panel .weather-summary,#weather-widget .now-panel .weather-desc,#weather-widget .now-panel .weather-meta,#weather-widget .now-panel .weather-metric,#weather-widget .now-panel .weather-updated-status{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
}
#weather-widget .now-panel.weather-card-wide{
  grid-template-columns:minmax(190px,43%) minmax(280px,57%)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-items:center!important;
}
#weather-widget .now-panel.weather-card-wide .temperature{
  grid-area:temp!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
  font-size:clamp(78px,10vw,132px)!important;
  line-height:.86!important;
  letter-spacing:-.045em!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel.weather-card-wide .weather-summary{
  grid-area:summary!important;
  width:100%!important;
  margin:0!important;
  padding:0 4px!important;
  align-self:center!important;
}
#weather-widget .now-panel.weather-card-wide .weather-desc{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  margin:0 0 10px!important;
  padding:0!important;
  font-size:clamp(22px,2.4vw,31px)!important;
  line-height:1.08!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel.weather-card-wide .weather-meta{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-areas:"feels humidity" "wind rain"!important;
  gap:9px 22px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  font-size:clamp(13px,1.45vw,18px)!important;
  line-height:1.2!important;
}
#weather-widget .now-panel .weather-metric-feels{grid-area:feels!important}
#weather-widget .now-panel .weather-metric-humidity{grid-area:humidity!important}
#weather-widget .now-panel .weather-metric-wind{grid-area:wind!important}
#weather-widget .now-panel .weather-metric-rain{grid-area:rain!important}
#weather-widget .now-panel .weather-metric{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:baseline!important;
  gap:6px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel .weather-metric em{
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  font-style:normal!important;
  font-weight:400!important;
  color:var(--muted)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel .weather-metric b{
  justify-self:end!important;
  margin:0!important;
  padding:0!important;
  font-size:1em!important;
  line-height:inherit!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel .weather-updated-status{
  grid-area:updated!important;
  width:100%!important;
  margin:4px 0 0!important;
  padding:0 4px!important;
  text-align:center!important;
  font-size:clamp(10px,1.05vw,13px)!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel.weather-card-stack{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:"temp" "summary" "updated"!important;
  grid-template-rows:auto auto auto!important;
  justify-items:stretch!important;
  padding:12px 16px 10px!important;
  row-gap:7px!important;
}
#weather-widget .now-panel.weather-card-stack .temperature{
  grid-area:temp!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
  font-size:clamp(68px,22vw,112px)!important;
  line-height:.88!important;
  letter-spacing:-.045em!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel.weather-card-stack .weather-summary{
  grid-area:summary!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
#weather-widget .now-panel.weather-card-stack .weather-desc{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
  text-align:center!important;
  font-size:clamp(20px,6vw,28px)!important;
  line-height:1.08!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel.weather-card-stack .weather-meta{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-areas:"feels humidity" "wind rain"!important;
  gap:8px 22px!important;
  width:100%!important;
  margin:0!important;
  padding:0 6px!important;
  font-size:clamp(12px,3.6vw,17px)!important;
  line-height:1.2!important;
}
#weather-widget .now-panel.weather-card-stack .weather-updated-status{
  grid-area:updated!important;
  width:100%!important;
  margin:3px 0 0!important;
  padding:0 4px!important;
  text-align:center!important;
  font-size:clamp(9px,2.5vw,12px)!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#location-status.location-status{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  padding-inline:14px!important;
  text-align:center!important;
  font-size:clamp(18px,2.1vw,31px)!important;
  line-height:1.12!important;
  overflow-wrap:anywhere!important;
}
@media (max-width:420px){#weather-widget .now-panel{padding:10px 12px 9px!important}
#weather-widget .now-panel.weather-card-stack .weather-meta{gap:7px 14px!important;padding:0 2px!important;font-size:12px!important}
#weather-widget .now-panel .weather-metric{gap:4px!important}
#location-status.location-status{font-size:18px!important;padding-inline:10px!important}}
#weather-widget .now-panel.weather-card-wide{
  grid-template-columns:max-content minmax(0,1fr)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  column-gap:clamp(6px,1.2cqw,10px)!important;
  row-gap:2px!important;
  padding:10px 12px 8px!important;
  justify-content:start!important;
}
#weather-widget .now-panel.weather-card-wide .temperature{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:start!important;
  text-align:left!important;
  font-size:clamp(82px,22cqw,126px)!important;
  line-height:.84!important;
  letter-spacing:-.055em!important;
}
#weather-widget .now-panel.weather-card-wide .weather-summary{
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  align-self:center!important;
}
#weather-widget .now-panel.weather-card-wide .weather-desc{
  margin:0 0 5px!important;
  font-size:clamp(20px,4.4cqw,29px)!important;
  line-height:1!important;
}
#weather-widget .now-panel.weather-card-wide .weather-meta{
  gap:5px clamp(8px,1.5cqw,14px)!important;
  padding:0!important;
  font-size:clamp(12px,2.5cqw,16px)!important;
}
#weather-widget .now-panel.weather-card-wide .weather-metric{
  gap:4px!important;
}
#weather-widget .now-panel.weather-card-wide .weather-updated-status{
  margin-top:2px!important;
  font-size:clamp(9px,1.6cqw,11px)!important;
}
#weather-widget .now-panel.weather-card-stack{
  padding:10px 12px 8px!important;
}
@media (min-width:420px){#weather-widget .now-panel.weather-card-stack{
    grid-template-columns:max-content minmax(0,1fr)!important;
    grid-template-areas:"temp summary" "updated updated"!important;
    column-gap:6px!important;
    row-gap:2px!important;
    align-items:center!important;
  }
#weather-widget .now-panel.weather-card-stack .temperature{
    grid-area:temp!important;
    width:auto!important;
    justify-self:start!important;
    font-size:clamp(70px,22cqw,96px)!important;
    line-height:.84!important;
    letter-spacing:-.05em!important;
    white-space:nowrap!important;
  }
#weather-widget .now-panel.weather-card-stack .weather-summary{
    grid-area:summary!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
#weather-widget .now-panel.weather-card-stack .weather-desc{
    justify-content:flex-start!important;
    text-align:left!important;
    margin:0 0 5px!important;
    font-size:clamp(18px,5cqw,23px)!important;
  }
#weather-widget .now-panel.weather-card-stack .weather-meta{
    grid-template-columns:1fr 1fr!important;
    gap:5px 8px!important;
    padding:0!important;
    font-size:clamp(11px,3cqw,13px)!important;
  }
#weather-widget .now-panel.weather-card-stack .weather-updated-status{
    grid-area:updated!important;
    margin-top:2px!important;
    font-size:9px!important;
  }}
#weather-widget.weather-grid{
  display:grid!important;
  width:100%!important;
  min-width:0!important;
  gap:10px!important;
  align-items:stretch!important;
  box-sizing:border-box!important;
}
#weather-widget[data-weather-layout="side"]{
  grid-template-columns:clamp(350px,36vw,430px) minmax(0,1fr)!important;
}
#weather-widget[data-weather-layout="stack"]{
  grid-template-columns:minmax(0,1fr)!important;
}
#weather-widget > .now-panel,#weather-widget > .forecast-panel{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#weather-widget .now-panel{
  container-type:normal!important;
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(116px,42%) minmax(0,58%)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-items:center!important;
  justify-items:stretch!important;
  column-gap:6px!important;
  row-gap:4px!important;
  width:100%!important;
  min-width:0!important;
  height:178px!important;
  min-height:178px!important;
  max-height:178px!important;
  padding:11px 12px 9px!important;
  overflow:hidden!important;
  text-align:left!important;
}
#weather-widget .now-panel .temperature{
  grid-area:temp!important;
  align-self:center!important;
  justify-self:end!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  font-size:88px!important;
  line-height:.82!important;
  letter-spacing:-.055em!important;
  text-align:right!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel .weather-summary{
  grid-area:summary!important;
  align-self:center!important;
  justify-self:stretch!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  text-align:left!important;
  overflow:hidden!important;
}
#weather-widget .now-panel .weather-desc{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0 0 7px!important;
  padding:0!important;
  font-size:23px!important;
  line-height:1.05!important;
  font-weight:900!important;
  text-align:left!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-areas:"feels humidity" "wind rain"!important;
  grid-auto-rows:24px!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  gap:4px 8px!important;
  font-size:13px!important;
  line-height:1.12!important;
  overflow:hidden!important;
}
#weather-widget .now-panel .weather-metric-feels{grid-area:feels!important}
#weather-widget .now-panel .weather-metric-humidity{grid-area:humidity!important}
#weather-widget .now-panel .weather-metric-wind{grid-area:wind!important}
#weather-widget .now-panel .weather-metric-rain{grid-area:rain!important}
#weather-widget .now-panel .weather-metric{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:baseline!important;
  gap:3px!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
#weather-widget .now-panel .weather-metric em{
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-style:normal!important;
  font-weight:400!important;
  color:var(--muted)!important;
}
#weather-widget .now-panel .weather-metric b{
  justify-self:end!important;
  margin:0!important;
  padding:0!important;
  font-size:1em!important;
  line-height:inherit!important;
  font-weight:800!important;
  color:var(--text)!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel .weather-updated-status{
  grid-area:updated!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  align-self:end!important;
  justify-self:stretch!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0 2px!important;
  text-align:center!important;
  font-size:10px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel[data-weather-size="md"]{
  height:166px!important;min-height:166px!important;max-height:166px!important;
  grid-template-columns:minmax(124px,41%) minmax(0,59%)!important;
  padding:10px 11px 8px!important;column-gap:5px!important;
}
#weather-widget .now-panel[data-weather-size="md"] .temperature{font-size:80px!important}
#weather-widget .now-panel[data-weather-size="md"] .weather-desc{font-size:21px!important;margin-bottom:6px!important}
#weather-widget .now-panel[data-weather-size="md"] .weather-meta{font-size:12px!important;grid-auto-rows:22px!important;gap:3px 7px!important}
#weather-widget .now-panel[data-weather-size="md"] .weather-updated-status{font-size:9.5px!important}
#weather-widget .now-panel[data-weather-size="sm"]{
  height:154px!important;min-height:154px!important;max-height:154px!important;
  grid-template-columns:minmax(112px,40%) minmax(0,60%)!important;
  padding:9px 9px 7px!important;column-gap:4px!important;row-gap:3px!important;
}
#weather-widget .now-panel[data-weather-size="sm"] .temperature{font-size:70px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-desc{font-size:18px!important;margin-bottom:5px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-meta{font-size:11px!important;grid-auto-rows:20px!important;gap:2px 6px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-metric{gap:2px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-updated-status{font-size:8.8px!important}
#weather-widget .now-panel[data-weather-size="xs"]{
  height:144px!important;min-height:144px!important;max-height:144px!important;
  grid-template-columns:minmax(98px,39%) minmax(0,61%)!important;
  padding:8px 7px 6px!important;column-gap:3px!important;row-gap:2px!important;
}
#weather-widget .now-panel[data-weather-size="xs"] .temperature{font-size:62px!important;letter-spacing:-.06em!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-desc{font-size:16px!important;margin-bottom:4px!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-meta{font-size:9.8px!important;grid-auto-rows:18px!important;gap:2px 4px!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-metric{gap:1px!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-updated-status{font-size:8px!important;padding:0!important}
#weather-widget .forecast-panel{
  width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
#weather-widget .forecast-panel .hours{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  -webkit-overflow-scrolling:touch!important;
}
#location-status.location-status{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding-inline:12px!important;
  box-sizing:border-box!important;
  text-align:center!important;
  font-size:clamp(18px,2vw,30px)!important;
  line-height:1.08!important;
  overflow-wrap:anywhere!important;
}
@media (max-width:359px){#location-status.location-status{font-size:17px!important;padding-inline:8px!important}}
#weather-widget{
  --weather-card-h:178px;
  align-items:stretch!important;
}
#weather-widget > .now-panel,#weather-widget > .forecast-panel{
  height:var(--weather-card-h)!important;
  min-height:var(--weather-card-h)!important;
  max-height:var(--weather-card-h)!important;
}
#weather-widget .now-panel{
  grid-template-columns:max-content minmax(0,1fr)!important;
  grid-template-areas:"temp summary" "updated updated"!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  column-gap:10px!important;
  padding:10px 12px 8px!important;
}
#weather-widget .now-panel .temperature{
  justify-self:start!important;
  align-self:center!important;
  font-size:86px!important;
  line-height:.84!important;
}
#weather-widget .now-panel .weather-summary{
  align-self:center!important;
  justify-self:start!important;
  width:max-content!important;
  max-width:100%!important;
  padding-left:2px!important;
  overflow:visible!important;
}
#weather-widget .now-panel .weather-desc{
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 6px!important;
  font-size:24px!important;
  line-height:1!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#weather-widget .now-panel .weather-meta{
  display:grid!important;
  grid-template-columns:max-content max-content!important;
  grid-template-areas:"feels humidity" "wind rain"!important;
  justify-content:start!important;
  align-items:center!important;
  width:max-content!important;
  max-width:100%!important;
  grid-auto-rows:auto!important;
  column-gap:22px!important;
  row-gap:6px!important;
  font-size:13px!important;
  overflow:visible!important;
}
#weather-widget .now-panel .weather-metric{
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  width:max-content!important;
  max-width:100%!important;
  gap:4px!important;
  overflow:visible!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel .weather-metric em,#weather-widget .now-panel .weather-metric b{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
#weather-widget .now-panel .weather-metric b{
  justify-self:auto!important;
}
#weather-widget .forecast-panel{
  display:flex!important;
  flex-direction:column!important;
  padding:10px 10px 8px!important;
}
#weather-widget .forecast-panel .panel-title{
  flex:0 0 auto!important;
  margin-bottom:6px!important;
}
#weather-widget .forecast-panel .hours{
  flex:1 1 auto!important;
  min-height:0!important;
  align-items:stretch!important;
}
#weather-widget .now-panel[data-weather-size="md"]{--_unused:0}
#weather-widget:has(.now-panel[data-weather-size="md"]){--weather-card-h:166px}
#weather-widget:has(.now-panel[data-weather-size="sm"]){--weather-card-h:154px}
#weather-widget:has(.now-panel[data-weather-size="xs"]){--weather-card-h:144px}
#weather-widget .now-panel[data-weather-size="md"] .temperature{font-size:78px!important}
#weather-widget .now-panel[data-weather-size="md"] .weather-desc{font-size:22px!important}
#weather-widget .now-panel[data-weather-size="md"] .weather-meta{font-size:12px!important;column-gap:16px!important;row-gap:5px!important}
#weather-widget .now-panel[data-weather-size="sm"] .temperature{font-size:68px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-desc{font-size:19px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-meta{font-size:11px!important;column-gap:12px!important;row-gap:4px!important}
#weather-widget .now-panel[data-weather-size="sm"] .weather-metric{gap:3px!important}
#weather-widget .now-panel[data-weather-size="xs"] .temperature{font-size:60px!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-desc{font-size:17px!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-meta{font-size:10px!important;column-gap:8px!important;row-gap:3px!important}
#weather-widget .now-panel[data-weather-size="xs"] .weather-metric{gap:2px!important}
.obsl-content-protected body,.obsl-content-protected body *:not(input):not(textarea):not(select):not(option):not([contenteditable="true"]){
  -webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;
}
.obsl-content-protected input,.obsl-content-protected textarea,.obsl-content-protected select,.obsl-content-protected [contenteditable="true"],.obsl-content-protected .admin-panel,.obsl-content-protected .admin-panel *{ -webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default!important; }
html,body{overflow-x:clip!important}
#pwa-apk-download{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:0!important;min-height:28px!important;height:28px!important;padding:3px 8px!important;margin:0!important;border:1px solid var(--line)!important;border-radius:7px!important;background:var(--panel)!important;color:var(--text)!important;font-size:10px!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important;text-decoration:none!important}
#pwa-apk-download[hidden]{display:none!important}
#system-menu.settings-tabbed{padding:8px!important;}
.settings-main-tabs,.settings-sub-tabs{
  display:flex!important;align-items:center;gap:5px;width:100%;overflow-x:auto;overflow-y:hidden;
  padding:5px 1px 7px;margin:0 0 7px;scrollbar-width:thin;-webkit-overflow-scrolling:touch;
  border-bottom:1px solid var(--line);white-space:nowrap;
}
.settings-main-tab,.settings-sub-tab{
  flex:0 0 auto;min-height:30px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;
  background:transparent;color:inherit;font:inherit;font-size:11px;font-weight:800;line-height:1.1;
  box-shadow:none;cursor:pointer;
}
.settings-main-tab.is-active,.settings-sub-tab.is-active{background:rgba(90,120,160,.12);border-color:currentColor;}
.settings-main-tab[hidden],.settings-sub-tab[hidden]{display:none!important}
#system-menu.settings-tabbed > details.system-group{display:none!important;margin:0!important;border:0!important;border-radius:0!important;overflow:visible!important}
#system-menu.settings-tabbed > details.system-group.settings-tab-active{display:block!important}
#system-menu.settings-tabbed > details.system-group>summary{display:none!important}
#system-menu.settings-tabbed > details.system-group>.system-group-body{padding:2px 1px 5px!important}
.settings-subtabbed>.tools-subgroup{display:none!important;margin:0!important;border:0!important;overflow:visible!important}
.settings-subtabbed>.tools-subgroup.settings-subtab-active{display:block!important}
.settings-subtabbed>.tools-subgroup>summary{display:none!important}
.settings-subtabbed>.tools-subgroup>.title-logo-tools-body{display:grid!important;gap:7px!important;padding:2px 0 5px!important}
@media (max-width:640px){.settings-main-tabs,.settings-sub-tabs{gap:4px;padding-bottom:6px}
.settings-main-tab,.settings-sub-tab{min-height:28px;padding:4px 8px;font-size:10.5px}
#system-menu.settings-tabbed{padding:6px!important}}
#system-menu.settings-tabbed{
  position:fixed!important;
  inset:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  transform:none!important;
  width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;
  padding:0!important;overflow:hidden!important;
  display:flex!important;flex-direction:column!important;
  border:1px solid var(--line)!important;border-radius:12px!important;background:var(--panel)!important;
  box-shadow:0 14px 44px rgba(0,0,0,.2)!important;z-index:2147482400!important;
}
#system-menu.settings-tabbed[hidden]{display:none!important}
#system-menu.settings-tabbed>.system-menu-head{
  flex:0 0 auto;min-height:48px!important;padding:8px 52px 8px 14px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  border-bottom:1px solid var(--line)!important;background:var(--panel)!important;
}
#system-menu.settings-tabbed>.system-menu-head .system-menu-title::before{content:"Settings"}
#system-menu.settings-tabbed>.system-menu-head .system-menu-title{font-size:17px!important;font-weight:900!important;text-align:center!important}
#system-menu.settings-tabbed>.system-menu-head .system-theme-toggle{right:44px!important;top:8px!important}
.settings-workspace-close{
  position:absolute;right:8px;top:8px;width:32px;height:32px;padding:0;border:0!important;background:transparent!important;
  box-shadow:none!important;border-radius:50%;font:700 24px/32px system-ui,sans-serif;color:inherit;cursor:pointer;z-index:2
}
#system-menu.settings-tabbed>.settings-main-tabs{
  flex:0 0 auto;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(118px,1fr))!important;
  gap:6px!important;width:100%!important;overflow:visible!important;padding:8px 10px!important;margin:0!important;
  border-bottom:1px solid var(--line)!important;background:rgba(248,248,245,.96)!important;white-space:normal!important;
}
#system-menu.settings-tabbed .settings-main-tab,#system-menu.settings-tabbed .settings-sub-tab{
  min-width:0!important;width:100%!important;min-height:40px!important;padding:8px 10px!important;
  border:1px solid var(--line)!important;border-radius:9px!important;background:var(--panel)!important;color:inherit!important;
  font:inherit!important;font-size:13px!important;font-weight:800!important;line-height:1.15!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-shadow:none!important;
}
#system-menu.settings-tabbed .settings-main-tab.is-active,#system-menu.settings-tabbed .settings-sub-tab.is-active{background:#111!important;color:#fff!important;border-color:#111!important}
#system-menu.settings-tabbed > details.system-group.settings-tab-active{
  flex:1 1 auto!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important;
  padding:14px!important;background:var(--panel)!important;
}
#system-menu.settings-tabbed > details.system-group>.system-group-body{padding:0!important;width:100%!important;max-width:none!important}
#system-menu.settings-tabbed .settings-sub-tabs{
  display:grid!important;grid-template-columns:repeat(auto-fit,minmax(125px,1fr))!important;
  gap:6px!important;width:100%!important;overflow:visible!important;padding:0 0 12px!important;margin:0 0 12px!important;
  border-bottom:1px solid var(--line)!important;white-space:normal!important;
}
#system-menu.settings-tabbed .settings-subtabbed>.tools-subgroup.settings-subtab-active{width:100%!important;max-width:none!important}
#system-menu.settings-tabbed .settings-subtabbed>.tools-subgroup>.title-logo-tools-body{width:100%!important;max-width:none!important;padding:0!important}
#system-menu.settings-tabbed input,#system-menu.settings-tabbed select,#system-menu.settings-tabbed textarea{font-size:14px!important}
@media (max-width:640px){#system-menu.settings-tabbed{inset:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))!important}
#system-menu.settings-tabbed>.settings-main-tabs{display:flex!important;overflow-x:auto!important;padding:6px!important;-webkit-overflow-scrolling:touch}
#system-menu.settings-tabbed>.settings-main-tabs .settings-main-tab{flex:0 0 auto!important;width:auto!important;min-width:100px!important;min-height:36px!important;font-size:12px!important}
#system-menu.settings-tabbed .settings-sub-tabs{display:flex!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
#system-menu.settings-tabbed .settings-sub-tab{flex:0 0 auto!important;width:auto!important;min-width:105px!important;min-height:34px!important;font-size:11.5px!important}
#system-menu.settings-tabbed > details.system-group.settings-tab-active{padding:9px!important}}
html body > #system-menu.settings-tabbed{
  position:fixed!important;
  top:max(8px,env(safe-area-inset-top))!important;
  right:max(8px,env(safe-area-inset-right))!important;
  bottom:max(8px,env(safe-area-inset-bottom))!important;
  left:max(8px,env(safe-area-inset-left))!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  transform:none!important;
  overflow:hidden!important;
  z-index:2147483600!important;
}
html body > #system-menu.settings-tabbed > .system-menu-head{flex:0 0 auto!important}
html body > #system-menu.settings-tabbed > .settings-main-tabs{
  position:relative!important;z-index:3!important;flex:0 0 auto!important;
  visibility:visible!important;opacity:1!important;
}
html body > #system-menu.settings-tabbed > details.system-group.settings-tab-active{
  display:block!important;flex:1 1 0!important;min-height:0!important;
  overflow:auto!important;-webkit-overflow-scrolling:touch!important;
}
@media (max-width:640px){html body > #system-menu.settings-tabbed{
  top:max(4px,env(safe-area-inset-top))!important;
  right:max(4px,env(safe-area-inset-right))!important;
  bottom:max(4px,env(safe-area-inset-bottom))!important;
  left:max(4px,env(safe-area-inset-left))!important;
 }}
html body > #system-menu.settings-tabbed > details.system-group{display:none!important}
html body > #system-menu.settings-tabbed > details.system-group.settings-tab-active{display:block!important}
html body > #system-menu.settings-tabbed > details.system-group > summary{display:none!important}
.attendance-table-wrap{
  overflow-x:auto!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
  overscroll-behavior:contain!important;
  max-width:100%!important;
}
.attendance-table{width:max-content!important;min-width:100%!important;}
.attendance-table-wrap{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:scroll!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
  overscroll-behavior-x:contain!important;
  scrollbar-width:thin!important;
  scrollbar-gutter:stable both-edges!important;
}
.attendance-table{
  width:max-content!important;
  min-width:760px!important;
}
@media (max-width:700px){.attendance-table{min-width:760px!important}}
.attendance-table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
}
.attendance-table{
  width:100%!important;
  min-width:1520px!important;
  table-layout:auto!important;
}
.attendance-table th,.attendance-table td{width:auto!important;white-space:nowrap!important}
.attendance-table th:nth-child(1),.attendance-table td:nth-child(1){min-width:220px!important}
.attendance-table th:nth-child(2),.attendance-table td:nth-child(2){min-width:135px!important}
.attendance-table th:nth-child(3),.attendance-table td:nth-child(3){min-width:90px!important}
.attendance-table th:nth-child(4),.attendance-table td:nth-child(4){min-width:110px!important}
.attendance-table th:nth-child(5),.attendance-table td:nth-child(5){min-width:76px!important}
.attendance-table th:nth-child(n/**/+6),.attendance-table td:nth-child(n/**/+6){min-width:82px!important}
.attendance-table th:nth-child(11),.attendance-table td:nth-child(11){min-width:115px!important}
.attendance-table th:nth-child(13),.attendance-table td:nth-child(13){min-width:96px!important}
.attendance-table th:nth-child(14),.attendance-table td:nth-child(14){min-width:82px!important}
.attendance-table th:nth-child(15),.attendance-table td:nth-child(15){min-width:58px!important}
@media (min-width:1700px){.attendance-table{min-width:100%!important}}
@media (max-width:700px){.attendance-table{width:100%!important;min-width:1520px!important}}
.birthday-tomorrow-lead{font-weight:900!important;color:inherit!important}
#birthday-admin-modal .admin-dialog{max-width:min(920px,calc(100vw - 22px));max-height:min(88vh,900px);overflow:auto}
.birthday-config-stack{display:grid;gap:10px;width:100%;min-width:0}
.birthday-config-section{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}
.birthday-config-section>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;padding:10px;font-weight:900}
.birthday-config-section>summary::-webkit-details-marker{display:none}
.birthday-config-section>summary::after{content:"⌄";flex:0 0 auto;transition:transform .16s ease}
.birthday-config-section[open]>summary::after{transform:rotate(180deg)}
.birthday-config-body{padding:0 10px 10px;min-width:0;display:grid;gap:10px}
.birthday-admin-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.birthday-admin-toolbar button{white-space:nowrap}
.birthday-crud-form{display:grid;grid-template-columns:minmax(0,1fr) 180px auto auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:9px}
.birthday-crud-form label{display:grid;gap:4px;font-weight:700;font-size:12px}
.birthday-crud-form input{width:100%;min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text)}
.birthday-employee-table-wrap{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:9px}
.birthday-employee-table{width:100%;border-collapse:collapse;font-size:12px}
.birthday-employee-table th,.birthday-employee-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.birthday-employee-table th{position:sticky;top:0;z-index:2;background:var(--panel);font-weight:900}
.birthday-employee-table td:last-child,.birthday-employee-table th:last-child{text-align:right;white-space:nowrap}
.birthday-employee-table button{padding:4px 7px;font-size:11px;margin-left:4px}
.birthday-admin-empty{padding:18px;text-align:center;color:var(--muted)}
#birthday-admin-gear{position:relative;z-index:12;pointer-events:auto!important}
@media (max-width:700px){.birthday-crud-form{grid-template-columns:1fr 1fr}
.birthday-crud-form .birthday-name-field{grid-column:1/-1}
.birthday-employee-table{min-width:520px}}
@media (max-width:430px){.birthday-crud-form{grid-template-columns:1fr}
.birthday-crud-form .birthday-name-field{grid-column:auto}}
:root{--obsl-app-max-width:1180px}
.dashboard{
  width:100%!important;max-width:var(--obsl-app-max-width)!important;
  min-height:0!important;height:auto!important;margin-left:auto!important;margin-right:auto!important;
  padding-bottom:0!important;
}
html:not([data-obsl-role="admin"]) #birthday-admin-gear,html:not([data-obsl-role="admin"]) #birthday-admin-modal{display:none!important;pointer-events:none!important}
html:not([data-obsl-role="admin"]) #birthday-event-date{display:block!important;pointer-events:auto!important}
.dashboard,.managed-section{overflow-anchor:none}
.dashboard > .footer-frame,body.obsl-tools-visible .dashboard > .footer-frame,body.pwa-visible .dashboard > .footer-frame{
  display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;
  min-height:0!important;height:auto!important;margin:2px 0 0!important;padding:0!important;
  border:1.5px solid var(--line)!important;border-radius:12px!important;background:var(--panel)!important;box-sizing:border-box!important;
}
.dashboard > .footer-frame .site-footer{
  width:100%!important;max-width:100%!important;min-width:0!important;min-height:28px!important;height:auto!important;
  margin:0!important;padding:3px 6px!important;gap:4px!important;line-height:1.1!important;
  border:0!important;border-radius:10px!important;background:transparent!important;box-sizing:border-box!important;
}
.dashboard > .footer-frame .footer-copyright-group{min-height:20px!important}
.dashboard > .footer-frame .footer-tools-row{min-height:0!important;margin:2px 0 0!important;padding:0!important}
.dashboard > .footer-frame .footer-tools-row.tools-hidden{display:none!important;height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}
.dashboard > .footer-frame .pwa-install-compact,.dashboard > .footer-frame .pwa-install-banner{min-height:30px!important;margin:2px auto!important;padding:3px 5px!important}
body{padding-bottom:0!important}
#obsl-toast-stack{
  position:fixed!important;
  z-index:2147483200!important;
  max-height:min(46dvh,360px)!important;
  overflow:visible!important;
  contain:layout style paint!important;
  margin:0!important;
}
#obsl-toast-stack.is-footer-anchored,#obsl-toast-stack.is-footer-above{
  bottom:auto!important;
}
@media (max-width:640px){#obsl-toast-stack{max-height:min(42dvh,300px)!important}}
#obsl-toast-stack{
  position:fixed!important;
  left:0!important;right:0!important;
  top:auto;
  bottom:max(10px,env(safe-area-inset-bottom))!important;
  width:100vw!important;max-width:100vw!important;
  margin:0!important;
  padding:2px 4px!important;
  pointer-events:none!important;
  overflow:visible!important;
  z-index:2147483200!important;
}
#obsl-toast-stack.is-footer-anchored,#obsl-toast-stack.is-footer-above{bottom:auto!important}
#obsl-toast-stack>.obsl-toast-item{pointer-events:auto!important}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-icon-lane{
  width:var(--obsl-toast-icon-size,48px)!important;
  height:var(--obsl-toast-icon-size,48px)!important;
  min-width:var(--obsl-toast-icon-size,48px)!important;
  min-height:var(--obsl-toast-icon-size,48px)!important;
  max-width:var(--obsl-toast-icon-size,48px)!important;
  max-height:var(--obsl-toast-icon-size,48px)!important;
}
#obsl-toast-stack>.obsl-toast-item>.obsl-toast-icon-lane>.obsl-toast-fixed-icon{
  width:var(--obsl-toast-icon-size,48px)!important;
  height:var(--obsl-toast-icon-size,48px)!important;
  max-width:var(--obsl-toast-icon-size,48px)!important;
  max-height:var(--obsl-toast-icon-size,48px)!important;
  object-fit:cover!important;
}
@media (max-width:640px){#obsl-toast-stack{padding-left:58px!important;padding-right:4px!important}}
#obsl-toast-stack{contain:layout style!important}
#footer-section-editor:not([hidden]){position:fixed!important;z-index:2147482100!important;left:50%!important;right:auto!important;top:max(68px,calc(env(safe-area-inset-top) + 12px))!important;transform:translateX(-50%)!important;width:min(94vw,680px)!important;max-width:min(94vw,680px)!important;max-height:calc(100dvh - 86px)!important;margin:0!important;padding:10px!important;overflow-x:hidden!important;overflow-y:auto!important;border:1px solid var(--line)!important;border-radius:14px!important;background:var(--panel,#fff)!important;box-shadow:0 18px 55px rgba(0,0,0,.22)!important}
#obsl-toast-stack{
  position:fixed!important;
  top:auto!important;
  bottom:max(8px,env(safe-area-inset-bottom))!important;
  transform:translate3d(0,0,0)!important;
  -webkit-transform:translate3d(0,0,0)!important;
  backface-visibility:hidden!important;
  -webkit-backface-visibility:hidden!important;
  isolation:isolate!important;
  contain:layout style!important;
}
#obsl-toast-stack.is-footer-anchored,#obsl-toast-stack.is-footer-above{top:auto!important;bottom:max(8px,env(safe-area-inset-bottom))!important}
#obsl-toast-stack>.obsl-toast-item{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden}
#obsl-toast-stack .obsl-toast-item-track{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}
html,body,*{scrollbar-width:none!important;-ms-overflow-style:none!important}
*::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
#brand-logo{opacity:0!important;transition:none!important}
#brand-logo.obsl-dynamic-hydrated{opacity:1!important}
#brand-title{visibility:hidden}
#brand-title.obsl-dynamic-hydrated{visibility:visible}
#obsl-settings-toast-stack{position:fixed;z-index:2147483500;left:50%;top:max(14px,calc(env(safe-area-inset-top) + 10px));transform:translateX(-50%);width:min(520px,calc(100% - 24px));display:grid;gap:8px;pointer-events:none}
.obsl-settings-toast{opacity:0;transform:translateY(-9px) scale(.98);transition:opacity .18s ease,transform .18s ease;padding:11px 14px;border-radius:14px;box-shadow:0 12px 38px rgb(17 24 39/.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);font:800 13px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;text-align:center;overflow-wrap:anywhere}
.obsl-settings-toast.is-show{opacity:1;transform:none}
.obsl-settings-toast.is-ok{background:rgb(236 253 243/.97);color:#067647;border:1px solid rgb(6 118 71/.16)}
.obsl-settings-toast.is-error{background:rgb(255 241 240/.97);color:#b42318;border:1px solid rgb(180 35 24/.16)}
#system-menu .admin-form-message{display:none!important}
.obsl-effect-preview-widget{position:sticky;top:68px;z-index:8;min-height:88px;margin:0 0 12px;padding:14px;border:1px solid color-mix(in srgb,var(--line,#cfd3d8) 72%,transparent);border-radius:20px;background:color-mix(in srgb,var(--panel,#fff) 86%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.25);backdrop-filter:blur(20px) saturate(1.25);box-shadow:0 10px 28px rgba(17,24,39,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;overflow:hidden;contain:paint}
.obsl-effect-preview-widget>strong{font-size:20px}
.obsl-effect-preview-widget>span{opacity:.72}
.obsl-admin-color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}
.obsl-admin-color-grid label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700}
.obsl-admin-color-grid input[type=color]{width:58px;height:34px;border-radius:10px;padding:2px}
#popup-live-preview{min-height:160px}
.obsl-popup-preview-card{width:min(92%,420px);min-height:110px;padding:18px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;background:var(--popup-bg,#fff);background-image:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),var(--popup-bg-image,none);background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.55);border-radius:var(--popup-radius,28px);-webkit-backdrop-filter:blur(var(--popup-blur,26px)) saturate(1.35);backdrop-filter:blur(var(--popup-blur,26px)) saturate(1.35);box-shadow:0 18px 48px rgba(17,24,39,.18);color:var(--popup-text,#111827)}
.obsl-popup-preview-card b{font-size:var(--popup-title-size,22px);color:var(--popup-title,#111827)}
.obsl-popup-preview-card span{font-size:var(--popup-content-size,15px);color:var(--popup-text,#111827)}
.obsl-popup-preview-card button{border:0;border-radius:999px;padding:9px 15px;background:var(--popup-button-bg,#111827);color:var(--popup-button-color,#fff);font-size:var(--popup-button-size,15px);font-weight:800}
#obsl-popup-layer{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;background:transparent;isolation:isolate}
#obsl-popup-layer.has-backdrop{background:rgba(17,24,39,.24)!important;-webkit-backdrop-filter:blur(9px) saturate(1.15);backdrop-filter:blur(9px) saturate(1.15)}
.obsl-popup-card{background:color-mix(in srgb,var(--popup-bg,#fff) 78%,transparent)!important;background-image:linear-gradient(color-mix(in srgb,var(--popup-bg,#fff) 72%,transparent),color-mix(in srgb,var(--popup-bg,#fff) 72%,transparent)),var(--popup-bg-image,none)!important;background-size:cover!important;background-position:center!important;color:var(--popup-text,#111827)!important;border:1px solid rgba(255,255,255,.62)!important;border-radius:var(--popup-radius,28px)!important;box-shadow:0 24px 70px rgba(15,23,42,.28),inset 0 1px 0 rgba(255,255,255,.72)!important;padding:20px!important;-webkit-backdrop-filter:blur(var(--popup-blur,26px)) saturate(1.45)!important;backdrop-filter:blur(var(--popup-blur,26px)) saturate(1.45)!important;overscroll-behavior:contain}
.obsl-popup-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.42),transparent 34%,rgba(255,255,255,.12));mix-blend-mode:soft-light}
.obsl-popup-card h3{position:relative;z-index:1;font-size:var(--popup-title-size,22px)!important;color:var(--popup-title,#111827)!important;line-height:1.15;margin:0 42px 10px 0!important}
.obsl-popup-content{position:relative;z-index:1;font-size:var(--popup-content-size,15px)!important;color:var(--popup-text,#111827)!important;line-height:1.55!important}
.obsl-popup-close{z-index:3;color:var(--popup-close-color,#111827)!important;font-size:var(--popup-close-size,26px)!important;background:rgba(255,255,255,.54)!important;border:1px solid rgba(255,255,255,.68)!important;box-shadow:0 4px 16px rgba(15,23,42,.1)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.obsl-popup-close img{width:70%;height:70%;object-fit:contain}
.obsl-popup-action,.obsl-popup-cancel{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 16px;border-radius:999px!important;font-size:var(--popup-button-size,15px)!important;font-weight:850!important;text-decoration:none;border:0;cursor:pointer}
.obsl-popup-action{background:var(--popup-button-bg,#111827)!important;color:var(--popup-button-color,#fff)!important}
.obsl-popup-cancel{background:rgba(255,255,255,.52);color:var(--popup-text,#111827);border:1px solid rgba(17,24,39,.1)}
.obsl-popup-dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}
.obsl-popup-image{position:relative;z-index:1;border-radius:calc(var(--popup-radius,28px) * .55)!important}
@keyframes obslV40Blink{0%,100%{opacity:.28}
50%{opacity:1}}
:root{--obsl-text-speed:2.4s;--obsl-text-intensity:1}
#global-text-preview[data-effect="pulse"] strong{animation:obslTextPulse var(--obsl-text-speed) ease-in-out infinite}
#global-text-preview[data-effect="float"] strong{animation:obslTextFloat var(--obsl-text-speed) ease-in-out infinite}
#global-text-preview[data-effect="glow"] strong{animation:obslTextGlow var(--obsl-text-speed) ease-in-out infinite alternate}
#global-text-preview[data-effect="pingpong"] strong{animation:obslTextPing var(--obsl-text-speed) ease-in-out infinite alternate}
#global-text-preview[data-effect="shimmer"] strong{background-image:linear-gradient(100deg,currentColor 18%,rgba(255,255,255,.96) 48%,currentColor 78%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:obslTextShimmer var(--obsl-text-speed) linear infinite}
#global-text-preview[data-effect="blink"] strong{animation:obslTextBlink var(--obsl-text-speed) ease-in-out infinite}
html[data-obsl-text-scope="headers"][data-obsl-text-effect]:not([data-obsl-text-effect="none"]) :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){animation-name:var(--obsl-header-animation,none)}
html[data-obsl-text-scope="all"][data-obsl-text-effect="pulse"] :is(button,.card-title,.widget-title){animation:obslTextPulse var(--obsl-text-speed) ease-in-out infinite}
html[data-obsl-text-scope="all"][data-obsl-text-effect="glow"] :is(button,.card-title,.widget-title){animation:obslTextGlow var(--obsl-text-speed) ease-in-out infinite alternate}
@keyframes obslTextPulse{0%,100%{transform:scale(1);opacity:1}
50%{transform:scale(calc(1 - .025 * var(--obsl-text-intensity)));opacity:.76}}
@keyframes obslTextFloat{0%,100%{transform:translateY(0)}
50%{transform:translateY(calc(-3px * var(--obsl-text-intensity)))}}
@keyframes obslTextGlow{from{text-shadow:0 0 0 transparent}
to{text-shadow:0 0 calc(13px * var(--obsl-text-intensity)) currentColor}}
@keyframes obslTextPing{from{transform:translateX(0)}
to{transform:translateX(calc(18px * var(--obsl-text-intensity)))}}
@keyframes obslTextShimmer{to{background-position:-220% 0}}
@keyframes obslTextBlink{0%,100%{opacity:1}
50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){html [data-obsl-text-effect],html[data-obsl-text-effect] h1,html[data-obsl-text-effect] h2,html[data-obsl-text-effect] h3{animation-duration:.001ms!important;animation-iteration-count:1!important}}
@media (max-width:640px){.obsl-effect-preview-widget{top:60px}
.obsl-admin-color-grid{grid-template-columns:1fr}
.obsl-popup-dialog-actions{display:grid;grid-template-columns:1fr 1fr}
.obsl-popup-card{padding:16px!important}}
html[data-obsl-text-scope="headers"][data-obsl-text-effect="pulse"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary),html[data-obsl-text-scope="all"][data-obsl-text-effect="pulse"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){animation:obslTextPulse var(--obsl-text-speed) ease-in-out infinite}
html[data-obsl-text-scope="headers"][data-obsl-text-effect="float"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary),html[data-obsl-text-scope="all"][data-obsl-text-effect="float"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){animation:obslTextFloat var(--obsl-text-speed) ease-in-out infinite}
html[data-obsl-text-scope="headers"][data-obsl-text-effect="glow"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary),html[data-obsl-text-scope="all"][data-obsl-text-effect="glow"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){animation:obslTextGlow var(--obsl-text-speed) ease-in-out infinite alternate}
html[data-obsl-text-scope="headers"][data-obsl-text-effect="pingpong"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary),html[data-obsl-text-scope="all"][data-obsl-text-effect="pingpong"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){animation:obslTextPing var(--obsl-text-speed) ease-in-out infinite alternate}
html[data-obsl-text-scope="headers"][data-obsl-text-effect="shimmer"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary),html[data-obsl-text-scope="all"][data-obsl-text-effect="shimmer"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){background-image:linear-gradient(100deg,currentColor 18%,rgba(255,255,255,.96) 48%,currentColor 78%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:obslTextShimmer var(--obsl-text-speed) linear infinite}
html[data-obsl-text-scope="headers"][data-obsl-text-effect="blink"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary),html[data-obsl-text-scope="all"][data-obsl-text-effect="blink"] :is(header strong,.header-info strong,.system-group>summary,.tools-subgroup>summary){animation:obslTextBlink var(--obsl-text-speed) ease-in-out infinite}
.obsl-stars-mini-widget,.obsl-fire-mini-widget{position:relative;min-height:86px;overflow:hidden;display:flex!important;align-items:center;justify-content:center;gap:18px;background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(236,240,248,.52))!important}
.obsl-stars-mini-widget span,.obsl-fire-mini-widget span{display:inline-block;font-size:24px;transform-origin:center;opacity:calc(.65 * var(--mini-density,1))}
.obsl-stars-mini-widget b,.obsl-fire-mini-widget b{position:absolute;left:12px;bottom:8px;font:750 11px/1 system-ui;color:#667085}
.obsl-stars-mini-widget[data-enabled="0"] span,.obsl-fire-mini-widget[data-enabled="0"] span{animation:none!important;opacity:.18!important}
.obsl-stars-mini-widget span:nth-child(1){animation:obslMiniStar 2.2s linear infinite}
.obsl-stars-mini-widget span:nth-child(2){animation:obslMiniStar 2.8s linear .35s infinite}
.obsl-stars-mini-widget span:nth-child(3){animation:obslMiniStar 1.9s linear .7s infinite}
.obsl-stars-mini-widget[data-speed="slow"] span{animation-duration:3.6s}
.obsl-stars-mini-widget[data-speed="fast"] span{animation-duration:1.25s}
.obsl-fire-mini-widget span:nth-child(1){animation:obslMiniFire 1.7s ease-out infinite}
.obsl-fire-mini-widget span:nth-child(2){animation:obslMiniFire 1.7s ease-out .45s infinite}
.obsl-fire-mini-widget span:nth-child(3){animation:obslMiniFire 1.7s ease-out .9s infinite}
@keyframes obslMiniStar{0%{transform:translateY(-28px) rotate(0);opacity:0}
22%{opacity:calc(.8 * var(--mini-density,1))}
100%{transform:translateY(34px) rotate(170deg);opacity:0}}
@keyframes obslMiniFire{0%{transform:scale(.15);opacity:0}
35%{opacity:calc(.9 * var(--mini-density,1))}
100%{transform:scale(1.65) rotate(45deg);opacity:0}}
#popup-live-preview .obsl-popup-preview-card{position:relative;padding-top:28px!important}
#popup-preview-close{position:absolute;right:10px;top:5px;font-style:normal;font-weight:900;line-height:1;pointer-events:none}
#obsl-toast-stack,#obsl-settings-toast-stack{
  z-index:2147483647!important;
  isolation:isolate!important;
  pointer-events:none!important;
}
#obsl-toast-stack>.obsl-toast-item,#obsl-settings-toast-stack>*{pointer-events:auto!important}
#obsl-popup-layer .obsl-popup-close,#system-popup-live-preview .obsl-popup-close{
  appearance:none!important;-webkit-appearance:none!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
  outline:0!important;border-radius:0!important;padding:0!important;margin:0!important;
  display:grid!important;place-items:center!important;line-height:1!important;
  width:var(--popup-close-size,28px)!important;height:var(--popup-close-size,28px)!important;
  min-width:var(--popup-close-size,28px)!important;min-height:var(--popup-close-size,28px)!important;
  color:var(--popup-close-color,#111827)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
#obsl-popup-layer .obsl-popup-close:active,#system-popup-live-preview .obsl-popup-close:active{transform:scale(.88)!important;background:transparent!important;box-shadow:none!important}
#obsl-popup-layer .obsl-popup-close img,#system-popup-live-preview .obsl-popup-close img{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;background:transparent!important;border:0!important;box-shadow:none!important}
.system-popup-icon-gallery{display:flex;gap:8px;overflow-x:auto;padding:8px 1px;margin:4px 0 10px;scrollbar-width:none}
.system-popup-icon-gallery::-webkit-scrollbar{display:none}
.system-popup-icon-choice{flex:0 0 52px;width:52px!important;height:52px!important;padding:5px!important;border:1px solid rgba(17,24,39,.12)!important;border-radius:13px!important;background:var(--panel,#fff)!important;box-shadow:none!important}
.system-popup-icon-choice.is-active{outline:3px solid color-mix(in srgb,var(--accent,#111827) 24%,transparent)!important;outline-offset:1px!important}
.system-popup-icon-choice img{width:100%;height:100%;object-fit:contain}
#system-popup-live-preview .obsl-popup-preview-card{position:relative;width:min(100%,var(--popup-width,420px));margin:auto;padding:24px;border-radius:var(--popup-radius,28px);background:color-mix(in srgb,var(--popup-bg,#fff) 80%,transparent);box-shadow:0 18px 50px rgba(15,23,42,.13);backdrop-filter:blur(var(--popup-blur,26px));-webkit-backdrop-filter:blur(var(--popup-blur,26px));display:grid;gap:10px}
#system-popup-live-preview .obsl-popup-preview-card>b{font-size:var(--popup-title-size,22px);color:var(--popup-title,#111827)}
#system-popup-live-preview .obsl-popup-preview-card>span{font-size:var(--popup-content-size,15px);color:var(--popup-text,#111827)}
#system-popup-live-preview .obsl-popup-preview-card>.preview-confirm{justify-self:end;border:0;border-radius:999px;min-height:38px;padding:7px 16px;font-weight:800}
.obsl-effects-help{margin:0 0 10px;color:var(--muted,#667085);font-size:13px;line-height:1.45}
.obsl-zone-effect-list{display:grid;gap:8px}
.obsl-zone-effect>summary{font-weight:800}
.obsl-zone-preview{min-height:82px;border:1px dashed rgba(17,24,39,.14);border-radius:14px;padding:12px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;overflow:hidden;background:color-mix(in srgb,var(--panel,#fff) 86%,transparent)}
.obsl-zone-preview strong{font-size:18px}
.obsl-zone-preview span{color:var(--muted,#667085);font-size:13px}
[data-obsl-zone-effect]{--obsl-zone-speed:2.4s;--obsl-zone-intensity:1;will-change:transform,opacity,filter,text-shadow}
[data-obsl-zone-effect="pulse"]{animation:obslZonePulse var(--obsl-zone-speed) ease-in-out infinite!important}
[data-obsl-zone-effect="float"]{animation:obslZoneFloat var(--obsl-zone-speed) ease-in-out infinite!important}
[data-obsl-zone-effect="glow"]{animation:obslZoneGlow var(--obsl-zone-speed) ease-in-out infinite alternate!important}
[data-obsl-zone-effect="pingpong"]{animation:obslZonePing var(--obsl-zone-speed) ease-in-out infinite alternate!important}
[data-obsl-zone-effect="shimmer"]{animation:obslZoneShimmer var(--obsl-zone-speed) ease-in-out infinite!important}
[data-obsl-zone-effect="blink"]{animation:obslZoneBlink var(--obsl-zone-speed) ease-in-out infinite!important}
@keyframes obslZonePulse{0%,100%{transform:scale(1);opacity:1}
50%{transform:scale(calc(1 - .035 * var(--obsl-zone-intensity)));opacity:calc(1 - .18 * var(--obsl-zone-intensity))}}
@keyframes obslZoneFloat{0%,100%{transform:translateY(0)}
50%{transform:translateY(calc(-3px * var(--obsl-zone-intensity)))}}
@keyframes obslZoneGlow{from{text-shadow:0 0 0 currentColor}
to{text-shadow:0 0 calc(10px * var(--obsl-zone-intensity)) currentColor}}
@keyframes obslZonePing{from{transform:translateX(0)}
to{transform:translateX(calc(12px * var(--obsl-zone-intensity)))}}
@keyframes obslZoneShimmer{0%,100%{opacity:.72;filter:brightness(.92)}
50%{opacity:1;filter:brightness(calc(1 + .22 * var(--obsl-zone-intensity)))}}
@keyframes obslZoneBlink{0%,100%{opacity:1}
50%{opacity:calc(1 - .55 * var(--obsl-zone-intensity))}}
.obsl-vb-preview-visual{display:grid;place-items:center;width:var(--vb-size,50px);height:var(--vb-size,50px);background:transparent;border:0;box-shadow:none;filter:none}
.obsl-vb-preview-visual img,.obsl-vb-preview-fallback{display:block;width:100%;height:100%;object-fit:contain;background:transparent;border:0;border-radius:0;box-shadow:none;filter:none}
.obsl-vb-preview-fallback{display:grid;place-items:center;font-size:calc(var(--vb-size,50px)*.46);line-height:1}
.obsl-vb-preview-visual{position:relative!important}

/* OBSL v9 core: scroll remains functional while scrollbar chrome stays hidden. */
html,body,*{scrollbar-width:none!important;-ms-overflow-style:none!important}
*::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
html,body{max-width:100%;overflow-x:hidden!important}
#header-frame{position:relative!important;overflow:visible!important}
#birthday-event-panel{order:2}
#event-frame{order:3}


/* OBSL v9.3 compact weather/footer fixes */
#weather-widget .forecast-panel{padding:4px 8px 5px!important;overflow:hidden!important}
#weather-widget .forecast-panel .hours{flex:1 1 100%!important;height:100%!important;min-height:0!important;border-top:0!important;align-items:stretch!important;overflow-y:hidden!important}
#weather-widget .forecast-panel .hour{height:100%!important;min-height:0!important;padding:5px 4px 4px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;overflow:hidden!important}
#weather-widget .forecast-panel .htime{line-height:1.05!important}
#weather-widget .forecast-panel .hicon{font-size:25px!important;line-height:1.1!important;margin:1px 0!important;flex:0 0 auto!important}
#weather-widget .forecast-panel .htemp{line-height:1.05!important}
#weather-widget .forecast-panel .hrain{margin-top:1px!important;line-height:1.05!important;min-height:1em!important}
.dashboard{min-height:0!important;height:auto!important;padding-bottom:2px!important}
.dashboard>.footer-frame,body.obsl-tools-visible .dashboard>.footer-frame,body.pwa-visible .dashboard>.footer-frame{margin:2px 0 0!important;min-height:0!important;height:auto!important}
.dashboard>.footer-frame .site-footer{min-height:24px!important;padding:2px 5px!important;margin:0!important}
.dashboard>.footer-frame .footer-copyright-group{min-height:18px!important}
#obsl-toast-stack{bottom:max(6px,env(safe-area-inset-bottom))!important;max-height:min(38dvh,250px)!important;overscroll-behavior:contain!important}
#obsl-toast-stack.is-footer-anchored,#obsl-toast-stack.is-footer-above{bottom:max(6px,env(safe-area-inset-bottom))!important;top:auto!important}
@media(max-width:640px){#weather-widget .forecast-panel{padding:3px 5px 4px!important}#weather-widget .forecast-panel .hour{padding:4px 3px 3px!important}#weather-widget .forecast-panel .hicon{font-size:22px!important}}

/* ===== OBSL V9.3 responsive stability + modern Settings + modal priority ===== */
#header-frame #clock{
  font-size:min(var(--header-clock-effective-size,var(--header-clock-size,72px)),clamp(62px,9vw,118px))!important;
  max-width:100%!important;box-sizing:border-box!important;
}
@media(max-width:760px){#header-frame #clock{font-size:min(var(--header-clock-effective-size,var(--header-clock-size,72px)),clamp(52px,21vw,92px))!important}}
@media(max-width:430px){#header-frame #clock{font-size:min(var(--header-clock-effective-size,var(--header-clock-size,72px)),clamp(48px,20vw,82px))!important}}

/* Weather artwork is local: /Background/Weather/<Condition>/01.webp + 02.webp */
#weather-widget .now-panel{position:relative!important;isolation:isolate!important;overflow:hidden!important;background:var(--panel)!important}




#weather-widget .forecast-panel{background-image:linear-gradient(color-mix(in srgb,var(--panel) 91%,transparent),color-mix(in srgb,var(--panel) 91%,transparent)),var(--weather-theme-image)!important;background-size:cover!important;background-position:center!important}

/* Dialogs/confirmations must always be above Settings and Toasts. */
html body>#obsl-popup-layer{z-index:2147483647!important;pointer-events:auto!important;isolation:isolate!important}
html body>#system-menu.settings-tabbed{z-index:2147483400!important}
#obsl-toast-stack,#obsl-settings-toast-stack{z-index:2147483500!important}
#obsl-popup-layer.is-dialog .obsl-popup-card{max-width:min(92vw,520px)!important;max-height:min(82dvh,720px)!important;overflow:auto!important}

/* iOS/Android inspired Settings workspace. */
html body>#system-menu.settings-tabbed{
  display:grid!important;grid-template-columns:minmax(190px,230px) minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important;
  gap:0!important;border-radius:22px!important;border:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important;
  background:color-mix(in srgb,var(--panel) 96%,#f4f5f7 4%)!important;box-shadow:0 24px 80px rgba(15,23,42,.26)!important;
}
#system-menu.settings-tabbed>.system-menu-head{grid-column:1/-1!important;grid-row:1!important;min-height:52px!important;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)!important;background:color-mix(in srgb,var(--panel) 94%,transparent)!important;backdrop-filter:blur(24px)!important}
#system-menu.settings-tabbed>.system-menu-head .system-menu-title::before{content:"Cài đặt"!important;letter-spacing:-.02em}
#system-menu.settings-tabbed>.settings-main-tabs{
  grid-column:1!important;grid-row:2!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;
  gap:5px!important;padding:12px 9px!important;margin:0!important;overflow:auto!important;border:0!important;border-right:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;
  background:color-mix(in srgb,var(--panel) 88%,#eef1f5 12%)!important;
}
#system-menu.settings-tabbed .settings-main-tab{
  position:relative!important;display:grid!important;grid-template-columns:28px minmax(0,1fr) 16px!important;align-items:center!important;text-align:left!important;
  min-height:48px!important;width:100%!important;padding:8px 10px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:inherit!important;font-size:13px!important;font-weight:760!important;
}
#system-menu.settings-tabbed .settings-main-tab::before{content:attr(data-icon);display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--panel) 75%,#dce5f4 25%);font-size:16px}
#system-menu.settings-tabbed .settings-main-tab::after{content:"›";font-size:20px;opacity:.38;text-align:right}
#system-menu.settings-tabbed .settings-main-tab.is-active{background:color-mix(in srgb,#0a84ff 13%,var(--panel))!important;color:inherit!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,#0a84ff 22%,transparent)!important}
#system-menu.settings-tabbed .settings-main-tab.is-active::before{background:#0a84ff;color:#fff}
#system-menu.settings-tabbed>details.system-group.settings-tab-active{grid-column:2!important;grid-row:2!important;min-width:0!important;padding:16px 18px 24px!important;background:var(--panel)!important;overflow:auto!important}
#system-menu.settings-tabbed .settings-sub-tabs{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:8px!important;padding:0 0 14px!important;border:0!important;margin:0 0 12px!important}
#system-menu.settings-tabbed .settings-sub-tab{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;min-height:44px!important;padding:9px 12px!important;border:1px solid color-mix(in srgb,var(--line) 80%,transparent)!important;border-radius:12px!important;background:color-mix(in srgb,var(--panel) 94%,#eef1f5 6%)!important;color:inherit!important;text-align:left!important;font-size:12px!important;font-weight:760!important}
#system-menu.settings-tabbed .settings-sub-tab::before{content:attr(data-icon);font-size:16px}
#system-menu.settings-tabbed .settings-sub-tab.is-active{background:color-mix(in srgb,#0a84ff 12%,var(--panel))!important;border-color:color-mix(in srgb,#0a84ff 35%,var(--line))!important;color:inherit!important}
#system-menu.settings-tabbed :is(.admin-subsection,.notification-channel-card,.footer-admin-item,.countdown-admin-section){border-radius:14px!important;border-color:color-mix(in srgb,var(--line) 72%,transparent)!important;box-shadow:none!important;background:color-mix(in srgb,var(--panel) 96%,#f2f4f7 4%)!important}
#system-menu.settings-tabbed :is(input,select,textarea){border-radius:10px!important;min-height:38px!important}
#system-menu.settings-tabbed .system-menu-button{border-radius:10px!important;min-height:40px!important}
@media(max-width:700px){
 html body>#system-menu.settings-tabbed{grid-template-columns:1fr!important;grid-template-rows:auto auto minmax(0,1fr)!important;border-radius:17px!important}
 #system-menu.settings-tabbed>.system-menu-head{grid-column:1!important;grid-row:1!important}
 #system-menu.settings-tabbed>.settings-main-tabs{grid-column:1!important;grid-row:2!important;display:flex!important;flex-direction:row!important;overflow-x:auto!important;border-right:0!important;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;padding:7px!important;gap:6px!important}
 #system-menu.settings-tabbed .settings-main-tab{flex:0 0 auto!important;width:auto!important;min-width:0!important;grid-template-columns:26px auto!important;min-height:40px!important;padding:6px 10px!important}
 #system-menu.settings-tabbed .settings-main-tab::after{display:none!important}
 #system-menu.settings-tabbed>details.system-group.settings-tab-active{grid-column:1!important;grid-row:3!important;padding:11px 10px 20px!important}
 #system-menu.settings-tabbed .settings-sub-tabs{display:flex!important;overflow-x:auto!important;grid-template-columns:none!important;gap:6px!important}
 #system-menu.settings-tabbed .settings-sub-tab{flex:0 0 auto!important;width:auto!important;min-width:118px!important}
}

/* === OBSL v9.4: clock styles, compact weather flow, animated panels, dark contrast === */
:root{
  --obsl-section-gap:8px;
  --header-clock-color:#111111;
  --header-clock-flip-color:#171717;
  --header-clock-neon-color:#22d3ee;
}
#header-frame #clock{
  color:var(--header-clock-color)!important;
  max-width:100%; min-width:0; width:100%; overflow:hidden;
  display:flex!important; align-items:center; justify-content:center;
  gap:.015em; line-height:.9!important; touch-action:pan-y; user-select:none;
  font-variant-numeric:tabular-nums; font-weight:900;
}
#header-frame #clock .clock-digit,#header-frame #clock .clock-colon{display:inline-flex;align-items:center;justify-content:center;min-width:0;flex:0 1 auto}
#header-frame #clock .clock-colon{width:.24em;transform:translateY(-.015em);font-family:inherit;font-weight:900}
#header-frame #clock[data-clock-blink="1"] .clock-colon{animation:obslClockColon 1s steps(1,end) infinite}
@keyframes obslClockColon{0%,44%,100%{opacity:1}45%,89%{opacity:.12}}
#header-frame #clock[data-clock-style="seven-bold"]{font-family:"DSEG7Local","Courier New",monospace!important;font-weight:900!important;-webkit-text-stroke:.018em currentColor;text-shadow:.018em 0 currentColor,-.018em 0 currentColor}
#header-frame #clock[data-clock-style="seven"]{font-family:"DSEG7Local","Courier New",monospace!important;font-weight:800!important}
#header-frame #clock[data-clock-style="digital"]{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace!important;font-weight:900!important;letter-spacing:-.055em}
#header-frame #clock[data-clock-style="minimal"]{font-family:system-ui,-apple-system,"Segoe UI",sans-serif!important;font-weight:900!important;letter-spacing:-.065em}
#header-frame #clock[data-clock-style="neon"]{font-family:"DSEG7Local","Courier New",monospace!important;color:var(--header-clock-neon-color)!important;-webkit-text-stroke:.012em currentColor;text-shadow:0 0 .06em currentColor,0 0 .14em currentColor,0 0 .25em color-mix(in srgb,var(--header-clock-neon-color) 65%,transparent)}
#header-frame #clock[data-clock-style="flip"]{font-family:system-ui,-apple-system,"Segoe UI",sans-serif!important;gap:.035em;font-size:min(var(--header-clock-effective-size,var(--header-clock-size,72px)),clamp(44px,18vw,84px))!important}
#header-frame #clock[data-clock-style="flip"] .clock-digit{height:.88em;min-width:.59em;padding:0 .035em;border-radius:.11em;background:linear-gradient(to bottom,color-mix(in srgb,var(--header-clock-flip-color) 82%,white) 0 49%,var(--header-clock-flip-color) 50% 100%);color:#fff;box-shadow:inset 0 -.02em .05em #0008,inset 0 .02em .04em #fff2,0 .025em .055em #0003;font-size:.77em;line-height:1;border:1px solid #ffffff24;position:relative}
#header-frame #clock[data-clock-style="flip"] .clock-digit:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#0008;box-shadow:0 1px #fff1}
#header-frame #clock[data-clock-style="flip"] .clock-colon{color:var(--header-clock-flip-color);font-size:.68em;width:.25em}
@media(max-width:430px){#header-frame #clock{gap:0!important}#header-frame #clock[data-clock-style="flip"]{gap:.025em!important;font-size:min(var(--header-clock-effective-size,var(--header-clock-size,72px)),clamp(42px,17.5vw,76px))!important}}

/* Current weather owns its location row. No detached vertical spacer. */
#weather-widget{gap:var(--obsl-section-gap)!important;margin-top:var(--obsl-section-gap)!important}
#weather-widget .now-panel{display:grid!important;grid-template-columns:minmax(100px,.78fr) minmax(0,1.22fr)!important;grid-template-areas:"temp summary" "updated updated" "location location"!important;column-gap:8px!important;row-gap:3px!important;align-items:center!important;padding:10px 12px 8px!important;min-height:0!important;height:auto!important;overflow:hidden!important}
#weather-widget .weather-temp{grid-area:temp!important;align-self:center!important}
#weather-widget .weather-summary{grid-area:summary!important;min-width:0!important;align-self:center!important}
#weather-widget .weather-updated-status{grid-area:updated!important;margin:2px 0 0!important;padding:0!important;text-align:center!important;font-size:clamp(10px,2.45vw,12px)!important;line-height:1.25!important;white-space:normal!important}
#weather-widget .weather-location-inline{grid-area:location!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:6px!important;width:100%!important;margin:0!important;padding:2px 0 0!important;border-top:1px solid color-mix(in srgb,var(--line,#d1d5db) 54%,transparent)!important}
#weather-widget #location-status{position:static!important;display:block!important;min-width:0!important;margin:0!important;padding:2px 2px!important;text-align:center!important;font-size:clamp(9.5px,2.55vw,12px)!important;line-height:1.25!important;font-weight:700!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
#weather-widget .weather-location-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:2px!important}
#weather-widget .weather-location-actions button{position:static!important;inset:auto!important;transform:none!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;margin:0!important;padding:0!important;border:0!important;border-radius:999px!important;background:transparent!important;font-size:18px!important;line-height:1!important;color:inherit!important}
#weather-widget .weather-location-actions button:hover{background:color-mix(in srgb,var(--panel,#fff) 62%,transparent)!important}
#weather-widget .forecast-panel{margin-top:0!important;position:relative!important;isolation:isolate!important;overflow:hidden!important}

/* Generic local panel background layers. */
.market-panel,.footer-frame,#site-footer,.forecast-panel{position:relative!important;isolation:isolate!important;overflow:hidden}








/* Equal vertical rhythm from Event -> Weather -> Forecast -> Countdown -> Market -> Footer. */
#event-frame,#weather-widget,#countdown-panel,#bottom-grid,#footer-frame{margin-block-start:var(--obsl-section-gap)!important;margin-block-end:0!important}
#bottom-grid{gap:var(--obsl-section-gap)!important}
.footer-frame{margin-top:var(--obsl-section-gap)!important;padding-top:0!important;padding-bottom:0!important;min-height:0!important}
.site-footer{min-height:46px!important;padding:7px 10px!important;box-sizing:border-box!important}

/* Dark mode: preserve contrast while dimming photos/video, never hide text in same-color surfaces. */
html.dark{color-scheme:dark;--bg:#0b0d10;--panel:#15181d;--line:#39404a;--text:#f8fafc;--muted:#cbd5e1}
html.dark body{background:#0b0d10!important;color:#f8fafc!important}
html.dark :is(.header-frame,.event-frame,.birthday-frame,.weather-panel,.now-panel,.forecast-panel,.market-panel,.footer-frame,.site-footer,.panel){color:#f8fafc!important;border-color:#3b424d!important}
html.dark :is(.weather-desc,.weather-summary,.weather-temp,#location-status,.weather-updated-status,.market-panel,.site-footer,#footer-text,.header-calendar-row,#weekday,#solar-date,#lunar-date){color:#f8fafc!important}
html.dark :is(.weather-meta,.weather-meta span,.weather-meta em,.market-meta,.market-source,.muted,.admin-hint){color:#cbd5e1!important}

html.dark #header-frame #clock[data-clock-style="seven-bold"],html.dark #header-frame #clock[data-clock-style="seven"],html.dark #header-frame #clock[data-clock-style="digital"],html.dark #header-frame #clock[data-clock-style="minimal"]{color:color-mix(in srgb,var(--header-clock-color,#111) 25%,#fff)!important}
html.dark #header-frame #clock[data-clock-style="flip"] .clock-colon{color:#f8fafc!important}

@media(max-width:430px){
  :root{--obsl-section-gap:7px}
  #weather-widget .now-panel{grid-template-columns:minmax(92px,.72fr) minmax(0,1.28fr)!important;padding:8px 9px 7px!important;column-gap:6px!important;row-gap:2px!important}
  #weather-widget #location-status{font-size:10.5px!important}
  #weather-widget .weather-location-actions button{width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;font-size:16px!important}
  .site-footer{min-height:42px!important;padding:6px 8px!important}
}


/* === OBSL v9.4-final: hardened guest permissions, clock weight, dark contrast === */
/* Effects/Tools are privileged. Hide them even before auth JS hydrates to prevent a guest flash. */
html:not([data-obsl-role="admin"]) #system-effects-group,
html:not([data-obsl-role="admin"]) #system-tools-group,
html:not([data-obsl-role="admin"]) .settings-main-tab[data-group-id="system-effects-group"],
html:not([data-obsl-role="admin"]) .settings-main-tab[data-group-id="system-tools-group"]{display:none!important}

#header-frame #clock[data-clock-style="seven-bold"]{
  -webkit-text-stroke:.032em currentColor!important;
  text-shadow:.022em 0 currentColor,-.022em 0 currentColor,0 .015em currentColor!important;
}
#header-frame #clock[data-clock-style="seven-bold"][data-clock-bold="0"]{
  -webkit-text-stroke:.012em currentColor!important;
  text-shadow:none!important;
}
#header-frame #clock[data-clock-style="seven"][data-clock-bold="1"]{
  -webkit-text-stroke:.018em currentColor;
  text-shadow:.012em 0 currentColor,-.012em 0 currentColor;
}
#header-frame #clock[data-clock-style="lcd"]{
  font-family:"DSEG7Local","Courier New",monospace!important;
  color:var(--header-clock-color)!important;
  -webkit-text-stroke:.022em currentColor;
  text-shadow:0 .025em .03em rgba(0,0,0,.14);
  letter-spacing:-.035em;
}
#header-frame #clock[data-clock-style="lcd"] .clock-digit{
  padding:.015em .035em;border-radius:.055em;
  background:color-mix(in srgb,#9fb48f 25%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 18%,transparent);
}
#header-frame #clock[data-clock-style="outline"]{
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif!important;
  color:transparent!important;
  -webkit-text-stroke:.035em var(--header-clock-color)!important;
  font-weight:950!important;letter-spacing:-.055em;
  text-shadow:none!important;
}
#header-frame #clock[data-clock-style="outline"] .clock-colon{color:var(--header-clock-color)!important;-webkit-text-stroke:0!important}

/* Keep every clock style inside Header on very narrow phones, including reload before font hydration. */
@media(max-width:480px){
  #header-frame #clock{font-size:min(var(--header-clock-effective-size,var(--header-clock-size,84px)),20vw)!important;white-space:nowrap!important}
  #header-frame #clock[data-clock-style="flip"]{font-size:min(var(--header-clock-effective-size,var(--header-clock-size,84px)),18vw)!important}
}
@media(max-width:360px){
  #header-frame #clock{font-size:min(var(--header-clock-effective-size,var(--header-clock-size,84px)),19vw)!important}
  #header-frame #clock[data-clock-style="flip"]{font-size:min(var(--header-clock-effective-size,var(--header-clock-size,84px)),17vw)!important}
}

/* Dynamic backgrounds are deliberately dimmed in Dark Mode; foreground content stays high-contrast. */



html.dark :is(.market-section,.market-row,.market-gas-cityblock,.market-gas-other,.market-gold-grid,.market-rate-row,.footer-copyright-group,.weather-metric,.hour){color:#f8fafc!important}
html.dark :is(.market-source,.market-unit,.market-loading,.market-error,.weather-metric em,.hour .rain,.hour small,.calendar-count,.calendar-state-compact){color:#cbd5e1!important}
html.dark :is(.panel-title,.market-section h3,.market-gold-name,.weather-desc,.temperature,#temp,.hour strong,.hour b){color:#ffffff!important;text-shadow:0 1px 2px rgba(0,0,0,.45)}
html.dark :is(.calendar-ticker,.upcoming-box,.birthday-event-panel,.event-frame,.footer-frame,.site-footer,.now-panel,.forecast-panel,.market-panel){background-color:#15181d!important}
html.dark :is(.system-menu,.section-config-panel,.admin-dialog,.location-picker){background:#15181d!important;color:#f8fafc!important;border-color:#3b424d!important}
html.dark :is(.system-menu input,.system-menu select,.system-menu textarea,.section-config-panel input,.section-config-panel select,.section-config-panel textarea){background:#20242b!important;color:#f8fafc!important;border-color:#4b5563!important}
html.dark :is(.settings-main-tab,.settings-sub-tab,.system-menu-button){color:#f8fafc!important}


/* === OBSL v9.4 final panel background stacking + accessibility === */




html.dark :is(#event-frame,#birthday-event-panel,#weather-widget,.now-panel,.forecast-panel,#countdown-panel,.market-panel,#footer-frame,#site-footer) :is(h1,h2,h3,h4,strong,b,label,span,p,div){text-rendering:optimizeLegibility}
html.dark :is(#event-frame,#birthday-event-panel) :is(.event-main-text,.event-date,.birthday-main,.birthday-date){color:#f8fafc!important;text-shadow:0 1px 2px rgba(0,0,0,.48)}
html.dark #weather-widget :is(#temp,.weather-desc,.weather-updated-status,#location-status,.htime,.htemp,.hrain){color:#f8fafc!important;text-shadow:0 1px 2px rgba(0,0,0,.52)}
html.dark #weather-widget :is(.weather-metric em,.weather-metric b){color:#e5e7eb!important}
html.dark .market-panel :is(.panel-title,h3,.market-row,.market-row span,.market-row strong,.market-gold-name,.market-rate-row){color:#f8fafc!important;text-shadow:0 1px 2px rgba(0,0,0,.48)}
html.dark #site-footer :is(*):not(a){color:#f8fafc!important}
/* Privileged navigation is not useful to guests: remove it entirely rather than merely disabling it. */
html:not([data-obsl-role="admin"]) #system-effects-group,
html:not([data-obsl-role="admin"]) #system-tools-group,
html:not([data-obsl-role="admin"]) .settings-main-tab[data-group-id="system-effects-group"],
html:not([data-obsl-role="admin"]) .settings-main-tab[data-group-id="system-tools-group"]{display:none!important;visibility:hidden!important}

/* === OBSL v9.5: guest Settings lock + secret Admin logo hold === */
#brand-logo-wrap,#brand-logo{
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}
#theme-toggle.theme-floating-toggle{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
}
/* Guest has no System Settings surface. A 3-second logo hold only exposes the Account login gate. */
#system-menu[data-auth-entry-only="1"] > details.system-group:not(#system-user-group),
#system-menu[data-auth-entry-only="1"] > .settings-main-tabs .settings-main-tab:not([data-group-id="system-user-group"]){
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#system-menu[data-auth-entry-only="1"] > details#system-user-group{
  display:block!important;
}
html:not([data-obsl-role="admin"]) #system-settings-group,
html:not([data-obsl-role="admin"]) #system-effects-group,
html:not([data-obsl-role="admin"]) #system-tools-group{
  display:none!important;
}
/* The light/dark bulb permanently occupies the former Settings button position. */
.app-settings > #theme-toggle{
  position:relative!important;
  inset:auto!important;
  z-index:2!important;
}
#theme-toggle.theme-floating-toggle{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  font-size:24px!important;
  line-height:1!important;
  background:rgba(120,120,120,.10)!important;
  box-shadow:none!important;
  opacity:.72!important;
}
#theme-toggle.theme-floating-toggle:hover,#theme-toggle.theme-floating-toggle:focus-visible{opacity:1!important;background:rgba(120,120,120,.16)!important}
@media (max-width:640px){#theme-toggle.theme-floating-toggle{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;font-size:22px!important}}

/* === OBSL v9.6 Push previews + first-touch permissions === */
.permission-first-tap-chip{display:block;margin:6px auto 0;max-width:min(92vw,560px);padding:7px 12px;border:1px solid var(--line,#d1d5db);border-radius:999px;background:color-mix(in srgb,var(--panel,#fff) 88%,transparent);color:var(--text,#111);font:700 11px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.06);position:relative;z-index:45}
.permission-first-tap-chip[hidden]{display:none!important}
.push-preview-card{margin:8px 0 10px;max-width:520px}
.push-preview-shell{border:1px solid color-mix(in srgb,var(--line,#d1d5db) 88%,transparent);border-radius:18px;padding:12px;background:color-mix(in srgb,var(--panel,#fff) 96%,transparent);box-shadow:0 8px 24px rgba(0,0,0,.08);overflow:hidden}
.push-preview-top{display:flex;align-items:flex-start;gap:10px;min-width:0}.push-preview-copy{flex:1;min-width:0;display:grid;gap:2px}.push-preview-copy strong{font:800 14px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;overflow-wrap:anywhere}.push-preview-copy small{font:600 10px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--muted,#6b7280)}
.push-preview-icon{width:44px;height:44px;flex:0 0 44px;object-fit:cover;border-radius:11px;border:1px solid color-mix(in srgb,var(--line,#d1d5db) 72%,transparent)}
.push-preview-body{margin-top:8px;font:500 12px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;white-space:normal;overflow-wrap:anywhere}.push-preview-image{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:12px;margin-top:10px;background:#e5e7eb}.push-preview-caption{margin-top:6px;font:600 9.5px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--muted,#6b7280);text-align:center}
html.dark .push-preview-shell,html.dark .permission-first-tap-chip{background:#20242b!important;color:#f8fafc!important;border-color:#4b5563!important}

/* === OBSL v9.6 current Weather actions: maximize address width === */
#weather-widget .now-panel{position:relative!important}
#weather-widget .weather-location-inline{display:block!important;grid-template-columns:none!important;padding:4px 34px 2px 6px!important;min-height:30px!important}
#weather-widget #location-status{width:100%!important;max-width:100%!important;text-align:center!important;padding:2px 0!important}
#weather-widget .weather-location-actions{position:static!important;width:0!important;height:0!important;display:block!important;overflow:visible!important}

#weather-widget #location-dropdown-button{position:absolute!important;right:5px!important;bottom:5px!important;top:auto!important;left:auto!important;width:28px!important;height:28px!important;z-index:12!important}
@media(max-width:430px){#weather-widget .weather-location-inline{padding-right:31px!important}}

/* Text effects need a transformable box for inline Header/Weather values. */
:is(#weekday,#solar-date,#lunar-date,#weather-desc,#temp,#feels,#humidity,#wind,#rain)[data-obsl-zone-effect]{display:inline-block!important;transform-origin:center}
#location-status[data-obsl-zone-effect]{transform-origin:center}

/* === OBSL v9.6 quick Widget Popup composer === */
#brand-title[data-quick-popup-triple-tap="3"]{user-select:none;-webkit-user-select:none;touch-action:manipulation}
#quick-popup-composer{position:fixed;inset:0;z-index:2147483600;background:rgba(15,23,42,.30);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));box-sizing:border-box;color:var(--text,#111827)}
#quick-popup-composer[hidden]{display:none!important}.quick-popup-open body{overflow:auto!important;overscroll-behavior:auto!important}
.quick-popup-sheet{width:min(1180px,100%);height:min(900px,100%);margin:auto;background:color-mix(in srgb,var(--panel,#fff) 96%,transparent);border:1px solid color-mix(in srgb,var(--line,#d1d5db) 84%,transparent);border-radius:24px;box-shadow:0 28px 90px rgba(15,23,42,.28);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.quick-popup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line,#d1d5db)}.quick-popup-head>div{display:grid;gap:2px}.quick-popup-head b{font:850 18px/1.15 system-ui,-apple-system,"Segoe UI",sans-serif}.quick-popup-head small{font:600 10px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--muted,#6b7280)}.quick-popup-head>button{width:38px;height:38px;border:0;border-radius:50%;background:color-mix(in srgb,var(--line,#d1d5db) 32%,transparent);font:700 24px/1 system-ui;color:inherit}
.quick-popup-workspace{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(320px,.94fr);min-height:0}.quick-popup-editor{overflow:auto;padding:14px 16px;display:grid;align-content:start;gap:11px;border-right:1px solid var(--line,#d1d5db)}.quick-popup-editor label{display:grid;gap:5px;font:700 11px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif}.quick-popup-editor input,.quick-popup-editor textarea,.quick-popup-editor select{width:100%;max-width:100%;box-sizing:border-box;border:1px solid var(--line,#d1d5db);border-radius:12px;background:var(--panel,#fff);color:var(--text,#111);padding:9px 10px;font:600 12px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif}.quick-popup-editor textarea{resize:vertical;min-height:120px}.quick-popup-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.quick-popup-row>label,.quick-popup-row>select{flex:1;min-width:150px}.quick-popup-switch{grid-template-columns:auto 1fr!important;align-items:center}.quick-popup-switch input{width:19px!important;height:19px!important;padding:0!important}.quick-popup-grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick-popup-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}.quick-popup-range input{padding:0!important}
.quick-popup-tags{display:grid;gap:6px;padding:9px;border:1px solid var(--line,#d1d5db);border-radius:14px;background:color-mix(in srgb,var(--panel,#fff) 92%,transparent)}.quick-popup-tags>strong{font:800 11px system-ui}.quick-popup-tags>small{font:600 9.5px/1.35 system-ui;color:var(--muted,#6b7280)}#quick-popup-tag-list{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}#quick-popup-tag-list::-webkit-scrollbar{display:none}#quick-popup-tag-list button{flex:0 0 auto;display:grid;gap:1px;text-align:left;padding:6px 8px;border:1px solid var(--line,#d1d5db);border-radius:10px;background:var(--panel,#fff);color:inherit}#quick-popup-tag-list code{font:800 10px ui-monospace,SFMono-Regular,Consolas,monospace}#quick-popup-tag-list span{font:600 8.5px system-ui;color:var(--muted,#6b7280)}
.quick-popup-preview-pane{min-width:0;overflow:auto;padding:14px;display:grid;align-content:start;gap:9px;background:color-mix(in srgb,var(--panel,#fff) 82%,var(--line,#e5e7eb))}.quick-popup-preview-label{display:flex;justify-content:space-between;gap:10px;align-items:center}.quick-popup-preview-label b{font:850 12px system-ui}.quick-popup-preview-label span,.quick-popup-preview-note{font:600 9.5px/1.35 system-ui;color:var(--muted,#6b7280)}.quick-popup-live-preview{min-height:390px;border:1px dashed color-mix(in srgb,var(--line,#d1d5db) 92%,transparent);border-radius:20px;padding:18px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(color-mix(in srgb,var(--line,#ddd) 16%,transparent) 0 25%,transparent 0 50%) 0/18px 18px;overflow:hidden}.quick-popup-preview-card{position:relative;width:min(var(--qp-width,420px),100%);max-height:540px;overflow:auto;padding:18px;border-radius:24px;background:color-mix(in srgb,var(--qp-bg,#fff) 82%,transparent);background-image:linear-gradient(color-mix(in srgb,var(--qp-bg,#fff) 70%,transparent),color-mix(in srgb,var(--qp-bg,#fff) 70%,transparent)),var(--qp-bg-image,none);background-size:cover;background-position:center;color:var(--qp-text,#111827);border:1px solid rgba(255,255,255,.7);box-shadow:0 20px 55px rgba(15,23,42,.22);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.quick-popup-preview-card>img{display:block;width:100%;max-height:230px;object-fit:contain;border-radius:14px;margin-bottom:10px}.quick-popup-preview-card h3{margin:0 32px 8px 0;color:var(--qp-title,#111827);font:850 22px/1.2 system-ui}.quick-popup-preview-card>div{font:600 14px/1.5 system-ui;overflow-wrap:anywhere}.quick-popup-preview-card>button{margin-top:12px;border:0;border-radius:999px;padding:9px 15px;background:#111827;color:#fff;font-weight:800}.quick-popup-preview-x{position:absolute;right:9px;top:7px;font:900 24px/1 system-ui;font-style:normal}.quick-popup-preview-card.type-notification{border-left:5px solid #2563eb}.quick-popup-preview-card.type-promotion{border-width:2px}.quick-popup-preview-card.effect-scale{animation:obslPopupScale .24s ease-out}.quick-popup-preview-card.effect-fade{animation:obslPopupFade .24s ease-out}.quick-popup-preview-card.effect-slide-up{animation:obslPopupSlide .26s ease-out}
.quick-popup-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:11px 14px;border-top:1px solid var(--line,#d1d5db)}#quick-popup-state{margin-right:auto;min-width:0;font:700 10px/1.3 system-ui;color:var(--muted,#6b7280);overflow-wrap:anywhere}.quick-popup-actions button{min-height:38px;border:1px solid var(--line,#d1d5db);border-radius:12px;background:var(--panel,#fff);color:inherit;padding:8px 13px;font-weight:800}.quick-popup-actions button.primary{background:#111827;color:#fff;border-color:#111827}
html.dark .quick-popup-sheet,html.dark .quick-popup-editor input,html.dark .quick-popup-editor textarea,html.dark .quick-popup-editor select,html.dark #quick-popup-tag-list button,html.dark .quick-popup-actions button:not(.primary){background:#1f242b!important;color:#f8fafc!important;border-color:#4b5563!important}html.dark .quick-popup-preview-pane{background:#171b20!important}html.dark .quick-popup-live-preview{background-color:#171b20!important}
@media(max-width:760px){#quick-popup-composer{padding:0}.quick-popup-sheet{width:100%;height:100dvh;border-radius:0;border:0}.quick-popup-workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.quick-popup-editor{border-right:0;max-height:56dvh}.quick-popup-preview-pane{border-top:1px solid var(--line,#d1d5db);padding:10px;max-height:34dvh}.quick-popup-live-preview{min-height:210px;padding:10px}.quick-popup-grid2,.quick-popup-grid3{grid-template-columns:1fr}.quick-popup-actions{position:sticky;bottom:0;background:var(--panel,#fff);flex-wrap:wrap}.quick-popup-actions #quick-popup-state{flex:1 0 100%;order:2}.quick-popup-actions button{flex:1}.quick-popup-head{padding-top:max(12px,env(safe-area-inset-top))}.quick-popup-preview-card{padding:14px}.quick-popup-preview-card h3{font-size:18px}.quick-popup-preview-card>div{font-size:12px}}

/* v9.8 System workspace + resilient gestures */
.system-workspace-module>.notification-app-body,.system-workspace-module>.admin-subsection-body,.system-workspace-module>.title-logo-tools-body,.system-workspace-module>.system-health-body{display:grid;gap:10px;min-width:0}
.system-module-card,.system-module-preview,.system-health-devices-card{border:1px solid var(--line);border-radius:14px;padding:10px;background:color-mix(in srgb,var(--panel) 94%,transparent);min-width:0;box-sizing:border-box}
.system-module-preview{max-width:760px;width:100%;justify-self:center;overflow:hidden}
.system-module-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.system-module-preview-head small{opacity:.65;text-align:right}
.system-module-preview-body{min-width:0;max-width:100%;overflow:hidden}.system-module-preview-body>*{max-width:100%!important;box-sizing:border-box!important}
.system-module-actions{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px)}
.system-module-actions .admin-form-message{flex:1 1 220px;margin:0}.legacy-action-hidden{display:none!important}
.system-health-devices-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.system-health-devices-list{display:grid;gap:6px;margin-top:8px;max-height:340px;overflow:auto}
.device-health-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px;border:1px solid var(--line);border-radius:10px}.device-health-kind{font-size:10px;font-weight:800;padding:3px 6px;border-radius:999px;background:var(--muted)}.device-health-row small{display:block;opacity:.68;overflow-wrap:anywhere}.device-health-state{font-size:11px;font-weight:700}.device-health-state.good{color:#07883f}.device-health-state.bad{color:#c62828}
.mini-system-preview,.mini-popup-preview{display:grid;gap:5px;padding:10px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}.mini-toast-preview{display:flex;gap:9px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px}.mini-toast-preview img{width:36px;height:36px;border-radius:9px;object-fit:cover}.mini-toast-preview span{display:grid;min-width:0}.mini-toast-preview small{opacity:.7}
.market-panel,#footer-frame,#site-footer,.cd-carousel,#clock,.forecast-panel{touch-action:pan-y pinch-zoom}

@media(max-width:720px){.system-module-preview-head{align-items:flex-start;flex-direction:column}.system-module-preview-head small{text-align:left}.system-module-actions{gap:6px;padding:6px}.system-module-actions button{flex:1 1 auto}.device-health-row{grid-template-columns:auto minmax(0,1fr)}.device-health-state{grid-column:2}}
#weather-widget .now-panel{touch-action:pan-y pinch-zoom}

/* v9.8 stability + Weather control placement */
#weather-widget .now-panel{position:relative!important;contain:layout paint;overflow:hidden!important}
#weather-widget .weather-location-inline{display:block!important;position:relative!important;padding:5px 36px 4px 8px!important;min-height:34px!important;margin-top:3px!important;border-top:1px solid color-mix(in srgb,var(--line,#d1d5db) 78%,transparent)!important}
#weather-widget #location-status{display:block!important;width:100%!important;max-width:100%!important;text-align:center!important;padding:2px 0!important;line-height:1.25!important;overflow-wrap:anywhere!important;word-break:normal!important}
#weather-widget .weather-location-actions{display:contents!important}

#weather-widget #location-dropdown-button{position:absolute!important;right:7px!important;bottom:7px!important;top:auto!important;left:auto!important;width:30px!important;height:30px!important;margin:0!important;padding:0!important;z-index:30!important;border-radius:50%!important}
#weather-widget #weather-admin-editor{left:7px!important;right:auto!important;top:7px!important;bottom:auto!important;z-index:29!important}
@media(max-width:520px){#weather-widget .weather-location-inline{padding-right:35px!important;padding-left:8px!important}}
/* Performance guard pauses non-essential visual animation if Chromium reports repeated long tasks. */
html[data-obsl-performance="low"] #stars-layer,html[data-obsl-performance="low"] #fireworks-canvas{display:none!important}


/* ===== OBSL v10.2 final stabilization ===== */
html,body{min-height:100%;overflow-x:hidden!important;overscroll-behavior-y:auto!important;touch-action:pan-y pinch-zoom!important}
body{position:static!important;height:auto!important;max-height:none!important}
#weather-widget .now-panel{position:relative!important;padding-top:12px!important;padding-right:44px!important;padding-bottom:42px!important;min-height:0!important}

#weather-widget #location-dropdown-button{position:absolute!important;right:7px!important;bottom:7px!important;top:auto!important;left:auto!important;width:30px!important;height:30px!important;margin:0!important;padding:0!important;z-index:40!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;font-size:20px!important;line-height:1!important;display:grid!important;place-items:center!important}
#weather-widget .weather-location-inline{padding:7px 34px 0 6px!important;margin-top:4px!important;min-height:32px!important;width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
#weather-widget #location-status{width:100%!important;max-width:100%!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:break-word!important;line-height:1.25!important;font-size:clamp(10px,1.25vw,13px)!important}
#weather-widget .weather-updated-status{text-align:center!important;padding-right:0!important}
@media(max-width:520px){#weather-widget .now-panel{padding-right:39px!important;padding-bottom:38px!important}#weather-widget #location-dropdown-button{bottom:5px!important}}

/* Settings is an opaque self-contained viewport; the Home screen never scrolls underneath it. */
html body>#system-menu.settings-tabbed:not([hidden]){position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;border-radius:0!important;background:var(--panel,#fff)!important;z-index:2147483400!important;overflow:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important}
html body>#system-menu.settings-tabbed>details.system-group.settings-tab-active{overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;min-height:0!important;max-height:100%!important}
html body>#system-menu.settings-tabbed .system-group-body{min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
html body>#system-menu.settings-tabbed .system-module-preview,html body>#system-menu.settings-tabbed .push-preview-card{max-width:100%!important;overflow:hidden!important}
.system-module-actions{position:static!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:8px 0!important}
.system-module-actions>.admin-form-message{grid-column:1/-1!important}
@media(max-width:620px){.system-module-actions{grid-template-columns:1fr!important}}
.notification-preview-card{width:min(100%,520px);margin:0 auto;border:1px solid var(--line,#d6d6d0);border-radius:18px;padding:14px;background:var(--panel,#fff);display:grid;gap:10px;overflow:hidden}.notification-preview-head{display:flex;gap:10px;align-items:center}.notification-preview-head img{width:46px;height:46px;object-fit:cover;border-radius:12px}.notification-preview-head div{display:grid}.notification-preview-head small{opacity:.65}.notification-preview-card p{margin:0;line-height:1.4}.notification-preview-image{display:block;width:100%;max-height:260px;object-fit:cover;border-radius:14px}

/* Cross-fade media background for Forecast / Market / Footer. */
:is(.market-panel,.footer-frame,.forecast-panel){position:relative!important;overflow:hidden!important}



/* Popup dock: icon/text only, no border/background/shadow. */
#obsl-popup-dock{position:fixed;right:max(6px,env(safe-area-inset-right));bottom:96px;z-index:2147483600;width:38px;height:38px;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;outline:0;color:inherit;font-size:28px;font-weight:900;display:grid;place-items:center;touch-action:manipulation;transform:translateZ(0)}#obsl-popup-dock[hidden]{display:none!important}#obsl-popup-dock img{display:block;width:100%;height:100%;object-fit:contain;border:0;background:transparent;box-shadow:none;pointer-events:none}
.obsl-popup-media{display:block;width:100%;max-width:100%;max-height:min(52dvh,520px);object-fit:contain;border:0;border-radius:14px;background:transparent}.obsl-popup-document{height:min(52dvh,520px);background:#fff}
#obsl-popup-layer .obsl-popup-close,.obsl-popup-card .obsl-popup-close{border:0!important;background:transparent!important;box-shadow:none!important}

/* Strong client-side content protection (best effort on web). */
.obsl-content-protected img{-webkit-user-drag:none!important}#obsl-capture-warning{position:fixed;inset:0;z-index:2147483647;background:#050505;color:#fff;display:grid;place-items:center;text-align:center;font:800 clamp(20px,4vw,42px)/1.25 system-ui;padding:30px;opacity:0;pointer-events:none;transition:opacity .1s}#obsl-capture-warning.show{opacity:1}

/* Diagnostics */
.diag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.diag-grid>div,.diag-row,.audit-row{border:1px solid var(--line,#ddd);border-radius:12px;padding:10px;display:grid;gap:3px}.diag-grid span,.diag-row span,.audit-row small{opacity:.72}.diag-row.ok{border-color:#41a65a}.diag-row.fail{border-color:#d92d20}.audit-log-list{display:grid;gap:7px}


/* === OBSL v10.2 canonical interaction/background rules === */
#weather-widget .now-panel{position:relative!important}
#weather-widget .location-status-button{
  appearance:none!important;-webkit-appearance:none!important;border:0!important;box-shadow:none!important;
  width:100%!important;min-height:34px!important;background:transparent!important;color:inherit!important;cursor:pointer!important;
  font:inherit!important;letter-spacing:inherit!important;text-align:center!important;border-radius:10px!important;padding:5px 8px!important;
  touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;
}
#weather-widget .location-status-button:hover,#weather-widget .location-status-button:focus-visible{
  background:color-mix(in srgb,var(--panel,#fff) 76%,transparent)!important;outline:2px solid color-mix(in srgb,var(--text,#111) 28%,transparent)!important;outline-offset:1px!important;
}
#weather-admin-editor,#location-dropdown-button{display:none!important;visibility:hidden!important;pointer-events:none!important}
#weather-widget .weather-location-inline{grid-template-columns:minmax(0,1fr)!important}

/* Dynamic panel media sits above the panel paint and below all readable content. */
.market-panel,.footer-frame,.forecast-panel{position:relative!important;isolation:isolate!important;overflow:hidden!important}











/* Text effects must remain animatable after live text replacements. */
:is(#weekday,#solar-date,#lunar-date,#weather-desc,#temp,#feels,#humidity,#wind,#rain,#location-status)[data-obsl-zone-effect]{display:inline-block!important;animation-play-state:running!important}
[data-obsl-zone-effect="shimmer"]{background-size:200% 100%!important}

/* First-back exit prompt. */
#obsl-exit-toast{position:fixed;left:50%;bottom:max(22px,calc(env(safe-area-inset-bottom) + 16px));z-index:2147483000;max-width:min(92vw,620px);transform:translate(-50%,18px);opacity:0;pointer-events:none;padding:11px 16px;border-radius:999px;background:rgba(17,24,39,.93);color:#fff;font:700 14px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;text-align:center;box-shadow:0 12px 38px rgba(0,0,0,.28);transition:opacity .18s ease,transform .18s ease;backdrop-filter:blur(12px)}
#obsl-exit-toast.show{opacity:1;transform:translate(-50%,0)}

/* OBSL v10.3 — authoritative Forecast / Market / Footer media backgrounds */
.obsl-bg-host{position:relative!important;isolation:isolate!important;overflow:hidden!important}
.obsl-bg-host>.obsl-bg-stack{position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none!important;overflow:hidden!important;border-radius:inherit!important;opacity:var(--obsl-bg-opacity,.2)!important}
.obsl-bg-host>.obsl-bg-stack>.obsl-bg-layer{position:absolute!important;inset:0!important;opacity:0!important;transition:opacity .65s ease!important;will-change:opacity!important}
.obsl-bg-host>.obsl-bg-stack>.obsl-bg-layer.is-active{opacity:1!important}
.obsl-bg-host>.obsl-bg-stack img,.obsl-bg-host>.obsl-bg-stack video{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;filter:blur(var(--obsl-bg-blur,0))!important;transform:scale(1.015)!important}
.obsl-bg-host>[class]:not(.obsl-bg-stack),.obsl-bg-host>article,.obsl-bg-host>section,.obsl-bg-host>footer,.obsl-bg-host>div:not(.obsl-bg-stack){position:relative;z-index:1}
.obsl-bg-host[data-obsl-background="off"]>.obsl-bg-stack{display:none!important}

/* OBSL v10.3 — authoritative text-effect engine. Keep the animation on the text node itself. */
[data-obsl-zone-effect].obsl-zone-effect-active{will-change:transform,opacity,filter,text-shadow;background-clip:padding-box;-webkit-background-clip:padding-box}
[data-obsl-zone-effect="pulse"]{animation:obsl-v103-pulse var(--obsl-zone-speed,2.4s) ease-in-out infinite!important}
[data-obsl-zone-effect="float"]{animation:obsl-v103-float var(--obsl-zone-speed,2.4s) ease-in-out infinite!important}
[data-obsl-zone-effect="glow"]{animation:obsl-v103-glow var(--obsl-zone-speed,2.4s) ease-in-out infinite!important}
[data-obsl-zone-effect="pingpong"]{animation:obsl-v103-pingpong var(--obsl-zone-speed,2.4s) ease-in-out infinite alternate!important}
[data-obsl-zone-effect="blink"]{animation:obsl-v103-blink var(--obsl-zone-speed,2.4s) steps(2,end) infinite!important}
[data-obsl-zone-effect="shimmer"]{position:relative;background-image:linear-gradient(100deg,currentColor 0%,currentColor 35%,rgba(255,255,255,.98) 50%,currentColor 65%,currentColor 100%)!important;background-size:240% 100%!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important;animation:obsl-v103-shimmer var(--obsl-zone-speed,2.4s) linear infinite!important}
@keyframes obsl-v103-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(calc(1 + .035 * var(--obsl-zone-intensity,1)));opacity:.78}}
@keyframes obsl-v103-float{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-3px * var(--obsl-zone-intensity,1)))}}
@keyframes obsl-v103-glow{0%,100%{filter:brightness(1);text-shadow:0 0 0 transparent}50%{filter:brightness(calc(1 + .18 * var(--obsl-zone-intensity,1)));text-shadow:0 0 calc(9px * var(--obsl-zone-intensity,1)) currentColor}}
@keyframes obsl-v103-pingpong{from{transform:translateX(calc(-3px * var(--obsl-zone-intensity,1)))}to{transform:translateX(calc(3px * var(--obsl-zone-intensity,1)))}}
@keyframes obsl-v103-blink{0%,48%{opacity:1}49%,100%{opacity:.25}}
@keyframes obsl-v103-shimmer{from{background-position:200% 0}to{background-position:-40% 0}}

/* OBSL v10.3 — rich notification System Popup */
.obsl-system-notification .obsl-notification-popup-icon{width:48px!important;height:48px!important;object-fit:cover!important;border-radius:12px!important;margin:0 0 8px!important;align-self:flex-start!important;box-shadow:0 5px 16px rgba(15,23,42,.16)}
.obsl-system-notification .obsl-notification-popup-image{display:block!important;width:100%!important;max-height:min(48vh,360px)!important;object-fit:contain!important;border-radius:16px!important;margin:10px 0 2px!important;background:rgba(0,0,0,.035)}
.obsl-system-notification .obsl-notification-open{text-decoration:none!important;text-align:center!important}

/* === OBSL v10.3.3 canonical compact Settings/App test toast === */
#obsl-settings-toast-stack{
 position:fixed!important;left:50%!important;right:auto!important;top:auto!important;
 bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px))!important;transform:translateX(-50%)!important;
 z-index:2147483500!important;width:min(360px,calc(100vw - 28px))!important;height:auto!important;max-height:38dvh!important;
 display:flex!important;flex-direction:column!important;gap:7px!important;padding:0!important;margin:0!important;
 pointer-events:none!important;overflow:visible!important;contain:layout style!important;background:transparent!important;border:0!important;
}
#obsl-settings-toast-stack>.obsl-settings-toast{
 box-sizing:border-box!important;width:100%!important;min-width:0!important;height:auto!important;min-height:38px!important;max-height:76px!important;
 display:flex!important;align-items:center!important;gap:8px!important;padding:8px 7px 8px 11px!important;margin:0!important;
 border:1px solid color-mix(in srgb,var(--line,#d1d5db) 80%,transparent)!important;border-radius:12px!important;
 background:color-mix(in srgb,var(--panel,#fff) 94%,transparent)!important;color:var(--text,#111)!important;
 box-shadow:0 8px 24px rgba(15,23,42,.18)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;
 opacity:0;transform:translateY(10px) scale(.98);transition:opacity .16s ease,transform .16s ease!important;pointer-events:auto!important;overflow:hidden!important;
 font:700 12px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif!important;text-align:left!important;
}
#obsl-settings-toast-stack>.obsl-settings-toast.is-show{opacity:1!important;transform:none!important}
#obsl-settings-toast-stack .obsl-settings-toast-text{display:block!important;min-width:0!important;flex:1 1 auto!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important}
#obsl-settings-toast-stack .obsl-settings-toast-close{flex:0 0 28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important;margin:0!important;border:0!important;border-radius:999px!important;background:transparent!important;color:inherit!important;font:800 18px/1 system-ui!important;display:grid!important;place-items:center!important;box-shadow:none!important}
#obsl-settings-toast-stack>.obsl-settings-toast--ok{border-color:rgba(8,116,67,.22)!important}
#obsl-settings-toast-stack>.obsl-settings-toast--warn{border-color:rgba(154,103,0,.25)!important}
#obsl-settings-toast-stack>.obsl-settings-toast--error{border-color:rgba(180,35,24,.25)!important}

/* === OBSL v10.3.3 canonical Calendar/Forecast/Market/Footer media layer === */












/* === OBSL v10.3.3 canonical text effects: independent zones, always visible === */
[data-obsl-text-effect]{display:inline-block!important;transform-origin:center!important;animation-play-state:running!important;will-change:transform,opacity,filter,text-shadow!important}
[data-obsl-text-effect="pulse"]{animation:obsl1033Pulse var(--obsl-text-speed,2.4s) ease-in-out infinite!important}
[data-obsl-text-effect="float"]{animation:obsl1033Float var(--obsl-text-speed,2.4s) ease-in-out infinite!important}
[data-obsl-text-effect="glow"]{animation:obsl1033Glow var(--obsl-text-speed,2.4s) ease-in-out infinite!important}
[data-obsl-text-effect="pingpong"]{animation:obsl1033Ping var(--obsl-text-speed,2.4s) ease-in-out infinite alternate!important}
[data-obsl-text-effect="blink"]{animation:obsl1033Blink var(--obsl-text-speed,2.4s) steps(2,end) infinite!important}
[data-obsl-text-effect="shimmer"]{animation:obsl1033Shimmer var(--obsl-text-speed,2.4s) ease-in-out infinite!important;color:inherit!important;-webkit-text-fill-color:currentColor!important;background:none!important}
@keyframes obsl1033Pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(var(--obsl-effect-scale,1.055));opacity:.82}}
@keyframes obsl1033Float{0%,100%{transform:translateY(0)}50%{transform:translateY(var(--obsl-effect-float,-4px))}}
@keyframes obsl1033Glow{0%,100%{filter:brightness(1);text-shadow:0 0 0 transparent}50%{filter:brightness(1.28);text-shadow:0 0 var(--obsl-effect-glow,10px) currentColor}}
@keyframes obsl1033Ping{from{transform:translateX(var(--obsl-effect-ping-neg,-4px))}to{transform:translateX(var(--obsl-effect-ping-pos,4px))}}
@keyframes obsl1033Blink{0%,48%{opacity:1}49%,100%{opacity:.28}}
@keyframes obsl1033Shimmer{0%,100%{filter:brightness(1);text-shadow:none}50%{filter:brightness(1.5);text-shadow:0 0 var(--obsl-effect-shimmer,8px) currentColor}}
@media (prefers-reduced-motion:reduce){[data-obsl-text-effect]{animation-play-state:running!important}}
/* ===== v10.3.3 core EditorHTML5 canonical ===== */
.obsl-editor-source{margin-bottom:6px!important}
.obsl-html5-editor{display:block!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;margin:6px 0 12px!important;border:1px solid var(--line,#d4d4d4)!important;border-radius:12px!important;overflow:hidden!important;background:var(--panel,#fff)!important;position:relative!important;z-index:1!important}
.obsl-html5-head{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;padding:7px 9px!important;border-bottom:1px solid var(--line,#ddd)!important;font:700 11px/1.2 system-ui!important}
.obsl-html5-tabs,.obsl-html5-toolbar{display:flex!important;gap:4px!important;flex-wrap:wrap!important}.obsl-html5-tabs button,.obsl-html5-toolbar button{min-height:30px!important;padding:5px 9px!important;border:1px solid var(--line,#ddd)!important;border-radius:8px!important;background:var(--panel,#fff)!important;color:inherit!important;font:700 11px system-ui!important}.obsl-html5-tabs button.is-active{background:#111827!important;color:#fff!important}
.obsl-html5-toolbar{padding:6px 8px!important;border-bottom:1px solid var(--line,#ddd)!important}.obsl-html5-pane{display:none!important}.obsl-html5-pane.is-active{display:block!important}.obsl-html5-visual,.obsl-html5-code,.obsl-html5-preview{box-sizing:border-box!important;width:100%!important;min-height:92px!important;max-height:260px!important;overflow:auto!important;padding:10px!important;border:0!important;outline:0!important;background:transparent!important;color:inherit!important;font:500 13px/1.5 system-ui!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}.obsl-html5-code{resize:vertical!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important}.obsl-html5-preview{background:color-mix(in srgb,var(--panel,#fff) 90%,#eef2f7 10%)!important}


/* === OBSL v10.3.4 reliability: text effects selected by Admin must actually animate === */
@media (prefers-reduced-motion:reduce){
 html body #weekday[data-obsl-text-effect]:not([data-obsl-text-effect="none"]),
 html body #solar-date[data-obsl-text-effect]:not([data-obsl-text-effect="none"]),
 html body #lunar-date[data-obsl-text-effect]:not([data-obsl-text-effect="none"]){
   animation-duration:var(--obsl-text-speed,2.4s)!important;
   animation-iteration-count:infinite!important;
   animation-play-state:running!important;
 }
}
/* Market refresh: fixed 44x44 tap target in the real top-right corner. */
.market-panel{position:relative!important}



/* v10.3.4.2 core-stable controls: notification bell/inbox + reliable market refresh */


#obsl-notification-inbox{position:fixed;inset:0;z-index:5200;background:rgba(0,0,0,.28);padding:max(58px,calc(env(safe-area-inset-top) + 48px)) 10px max(12px,env(safe-area-inset-bottom));display:flex;justify-content:flex-end;align-items:flex-start}#obsl-notification-inbox[hidden]{display:none!important}.obsl-inbox-card{width:min(430px,100%);max-height:min(72vh,650px);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.24);display:grid;grid-template-rows:auto 1fr}.obsl-inbox-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #eee}.obsl-inbox-head>div{display:flex;gap:7px}.obsl-inbox-head button{min-height:34px;border:0;border-radius:10px;padding:6px 10px;background:#f3f4f6}.obsl-inbox-head #obsl-inbox-close{font-size:22px;min-width:34px}.obsl-inbox-list{overflow:auto;-webkit-overflow-scrolling:touch}.obsl-inbox-row{display:grid;grid-template-columns:1fr auto;gap:6px;padding:8px 10px;border-bottom:1px solid #f1f1f1}.obsl-inbox-open{display:grid;grid-template-columns:9px 1fr;gap:8px;align-items:start;text-align:left;border:0;background:none;padding:2px;min-width:0}.obsl-inbox-open .dot{width:8px;height:8px;margin-top:6px;border-radius:50%;background:#d32f2f}.obsl-inbox-row.is-read .dot{background:#bbb}.obsl-inbox-row.is-read{opacity:.68}.obsl-inbox-open span:last-child{display:grid;gap:2px;min-width:0}.obsl-inbox-open small{white-space:normal;overflow-wrap:anywhere}.obsl-inbox-open time{font-size:10px;color:#777}.obsl-inbox-recall{align-self:center;border:0;border-radius:9px;padding:7px 8px;background:#f7f7f7;font-size:11px}.obsl-inbox-empty{padding:28px;text-align:center;color:#777}
.market-panel{position:relative!important}
#clock.clock-swipe-active{user-select:none!important;-webkit-user-select:none!important}



/* === OBSL v10.3.4.3 focused fixes === */
/* Notification bell: keep the original glyph clean; badge remains visible. */



.obsl-inbox-head-actions,.obsl-inbox-row-actions{display:flex!important;align-items:center!important;gap:4px!important}
.obsl-inbox-head-actions button,.obsl-inbox-row-actions button{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;margin:0!important;
  display:grid!important;place-items:center!important;border:0!important;border-radius:8px!important;background:transparent!important;
  box-shadow:none!important;font:800 16px/1 system-ui,-apple-system,"Segoe UI",sans-serif!important;color:inherit!important;
}
.obsl-inbox-row-actions .obsl-inbox-recall{width:42px!important;min-width:42px!important;font-size:14px!important;letter-spacing:-3px!important;padding-right:3px!important}
.obsl-inbox-row-actions button:active,.obsl-inbox-head-actions button:active{background:rgba(127,127,127,.12)!important;transform:scale(.94)}
.obsl-inbox-row-actions button:disabled{opacity:.3!important}
.obsl-inbox-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
/* Market refresh: glyph itself touches the outer top-right corner, while a 48x48 hit area extends inward. */
.market-panel{position:relative!important}

#clock{touch-action:pan-y!important;-webkit-user-select:none;user-select:none}

/* === OBSL v10.3.4.4 single-owner final overrides === */
/* Bell + badge: icon-only, transparent button, no decorative background. */


.obsl-inbox-icon{display:block!important;width:20px!important;height:20px!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;pointer-events:none!important}


.obsl-inbox-head-actions,.obsl-inbox-row-actions{display:flex!important;align-items:center!important;gap:3px!important}
.obsl-inbox-head-actions button,.obsl-inbox-row-actions button{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;margin:0!important;
  display:grid!important;place-items:center!important;border:0!important;border-radius:8px!important;background:transparent!important;
  color:var(--text,#111)!important;box-shadow:none!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;
}
.obsl-inbox-row-actions .obsl-inbox-recall{width:36px!important;min-width:36px!important;padding:0!important;letter-spacing:normal!important}
.obsl-inbox-head-actions button:active,.obsl-inbox-row-actions button:active{background:rgba(127,127,127,.13)!important;transform:scale(.92)!important}
.obsl-inbox-row-actions button:disabled{opacity:.28!important}

/* Market refresh: 48x48 hit-area inward, visible glyph pinned to the panel's absolute outer top-right pixel. */
.market-panel{position:relative!important}






/* Clock owns horizontal swipe; vertical page scrolling remains native. */
#clock{touch-action:pan-y!important;overscroll-behavior-x:contain!important;-webkit-user-select:none!important;user-select:none!important}
#stars-layer,#fireworks-canvas{pointer-events:none!important}


/* === OBSL v10.3.4.5 focused closure: notification header actions + non-overlapping badge === */



.obsl-inbox-head{padding:14px 16px!important;gap:12px!important;align-items:center!important}
.obsl-inbox-head>strong{font-size:20px!important;line-height:1.15!important}
.obsl-inbox-head-actions{margin-left:auto!important;display:flex!important;align-items:center!important;gap:8px!important;flex:0 0 auto!important}
.obsl-inbox-head-actions button{
  width:52px!important;height:48px!important;min-width:52px!important;min-height:48px!important;padding:0!important;margin:0!important;
  display:grid!important;place-items:center!important;border:0!important;border-radius:13px!important;
  background:#fff0f0!important;color:#bd1e1e!important;box-shadow:none!important;touch-action:manipulation!important;
}
.obsl-inbox-head-actions button .obsl-inbox-icon{width:23px!important;height:23px!important;stroke-width:2.2!important}
.obsl-inbox-head-actions button:active{background:#ffe4e4!important;transform:scale(.94)!important}
.obsl-inbox-row{grid-template-columns:minmax(0,1fr)!important;padding:10px 12px!important}
.obsl-inbox-row-actions{display:none!important}
@media (max-width:420px){
 .obsl-inbox-head{padding:12px!important}
 .obsl-inbox-head>strong{font-size:18px!important}
 .obsl-inbox-head-actions{gap:6px!important}
 .obsl-inbox-head-actions button{width:46px!important;height:44px!important;min-width:46px!important;min-height:44px!important;border-radius:12px!important}
}



/* === v10.3.4.6 Header date-row background is authoritative === */
#header-frame .header-calendar-row{background:var(--obsl-date-row-bg,transparent)!important;}
#header-frame .header-calendar-row[data-obsl-date-row-transparent="1"]{
  background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important;outline:0!important;
}

.obsl-color-blank-row{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:7px;align-items:center}.obsl-color-blank-row input[type="color"]{width:46px;height:40px;padding:2px}

/* Bell lives inside Header. It is shifted left so a wide 100+ badge remains inside the frame. */
#header-frame{position:relative!important;overflow:visible!important}



@media(max-width:420px){}

/* Notification Center actions: exactly three compact controls in header. */
.obsl-inbox-head-actions button{font:900 21px/1 system-ui,-apple-system,"Segoe UI",sans-serif!important;letter-spacing:-2px!important}
.obsl-inbox-head-actions button[data-kind="delete"]{font-size:23px!important;letter-spacing:0!important}
.obsl-inbox-head-actions button[data-kind="recall"]{font-size:18px!important;letter-spacing:-5px!important;padding-right:4px!important}
.obsl-inbox-head-actions button[hidden]{display:none!important}

.obsl-background-manager-list{display:grid;gap:12px}.obsl-bg-manager-card{display:grid;gap:8px;padding:12px;border:1px solid var(--line,#d1d5db);border-radius:14px}.obsl-bg-manager-card>strong{font-size:15px}.obsl-bg-manager-card>small{opacity:.7;overflow-wrap:anywhere}

.obsl-global-tag-helper{margin:6px 0 12px;padding:9px;border:1px dashed color-mix(in srgb,var(--line,#d1d5db) 85%,transparent);border-radius:10px;background:color-mix(in srgb,var(--panel,#fff) 94%,transparent)}.obsl-global-tag-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}.obsl-global-tag-head b{font-size:12px}.obsl-global-tag-head small{font-size:10px;opacity:.65}.obsl-global-tag-chips{display:flex;gap:5px;overflow-x:auto;padding:7px 0 4px;scrollbar-width:thin}.obsl-global-tag-chips button{flex:0 0 auto;border:1px solid var(--line,#d1d5db);background:transparent;color:inherit;border-radius:999px;padding:4px 7px;font:700 10px/1.2 ui-monospace,monospace}.obsl-global-tag-preview{margin-top:5px;padding:7px 8px;border-radius:8px;background:rgba(127,127,127,.08);font-size:11px;line-height:1.4;overflow-wrap:anywhere}.obsl-editor-source+.obsl-global-tag-helper{display:none}

/* v10.3.4.6 Notification action glyphs use SVG so iOS/Android never substitute missing-font boxes. */
.obsl-inbox-head-actions .obsl-action-double-check,.obsl-inbox-head-actions .obsl-action-backspace,.obsl-inbox-head-actions .obsl-action-backspace-double{display:flex!important;align-items:center!important;justify-content:center!important;line-height:0!important}
.obsl-inbox-head-actions .obsl-action-double-check .obsl-inbox-icon{width:27px!important;height:27px!important}
.obsl-inbox-head-actions .obsl-action-backspace .obsl-inbox-icon{width:25px!important;height:25px!important}
.obsl-inbox-head-actions .obsl-action-backspace-double{gap:0!important}
.obsl-inbox-head-actions .obsl-action-backspace-double .obsl-inbox-icon{width:20px!important;height:20px!important;margin:0 -2px!important}

/* === OBSL v10.3.4.7 responsive bell + compact global tags === */
#header-frame{position:relative!important;overflow:hidden!important}






.obsl-global-tag-helper{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;margin:6px 0 10px!important;padding:0!important;border:1px dashed color-mix(in srgb,var(--line,#d1d5db) 85%,transparent)!important;border-radius:10px!important;background:color-mix(in srgb,var(--panel,#fff) 96%,transparent)!important}
.obsl-global-tag-helper>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;min-width:0!important;padding:8px 10px!important;cursor:pointer!important;list-style:none!important;font-size:12px!important;font-weight:800!important;touch-action:manipulation!important}
.obsl-global-tag-helper>summary::-webkit-details-marker{display:none!important}
.obsl-global-tag-helper>summary small{font-size:10px!important;font-weight:500!important;opacity:.62!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.obsl-global-tag-body{min-width:0!important;max-width:100%!important;padding:0 8px 8px!important;overflow:hidden!important}
.obsl-global-tag-chips{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;gap:5px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:5px 0!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-inline:contain!important;touch-action:pan-x!important;scrollbar-width:thin!important}
.obsl-global-tag-chips button{flex:0 0 auto!important;max-width:160px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.obsl-global-tag-preview{box-sizing:border-box!important;max-width:100%!important;min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important}
.admin-dialog,.admin-panel,.system-menu-panel,#system-menu,[data-obsl-editor-root],.obsl-html5-editor{min-width:0!important;max-width:100%!important}
@media(max-width:430px){
  
  .obsl-global-tag-helper>summary{padding:7px 8px!important}
  .obsl-global-tag-helper>summary small{max-width:46vw!important}
}


/* === OBSL v10.3.4.8 STABILITY-ONLY OWNERS ===
   Bell owner: notification-inbox.js + this block.
   Market refresh owner: Market/market.js + this block.
   Header date effects owner: effects-manager.js (Web Animations API only).
*/
#header-frame{position:relative!important;overflow:hidden!important}
#header-frame>#obsl-notification-bell{
  position:absolute!important;right:7px!important;top:7px!important;
  width:auto!important;min-width:24px!important;height:30px!important;
  padding:0!important;margin:0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  display:flex!important;align-items:flex-start!important;justify-content:flex-end!important;
  z-index:80!important;overflow:visible!important;touch-action:manipulation!important;
}
#header-frame>#obsl-notification-bell .obsl-bell-wrap{
  display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:flex-end!important;
  gap:0!important;width:auto!important;height:28px!important;overflow:visible!important;
}
#header-frame>#obsl-notification-bell .obsl-bell-icon{
  flex:0 0 24px!important;width:24px!important;height:24px!important;display:grid!important;place-items:center!important;
}
#header-frame>#obsl-notification-bell .obsl-bell-icon .obsl-inbox-icon{width:24px!important;height:24px!important;display:block!important}
#header-frame>#obsl-notification-bell .obsl-notification-badge{
  position:static!important;flex:0 0 auto!important;transform:translateY(-5px)!important;margin-left:0!important;
  min-width:17px!important;max-width:21px!important;height:17px!important;padding:0 3px!important;box-sizing:border-box!important;
  border:0!important;border-radius:999px!important;background:#d32f2f!important;color:#fff!important;
  font:800 9px/17px system-ui,-apple-system,"Segoe UI",sans-serif!important;text-align:center!important;white-space:nowrap!important;
  pointer-events:none!important;
}
#header-frame>#obsl-notification-bell .obsl-notification-badge[hidden]{display:none!important}

/* v17: Market refresh geometry is owned by v17.css and mirrors Weather refresh exactly. */
/* Header date nodes must remain free of CSS animations; effects-manager.js is the sole animation owner. */
#header-frame #weekday,#header-frame #solar-date,#header-frame #lunar-date{animation:none!important}

/* v10.3.4.9 STABILITY OWNER: Bell + Inbox actions + Settings notification tabs */
#system-menu.settings-tabbed>details.system-group:not(.settings-tab-active){display:none!important}
#system-settings-group:not(.settings-tab-active)>.system-group-body>.settings-sub-tabs{display:none!important}
#header-frame>#obsl-notification-bell{right:3px!important;top:3px!important;width:43px!important;min-width:43px!important;height:27px!important;overflow:hidden!important}
#header-frame>#obsl-notification-bell .obsl-bell-wrap{position:relative!important;width:43px!important;height:27px!important;display:block!important;overflow:hidden!important}
#header-frame>#obsl-notification-bell .obsl-bell-icon{position:absolute!important;left:0!important;top:2px!important;width:24px!important;height:24px!important}
#header-frame>#obsl-notification-bell .obsl-notification-badge{position:absolute!important;left:23px!important;top:0!important;transform:none!important;margin:0!important;min-width:16px!important;max-width:20px!important;width:auto!important;height:16px!important;padding:0 2px!important;font-size:8.5px!important;line-height:16px!important}
.obsl-inbox-head-actions{gap:10px!important}
.obsl-inbox-head-actions button{appearance:none!important;-webkit-appearance:none!important;width:auto!important;min-width:26px!important;height:30px!important;min-height:30px!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#111!important;transform:none!important}
.obsl-inbox-head-actions button:active,.obsl-inbox-head-actions button:focus{background:transparent!important;box-shadow:none!important;transform:none!important;outline:none!important}
.obsl-action-glyph{display:block!important;color:#111!important;font:700 24px/30px system-ui,-apple-system,"Segoe UI Symbol","Arial Unicode MS",sans-serif!important;letter-spacing:-3px!important;white-space:nowrap!important}
#obsl-inbox-delete-all .obsl-action-glyph{letter-spacing:0!important;font-size:25px!important}
#obsl-inbox-recall-all .obsl-action-glyph{font-size:22px!important;letter-spacing:-6px!important}


/* === OBSL v10.3.4.10 stability: strict notification tabs + responsive tag helper + image roles === */
#system-menu.settings-tabbed .settings-subtabbed>[data-obsl-subtab-member="1"]{display:none!important}
#system-menu.settings-tabbed .settings-subtabbed>[data-obsl-subtab-member="1"].settings-subtab-active{display:block!important}
#system-menu.settings-tabbed>details.system-group:not(#system-settings-group) #notification-app-settings{display:none!important}
.obsl-global-tag-helper{width:min(100%,100%)!important;max-width:100%!important;min-width:0!important;contain:layout paint!important}
.obsl-global-tag-body{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}
.obsl-global-tag-chips{display:flex!important;flex-wrap:wrap!important;overflow:visible!important;width:100%!important;max-width:100%!important;gap:5px!important;touch-action:pan-y!important}
.obsl-global-tag-chips button{max-width:100%!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important}
#system-menu.settings-tabbed :is(input,textarea,select,.brand-admin-field,.system-select-row,.system-switch-row,.admin-subsection-body,.system-group-body){box-sizing:border-box!important;max-width:100%!important;min-width:0!important}
.notification-preview-card{max-width:100%!important;overflow:hidden!important}
.notification-preview-head{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:8px!important;align-items:start!important}
.notification-preview-icon{width:48px!important;height:48px!important;object-fit:cover!important;border-radius:10px!important}
.notification-preview-large-wrap{margin-top:8px!important;max-width:100%!important;overflow:hidden!important}
.notification-preview-large-wrap>small{display:block!important;margin-bottom:5px!important;font-size:10px!important;opacity:.68!important}
.notification-preview-image{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:2/1!important;object-fit:cover!important;border-radius:12px!important}

/* v17: Event + Google compact responsive layout is owned by v17.css. */
/* v10.3.4.14 weather text-effect leaf: isolate animation from weather layout CSS */
#temp>.obsl-weather-effect-leaf,#weather-desc>.obsl-weather-effect-leaf{
  display:inline-block!important;
  transform-origin:center!important;
  max-width:100%!important;
  color:inherit!important;
  font:inherit!important;
  line-height:inherit!important;
}

/* === v10.3.4.15 focused owner: Google Calendar responsive accordion === */
#calendar-speed-panel.google-calendar-panel{
  box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;
  max-height:min(72dvh,620px)!important;overflow-x:hidden!important;overflow-y:auto!important;
  overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important;
  padding:8px!important;margin:6px 0 0!important;
}
#calendar-speed-panel .google-calendar-panel-head{position:sticky!important;top:0!important;z-index:3!important;background:var(--panel,#fff)!important;padding:4px 2px 7px!important;max-width:100%!important;min-width:0!important}
#calendar-speed-panel .google-calendar-accordion{display:grid!important;gap:7px!important;width:100%!important;max-width:100%!important;min-width:0!important}
#calendar-speed-panel .google-calendar-section{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;border:1px solid var(--line,#d1d5db)!important;border-radius:10px!important;background:var(--panel,#fff)!important;overflow:hidden!important}
#calendar-speed-panel .google-calendar-section[hidden]{display:none!important}
#calendar-speed-panel .google-calendar-section>summary{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:9px 10px!important;list-style:none!important;cursor:pointer!important;font-weight:850!important;touch-action:manipulation!important;overflow:hidden!important}
#calendar-speed-panel .google-calendar-section>summary::-webkit-details-marker{display:none!important}
#calendar-speed-panel .google-calendar-section>summary::after{content:"⌄";flex:0 0 auto!important;font-size:14px!important;line-height:1!important;transition:transform .15s ease!important}
#calendar-speed-panel .google-calendar-section[open]>summary::after{transform:rotate(180deg)!important}
#calendar-speed-panel .google-calendar-section-body{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:0 9px 9px!important;overflow:hidden!important}
#calendar-speed-panel .google-calendar-connect-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;width:100%!important;max-width:100%!important;min-width:0!important}
#calendar-speed-panel .google-calendar-admin-config,#calendar-speed-panel .google-calendar-notify-config{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;border:0!important;padding:0 9px 9px!important;align-items:end!important}
#calendar-speed-panel .google-calendar-admin-config label,#calendar-speed-panel .google-calendar-notify-config label{display:grid!important;gap:4px!important;width:100%!important;max-width:100%!important;min-width:0!important;font-size:11px!important;font-weight:800!important}
#calendar-speed-panel .google-calendar-admin-config :is(input,select,button),#calendar-speed-panel .google-calendar-notify-config :is(input,select,button),#calendar-speed-panel .google-calendar-connect-grid button{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important}
#calendar-speed-panel .google-calendar-wide,#calendar-speed-panel .google-calendar-notify-config label{grid-column:1/-1!important}
#calendar-speed-panel .google-calendar-save-config{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
#calendar-speed-panel #calendar-config-save{grid-column:auto!important;width:100%!important;max-width:100%!important}
@media(max-width:620px){
 #calendar-speed-panel.google-calendar-panel{max-height:68dvh!important;padding:6px!important}
 #calendar-speed-panel .google-calendar-connect-grid,#calendar-speed-panel .google-calendar-admin-config{grid-template-columns:1fr!important}
 #calendar-speed-panel .google-calendar-wide,#calendar-speed-panel .google-calendar-notify-config label{grid-column:auto!important}
}

/* v12 stability: SystemHealth upcoming-events row stays responsive. */
#health-countdown-upcoming{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;line-height:1.45!important;min-width:0!important}

/* v12 native push role preview */
.obsl-native-push-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:start!important;gap:10px!important}
.obsl-app-identity-icon{width:44px!important;height:44px!important;object-fit:cover!important;border-radius:10px!important}
.obsl-content-thumbnail{width:44px!important;height:44px!important;object-fit:cover!important;border-radius:8px!important;justify-self:end!important}
.obsl-native-push-copy{min-width:0!important}

/* v12 native push preview: app identity left, payload icon right, expanded media below. */
.obsl-native-push-preview .obsl-native-push-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important}
.obsl-native-push-preview .obsl-app-identity-icon{grid-column:1!important;width:46px!important;height:46px!important;object-fit:cover!important;border-radius:12px!important}
.obsl-native-push-preview .obsl-native-push-copy{grid-column:2!important;min-width:0!important}
.obsl-native-push-preview .obsl-content-thumbnail{grid-column:3!important;width:42px!important;height:42px!important;object-fit:cover!important;border-radius:10px!important;justify-self:end!important}
@media(max-width:560px){.obsl-native-push-preview .obsl-content-thumbnail{width:38px!important;height:38px!important}.obsl-native-push-preview .obsl-app-identity-icon{width:42px!important;height:42px!important}}
