/* OBSLv2.1: accessible typography / strong dark-mode contrast. */
:root{--obsl-user-zoom:1;--obsl-text-percent:100%;}
html{-webkit-text-size-adjust:var(--obsl-text-percent);text-size-adjust:var(--obsl-text-percent)}
/* Scale TEXT ONLY, leaving clocks, videos and layout boundaries unchanged. */
/* Leaf text scales across modules without multiplying nested scales or enlarging videos. */
:where(.obsl-module,.panel) :is(span,small,b,strong,p,label,h1,h2,h3,h4,.day-info-title,.day-info-line,.tech-news-title,.tech-news-card-title,.moment-title):not(:has(*)):not(.obsl-bell-icon):not([class*="digit"]){zoom:var(--obsl-user-zoom)}
/* Remove small-screen rules that silently cap admin-adjusted day-info font sizes. */
#day-info-panel .day-info-title{font-family:var(--day-info-title-font,var(--day-info-font,system-ui))!important;font-size:var(--day-info-title-size,22px)!important;max-width:100%;white-space:normal!important;overflow-wrap:anywhere}
#day-info-panel .day-info-content,#day-info-panel .day-info-line{font-family:var(--day-info-content-font,var(--day-info-font,system-ui))!important;font-size:var(--day-info-font-size,16px)!important;white-space:normal!important;overflow-wrap:anywhere;text-overflow:clip!important}
@media(max-width:840px){#day-info-panel .day-info-content-wrap,#day-info-panel .day-info-content{height:auto!important;max-height:none!important;overflow:visible!important}}
#obsl-text-tool{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:12px;z-index:18500;background:#f9fafb;color:#111827;border:1px solid #94a3b8;border-radius:12px;padding:8px;box-shadow:0 2px 11px #0003;font:600 14px system-ui;display:flex;gap:8px;align-items:center}
#obsl-text-tool[hidden]{display:none!important}#obsl-text-tool button{background:#e2e8f0;color:#0f172a;border:1px solid #94a3b8;border-radius:7px;min-height:36px;min-width:36px;padding:3px 8px;font:700 15px system-ui}
#obsl-text-launch{font:600 12px system-ui;min-width:34px;min-height:30px;cursor:pointer}
html.dark #obsl-text-tool{background:#101827;color:#f8fafc;border-color:#62758f}html.dark #obsl-text-tool button{background:#23354c;color:#f8fafc;border-color:#8aa1bc}
/* Dark mode: make module surfaces dark enough for light content without blanking their background images. */
html.dark :is(.obsl-module,.panel,.footer-frame,#header-frame,.day-info-panel,.market-panel,.tech-news-panel){background-color:#101b2b!important;border-color:#526579!important}
html.dark :is(.obsl-module,.panel,.footer-frame,#header-frame) :is(h1,h2,h3,h4,h5,h6,p,small,b,strong,span,label,.day-info-title,.day-info-line,.tech-news-title,.tech-news-card-title,.market-title,.market-row,.weather-description,.weather-details,.cd-title,.cd-target,.cd-today){color:#f5f8fe!important;text-shadow:0 1px 2px rgba(0,0,0,.65)}
html.dark :is(.obsl-module,.panel) :is(a,[role="link"]){color:#a7d7ff!important}
html.dark :is(.obsl-module,.panel) :is(button,input,textarea,select){color:#f8fafc!important;background-color:#20334b!important;border-color:#7d96b5!important}
html.dark :is(.obsl-module,.panel) :is(input[type="color"],img,video,svg){filter:none!important}
html.dark :is(.obsl-module,.panel) ::placeholder{color:#d0d7e3!important;opacity:1}
@media(prefers-reduced-motion:reduce){#obsl-text-tool{transition:none!important}}
