@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/fonts/nunito-latin.woff2) format('woff2')}
.garden-section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;margin-bottom:22px}.garden-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:21px}.garden-heading h2{font-size:23px}.garden-heading p:not(.eyebrow){color:var(--muted);font-size:12px;margin-top:6px}.garden-count{border-radius:999px;background:#e7f4ec;color:#216746;padding:7px 12px;font-size:11px;font-weight:900;white-space:nowrap}.garden-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.garden-tree{border:1px solid #dce9df;border-radius:18px;overflow:hidden;background:#f7fbf7;min-width:0}.garden-tree.rose{background:#fcf7f4}.garden-tree.violet{background:#f8f7fc}.garden-tree.blue{background:#f4f9fd}.garden-tree summary{cursor:pointer;list-style:none}.garden-tree summary::-webkit-details-marker{display:none}.garden-tree summary:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}.garden-scene{display:block;height:178px;position:relative;overflow:hidden;background:linear-gradient(#e7f3ed,#f7fbf7 76%)}.rose .garden-scene{background:linear-gradient(#fceeea,#fcf7f4 76%)}.violet .garden-scene{background:linear-gradient(#f0ecfa,#f8f7fc 76%)}.blue .garden-scene{background:linear-gradient(#e8f3fb,#f4f9fd 76%)}.garden-sun{position:absolute;right:20px;top:16px;width:36px;height:36px;border-radius:50%;background:#ffe6a8;box-shadow:0 0 28px #ffe6a8}.garden-ground{position:absolute;bottom:-18px;left:-12%;width:124%;height:62px;border-radius:50% 50% 0 0;background:#c7e2bf}.garden-trunk{position:absolute;bottom:31px;left:calc(50% - 10px);width:20px;height:79px;background:linear-gradient(90deg,#815939,#b17a4d,#71472c);border-radius:45% 45% 20% 20%;transform:rotate(-2deg);box-shadow:3px 3px 0 #6b492b22}.garden-crown{position:absolute;width:125px;height:105px;left:calc(50% - 62px);top:29px;border-radius:48% 52% 45% 55%;background:radial-gradient(circle at 32% 30%,#a9cba6,#77a879 70%);box-shadow:-30px 18px 0 -14px #7dac80,29px 17px 0 -12px #68976c,0 13px 0 #6e9e70}.garden-crown.grown{background:radial-gradient(circle at 32% 30%,#a6d67b,#57aa69 70%);box-shadow:-30px 18px 0 -14px #72b87b,29px 17px 0 -12px #459b64,0 13px 0 #53a96a}.garden-leaf{position:absolute;left:var(--x);top:var(--y);width:17px;height:11px;transform:rotate(-35deg) scale(var(--size));border-radius:95% 4% 95% 4%;background:#d8ee83;box-shadow:1px 2px 0 #2f835044}.garden-tree-caption{display:flex;flex-direction:column;gap:3px;padding:15px}.garden-tree-caption strong{font-size:14px}.garden-tree-caption>span{font-size:10px;color:var(--muted)}.garden-tree-caption .garden-open{margin-top:6px;color:var(--blue);font-weight:900}.garden-branches{padding:0 15px 16px}.garden-branches ul{padding:0;margin:0;list-style:none}.garden-branches li{display:flex;align-items:flex-start;gap:8px;border-top:1px solid #dce9df;padding:9px 0}.garden-branches strong,.garden-branches small{display:block}.garden-branches strong{font-size:11px}.garden-branches small,.garden-branches p{font-size:10px;color:var(--muted);line-height:1.5}.branch-leaf{color:#5aaa65;font-size:13px}.garden-note{margin:17px 0 0;color:var(--muted);font-size:11px;line-height:1.6}@media(max-width:1100px){.garden-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.garden-section{padding:18px}.garden-grid{grid-template-columns:1fr}.garden-heading{align-items:flex-start}.garden-count{font-size:9px}.garden-scene{height:160px}}
.garden-tree:not(:has(.garden-crown.grown)) .garden-crown{width:55px;height:48px;left:calc(50% - 27px);top:90px;box-shadow:none;background:radial-gradient(circle at 30% 20%,#c4d8b2,#8db78b)}.garden-tree:not(:has(.garden-crown.grown)) .garden-trunk{height:45px;width:10px;left:calc(50% - 5px)}
:root{--ink:#10283d;--muted:#53667a;--blue:#145ac2;--green:#16714b;--line:#dce5ee;--bg:#f3f6fa;--card:#fff;--radius:22px;font-family:Nunito,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.55}a{color:var(--blue);text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:1;background:#e5ebf2;color:#4c5d70;border-color:#c7d2dd}button:disabled svg{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #2179e9;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:42px;line-height:1.17;letter-spacing:-1.5px;font-weight:900}h2{font-size:22px;line-height:1.3;letter-spacing:-.55px;font-weight:900}h3{font-size:15px;font-weight:850}p{color:var(--muted)}strong{font-weight:850}button svg{flex-shrink:0}.skip-link{position:absolute;top:-100px;left:20px;z-index:1000;background:#fff;padding:12px}.skip-link:focus{top:15px}.startup{min-height:85vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;text-align:center}.startup h1{font-size:26px}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:28px;line-height:1;font-weight:950;letter-spacing:-.6px}.brand img{border-radius:13px}.brand-sub{display:block;margin-top:5px;font-size:11px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);font-weight:850}.button{min-height:48px;padding:12px 19px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:13px;font-weight:850;font-size:14px;text-decoration:none;line-height:1.3;transition:background .16s}.primary{background:var(--blue);color:#fff;box-shadow:0 5px 12px #145ac217}.primary:hover:not(:disabled){background:#104a9f}.quiet{background:#fff;color:var(--ink);border-color:#d5dfe9}.quiet:hover:not(:disabled){background:#eaf0f7}.text-button{color:var(--blue);padding-left:0;padding-right:0;background:transparent;min-height:44px;box-shadow:none}.quiet-link{font-size:13px;font-weight:800;text-decoration:none;color:var(--muted)}.quiet-link:hover{text-decoration:underline}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:900;color:var(--green);margin-bottom:10px}.lead{font-size:16px;line-height:1.6;margin-top:14px}.notice{padding:14px 16px;border-radius:13px;background:#e8f3ef;color:#14563c;border:1px solid #c4ddd2;font-size:14px;margin:12px 0}.notice.error{color:#873520;background:#fff0e9;border-color:#f0cbbb}.field-hint{font-size:12px;margin-top:-8px}.spinner{width:28px;height:28px;border:3px solid #d4e4f7;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.loading-state{min-height:330px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;text-align:center}.loading-state p{font-size:14px}.loading-state h2{font-size:21px}
/* The account shell has no marketing scripts or remote assets. */
.account-page{max-width:1280px;min-height:100vh;margin:auto;padding:30px 56px 20px;display:flex;flex-direction:column}.account-header{display:flex;justify-content:space-between;align-items:center}.account-grid{margin:48px 0;display:grid;grid-template-columns:1fr 1fr;min-height:600px;gap:65px;flex:1;align-items:center}.account-form-panel{max-width:405px;justify-self:center;width:100%}.account-form-panel .lead{margin-bottom:27px}.account-form-panel h1{font-size:45px}.account-form-panel form{display:flex;flex-direction:column;gap:12px}.account-form-panel label{font-size:13px;font-weight:850;margin-bottom:-5px}.account-form-panel input{width:100%;min-height:52px;padding:12px 14px;border:1.5px solid #c4d0dd;border-radius:12px;color:var(--ink);background:#fff;font-size:15px}.account-form-panel input::placeholder{color:#778898}.account-form-panel form>.button{margin-top:8px;min-height:53px}.password-wrap{position:relative}.password-wrap input{padding-right:66px}.password-wrap button{position:absolute;right:6px;top:6px;bottom:6px;border:0;background:#eef3f8;border-radius:8px;padding:0 10px;color:var(--muted);font-weight:800;font-size:12px}.account-explainer{display:flex;gap:11px;border-top:1px solid var(--line);padding-top:23px;margin-top:14px}.account-explainer svg{color:var(--green);flex-shrink:0;margin-top:2px}.account-explainer p{font-size:12.5px;line-height:1.6}.registration-note{font-size:12px;line-height:1.65;margin-top:18px}.welcome-scene{border-radius:36px;min-height:620px;height:100%;max-height:780px;background:#e2eee7;position:relative;overflow:hidden;padding:40px 30px;display:flex;align-items:center;flex-direction:column;text-align:center;justify-content:center;isolation:isolate}.scene-kicker{font-size:9px;letter-spacing:1.3px;font-weight:900;color:#456954;margin-bottom:55px}.scene-pip{position:relative;z-index:1;border-radius:35px;box-shadow:0 18px 30px #31684d22;transform:rotate(-6deg)}.scene-message{position:relative;z-index:1;margin-top:28px}.scene-message h2{font-size:31px;letter-spacing:-.8px;color:#174c36;line-height:1.27}.scene-message p{font-size:14px;color:#426251;margin-top:18px}.small-star{position:absolute;right:4px;top:-33px;color:#cf8a19;font-size:31px}.scene-caption{font-size:10px;color:#426251;position:relative;z-index:1;margin-top:45px}.scene-orbit{position:absolute;border-radius:50%;border:1px solid #c8ddcf;width:500px;height:500px;z-index:0}.orbit-one{top:-235px;left:-145px;background:#d6e9dbaa}.orbit-two{right:-285px;bottom:-240px;width:650px;height:650px;background:#d4e6d977}.account-footer{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);padding:7px 0}.account-footer div{display:flex;gap:20px}.account-footer a{color:var(--muted);text-decoration:none}
/* Parent overview */
.portal-layout{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:31px 23px;display:flex;flex-direction:column;gap:23px}.sidebar .brand{padding:0 5px}.sidebar-label{font-size:9px;letter-spacing:1.4px;font-weight:900;margin:32px 10px -9px}.side-active{display:flex;align-items:center;gap:12px;color:var(--blue);text-decoration:none;background:#eaf1fc;border-radius:12px;padding:14px;font-size:14px;font-weight:900}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:20px;padding-top:40px}.sidebar-tip{padding:19px 16px;border-radius:17px;background:#f4f7fa;display:flex;flex-direction:column;gap:13px}.sidebar-tip>span{color:#c18b1c;font-size:23px;line-height:1}.sidebar-tip strong{font-size:12px;line-height:1.55}.sidebar-tip p{font-size:11px;line-height:1.6}.sidebar-bottom>.quiet-link{padding:0 8px;font-size:11px}.portal-content{min-width:0}.portal-top{height:90px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:18px}.breadcrumb{font-size:11px;font-weight:800;color:var(--muted)}.breadcrumb span{padding:0 9px;color:#9aaaba}.parent-identity{display:flex;align-items:center;gap:10px}.parent-avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#e8f0fb;color:var(--blue);font-size:13px;font-weight:900}.parent-email{font-size:11px;color:var(--muted);max-width:240px;overflow:hidden;text-overflow:ellipsis}.portal-top .button{min-height:38px;padding:9px 11px;font-size:11px;margin-left:5px}.portal-top svg{width:16px;height:16px}.dashboard{max-width:1270px;margin:auto;padding:36px 38px 20px}.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.dashboard-heading h1{font-size:33px;letter-spacing:-1px}.dashboard-heading .lead{font-size:13px;margin-top:8px}.dashboard-heading .eyebrow{font-size:9px;margin-bottom:8px}.selectors{display:flex;align-items:flex-end;gap:9px}.selectors label{font-size:10px;font-weight:850;display:flex;flex-direction:column;gap:6px}.selectors select{height:43px;background:#fff;color:var(--ink);border:1px solid #d0dce7;border-radius:11px;min-width:158px;padding:0 31px 0 12px;font-size:12px;font-weight:800}.selectors .button{min-height:43px;font-size:11px;padding:10px 12px}.sync-strip{display:flex;align-items:center;gap:12px;background:#e8f2ed;border:1px solid #d4e5db;padding:14px 18px;border-radius:13px;color:#216146;margin-bottom:22px}.sync-strip>svg{flex-shrink:0}.sync-strip>div{display:flex;gap:11px;align-items:center;flex-wrap:wrap}.sync-strip strong{font-size:11px}.sync-strip span{font-size:10px;color:#426d58}.sync-strip .sync-tag{margin-left:auto;background:#d9eade;border-radius:99px;padding:4px 9px;font-size:9px;white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}.stat-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:21px 22px 19px;overflow:hidden}.stat-card p{font-size:11px;font-weight:800;padding-right:28px}.stat-card>strong{display:block;font-size:40px;letter-spacing:-1px;margin:6px 0 2px;line-height:1.2;font-weight:950}.stat-card small{font-size:23px;margin-left:3px}.stat-card>span:not(.stat-glyph){font-size:10px;color:var(--muted)}.stat-glyph{position:absolute;right:19px;top:19px;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-weight:900;font-size:18px}.blue{background:#e9f1ff;color:#265dba}.green{background:#e1f2e9;color:#176440}.gold{background:#fff2d5;color:#8c641c}.purple{background:#efebfa;color:#69509c}.teal{background:#e2f2f2;color:#236d70}.coral{background:#fceae4;color:#9f5946}.main-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(230px,1fr);gap:20px;margin-bottom:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:23px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-heading .eyebrow{font-size:8px;letter-spacing:1.1px;margin-bottom:6px}.panel-heading h2{font-size:18px}.period-pill{font-size:9px;color:var(--muted);border:1px solid var(--line);padding:5px 9px;border-radius:8px;white-space:nowrap}.week-chart{display:flex;gap:15px;height:175px;margin-top:23px}.chart-day{flex:1;display:flex;align-items:center;flex-direction:column;gap:9px;min-width:0;font-size:10px;color:var(--muted);font-weight:800}.chart-count{color:#315f8e;font-size:10px}.bar-track{position:relative;flex:1;width:100%;max-width:39px;border-radius:8px;background:#f2f6fb;display:flex;align-items:flex-end}.bar-fill{width:100%;background:#72a6dc;border-radius:7px;min-height:2px}.chart-day:last-child .bar-fill{background:#2468b4}.chart-note{font-size:10px;line-height:1.65;margin-top:22px;border-top:1px solid #edf1f5;padding-top:14px}.encouragement{position:relative;border:1px solid #e6ddc7;background:#f8f0db;border-radius:20px;padding:28px;overflow:hidden}.encouragement-star{position:absolute;right:22px;top:19px;font-size:31px;color:#d6af4f}.encouragement .eyebrow{font-size:8px;color:#826527;margin-top:12px}.encouragement h2{font-size:25px;line-height:1.25;color:#5a472c;margin:16px 0}.encouragement p:not(.eyebrow){font-size:12px;line-height:1.65;color:#7b694d;max-width:220px}.encouragement img{position:absolute;right:22px;bottom:20px;border-radius:18px;transform:rotate(8deg)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px}.subject-list{margin-top:13px}.subject-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf1f5}.subject-row:last-child{border-bottom:0;padding-bottom:0}.subject-glyph{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;font-size:17px;font-weight:900}.subject-main{min-width:0}.subject-main h3{font-size:12px;line-height:1.4}.subject-main span,.subject-result span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.subject-result{margin-left:auto;text-align:right;white-space:nowrap}.subject-result strong{font-size:12px}.activity-list{list-style:none;margin:18px 0 0;padding:0;max-height:300px;overflow:auto}.activity-list li{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid #edf1f5}.activity-list li:last-child{border-bottom:0}.activity-dot{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;flex-shrink:0;font-size:12px;font-weight:900}.activity-dot.correct{background:#e4f2e8;color:#317650}.activity-dot.retry{background:#f7eedb;color:#916b2c}.activity-list strong{display:block;font-size:11px}.activity-list li>div>span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.empty-text{font-size:13px;line-height:1.7;margin-top:22px}.import-panel{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;margin-bottom:20px}.import-panel h2{font-size:18px}.import-panel p:not(.eyebrow){font-size:11px;line-height:1.7;margin-top:12px}.import-list{display:flex;flex-direction:column;gap:10px}.import-list article{border:1px solid var(--line);background:#f7f9fc;border-radius:12px;padding:13px 15px}.import-list strong,.import-list span,.import-list small{display:block}.import-list strong{font-size:11px}.import-list span{font-size:11px;margin-top:5px}.import-list small{color:var(--muted);font-size:9px;margin-top:7px}.data-note{display:flex;align-items:flex-start;gap:11px;padding:0 4px}.data-note svg{flex-shrink:0;color:#647c8c}.data-note p{font-size:10px;line-height:1.7}.dashboard-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:27px;padding-top:18px;font-size:9px;color:var(--muted)}.dashboard-footer a{color:var(--muted);text-decoration:none}.empty-card{min-height:320px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:45px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:20px}.empty-card p{max-width:490px;line-height:1.7;font-size:14px}.empty-card img{border-radius:21px}.sample-banner{background:#fff0c7;border-bottom:1px solid #e0c98d;padding:10px 20px;text-align:center;font-size:12px;color:#664c13}.sample-banner strong{font-weight:900}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1550px){.portal-layout{grid-template-columns:250px minmax(0,1fr)}.dashboard{padding-top:43px}.stat-card{padding:25px}.weekly-panel{padding:29px}.week-chart{height:190px}.panel-heading h2{font-size:21px}}
@media(max-width:1100px){.portal-layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:26px 16px}.dashboard{padding:28px 24px 18px}.portal-top{padding:0 24px}.parent-email{display:none}.dashboard-heading{align-items:flex-start}.selectors{flex-wrap:wrap;justify-content:flex-end}.main-grid{grid-template-columns:1fr}.encouragement{display:none}.stat-card{padding:19px 15px}.stat-glyph{right:12px;top:15px}.stat-card>strong{font-size:34px}.account-page{padding:25px 35px}.account-grid{gap:40px}.account-form-panel h1{font-size:39px}.welcome-scene{min-height:590px}.scene-message h2{font-size:27px}}
@media(max-width:760px){.portal-layout{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:16px 20px;flex-direction:row;justify-content:space-between;align-items:center}.sidebar .brand{padding:0;font-size:25px}.sidebar .brand img{width:37px;height:37px}.sidebar-label,.sidebar-bottom{display:none}.side-active{font-size:11px;padding:10px}.portal-top{height:auto;min-height:64px;padding:10px 20px}.breadcrumb{font-size:10px}.parent-avatar{display:none}.dashboard{padding:25px 18px 18px}.dashboard-heading{flex-direction:column;gap:19px}.dashboard-heading h1{font-size:30px}.selectors{justify-content:flex-start;width:100%}.selectors label{flex:1}.selectors select{width:100%;min-width:120px}.stats-grid{gap:9px}.stat-card{padding:15px 12px}.stat-glyph{display:none}.stat-card p{padding:0;line-height:1.5;font-size:10px;min-height:30px}.stat-card>strong{font-size:29px;margin:9px 0}.stat-card>span:not(.stat-glyph){font-size:9px;line-height:1.5;display:block}.stat-card small{font-size:17px}.sync-strip{padding:12px;gap:9px}.sync-strip>div{gap:3px;flex-direction:column;align-items:flex-start}.sync-strip .sync-tag{display:none}.detail-grid{grid-template-columns:1fr}.panel{padding:20px}.week-chart{gap:12px}.import-panel{display:block}.import-list{margin-top:20px}.account-page{padding:23px 24px 20px}.account-grid{display:block;margin:45px 0;min-height:0}.account-form-panel{margin:auto;max-width:420px}.welcome-scene{display:none}.account-form-panel h1{font-size:38px}.account-header>.quiet-link{font-size:11px;max-width:120px;text-align:right}.account-footer{flex-wrap:wrap;gap:15px;font-size:10px}.account-footer>span{max-width:180px}.activity-list{max-height:none}.empty-card{padding:30px 22px}.empty-card h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Parent dashboard: use the whole area beside the navigation and keep data legible. */
.portal-layout { grid-template-columns: 250px minmax(0, 1fr); }
.portal-content { width: 100%; min-width: 0; }
.dashboard { width: 100%; max-width: none; margin: 0; padding: 42px clamp(28px, 3vw, 72px) 36px; }
.dashboard-heading { gap: 28px; margin-bottom: 30px; }
.dashboard { padding-top: 22px; }
.dashboard-heading { margin-bottom: 18px; }
.dashboard-heading h1 { font-size: clamp(34px, 2.4vw, 48px); }
.dashboard-heading .lead { font-size: 16px; line-height: 1.55; }
.dashboard .eyebrow { font-size: 11px; letter-spacing: 1.4px; }
.sidebar-label { font-size: 11px; }
.sidebar-tip strong { font-size: 14px; }
.sidebar-tip p, .sidebar-bottom>.quiet-link { font-size: 13px; }
.breadcrumb, .parent-email { font-size: 13px; }
.selectors label, .selectors .button { font-size: 13px; }
.selectors select { min-width: 185px; font-size: 14px; }
.sidebar-controls { display: flex; flex-direction: column; align-items: stretch; gap: 10px; margin-top: -8px; }
.sidebar-controls label { width: 100%; }
.sidebar-controls select { width: 100%; min-width: 0; }
.sidebar-controls .button { width: 100%; justify-content: center; }
.sidebar-controls .upload-status { align-self: flex-start; }
.refresh-icon-button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid #d6e2ec; border-radius: 11px; background: #fff; color: #294d66; cursor: pointer; }
.refresh-icon-button:hover { background: #edf5fb; }
.refresh-icon-button:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.refresh-icon-button:disabled { opacity: .5; cursor: wait; }
.refresh-icon-button svg { width: 19px; height: 19px; }
.upload-status { align-self: flex-end; display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 6px 9px; border-radius: 999px; border: 1px solid #d6e2ec; background: #f2f6fa; color: #597087; font-size: 12px; font-weight: 800; white-space: nowrap; cursor: help; }
.upload-status svg { width: 17px; height: 17px; }
.upload-status.received { border-color: #c9e5d4; background: #eaf7ee; color: #226846; }
.stats-grid, .main-grid, .detail-grid { gap: 24px; margin-bottom: 28px; }
.stat-card, .panel { padding: 28px; }
.stat-card p, .stat-card>span:not(.stat-glyph) { font-size: 14px; line-height: 1.5; }
.stat-card>strong { font-size: clamp(38px, 3vw, 58px); }
.panel-heading h2, .import-panel h2 { font-size: 23px; }
.period-pill, .chart-day, .chart-count, .chart-note { font-size: 13px; }
.week-chart { height: 210px; gap: 22px; }
.encouragement h2 { font-size: 29px; }
.encouragement p:not(.eyebrow) { font-size: 15px; max-width: 300px; }
.encouragement { background: var(--prompt-bg, #FFF6E5); border-color: var(--prompt-border, #E8DCC0); min-height: 330px; }
.encouragement .eyebrow { color: var(--prompt-ink, #5A472C); }
.encouragement h2 { color: var(--prompt-ink, #5A472C); line-height: 1.22; margin-right: 12px; }
.encouragement p:not(.eyebrow) { color: var(--prompt-muted, #78674E); }
.encouragement-star { color: var(--prompt-accent, #C79F44); }
.subject-main h3, .subject-result strong, .activity-list strong { font-size: 15px; }
.subject-main span, .subject-result span, .activity-list li>div>span { font-size: 13px; }
.subject-row, .activity-list li { padding: 16px 0; }
.activity-list { max-height: 390px; }
.empty-text, .import-panel p:not(.eyebrow), .import-list strong, .import-list span, .data-note p { font-size: 14px; line-height: 1.65; }
.import-list small, .dashboard-footer { font-size: 12px; }
.garden-section { padding: 34px; margin-bottom: 28px; }
.garden-heading { gap: 28px; margin-bottom: 26px; }
.garden-heading h2 { font-size: 28px; }
.garden-heading p:not(.eyebrow) { font-size: 15px; line-height: 1.6; }
.garden-count { font-size: 13px; padding: 9px 16px; }
.garden-grid { gap: 22px; }
.garden-tree { border-radius: 22px; }
.garden-scene { height: clamp(205px, 15vw, 275px); }
.garden-crown.grown { width: clamp(140px, 11vw, 205px); height: clamp(115px, 9vw, 165px); left: 50%; top: 13%; transform: translateX(-50%); }
.garden-tree:not(:has(.garden-crown.grown)) .garden-crown { top: 55%; }
.garden-trunk { height: 38%; bottom: 17%; }
.garden-ground { height: 26%; }
.garden-tree-caption { gap: 6px; padding: 20px 22px 22px; }
.garden-tree-caption strong { font-size: 19px; line-height: 1.25; }
.garden-tree-caption>span, .garden-tree-caption .garden-open { font-size: 14px; line-height: 1.45; }
.garden-branches { padding: 0 22px 22px; }
.garden-branches li { padding: 13px 0; }
.garden-branches strong { font-size: 14px; }
.garden-branches small, .garden-branches p { font-size: 13px; }
.garden-note { font-size: 14px; line-height: 1.6; margin-top: 21px; }
@media (max-width: 1350px) {
  .garden-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .garden-scene { height: 220px; }
}
@media (max-width: 900px) {
  .portal-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .dashboard { padding: 28px 24px; }
  .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .stat-card { padding: 18px; }
  .main-grid, .detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .portal-layout { display: block; }
  .sidebar { flex-wrap: wrap; }
  .sidebar-controls { flex: 0 0 100%; flex-direction: row; align-items: end; margin-top: 0; flex-wrap: wrap; }
  .sidebar-controls label { flex: 1 1 170px; }
  .sidebar-controls .button { width: auto; }
  .sidebar-controls .upload-status { align-self: center; }
  .dashboard { padding: 20px 18px 30px; }
  .garden-section { padding: 22px; }
  .garden-grid { grid-template-columns: 1fr; }
  .garden-heading { align-items: flex-start; }
  .garden-scene { height: 205px; }
  .garden-tree-caption { padding: 17px 19px 20px; }
  .stats-grid { gap: 9px; }
  .stat-card p, .stat-card>span:not(.stat-glyph) { font-size: 11px; }
  .stat-card>strong { font-size: 30px; }
}
/* Keep longer date ranges readable without compressing their bars. */
.week-chart { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(42px, 1fr); overflow-x: auto; }
#practice-range { color: inherit; background: white; cursor: pointer; min-height: 44px; }
.dashboard-footer > span { font-weight: 700; font-size: 16px; }
.activity-grid-wrap { display: flex; gap: 10px; margin-top: 28px; min-width: 0; }
.activity-empty { margin: 28px 0 20px; padding: 28px; border: 1px dashed #cbd9e9; border-radius: 16px; color: var(--muted); text-align: center; }
.activity-grid-key { display: grid; grid-template-rows: 20px repeat(7, 22px); gap: 5px; flex: 0 0 32px; color: var(--muted); font-size: 11px; font-weight: 700; align-items: center; }
.activity-grid-scroll { min-width: 0; overflow-x: auto; padding: 0 2px 6px; }
.activity-months { display: flex; gap: 5px; height: 20px; margin-bottom: 5px; }
.activity-months span { width: 22px; flex: 0 0 22px; color: var(--muted); font-size: 11px; font-weight: 800; }
.activity-weeks { display: flex; gap: 5px; }
.activity-week { display: grid; grid-template-rows: repeat(7, 22px); gap: 5px; }
.activity-cell { display: block; width: 22px; height: 22px; border-radius: 5px; background: #edf2f6; border: 1px solid #e2eaf0; }
.activity-cell.outside { visibility: hidden; }
.activity-cell.level-1 { background: #c4ead2; border-color: #adddc0; }
.activity-cell.level-2 { background: #82d3a0; border-color: #70c991; }
.activity-cell.level-3 { background: #38ae70; border-color: #2d9f64; }
.activity-cell.level-4 { background: #14744e; border-color: #106743; }
.activity-cell[tabindex]:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.activity-grid-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; color: var(--muted); font-size: 12px; margin-top: 20px; }
.activity-legend { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.activity-legend .activity-cell { width: 15px; height: 15px; border-radius: 3px; }
@media (max-width: 760px) { .activity-grid-scroll { max-width: calc(100vw - 120px); } .activity-grid-wrap { margin-top: 22px; } }
@media (max-width: 1100px) { .encouragement { display: block; min-height: 250px; } }
@media (min-width: 900px) and (max-width: 1100px) { .main-grid { grid-template-columns: minmax(0, 1.8fr) minmax(255px, .9fr); } }
@media (max-width: 899px) { .activity-grid-wrap { justify-content: center; } }
.history-summary{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-bottom:22px;background:#eef8f2;border-color:#cde5d7}
.learning-change{margin-bottom:24px}
.learning-change-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.learning-change-list article{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:17px;background:#f8fbff}
.learning-change-list h3{font-size:17px;margin:5px 0}
.learning-change-list small,.learning-change-metric span{color:var(--muted);font-size:11px;line-height:1.4}
.learning-change-metric{text-align:right;min-width:145px}
.learning-change-metric strong,.learning-change-metric span{display:block}
.learning-change-metric strong{font-size:20px;white-space:nowrap}
.learning-change .topic-insights-note{margin-top:16px}
.history-summary .eyebrow{color:#1c7754;font-size:10px;letter-spacing:1.2px}
.history-summary h2{font-size:22px;margin-top:5px}
.history-summary p:not(.eyebrow){font-size:13px;line-height:1.5;color:#4d6572;max-width:580px;margin-top:8px}
.history-summary-stats{display:flex;gap:24px;flex-shrink:0}
.history-summary-stats div{display:flex;flex-direction:column;min-width:85px}
.history-summary-stats strong{font-size:29px;color:#176846;line-height:1}
.history-summary-stats span{font-size:11px;font-weight:750;color:#4d6572;margin-top:7px}
.history-summary .history-overlap{font-size:11px;max-width:180px}
@media(max-width:1050px){.history-summary{align-items:flex-start;flex-direction:column}.history-summary-stats{width:100%;justify-content:space-between}}
@media(max-width:520px){.history-summary-stats{gap:10px}.history-summary-stats strong{font-size:24px}.history-summary-stats span{font-size:10px}}
.topic-insights{display:flex;flex-direction:column;margin-top:16px}
.topic-insight{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #e5edf3}
.topic-insight:last-child{border-bottom:0}
.topic-category{display:block;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#287454}
.topic-insight h3{font-size:17px;margin:3px 0;color:#172c40}
.topic-insight p{font-size:12px;line-height:1.5;color:#53677a}
.topic-insight small{display:block;font-size:11px;color:#65798a;margin-top:6px}
.topic-metric{min-width:102px;text-align:right;display:flex;flex-direction:column;gap:3px}
.topic-metric strong{font-size:22px;color:#1d654c}
.topic-metric span{font-size:10px;line-height:1.35;color:#5e7180}
.topic-insights-note{font-size:10px;line-height:1.5;color:#65798a;margin-top:13px}
@media(max-width:500px){.topic-insight{align-items:flex-start}.topic-metric{min-width:78px}.topic-metric strong{font-size:18px}}

.knowledge-web { border: 1px solid #d9e3ec; background: #fff; border-radius: 24px; overflow: hidden; margin-bottom: 28px; box-shadow: 0 8px 28px #153a5710; }
.kw-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 20px 26px 10px; }
.kw-heading h2 { font-size: 27px; letter-spacing: -.65px; margin: 3px 0 4px; }
.kw-heading p:not(.eyebrow) { font-size: 14px; color: #586d7e; }
.kw-heading-badge { flex-shrink: 0; padding: 7px 11px; background: #edf3f8; border: 1px solid #dce6ee; border-radius: 10px; font-size: 10px; font-weight: 900; letter-spacing: 1px; color: #4a6479; }
.kw-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 0 26px 15px; flex-wrap: wrap; }
.kw-subject-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.kw-subject-tabs button { background: #fff; color: #355269; border: 1px solid #d6e2eb; border-radius: 10px; padding: 8px 12px; font-size: 13px; font-weight: 800; display: flex; align-items: center; gap: 7px; min-height: 40px; }
.kw-subject-tabs button[aria-pressed=true] { background: #173e56; color: #fff; border-color: #173e56; }
.kw-dot { height: 8px; width: 8px; flex-shrink: 0; border-radius: 50%; background: var(--subject); }
.kw-topic-picker { display: flex; flex-direction: column; gap: 5px; font-size: 11px; font-weight: 800; color: #496478; }
.kw-topic-picker select { background: #fff; color: #173c54; border: 1px solid #ccdbe6; border-radius: 9px; min-height: 40px; padding: 7px 34px 7px 12px; font: inherit; font-size: 14px; max-width: 260px; }
.kw-map-shell { position: relative; border-top: 1px solid #dce7ef; border-bottom: 1px solid #dce7ef; background: #f8fbfd; }
.kw-viewport { height: clamp(540px, 70vh, 850px); overflow: auto; cursor: grab; overscroll-behavior: contain; background-image: radial-gradient(#bdccd84d 1px, transparent 1px), radial-gradient(ellipse at 50% 50%, #fff 5%, #f3f8fb 80%); background-size: 22px 22px, 100% 100%; }
.kw-viewport.kw-dragging { cursor: grabbing; user-select: none; }
.kw-space { position: relative; margin: auto; }
.kw-world { position: absolute; top: 0; left: 0; transform-origin: 0 0; }
.kw-connections { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.kw-connections path { fill: none; stroke-linecap: round; }
.kw-core-link { stroke-width: 3.5; opacity: .38; }
.kw-topic-link { stroke-width: 1.7; opacity: .27; }
.kw-topic-link.waiting { stroke-dasharray: 4 7; opacity: .20; }
.kw-topic-link.recorded { stroke-width: 2.8; opacity: .65; }
.kw-topic-link.imported { stroke-width: 2.5; stroke-dasharray: 7 5; opacity: .55; }
.kw-orbit { pointer-events: none; position: absolute; left: 800px; top: 460px; border: 1px solid #7390a81a; border-radius: 50%; transform: translate(-50%, -50%); }
.kw-orbit-one { width: 270px; height: 270px; }
.kw-orbit-two { width: 370px; height: 370px; border-style: dashed; }
.kw-child-node,.kw-subject-node,.kw-topic-node { position: absolute; transform: translate(-50%,-50%); font-family: Nunito,system-ui,sans-serif; cursor: pointer; color: #173c54; text-align: center; }
.kw-child-node { width: 164px; height: 164px; border-radius: 50%; background: linear-gradient(140deg,#fff,#eef6fa); border: 3px solid #c1d6e3; box-shadow: 0 0 0 12px #e8f1f780, 0 14px 36px #2448661a; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 14px; }
.kw-child-node img { border-radius: 15px; }
.kw-child-node strong { font-size: 23px; line-height: 1.1; max-width: 128px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kw-child-node span { font-size: 10px; font-weight: 700; color: #678194; }
.kw-subject-node { width: 192px; min-height: 138px; padding: 18px 12px; border-radius: 26px; background: #fff; border: 2px solid var(--subject); box-shadow: 0 10px 25px #254d6514; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.kw-subject-symbol { display: grid; place-items: center; color: var(--subject); background: color-mix(in srgb, var(--subject) 11%, white); border-radius: 13px; width: 42px; height: 38px; font-size: 24px; font-weight: 900; line-height: 1; }
.kw-subject-node strong { font-size: 19px; font-weight: 900; line-height: 1.15; }
.kw-subject-node small { font-size: 11px; color: #526c7f; }
.kw-topic-node { width: 174px; min-height: 61px; padding: 10px 10px 10px 19px; border-radius: 14px; border: 1px solid #d9e4ec; background: #fff; box-shadow: 0 3px 10px #30526809; }
.kw-topic-node strong { display: block; font-size: 16px; line-height: 1.2; font-weight: 850; }
.kw-topic-node small { display: block; margin-top: 4px; font-size: 11px; color: #687e8f; }
.kw-topic-status { position: absolute; left: 8px; top: calc(50% - 3px); width: 6px; height: 6px; border: 1px solid #aabcc9; border-radius: 50%; }
.kw-topic-node.recorded { border-color: var(--subject); background: color-mix(in srgb,var(--subject) 5%,white); }
.kw-topic-node.recorded .kw-topic-status { background: var(--subject); border-color: var(--subject); }
.kw-topic-node.imported .kw-topic-status { border: 2px solid var(--subject); width: 8px; height: 8px; }
.kw-topic-node:hover,.kw-subject-node:hover { box-shadow: 0 6px 20px #24496226; }
.kw-topic-node[aria-pressed=true] { outline: 3px solid var(--subject); outline-offset: 4px; }
.kw-muted { opacity: .25; }
.kw-map-controls { position: absolute; z-index: 2; left: 18px; top: 16px; display: flex; align-items: center; gap: 1px; padding: 4px; border: 1px solid #d2e0e9; border-radius: 12px; background: #fffffff5; box-shadow: 0 5px 14px #25415b0c; }
.kw-map-controls button { background: transparent; border: 0; border-radius: 8px; color: #294d66; font-size: 21px; min-width: 36px; height: 36px; font-weight: 800; }
.kw-map-controls button:last-child { font-size: 12px; padding: 0 11px; border-left: 1px solid #dce6ed; border-radius: 0; }
.kw-map-controls output { min-width: 48px; text-align: center; font-size: 12px; font-weight: 800; }
.kw-map-footer { padding: 12px 22px; display: flex; justify-content: space-between; gap: 18px; color: #667f91; font-size: 12px; background: #fff; flex-wrap: wrap; }
.kw-legend { display: flex; flex-wrap: wrap; gap: 18px; }
.kw-legend span { display: inline-flex; align-items: center; gap: 7px; }
.kw-legend i { width: 8px; height: 8px; border: 1px solid #8fa5b6; border-radius: 50%; }
.kw-legend i.kw-recorded { border-color: #477fa3; background: #477fa3; }
.kw-legend i.kw-imported { border: 2px solid #477fa3; }
.kw-selection-status { padding: 14px 32px; background: #edf5fa; color: #385f79; font-size: 13px; font-weight: 750; }
.kw-inspector { padding: 28px 32px 32px; display: grid; grid-template-columns: minmax(200px,1fr) minmax(0,2fr); gap: 24px 40px; }
.kw-inspector h3 { font-size: 25px; margin: 5px 0 9px; }
.kw-inspector p { font-size: 14px; color: #587083; line-height: 1.7; max-width: 700px; }
.kw-inspector-note { border-left: 3px solid #c9dfe9; padding-left: 22px; }
.kw-inspector-note strong { display: block; font-size: 15px; margin-bottom: 5px; }
.kw-detail-metrics { display: flex; gap: 40px; align-items: center; }
.kw-detail-metrics strong { font-size: 30px; display: block; }
.kw-detail-metrics span { font-size: 13px; color: #587083; }
.kw-skill-list { grid-column: 1/-1; display: grid; grid-template-columns: repeat(auto-fit,minmax(225px,1fr)); gap: 12px; }
.kw-skill-list article,.kw-earlier article { background: #f7fafc; border: 1px solid #e0e9ef; border-radius: 12px; padding: 16px; }
.kw-skill-list strong,.kw-earlier strong { display: block; font-size: 15px; margin-bottom: 6px; }
.kw-skill-list span,.kw-earlier span { display: block; color: #587083; font-size: 13px; }
.kw-skill-list small,.kw-earlier small { display: block; color: #6d8494; font-size: 12px; margin-top: 5px; }
.kw-earlier { grid-column: 1/-1; }
.kw-earlier h4 { font-size: 17px; margin: 0 0 6px; }
.kw-earlier article { margin-top: 12px; }
.kw-topic-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 10px; }
.kw-topic-list button { background: #f8fbfd; border: 1px solid #dbe6ed; border-radius: 11px; padding: 14px 16px; text-align: left; }
.kw-topic-list strong { display: block; font-size: 14px; color: #20465e; }
.kw-topic-list span { display: block; font-size: 12px; margin-top: 4px; color: var(--subject); }
@media(max-width:760px) { .kw-heading { padding: 18px 18px 10px; align-items: flex-start; }.kw-toolbar { padding: 0 18px 15px; }.kw-heading h2 { font-size: 25px; }.kw-heading-badge { display: none; }.kw-heading p:not(.eyebrow) { font-size: 14px; }.kw-viewport { height: 440px; }.kw-subject-tabs button { padding: 8px 10px; font-size: 12px; }.kw-topic-picker,.kw-topic-picker select { width: 100%; max-width: none; }.kw-inspector { grid-template-columns: 1fr; padding: 22px; }.kw-selection-status { padding: 14px 22px; }.kw-detail-metrics { gap: 25px; }.kw-map-footer { font-size: 11px; }.kw-map-controls { left: 10px; top: 10px; }.kw-skill-list { grid-template-columns: 1fr; } }
