*{box-sizing:border-box}body,html{margin:0;padding:0;background:#f8fafc;color:#263247;font-family:Arial,Helvetica,sans-serif}button{font:inherit}button:disabled{cursor:default}.student-app{min-height:100dvh;padding:0 28px 32px;max-width:1500px;margin:0 auto}.student-topbar{height:82px;justify-content:space-between}.student-brand,.student-topbar{display:flex;align-items:center}.student-brand{gap:12px}.student-brand-mark{width:42px;height:42px;border-radius:10px;border:3px solid #37c27b;color:#2873d8;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:800;transform:rotate(-4deg)}.student-brand-name{font-size:25px;line-height:1;font-weight:700}.student-brand-company{margin-top:6px;font-size:14px;color:#657083}.mobile-menu,.notification-button{display:none;border:0;background:transparent;color:#344054;padding:4px;cursor:pointer}.student-hero{height:290px;border-radius:18px;overflow:hidden;border:1px solid #e2e8f0;background:#eaf5ff}.student-hero-art{height:100%;position:relative;overflow:hidden;background:linear-gradient(180deg,#eaf6ff,#d8ebf9 58%,#b9d9e8)}.student-hero-art:after,.student-hero-art:before{content:"";position:absolute;width:170px;height:45px;border-radius:50%;background:rgba(255,255,255,.75)}.student-hero-art:before{top:35px;left:8%}.student-hero-art:after{top:58px;right:10%}.hero-sun{position:absolute;width:78px;height:78px;border-radius:50%;background:rgba(255,255,255,.7);top:28px;left:34%}.hero-hill{position:absolute;bottom:68px;width:60%;height:140px;border-radius:50% 50% 0 0;transform:rotate(-7deg)}.hero-hill-one{left:-12%;background:#bfd8ed}.hero-hill-two{right:-12%;bottom:57px;background:#c8deed;transform:rotate(7deg)}.skyline{position:absolute;bottom:68px;width:40px;background:#8eb6d5;opacity:.82}.skyline-one{height:90px;left:35%}.skyline-two{height:130px;left:47%;width:52px}.skyline-three{height:105px;right:27%;width:45px}.hero-water{position:absolute;left:0;right:0;bottom:0;height:68px;background:#a9d7e6}.student-info-grid{display:grid;grid-template-columns:1fr 1.05fr .95fr;grid-gap:16px;gap:16px;margin-top:22px}.student-info-column{display:flex;flex-direction:column;gap:10px}.attendance-overview,.seat-section,.student-info-card,.student-professor-card,.student-summary-card{background:rgba(255,255,255,.92);border:1px solid #e7ebf0;box-shadow:0 4px 16px rgba(30,45,65,.05);border-radius:15px}.student-info-card{min-height:82px;padding:15px 18px;display:flex;align-items:center;gap:15px}.student-info-card span,.student-summary-card span{display:block;font-size:13px;color:#7a8495;margin-bottom:7px}.student-info-card strong{display:block;font-size:16px}.student-card-icon{width:43px;height:43px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-card-icon.purple{color:#9559e8;background:#f3eaff}.student-card-icon.yellow{color:#eab31b;background:#fff8dc}.student-card-icon.green{color:#32b875;background:#e5f8ef}.online-card{min-height:100px}.online-number{font-size:27px!important;line-height:1;margin-bottom:8px}.online-card small{color:#687385;font-size:12px}.online-card small i{display:inline-block;width:7px;height:7px;margin-left:5px;border-radius:50%;background:#35bd78}.student-summary-card{padding:20px}.student-summary-card h2{margin:2px 0 14px;font-size:17px}.summary-item{min-height:68px;border:1px solid #edf0f4;border-radius:14px;padding:10px 13px;gap:13px;margin-top:9px}.summary-icon,.summary-item{display:flex;align-items:center}.summary-icon{width:38px;height:38px;border-radius:50%;justify-content:center}.summary-icon.present{color:#32b875;background:#e7f8ef}.summary-icon.available{color:#eab31b;background:#fff8df}.summary-icon.not-marked{color:#737d8d;background:#f0f2f5}.summary-item strong{font-size:21px;font-weight:500}.student-professor-card{padding:20px}.professor-label{display:block;font-size:16px;font-weight:600;margin-bottom:13px}.professor-photo{width:92px;height:92px;margin:0 auto 15px;border-radius:50%;background:#eadfce;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:700}.student-professor-card h2{margin:0;font-size:19px}.student-professor-card p{margin:9px 0 15px;color:#697386;font-size:14px;line-height:1.5}.professor-live{width:-moz-fit-content;width:fit-content;padding:8px 12px;border-radius:10px;background:#e8f8ef;color:#287c53;font-size:13px;display:flex;align-items:center;gap:7px}.professor-live i{width:9px;height:9px;border-radius:50%;background:#32b875}.seat-section{margin-top:16px;padding:23px}.seat-header{justify-content:space-between;gap:20px}.seat-header,.seat-title{display:flex;align-items:center}.seat-title{gap:15px}.seat-icon{width:42px;height:42px;border-radius:12px;background:#f1e8ff;color:#9857e8;display:flex;align-items:center;justify-content:center}.seat-title h2{margin:0;font-size:18px}.seat-title p{margin:5px 0 0;font-size:13px;color:#788293}.auto-refresh{color:#7a8494;font-size:12px;white-space:nowrap}.refresh-icon{font-size:18px;margin-right:6px}.seat-grid{margin-top:22px;display:flex;flex-direction:column;gap:10px}.seat-row{display:grid;grid-template-columns:28px repeat(10,1fr);grid-gap:9px;gap:9px;align-items:center}.row-label{font-size:18px;font-weight:500}.seat{height:48px;border-radius:8px;border:1px solid #e3e7ed;background:#fff;color:#344054;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.seat:hover:not(:disabled){transform:translateY(-1px);border-color:#51c88b}.seat-present{background:#4dc888;border-color:#4dc888;color:white}.seat-selected{border:3px solid #278d5b;box-shadow:0 0 0 3px rgba(52,190,120,.15);font-weight:700}.attendance-bottom{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-top:16px}.attendance-overview{padding:19px 23px}.attendance-overview h3{margin:0 0 14px;font-size:14px}.overview-values{display:flex;justify-content:space-between;gap:15px}.overview-values>div{flex:1 1}.legend{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.legend.green{background:#34bb78}.legend.yellow{background:#f2ba22}.legend.gray{background:#c9ced7}.overview-values label{font-size:12px;color:#7a8494}.overview-values strong{display:block;margin-top:8px;font-size:20px;font-weight:500}.mark-attendance-button{min-height:108px;border:0;border-radius:14px;background:#35c47b;color:white;display:flex;align-items:center;justify-content:center;gap:13px;font-size:18px;font-weight:600;cursor:pointer;box-shadow:0 5px 15px rgba(42,177,108,.18);transition:transform .15s ease,opacity .15s ease}.mark-attendance-button:hover:not(:disabled){transform:translateY(-1px)}.mark-attendance-button:disabled{opacity:.45}.mark-attendance-button.attendance-marked{background:#299f65}.mark-icon{width:31px;height:31px;border:2px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center}.mark-icon svg,.mobile-menu svg,.notification-button svg,.seat-icon svg,.student-card-icon svg,.summary-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.mobile-menu svg,.notification-button svg,.student-card-icon svg{width:25px;height:25px;stroke-width:1.8}.seat-icon svg{width:25px;height:25px;stroke-width:1.7}.summary-icon svg{width:21px;height:21px;stroke-width:2}.mark-icon svg{width:20px;height:20px;stroke-width:2}@media (max-width:900px){.student-app{padding:0 18px 28px}.student-info-grid{grid-template-columns:1fr 1fr}.student-professor-card{grid-column:span 2}.student-professor-card .professor-photo{margin-left:0}.seat{height:44px}}@media (max-width:600px){.student-app{padding:0 21px 25px}.student-topbar{height:68px}.mobile-menu,.notification-button{display:block}.student-brand{position:absolute;left:50%;transform:translateX(-50%)}.student-brand-mark{width:34px;height:34px;border-radius:8px;font-size:20px}.student-brand-name{font-size:20px}.student-brand-company{font-size:10px;margin-top:4px}.student-hero{height:178px;border-radius:15px}.student-info-grid{grid-template-columns:1fr;gap:10px;margin-top:15px}.student-info-column{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.student-info-card{min-height:82px;padding:12px}.online-card{grid-column:span 2}.student-summary-card{padding:16px}.student-professor-card{grid-column:auto;padding:17px;text-align:center}.student-professor-card .professor-photo{margin:0 auto 13px}.professor-live{margin:0 auto}.seat-section{margin-top:10px;padding:16px 12px 18px;border-radius:15px}.seat-header{align-items:flex-start}.seat-title{gap:10px}.seat-icon{width:36px;height:36px}.seat-title h2{font-size:16px}.seat-title p{font-size:11px}.auto-refresh{font-size:10px;padding-top:4px}.refresh-icon{font-size:14px}.seat-grid{margin-top:17px;gap:8px}.seat-row{grid-template-columns:22px repeat(10,minmax(0,1fr));gap:5px}.row-label{font-size:16px}.seat{height:42px;min-width:0;font-size:12px;border-radius:7px}.attendance-bottom{grid-template-columns:1fr;gap:10px;margin-top:10px}.attendance-overview{padding:15px}.overview-values{gap:8px}.overview-values label{font-size:10px}.overview-values strong{font-size:18px}.mark-attendance-button{min-height:68px;font-size:16px}.student-bottom-space{height:8px}}@media (max-width:380px){.student-app{padding-left:13px;padding-right:13px}.student-brand-company{display:none}.student-info-card strong{font-size:14px}.student-card-icon{width:36px;height:36px}.seat-row{gap:3px}.seat{height:38px;font-size:10px}}.professor-app{min-height:100dvh;max-width:1500px;margin:0 auto;padding:0 30px 36px;background:#f8fafc;color:#263247}.professor-topbar{height:82px;display:flex;align-items:center;justify-content:space-between}.professor-brand{display:flex;align-items:center;gap:12px}.professor-brand-mark{width:42px;height:42px;border:3px solid #37c27b;border-radius:10px;display:grid;place-items:center;color:#2873d8;font-size:24px;font-weight:800}.professor-brand-name{font-size:25px;font-weight:700;line-height:1}.professor-brand-company{margin-top:6px;color:#657083;font-size:14px}.professor-user{display:flex;align-items:center;gap:12px}.professor-user-text{text-align:right}.professor-user-text span,.professor-user-text strong{display:block}.professor-user-text strong{font-size:14px}.professor-user-text span{margin-top:4px;color:#7a8494;font-size:12px}.professor-user-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#e8f5ee;color:#26784e;font-size:13px;font-weight:700}.professor-class-header{min-height:118px;padding:25px 28px;border-radius:18px;background:#ffffff;border:1px solid #e6ebf0;box-shadow:0 4px 18px rgba(30,45,65,.05);display:flex;align-items:center;justify-content:space-between;gap:20px}.professor-eyebrow{display:block;margin-bottom:7px;color:#7a8494;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.professor-class-header h1{margin:0;font-size:28px;letter-spacing:-.02em}.professor-class-header p{margin:7px 0 0;color:#687385;font-size:14px}.live-status{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:#e8f8ef;color:#287c53;font-size:12px;font-weight:700;white-space:nowrap}.live-status i{width:9px;height:9px;border-radius:50%;background:#32b875}.live-status.closed{background:#f0f2f5;color:#737d8d}.live-status.closed i{background:#a8afba}.professor-glance-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-gap:16px;gap:16px;margin-top:16px}.code-card,.present-card,.timer-card{min-height:218px;padding:23px;border-radius:17px;background:#ffffff;border:1px solid #e6ebf0;box-shadow:0 4px 18px rgba(30,45,65,.05)}.metric-label{display:block;color:#7a8494;font-size:11px;font-weight:800;letter-spacing:.1em}.present-value{margin-top:13px;font-size:54px;line-height:1;font-weight:700}.present-value span{color:#98a1ae;font-size:22px;font-weight:500}.code-card p,.present-card p,.timer-card p{margin:8px 0 18px;color:#7a8494;font-size:13px}.attendance-track,.timer-progress{height:8px;overflow:hidden;border-radius:99px;background:#edf1f4}.attendance-track div,.timer-progress div{height:100%;border-radius:inherit;background:#35c47b}.metric-foot{margin-top:10px;color:#7a8494;font-size:11px}.code-card-top,.metric-foot{display:flex;justify-content:space-between;gap:12px}.code-validity{padding:5px 9px;border-radius:8px;background:#e8f8ef;color:#287c53;font-size:10px;font-weight:700}.professor-code{margin-top:18px;font-size:clamp(38px,4vw,52px);line-height:1;letter-spacing:.15em;font-weight:800;color:#263247}.code-card p{max-width:270px}.professor-timer{margin-top:17px;font-size:52px;line-height:1;font-weight:700;letter-spacing:-.03em}.timer-card.warning .professor-timer{color:#d18a19}.timer-card.warning .timer-progress div{background:#eab31b}.professor-controls{min-height:94px;margin-top:16px;padding:17px 20px;border-radius:16px;background:#ffffff;border:1px solid #e6ebf0;display:flex;align-items:center;justify-content:space-between;gap:20px}.control-summary{display:flex;align-items:center;gap:30px}.control-summary>div{display:grid;grid-template-columns:auto auto;grid-column-gap:8px;column-gap:8px;align-items:center}.control-summary strong{font-size:20px}.control-summary small{grid-column:2;color:#7a8494;font-size:11px}.control-dot{grid-row:span 2;width:10px;height:10px;border-radius:50%}.present-dot{background:#35bd78}.pending-dot{background:#c9ced7}.online-dot{background:#5e91dc}.end-session-button,.restart-session-button{min-height:45px;padding:0 20px;border-radius:11px;font-size:13px;font-weight:700;cursor:pointer}.end-session-button{border:1px solid #f0c7c7;background:#fff7f7;color:#b64a4a}.restart-session-button{border:0;background:#35c47b;color:#ffffff}.professor-students{margin-top:16px;padding:22px;border-radius:17px;background:#ffffff;border:1px solid #e6ebf0;box-shadow:0 4px 18px rgba(30,45,65,.05)}.student-list-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.student-list-header h2{margin:0;font-size:21px}.student-list-count{color:#687385;font-size:13px}.professor-student-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.professor-student-row{min-height:64px;padding:9px 11px;border:1px solid #edf0f3;border-radius:11px;background:#fbfcfd;display:grid;grid-template-columns:30px 1fr auto;align-items:center;grid-gap:9px;gap:9px;text-align:left;cursor:pointer}.professor-student-row.is-present{border-color:#dcefe5;background:#f5fbf8}.student-number{color:#98a1ae;font-size:11px}.student-details small,.student-details strong{display:block}.student-details strong{font-size:13px}.student-details small{margin-top:3px;color:#8992a0;font-size:10px}.student-status-badge{padding:5px 8px;border-radius:7px;background:#f0f2f5;color:#7b8492;font-size:9px;font-weight:700;white-space:nowrap}.is-present .student-status-badge{background:#e2f6eb;color:#2d8759}@media (max-width:950px){.professor-glance-grid{grid-template-columns:1fr 1fr}.timer-card{grid-column:span 2}.professor-student-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.professor-app{padding:0 14px 24px}.professor-topbar{height:68px}.professor-brand-mark{width:34px;height:34px;font-size:19px}.professor-brand-name{font-size:20px}.professor-brand-company{font-size:10px}.professor-user-text{display:none}.professor-user-avatar{width:38px;height:38px}.professor-class-header{min-height:105px;padding:18px;align-items:flex-start}.professor-class-header h1{font-size:22px}.professor-class-header p{font-size:12px}.live-status{padding:8px 9px;font-size:9px}.professor-glance-grid{grid-template-columns:1fr 1fr;gap:10px}.code-card,.present-card,.timer-card{min-height:172px;padding:16px}.present-card,.timer-card{grid-column:span 2}.present-value{font-size:43px}.present-value span{font-size:18px}.professor-code{font-size:31px;letter-spacing:.11em}.professor-timer{font-size:42px}.professor-controls{padding:14px;align-items:stretch;flex-direction:column}.control-summary{justify-content:space-between;gap:10px}.session-actions button{width:100%}.student-list-header{align-items:flex-start}.student-list-count{font-size:11px}.professor-students{padding:15px}.professor-student-grid{grid-template-columns:1fr}}@media (max-width:380px){.professor-app{padding-left:10px;padding-right:10px}.professor-brand-company{display:none}.professor-code{font-size:27px}.control-summary strong{font-size:17px}.control-summary small{font-size:9px}}