.dashboard-world,body:has(.dashboard-world){--felt:164 86% 19%;--felt-hi:161 72% 26%;--felt-deep:163 84% 12%;--chalk:48 65% 97%;--wall:47 47% 96%;--slip:48 60% 99%;--slip-hi:0 0% 100%;--slip-2:44 43% 92%;--slip-edge:43 29% 82%;--ink:164 28% 13%;--ink-soft:158 14% 35%;--ink-faint:158 10% 42%;--stamp:164 70% 23%;--cat-green:151 42% 93%;--cat-green-edge:153 25% 76%;--cat-blue:198 58% 94%;--cat-blue-edge:198 34% 78%;--cat-yellow:43 73% 90%;--cat-yellow-edge:40 53% 65%;--cat-red:4 66% 94%;--background:var(--wall);--foreground:var(--ink);--card:var(--slip);--card-foreground:var(--ink);--popover:var(--slip-hi);--popover-foreground:var(--ink);--primary:var(--felt);--primary-foreground:var(--chalk);--secondary:var(--cat-yellow);--secondary-foreground:var(--ink);--muted:var(--slip-2);--muted-foreground:var(--ink-soft);--accent:var(--cat-green);--accent-foreground:var(--ink);--border:var(--slip-edge);--input:var(--slip-edge);--ring:40 67% 37%;--portal-elevation:inset 0 2px 2px #fff,inset 0 -3px 4px #80704b12,0 5px 8px #9d906518,0 14px 28px #203f2410;--portal-material:linear-gradient(155deg,#fffef9,#faf6eb 70%,#f1ecdd);--portal-green:linear-gradient(155deg,#247352,#0e4f35 72%,#0b422f);color:hsl(var(--ink));background:hsl(var(--wall));font-family:var(--font-pjs),sans-serif;color-scheme:light}.dashboard-world ::-moz-selection{color:#fffdf4;background:#075b48}.dashboard-world ::selection{color:#fffdf4;background:#075b48}.dashboard-world :where(h1,h2,h3,h4){font-family:var(--font-pjs),sans-serif;text-wrap:balance}.dashboard-world :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid hsl(var(--ring));outline-offset:4px}.dashboard-world :where(input,textarea){caret-color:hsl(var(--felt))}.dashboard-world :where(table,.num-monumental){font-variant-numeric:tabular-nums}.dashboard-world .content-surface{background:radial-gradient(ellipse at 100% 0,#e7f1e5 0,transparent 42%),hsl(var(--wall))}.dashboard-world .side-shell{background:var(--portal-material);border-color:hsl(var(--slip-edge));box-shadow:inset -2px 0 3px #fff9,5px 0 24px #24473109}html[data-desktop-webview=true] .teacher-portal-shell[data-mid-report=true]>.teacher-portal-navigation{display:none}html[data-desktop-webview=true] .teacher-portal-shell[data-mid-report=true]>.teacher-portal-content{padding-left:0}html[data-desktop-webview=true] .teacher-portal-shell[data-mid-report=true]>.teacher-portal-content>main{padding-bottom:1.25rem}.dashboard-world aside.side-shell{position:fixed}.dashboard-world .side-shell.drawer-panel-in{position:absolute}.dashboard-world .side-mark{background:linear-gradient(145deg,#faf4df,#e9dbb7);border-color:#ddca96;box-shadow:inset 0 2px 2px #fff,inset 0 -2px 3px #9d813226,0 4px 8px #5b633d14;border-radius:14px}.dashboard-world .side-label{color:hsl(var(--ink-soft));letter-spacing:.1em}.dashboard-world .side-link{min-height:48px;border-radius:12px}.dashboard-world .side-link:hover{background:#eee8d8;color:#103f30}.dashboard-world .side-link.active{background:var(--portal-green);border-color:#376e51;color:#fff9e9;box-shadow:inset 0 2px 3px #ffffff38,inset 0 -3px 4px #03281b66,0 5px 10px #203f3620}.dashboard-world .side-icon{background:linear-gradient(145deg,#fffef8,#ece6d5);border-color:#ded6bd;box-shadow:inset 0 1px 0 #fff,0 2px 4px #4e573712;border-radius:10px}.dashboard-world .side-link.active .side-icon{background:#ffffff20;box-shadow:inset 0 1px 0 #ffffff28}.dashboard-world .side-link.active .side-desc{color:#f0e8cd}.dashboard-world .bottom-nav-in{background:#fffaf1f5;border-color:#ded6bd}.dashboard-world .bottom-icon-active{background:var(--portal-green);color:#fff9e9;box-shadow:inset 0 1px 0 #ffffff55,0 3px 6px #103e2c26}.dashboard-world .portal-welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,30%);position:relative;isolation:isolate;gap:20px;padding:28px 32px;border:1px solid #e7dcc2;border-radius:20px;background:linear-gradient(110deg,#fffdf5,#f8f2e2 62%,#e4efe2);color:hsl(var(--ink));box-shadow:var(--portal-elevation)}.portal-welcome-copy{position:relative;z-index:1;min-width:0}.portal-welcome-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-bottom:22px}.portal-role{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:hsl(var(--felt))}.portal-basmalah{margin:0;font-family:serif;font-size:21px;color:hsl(var(--felt))}.portal-greeting{margin-bottom:5px;font-size:15px;font-weight:500;color:hsl(var(--ink-soft));text-transform:none}.dashboard-world .portal-name{font-size:clamp(26px,2.5vw,38px);line-height:1.2;font-weight:750;letter-spacing:-.025em;overflow-wrap:anywhere;text-transform:capitalize}.portal-date{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;color:hsl(var(--ink-soft));font-size:12px}.portal-date span:first-child{display:inline-flex;align-items:center;gap:7px}.portal-welcome-actions{margin-top:20px}.portal-welcome-art{position:relative;min-height:210px}.portal-character{-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;filter:drop-shadow(0 12px 10px #344d3f1a)}.dashboard-world :is(.portal-panel,.portal-card,.panel,.slip-card,.chart-panel){border-radius:16px;border-color:hsl(var(--slip-edge));background:var(--portal-material);box-shadow:var(--portal-elevation)}.dashboard-world .portal-panel{overflow:hidden}.dashboard-world .portal-panel-body{border:0;border-radius:inherit}.dashboard-world .portal-card:hover{box-shadow:var(--portal-elevation)}.dashboard-world .chart-panel :where(.text-\[hsl\(var\(--chalk\)\)\]){color:hsl(var(--ink))}.dashboard-world .chart-panel :where(.text-\[hsl\(var\(--cat-yellow\)\)\]){color:hsl(var(--stamp))}.dashboard-world .slip-card:before{display:none}.dashboard-world .content-surface :where(a.rounded-\[10px\].bg-white,div.rounded-xl.bg-card){background:var(--portal-material);border-color:hsl(var(--slip-edge));border-radius:14px;box-shadow:inset 0 1px 0 #fff,0 4px 10px #203f2410}.dashboard-world .portal-button{border-radius:12px}.dashboard-world :is(.portal-button.bg-primary,.portal-action.bg-\[hsl\(var\(--felt\)\)\]){background:var(--portal-green);color:hsl(var(--chalk));box-shadow:inset 0 1px 1px #ffffff55,inset 0 -2px 3px #03281b55,0 4px 8px #103e2c26}.dashboard-world .portal-action{min-height:44px}.dashboard-world .hero-cta{background:var(--portal-material);border-radius:12px}.dashboard-world :where(input:not([type=checkbox]):not([type=radio]),textarea,select){border-radius:10px;background-color:hsl(var(--slip-hi));box-shadow:inset 0 2px 4px #243b2b08}.dashboard-world :where(thead){background:hsl(var(--slip-2));color:hsl(var(--ink))}.dashboard-world :where(tbody tr:hover){background-color:hsl(var(--cat-green)/.55)}.dashboard-world :where(th){font-weight:650}.dashboard-world :where(.overflow-x-auto,.side-nav){scrollbar-width:thin;scrollbar-color:#b7b995 transparent}.dashboard-world .ornament-divider{margin-block:22px}.dashboard-world .ornament-divider svg{color:#a77720}.dashboard-world .slip-yellow{border-radius:16px;box-shadow:var(--portal-elevation)}.student-dashboard{border-inline:1px solid hsl(var(--slip-edge))}.dark .dashboard-world,.dark body:has(.dashboard-world){--wall:160 23% 10%;--slip:158 21% 15%;--slip-hi:158 21% 18%;--slip-2:158 20% 20%;--slip-edge:155 16% 29%;--ink:46 42% 93%;--ink-soft:145 18% 74%;--ink-faint:145 14% 66%;--cat-green:157 26% 20%;--cat-blue:198 30% 21%;--cat-yellow:43 30% 22%;--cat-red:4 30% 22%;--felt:164 86% 19%;--stamp:154 42% 64%;--primary:164 63% 30%;--portal-material:linear-gradient(155deg,#253d32,#1d3028 70%,#182a23);--portal-elevation:inset 0 1px 0 #ffffff0c,inset 0 -2px 3px #0002,0 8px 20px #0003;color-scheme:dark}.dark .dashboard-world .content-surface{background:hsl(var(--wall))}.dark .dashboard-world .portal-welcome{background:linear-gradient(110deg,#243b30,#1c3027 65%,#2b4434);border-color:hsl(var(--slip-edge))}.dark .dashboard-world :is(.side-link,.side-label){color:hsl(var(--ink-soft))}.dark .dashboard-world .side-link:hover{background:#ffffff12;color:hsl(var(--ink))}.dark .dashboard-world .side-link.active{color:#fff9e9}.dark .dashboard-world .side-icon{background:#ffffff0b;border-color:hsl(var(--slip-edge));color:hsl(var(--stamp))}.dark .dashboard-world :is(.portal-role,.portal-basmalah){color:hsl(var(--stamp))}.dark .dashboard-world .bottom-nav-in{background:#1d3028f5}.dark .dashboard-world :where(.text-\[\#1c3028\]){color:hsl(var(--ink))}.dark .dashboard-world :where(.text-\[\#5e6d65\],.side-desc){color:hsl(var(--ink-soft))}.dark .dashboard-world :where(.text-\[\#16563f\]){color:hsl(var(--stamp))}.dark .dashboard-world :where(.bg-white){background-color:hsl(var(--slip))}@media (max-width:767px){.dashboard-world .portal-welcome{grid-template-columns:minmax(0,1fr) 130px;padding:22px;gap:12px}.portal-welcome-meta{margin-bottom:16px;gap:10px}.portal-basmalah{font-size:19px}.portal-welcome-art{min-height:180px}.portal-date{font-size:11px;gap:6px}}@media (max-width:479px){.dashboard-world .portal-welcome{grid-template-columns:minmax(0,1fr) 100px;padding:20px;gap:8px 12px}.portal-welcome-copy{display:contents}.portal-welcome-meta{grid-column:1/-1;justify-content:space-between;margin-bottom:4px}.portal-greeting{grid-column:1;align-self:end}.dashboard-world .portal-name{grid-column:1;align-self:start;font-size:25px}.portal-welcome-art{display:block;grid-column:2;grid-row:2/span 2;min-height:128px;height:128px;align-self:center}.portal-role{font-size:12px}.portal-basmalah{font-size:18px}.portal-date{grid-column:1/-1;flex-direction:column;font-size:12px;margin-top:4px}.portal-welcome-actions{grid-column:1/-1;margin-top:12px}.portal-welcome-actions .portal-action{justify-content:space-between;width:100%}}@media (max-width:1023px){.dashboard-world .portal-mobile-header{position:sticky;top:0;z-index:25;display:flex;align-items:center;min-height:64px;padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));background:hsl(var(--slip)/.97);border-bottom:1px solid hsl(var(--slip-edge))}.portal-mobile-header a{min-height:44px}.dashboard-world .content-surface{min-height:calc(100dvh - 64px);padding-bottom:calc(96px + env(safe-area-inset-bottom))}.dashboard-world .portal-bottom-nav a,.dashboard-world .portal-bottom-nav button{min-height:64px}.dashboard-world .portal-bottom-nav svg{width:20px;height:20px}.dashboard-world .portal-mobile-drawer{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.portal-mobile-drawer .side-nav{min-height:0;overscroll-behavior:contain}.portal-mobile-drawer .side-link{font-size:14px;min-height:52px}.portal-mobile-drawer .side-desc{font-size:12px;line-height:1.4}.portal-mobile-drawer .side-link>span:nth-child(2)>span{white-space:normal}.portal-mobile-drawer>div>div:last-child{padding-bottom:12px}.portal-mobile-drawer .portal-button{min-height:44px}.dashboard-world .portal-bottom-nav a[aria-current=page]{color:hsl(var(--stamp))}}@media (max-width:639px){.dashboard-world .content-surface{padding-inline:max(12px,env(safe-area-inset-left));padding-top:16px}.dashboard-world :where(.grid>*,.content-surface>*){min-width:0}.dashboard-world .portal-panel-body>:where(.p-5,.p-6){padding:18px}.dashboard-world :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select){font-size:16px;min-height:44px;max-width:100%}body:has(.dashboard-world) :where([role=combobox]){font-size:16px;min-height:44px}.dashboard-world .portal-button{min-height:44px;font-size:14px}.dashboard-world :where(.overflow-x-auto,.overflow-auto){max-width:100%;overscroll-behavior-x:contain}.dashboard-world table{font-size:13px;line-height:1.5}.dashboard-world table th{white-space:nowrap}.dashboard-world :where(.portal-table-scroll){border-radius:12px}.dashboard-world :where(.portal-table-scroll):focus-visible{outline-offset:-3px}.dashboard-world :where(.portal-table-scroll td,.portal-table-scroll th){padding-block:12px}.dashboard-world :where(.hero-cta,.portal-action){min-height:44px;font-size:14px}.student-dashboard{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}@media (max-width:359px){.dashboard-world .portal-welcome{padding:16px;grid-template-columns:minmax(0,1fr) 84px;gap:8px}.dashboard-world .portal-name{font-size:23px}.portal-welcome-meta{align-items:flex-start}}@media (prefers-reduced-motion:reduce){.dashboard-world *,.dashboard-world :after,.dashboard-world :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.dashboard-world{--portal-elevation:none;background:white}.dashboard-world .portal-welcome-art{display:none}}