/* Sonav light theme: atmosphere stays behind the working interface. */
:root {
  --bg:#f4faf9; --navy:#1e3a5f; --teal:#087f78; --mint:#e3f5f0;
  --muted:#576c80; --border:#dce9e9; --amber:#b96908; --radius:24px;
  --surface-shadow:0 8px 26px -16px #183d5f36,0 2px 4px #183d5f04;
}
body {
  background:radial-gradient(ellipse at 0% 0%,#dbf3ef 0,transparent 42%),
    radial-gradient(ellipse at 100% 38%,#fff4dc 0,transparent 40%),#f4faf9;
  min-height:100dvh; isolation:isolate;
}
body:before,body:after {
  content:"";position:fixed;pointer-events:none;z-index:-1;border-radius:50%;
  width:360px;height:360px;border:52px solid #0d948809;
}
body:before {top:-200px;left:-170px}
body:after {bottom:-230px;right:-180px;border-color:#eaaa2410}
h1,h2,h3 {font-family:'Be Vietnam Pro',sans-serif;letter-spacing:-.025em}
h2 {font-size:18px}
main {padding-top:24px}
.top {background:#ffffffee;border-bottom:1px solid #dce9e9;box-shadow:0 4px 20px #1e3a5f05}
.top h1 {font-size:18px;line-height:1.4}
.top .role {font-size:11px;margin-top:3px}
.top .sonav-logo {background:white;padding:3px;box-shadow:0 4px 12px #1e3a5f08}
.iconbtn {background:#fff;border-color:#dce9e9;box-shadow:0 3px 10px #1e3a5f06}
.card,.class-card,.class-session,.agenda-card,.material-card,.assignment-list-card {
  border-color:var(--border);box-shadow:var(--surface-shadow);
}
.role-admin .card,.role-ph>.card,.admin-stat,.admin-shortcut {border-radius:var(--radius)}
.card {padding:22px;margin-bottom:18px}
.hero,.teacher-schedule,.parent-schedule {
  background:linear-gradient(125deg,#f5fdfb,#e1f5ef);
  border:1px solid #bfe5dd;box-shadow:0 10px 28px -18px #087f7850;
}
.hero:before {height:4px;background:linear-gradient(90deg,#0d9488,#31beb0)}
.hero h2,.parent-schedule h2 {font-size:21px;line-height:1.4}
.lesson-facts .tile,.lesson-teacher,.teacher-lesson {background:#ffffffd9;border-color:#d9ebe6;border-radius:18px}
.lesson-facts .tile b {font-size:12px;white-space:normal}
.lesson-teacher {border-radius:16px;flex-wrap:wrap}
.teacher-schedule {border-top:4px solid #0d9488}
.teacher-action {border-radius:22px;box-shadow:var(--surface-shadow)}
.teacher-action.teal {background:linear-gradient(135deg,#0b8d83,#08766f)}
.teacher-task,.admin-task {border-radius:22px}
.warning {background:linear-gradient(120deg,#fffdf6,#fff3d9);border-color:#efdbb3}
.warning .btn:not(.line),.teacher-task .btn:not(.line) {background:#f3bb42;color:#173453}
.admin-stat {padding:20px;border-top:3px solid #c5e6df}
.admin-stat:nth-child(2) {border-top-color:#cddbeb}
.admin-stat:nth-child(3) {border-top-color:#efdbb3}
.admin-stat>b {font-size:34px;margin:12px 0 6px}
.admin-shortcut {box-shadow:var(--surface-shadow);gap:10px}
.admin-shortcut>.icon {border-radius:14px}
.admin-status {border-radius:16px}
.admin-tabs .btn.line {background:#ffffffbd}
.heading {margin:28px 0 14px}
.heading h2 {letter-spacing:-.02em}
.badge {background:#e3f5f0;color:#08776d;font-weight:500}
.badge.amber {color:#955307}
.tile,.parent-result,.learning-stats .tile {background:#f5faf9;border-color:#dfebe8;border-radius:18px}
.shortcuts .shortcut {border-radius:20px;box-shadow:var(--surface-shadow);padding:18px 6px}
.shortcut .icon {border-radius:14px}
.shortcut:nth-child(2) .icon {background:#eef3fb;color:var(--navy)}
.shortcut:nth-child(3) .icon {background:#fff3d9;color:#a76608}
.btn {border-radius:16px;background:linear-gradient(135deg,#274a70,#183859);font-size:13px;box-shadow:0 5px 12px -8px #1e3a5f70}
.btn.teal {background:linear-gradient(135deg,#0d9488,#087b73)}
.btn.line {background:#fff;box-shadow:none;border-color:#d7e4e6}
.btn.material-ready {background:#f0fdfa;color:var(--navy);box-shadow:none;border:1px solid #b8e5de}
.btn:focus-visible,.iconbtn:focus-visible,nav button:focus-visible,.shortcut:focus-visible {outline:3px solid #e6ae31;outline-offset:3px}
.field input,.field textarea,.field select,.search,.login input {border-color:#d3e2e3;border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field textarea:focus,.field select:focus,.search:focus,.login input:focus {outline:2px solid #0d9488;outline-offset:2px;box-shadow:0 0 0 5px #0d94880c}
.row {padding:16px 0}
.row b {line-height:1.5}
.empty {background:#f4faf8;border:1px dashed #d5e7e1;border-radius:16px;padding:24px 16px}
.demo {padding:9px 12px;background:#e9f5f1b8;border:1px solid #d9ebe4;border-radius:12px;font-size:11px;color:#476579}
nav {
  left:12px;right:12px;bottom:10px;max-width:770px;margin:auto;
  background:#fffffff5;border:1px solid #d9e7e6;border-radius:24px;
  padding:7px 6px calc(7px + env(safe-area-inset-bottom));box-shadow:0 8px 32px #1e3a5f18;
}
nav button {background:transparent;border-radius:18px;min-width:0}
nav button.active {background:#e1f5ef;color:#087f78;box-shadow:inset 0 0 0 1px #d0ebe4}
nav button .icon {font-size:23px}
.login {max-width:520px;padding:42px 24px 28px;text-align:center}
.login-brand {display:flex;justify-content:center;align-items:center;gap:12px;margin:12px 0 32px}
.login-brand .sonav-logo {width:62px;height:62px;background:white;border-radius:18px;padding:6px;box-shadow:0 6px 20px #087f7810}
.login-brand strong {font-size:30px;letter-spacing:-.04em}
.login h1 {font-size:30px;line-height:1.3;margin:0 0 10px}
.login-intro>p:first-of-type {font-size:16px;font-weight:500;margin-bottom:12px}
.login-intro>.muted {line-height:1.75;max-width:380px;margin:auto}
.login .shared-demo-status {font-size:11px;line-height:1.6;color:var(--muted);margin:18px 0 0}
.login form {background:#fff;border:1px solid #dce9e9;border-radius:24px;padding:24px;box-shadow:0 14px 45px -22px #0a716b40;margin:24px auto 20px}
.login label {font-size:13px;margin:0 0 8px}
.login input+label {margin-top:20px}
.login input {min-height:52px;padding:14px}
.login .error {font-size:12px;margin:12px 0 0;min-height:20px}
.login .btn {min-height:52px;margin-top:14px}
.login-footer {font-size:11px!important;max-width:360px;margin:0 auto;line-height:1.7}
@media(min-width:900px) {
  body:before {width:600px;height:600px;top:-240px;left:-250px;border-width:90px}
  body:after {width:560px;height:560px;bottom:-260px;right:-260px;border-width:80px}
  .login {max-width:980px;min-height:min(760px,100dvh);padding:70px 48px;display:grid;grid-template-columns:1fr 1fr;column-gap:64px;align-content:center;text-align:left}
  .login-brand {justify-content:flex-start;grid-column:1;margin:0 0 30px}
  .login-intro {grid-column:1;grid-row:2}
  .login h1 {font-size:38px}
  .login-intro>.muted {margin:0}
  .login .shared-demo-status {grid-column:1;grid-row:3;margin-top:18px}
  .login form {grid-column:2;grid-row:1/5;align-self:center;padding:32px;margin:0;width:100%}
  .login-footer {grid-column:1;grid-row:4;margin:24px 0 0}
}
@media(max-width:370px) {
  .login {padding:28px 18px}.login h1 {font-size:27px}.login form {padding:20px}
  .card {padding:18px}.hero h2 {font-size:19px}.top {gap:8px;padding:14px 16px}.top h1 {font-size:16px}
  .top .iconbtn {width:44px;min-height:44px}
}
.large-text .login {display:block;min-height:0;text-align:left;padding:28px 22px}
.large-text .login-brand {justify-content:flex-start}
.large-text .login form {margin:24px auto;padding:22px}
.large-text .login-footer {margin:20px 0}
.large-text nav {bottom:0;left:0;right:0;border-radius:18px 18px 0 0}
.ime-open .login {min-height:0;align-content:start;padding-top:24px}
@media(prefers-reduced-motion:no-preference) {
  main {animation:none}
  .btn,.shortcut,.iconbtn,.teacher-action,nav button,.child button {
    transition:transform .16s ease,background-color .18s ease,border-color .18s ease;
  }
  .btn:active,.shortcut:active,.iconbtn:active,.teacher-action:active,nav button:active {transform:scale(.975)}
  #toast.on {animation:sonav-notice-in .2s ease-out}
  .modal-scrim {animation:sonav-fade-in .16s ease-out}
  .modal-scrim>.card {animation:sonav-dialog-in .22s cubic-bezier(.22,.8,.3,1)}
  @keyframes sonav-notice-in {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  @keyframes sonav-fade-in {from{opacity:0}to{opacity:1}}
  @keyframes sonav-dialog-in {from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
}
.btn,.iconbtn,.shortcut,.teacher-action,nav button {position:relative;overflow:hidden}
.sonav-ripple {position:absolute;border-radius:50%;background:currentColor;pointer-events:none;opacity:0;z-index:1}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .btn:not(:disabled):hover,.shortcut:not(:disabled):hover,.teacher-action:not(:disabled):hover {transform:translateY(-2px)}
  .iconbtn:not(:disabled):hover {background:#edf8f5}
}
@media(prefers-reduced-motion:reduce) {
  main,#toast,.modal-scrim,.modal-scrim>.card {animation:none!important}
  button,input,textarea,select {transition:none!important}
}

.top .back-button {background:#e3f5f0;border:1px solid #9bd5c9;color:#125c56;box-shadow:0 3px 10px #0d948814}
.top .back-button .icon {font-size:26px}

.ux-tabs{display:flex;gap:8px;margin:0 0 20px;padding:6px;background:#eaf3f3;border-radius:18px}.ux-tabs button{flex:1;border:0;border-radius:13px;background:transparent;padding:10px 8px;font-size:13px;font-weight:650}.ux-tabs button[aria-selected=true]{background:#fff;color:#125c56;box-shadow:0 3px 12px #1e3a5f12}.ux-tabs button span{display:inline-block;font-size:11px;margin-left:4px;padding:1px 6px;border-radius:8px;background:#e3f5f0}.ux-tabs button:focus-visible{outline:3px solid #e6ae31}.people-directory .row{align-items:center}.people-directory [hidden]{display:none!important}

.ux-disclosure{margin:16px 0}.ux-disclosure summary{cursor:pointer;font-weight:650;min-height:48px;display:list-item;align-content:center;color:#1e3a5f}.ux-disclosure[open]>summary{margin-bottom:12px}.ux-tabs button{font-size:12px}@media(max-width:360px){.ux-tabs{gap:3px}.ux-tabs button{padding:8px 4px}.ux-tabs button span{margin-left:1px;padding:1px 4px}}

/* Animated Sonav sign-in: scoped to login; artwork remains decorative. */
.login.login-animated{position:relative;display:flex;align-items:center;justify-content:center;max-width:none;min-height:100dvh;width:100%;padding:40px 28px;text-align:left;background:linear-gradient(130deg,#16364f 0%,#1e4c60 58%,#0b8278 100%);isolation:isolate;overflow:hidden}
.login-animated:before,.login-animated:after{content:"";position:absolute;pointer-events:none;border-radius:45%;z-index:-1;background:#ffffff26;width:700px;height:400px;transform:rotate(-24deg)}
.login-animated:before{left:-350px;bottom:-150px}.login-animated:after{right:-370px;top:-120px;background:#82cfc51a}
.login-shell{width:min(1080px,100%);background:#fff;border:1px solid #ffffffcc;border-radius:30px;box-shadow:0 28px 80px -28px #001c3c99;position:relative;overflow:hidden}
.login-shell:after{content:"";position:absolute;right:-100px;top:-95px;width:310px;height:270px;border-radius:45%;background:#fff0c9;transform:rotate(-30deg);pointer-events:none;z-index:0}
.login-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:28px 40px}
.login-animated .login-brand{margin:0;justify-content:flex-start;gap:10px;grid-column:auto;grid-row:auto}
.login-animated .login-brand .sonav-logo{width:47px;height:47px;padding:0;background:transparent;box-shadow:none;border-radius:0}
.login-animated .login-brand strong{font-size:30px;letter-spacing:-.045em}
.login-header .language-setting{position:static;margin:0;padding:0;border:0;background:none;box-shadow:none;gap:12px;font-size:11px}
.login-header [data-language-label]{display:none}
.login-content{display:grid;grid-template-columns:1.08fr 1fr;gap:38px;padding:14px 66px 62px 42px;align-items:center;position:relative;z-index:1;min-height:480px}
.login-art{min-width:0;text-align:center;padding:24px 8px 28px;background:transparent;border-radius:0;border:none}
.login-illustration{display:block;width:100%;max-width:460px;margin:auto;overflow:visible}
.login-art p{font-size:21px;font-weight:700;color:#163b51;margin:8px 0 0;letter-spacing:-.02em}
.login-form-area{min-width:0;width:100%;max-width:360px;justify-self:end}
.login-animated .login-intro{grid-column:auto;grid-row:auto}
.login-animated h1{font-size:34px;line-height:1.25;letter-spacing:-.035em;margin:0 0 12px}
.login-animated .login-intro>.muted{font-size:14px;line-height:1.7;margin:0;max-width:none;color:#425f71}
.login-animated form{border:none;padding:0;background:transparent;box-shadow:none;margin:25px 0 0;width:100%;max-width:none;grid-column:auto;grid-row:auto}
.login-animated label{font-size:14px;font-weight:650;margin:0 0 8px;color:#163b51}
.login-animated input{min-height:51px;border-radius:11px;background:#fff;border:1.5px solid #9bb5bf;padding:13px 15px;transition:background .2s,border-color .2s,box-shadow .2s}
.login-animated input:focus{outline:none;border-color:#0d9488;background:white;box-shadow:0 0 0 4px #0d948812}
.login-animated input+label{margin-top:19px}
.login-animated .error{margin:8px 0 0;min-height:23px;line-height:1.6;font-size:12px}
.login-animated .btn{border-radius:12px;background:#f3b51b;color:#16364f;min-height:52px;margin-top:7px;box-shadow:0 5px 15px -7px #087f7877;font-size:15px;font-weight:750;transition:background .2s,transform .2s,box-shadow .2s}
.login-animated .btn:hover:not(:disabled){background:#e5a511;box-shadow:0 7px 20px -8px #087f78aa;transform:translateY(-1px)}
.login-animated .btn:active:not(:disabled){transform:translateY(1px)}
.login-animated .btn:disabled{cursor:wait;background:#c7bd98}
.login-animated .shared-demo-status{font-size:12px;line-height:1.6;margin:16px 0 0;color:#17665c;grid-column:auto;grid-row:auto}
.login-animated .login-footer{font-size:12px!important;line-height:1.7;margin:8px 0 0;max-width:none;grid-column:auto;grid-row:auto;color:#536b78}
/* Native SVG transforms keep paths vector-rendered during motion. CSS transforms can rasterize the entire illustration. */
.login-shell{animation:none}
.login-illustration,.login-illustration *{animation:none!important;will-change:auto}
@media(max-width:760px){
 .login.login-animated{padding:20px 16px;align-items:flex-start;overflow:hidden}
 .login-shell{max-width:460px;border-radius:24px}
 .login-header{padding:22px 24px 10px}
 .login-animated .login-brand strong{font-size:25px}
 .login-animated .login-brand .sonav-logo{width:38px;height:38px}
 .login-content{grid-template-columns:1fr;gap:10px;padding:0 30px 30px;min-height:0}
 .login-art{padding:0;max-width:260px;justify-self:center;width:100%;background:transparent;border:none}
 .login-illustration{height:160px;width:100%}
 .login-art p{display:none}
 .login-form-area{max-width:none;justify-self:stretch}
 .login-animated h1{font-size:28px;margin-bottom:10px}
 .login-animated form{margin-top:20px}
 .login-animated .login-intro>.muted{font-size:13px;line-height:1.7}
}
@media(max-width:370px){.login.login-animated{padding:12px}.login-header{padding:20px 20px 8px}.login-content{padding:0 22px 25px}.login-illustration{height:125px}.login-animated h1{font-size:24px}}
.large-text .login.login-animated .login-content{grid-template-columns:1fr}.large-text .login.login-animated .login-art{display:none}.large-text .login.login-animated .login-form-area{max-width:520px;justify-self:center}.large-text .login.login-animated h1{font-size:1.8em}.large-text .login.login-animated .login-intro>.muted,.large-text .login.login-animated label{font-size:1em}.large-text .login.login-animated .login-footer,.large-text .login.login-animated .shared-demo-status{font-size:.85em!important}
.ime-open .login.login-animated{padding-top:12px;min-height:100dvh}.ime-open .login.login-animated .login-art{display:none}
@media(prefers-reduced-motion:reduce){.login-animated *{animation:none!important;transition:none!important}}

/* Form micro-interactions stay crisp; no continuous motion while typing. */
.login-title-brand{position:relative;display:inline-block;color:#08877e;z-index:0}
.login-title-brand:after{content:"";position:absolute;left:-2%;right:-3%;bottom:2px;height:8px;border-radius:5px;background:#f3b51b;z-index:-1;transform:rotate(-2deg);transition:height .22s ease}
.login-title-brand:hover:after{height:13px}
.login-animated .login-field{position:relative;margin-bottom:22px}
.login-animated .login-field:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:linear-gradient(90deg,#0b8278,#31baa2);border-radius:3px;transform:scaleX(0);transform-origin:left;transition:transform .28s ease;pointer-events:none}
.login-animated .login-field:focus-within:after{transform:scaleX(1)}
.login-animated .login-field label{display:block;transition:color .22s ease,transform .22s ease}
.login-animated .login-field:focus-within label{color:#08877e;transform:translateY(-2px)}
.login-animated .login-field input{transition:border-color .22s ease,box-shadow .22s ease,background .22s ease,transform .22s ease}
.login-animated .login-field input:hover{border-color:#31aa99;background:#f8fdfb;transform:translateY(-1px)}
.login-animated .login-field input:focus{border-color:#0b8278;box-shadow:0 0 0 4px #0b827814,0 5px 14px -9px #0b827860;transform:translateY(-1px)}
.login-animated .error:empty{min-height:0;margin:0}
.login-animated #sonav-login-submit{position:relative;overflow:hidden;margin-top:5px;transition:background .22s ease,transform .22s ease,box-shadow .22s ease}
.login-animated #sonav-login-submit:after{content:"";position:absolute;inset:-30% auto -30% -70%;width:45%;background:linear-gradient(110deg,transparent,#ffffff80,transparent);transform:skewX(-18deg);pointer-events:none}
.login-animated #sonav-login-submit:before{content:"";position:absolute;right:25px;top:calc(50% - 8px);width:18px;height:16px;background:#16364f;clip-path:polygon(0 42%,65% 42%,42% 12%,52% 2%,100% 50%,52% 98%,42% 88%,65% 58%,0 58%);opacity:0;transform:translateX(-8px);transition:opacity .22s ease,transform .22s ease}
.login-animated #sonav-login-submit:hover:not(:disabled),.login-animated #sonav-login-submit:focus-visible{background:#ffc52c;transform:translateY(-3px);box-shadow:0 10px 22px -10px #c38c24a0}
.login-animated #sonav-login-submit:hover:not(:disabled):before,.login-animated #sonav-login-submit:focus-visible:before{opacity:1;transform:translateX(0)}
.login-animated #sonav-login-submit:active:not(:disabled){transform:translateY(0);box-shadow:0 3px 9px -5px #c38c24a0}
.login-animated #sonav-login-submit:focus-visible{outline:3px solid #0b8278;outline-offset:4px}
@media(prefers-reduced-motion:no-preference){
 .login-animated .login-field{animation:login-field-in .4s ease both}
 .login-animated .login-field:nth-of-type(2){animation-delay:.07s}
 .login-animated #sonav-login-submit:hover:not(:disabled):after,.login-animated #sonav-login-submit:focus-visible:after{animation:login-button-shine .65s ease}
 @keyframes login-field-in{from{transform:translateY(8px)}to{transform:translateY(0)}}
 @keyframes login-button-shine{from{left:-70%}to{left:130%}}
}
@media(prefers-reduced-motion:reduce){.login-animated .login-field,.login-animated .login-field *,.login-animated #sonav-login-submit,.login-animated #sonav-login-submit:before,.login-animated #sonav-login-submit:after,.login-title-brand:after{animation:none!important;transition:none!important;transform:none!important}}

.login-title-to{display:none}html[lang="en"] .login-title-to{display:inline}

/* Android learning flow: static feedback avoids repainting the reading surface. */
.sonav-android .top,.sonav-android nav{background:#fff;box-shadow:none}
.sonav-android main:not([data-screen="login"]) button,
.sonav-android .top button,.sonav-android nav button,
.sonav-android .material-viewer-dialog button{transition:none!important}
.sonav-android main:not([data-screen="login"]) button:active,
.sonav-android .top button:active,.sonav-android nav button:active,
.sonav-android .material-viewer-dialog button:active{transform:none!important}
.sonav-android:has(main[data-screen="materials"]) body{background:#f4faf9}
.sonav-android:has(main[data-screen="materials"]) body:before,
.sonav-android:has(main[data-screen="materials"]) body:after{display:none}
.sonav-android main[data-screen="materials"] .material-card,
.sonav-android main[data-screen="materials"] .btn{box-shadow:none}

/* Bound paint damage without forcing separate GPU textures. */
.sonav-android .top,.sonav-android nav{contain:paint}
.sonav-android main[data-screen="materials"].role-ph .material-library,
.sonav-android main[data-screen="materials"].role-hv .material-library{contain:layout paint}

/* Limit feedback paint damage to its own bounds. */
.sonav-android main[data-screen="materials"]>.demo,
.sonav-android main[data-screen="materials"]>.child-context-strip{contain:paint}
.sonav-android main[data-screen="materials"] .iconbtn{box-shadow:none}

/* A single opaque learning surface avoids stacking rounded GPU masks and textures. */
.sonav-android:has(main[data-screen="materials"]) body{background:#fff}
.sonav-android main[data-screen="materials"].role-ph,
.sonav-android main[data-screen="materials"].role-hv{background:#fff}
.sonav-android main[data-screen="materials"].role-ph .material-card,
.sonav-android main[data-screen="materials"].role-hv .material-card{border:0;border-radius:0;background:#fff}
.sonav-android main[data-screen="materials"].role-ph .btn,
.sonav-android main[data-screen="materials"].role-hv .btn{border-radius:8px}

/* Android learner rows paint independently; offscreen activities remain accessible. */
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv){overflow-anchor:none}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .material-card,
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .learner-activity-list li{contain:layout paint}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .learner-activity-list li{content-visibility:auto;contain-intrinsic-block-size:auto 72px}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .btn:not(.line){background:#1e3a5f}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .btn.teal{background:#087f78}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv)>.demo{background:#e9f5f1}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .learner-activity-number{border-radius:6px}

/* Android course navigation uses opaque rectangles instead of nested rounded masks. */
.sonav-android:has(main[data-screen="materials"]:is(.role-ph,.role-hv)) nav{left:0;right:0;bottom:0;max-width:none;border-radius:0;border-left:0;border-right:0;border-bottom:0;background:#fff}
.sonav-android:has(main[data-screen="materials"]:is(.role-ph,.role-hv)) nav button{border-radius:0;box-shadow:none}
.sonav-android:has(main[data-screen="materials"]:is(.role-ph,.role-hv)) .top .iconbtn{border-radius:6px;box-shadow:none}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .iconbtn{border-radius:6px}
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv)>.demo,
.sonav-android main[data-screen="materials"]:is(.role-ph,.role-hv) .learner-source-notice{border-radius:0}
