.portal-page{max-width:1320px;margin:0 auto;padding:64px 32px 88px}.role-entry{max-width:1280px;margin:0 auto;padding:24px 0}.role-entry-compact{padding:40px 32px 56px}.role-entry-heading{max-width:720px;margin-bottom:24px}.role-entry-heading h1,.role-entry-heading h2{font-family:var(--font-display);margin:8px 0 12px;font-size:clamp(25px,3vw,36px)}.role-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.role-entry-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:flex-start;gap:14px;min-width:0;padding:24px;transition:background .15s,border-color .15s;display:flex}.role-entry-card:hover,.portal-workflow:hover{background:var(--leaf-soft);border-color:var(--leaf)}.role-entry-card>svg{color:var(--leaf)}.role-entry-card h3{font-size:20px}.role-entry-card p{color:var(--secondary);margin:0;line-height:1.75}.role-entry-card>span{color:var(--leaf);align-items:center;gap:8px;margin-top:auto;padding-top:8px;font-size:13px;font-weight:600;display:flex}.role-entry-help{color:var(--secondary);margin-top:24px}.role-entry-help a{color:var(--leaf);font-weight:600}.portal-shell-label{letter-spacing:.08em;color:var(--secondary);align-items:center;gap:8px;padding:0 12px 16px;font-size:10px;font-weight:700;display:flex}.portal-nav-group{margin-bottom:12px}.portal-nav-group .nav-caption{letter-spacing:.055em;text-transform:uppercase;margin:12px 12px 5px;font-size:10px}.portal-nav-group .nav-item{min-height:39px;padding-top:8px;padding-bottom:8px}.portal-dashboard-heading{justify-content:space-between;align-items:center;gap:24px;margin:28px 0;display:flex}.portal-dashboard-heading p{margin:8px 0 0}.portal-workflows{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.portal-workflow{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:12px;min-width:0;padding:22px;transition:background .15s,border-color .15s;display:flex}.portal-workflow h2{font-size:18px;line-height:1.5}.portal-workflow p{color:var(--secondary);margin:0;font-size:13px;line-height:1.8}.portal-workflow-label{letter-spacing:.06em;text-transform:uppercase;color:var(--secondary);font-size:10px;font-weight:700}.portal-workflow>svg{color:var(--leaf)}.portal-open{color:var(--leaf);align-items:center;gap:8px;margin-top:auto;padding-top:8px;font-size:13px;font-weight:600;display:flex}.portal-metrics{background:var(--inset);border-radius:var(--radius);grid-template-columns:repeat(5,minmax(0,1fr));margin:24px 0;padding:20px 8px;display:grid}.portal-metrics>div{border-right:1px solid var(--line);flex-direction:column;gap:6px;padding:0 20px;display:flex}.portal-metrics>div:last-child{border-right:0}.portal-metrics strong{font-variant-numeric:tabular-nums;font-size:27px;line-height:1.3}.portal-metrics a,.portal-metrics span{color:var(--secondary);font-size:12px}.portal-metrics a:hover{text-decoration:underline}.portal-dashboard-columns{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:24px;display:grid}.portal-dashboard-columns .quiz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-teacher-notes{background:var(--inset);border:1px solid var(--line-soft);border-radius:var(--radius);margin-top:28px;padding:24px}.portal-teacher-notes h2{margin-bottom:16px;font-size:19px}.portal-teacher-notes>a{border-top:1px solid var(--line);padding:16px 0;display:block}.portal-teacher-notes>a:last-child{padding-bottom:0}.portal-teacher-notes b{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.portal-teacher-notes span{color:var(--secondary);margin-top:6px;font-size:12px;display:block}.portal-teacher-notes a:hover b{color:var(--leaf);text-decoration:underline}.portal-student-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.portal-assignment-overview{margin-bottom:24px}.portal-assignment-overview>.section-heading{margin-top:0}.portal-student-metrics{background:var(--inset);border-radius:12px;flex-wrap:wrap;gap:24px;margin:20px 0;padding:20px;display:flex}.portal-student-metrics>div{flex-direction:column-reverse;flex:1;gap:6px;min-width:100px;display:flex}.portal-student-metrics dt{color:var(--secondary);font-size:13px}.portal-student-metrics dd{font-variant-numeric:tabular-nums;margin:0;font-size:28px;font-weight:700}.portal-task-list{margin:16px 0;padding:0;list-style:none}.portal-task-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:18px 0;display:flex}.portal-task-list h3{margin-top:8px}.portal-task-list p{margin:6px 0 0}.portal-small-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.portal-small-links>a{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:14px;padding:20px;display:flex}.portal-small-links>a>span{flex-direction:column;flex:1;gap:4px;display:flex}.portal-small-links small{color:var(--secondary)}.portal-small-links a:hover{border-color:var(--leaf)}.portal-admin-intro{background:var(--inset);border-radius:var(--radius);align-items:flex-start;gap:20px;margin-bottom:24px;padding:24px;display:flex}.portal-admin-intro>svg{color:var(--leaf);margin-top:4px}.portal-admin-intro p{color:var(--secondary);margin:8px 0 0}.portal-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.portal-admin-panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:24px}.portal-admin-panel h2{margin-bottom:8px}.portal-admin-panel .portal-task-list li{align-items:flex-start}.portal-admin-count{color:var(--secondary);align-items:baseline;gap:12px;margin:24px 0;display:flex}.portal-admin-count strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:38px;line-height:1}.portal-admin-links{flex-wrap:wrap;gap:16px;margin-top:24px;display:flex}.portal-operations-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 0}.portal-operations-metrics>div:nth-child(4n){border-right:0}.portal-user-register{margin-top:24px}.portal-user-register>.section-heading{margin-top:0}.portal-user-search{align-items:center;gap:12px;margin:20px 0;display:flex}.portal-user-search .search-field{flex:1;min-width:0}.portal-user-table-scroll{overflow-x:auto}.portal-user-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.portal-user-table th,.portal-user-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 12px}.portal-user-table thead th{color:var(--secondary);white-space:nowrap;font-size:12px;font-weight:500}.portal-user-table tbody th{font-weight:600}.portal-user-table td:nth-child(2){overflow-wrap:anywhere;min-width:200px}.portal-role-switch{color:var(--secondary);flex-wrap:wrap;justify-content:center;gap:12px;margin:24px 0 0;font-size:12px;display:flex}.portal-role-switch a{color:var(--leaf);text-decoration:underline}.guardian-overview-strip{background:var(--inset);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:24px;display:flex}.guardian-overview-strip strong{font-variant-numeric:tabular-nums;font-size:32px;line-height:1.2;display:block}.guardian-overview-strip p{max-width:620px;color:var(--secondary);margin:0}@media (max-width:1200px){.portal-workflows{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-dashboard-columns{grid-template-columns:minmax(0,1fr)}.portal-teacher-notes{margin-top:0}.role-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-small-links{grid-template-columns:1fr}.public-header.public-header-guardian .portal-header-link{display:inline-flex}}@media (max-width:680px){.portal-page{padding:32px 20px 48px}.role-entry-compact{padding:32px 20px}.role-entry-grid,.portal-workflows,.portal-student-actions,.portal-admin-grid,.portal-dashboard-columns .quiz-grid{grid-template-columns:1fr}.role-entry-card{padding:22px}.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}.portal-metrics>div:nth-child(2n){border-right:0}.portal-dashboard-heading,.portal-task-list li,.guardian-overview-strip{flex-direction:column;align-items:flex-start;gap:16px}.portal-task-list li>.text-button{align-self:flex-start}.portal-admin-intro{padding:20px}.portal-admin-intro>svg{display:none}.portal-admin-panel{padding:20px}.portal-student-metrics{gap:16px;padding:16px}.portal-student-metrics>div{min-width:80px}.portal-student-metrics dd{font-size:24px}.portal-student-metrics dt{font-size:12px}.portal-small-links>a{padding:16px}.portal-user-search{flex-direction:column;align-items:stretch}.portal-operations-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
