/* The existing student directory: roster, profile tabs and six-step deep links. */
.miniapp-phone:has(.tw-directory-shell){position:relative}
.miniapp-phone:has(.tw-student-list-screen)>.miniapp-nav{position:absolute;right:0;top:0;width:94px;height:48px;min-height:48px;background:transparent;border:0;z-index:25}
.miniapp-phone:has(.tw-student-list-screen)>.miniapp-nav>b{display:none}
.miniapp-phone:has(.tw-student-list-screen) .miniapp-capsule{right:9px;top:10px;background:#ff9ca48f;border-color:#ffadb5;color:#5b2530}
.miniapp-phone:has(.tw-student-details-page)>.miniapp-nav{background:#ffc5bc;border-bottom:1px solid #f6b6ad;color:#303235}
.miniapp-phone:has(.tw-student-details-page) .miniapp-capsule{background:#ffd9d1;border-color:#ffd9d1;color:#563833}
.tw-directory-shell.tw-workbench{background:#f5f5f7;color:#34383f;font-size:14px}
.tw-directory-shell .tw-mini-content:has(>.tw-student-list-screen),.tw-directory-shell .tw-mini-content:has(>.tw-student-details-page){padding:0}
.tw-directory-shell .tw-student-panel{border:0;background:transparent;overflow:visible}
.tw-directory-types{position:sticky;top:0;z-index:22;display:flex;align-items:center;gap:13px;height:48px;min-height:48px;padding:0 101px 0 13px;background:#ff4352}
.tw-directory-types>button{position:relative;flex-shrink:0;min-height:48px;border:0;background:none;color:#ffdbe0;padding:0;font:inherit;font-size:13px;white-space:nowrap}
.tw-directory-types>button.active{color:#fff;font-size:16px;font-weight:750}
.tw-directory-types>button.active::after{content:'';position:absolute;bottom:5px;width:16px;height:3px;background:white;border-radius:0 0 6px 6px;left:calc(50% - 8px)}
.tw-directory-tools{position:sticky;top:48px;z-index:21;background:#fff;border-bottom:1px solid #eeeef1}
.tw-directory-dates{display:flex;align-items:center;justify-content:space-around;min-height:45px;border-bottom:1px solid #f5f5f6}
.tw-directory-dates>button{min-height:45px;padding:6px 8px;background:none;border:0;color:#737a83;font:inherit;font-size:14px}
.tw-directory-dates>button.active{color:#363a40;font-weight:750}
.tw-directory-search-row{display:flex;align-items:center;gap:6px;padding:7px 9px 11px}
.tw-directory-shell .tw-directory-search-row .tw-search{height:38px;flex:1;min-width:0;gap:6px;padding:0 10px;background:#fff;border:1px solid #d9dbdf;border-radius:4px;box-shadow:none}
.tw-directory-shell .tw-directory-search-row .tw-search input{font-size:14px;color:#424952;min-width:0}
.tw-directory-shell .tw-directory-search-row .tw-search input::placeholder{color:#989da3}
.tw-directory-shell .tw-directory-search-row .tw-search>span{font-size:25px;line-height:1;color:#9ba2a8}
.tw-directory-filter-toggle{display:grid;place-items:center;width:33px;min-height:40px;padding:5px;border:0;background:none;color:#3b424a;flex-shrink:0}
.tw-directory-filter-toggle.active{color:#f34755;background:#fff0f2;border-radius:5px}
.tw-directory-filter-panel{padding:8px 12px 13px;border-top:1px solid #f0f0f2;background:#fff}
.tw-directory-filter-panel>strong{font-size:13px;color:#606771;font-weight:500}
.tw-directory-shell .tw-directory-filter-panel .tw-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:9px 0}
.tw-directory-shell .tw-directory-filter-panel .tw-filters>button{min-height:40px;padding:8px 4px;border-radius:5px;background:#f3f4f6;color:#747c87;font-size:13px;box-shadow:none}
.tw-directory-shell .tw-directory-filter-panel .tw-filters>button.active{color:#e33f4d;background:#fff0f2;border:1px solid #ffc7cd}
.tw-directory-reset{border:0;background:none;color:#9a6268;font:inherit;font-size:12px;padding:7px 0;min-height:36px}
.tw-directory-count{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px 7px;color:#8a9098;font-size:11px}
.tw-directory-count>b,.tw-directory-count b{font-weight:600;color:#67727e}
.tw-directory-shell .tw-student-table{padding:0 7px;gap:10px;background:none;border:0;overflow:visible}
.tw-directory-card{border:1px solid #f0f0f2;background:white;border-radius:5px;padding:12px 10px 0;box-shadow:0 2px 6px #303c4b03;min-width:0}
.tw-directory-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:7px}
.tw-directory-shell .tw-directory-card .tw-student-row{display:flex;align-items:center;gap:10px;flex:1;min-width:0;width:auto;min-height:53px;padding:0;margin:0;border:0!important;border-radius:0;background:transparent;box-shadow:none;overflow:visible;text-align:left}
.tw-directory-shell .tw-directory-card .tw-student-row:hover{background:none}
.tw-directory-avatar{position:relative;display:inline-flex;flex-shrink:0;padding-top:4px}
.tw-directory-shell .tw-directory-avatar .tw-avatar{display:grid;place-items:center;width:39px;height:40px;border-radius:50%;background:#fff1df;color:#af773f;font-size:19px;line-height:1}
.tw-directory-avatar>small{position:absolute;left:-4px;top:-1px;font-size:9px;font-weight:600;line-height:1.3;color:#fff;background:#ffbf55;padding:0 4px;border-radius:4px;white-space:nowrap}
.tw-directory-person{min-width:0;display:flex;flex-direction:column;gap:3px}
.tw-directory-person>strong{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:16px;font-weight:700;line-height:1.5;color:#2e333a}
.tw-directory-person>strong>em{color:#8d949e;font-size:12px;font-weight:400;font-style:normal}
.tw-directory-person>strong>small{color:#9aa0a8;font-size:10px;font-weight:400}
.tw-directory-phone{font-size:14px;line-height:1.4;color:#69747e;letter-spacing:.2px}
.tw-directory-follow{display:flex;align-items:center;gap:3px;flex-shrink:0;min-height:43px;padding:4px 0 4px 5px;background:none;border:0;color:#30373f;font:inherit;font-size:12px}
.tw-directory-meta{margin:8px 0 6px;padding-left:2px}
.tw-directory-meta p{display:flex;align-items:center;gap:3px;margin:2px 0;color:#77818a;font-size:12px;line-height:1.7;flex-wrap:wrap}
.tw-directory-meta i{width:3px;height:3px;flex-shrink:0;border-radius:50%;background:#fd8592;margin-right:2px}
.tw-directory-meta p+ p i{background:#6bbaa3}
.tw-directory-meta small{font-size:10px;color:#a4a9b0}
.tw-directory-learning{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #f4f4f5;padding:7px 0;color:#747d88;font-size:12px;line-height:1.6}
.tw-directory-shell .tw-directory-learning .tw-pill{font-size:10px;padding:2px 5px;border-radius:4px;font-weight:400}
.tw-directory-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 -3px 7px}
.tw-directory-card-actions>button{min-height:35px;border:0;border-radius:3px;background:#f4f5f6;color:#7c8791;font:inherit;font-size:12px;font-weight:500}
.tw-directory-card-actions>button:active{background:#ffeef0;color:#d84552}
.tw-directory-shell .tw-list-foot{padding:15px 14px 20px;text-align:center;color:#969da6;font-size:11px;line-height:1.8}
.tw-directory-shell .tw-empty-list{border:0;border-radius:6px;background:#fff;min-height:220px;margin:0 5px;font-size:16px;color:#69737f;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}
.tw-directory-shell .tw-empty-list small{font-size:13px;color:#9ba2ab}

/* Four existing destinations, each with a working screen. */
.tw-directory-shell .tw-mini-tabbar{grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border-top:1px solid #eeeef1;box-shadow:0 -2px 8px #313b4b04;min-height:65px}
.tw-directory-shell .tw-mini-tabbar>button{min-height:64px;padding:7px 3px 8px;color:#8c8b87;gap:4px}
.tw-directory-shell .tw-mini-tabbar>button>svg{width:22px;height:22px}
.tw-directory-shell .tw-mini-tabbar>button>span{font-size:12px;font-weight:400}
.tw-directory-shell .tw-mini-tabbar>button.active{color:#ff4a5b}
.tw-directory-shell .tw-mini-tabbar>button.active>span{font-weight:500}
.tw-directory-shell .tw-mini-tabbar>button.active::before{display:none}
.tw-directory-shell .tw-mini-tabbar>button>b{background:#ff8d78;color:#fff;width:17px;min-width:17px;height:17px;top:3px;left:calc(50% + 7px);font-size:10px}
.tw-directory-utility{min-height:100%;padding:8px 0 20px}
.tw-directory-utility>header{padding:21px 16px;background:#fff0ee;border:1px solid #ffded8;border-radius:12px;margin-bottom:17px}
.tw-directory-utility>header>span{font-size:12px;color:#bb7b72}
.tw-directory-utility>header h1{font-size:24px;margin:6px 0;color:#4e4141}
.tw-directory-utility>header p{font-size:13px;color:#8b8181;margin:0}
.tw-directory-menu{display:grid;gap:10px}
.tw-directory-menu>button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-height:84px;padding:17px 34px 17px 16px;border:1px solid #eaecef;border-radius:10px;background:#fff;text-align:left;font:inherit}
.tw-directory-menu b{font-size:16px;color:#46505c;font-weight:600}
.tw-directory-menu span{font-size:13px;color:#8c949e;line-height:1.6}
.tw-directory-menu i{position:absolute;right:15px;top:25px;color:#b3b9c0;font-size:24px;font-style:normal}
.tw-directory-utility-note{font-size:12px;color:#929aa4;line-height:1.8;padding:7px 3px}
.tw-follow-profile{font-size:13px;color:#9297a0;margin-bottom:13px}
.tw-follow-editor{display:flex;flex-direction:column;gap:9px;font-size:14px;color:#535d6b}
.tw-follow-editor textarea{width:100%;box-sizing:border-box;border:1px solid #e0e5ec;border-radius:9px;padding:12px;font:inherit;font-size:14px;line-height:1.85;min-height:200px;resize:vertical;color:#37455c;background:#fafbfe}
.tw-follow-hint{font-size:12px;color:#929ba6;line-height:1.8;margin-top:10px}

/* The original profile tabs stay distinct from the six-step learning module. */
.tw-directory-shell .tw-directory-detail-back{position:absolute;left:7px;top:0;z-index:27;width:42px;height:48px;border:0;background:none;font-size:31px;line-height:1;color:#57514e;font-family:Arial,sans-serif}
.tw-directory-profile{background:white;border-bottom:1px solid #f0f1f3;padding:13px 12px 12px}
.tw-directory-profile-main{display:flex;align-items:center;gap:10px}
.tw-directory-profile-main>div{min-width:0}
.tw-directory-profile h2{font-size:16px;line-height:1.65;margin:0;color:#3f444b;font-weight:700;overflow-wrap:anywhere}
.tw-directory-profile h2 small{font-size:12px;font-weight:400;color:#818994;white-space:nowrap}
.tw-directory-profile-main p{font-size:12px;color:#888f99;margin:3px 0 0;line-height:1.7}
.tw-directory-profile-main p>span{color:#d8dbdf;margin:0 5px}
.tw-directory-profile-main em{font-style:normal;font-size:10px;color:#a7adb5;margin-left:4px}
.tw-directory-school{font-size:12px;color:#737d88;margin:12px 0 0;line-height:1.7}
.tw-directory-school>span{margin:0 6px;color:#d5d9de}
.tw-directory-profile-demo{display:block;margin-top:6px;font-size:10px;color:#aeb4bc}
.tw-directory-profile.tw-directory-profile-compact{padding:10px 12px}
.tw-directory-profile-compact h2{line-height:1.4}
.tw-directory-profile-compact h2 small{font-size:12px;color:#75808e}
.tw-directory-profile-compact .tw-directory-profile-main p{margin-top:3px;color:#738091}
.tw-directory-profile-compact .tw-directory-profile-main em{font-size:11px;color:#7e8898}
.tw-directory-detail-tabs{position:sticky;top:0;z-index:15;display:flex;align-items:stretch;gap:18px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;padding:0 12px;background:#fff;border-bottom:1px solid #eeeef1}
.tw-directory-detail-tabs::-webkit-scrollbar{display:none}
.tw-directory-detail-tabs>button{position:relative;flex-shrink:0;min-height:48px;padding:10px 0;background:none;border:0;color:#8a9099;font:inherit;font-size:12px}
.tw-directory-detail-tabs>button.active{font-weight:700;color:#3b4048}
.tw-directory-detail-tabs>button.active::after{content:'';position:absolute;left:12%;right:12%;bottom:0;height:3px;background:#ff6c78;border-radius:3px}
.tw-directory-detail-tabs>[data-tab="sixstep"]{font-size:14px;color:#e85764;font-weight:650}
.tw-directory-detail-body{padding:12px 10px 18px}
.tw-school-goals{border:1px solid #ffe7e6;background:linear-gradient(180deg,#ffe9e8,#fff 72%);border-radius:13px;padding:17px 13px 15px;margin-bottom:13px}
.tw-school-goals>h2{font-size:17px;color:#4e4545;margin:0 0 16px}
.tw-school-goals>h2 span{color:#ff7d79;font-size:23px;margin-right:5px}
.tw-school-targets{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.tw-school-targets>div{display:flex;flex-direction:column;gap:10px;background:#ffe3d8;border-radius:11px;padding:15px 12px;min-height:79px}
.tw-school-targets>div+div{background:#ffdbe2}
.tw-school-targets span{font-size:13px;color:#957b73}
.tw-school-targets b{font-size:17px;color:#bd8a7d;font-weight:500}
.tw-school-targets>div+div b{color:#b97988}
.tw-school-subjects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 10px;text-align:center;background:#fff;border-radius:9px;padding:17px 12px}
.tw-school-subjects>div{display:flex;flex-direction:column;gap:3px}
.tw-school-subjects b{font-size:19px;font-weight:400;color:#b7b9bf}
.tw-school-subjects span{font-size:12px;color:#92969e}
.tw-school-grades{background:#fff;border:1px solid #f0f1f4;border-radius:9px;padding:16px 12px}
.tw-school-grades>h2{font-size:17px;color:#545b65;margin:0 0 17px}
.tw-school-grades table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:center;font-size:13px}
.tw-school-grades th{font-weight:400;background:#f7f8f9;color:#929aa4;padding:13px 3px}
.tw-school-grades td{color:#adb3bb;padding:25px 5px;border-bottom:1px solid #f5f6f8}
.tw-school-grades>p{font-size:11px;color:#a6adb6;line-height:1.8;margin:12px 0 0}
.tw-detail-empty{padding:31px 15px;background:white;border:1px solid #f0f2f5;border-radius:10px;text-align:center;min-height:250px}
.tw-detail-empty>div{display:inline-block;color:#c1a7a5;background:#fff0ee;border-radius:11px;padding:13px 17px;font-size:14px;margin-bottom:13px}
.tw-detail-empty h2{font-size:17px;color:#697583;margin:6px 0 12px}
.tw-detail-empty p{font-size:13px;color:#9aa3ae;line-height:1.85;margin:0 0 22px}
.tw-sixstep-module>.tw-profile-pane>.tw-profile-head{display:none}
.tw-current-lesson{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px;margin:0;background:#fff;border:1px solid #e7ebf4;border-radius:14px}
.tw-current-lesson>div{min-width:0}
.tw-current-lesson>div>span{display:block;font-size:12px;color:#6a7487;margin-bottom:6px}
.tw-current-lesson h2{font-size:16px;line-height:1.5;color:#1b2b4b;margin:0;overflow-wrap:anywhere}
.tw-current-lesson p{font-size:12px;line-height:1.5;color:#6a7487;margin:5px 0 0}
.tw-current-lesson>strong{flex:none;text-align:right;color:#315cf5;font-size:25px;line-height:1.2}
.tw-current-lesson>strong>small{font-size:12px;font-weight:500;color:#69768c}
.tw-current-lesson>strong>em{display:block;font-size:11px;line-height:1.6;font-weight:400;font-style:normal;color:#69768c;margin-top:4px}
.tw-sixstep-module .tw-report-card{scroll-margin-top:57px}
.tw-sixstep-module .tw-live-details{scroll-margin-top:57px}
.tw-sixstep-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#e9edf5;padding:4px;border-radius:12px;margin:0 0 14px}
.tw-sixstep-switch>button{min-width:0;min-height:48px;border:0;border-radius:9px;background:transparent;color:#66728a;font-size:14px;font-weight:600;cursor:pointer}
.tw-sixstep-switch>button.active{background:#fff;color:#315cf5;box-shadow:0 2px 6px #1c326012}
.tw-analytics-filter{padding:9px 12px 10px;background:#fff;border:1px solid #e7ebf4;border-radius:14px;margin-bottom:14px}
.tw-analytics-custom>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;list-style:none;cursor:pointer;touch-action:manipulation}
.tw-analytics-custom>summary::-webkit-details-marker{display:none}
.tw-analytics-custom>summary>span{display:flex;flex-direction:column;min-width:0;gap:3px}
.tw-analytics-custom>summary b{font-size:14px;font-weight:600;line-height:1.5;color:#334766}
.tw-analytics-custom>summary small{font-size:11px;line-height:1.5;color:#8090a6}
.tw-analytics-custom>summary>strong{display:flex;align-items:center;gap:7px;flex:none;font-size:12px;font-weight:500;color:#315cf5}
.tw-analytics-custom>summary i{font-size:16px;line-height:1;font-style:normal;transition:transform .15s}
.tw-analytics-custom[open]>summary i{transform:rotate(180deg)}
.tw-analytics-custom[open]>summary{margin-bottom:13px;border-bottom:1px solid #edf1f7;padding-bottom:10px}
.tw-analytics-custom:has(>summary:focus-visible){outline:3px solid #a6b9ff;outline-offset:3px;border-radius:8px}
.tw-analytics-filter-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}
.tw-analytics-filter-title h2{font-size:16px;line-height:1.5;color:#1b2b4b;margin:0}
.tw-analytics-dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.tw-analytics-dates label{display:flex;flex-direction:column;min-width:0;gap:6px;font-size:12px;color:#65718a}
.tw-analytics-dates input{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:48px;padding:0 9px;background:#f8faff;border:1px solid #dbe2ef;border-radius:9px;font-family:inherit;font-size:13px;color:#233551}
.tw-analytics-dates>.tw-button{grid-column:1/-1;width:100%;min-height:48px;margin-top:1px;font-size:14px}
.tw-analytics-ranges{display:flex;gap:6px;margin-top:10px;overflow-x:auto;padding-bottom:3px;max-width:100%;scrollbar-width:thin}
.tw-analytics-ranges>button{flex:1 0 auto;min-width:44px;min-height:48px;padding:0 6px;background:#f4f6fa;border:1px solid transparent;border-radius:8px;color:#69758c;font-size:12px;cursor:pointer;white-space:nowrap}
.tw-analytics-ranges>button.active{background:#eef2ff;border-color:#cad5ff;color:#315cf5;font-weight:600}
.tw-analytics-query-error{padding:10px;margin:12px 0 0;border-radius:8px;color:#a83e34;background:#fff0eb;font-size:12px;line-height:1.7}
.tw-analytics-query-hint{padding:26px 16px;text-align:center;color:#69758c;font-size:13px;border:1px dashed #dbe2ef;border-radius:12px;background:#fff}
@media(max-width:360px){
 .tw-directory-types{gap:10px;padding-left:10px}
 .tw-directory-types>button{font-size:12px}
 .tw-directory-types>button.active{font-size:15px}
 .tw-directory-card{padding-left:9px;padding-right:9px}
 .tw-directory-person>strong{font-size:15px;gap:5px}
 .tw-directory-person>strong>em{font-size:11px}
 .tw-directory-follow{font-size:12px}
 .tw-directory-meta p{font-size:11px}
 .tw-directory-detail-tabs{gap:15px;padding-left:10px}
 .tw-directory-profile h2{font-size:15px}
 .tw-directory-profile h2 small{font-size:11px}
 .tw-directory-learning{font-size:11px}
 .tw-directory-shell .tw-directory-learning .tw-pill{font-size:10px}
 .tw-directory-count{font-size:10px}
}
/* A compact, optional comparison for this student's current original exercise group. */
.tw-directory-shell .tw-national-comparison{border:1px solid #e1e7f0;border-radius:13px;background:#fff;margin:0 0 12px;overflow:hidden}
.tw-directory-shell .tw-national-comparison>summary{min-height:64px;box-sizing:border-box;gap:10px;padding:10px 14px;align-items:center}
.tw-national-heading{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.tw-national-heading>b{font-size:14px;font-weight:650;line-height:1.5;color:#253a57}
.tw-national-heading>small{font-size:12px;font-weight:400;line-height:1.5;color:#6f7e93}
.tw-national-brief{flex:none;display:block;text-align:right;font-size:12px;line-height:1.5;color:#566a83;white-space:nowrap}
.tw-national-brief>b{font-size:18px;font-weight:700;color:#246f80;font-variant-numeric:tabular-nums}
.tw-national-brief>small{display:block;font-size:12px;color:#677a8e}
.tw-national-brief>small>b{font-size:12px;font-weight:600;color:inherit}
.tw-national-pending{font-size:12px;color:#748196;white-space:nowrap}
.tw-directory-shell .tw-national-comparison .tw-fold-content{padding:2px 14px 13px}
.tw-national-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin:0}
.tw-national-grid>div{min-width:0;padding:13px 0 12px;border-bottom:1px solid #edf0f5}
.tw-national-grid dt{font-size:12px;line-height:1.7;font-weight:400;color:#6a7a90;overflow-wrap:anywhere}
.tw-national-grid dd{display:flex;align-items:baseline;gap:5px;margin:4px 0 0;min-width:0;font-variant-numeric:tabular-nums}
.tw-national-grid dd>b{font-size:21px;line-height:1.35;font-weight:650;color:#243d60;overflow-wrap:anywhere}
.tw-national-grid dd>small{font-size:12px;font-weight:400;color:#74839a;white-space:nowrap}
.tw-directory-shell .tw-national-comparison :is(.tw-national-scope,.tw-national-empty){font-size:12px;font-weight:400;line-height:1.85;color:#6a7a8e;margin:12px 0 0;overflow-wrap:anywhere}
.tw-directory-shell .tw-national-comparison>summary:focus-visible{outline:3px solid #a9c2ee;outline-offset:-3px}
@media(max-width:360px){.tw-directory-shell .tw-national-comparison>summary{padding-left:11px;padding-right:11px;gap:7px}.tw-national-brief>b{font-size:17px}.tw-national-grid{gap:0 12px}.tw-national-grid dd>b{font-size:20px}.tw-national-pending{font-size:11px}}
