:root{--muted:#52657e;--line:rgba(255,255,255,.9);--bg:#e8f2ff}
body{background:#e8f2ff;color:#0d1b2a;font-size:14px;line-height:1.5}.ia-app{grid-template-columns:235px minmax(0,1fr);max-width:1800px;margin:auto}.ia-side{position:sticky;top:0;height:100vh;overflow-y:auto;background:rgba(255,255,255,.58);backdrop-filter:blur(18px);border-right:1px solid white;padding:28px 18px;gap:20px}.logo{font-size:28px;margin-bottom:12px}.ia-side nav{gap:4px}.nav-btn{font-size:13px;min-height:42px;color:#203d64;border:1px solid transparent}.nav-btn.active{background:#2563eb;color:white;border-color:#fff;box-shadow:0 5px 20px #2563eb30}.nav-btn:hover:not(.active){background:#fff9}.exam-chip{margin-top:auto;background:#ffffffa6;border:1px solid white}.exam-chip strong{font-size:13px}.back-portal{color:#42628f;font-size:12px}.ia-main{max-width:none;padding:22px 26px}.topbar{margin-bottom:18px}.topbar h1{font-size:24px;letter-spacing:-.7px}.visitor{display:grid;text-align:right;font-size:11px;color:#52657e}.visitor strong{font-size:13px;color:#0d1b2a}.eyebrow{font-size:10px}
.hero{grid-template-columns:minmax(0,1.4fr) 220px minmax(180px,.8fr);position:relative;align-items:center;gap:20px;padding:28px 32px;background:#123e85;border:1px solid #ffffffa8;border-radius:22px;min-height:265px;overflow:hidden}.hero-copy{position:relative;z-index:1}.hero h2{font-size:30px;line-height:1.15;max-width:470px}.hero p{font-size:13px;line-height:1.55}.hero .eyebrow{color:#bfd9ff}.dashboard-robot{height:245px;width:220px;object-fit:contain;align-self:end}.mentor-note{padding:20px;background:#e5f0ffeb;color:#153567;border:1px solid white;border-radius:20px}.mentor-note p{color:#344d70;margin-bottom:0}.hero-actions{margin-top:16px}.btn{min-height:44px;font:inherit;font-weight:700}.btn.blue{background:#2563eb;color:white;width:100%}.btn:disabled{background:#e2e8f0;color:#52657e;cursor:not-allowed}.metric-grid{gap:12px;margin:14px 0}.metric,.panel{background:rgba(255,255,255,.75);border:1px solid white;box-shadow:0 8px 28px #29568c08;backdrop-filter:blur(16px);border-radius:16px}.metric{padding:18px}.metric strong{font-size:27px}.metric small{font-size:11px}.dashboard-grid{display:grid;grid-template-columns:1.15fr 1fr .75fr;gap:14px}.panel h3{margin:0 0 15px;font-size:16px;letter-spacing:-.4px}.panel h2{margin:8px 0}.panel-head{align-items:center}.text-action{border:0;background:none;color:#1d5fe8;font:inherit;font-size:11px;cursor:pointer;text-decoration:none;padding:5px}.row{grid-template-columns:1fr auto;gap:8px;padding:12px 0}.row time{grid-column:1/-1}.row .badge{white-space:normal;grid-column:1/-1;line-height:1.5;background:#eef4ff}.row small{font-size:11px}.row-action{min-height:40px;display:inline-flex;align-items:center}.subtle{color:#52657e;font-size:11px;line-height:1.55}.next-panel img{height:160px;width:100%;object-fit:contain}.next-panel strong{display:block;margin:8px 0}.next-panel p{color:#52657e;font-size:12px}
.subject-line{padding:9px 0;border-bottom:1px solid #dce7f4}.subject-line strong{display:flex;justify-content:space-between;font-size:12px;gap:10px}.subject-line small{color:#52657e;font-size:11px}.subject-line progress{height:7px;margin:7px 0;width:100%}progress{accent-color:#2563eb;width:100%;height:12px}.recent-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #dce7f4;font-size:12px}.status-ok{color:#08784a}.status-error{color:#b42318}.knowledge-panel{margin-top:20px}.knowledge{grid-template-columns:repeat(5,1fr)}.knowledge div{background:#eef4ff}.dashboard-footer{color:#52657e;font-size:11px;padding:24px 0}.dashboard-footer a{color:#1d5fe8}.empty{font-size:13px;padding:12px 0}#app-status{color:#52657e;font-size:12px}#tool-view{min-height:250px}.form-grid select,.form-grid input{width:100%;min-height:44px;border:1px solid #bccde6;border-radius:10px;padding:10px;background:white;font:inherit}.form-grid label{color:#334155}.form-grid{margin:18px 0}.timer-display{font-size:52px;font-weight:750;letter-spacing:-2px;margin:20px 0}.timer-actions{display:flex;gap:10px;flex-wrap:wrap}.timer-actions .btn{background:#2563eb;color:white}.skip-link{position:absolute;left:15px;top:-80px;background:white;padding:12px;z-index:20}.skip-link:focus{top:12px}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #0d1b2a;outline-offset:3px}.hero-actions .btn:focus-visible{outline-color:white}
.topic-breakdown{margin-top:18px;padding-top:16px;border-top:1px solid #dce7f4}.topic-breakdown h4{margin:0 0 8px;font-size:13px}.topic-performance{display:grid;grid-template-columns:1fr 1fr;gap:16px}.topic-performance>div{min-width:0}.topic-line{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #dce7f4}.topic-line strong{display:block;font-size:12px;line-height:1.35}.topic-line small{display:block;color:#52657e;font-size:11px;line-height:1.4;margin-top:3px}.topic-line b{font-size:13px;white-space:nowrap}.topic-performance .subtle{grid-column:1/-1;margin:2px 0 0;font-size:11px}
@media(max-width:1150px){.hero{grid-template-columns:minmax(0,1fr) 180px}.dashboard-robot{width:180px;height:220px}.mentor-note{grid-column:1/-1;padding:12px 18px}.dashboard-grid{grid-template-columns:1fr 1fr}.ia-main{padding:20px}.hero h2{font-size:27px}}
@media(max-width:850px){.ia-app{grid-template-columns:1fr}.ia-side{position:relative;height:auto;padding:16px;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;align-items:center}.logo{margin:0;flex:1}.mobile-menu{display:block;float:none;background:white}.ia-side nav{display:none;width:100%}.ia-side.menu-open nav{display:grid;grid-template-columns:1fr 1fr}.exam-chip{width:100%;margin:0;padding:12px}.exam-chip strong{display:none}.exam-chip select{margin-top:5px}.back-portal{display:none}.topbar h1{font-size:22px}.visitor{display:none}.ia-main{padding:18px 14px}.hero{padding:22px;gap:12px}.hero h2{font-size:25px}.metric-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr 1fr}.knowledge{grid-template-columns:1fr 1fr}}
 @media(max-width:560px){.hero{grid-template-columns:1fr}.dashboard-robot{width:150px;height:180px;justify-self:center;grid-row:2}.mentor-note{grid-column:auto}.hero h2{max-width:none}.hero p{max-width:none}.hero-actions .btn{flex:1}.dashboard-grid{grid-template-columns:1fr}.next-panel img{height:190px}.metric{padding:15px;min-width:0}.metric strong{font-size:22px}.metric span{font-size:11px}.topbar{display:block}.form-grid{grid-template-columns:1fr}.knowledge strong{font-size:18px}.topic-performance{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,box-shadow .15s}button:hover{box-shadow:0 4px 14px #2563eb20}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Hero v2: dashboard composition aligned to the IA Aprova reference. */
.topbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,520px) auto;align-items:center;gap:22px;margin-bottom:14px}.topbar-copy h1{margin-bottom:0}.dashboard-search{height:46px;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:14px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 22px rgba(37,99,235,.08);color:#5f7495}.dashboard-search span{font-size:25px;line-height:1}.dashboard-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#152c4e;font:inherit}.dashboard-search input::placeholder{color:#7a8da9}.dashboard-search kbd{border:1px solid #d4e0f1;background:#f5f8fd;border-radius:6px;padding:3px 6px;font-size:10px;color:#6c7e98}.visitor{position:relative;grid-template-columns:auto auto;column-gap:10px;align-items:center}.visitor .icon-button{grid-row:span 2;width:42px;height:42px;border:1px solid white;border-radius:13px;background:rgba(255,255,255,.72);font-size:20px;color:#244a7d}.visitor span{grid-column:2}.visitor strong,.visitor small{grid-column:2}.visitor strong{font-size:12px}.visitor small{font-size:10px}.hero{grid-template-columns:minmax(0,1.04fr) minmax(260px,.78fr) minmax(220px,.72fr);align-items:center;gap:4px;padding:24px 28px 20px;min-height:270px;background:linear-gradient(113deg,#0d3280 0%,#1662ce 48%,#3b8cf2 100%);border:1px solid rgba(255,255,255,.68);border-radius:24px;box-shadow:0 18px 50px rgba(31,92,194,.19);isolation:isolate}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 68% 5%,rgba(255,255,255,.28),transparent 28%),radial-gradient(circle at 15% 120%,rgba(4,22,82,.38),transparent 44%),linear-gradient(90deg,transparent 0 37%,rgba(130,204,255,.18) 37.5%,transparent 39%,transparent 70%,rgba(255,255,255,.15) 70.5%,transparent 72%);opacity:.95}.hero:after{content:"";position:absolute;z-index:-1;width:42%;height:70%;right:26%;top:15%;border-radius:50%;background:rgba(135,205,255,.26);filter:blur(32px)}.hero-glow{position:absolute;z-index:-1;left:34%;top:-30%;width:18%;height:190%;background:rgba(255,255,255,.1);transform:rotate(15deg);filter:blur(14px)}.hero-copy{padding:4px 0 4px 4px;max-width:500px}.hero h2{font-size:clamp(28px,3vw,42px);line-height:1.05;letter-spacing:-1.4px;margin:12px 0 11px;max-width:520px}.hero p{max-width:470px;color:#e6f1ff;line-height:1.52}.hero-actions{margin-top:18px}.hero-actions .primary{display:inline-flex;align-items:center;gap:16px;padding-inline:20px;background:#2583ff;color:white;box-shadow:0 10px 24px rgba(1,47,143,.3)}.hero-actions .primary span{font-size:22px;line-height:1}.hero-mascot{position:relative;height:255px;align-self:end;display:flex;align-items:flex-end;justify-content:center;overflow:visible}.dashboard-robot{width:100%;height:300px;max-width:430px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 18px rgba(6,24,74,.28));transform:translateY(13px)}.mascot-tag{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);padding:4px 8px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(5,38,104,.46);color:#dbeafe;font-size:8px;letter-spacing:1.2px;white-space:nowrap}.mentor-note{position:relative;align-self:center;padding:18px 20px 20px 18px;background:rgba(233,244,255,.93);color:#0f3164;border:1px solid rgba(255,255,255,.97);border-radius:20px;box-shadow:0 12px 30px rgba(5,38,104,.14)}.mentor-note:before{content:"";position:absolute;left:-17px;top:50%;border-width:9px 17px 9px 0;border-style:solid;border-color:transparent rgba(233,244,255,.93) transparent transparent;transform:translateY(-50%)}.note-icon{display:inline-block;color:#1671e8;letter-spacing:1px;font-size:12px;margin-bottom:6px}.mentor-note strong{display:block;font-size:12px;color:#0e2d5c}.mentor-note h3{font-size:15px;margin:3px 0 7px;color:#0f3164}.mentor-note p{font-size:12px;line-height:1.5;color:#3d5c84;margin:0}.note-arrow{position:absolute;right:15px;bottom:15px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#1671e8;color:white;font-size:18px}.metric{display:flex;align-items:center;gap:12px;padding:16px 15px}.metric>div{min-width:0}.metric-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;color:#fff;font-size:22px;font-weight:800}.metric-icon.green{background:linear-gradient(135deg,#13b477,#0d8b66)}.metric-icon.blue{background:linear-gradient(135deg,#2c83ff,#1b5ee1)}.metric-icon.orange{background:linear-gradient(135deg,#ff9f38,#f27418)}.metric-icon.purple{background:linear-gradient(135deg,#a56cfa,#7446db)}.metric strong{margin:3px 0 0;font-size:25px}.metric span{display:block}.metric small{display:block;margin-top:2px}.metric-grid{gap:12px;margin:14px 0}.panel{box-shadow:0 8px 25px rgba(34,85,152,.07)}
@media(max-width:1150px){.topbar{grid-template-columns:1fr auto}.dashboard-search{grid-column:1/-1;grid-row:2}.hero{grid-template-columns:minmax(0,1fr) 230px}.hero-mascot{grid-column:2;grid-row:1/3}.mentor-note{grid-column:1;grid-row:2;margin-top:0}.mentor-note:before{display:none}.hero-copy{grid-column:1;grid-row:1}.dashboard-robot{height:250px}.hero{padding:24px}.metric-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:850px){.topbar{grid-template-columns:1fr auto}.dashboard-search{grid-column:1/-1}.hero{grid-template-columns:1fr 190px;min-height:285px}.hero-copy{grid-column:1;grid-row:1}.hero-mascot{grid-column:2;grid-row:1/3}.mentor-note{grid-column:1;grid-row:2}.dashboard-robot{height:230px}.metric-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.topbar{display:grid;grid-template-columns:1fr auto}.topbar-copy h1{font-size:22px}.dashboard-search{grid-column:1/-1;grid-row:2}.hero{grid-template-columns:1fr;min-height:0;padding:22px 20px 18px;gap:0}.hero-copy{grid-column:1;grid-row:1}.hero-mascot{grid-column:1;grid-row:2;height:188px;justify-content:center;margin-top:8px}.dashboard-robot{height:215px;transform:translateY(14px)}.mentor-note{grid-column:1;grid-row:3;margin-top:16px}.mentor-note:before{display:block;left:50%;top:-17px;border-width:0 9px 17px;border-color:transparent transparent rgba(233,244,255,.93);transform:translateX(-50%)}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn{width:100%;justify-content:center}.visitor{display:grid}.visitor span,.visitor small{display:none}.visitor strong{font-size:11px}.visitor .icon-button{width:36px;height:36px}.metric{padding:13px 11px;gap:8px}.metric-icon{flex-basis:34px;width:34px;height:34px;font-size:18px;border-radius:10px}.metric strong{font-size:21px}.metric small{font-size:10px}}

.search-result{display:block;padding:12px 14px;margin:8px 0;border:1px solid #c8daf5;border-radius:12px;background:#f3f8ff;color:#17438f;text-decoration:none;font-weight:700}.search-result small{display:block;font-weight:400;color:#52657e;margin-top:4px}.search-result:hover{background:#e3eeff}.hero-copy{min-height:218px}.mentor-note{min-height:190px}.metric .metric-icon{display:grid;color:white;font-size:24px;line-height:1}.dashboard-search:focus-within{outline:3px solid #2563eb;outline-offset:2px}
/* Final polish: use a real study-room atmosphere and give the robot visual weight. */
.hero{grid-template-columns:minmax(0,1.02fr) minmax(330px,.98fr) minmax(230px,.72fr);background-image:linear-gradient(90deg,rgba(7,35,91,.92) 0%,rgba(10,73,160,.72) 46%,rgba(31,112,221,.53) 100%),url('../assets/ia-aprova-hero-bg.png');background-size:cover;background-position:center;border-radius:22px;min-height:286px}.hero:before{background:linear-gradient(90deg,rgba(4,23,65,.28),transparent 55%,rgba(93,174,255,.12));opacity:1}.hero:after{right:26%;top:0;width:30%;height:100%;background:rgba(101,189,255,.17);filter:blur(36px)}.hero-mascot{height:284px}.dashboard-robot{height:340px;max-width:500px;transform:translateY(18px) scale(1.06)}.mascot-tag{display:none}.mentor-note{max-width:270px;padding:17px 18px 20px}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-button{display:grid;place-items:center}.hero-copy{max-width:525px}.hero h2{font-size:clamp(30px,3.2vw,44px)}
@media(max-width:1150px){.hero{grid-template-columns:minmax(0,1fr) 250px}.hero-mascot{height:270px}.dashboard-robot{height:310px}.mentor-note{max-width:none}}
@media(max-width:850px){.hero{grid-template-columns:minmax(0,1fr) 220px}.hero-mascot{height:250px}.dashboard-robot{height:285px}}
@media(max-width:560px){.hero{grid-template-columns:1fr;background-position:62% center}.hero-mascot{height:196px}.dashboard-robot{height:240px;transform:translateY(16px) scale(1.04)}}

/* Hero v3: the mentor is studying with the student, in an end-of-afternoon room. */
.hero{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr) minmax(224px,.7fr);min-height:306px;padding:24px 28px 18px;background-image:linear-gradient(90deg,rgba(4,24,66,.93) 0%,rgba(7,48,111,.82) 41%,rgba(15,75,143,.5) 69%,rgba(9,47,100,.23) 100%),url('../assets/ia-aprova-estudo-tarde-v1.png');background-position:center;background-size:cover}
.hero:before{background:linear-gradient(90deg,rgba(1,15,43,.2),transparent 58%,rgba(255,184,82,.09));}
.hero:after{right:21%;top:7%;width:25%;height:80%;background:rgba(255,183,87,.18);filter:blur(42px)}
.hero-copy{align-self:center;min-height:0;padding-left:3px}.hero h2{max-width:510px}.hero p{max-width:470px}.hero-mascot{height:292px;min-width:0;align-items:flex-end;justify-content:center;pointer-events:none}.dashboard-robot{width:100%;height:334px;max-width:455px;object-fit:contain;object-position:center bottom;transform:translateY(12px);filter:drop-shadow(0 16px 20px rgba(2,14,42,.36))}.mentor-note{z-index:1;max-width:250px;background:rgba(244,249,255,.95)}.mentor-note:before{border-right-color:rgba(244,249,255,.95)}
@media(max-width:1150px){.hero{grid-template-columns:minmax(0,1fr) 255px;min-height:318px}.hero-mascot{height:286px}.dashboard-robot{height:310px}.mentor-note{max-width:none;background:rgba(244,249,255,.94)}.mentor-note:before{display:none}}
@media(max-width:850px){.hero{grid-template-columns:minmax(0,1fr) 218px;min-height:330px;background-position:58% center}.hero-mascot{height:258px}.dashboard-robot{height:278px;transform:translateY(9px)}.hero-copy{align-self:start}.mentor-note{align-self:end}}
@media(max-width:560px){.hero{grid-template-columns:1fr;min-height:0;padding:22px 20px 18px;background-position:64% center}.hero-copy{grid-column:1;grid-row:1}.hero-mascot{grid-column:1;grid-row:2;height:238px;margin:5px -8px 0}.dashboard-robot{height:275px;max-width:365px;transform:translateY(13px)}.mentor-note{grid-column:1;grid-row:3;margin-top:14px}.mentor-note:before{display:block;border-right-color:transparent;border-bottom-color:rgba(244,249,255,.94)}}

/* Hero v4: the lead mentor is the teacher; the whiteboard is part of the lesson, not decoration. */
.hero{grid-template-columns:minmax(0,1fr) 248px;min-height:306px;gap:18px;background-image:linear-gradient(90deg,rgba(5,25,67,.22),rgba(5,25,67,.04) 48%,rgba(5,25,67,.08)),url('../assets/mentor-professor-whiteboard-v1.png');background-position:center;background-size:cover}
.hero:before{display:none}.hero:after{right:18%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14));filter:blur(18px)}
.hero-copy{z-index:1;max-width:520px;padding:6px 0 6px 4px}.hero h2{max-width:500px;text-shadow:0 2px 16px rgba(2,20,58,.22)}.hero p{max-width:470px;color:#eaf3ff;text-shadow:0 1px 11px rgba(2,20,58,.35)}.hero-mascot{display:none}.mentor-note{z-index:2;max-width:none;background:rgba(250,252,255,.95);box-shadow:0 14px 34px rgba(5,31,79,.18)}.mentor-note:before{border-right-color:rgba(250,252,255,.95)}
@media(max-width:850px){.hero{grid-template-columns:minmax(0,1fr) 208px;min-height:328px;background-position:55% center}.mentor-note{align-self:end}.hero-copy{align-self:start}}
@media(max-width:560px){.hero{grid-template-columns:1fr;min-height:0;padding:22px 20px 18px;background-position:64% center;background-image:linear-gradient(90deg,rgba(5,25,67,.72),rgba(5,25,67,.25)),url('../assets/mentor-professor-whiteboard-v1.png')}.hero-copy{grid-column:1;grid-row:1}.mentor-note{grid-column:1;grid-row:2;margin-top:136px}.mentor-note:before{display:block;border-right-color:transparent;border-bottom-color:rgba(250,252,255,.95)}}

/* Clean whiteboard refinement: the entire hero is now the professor's board. */
.hero{display:block;min-height:330px;padding:28px 32px 76px;background-image:url('../assets/mentor-professor-whiteboard-clean-v1.png');background-position:center;background-size:cover;border-color:#d8e0ec;box-shadow:0 18px 38px rgba(25,59,104,.12)}
.hero:after{display:none}.hero-copy{position:relative;z-index:1;width:47%;max-width:500px;padding:0;color:#0d2852}.hero .eyebrow{color:#2563a8}.hero h2{color:#0d2852;text-shadow:none}.hero p{color:#395879;text-shadow:none}.hero-actions .primary{background:#1d64d9;box-shadow:0 9px 18px rgba(29,100,217,.22)}.hero-actions .ghost{border-color:#a9bfdc;color:#174b90;background:rgba(255,255,255,.56)}
.mentor-note{position:absolute;z-index:2;bottom:20px;left:32px;width:44%;max-width:470px;min-height:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;color:#153b70}.mentor-note:before,.note-icon,.mentor-note h3,.note-arrow{display:none}.mentor-note strong{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#245d9f}.mentor-note p{margin:3px 0 0;color:#48647f;font-size:12px;line-height:1.45}
@media(max-width:850px){.hero{min-height:346px;background-position:64% center}.hero-copy{width:55%}.mentor-note{width:52%}}
@media(max-width:560px){.hero{display:grid;min-height:520px;padding:22px 20px 18px;background-position:left center}.hero-copy{grid-column:1;grid-row:1;width:58%;max-width:58%;padding:0}.hero h2{max-width:none;font-size:28px;line-height:1.08}.hero p{max-width:none;font-size:12px;line-height:1.52}.hero-actions{max-width:none;margin-top:15px}.hero-actions .btn{width:100%;min-height:46px}.mentor-note{position:static;grid-column:1;grid-row:2;width:auto;max-width:none;margin-top:185px;padding:12px 14px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.98);border-radius:13px;box-shadow:0 8px 18px rgba(13,40,82,.12)}}

/* Mobile composition: the board reserves its left side for the next action. */
@media(max-width:560px){.topbar{gap:10px;margin-bottom:10px}.topbar-copy .eyebrow{display:none}.topbar-copy h1{font-size:23px;line-height:1.16}.dashboard-search{height:48px}.dashboard-search kbd{display:none}#app-status{margin:8px 0 12px;font-size:12px}.hero{min-height:470px;padding:21px 18px 16px;background-position:left center;overflow:hidden}.hero:before{content:"";display:block;position:absolute;z-index:0;inset:0 auto 0 0;width:65%;height:100%;background:linear-gradient(90deg,#fff 0%,#fff 73%,rgba(255,255,255,.72) 88%,rgba(255,255,255,0) 100%)}.hero-copy{position:relative;z-index:1;width:57%;max-width:57%}.hero h2{font-size:26px;line-height:1.1;letter-spacing:-.8px}.hero p{font-size:11.5px;line-height:1.48}.hero-actions{gap:9px;margin-top:13px}.hero-actions .btn{min-height:43px;padding-inline:10px;font-size:14px}.mentor-note{position:relative;z-index:1;grid-column:1;grid-row:2;width:100%;max-width:none;min-height:0;margin-top:146px;padding:9px 11px;background:rgba(255,255,255,.94);border-color:#d8e5f6;border-radius:11px;box-shadow:0 6px 14px rgba(13,40,82,.08)}.mentor-note strong{font-size:9px}.mentor-note p{font-size:11px;line-height:1.36;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.metric-grid{margin-top:13px}.metric{padding:12px 10px}.metric strong{font-size:20px}.metric small{font-size:9px}.metric span{font-size:10px}}

/* Mobile whiteboard: real image in normal flow, never a cropped portrait background. */
.hero-mobile-teacher{display:none}
@media(max-width:560px){
  .hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;column-gap:12px;row-gap:14px;min-height:0;padding:24px 20px 18px;background:linear-gradient(145deg,#fff 35%,#f0f6fd);border:1px solid #d6e1ef;border-radius:22px}
  .hero:before,.hero:after,.hero-glow{display:none}
  .hero-copy{grid-column:1/-1;grid-row:1;width:100%;max-width:none;min-width:0;padding:0;box-sizing:border-box}
  .hero .eyebrow{font-size:10px;letter-spacing:1.5px}
  .hero h2{font-size:27px;line-height:1.12;letter-spacing:-.8px;margin:10px 0}
  .hero p{font-size:14px;line-height:1.55}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:4px;margin-top:16px}
  .hero-actions .btn{min-height:48px;padding:12px 14px;font-size:15px;white-space:normal}
  .hero-actions .ghost{border:0;background:transparent;box-shadow:none;min-height:44px;padding:8px 12px}
  .hero-mobile-teacher{display:block;position:static;grid-column:2;grid-row:2;width:100%;height:210px;max-width:100%;object-fit:contain;object-position:center;margin:0;align-self:center;filter:drop-shadow(0 6px 7px rgba(32,62,105,.08))}
  .mentor-note{position:static;grid-column:1;grid-row:2;inset:auto;width:auto;max-width:none;min-height:0;box-sizing:border-box;align-self:center;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
  .mentor-note strong{font-size:10px}
  .mentor-note p{display:block;font-size:13px;line-height:1.55;overflow:visible;-webkit-line-clamp:unset;margin-top:7px}
  .metric{align-items:flex-start}
  .metric small{font-size:11px;line-height:1.4}
  .metric span{font-size:12px;line-height:1.4}
  .ia-main,.topbar,.topbar-copy,.dashboard-grid,.panel{min-width:0}
  .panel-head{flex-wrap:wrap;gap:8px}
}
.timer-shell{display:grid;gap:20px}.timer-shell-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:4px}.timer-shell-head h2{margin:5px 0 6px;font-size:25px;letter-spacing:-.6px}.timer-shell-head p{max-width:650px;margin:0;color:#52657e;font-size:12px;line-height:1.55}.timer-state-badge{display:inline-flex;align-items:center;gap:7px;flex:none;border:1px solid #d7e4fb;border-radius:999px;padding:8px 11px;background:#f6f9ff;color:#315f9f;font-size:11px;font-weight:750;white-space:nowrap}.timer-state-badge i{width:7px;height:7px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 4px #2563eb18}.timer-state-badge[data-state="active"]{background:#effaf4;border-color:#bfe7cf;color:#08784a}.timer-state-badge[data-state="active"] i{background:#16a34a;box-shadow:0 0 0 4px #16a34a18}.timer-state-badge[data-state="paused"]{background:#fff8e8;border-color:#f0c36b;color:#8a5a00}.timer-state-badge[data-state="paused"] i{background:#d97706;box-shadow:0 0 0 4px #d9770618}.timer-state-badge[data-state="blocked"]{background:#fff5f4;border-color:#f5c2bd;color:#a33a32}.timer-state-badge[data-state="blocked"] i{background:#d94841;box-shadow:0 0 0 4px #d9484118}.timer-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:14px}.timer-focus-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:28px;border-radius:20px;background:linear-gradient(145deg,#123e85 0%,#1d5fe8 100%);color:#fff;box-shadow:0 18px 40px #123e8526;position:relative;overflow:hidden}.timer-focus-card::after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;top:-100px;background:#ffffff16}.timer-focus-label{position:relative;z-index:1;font-size:10px;letter-spacing:.14em;font-weight:800;color:#cfe0ff}.timer-display{position:relative;z-index:1;margin:10px 0 3px;font-size:72px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-3px;color:#fff;text-shadow:0 6px 18px #061b4a55}.timer-clock-caption{position:relative;z-index:1;color:#dce9ff;font-size:11px;text-align:center}.timer-actions{position:relative;z-index:1;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:24px}.timer-actions .btn{min-width:92px;border:1px solid #ffffff38;border-radius:11px;background:#ffffff18;color:#fff;box-shadow:none}.timer-actions .btn.primary{background:#fff;color:#123e85;border-color:#fff}.timer-actions .btn.secondary{background:#ffffff22;color:#fff}.timer-actions .btn.ghost{background:transparent;color:#eef5ff}.timer-actions .btn:disabled{background:#ffffff26;color:#aac2e9;border-color:#ffffff26;opacity:1}.timer-settings-card{display:flex;flex-direction:column;gap:16px;padding:22px;border:1px solid #dce8fa;border-radius:20px;background:#f8fbff;min-height:300px}.timer-settings-heading{display:flex;align-items:center;gap:10px}.timer-settings-heading strong,.timer-settings-heading small{display:block}.timer-settings-heading strong{font-size:14px;color:#17375f}.timer-settings-heading small{margin-top:3px;color:#667085;font-size:11px;line-height:1.4}.timer-settings-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e5efff;color:#1d5fe8;font-size:22px;font-weight:700}.timer-settings-card label{display:grid;gap:7px;color:#52657e;font-size:11px;font-weight:750}.timer-settings-card select{width:100%;min-height:46px;border:1px solid #c9d9ef;border-radius:11px;padding:10px 12px;background:#fff;color:#172b4d;font:inherit;font-size:13px;box-shadow:0 2px 8px #123e8508}.timer-settings-card select:focus{border-color:#2563eb}.timer-context-hint{margin:auto 0 0;padding-top:12px;border-top:1px solid #dce8fa;color:#667085;font-size:11px;line-height:1.5}.timer-status-row{display:flex;align-items:center;gap:8px;min-height:18px}.timer-status-row .timer-status-dot{width:7px;height:7px;border-radius:50%;background:#b8c4d5}.timer-status-row p{margin:0}.timer-recovery{margin-top:0;border-radius:14px}.timer-recovery>strong{font-size:12px}.timer-recovery>div{margin-top:3px}.timer-recovery .btn{min-height:38px}.timer-recovery .btn:first-child{background:#fff;border-color:#d5a94a}
@media(max-width:760px){.timer-shell-head{display:grid;gap:12px}.timer-state-badge{justify-self:start}.timer-grid{grid-template-columns:1fr}.timer-focus-card,.timer-settings-card{min-height:0}.timer-focus-card{padding:26px 18px}.timer-display{font-size:64px}.timer-settings-card{padding:18px}.timer-actions{width:100%;gap:7px}.timer-actions .btn{flex:1;min-width:0;padding-inline:8px}.timer-recovery>div{display:grid;grid-template-columns:1fr}.timer-recovery .btn{width:100%}}
.timer-recovery{display:grid;gap:8px;margin-top:14px;padding:12px 14px;border:1px solid #f0c36b;border-radius:12px;background:#fff8e8;color:#6d4a00;font-size:.8rem}.timer-recovery>span{color:#7b5c22}.timer-recovery>div{display:flex;gap:8px;flex-wrap:wrap}.timer-recovery .btn{background:#fff;color:#6d4a00;border-color:#d5a94a}

/* Timer recovery respects the semantic hidden attribute even when the base card uses grid. */
.timer-recovery[hidden]{display:none!important}

/* Statistics: turn raw numbers into a clear next-study decision. */
.stats-intro{margin-bottom:16px}.stats-intro h2{margin:4px 0 6px;font-size:27px;letter-spacing:-.7px}.stats-intro p{max-width:680px;margin:0;color:#52657e;font-size:12px;line-height:1.55}.stats-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stats-summary-card{display:flex;flex-direction:column;gap:5px;min-height:112px;padding:16px;border:1px solid #d9e5f5;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(34,85,152,.06)}.stats-summary-card>span{color:#52657e;font-size:11px;font-weight:700}.stats-summary-card strong{color:#123e85;font-size:25px;line-height:1.1;letter-spacing:-.6px}.stats-summary-card small{margin-top:auto;color:#71829a;font-size:10px;line-height:1.35}.stats-summary-card-0 strong{color:#08784a}.stats-summary-card-3 strong{color:#b45309}.stats-next-action,.stats-plan-progress,.stats-subject-section,.stats-confidence{margin-top:16px;padding:18px 20px;border:1px solid #d9e5f5;border-radius:17px;background:rgba(255,255,255,.78);box-shadow:0 7px 22px rgba(34,85,152,.05)}.stats-next-action{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(105deg,#edf5ff,#fff)}.stats-next-action h3,.stats-section-head h3{margin:3px 0 5px;font-size:17px;letter-spacing:-.35px}.stats-next-action p{margin:0 0 4px;color:#244a7d;font-size:12px}.stats-next-action small{display:block;max-width:650px;color:#52657e;font-size:11px;line-height:1.5}.stats-next-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:220px}.stats-next-meta>span{padding:6px 9px;border-radius:999px;background:#e2edff;color:#315f9f;font-size:10px;font-weight:750;white-space:nowrap}.stats-next-meta .btn{width:auto;min-width:136px;margin-left:3px}.btn.secondary{border:1px solid #bcd0eb;background:#fff;color:#1d5fe8}.stats-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:9px}.stats-session-count{align-self:center;color:#71829a;font-size:10px}.stats-plan-progress{background:#fbfdff}.stats-plan-bar>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.stats-plan-bar strong{color:#123e85;font-size:22px}.stats-plan-bar span,.stats-plan-bar small{color:#52657e;font-size:11px}.stats-plan-bar progress{display:block;margin:9px 0 6px;height:9px}.stats-plan-bar small{display:block}.stats-confidence{padding-bottom:16px}.stats-confidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stats-confidence-grid>div{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:12px;background:#f3f7fd;border:1px solid #e2eaf5}.stats-confidence-grid strong{font-size:22px;color:#123e85}.stats-confidence-grid span{font-size:11px;font-weight:750;color:#334e73}.stats-confidence-grid small{font-size:10px;color:#71829a}.stats-footnote{margin:14px 2px 0}
@media(max-width:850px){.stats-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-next-action{align-items:flex-start;flex-direction:column}.stats-next-meta{justify-content:flex-start;min-width:0}.stats-next-meta .btn{margin-left:0}}
@media(max-width:560px){.stats-summary-grid{gap:8px}.stats-summary-card{min-height:100px;padding:13px 12px}.stats-summary-card strong{font-size:21px}.stats-next-action,.stats-plan-progress,.stats-subject-section,.stats-confidence{padding:15px 14px}.stats-section-head{align-items:flex-start;flex-direction:column;gap:4px}.stats-next-meta{width:100%;display:grid;grid-template-columns:1fr 1fr}.stats-next-meta .btn{grid-column:1/-1;width:100%}.stats-confidence-grid{grid-template-columns:1fr}.stats-confidence-grid>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.stats-confidence-grid strong{grid-row:span 2}.stats-confidence-grid small{grid-column:2}}

/* Dashboard footer: restore a clear route to the portal and readable legal links. */
.dashboard-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;border-top:1px solid #dce7f4}
.dashboard-footer-brand{color:#17365f!important;font-size:13px;font-weight:750;text-decoration:none}
.dashboard-footer p{flex:1 1 320px;max-width:58ch;margin:0;color:#52657e;line-height:1.55}
.dashboard-footer nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px}
.dashboard-footer nav a{display:inline-flex;align-items:center;min-height:44px}
.dashboard-footer a:focus-visible{outline:3px solid #1d5fe8;outline-offset:3px;border-radius:3px}
@media(max-width:600px){.dashboard-footer{display:grid;grid-template-columns:1fr;gap:8px;padding:20px 0}.dashboard-footer p{max-width:unset}.dashboard-footer nav{gap:2px 14px}}

/* Anti-slop polish: every visual block must explain or start a real action. */
.next-panel{display:flex;flex-direction:column;min-height:220px}
.session-visual{display:grid;place-items:center;width:52px;height:52px;margin:2px 0 14px;border-radius:16px;background:#eaf2ff;color:#1d64d9;font-size:26px;font-weight:700}
.next-panel strong{font-size:15px;color:#102d57;margin:0 0 7px}
.next-panel p{margin:0 0 14px}
.next-panel .btn{margin-top:auto}
.empty{border:1px dashed #cad8ea;border-radius:12px;background:#f8fbff;padding:14px;color:#536987;line-height:1.55}
.visitor .icon-button{cursor:pointer}
@media(max-width:560px){.next-panel{min-height:0}.session-visual{width:46px;height:46px;margin-bottom:12px}.next-panel .btn{margin-top:8px}}

/* Desktop hero framing: keep the professor's head clear of the board edge. */
@media(min-width:561px){
  .hero{
    background-position:center 8%;
  }
}

/* Focus palette: low-saturation neutral surfaces reduce visual noise. */
:root{
  --bg:#f4f2ed;
}
body{background:var(--bg)}
.ia-side{
  background:rgba(255,255,255,.84);
  border-right-color:#e5e1d8;
}
.exam-chip{
  background:#fbfaf7;
  border-color:#e7e3da;
}
.knowledge div{
  background:#f8f7f2;
  border-color:#e7e3da;
}
.session-visual{
  background:#edf4ee;
  color:#147a5f;
}
.empty{
  background:#fbfaf7;
  border-color:#dedbd2;
}

/* Button system: one clear rhythm across dashboard actions and touch sizes. */
.ui-icon,.button-icon,.note-icon-svg,.metric-icon svg,.session-visual svg,.insight-icon{display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.ui-icon{width:18px;height:18px;flex:0 0 auto;stroke-width:1.8}.button-icon{width:18px;height:18px;flex:0 0 auto;stroke-width:1.9}.note-icon-svg{width:17px;height:17px;stroke-width:1.8}.metric-icon svg{width:22px;height:22px;stroke-width:1.8}.session-visual svg{width:22px;height:22px;stroke-width:1.9}.panel-hint .insight-icon{width:15px;height:15px;display:inline-block;vertical-align:-3px;margin-right:5px;stroke-width:1.8}

/* Metric family: bespoke pictograms, controlled color, and mascot-like depth. */
.metric{align-items:flex-start;min-height:124px;padding:18px 16px;gap:14px}
.metric>div{padding-top:1px}
.metric-icon{position:relative;display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border:1px solid rgba(255,255,255,.72);border-radius:14px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 8px 16px rgba(15,42,78,.12)}
.metric-icon::after{content:"";position:absolute;inset:0 0 52% 0;background:linear-gradient(180deg,rgba(255,255,255,.3),transparent);pointer-events:none}
.metric-icon.green{background:linear-gradient(145deg,#22b987,#087e61);color:#fff}
.metric-icon.blue{background:linear-gradient(145deg,#4b98ff,#1a5ed8);color:#fff}
.metric-icon.orange{background:linear-gradient(145deg,#ffb24d,#e46d16);color:#fff}
.metric-icon.purple{background:linear-gradient(145deg,#b184ff,#7040cf);color:#fff}
.metric-icon svg.metric-glyph{position:relative;z-index:1;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.metric>div>span{font-weight:600;color:#5b6b81;line-height:1.3}
.metric strong{display:block;margin-top:5px;color:#102d57;line-height:1.08;letter-spacing:-.7px}
.metric small{display:block;margin-top:6px;color:#7a8aa0;line-height:1.35}
@media(max-width:560px){.metric{min-height:112px;padding:14px 12px;gap:9px}.metric-icon{flex-basis:38px;width:38px;height:38px;border-radius:12px}.metric-icon svg.metric-glyph{width:21px;height:21px}.metric>div>span{font-size:10px}.metric strong{font-size:20px}.metric small{font-size:9px;margin-top:5px}}
button,
.row-action{
  -webkit-tap-highlight-color:transparent;
}
.btn,
.nav-btn,
.mobile-menu,
.icon-button,
.text-action,
.row-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.25;
}
.btn{
  min-height:44px;
  padding:10px 16px;
  border-radius:11px;
  white-space:normal;
}
.btn:not(:disabled),
.nav-btn,
.mobile-menu,
.icon-button,
.text-action,
.row-action{
  cursor:pointer;
}
.nav-btn{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  text-align:left;
  justify-content:flex-start;
}
.mobile-menu{
  min-height:44px;
  padding:10px 14px;
}
.icon-button{
  min-width:44px;
  min-height:44px;
}
.text-action{
  min-height:36px;
  padding:7px 10px;
  border-radius:8px;
  font-weight:700;
  text-decoration:none;
}
.row-action{
  min-height:40px;
  padding:8px 11px;
  border-radius:9px;
  background:#f0f5ff;
  color:#1d5fe8;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.btn:hover:not(:disabled),
.nav-btn:hover:not(.active),
.mobile-menu:hover,
.icon-button:hover,
.text-action:hover,
.row-action:hover{
  transform:translateY(-1px);
}
.text-action:hover{background:#f1f5f9;text-decoration:none}
.row-action:hover{background:#e5efff;text-decoration:none}
.btn:active:not(:disabled),
.nav-btn:active,
.mobile-menu:active,
.icon-button:active,
.text-action:active,
.row-action:active{
  transform:translateY(0);
}
.btn:focus-visible,
.nav-btn:focus-visible,
.mobile-menu:focus-visible,
.icon-button:focus-visible,
.text-action:focus-visible,
.row-action:focus-visible{
  outline:3px solid #2563eb;
  outline-offset:3px;
}
.hero-actions .btn:focus-visible{outline-color:#0d2852}
.btn:disabled{
  transform:none;
  box-shadow:none;
}
@media(prefers-reduced-motion:no-preference){
  .btn,.nav-btn,.mobile-menu,.icon-button,.text-action,.row-action{transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease}
}
@media(max-width:560px){
  .panel-head .text-action{min-height:40px;padding-inline:9px}
  .row-action{min-height:44px}
}
@media(min-width:851px){
  .mobile-menu{display:none}
}


/* Metric cards — aligned premium system */
.metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:16px 0;
}
.metric{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:start;
  column-gap:13px;
  min-height:132px;
  padding:20px 18px;
  border:1px solid rgba(212,224,239,.9);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 30px rgba(18,49,88,.07);
}
.metric-icon{
  position:relative;
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  margin-top:1px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:12px;
  overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 5px 12px rgba(15,42,78,.1);
}
.metric-icon::after{
  content:"";
  position:absolute;
  inset:0 0 54% 0;
  background:linear-gradient(180deg,rgba(255,255,255,.24),transparent);
  pointer-events:none;
}
.metric-icon svg.metric-glyph{
  position:relative;
  z-index:1;
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.metric>div{
  display:grid;
  grid-template-rows:minmax(34px,auto) auto minmax(30px,auto);
  align-content:start;
  min-width:0;
  padding:0;
}
.metric>div>span{
  display:flex;
  align-items:flex-start;
  min-height:34px;
  margin:0;
  color:#52657e;
  font-size:14px;
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.1px;
}
.metric strong{
  display:block;
  min-height:29px;
  margin:6px 0 0;
  color:#102d57;
  font-size:27px;
  line-height:1;
  letter-spacing:-.75px;
}
.metric small{
  display:flex;
  align-items:flex-start;
  min-height:30px;
  margin:7px 0 0;
  color:#7a8aa0;
  font-size:11px;
  line-height:1.3;
}
@media(max-width:1150px){
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .metric-grid{gap:12px;margin-top:13px;}
  .metric{
    grid-template-columns:38px minmax(0,1fr);
    column-gap:9px;
    min-height:126px;
    padding:15px 13px;
    border-radius:16px;
  }
  .metric-icon{
    flex-basis:38px;
    width:38px;
    height:38px;
    border-radius:11px;
  }
  .metric-icon svg.metric-glyph{width:20px;height:20px;}
  .metric>div{grid-template-rows:minmax(34px,auto) auto minmax(28px,auto);}
  .metric>div>span{min-height:34px;font-size:11px;line-height:1.25;}
  .metric strong{min-height:23px;margin-top:5px;font-size:21px;letter-spacing:-.55px;}
  .metric small{min-height:28px;margin-top:6px;font-size:10px;line-height:1.3;}
}


#app-status:empty{display:none;}

.weekly-plan{display:grid;gap:10px;margin:12px 0 20px}.weekly-plan.compact{margin-top:10px}.weekly-plan-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid #dce7f4;border-radius:14px;background:rgba(248,251,255,.86)}.weekly-plan-item.is-complete{background:#f0fbf6;border-color:#b7e5cf}.plan-check{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #b9cce5;border-radius:50%;background:#fff;color:#2563eb;font-size:17px;font-weight:800;cursor:pointer}.plan-check.is-static{cursor:default;pointer-events:none}.is-complete .plan-check{background:#08784a;border-color:#08784a;color:#fff}.weekly-plan-copy{min-width:0}.weekly-plan-copy strong,.weekly-plan-copy b,.weekly-plan-copy small,.weekly-plan-copy em{display:block}.weekly-plan-copy strong{color:#52657e;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.weekly-plan-copy b{margin-top:3px;color:#102d57;font-size:13px;line-height:1.3}.weekly-plan-copy small{margin-top:4px;color:#52657e;font-size:11px;line-height:1.35}.weekly-plan-copy em{margin-top:3px;color:#52657e;font-size:10px;font-style:normal}.weekly-plan-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.plan-complete-label{color:#08784a;font-size:11px;font-weight:750}.plan-progress{height:5px;margin-top:8px;background:#dce7f4;border-radius:5px;overflow:hidden}.plan-progress span{display:block;height:100%;background:#2563eb;border-radius:inherit}.weekly-plan.compact .weekly-plan-item{grid-template-columns:30px minmax(0,1fr) auto;padding:9px}.weekly-plan.compact .weekly-plan-item:nth-child(n+4){display:none}.weekly-plan.compact .weekly-plan-copy b{font-size:12px}.weekly-plan.compact .weekly-plan-copy small{font-size:10px}.weekly-plan.compact .plan-check{width:26px;height:26px;font-size:15px}
@media(max-width:640px){.weekly-plan-item{grid-template-columns:30px minmax(0,1fr);align-items:start}.weekly-plan-action{grid-column:2;justify-content:flex-start}.weekly-plan-action .row-action{min-height:34px}.weekly-plan.compact .weekly-plan-action{grid-column:auto;justify-content:flex-end}.weekly-plan.compact .plan-manual-action{display:none}}
.subject-levels{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:4px}.subject-level{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:12px;font-size:.9rem}.subject-level select{max-width:120px}.plan-horizon-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;background:var(--soft,#f5f7fb);border-radius:14px;margin:12px 0 20px}.plan-horizon-summary span{color:#667085}.plan-week{margin:18px 0}.plan-week h4{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.plan-week h4 small{font-weight:400;color:#667085}
@media(min-width:561px){.subject-levels{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:8px}.subject-level{padding:9px 10px;gap:7px;font-size:.85rem}.subject-level select{width:100%;max-width:100%;min-width:0}}
.calendar-overview{margin-top:12px}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 10px;color:#52657e;font-size:.76rem}.calendar-legend span{display:inline-flex;align-items:center;gap:6px}.calendar-key{display:inline-block;width:12px;height:12px;border:1px solid #dce3ed;border-radius:4px;background:#fff}.calendar-key-task{background:#f4f8ff;border-color:#c9ddff}.calendar-key-complete{background:#eefaf4;border-color:#b8e4cc}.calendar-key-today{box-shadow:inset 0 0 0 2px #1769aa}.calendar-month-nav{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}.calendar-month-nav a{color:#1d5fe8;text-decoration:none;font-size:.76rem;font-weight:700;padding:5px 9px;border:1px solid #d7e4fb;border-radius:999px;background:#f7faff}.calendar-month-nav a:hover,.calendar-month-nav a:focus-visible{background:#eaf2ff;border-color:#9fc2f7;text-decoration:underline}.study-calendar{border:1px solid var(--line,#e3e6ed);border-radius:16px;padding:14px;margin:12px 0 22px;background:#fff;scroll-margin-top:18px}.study-calendar-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.study-calendar-head span{color:#667085;font-size:.85rem}.study-calendar-weekdays,.study-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.study-calendar-weekdays span{font-size:.72rem;color:#667085;text-align:center}.study-calendar-cell{min-height:76px;border:1px solid #edf0f4;border-radius:10px;padding:7px;display:flex;flex-direction:column;gap:3px}.study-calendar-cell strong{font-size:.9rem}.study-calendar-cell span{font-size:.7rem;color:#1769aa}.study-calendar-cell small{font-size:.68rem;color:#667085;line-height:1.2}.study-calendar-cell.has-task{background:#f4f8ff;border-color:#c9ddff}.study-calendar-cell.is-complete{background:#eefaf4;border-color:#b8e4cc}.study-calendar-cell.is-today{box-shadow:inset 0 0 0 2px #1769aa}.study-calendar-cell.is-empty{background:#fafafa;border-color:transparent}
.field-hint{display:block;color:#667085;font-size:.72rem;font-weight:500;margin:2px 0 2px}
.plan-specialty-field{grid-column:1/-1}
@media(max-width:640px){
  .calendar-legend{gap:6px 10px;font-size:.7rem}
  .calendar-month-nav{gap:5px}.calendar-month-nav a{font-size:.7rem;padding:4px 7px}
  .study-calendar{padding:10px;border-radius:14px;overflow:hidden}
  .study-calendar-head{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:10px}
  .study-calendar-head span{font-size:.76rem}
  .study-calendar-weekdays,.study-calendar-grid{gap:3px}
  .study-calendar-weekdays span{font-size:.63rem}
  .study-calendar-cell{min-height:64px;padding:5px 4px;border-radius:8px;gap:2px;overflow:hidden}
  .study-calendar-cell strong{font-size:.78rem}
  .study-calendar-cell span{font-size:.58rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .study-calendar-cell small{font-size:.58rem;line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
  .field-hint{margin:0 0 2px;font-size:.68rem}
}
@media(max-width:380px){
  .study-calendar{padding:8px 6px}
  .study-calendar-cell{min-height:58px;padding:4px 3px}
  .study-calendar-cell small{font-size:.54rem}
}
.plan-details{margin:10px 0 14px;border:1px solid #e2e6ed;border-radius:12px;background:#fafbfd;overflow:hidden}.plan-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:12px 14px;color:#344054;font-size:.82rem;font-weight:650}.plan-details summary::-webkit-details-marker{display:none}.plan-details summary::after{content:'+';color:#1769aa;font-size:1.05rem;font-weight:500}.plan-details[open] summary::after{content:'−'}.plan-details summary b{margin-left:auto;color:#667085;font-size:.72rem;font-weight:550;text-align:right}.plan-details>div,.plan-details>p{margin:0;padding:0 14px 13px;color:#667085;font-size:.78rem;line-height:1.45}.plan-details p{padding-top:0}.plan-details small{font-size:.74rem;line-height:1.4}.plan-evidence.is-partial{border-color:#eed18a;background:#fffaf0}.plan-evidence.is-complete{border-color:#b8e4cc;background:#f3fbf6}.plan-evidence.is-partial summary b{color:#8a6300}.plan-evidence.is-complete summary b{color:#08784a}.plan-method{border-color:#d6e2f2;background:#f7faff}.plan-method summary{color:#204a7b}
.plan-capacity-warning{color:#8a3f00!important;font-weight:650}
.plan-editor-body{display:grid;gap:10px}.plan-editor-body label{display:grid;gap:5px;color:#344765;font-size:.76rem;font-weight:650}.plan-editor-body select,.plan-editor-body input{width:100%;min-height:38px;padding:8px 10px;border:1px solid #d7e1ee;border-radius:9px;background:#fff;color:#253858;font:inherit}.plan-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.plan-editor-actions{display:flex;flex-wrap:wrap;gap:8px}.plan-edit-status{min-height:1.2em!important;margin:0!important;padding:0!important;color:#8a3f00!important;font-size:.74rem!important}.plan-edit-action{border:0;background:transparent;color:#1769aa;font-size:.7rem;font-weight:700;cursor:pointer;padding:4px 0}.plan-manual-note{display:block;margin-top:4px;color:#08784a;font-size:.67rem;font-style:normal}.weekly-plan-action{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px}
.calendar-view-switch{display:flex;align-items:center;gap:4px;margin:0 0 10px}.calendar-view-switch>span{color:#667085;font-size:.76rem;margin-right:4px}.calendar-view-switch button{min-height:32px;padding:5px 10px;border:1px solid #dfe4eb;border-radius:999px;background:#fff;color:#52657e;font-size:.75rem;font-weight:650;cursor:pointer}.calendar-view-switch button[aria-pressed="true"]{background:#1769aa;border-color:#1769aa;color:#fff}.calendar-panel{display:none}.calendar-overview[data-calendar-view="day"] .calendar-panel[data-calendar-panel="day"],.calendar-overview[data-calendar-view="week"] .calendar-panel[data-calendar-panel="week"],.calendar-overview[data-calendar-view="month"] .calendar-panel[data-calendar-panel="month"]{display:block}.calendar-day-card,.calendar-week-card{border:1px solid #e2e6ed;border-radius:14px;background:#fff;padding:12px 14px;margin:0 0 10px}.calendar-day-card header,.calendar-week-card header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.calendar-day-card header strong,.calendar-week-card header strong{color:#202b3c;font-size:.84rem}.calendar-day-card header span,.calendar-week-card header span{color:#667085;font-size:.74rem}.calendar-task-list{display:grid;gap:7px}.calendar-task{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #edf0f4}.calendar-task:first-child{border-top:0;padding-top:0}.calendar-task:last-child{padding-bottom:0}.calendar-task>div{min-width:0}.calendar-task strong,.calendar-task b,.calendar-task small{display:block}.calendar-task strong{color:#667085;font-size:.67rem;text-transform:uppercase;letter-spacing:.04em}.calendar-task b{margin-top:2px;color:#102d57;font-size:.82rem;line-height:1.3}.calendar-task small{margin-top:3px;color:#667085;font-size:.7rem;line-height:1.35}.calendar-task.is-complete b{color:#08784a}.calendar-task .row-action{min-height:34px;padding:4px 8px;font-size:.72rem}
@media(max-width:640px){.calendar-view-switch{position:sticky;top:0;z-index:2;padding:6px 0;background:#fff}.calendar-view-switch button{flex:1;min-height:36px}.calendar-view-switch>span{font-size:.7rem}.calendar-day-card,.calendar-week-card{padding:11px 12px;border-radius:12px}.calendar-task{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px 0}.calendar-task b{font-size:.78rem}.calendar-task small{font-size:.66rem}.calendar-task .row-action{min-height:34px;padding-inline:7px}}
.plan-progress-summary{margin:14px 0 20px;padding:18px;border:1px solid #d7e3f3;border-radius:16px;background:linear-gradient(145deg,#f7faff,#fff);box-shadow:0 5px 18px rgba(31,75,130,.05)}.plan-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.plan-progress-head h3{margin:4px 0 0;font-size:1.05rem}.plan-progress-count{flex:0 0 auto;padding:6px 10px;border:1px solid #cfe0f7;border-radius:999px;background:#fff;color:#1d4e8d;font-size:.72rem;font-weight:700}.plan-progress-note{margin:10px 0;color:#52657e;font-size:.8rem;line-height:1.5}.plan-execution{margin:12px 0 16px;padding:12px 14px;border:1px solid #e1e8f2;border-radius:12px;background:#fff}.plan-execution>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.plan-execution strong{font-size:.78rem;color:#344765}.plan-execution span{font-size:.8rem;font-weight:800;color:#1769aa}.plan-execution progress{height:8px;margin-top:8px}.plan-subject-progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.plan-subject-progress{min-width:0;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.plan-subject-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.plan-subject-heading>strong{font-size:.82rem;line-height:1.35;color:#17375f}.plan-level-pill{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#edf4ff;color:#1c579c;font-size:.66rem;font-weight:750;text-transform:capitalize}.plan-subject-progress p{margin:8px 0 0;color:#52657e;font-size:.73rem;line-height:1.4}.plan-subject-progress p b{color:#344765}.plan-trend{display:block;margin-top:8px;color:#667085;font-size:.68rem;line-height:1.4}.plan-trend.is-improving{color:#08784a}.plan-trend.needs-review{color:#a13b20}.plan-trend.is-stable{color:#365b8b}.plan-trend.is-pending{color:#667085}
@media(max-width:640px){.plan-progress-summary{padding:14px;border-radius:14px}.plan-progress-head{display:block}.plan-progress-count{display:inline-block;margin-top:9px}.plan-progress-note{font-size:.76rem}.plan-subject-progress-grid{grid-template-columns:1fr}.plan-execution{padding:10px}.plan-execution strong{font-size:.72rem}}
.calendar-month-nav{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:10px;margin:0 0 12px}.calendar-month-nav strong{text-align:center;color:#17375f;font-size:1rem;text-transform:capitalize}.calendar-month-nav button{width:40px;height:40px;border:1px solid #d7e4fb;border-radius:12px;background:#f7faff;color:#1d5fe8;font-size:1.65rem;line-height:1;cursor:pointer}.calendar-month-nav button:hover:not(:disabled),.calendar-month-nav button:focus-visible{background:#eaf2ff;border-color:#9fc2f7}.calendar-month-nav button:disabled{color:#aab4c2;background:#f7f8fa;border-color:#e5e8ed;cursor:not-allowed}.study-calendar[hidden]{display:none!important}
@media(max-width:640px){.calendar-month-nav{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;margin-bottom:8px}.calendar-month-nav button{width:44px;height:44px}.calendar-month-nav strong{font-size:.95rem}}
@media(min-width:561px){#availability{grid-template-columns:repeat(3,minmax(0,1fr))}#availability>label{min-width:0}#availability input{width:100%;min-width:0}}
@media(max-width:640px){
  .plan-horizon-summary{align-items:flex-start;flex-direction:column;gap:6px;padding:12px 14px}
  .plan-horizon-summary span{line-height:1.45;overflow-wrap:anywhere}
  .plan-week h4{display:block;line-height:1.35}
  .plan-week h4 small{display:block;margin-top:4px;overflow-wrap:anywhere}
  .plan-details summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:8px}
  .plan-details summary b{grid-column:1;grid-row:2;margin:4px 0 0;text-align:left;font-size:.7rem}
  .plan-details summary::after{grid-column:2;grid-row:1}
  .calendar-view-switch{position:static;z-index:auto;padding:0;background:transparent}
  .calendar-view-switch button{min-width:0;min-height:44px;padding-inline:8px}
  .weekly-plan-item{grid-template-columns:40px minmax(0,1fr);align-items:start}
  .weekly-plan-item .plan-check{width:40px;height:40px}
  .weekly-plan-action .row-action{min-height:40px}
  .calendar-task .row-action{min-height:40px}
}

/* Planejamento contextual: exibe só o que entra na prova e transforma o mês em atalho. */
.subject-levels-header{grid-column:1/-1;display:grid;gap:3px;margin:4px 0 2px}.subject-levels-header strong{color:#17375f;font-size:.84rem}.subject-levels-header span{color:#667085;font-size:.72rem;line-height:1.4}
.study-calendar-cell.has-task{color:inherit;text-decoration:none}.study-calendar-cell.has-task:focus-visible{outline:3px solid #8bb8f3;outline-offset:2px}
.plan-editor-body input[aria-invalid="true"]{border-color:#c2410c;background:#fff8f5;box-shadow:0 0 0 3px rgba(194,65,12,.12)}.plan-edit-status{min-height:1.35em!important}
/* Statistics polish: quiet surfaces, clear status cues and compact scanning. */
.stats-summary-card{position:relative;overflow:hidden;min-height:118px;border-color:#e3e7ec;border-radius:18px;box-shadow:0 5px 18px rgba(20,39,67,.045);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.stats-summary-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:#cbd5e1}
.stats-summary-card-0::before{background:#20a36a}.stats-summary-card-1::before{background:#2b6fe8}.stats-summary-card-2::before{background:#6b7f9d}.stats-summary-card-3::before{background:#d58b22}
.stats-summary-card:hover{transform:translateY(-1px);border-color:#d4dce7;box-shadow:0 9px 24px rgba(20,39,67,.08)}
.stats-summary-card>span{font-size:10px;letter-spacing:.045em;text-transform:uppercase;color:#6c7890}
.stats-summary-card strong{font-size:27px;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.stats-summary-card small{font-size:10px;color:#7b8798}
.stats-insights,.stats-next-action,.stats-plan-progress,.stats-subject-section,.stats-confidence{border-color:#e1e6ed;box-shadow:0 5px 18px rgba(20,39,67,.04)}
.stats-insight-card{position:relative;border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.stats-insight-card::before{content:"";display:block;width:8px;height:8px;margin-bottom:9px;border-radius:50%;background:#20a36a;box-shadow:0 0 0 4px rgba(32,163,106,.12)}
.stats-insight-card.is-attention::before{background:#d58b22;box-shadow:0 0 0 4px rgba(213,139,34,.14)}
.stats-insight-card h4{margin-top:0}
.stats-next-action{border-radius:18px;background:linear-gradient(105deg,#f5f9ff,#fff)}
.stats-next-meta>span{border:1px solid #dce7f6;background:#f3f7fd;color:#315f9f}
.stats-subject-section,.stats-confidence{background:rgba(255,255,255,.9)}
@media(max-width:560px){.stats-summary-card{min-height:106px;border-radius:15px}.stats-summary-card strong{font-size:22px}.stats-insight-card{padding:14px}.stats-next-action{border-radius:16px}}
.stats-insights{margin-top:16px;padding:18px 20px;border:1px solid #d9e5f5;border-radius:17px;background:#fff}.stats-insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stats-insight-card{padding:15px 16px;border:1px solid #dce7f4}.stats-insight-card.is-good{background:#f1fbf6;border-color:#c9ead8}.stats-insight-card.is-attention{background:#fff8ed;border-color:#f1d39a}.stats-insight-label{display:block;font-size:10px;font-weight:800;letter-spacing:.12em}.is-good .stats-insight-label{color:#08784a}.is-attention .stats-insight-label{color:#a05b00}.stats-insight-card h4{margin:4px 0 9px;font-size:14px;color:#17375f}.stats-insight-card ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.stats-insight-card li{display:grid;gap:2px;padding-bottom:8px;border-bottom:1px solid rgba(120,145,175,.2)}.stats-insight-card li:last-child{padding-bottom:0;border-bottom:0}.stats-insight-card li strong{font-size:12px;color:#183b69}.stats-insight-card li span,.stats-insight-empty{color:#52657e;font-size:11px;line-height:1.45}.stats-insight-empty{margin:0}.stats-insight-note{margin:11px 0 0;color:#52657e;font-size:11px;line-height:1.5}
@media(max-width:850px){.stats-insight-grid{grid-template-columns:1fr}}@media(max-width:560px){.stats-insights{padding:15px 14px}}
.plan-setup-callout{display:flex;align-items:flex-start;gap:10px;margin:16px 0 2px;padding:12px 14px;border:1px solid #f0d7a4;border-radius:13px;background:#fffaf0;color:#664d1d}.plan-setup-callout::before{content:"!";display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:#e4a62b;color:#fff;font-size:12px;font-weight:800}.plan-setup-callout strong,.plan-setup-callout span{display:block}.plan-setup-callout strong{font-size:12px;color:#795515}.plan-setup-callout span{margin-top:2px;color:#806b43;font-size:11px;line-height:1.45}.plan-setup-callout.is-ready{border-color:#c8e8d5;background:#f2fbf6}.plan-setup-callout.is-ready::before{content:"✓";background:#1f9d68}.plan-setup-callout.is-ready strong{color:#176b49}.plan-setup-callout.is-ready span{color:#4d7563}.timer-status-row[hidden]{display:none!important}
/* Timer-to-plan handoff */
.timer-plan-action{background:#eef5ff;border-radius:8px;padding-inline:8px!important}
.timer-plan-context{padding:12px 14px;border:1px solid #cfe0f5;border-radius:12px;background:#f5f9ff;color:#344b6a;font-size:13px;line-height:1.45;margin:0 0 16px}
.timer-plan-context strong{color:#123c73}
/* Intelligent review: make today's action distinct from the spaced-retention queue. */
.review-performance{display:block;color:#52657e;font-size:10px;font-style:normal;line-height:1.4}.review-performance.is-high{color:#b42318}.review-performance.is-attention{color:#a05b00}.review-performance.is-maintenance{color:#08784a}
@media(max-width:560px){.review-summary-strip{gap:7px}.review-summary-strip article{padding:11px 9px}.review-summary-strip strong{font-size:21px}.review-summary-strip span{font-size:10px}.review-section{padding:15px 14px;border-radius:15px}.review-row{align-items:flex-start;gap:8px}.review-row time{font-size:10px}.review-next-plan{align-items:flex-start;flex-direction:column;padding:14px}.review-next-plan .text-action{padding-left:0}}

/* Intelligent review surface: clear priority, quiet spacing, and a single obvious next action. */
#tool-view{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 2px 8px #00000004}
.review-intro{padding:2px 0 22px;border-bottom:1px solid var(--line);max-width:760px}
.review-intro h2{margin:8px 0 8px;font-size:clamp(26px,3vw,36px);line-height:1.14}
.review-intro p{max-width:70ch;margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.review-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 16px}
.review-summary-strip article{position:relative;display:grid;align-content:center;gap:3px;min-height:88px;padding:16px 18px;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px #00000007}
.review-summary-strip article::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:#b9c3d0}
.review-summary-strip article.is-due::before{background:#c95b56}.review-summary-strip article.is-upcoming::before{background:#3d7bd9}.review-summary-strip article.is-total::before{background:#8b96a8}
.review-summary-strip strong{font-size:26px;line-height:1.05;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--navy)}
.review-summary-strip .is-due strong{color:#a53e39}.review-summary-strip span{font-size:11px;color:var(--muted);line-height:1.35}
.review-section{margin:14px 0;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(20,39,67,.045)}
.review-section.is-due{border-color:#d7e4f5;box-shadow:0 8px 24px rgba(23,101,216,.075)}
.review-section.is-upcoming{background:#fbfbfc}
.review-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.review-section h3{margin:6px 0 0;font-size:20px;line-height:1.2}
.review-count{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:999px;background:#f1f4f8;color:var(--navy);font-size:14px;font-weight:650;font-variant-numeric:tabular-nums}
.review-section.is-due .review-count{background:#fff0ef;color:#a53e39}.review-section .subtle{margin:10px 0 2px}
.review-row{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:14px 0 13px 15px;border-top:1px solid #ededf0}
.review-row::before{content:"";position:absolute;left:0;top:20px;width:7px;height:7px;border-radius:50%;background:#91a1b7}
.review-row.is-due::before{background:#c95b56;box-shadow:0 0 0 4px #c95b561c}.review-row.is-upcoming::before{background:#3d7bd9;box-shadow:0 0 0 4px #3d7bd91a}
.review-row>div{min-width:0;flex:1}.review-row strong{display:block;color:var(--navy);font-size:14px;line-height:1.4}.review-row small{display:block;margin-top:2px;color:var(--muted);font-size:11px}.review-row>div>span{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.45}.review-row time{flex:0 0 auto;padding-top:1px;color:var(--muted);font-size:11px;line-height:1.35;white-space:nowrap}
.review-section>.btn.blue{width:100%;min-height:48px;margin-top:14px;border-radius:12px}
.review-next-plan{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;padding:18px 20px;border:1px solid #d6e6fa;border-radius:16px;background:#eef5ff}
.review-next-plan h3{margin:5px 0 4px;font-size:18px}.review-next-plan p{margin:0;color:#526d93;font-size:13px;line-height:1.5}.review-next-plan .text-action{flex:0 0 auto;white-space:nowrap}
@media(max-width:560px){#tool-view{padding:20px 16px;border-radius:18px}.review-intro{padding-bottom:18px}.review-intro h2{font-size:28px}.review-summary-strip{gap:8px;margin:18px 0 12px}.review-summary-strip article{min-height:78px;padding:13px 10px;border-radius:12px}.review-summary-strip strong{font-size:21px}.review-summary-strip span{font-size:10px}.review-section{padding:16px 14px;border-radius:15px}.review-section h3{font-size:18px}.review-row{display:grid;gap:5px;padding:13px 0 12px 14px}.review-row time{font-size:10px}.review-next-plan{align-items:flex-start;flex-direction:column;padding:15px}.review-next-plan .text-action{padding-left:0}}

/* Challenges: gamification tied to real study behavior, not vanity points. */
.challenges-intro{padding:2px 0 22px;border-bottom:1px solid var(--line);max-width:760px}
.challenges-intro h2{margin:8px 0;font-size:clamp(26px,3vw,36px);line-height:1.14}
.challenges-intro p{max-width:70ch;margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.challenge-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0 14px;padding:20px 22px;border:1px solid #d7e4f5;border-radius:18px;background:linear-gradient(105deg,#edf5ff,#fff);box-shadow:0 8px 24px rgba(23,101,216,.075)}
.challenge-hero h3{margin:6px 0 5px;font-size:20px}.challenge-hero p{margin:0;color:#526d93;font-size:13px;line-height:1.5}
.challenge-score{display:grid;place-items:center;min-width:82px;height:82px;border-radius:50%;background:#fff;border:6px solid #dceafe;box-shadow:0 0 0 1px #c7dcfb}.challenge-score strong{font-size:28px;line-height:1;color:var(--blue)}.challenge-score span{color:var(--muted);font-size:10px}
.challenge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.challenge-card{padding:16px 17px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 4px 15px rgba(20,39,67,.035)}.challenge-card.is-complete{border-color:#b8e4cc;background:#f4fbf7}.challenge-card-head{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:10px}.challenge-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;font-weight:800}.challenge-icon.blue{background:#edf4ff;color:#2563eb}.challenge-icon.green{background:#eaf9f1;color:#08784a}.challenge-icon.purple{background:#f3efff;color:#7654c7}.challenge-icon.orange{background:#fff3e2;color:#a05b00}.challenge-card h3{margin:0;color:var(--navy);font-size:14px}.challenge-card p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.challenge-card-head>strong{color:var(--blue);font-size:15px}.challenge-card.is-complete .challenge-card-head>strong{color:#08784a}.challenge-card progress{height:7px;margin:15px 0 8px}.challenge-card-foot{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.challenge-card-foot span:first-child{color:var(--navy);font-weight:700}
.achievement-section{margin:14px 0;padding:18px 20px;border:1px solid var(--line);border-radius:17px;background:#fff}.achievement-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.achievement-head h3{margin:6px 0 0;color:var(--navy);font-size:18px}.achievement-head>span{color:var(--muted);font-size:11px;white-space:nowrap}.achievement-note{margin:7px 0 14px;color:var(--muted);font-size:11px;line-height:1.45}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.achievement-card{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;padding:11px;border:1px solid #e2e8f0;border-radius:12px;background:#fbfcfe}.achievement-card.is-complete{border-color:#b8e4cc;background:#f4fbf7}.achievement-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;font-size:14px;font-weight:800}.achievement-icon.blue{background:#edf4ff;color:#2563eb}.achievement-icon.green{background:#eaf9f1;color:#08784a}.achievement-icon.purple{background:#f3efff;color:#7654c7}.achievement-icon.orange{background:#fff3e2;color:#a05b00}.achievement-card strong{display:block;color:var(--navy);font-size:12px}.achievement-card p{margin:3px 0 7px;color:var(--muted);font-size:10px;line-height:1.35}.achievement-card progress{height:5px;margin:0 0 3px}.achievement-card small{color:var(--muted);font-size:9px;font-variant-numeric:tabular-nums}.achievement-card.is-complete small{color:#08784a;font-weight:700}
.challenge-rules{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:20px;margin:14px 0;padding:18px 20px;border:1px solid var(--line);border-radius:17px;background:#fbfbfc}.challenge-rules h3{margin:6px 0 0;font-size:18px}.challenge-rules ul{display:grid;gap:7px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:12px;line-height:1.5}.challenge-rules li{padding-left:14px;position:relative}.challenge-rules li::before{content:'•';position:absolute;left:0;color:var(--blue);font-weight:800}.challenge-rules strong{color:var(--navy)}
.challenge-next{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0;padding:20px 22px;border:1px solid #cfe0f5;border-radius:18px;background:linear-gradient(110deg,#f2f7ff,#fff);box-shadow:0 6px 20px rgba(23,101,216,.06)}.challenge-next.is-empty{align-items:flex-start}.challenge-next-copy{min-width:0;flex:1}.challenge-next h3{margin:6px 0 5px;color:var(--navy);font-size:19px;line-height:1.25}.challenge-next p{margin:0;color:#526d93;font-size:12px;line-height:1.5}.challenge-next-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.challenge-next-actions .btn{min-height:42px}.challenge-level{flex:0 0 190px;display:grid;gap:5px;padding:14px;border:1px solid #dce7f4;border-radius:14px;background:#fff}.challenge-level strong{color:var(--blue);font-size:20px}.challenge-level span{color:var(--muted);font-size:10px;line-height:1.35}.challenge-level progress{height:7px;margin-top:4px}

.challenge-level{position:relative}.challenge-rank-insignia{position:absolute;right:12px;top:11px;width:44px;height:44px;object-fit:contain}
.challenge-goal-form{display:grid;grid-template-columns:minmax(0,1fr) 170px auto auto;align-items:end;gap:10px;margin:14px 0 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.challenge-goal-form>div{display:grid;gap:3px}.challenge-goal-form label{font-size:13px;font-weight:700;color:var(--navy)}.challenge-goal-form span{font-size:11px;color:var(--muted)}.challenge-goal-form input{min-height:46px;border:1px solid #c8c8d0;border-radius:10px;padding:10px 12px;font:inherit}.challenge-goal-form .btn{min-height:46px;white-space:nowrap}
@media(max-width:850px){.challenge-goal-form{grid-template-columns:1fr 1fr}.challenge-goal-form>div{grid-column:1/-1}.challenge-goal-form .btn{width:100%}.challenge-rules{grid-template-columns:1fr}.challenge-grid{grid-template-columns:1fr}}
@media(max-width:850px){.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.challenge-hero{align-items:flex-start;padding:17px 15px}.challenge-score{min-width:68px;width:68px;height:68px;border-width:5px}.challenge-score strong{font-size:23px}.challenge-grid{gap:9px}.challenge-card{padding:14px 13px;border-radius:14px}.challenge-card h3{font-size:13px}.challenge-next{align-items:flex-start;flex-direction:column;padding:16px 14px;border-radius:15px}.challenge-next h3{font-size:17px}.challenge-next-actions{display:grid;grid-template-columns:1fr;width:100%}.challenge-next-actions .btn{width:100%}.challenge-level{width:100%;flex-basis:auto}.challenge-next.is-empty>.btn{width:100%}.challenge-rules{padding:16px 14px;border-radius:15px}.challenge-goal-form{grid-template-columns:1fr;padding:14px}.challenge-goal-form>div{grid-column:auto}}
@media(max-width:560px){.achievement-section{padding:16px 14px;border-radius:15px}.achievement-grid{grid-template-columns:1fr}.achievement-head{align-items:flex-start;flex-direction:column;gap:4px}.achievement-head h3{font-size:16px}}

/* Final challenge hierarchy: the recommended action is prominent without becoming a full-width banner. */
.challenge-next-actions .btn.blue{width:auto}.challenge-next-actions .btn.ghost{border:1px solid #cbd9eb;background:#fff;color:#315f9f}.challenge-card{transition:border-color .16s ease,box-shadow .16s ease}.challenge-card:hover{border-color:#c3d8f5;box-shadow:0 7px 18px rgba(20,39,67,.07)}
@media(max-width:560px){.challenge-next-actions .btn.blue{width:100%}}
.challenge-card-foot{align-items:center}.challenge-status{margin-left:auto;color:#7b8798;font-size:10px;font-weight:700}.challenge-card.is-started .challenge-status{color:#315f9f}.challenge-card.is-complete .challenge-status{color:#08784a}
.challenge-rank-label{display:block;color:#71829a;font-size:9px;font-weight:800;letter-spacing:.12em}.rank-panel-blue strong{color:#2563eb}.rank-panel-green strong{color:#08784a}.rank-panel-purple strong{color:#7654c7}.rank-panel-orange strong{color:#a05b00}
/* Challenge page polish: reserve a stable status slot and reduce visual displacement while data loads. */
.ia-main>#app-status{display:inline-flex;align-items:center;min-height:18px;max-width:100%;margin:0 0 10px;padding:3px 8px;border:1px solid transparent;border-radius:999px;color:#71829a;font-size:10px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ia-main>#app-status:not(:empty){background:#f5f8fc;border-color:#e1e8f2}.ia-main>#app-status:empty{display:block;visibility:hidden}
.challenge-rules{gap:16px;padding-block:15px}.challenge-rules ul{gap:5px}.challenge-rules li{line-height:1.4}
@media(min-width:851px){.challenge-grid{gap:10px}.challenge-card{padding:14px 15px}.challenges-intro{padding-bottom:18px}}
@media(max-width:560px){.ia-main>#app-status{max-width:calc(100vw - 34px);margin-bottom:8px;font-size:9px}.challenge-rules ul{font-size:11px}.challenge-rules li{padding-left:12px}.challenge-card-foot{gap:6px;font-size:10px}.challenge-status{font-size:9px}}

/* Long-term preparation cycle: keep the next objective tied to learning evidence, not endless points. */
.retention-panel{margin:14px 0;padding:18px 20px;border:1px solid #d8e5f5;border-radius:17px;background:linear-gradient(110deg,#f8fbff,#fff);box-shadow:0 7px 22px rgba(34,85,152,.05)}
.retention-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.retention-panel-head h3{margin:5px 0 4px;color:var(--navy);font-size:18px}.retention-panel-head p{margin:0;max-width:680px;color:var(--muted);font-size:11px;line-height:1.5}.retention-horizon{padding:6px 9px;border-radius:999px;background:#edf4ff;color:#315f9f;font-size:10px;font-weight:750;white-space:nowrap}
.retention-progress{margin-top:15px;padding-top:13px;border-top:1px solid #e1eaf5}.retention-progress>div{display:flex;align-items:baseline;gap:5px}.retention-progress strong{color:#123e85;font-size:22px}.retention-progress span{color:var(--muted);font-size:11px}.retention-progress b{margin-left:auto;color:#2563eb;font-size:12px}.retention-progress progress{height:8px;margin:8px 0 5px}.retention-progress small{color:#71829a;font-size:10px;line-height:1.35}
.monthly-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.monthly-progress>div{display:flex;flex-direction:column;gap:3px;padding:10px 11px;border-radius:11px;background:#f4f8fd;border:1px solid #e5edf7}.monthly-progress span{color:#71829a;font-size:10px}.monthly-progress strong{color:#17375f;font-size:16px;line-height:1.1}
.return-mission{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:15px 18px;border:1px solid #f0d38c;border-radius:15px;background:#fffaf0}.return-mission h3{margin:4px 0 3px;color:#6d4a00;font-size:16px}.return-mission p{margin:0;color:#7b5c22;font-size:11px;line-height:1.45}.return-mission .btn{width:auto;min-width:130px;background:#fff;color:#6d4a00;border-color:#d5a94a;white-space:nowrap}
@media(max-width:700px){.retention-panel-head{display:grid;gap:8px}.retention-horizon{justify-self:start}.monthly-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.return-mission{align-items:flex-start;flex-direction:column}.return-mission .btn{width:100%}}
@media(max-width:560px){.retention-panel{padding:16px 14px;border-radius:15px}.retention-panel-head h3{font-size:16px}.monthly-progress{gap:6px}.monthly-progress>div{padding:9px}.return-mission{padding:14px;border-radius:14px}}

/* Monthly calendar: the grid signals activity; the selected-day card carries the full task. */
button.study-calendar-cell{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}.study-calendar-cell.is-selected{border-color:#1769aa;background:#edf4ff;box-shadow:inset 0 0 0 2px #1769aa}.calendar-cell-count{display:inline-flex;align-items:center;gap:4px;width:max-content;color:#1769aa;font-weight:750}.calendar-cell-count i{width:6px;height:6px;border-radius:50%;background:currentColor}.study-calendar-cell.is-complete .calendar-cell-count{color:#08784a}.calendar-month-detail{margin-top:12px;padding:12px 14px;border:1px solid #d7e4f5;border-radius:14px;background:linear-gradient(145deg,#f7faff,#fff)}.calendar-month-detail-kicker{display:block;margin-bottom:7px;color:#52657e;font-size:10px;font-weight:750;letter-spacing:.07em}.calendar-month-detail .calendar-day-card{margin:0;padding:0;border:0;border-radius:0;background:transparent}.calendar-month-detail .calendar-task{padding:10px 0}.calendar-month-detail .calendar-task:last-child{padding-bottom:0}
@media(max-width:640px){.study-calendar-grid{gap:3px}.study-calendar-cell{min-height:58px;align-items:flex-start;padding:6px 5px}.study-calendar-cell strong{font-size:.8rem;line-height:1}.study-calendar-cell.has-task small{display:none}.calendar-cell-count{margin-top:auto;min-width:18px;justify-content:center;padding:2px 4px;border-radius:999px;background:#dfeefe;font-size:10px;line-height:1}.study-calendar-cell.is-complete .calendar-cell-count{background:#dcf5e6}.calendar-month-detail{margin-top:10px;padding:12px;border-radius:13px}.calendar-month-detail .calendar-day-card header{align-items:flex-start;flex-direction:column;gap:2px}.calendar-month-detail .calendar-task b{font-size:.88rem}.calendar-month-detail .calendar-task small{font-size:.72rem;line-height:1.4}.calendar-month-detail .calendar-task .row-action{min-height:40px;padding-inline:10px}}

/* Ranking: transparent scoring and honest identity boundaries. */
.ranking-intro{padding:2px 0 22px;border-bottom:1px solid var(--line);max-width:760px}.ranking-intro h2{margin:8px 0;font-size:clamp(26px,3vw,36px);line-height:1.14}.ranking-intro p{max-width:70ch;margin:0;color:var(--muted);font-size:14px;line-height:1.6}.ranking-tabs{display:flex;gap:6px;margin:20px 0 14px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f5f7fa;width:max-content}.ranking-tab{border:0;border-radius:9px;padding:9px 15px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.ranking-tab.is-active{background:#fff;color:var(--navy);box-shadow:0 2px 7px #00000010}.ranking-panel{padding:20px;border:1px solid #d7e4f5;border-radius:18px;background:linear-gradient(105deg,#f1f7ff,#fff);box-shadow:0 8px 24px rgba(23,101,216,.055)}.ranking-panel[hidden]{display:none}.ranking-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.ranking-panel h3{margin:6px 0 0;font-size:21px}.ranking-total-score{color:var(--blue);font-size:28px;letter-spacing:-.04em}.ranking-total-score small{font-size:11px;letter-spacing:0;color:var(--muted);font-weight:600}.ranking-position-card{display:flex;align-items:center;gap:12px;margin:18px 0 12px;padding:14px;border:1px solid #dce7f4;border-radius:14px;background:#fff}.ranking-position-card>div{min-width:0;flex:1}.ranking-position-card strong{display:block;color:var(--navy);font-size:13px}.ranking-position-card p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.ranking-medal{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf4ff;color:var(--blue);font-size:19px;font-weight:800}.ranking-position-muted{color:var(--muted);font-size:10px;white-space:nowrap}.ranking-breakdown{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.ranking-breakdown-row{display:grid;gap:4px;padding:11px 10px;border:1px solid #e1e7ef;border-radius:11px;background:#fff}.ranking-breakdown-row span{color:var(--muted);font-size:10px;line-height:1.3}.ranking-breakdown-row strong{color:var(--navy);font-size:18px;font-variant-numeric:tabular-nums}.ranking-fairness{margin-top:14px;padding:18px 20px;border:1px solid var(--line);border-radius:17px;background:#fbfbfc}.ranking-fairness h3{margin:6px 0 5px;font-size:18px}.ranking-fairness p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}@media(max-width:850px){.ranking-breakdown{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.ranking-tabs{width:100%}.ranking-tab{flex:1}.ranking-panel{padding:16px 14px;border-radius:15px}.ranking-panel-head{align-items:flex-start}.ranking-panel h3{font-size:18px}.ranking-total-score{font-size:24px}.ranking-position-card{align-items:flex-start;flex-wrap:wrap}.ranking-position-muted{width:100%;padding-left:46px}.ranking-breakdown{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ranking-fairness{padding:16px 14px;border-radius:15px}}
