*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-size:100%}
html[data-text="s"]{font-size:90%}
html[data-text="l"]{font-size:118%}
body{margin:0;min-height:100dvh;background:var(--hw-bg);color:var(--hw-text);font-family:var(--hw-font);font-size:1rem;line-height:1.5;
  padding-block-end:calc(var(--tab-h) + env(safe-area-inset-bottom,0px) + 8px)}
img,svg{max-width:100%}
h1,h2,h3{line-height:1.2;margin:0 0 .5rem}
h1{font-size:1.6rem;font-weight:800;letter-spacing:-.01em}
h2{font-size:1.15rem}h3{font-size:1rem}
p{margin:0 0 .75rem}
a{color:var(--link)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
[tabindex="-1"]:focus{outline:none}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}
.skip{position:fixed;inset-inline-start:8px;inset-block-start:-60px;z-index:100;background:var(--btn);color:var(--on-btn);padding:.6rem 1rem;border-radius:10px;text-decoration:none;font-weight:700}
.skip:focus{inset-block-start:8px}
.boot{padding:2rem;text-align:center;color:var(--hw-text-2)}

.topbar{position:sticky;inset-block-start:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--bar-h);padding:6px max(12px,env(safe-area-inset-left));
  background:color-mix(in srgb,var(--hw-card) 92%,transparent);backdrop-filter:blur(10px);border-block-end:1px solid var(--hw-border)}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--hw-text);font-weight:800;min-height:var(--tap)}
.brand-name{font-size:1.05rem;white-space:nowrap}.brand-name span{color:var(--hw-owl-blue)}.brand-name em{font-style:normal;font-weight:600;color:var(--hw-text-2)}
.top-actions{display:flex;align-items:center;gap:2px}
.icon-btn,.chip-link{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);color:var(--hw-text);border-radius:12px;text-decoration:none}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn[aria-current="page"]{color:var(--link);background:var(--info-bg)}

main{display:block;max-width:var(--max);margin-inline:auto;padding:16px max(16px,env(safe-area-inset-left)) 8px;min-height:60vh}
.screen-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-block-end:12px}
.screen-head .back{display:inline-flex;align-items:center;gap:2px;min-height:var(--tap);text-decoration:none;font-weight:600}
.screen-head h1{margin:0;flex:1 1 100%}
.screen-head .back + h1{flex:1 1 100%}
.footer{max-width:var(--max);margin-inline:auto;padding:8px 16px 24px;color:var(--hw-text-2);font-size:.82rem}
.footer p{margin:0 0 .4rem}.footer .endorse{font-weight:700}

.tabbar{position:fixed;inset-inline:0;inset-block-end:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tab-h) + env(safe-area-inset-bottom,0px));padding-block-end:env(safe-area-inset-bottom,0px);
  background:var(--hw-card);border-block-start:1px solid var(--hw-border)}
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tap);color:var(--hw-text-2);text-decoration:none;font-size:.7rem;font-weight:600;padding:4px 2px;min-width:0}
.tabbar .tl{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabbar a[aria-current="page"]{color:var(--link)}
.tabbar a[aria-current="page"] .ti{background:var(--info-bg);border-radius:14px}
.ti{position:relative;display:grid;place-items:center;width:52px;height:30px;transition:background .2s}
.badge{position:absolute;inset-block-start:-4px;inset-inline-end:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--hw-lamp-yellow);color:#14202B;font-size:.68rem;font-weight:800;display:grid;place-items:center}
body.in-exam .tabbar{display:none}
body.in-exam{padding-block-end:16px}
.offline-banner{background:var(--warn-bg);color:var(--warn);text-align:center;padding:6px 12px;font-size:.88rem;font-weight:600}
.toasts{position:fixed;inset-inline:12px;inset-block-end:calc(var(--tab-h) + 16px);z-index:60;display:grid;gap:8px;justify-items:center;pointer-events:none}

/* wide screens: tab bar becomes a rail on the inline-start side */
@media (min-width:900px){
  body{padding-block-end:0;padding-inline-start:var(--rail)}
  .topbar{margin-inline-start:calc(-1 * var(--rail));padding-inline:20px}
  .tabbar{inset-block:var(--bar-h) 0;inset-inline:0 auto;inset-inline-start:0;width:var(--rail);height:auto;grid-template-columns:1fr;grid-auto-rows:76px;align-content:start;padding:12px 6px;border-block-start:0;border-inline-end:1px solid var(--hw-border)}
  .toasts{inset-block-end:24px}
  main{max-width:60rem;padding:28px 32px 8px}
  .footer{max-width:60rem;padding-inline:32px}
  body.in-exam{padding-inline-start:0}
  body.in-exam .topbar{margin-inline-start:0}
}
@media (max-width:359px){.brand-name em{display:none}.topbar{gap:4px}.top-actions{gap:0}.icon-btn{min-width:40px}}
