/* Scoped student entry and identity controls. Existing course styles stay in charge of the workspace. */
#course-gate,#classroom-account{position:relative;z-index:7}
#classroom-account{flex-wrap:wrap}
#classroom-account .classroom-teacher-link{display:inline-flex;align-items:center;min-height:34px;padding:6px 2px;color:#dfccb0;font-size:12px;text-decoration:none;white-space:nowrap}
#classroom-account .classroom-teacher-link:hover{text-decoration:underline}
body.classroom-gated .shell,body.classroom-gated #teacher-btn{display:none!important}
body.classroom-gated #classroom-account{display:none!important}
#course-gate{--entry-navy:#13273e;--entry-brick:#9f4d3f;--entry-gold:#c5a779;--entry-paper:#fcf8f0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1120px;min-height:650px;margin:42px auto 58px;background:var(--entry-paper);border:1px solid #e4dac9;border-radius:20px;overflow:hidden;box-shadow:0 18px 50px #15284012}
#course-gate .classroom-cover{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px 72px;background:linear-gradient(145deg,#142d47,#101c30);color:#fff;text-align:center}
#course-gate .classroom-cover::after{content:"";position:absolute;left:0;right:0;bottom:28px;height:31px;z-index:-1;pointer-events:none;background:url("./ornaments/sea-ribbon.svg") repeat-x left center/620px 28px;opacity:.45}
#course-gate .classroom-cover::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;z-index:-1;pointer-events:none;background:var(--entry-gold) url("./ornaments/brick-lattice.svg") repeat-x center/25px 25px;opacity:.88}
#course-gate .classroom-school-logo{display:block;width:112px;height:112px;object-fit:contain;margin-bottom:25px;border-radius:50%;background:#fff;box-shadow:0 0 0 8px #ffffff0b}
#course-gate .classroom-school-name{margin:0 0 16px;font-size:17px;letter-spacing:3px;color:#e6dcc8}
#course-gate h1{margin:0;font-size:clamp(29px,3vw,39px);line-height:1.35;letter-spacing:.3px;color:#fff;overflow-wrap:anywhere}
#course-gate .classroom-course-subtitle{margin:21px 0 0;color:#c8d5e3;font-size:14px;line-height:1.9;letter-spacing:.5px}
#course-gate .classroom-cover-rule{width:60px;height:2px;margin:31px 0 24px;background:var(--entry-gold)}
#course-gate .classroom-cover-route{margin:0;color:#ecd8b5;font-size:14px;letter-spacing:1px}
#course-gate .classroom-cover-routine{margin:13px 0 0;color:#abbdd0;font-size:12px}
#course-gate .classroom-entry{display:flex;align-items:center;justify-content:center;padding:40px 42px;background:linear-gradient(150deg,#fcf8f0,#f4f4ef)}
#course-gate .classroom-login-card{width:100%;max-width:365px;min-width:0}
#course-gate .classroom-entry-kicker{margin:0 0 8px;color:#93614c;font-weight:650;letter-spacing:2px;font-size:12px}
#course-gate h2{margin:0;color:#182b40;font-size:27px;line-height:1.45}
#course-gate .classroom-entry-intro{margin:9px 0 26px;color:#647180;font-size:14px}
#course-gate .classroom-field{margin-top:19px}
#course-gate .classroom-field label{display:block;margin:0 0 8px;color:#24374b;font-size:14px;font-weight:650}
#course-gate .classroom-field select,#course-gate .classroom-field input{display:block;box-sizing:border-box;width:100%;min-height:49px;padding:11px 13px;border:1px solid #cbd0d3;border-radius:9px;background:#fff;color:#25374b;font:inherit;font-size:16px;line-height:1.4}
#course-gate .classroom-field input::placeholder{color:#929aa2}
#course-gate .classroom-field select:focus-visible,#course-gate .classroom-field input:focus-visible,#course-gate button:focus-visible,#course-gate a:focus-visible,#course-gate .classroom-import-option input:focus-visible{outline:3px solid #629bb4;outline-offset:3px}
#course-gate .classroom-field-tip{margin:7px 0 0;font-size:12px;color:#73808b}
#course-gate .classroom-import-option{display:flex;align-items:flex-start;gap:10px;margin:19px 0 0;padding:12px;border:1px solid #e2d7c2;border-radius:9px;background:#fffaf0;color:#735638;font-size:13px;cursor:pointer;line-height:1.6}
#course-gate .classroom-import-option input{flex:none;width:17px;height:17px;margin:3px 0 0;accent-color:#9f4d3f}
#course-gate .classroom-import-option small{display:block;margin-top:3px;font-size:11px;color:#807362}
#course-gate .classroom-record-note{margin:22px 0 16px;font-size:12px;line-height:1.75;color:#6f7780}
#course-gate .classroom-enter{display:block;width:100%;min-height:49px;padding:13px 18px;border:1px solid #854338;border-radius:9px;background:var(--entry-brick);color:#fff;font-size:16px;font-weight:650;line-height:1.4}
#course-gate .classroom-enter:hover:not(:disabled){background:#8e4337}
#course-gate .classroom-gate-status{margin:10px 0 0;min-height:21px;color:#657583;font-size:12px}
#course-gate .classroom-gate-error{margin:10px 0 0;padding:10px 12px;border:1px solid #e6b8b5;border-radius:7px;background:#fff0ed;color:#a03b36;font-size:13px;line-height:1.6}
#course-gate .classroom-session-retry{margin:9px 0 0;min-height:38px;padding:7px 12px;border:1px solid #bfcbd4;border-radius:7px;background:#fff;color:#345e7b;font-size:12px}
#course-gate .classroom-entry-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:23px;padding-top:17px;border-top:1px solid #e3ddd2;color:#879099;font-size:11px}
#course-gate .classroom-entry-footer a{color:#66513c;text-decoration:none;font-size:12px;min-height:28px}
#course-gate .classroom-entry-footer a:hover{text-decoration:underline}
#course-gate[hidden],#course-gate [hidden],#classroom-account [hidden]{display:none!important}
body.classroom-enabled .topbar{height:auto;min-height:78px;flex-wrap:wrap;padding-top:13px;padding-bottom:13px}
#classroom-account{display:flex;align-items:center;gap:9px;margin-left:auto;min-width:0;color:#d9e3ed;font-size:12px;line-height:1.4}
#classroom-account .classroom-profile{white-space:nowrap;border:1px solid #b89b6959;background:#b89b6914;color:#ead7b3;padding:6px 10px;border-radius:20px;font-weight:600}
#classroom-account .classroom-sync{position:relative}
#classroom-account .classroom-sync>summary{display:flex;align-items:center;gap:6px;min-height:35px;padding:6px 7px;cursor:pointer;color:#cad8e6;font-size:12px;font-weight:400;list-style:none;white-space:nowrap}
#classroom-account .classroom-sync>summary::-webkit-details-marker{display:none}
#classroom-account .classroom-sync>summary::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#85d5b0}
#classroom-account .classroom-sync[data-status="saving"]>summary::before,#classroom-account .classroom-sync[data-status="pending"]>summary::before{background:#ddbb7c}
#classroom-account .classroom-sync[data-status="offline"]>summary::before,#classroom-account .classroom-sync[data-status="error"]>summary::before,#classroom-account .classroom-sync[data-status="conflict"]>summary::before{background:#f0ad95}
#classroom-account .classroom-sync-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:25;width:min(360px,calc(100vw - 32px));padding:17px;background:#fffaf2;border:1px solid #ded0b8;border-radius:12px;box-shadow:0 12px 35px #07111f33;color:#3e4a57;font-size:13px;line-height:1.65}
#classroom-account .classroom-sync-panel p{margin:0;overflow-wrap:anywhere}
#classroom-account .classroom-sync-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
#classroom-account button{font:inherit;cursor:pointer;line-height:1.4;min-height:34px;padding:7px 10px;border:1px solid #3a4b66;border-radius:7px;background:transparent;color:#d8e3f0;white-space:nowrap}
#classroom-account .classroom-sync-actions button{background:#fff;border-color:#d3c5ae;color:#5e4938}
#classroom-account button:focus-visible,#classroom-account summary:focus-visible{outline:3px solid #8abbd4;outline-offset:3px}
#classroom-account button:disabled{cursor:not-allowed;opacity:.55}
@media(max-width:1180px){body.classroom-enabled .topbar .top-note{display:none}}
@media(max-width:850px){#course-gate{margin:25px 20px 40px;min-height:610px}#course-gate .classroom-cover{padding:44px 22px 65px}#course-gate .classroom-entry{padding:32px 25px}#course-gate .classroom-school-name{font-size:14px;letter-spacing:2px}#course-gate .classroom-course-subtitle{font-size:12px}#course-gate .classroom-school-logo{width:95px;height:95px}}
@media(max-width:650px){#course-gate{grid-template-columns:1fr;margin:18px 14px 30px;border-radius:15px;min-height:0}#course-gate .classroom-cover{padding:33px 20px 49px}#course-gate .classroom-school-logo{width:77px;height:77px;margin-bottom:20px;box-shadow:0 0 0 6px #ffffff0b}#course-gate .classroom-school-name{margin-bottom:12px;font-size:13px}#course-gate h1{font-size:29px}#course-gate .classroom-course-subtitle{margin-top:13px;font-size:12px;line-height:1.75}#course-gate .classroom-cover-rule{margin:19px 0 15px;width:43px}#course-gate .classroom-cover-route{font-size:12px}#course-gate .classroom-cover-routine{margin-top:9px;font-size:11px}#course-gate .classroom-cover::after{bottom:10px;height:24px;background-size:500px 24px}#course-gate .classroom-entry{padding:29px 23px 28px}#course-gate h2{font-size:25px}#course-gate .classroom-entry-intro{font-size:13px;margin-bottom:23px}#course-gate .classroom-entry-footer{font-size:10px}body.classroom-enabled .topbar{gap:10px;padding:12px 15px}#classroom-account{order:3;width:100%;margin-left:0;gap:8px;justify-content:flex-end;border-top:1px solid #ffffff16;padding-top:9px}#classroom-account .classroom-profile{margin-right:auto;font-size:11px;padding:5px 8px}#classroom-account button{font-size:11px;padding:6px 8px}#classroom-account .classroom-sync>summary{font-size:11px;padding:5px 3px}#classroom-account .classroom-sync-panel{position:fixed;right:16px;top:135px;max-height:calc(100dvh - 155px);overflow:auto}}
@media print{#course-gate,#classroom-account{display:none!important}}
