.portal-main{width:min(100% - 2rem,1040px);margin:4rem auto;min-height:65vh}.portal-main h1{font-size:clamp(1.7rem,4vw,2.5rem);font-weight:650;letter-spacing:-.04em;margin-bottom:2rem}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.app-tile{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.8rem;min-height:230px;border:1px solid #fff9;border-radius:24px;background:#f7f8f8d9;box-shadow:0 12px 40px #1726340b;color:#263339;text-decoration:none;backdrop-filter:blur(18px);transition:transform .18s,background .18s}.app-tile:not(:disabled):hover{transform:translateY(-4px);background:#fffffff0}.app-tile:disabled{opacity:.48;cursor:default}.app-icon{font-size:3.6rem;font-family:'JetBrains Mono',monospace;font-weight:400;line-height:1.3}.app-tile small{font-size:.75rem;font-weight:400}.auth-panel{max-width:460px;margin:0 auto}.auth-panel h1{margin-bottom:1.5rem}.auth-panel input{margin-bottom:1rem}.auth-panel form+form{margin-top:2rem;padding-top:1rem;border-top:1px solid #ddd}.auth-links{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;margin-top:1.3rem}.auth-panel a{display:inline-block;margin-top:1rem}#status:empty{display:none}#status{padding:.8rem 0}#status.error{color:#a32935}.topbar{max-width:1240px;margin:auto}.top-actions{flex-wrap:wrap}.admin-footer{max-width:1040px;margin:2rem auto;text-align:left;padding:1rem}.admin-footer details{margin-top:1rem;max-width:750px}.admin-footer summary{cursor:pointer}#admin-link{display:inline-block;margin-top:2rem}#backup-codes,#totp-secret{white-space:pre-wrap;overflow-wrap:anywhere}.account-card{padding:1.2rem;margin:1rem 0;border-radius:18px;background:#ffffffe0}.account-card .actions{flex-wrap:wrap}.account-card label{display:flex;gap:.5rem;align-items:center}.account-card input[type=checkbox]{width:auto}.account-card select{max-width:180px}.account-card small{display:block;color:#52616b}.account-card h2{font-size:1.1rem;margin:0}.pagination{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0}#enrollment .qr{max-width:240px;margin:1rem auto}@media(max-width:600px){.portal-main{margin:2rem auto}.app-grid{grid-template-columns:1fr}.app-tile{min-height:135px;display:grid;grid-template-columns:4rem 1fr;padding:1.4rem;text-align:left;justify-items:start}.app-tile small{grid-column:2}.app-icon{grid-row:1/3}.topbar{gap:1rem}.top-actions #identity{display:none}}

.admin-footer{color:#37434c;background:#ffffffe0;border-radius:16px;backdrop-filter:blur(12px)}

.auth-notes{margin-top:2rem;padding-top:1rem;border-top:1px solid #52616b24;color:#52616b;font-size:.78rem;line-height:1.65}.auth-notes p{margin:.6rem 0}.auth-notes a{margin:0}.auth-notes details{margin-top:1rem}.auth-notes summary{cursor:pointer}

.top-actions .nav-item{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem .85rem;border:0;border-radius:11px;background:#ffffff58;color:var(--ink);font:600 .88rem "Open Sans",sans-serif;text-decoration:none;cursor:pointer;margin:0}.top-actions #identity{display:inline-flex}.top-actions #admin-link{margin:0}.top-actions .nav-item:hover{background:#ffffffa0}.export-actions{margin:1.2rem 0}#run-detail #share-view{min-height:65svh;grid-template-columns:1fr 1fr;border:0;gap:3rem}#share-view .qr{max-width:420px}#share-view #join-link{font-size:clamp(1rem,2vw,1.6rem)}@media(max-width:700px){#run-detail #share-view{grid-template-columns:1fr;gap:1.5rem;min-height:0;text-align:center}.top-actions{gap:.35rem}.top-actions .nav-item{font-size:.78rem;padding:.55rem .65rem}#share-view .qr{max-width:300px}}
.view-switch{border:0;padding:0;margin:0;min-width:0;width:min(100%,310px)}
.view-options{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;background:#60778518;border:1px solid #60778520;border-radius:15px;isolation:isolate}
.view-thumb{position:absolute;left:4px;top:4px;bottom:4px;width:calc((100% - 8px)/2);background:#fffffff2;border-radius:11px;box-shadow:0 2px 8px #203c4d18;transition:transform .2s ease;z-index:-1}
.view-switch[data-view=student] .view-thumb{transform:translateX(100%)}
.view-options label{display:flex;align-items:center;justify-content:center;margin:0;min-height:48px;padding:.65rem 1rem;border-radius:11px;cursor:pointer;touch-action:manipulation;font-size:.9rem;color:var(--muted);user-select:none}
.view-options input:checked+label{color:var(--ink);font-weight:700}
.view-options input:focus-visible+label{outline:3px solid #4c7c98;outline-offset:1px}
@media(max-width:600px){#run-detail>.heading-row{align-items:center;flex-wrap:wrap;gap:1rem}.view-switch{width:100%}}
@media(prefers-reduced-motion:reduce){.view-thumb{transition:none}}

body.app-home:before{filter:saturate(.85);transform:none}body.app-home:after{background:none}
