:root{font-size:16px;--ui-body-font-size: 1rem;--ui-secondary-font-size: .875rem;--ui-compact-font-size: .75rem}:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--auth-primary: #2f77b2;--auth-text: #20344c;--auth-muted: #5d6d80;--auth-line: #dce3e9;--auth-shadow: 0 4px 20px #142d4528}*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}body{font-size:var(--ui-body-font-size);line-height:1.5;color:var(--auth-text);background:#101c2a}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}a{color:#276b9d}strong{font-weight:650}:where(button,a,input):focus-visible{outline:3px solid #318ddb;outline-offset:2px}[hidden],.u-d-none{display:none!important}.u-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ar3d360-loading-indicator{display:flex;align-items:center;justify-content:center;min-height:3rem}.auth-card .ar3d360-button-pending{isolation:isolate;position:relative;color:transparent}.ar3d360-button-pending-overlay{color:var(--auth-text)}.auth-button-primary .ar3d360-button-pending-overlay{color:#fff}.ar3d360-button-pending-overlay{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;pointer-events:none;z-index:1}.ui-notice-container{position:fixed;right:16px;bottom:16px;width:min(380px,calc(100% - 32px));z-index:11000}.ui-notice{display:none;margin-top:8px;background:#fff0d9;color:#9d491f;border:1px solid #e5d0ac;border-radius:7px;box-shadow:var(--auth-shadow)}.ui-notice.show{display:block}.ui-notice>div{display:flex;align-items:center}.ui-notice-body{flex:1;min-width:0;padding:14px;line-height:1.6;overflow-wrap:anywhere}.ui-notice.u-text-bg-success{background:#eaf5ef;color:#276447;border-color:#bfdfcd}.ui-notice.u-text-bg-info{background:#edf5fc;color:#276b9d;border-color:#c5ddec}.ui-notice .ui-button-close{display:inline-grid;place-items:center;flex:0 0 40px;height:44px;margin:0 4px;padding:0;border:0;background:transparent;color:inherit}.ui-notice .ui-button-close:before{content:"";width:20px;height:20px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m18 6-12 12M6 6l12 12'/%3E%3C/svg%3E") center/contain no-repeat}.auth-container{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:28px;background:radial-gradient(ellipse at top,#294560,#101c2a)}.auth-card{width:440px;max-width:100%;padding:32px;background:#fff;border:1px solid var(--auth-line);border-radius:7px;box-shadow:var(--auth-shadow)}.auth-brand{display:flex;align-items:center;gap:10px;color:var(--auth-primary);margin-bottom:32px}.auth-brand strong{font-size:25px;color:var(--auth-text)}.auth-title{font-size:22px;font-weight:700;margin:0 0 12px;letter-spacing:-.5px}.auth-description{font-size:var(--ui-body-font-size);line-height:1.7;margin:12px 0;color:var(--auth-muted);overflow-wrap:anywhere}.auth-card form,.auth-fields{display:grid;gap:18px;margin-top:24px}.auth-field{display:grid;gap:8px;min-width:0}.auth-label{font-size:var(--ui-secondary-font-size);line-height:1.5;color:var(--auth-muted)}.auth-input{height:46px;min-width:0;border:1px solid #cfdae4;border-radius:4px;padding:0 12px;background:#f8fafc;color:var(--auth-text);font:var(--ui-body-font-size)/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;width:100%}.auth-input::placeholder{color:var(--auth-muted);opacity:1}.auth-input[aria-invalid=true]{border-color:#b84c48}.auth-actions{display:grid}.auth-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:4px;padding:0 16px;font-size:var(--ui-secondary-font-size);text-decoration:none}.auth-button-primary{background:var(--auth-primary);color:#fff}.auth-button-primary:hover:not(:disabled),.auth-button-primary:active:not(:disabled){background:#2b6fa5}.auth-button-secondary{background:#f0f5f9;color:var(--auth-text)}.auth-button-secondary:hover:not(:disabled),.auth-text-action:hover:not(:disabled),.auth-navigation a:hover{background:#e8f1f8}.auth-navigation{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:10px 0 0}.auth-navigation a,.auth-text-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 16px;border:0;border-radius:4px;background:transparent;font-size:var(--ui-secondary-font-size);color:var(--auth-text);text-decoration:none}.auth-separator{display:none}.auth-help{display:block;margin-top:4px;font-size:var(--ui-secondary-font-size);line-height:1.6;color:var(--auth-muted)}.auth-notice{margin-top:24px;border:1px solid var(--auth-line);border-radius:4px}.auth-notice-body{padding:16px}.auth-notice-title{font-size:14px;margin:0 0 8px}.auth-invitations{list-style:none;margin:0;padding:0}.auth-invitation{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--auth-line)}.auth-invitation-name{min-width:0;overflow-wrap:anywhere}.auth-invitation-badges{display:flex;flex-wrap:wrap;gap:6px}.auth-badge,.auth-invitation .ui-badge{padding:3px 6px;border-radius:4px;font-size:var(--ui-secondary-font-size);background:#edf2f6;color:#456078}:root{--app-loading-size: 36px;--app-loading-accent: #337fbd}[data-schools-theme=dark]{--app-loading-accent: #3d8fc9}:is(.ui-spinner-border,.ui-spinner-grow,.course-spinner,.app-dialog-loading),.course-action[aria-busy=true]:not(.ar3d360-button-pending):after{display:inline-block;flex:none;box-sizing:border-box;width:var(--app-loading-size);height:var(--app-loading-size);border:3px solid var(--schools-line, #dce3e9);border-top-color:var(--app-loading-accent);border-radius:50%;animation:app-loading-spin .8s linear infinite}.course-action[aria-busy=true]:not(.ar3d360-button-pending):after{content:""}:is(button,[role=button],.ui-button,.ar3d360-button-pending-overlay) :is(.ui-spinner-border,.ui-spinner-grow),.course-action[aria-busy=true]:not(.ar3d360-button-pending):after{border-top-color:currentColor}@keyframes app-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){:is(.ui-spinner-border,.ui-spinner-grow,.course-spinner,.app-dialog-loading),.course-action[aria-busy=true]:not(.ar3d360-button-pending):after{animation:none}}
