@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Noto Sans SC,system-ui,sans-serif;color:#17251f;background:#f4f7f5;font-synthesis:none;text-rendering:optimizeLegibility;--green-950: #093b35;--green-800: #0f5c50;--green-700: #137263;--green-100: #dcefe8;--ink: #17251f;--muted: #738078;--line: #e4eae6;--surface: #ffffff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:258px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;z-index:10;width:258px;display:flex;flex-direction:column;padding:32px 22px 24px;color:#f5fffb;background:radial-gradient(circle at 20% 6%,rgba(82,190,153,.2),transparent 27%),linear-gradient(165deg,#0b5046,#073a35 72%)}.brand{display:flex;align-items:center;gap:13px;padding:0 10px 34px}.brand__mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:var(--green-950);background:#d5f3e7;font-size:18px;font-weight:800;box-shadow:0 8px 24px #0000001f}.brand strong{display:block;font-size:17px;letter-spacing:.04em}.brand small{display:block;margin-top:4px;color:#94beb3;font-size:13px;letter-spacing:.18em}.nav{display:grid;gap:7px}.nav__item{display:flex;align-items:center;gap:14px;height:49px;padding:0 15px;border-radius:12px;color:#a9c9c0;font-size:14px;font-weight:500;transition:background .2s,color .2s,transform .2s}.nav__item span{display:grid;place-items:center;width:20px;font-size:18px}.nav__item:hover{color:#fff;transform:translate(2px)}.nav__item--active{color:#fff;background:#d7f8ec21;box-shadow:inset 3px 0 #79d3b3}.sidebar__footer{display:flex;align-items:center;gap:11px;margin-top:auto;padding:17px 12px 4px;border-top:1px solid rgba(204,236,227,.13)}.sidebar__footer strong,.sidebar__footer small{display:block}.sidebar__footer strong{color:#d7e9e3;font-size:12px;font-weight:500}.sidebar__footer small{margin-top:3px;color:#6d9c91;font-size:12px}.service-dot{width:8px;height:8px;border-radius:50%;background:#c6a963;box-shadow:0 0 0 4px #c6a9631f}.service-dot--ok{background:#68d6ab;box-shadow:0 0 0 4px #68d6ab1f}.service-dot--error{background:#ef7f72;box-shadow:0 0 0 4px #ef7f721f}.main{grid-column:2;min-width:0;padding:0 46px 30px}.topbar{display:flex;justify-content:flex-end;align-items:center;height:82px;border-bottom:1px solid var(--line)}.topbar__actions{display:flex;align-items:center;gap:22px}.icon-button,.more-button,.mobile-menu{border:0;background:transparent;color:#59675f;cursor:pointer}.icon-button{position:relative;width:38px;height:38px;font-size:23px}.notification-dot{position:absolute;top:7px;right:6px;width:7px;height:7px;border:2px solid #f4f7f5;border-radius:50%;background:#ef7b6f}.profile{display:flex;align-items:center;gap:11px;padding-left:20px;border-left:1px solid var(--line)}.profile strong,.profile small{display:block}.profile strong{font-size:13px}.profile small{margin-top:2px;color:var(--muted);font-size:12px}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:#fff;background:var(--green-700);font-size:13px;font-weight:700}.mobile-menu{display:none;margin-right:auto;font-size:21px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:42px 0 34px}.eyebrow{margin:0 0 8px;color:#729088;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.hero h1{margin:0;font-size:clamp(27px,3vw,36px);letter-spacing:-.035em}.hero>div>p:last-child{margin:10px 0 0;color:var(--muted);font-size:14px}.primary-button{display:inline-flex;align-items:center;gap:9px;height:45px;padding:0 19px;border:0;border-radius:11px;color:#fff;background:var(--green-700);box-shadow:0 8px 18px #1372632e;font-size:13px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.primary-button:hover{background:var(--green-800);box-shadow:0 10px 24px #13726340;transform:translateY(-1px)}.primary-button span{font-size:20px;line-height:1}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat-card{position:relative;overflow:hidden;min-height:145px;padding:24px;border:1px solid #e5ebe7;border-radius:16px;background:var(--surface);box-shadow:0 8px 28px #2b493e0b}.stat-card:after{content:"";position:absolute;right:-25px;bottom:-35px;width:105px;height:105px;border-radius:50%;background:#e7f3ee}.stat-card--blue:after{background:#e8f0f7}.stat-card--amber:after{background:#f8f0df}.stat-card--violet:after{background:#eeeaf6}.stat-card__label,.stat-card__value,.stat-card__detail{position:relative;z-index:1;display:block}.stat-card__label{margin:0 0 9px;color:var(--muted);font-size:12px}.stat-card__value{font-size:28px;letter-spacing:-.03em}.stat-card__detail{margin-top:12px;color:#829088;font-size:12px}.content-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,1fr);gap:18px;margin-top:18px}.panel{min-height:335px;padding:25px 27px;border:1px solid #e5ebe7;border-radius:16px;background:var(--surface);box-shadow:0 8px 28px #2b493e0b}.panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.panel__header h2{margin:0;font-size:17px}.panel__header a{color:var(--green-700);font-size:13px;font-weight:600}.more-button{padding:8px;letter-spacing:2px}.schedule-list{display:grid}.schedule-item{display:grid;grid-template-columns:52px 18px minmax(0,1fr) auto;align-items:center;min-height:76px;border-top:1px solid #edf1ef}.schedule-item:first-child{border-top:0}.schedule-item time{font-size:13px;font-weight:700}.schedule-item__line{position:relative;align-self:stretch}.schedule-item__line:before{content:"";position:absolute;top:0;bottom:0;left:6px;width:1px;background:#e1e8e4}.schedule-item__line:after{content:"";position:absolute;top:50%;left:3px;width:7px;height:7px;border-radius:50%;background:#8ccbb5;transform:translateY(-50%);box-shadow:0 0 0 3px #e8f5f0}.schedule-item__body strong,.schedule-item__body span{display:block}.schedule-item__body strong{font-size:13px}.schedule-item__body span{margin-top:5px;color:var(--muted);font-size:12px}.status{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:600}.status--active{color:#0a745c;background:#e0f6ed}.status--waiting{color:#77827c;background:#f0f3f1}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:clamp(24px,3vw,46px);min-height:210px}.donut{display:grid;place-items:center;width:150px;height:150px;flex:0 0 auto;border-radius:50%;background:conic-gradient(#147462 0 74%,#e9ae60 74% 87%,#d4ded9 87%)}.donut:before{content:"";grid-area:1/1;width:106px;height:106px;border-radius:50%;background:#fff}.donut>div{z-index:1;grid-area:1/1;text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:27px}.donut span{margin-top:3px;color:var(--muted);font-size:12px}.legend{display:grid;gap:18px;min-width:120px;margin:0;padding:0;list-style:none}.legend li{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:8px;color:var(--muted);font-size:12px}.legend strong{color:var(--ink);font-size:13px}.legend__dot{width:7px;height:7px;border-radius:50%}.legend__dot--present{background:#147462}.legend__dot--late{background:#e9ae60}.legend__dot--absent{background:#d4ded9}.prototype-note{margin:20px 0 0;color:#8a958f;font-size:12px;text-align:center}@media(max-width:1100px){.app-shell{grid-template-columns:220px 1fr}.sidebar{width:220px}.main{padding-inline:28px}.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{display:block}.sidebar{display:none}.main{padding:0 18px 24px}.topbar{height:68px}.mobile-menu{display:block}.profile>div,.profile>span:last-child{display:none}.hero{align-items:flex-start;padding:28px 0 24px;flex-direction:column}.hero>div>p:last-child{line-height:1.65}.stats-grid{grid-template-columns:1fr 1fr;gap:11px}.stat-card{min-height:128px;padding:19px}.stat-card__value{font-size:24px}.content-grid{gap:11px;margin-top:11px}.panel{padding:21px 18px}.donut-wrap{flex-direction:column;padding:4px 0 16px}}@media(max-width:430px){.stats-grid{grid-template-columns:1fr}.stat-card{min-height:112px}.schedule-item{grid-template-columns:45px 16px minmax(0,1fr)}.schedule-item .status{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.auth-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:15px;color:var(--green-800);background:#f4f7f5}.auth-loading__mark{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;color:#fff;background:var(--green-700);font-size:20px;font-weight:800;box-shadow:0 12px 30px #13726333}.auth-loading__bar{overflow:hidden;width:120px;height:3px;border-radius:3px;background:#dce9e4}.auth-loading__bar span{display:block;width:45%;height:100%;border-radius:inherit;background:#3ba88d;animation:loading-slide 1s ease-in-out infinite alternate}.auth-loading p{margin:0;color:var(--muted);font-size:13px}@keyframes loading-slide{to{transform:translate(125%)}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,46%) 1fr;background:#f7faf8}.login-story{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;display:flex;flex-direction:column;padding:clamp(32px,5vw,68px);color:#f4fffb;background:linear-gradient(155deg,#0a574b33,#052e2aa6),radial-gradient(circle at 76% 28%,#176f60,transparent 43%),linear-gradient(145deg,#0d6557,#073c37 70%)}.login-story:before,.login-story:after{content:"";position:absolute;z-index:-1;border:1px solid rgba(198,241,226,.12);border-radius:50%}.login-story:before{width:520px;height:520px;right:-245px;top:16%}.login-story:after{width:730px;height:730px;right:-350px;top:3%}.login-story__glow{position:absolute;z-index:-1;border-radius:50%;filter:blur(2px)}.login-story__glow--one{right:9%;top:15%;width:170px;height:170px;background:#4ab89221}.login-story__glow--two{left:-80px;bottom:5%;width:260px;height:260px;background:#268c771f}.login-brand{display:flex;align-items:center;gap:14px}.login-brand__mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:var(--green-950);background:#d8f5e9;font-weight:800;box-shadow:0 10px 26px #00000021}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:17px;letter-spacing:.04em}.login-brand small{margin-top:4px;color:#95c6b9;font-size:13px;letter-spacing:.18em}.login-story__content{width:min(470px,100%);margin:auto 0;padding:64px 0 42px}.login-kicker{margin:0 0 22px;color:#81c7b2;font-size:12px;font-weight:700;letter-spacing:.2em}.login-story h1{margin:0;font-size:clamp(39px,4.2vw,60px);line-height:1.24;letter-spacing:-.055em}.login-story__content>p:nth-of-type(2){max-width:400px;margin:24px 0 0;color:#b8d7cf;font-size:13px;line-height:1.9}.login-feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:52px}.login-feature-list>div{padding:17px 13px;border:1px solid rgba(215,244,235,.1);border-radius:13px;background:#d7f4eb0e}.login-feature-list>div>span{display:grid;place-items:center;width:28px;height:28px;margin-bottom:11px;border-radius:9px;color:#c8f4e5;background:#82d3b721;font-size:12px}.login-feature-list p,.login-feature-list strong,.login-feature-list small{display:block;margin:0}.login-feature-list strong{color:#e8f7f2;font-size:13px}.login-feature-list small{margin-top:5px;color:#81aa9f;font-size:13px;line-height:1.5}.login-story__footer{margin:auto 0 0;color:#6f9b90;font-size:12px}.login-form-side{position:relative;display:grid;place-items:center;min-width:0;padding:60px clamp(28px,8vw,120px)}.login-form-wrap{width:min(420px,100%)}.login-heading__mobile-mark{display:none}.login-heading .eyebrow{margin-bottom:11px;color:#3e8b78}.login-heading h2{margin:0;color:#17251f;font-size:32px;letter-spacing:-.04em}.login-heading>p:last-child{margin:11px 0 0;color:var(--muted);font-size:12px}.login-form{margin-top:40px}.login-form>label,.password-label label{color:#33443c;font-size:13px;font-weight:700}.password-label{display:flex;justify-content:space-between;align-items:center;margin-top:23px}.password-label span{color:#9ba59f;font-size:12px}.field-wrap{position:relative;display:flex;align-items:center;height:52px;margin-top:9px;border:1px solid #dce5e0;border-radius:12px;background:#fff;transition:border-color .2s,box-shadow .2s}.field-wrap:focus-within{border-color:#58a995;box-shadow:0 0 0 4px #35977e17}.field-wrap>span{width:45px;color:#86a097;text-align:center;font-size:14px}.field-wrap input{width:100%;min-width:0;height:100%;padding:0 13px 0 0;border:0;outline:0;color:var(--ink);background:transparent;font-size:12px}.field-wrap input::placeholder{color:#aab4ae}.field-wrap:has(.password-toggle) input{padding-right:7px}.password-toggle{flex:0 0 auto;height:32px;margin-right:9px;padding:0 8px;border:0;border-radius:8px;color:#548d7e;background:#edf6f2;font-size:12px;cursor:pointer}.login-error{display:flex;align-items:center;gap:8px;min-height:38px;margin-top:17px;padding:8px 12px;border:1px solid #f1d2cd;border-radius:10px;color:#a4463c;background:#fff3f1;font-size:12px}.login-error span{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;color:#fff;background:#d4675b;font-size:12px;font-weight:700}.login-submit{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;height:49px;margin-top:25px;border:0;border-radius:12px;color:#fff;background:var(--green-700);box-shadow:0 10px 24px #1372632e;font-size:12px;font-weight:700;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s}.login-submit:hover:not(:disabled){background:var(--green-800);box-shadow:0 12px 28px #1372633d;transform:translateY(-1px)}.login-submit:disabled{opacity:.7;cursor:wait}.login-submit span{font-size:17px}.security-note{display:flex;gap:11px;margin-top:29px;padding-top:20px;border-top:1px solid var(--line);color:#929e97}.security-note>span{color:#76a596;font-size:15px}.security-note p{margin:0;font-size:12px;line-height:1.65}.security-note strong{color:#66756d;font-weight:600}.login-copyright{position:absolute;bottom:22px;margin:0;color:#abb4af;font-size:13px}.logout-button{height:34px;padding:0 11px;border:1px solid #d9e2dd;border-radius:9px;color:#67756e;background:#fff;font-size:12px;cursor:pointer}.logout-button:hover:not(:disabled){color:#a3453b;border-color:#efd0cb;background:#fff6f4}.logout-button:disabled{opacity:.6}@media(max-width:900px){.login-page{grid-template-columns:minmax(320px,41%) 1fr}.login-story{padding:36px 30px}.login-feature-list{grid-template-columns:1fr;margin-top:34px}.login-feature-list>div{display:flex;align-items:center;gap:11px;padding:10px 12px}.login-feature-list>div>span{flex:0 0 auto;margin:0}.login-form-side{padding-inline:40px}}@media(max-width:680px){.login-page{display:block;background:linear-gradient(180deg,#eaf4f0 0,#f7faf8 240px)}.login-story{display:none}.login-form-side{min-height:100vh;align-content:center;padding:50px 23px 70px}.login-form-wrap{padding:29px 22px;border:1px solid #e3ebe7;border-radius:20px;background:#ffffffeb;box-shadow:0 18px 50px #224b3d1a}.login-heading__mobile-mark{display:grid;place-items:center;width:45px;height:45px;margin-bottom:25px;border-radius:14px;color:#fff;background:var(--green-700);font-weight:800}.login-heading h2{font-size:27px}.login-form{margin-top:32px}.login-copyright{bottom:20px}.logout-button{padding-inline:8px}.topbar__actions{gap:9px}}@media(prefers-reduced-motion:reduce){.auth-loading__bar span{animation:none;width:100%}}.nav button.nav__item{width:100%;border:0;text-align:left;background:transparent;cursor:pointer}.nav button.nav__item--active{background:#d7f8ec21}.sidebar-backdrop{display:none}.secondary-button{height:40px;padding:0 15px;border:1px solid #d9e4df;border-radius:10px;color:var(--green-800);background:#fff;font-size:13px;font-weight:700;cursor:pointer}.secondary-button:disabled{opacity:.55;cursor:wait}.text-button{padding:6px;border:0;color:var(--green-700);background:transparent;font-size:13px;font-weight:700;cursor:pointer}.text-button--danger{color:#ad5047}.empty-state{margin:22px 0;padding:25px 18px;border:1px dashed #d9e4df;border-radius:12px;color:var(--muted);background:#f9fbfa;font-size:13px;line-height:1.7;text-align:center}.milestone-placeholder{display:grid;justify-items:center;align-content:center;min-height:215px;color:var(--muted);text-align:center}.milestone-placeholder>span{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;color:var(--green-700);background:var(--green-100);font-size:20px}.milestone-placeholder h3{margin:16px 0 7px;color:var(--ink);font-size:15px}.milestone-placeholder p{max-width:290px;margin:0;font-size:12px;line-height:1.7}.management-view{padding:38px 0 30px}.management-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:25px}.management-heading h1{margin:0;font-size:clamp(25px,3vw,34px);letter-spacing:-.035em}.management-heading>div>p:last-child{margin:9px 0 0;color:var(--muted);font-size:12px}.feedback{margin-bottom:16px;padding:12px 15px;border:1px solid;border-radius:11px;font-size:13px}.feedback--error{color:#a4463c;border-color:#f0d1cc;background:#fff4f2}.feedback--success{color:#176b58;border-color:#cde8dd;background:#eff9f5}.management-loading{display:grid;place-items:center;min-height:260px;color:var(--muted);font-size:12px}.management-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;margin-bottom:18px}.management-grid--sessions{grid-template-columns:minmax(250px,.6fr) minmax(0,1.4fr)}.management-card{min-width:0;padding:24px 25px;border:1px solid #e3eae6;border-radius:16px;background:var(--surface);box-shadow:0 8px 28px #2b493e0a}.management-card--form{margin-top:18px}.management-card__header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.management-card__header h2{margin:0;font-size:17px}.management-card__header>span{flex:0 0 auto;padding:5px 9px;border-radius:999px;color:#6d7b74;background:#f0f4f2;font-size:12px}.resource-list{display:grid;gap:10px}.resource-item{position:relative;padding:15px 80px 15px 15px;border:1px solid #e8eeea;border-radius:12px;background:#fbfcfb}.resource-item__title{display:flex;align-items:center;gap:9px}.resource-item__title strong{font-size:12px}.resource-item p{margin:7px 0 4px;color:#5e6c64;font-size:12px}.resource-item small{color:#89958e;font-size:12px}.resource-item>.text-button{position:absolute;top:14px;right:12px}.management-form{display:grid;gap:14px}.management-form label{display:grid;gap:7px;color:#46564e;font-size:12px;font-weight:700}.management-form input,.management-form select,.management-form textarea{min-width:0;width:100%;height:42px;padding:0 11px;border:1px solid #dce5e0;border-radius:9px;outline:0;color:var(--ink);background:#fff;font-size:13px;font-weight:400}.management-form textarea{height:78px;padding-block:10px;resize:vertical}.management-form input:focus,.management-form select:focus,.management-form textarea:focus{border-color:#58a995;box-shadow:0 0 0 3px #35977e14}.form-row{display:grid;grid-template-columns:1.4fr .6fr;gap:12px}.management-form>.primary-button{justify-self:start;margin-top:2px}.section-chips{display:grid;gap:9px}.section-chips>div{display:grid;gap:4px;padding:13px;border:1px solid #e7ede9;border-radius:11px;background:#fafcfb}.section-chips strong{font-size:13px}.section-chips span,.section-chips small{color:var(--muted);font-size:12px}.session-table-wrap{overflow-x:auto;margin:0 -5px -5px;padding:0 5px 5px}.session-table{width:100%;min-width:730px;border-collapse:collapse}.session-table th{padding:0 9px 10px;color:#849088;font-size:12px;font-weight:600;text-align:left}.session-table td{padding:13px 9px;border-top:1px solid #edf1ef;color:#4e5d55;font-size:12px;vertical-align:middle}.session-table td strong,.session-table td small{display:block}.session-table td strong{max-width:190px;overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.session-table td small{margin-top:4px;color:#8a958f;font-size:13px}.session-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.session-status--draft{color:#7d6b36;background:#f7f0dc}.session-status--published{color:#0d755d;background:#dff5ec}.session-status--closed{color:#737d77;background:#edf0ee}.table-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}.table-actions button{padding:5px 8px;border:1px solid #d9e5df;border-radius:7px;color:var(--green-700);background:#fff;font-size:13px;cursor:pointer}.table-actions button:last-of-type{color:#8b5b52}.table-actions button:disabled{opacity:.5;cursor:wait}.table-actions span{color:#8c9690;font-size:13px}.management-form--session{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span-2{grid-column:1 / -1}.class-group-picker{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:13px;border:1px solid #dfe7e3;border-radius:10px}.class-group-picker legend{padding:0 5px;color:#46564e;font-size:12px;font-weight:700}.class-group-picker label{display:flex;grid-template-columns:none;flex-direction:row;align-items:center;gap:7px;padding:8px 10px;border-radius:8px;background:#f3f7f5;cursor:pointer}.class-group-picker input{width:14px;height:14px;margin:0;accent-color:var(--green-700);box-shadow:none}.class-group-picker small{color:#87928c;font-size:13px;font-weight:400}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:4px}.form-actions p{margin:0;color:#88938d;font-size:12px}@media(max-width:1100px){.management-grid,.management-grid--sessions{grid-template-columns:1fr}}@media(max-width:720px){.sidebar-backdrop{position:fixed;inset:0;z-index:19;display:block;border:0;background:#051e1b73}.sidebar{display:flex;z-index:20;width:min(280px,84vw);transform:translate(-105%);transition:transform .2s ease}.sidebar--open{transform:translate(0)}.management-view{padding-top:27px}.management-heading{align-items:flex-start;flex-direction:column}.management-grid{gap:11px;margin-bottom:11px}.management-card{padding:20px 17px}.management-card--form{margin-top:11px}.management-form--session{grid-template-columns:1fr}.management-form--session .span-2{grid-column:auto}.form-actions{align-items:flex-start;flex-direction:column}.session-table-wrap{margin-inline:-17px;padding-inline:17px}}@media(max-width:430px){.form-row{grid-template-columns:1fr}.management-heading h1{font-size:25px}.management-heading>div>p:last-child{line-height:1.7}}.primary-button:disabled{opacity:.6;cursor:wait;transform:none}.status--done{color:#176b58;background:#e3f5ee}.attendance-view{min-width:0}.attendance-stats{margin-bottom:18px}.attendance-session-list{display:grid;gap:15px}.attendance-session-card{padding:22px;border:1px solid #e1e9e5;border-radius:15px;background:#fff;box-shadow:0 8px 28px #163f340b}.attendance-session-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.attendance-session-card__top h2{margin:5px 0 7px;color:var(--ink);font-size:17px}.attendance-session-card__top p:last-child{margin:0;color:var(--muted);font-size:12px}.attendance-badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.attendance-badge--not_checked_in{color:#156f5c;background:#dff5ed}.attendance-badge--on_time{color:#176b58;background:#e3f5ee}.attendance-badge--late{color:#976619;background:#fff1d7}.attendance-badge--absent{color:#a2463d;background:#fff0ed}.attendance-badge--checked_out{color:#425f93;background:#eaf0ff}.attendance-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:19px 0 0}.attendance-times div{padding:11px 12px;border-radius:10px;background:#f6f9f7}.attendance-times dt{color:#8b9891;font-size:13px}.attendance-times dd{margin:5px 0 0;color:#34473e;font-size:12px;font-weight:700}.attendance-notes{margin:13px 0 0;color:#6f7e76;font-size:12px;line-height:1.7}.attendance-actions{display:flex;align-items:center;gap:10px;min-height:42px;margin-top:17px;padding-top:15px;border-top:1px solid #edf1ef}.attendance-actions small{color:#8b9690;font-size:12px}.attendance-empty{padding:50px 20px;text-align:center}.attendance-empty>span{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 15px;border-radius:13px;color:#247c67;background:#e7f6f0;font-size:18px}.attendance-empty h2{margin:0;font-size:17px}.attendance-empty p{color:var(--muted);font-size:12px}.roster-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:12px;margin-bottom:18px}.roster-toolbar label{color:#44564d;font-size:12px;font-weight:700}.roster-toolbar select{min-width:0;height:40px;padding:0 11px;border:1px solid #dce5e0;border-radius:10px;color:var(--ink);background:#fff;font-size:12px}.roster-toolbar small{grid-column:2 / -1;color:#89958e;font-size:13px}.roster-panel{min-width:0}.roster-table-wrap{max-width:100%;overflow-x:auto}.roster-table{width:100%;min-width:720px;border-collapse:collapse}.roster-table th{padding:0 10px 10px;color:#849088;font-size:12px;font-weight:600;text-align:left}.roster-table td{padding:13px 10px;border-top:1px solid #edf1ef;color:#55635c;font-size:12px}.roster-table td strong{color:var(--ink)}@media(max-width:720px){.attendance-session-card{padding:18px 16px}.attendance-session-card__top{flex-direction:column;gap:11px}.attendance-times{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-toolbar{grid-template-columns:1fr}.roster-toolbar small{grid-column:auto}.roster-table-wrap{margin-inline:-17px;padding-inline:17px}}@media(max-width:430px){.attendance-times{grid-template-columns:1fr}.attendance-actions{align-items:stretch;flex-direction:column}.attendance-actions .primary-button,.attendance-actions .secondary-button{justify-content:center;width:100%}}.m4-view{min-width:0}.m4-view>.management-card{margin-bottom:16px}.m4-request-form{grid-template-columns:repeat(2,minmax(0,1fr))}.request-grid{display:grid;gap:11px}.request-card{padding:16px;border:1px solid #e4ebe7;border-radius:12px;background:#fbfdfc}.request-card__head{display:flex;justify-content:space-between;gap:16px}.request-card__head strong{display:block;color:var(--ink);font-size:13px}.request-card__head small,.request-card>small{display:block;margin-top:5px;color:#829089;font-size:13px}.request-card>p{margin:12px 0 6px;color:#53645b;font-size:12px;line-height:1.7}.request-card .review-note{padding:9px 11px;border-radius:8px;background:#f0f5f2}.request-status{flex:0 0 auto;align-self:flex-start;padding:5px 8px;border-radius:999px;font-size:13px;font-weight:700}.request-status--pending{color:#966619;background:#fff1d7}.request-status--approved{color:#176b58;background:#e3f5ee}.request-status--rejected,.request-status--cancelled{color:#a2463d;background:#fff0ed}.review-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid #e8eeeb}.review-actions input{flex:1 1 220px;min-width:0;padding:8px 10px;border:1px solid #dce5e0;border-radius:8px;font-size:12px}.review-actions button,.pagination button{padding:7px 10px;border:1px solid #d7e2dc;border-radius:8px;color:#245f51;background:#fff;font-size:12px;font-weight:700;cursor:pointer}.review-actions .danger-text{color:#9e433a}.report-toolbar,.audit-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:16px}.report-toolbar label,.audit-toolbar label{display:grid;gap:6px;color:#4d5f56;font-size:12px;font-weight:700}.report-toolbar select,.audit-toolbar input{min-width:180px;height:38px;padding:0 10px;border:1px solid #dce5e0;border-radius:9px;background:#fff;font-size:12px}.report-summary{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:16px}.report-summary span{padding:10px;border-radius:9px;color:#829089;background:#f5f8f6;font-size:13px}.report-summary strong{display:block;margin-top:4px;color:var(--ink);font-size:14px}.audit-toolbar{align-items:end}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:13px;color:#77857d;font-size:12px}.pagination button:disabled{opacity:.45;cursor:default}@media(max-width:900px){.report-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:720px){.m4-request-form{grid-template-columns:1fr}.m4-request-form .span-2{grid-column:auto}.report-toolbar,.audit-toolbar{align-items:stretch;flex-direction:column}.report-toolbar label,.report-toolbar select,.audit-toolbar label,.audit-toolbar input{width:100%}.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.request-card__head{flex-direction:column}}.skip-link{position:fixed;z-index:100;top:10px;left:12px;padding:10px 14px;border-radius:9px;color:#fff;background:var(--green-950);font-size:12px;font-weight:700;transform:translateY(-150%);transition:transform .15s ease}.skip-link:focus{transform:translateY(0)}:where(button,a,input,select,textarea):focus-visible{outline:3px solid #f2b84b;outline-offset:3px}.brand{padding-inline:4px}.brand__logo{flex:0 0 auto;width:48px;height:48px;padding:4px;border-radius:14px;object-fit:contain;background:#fffffff5;box-shadow:0 8px 24px #00000024}.brand>div{min-width:0}.brand span{display:block;margin-top:3px;color:#c2ded6;font-size:12px}.brand small{white-space:nowrap;letter-spacing:.08em}.sidebar__help{display:flex;align-items:center;gap:10px;margin-top:auto;padding:14px 11px;border-radius:11px;color:#b7d4cb;background:#e0f8f012}.sidebar__help>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(255,255,255,.22);border-radius:50%}.sidebar__help strong,.sidebar__help small{display:block}.sidebar__help strong{font-size:12px}.sidebar__help small{margin-top:3px;color:#79a99d;font-size:13px}.sidebar__user{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:15px;border-top:1px solid rgba(204,236,227,.13)}.sidebar__user>span{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border-radius:10px;color:#0b5046;background:#d8f5e9;font-size:13px;font-weight:800}.sidebar__user>div{min-width:0;flex:1}.sidebar__user strong,.sidebar__user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__user strong{font-size:12px}.sidebar__user small{margin-top:3px;color:#7ca79c;font-size:13px}.sidebar__user button{border:0;color:#a9c9c0;background:transparent;cursor:pointer}.menu-button{display:none;margin-right:auto;border:0;color:#36554b;background:transparent;font-size:21px;cursor:pointer}.topbar>div{margin-left:auto;text-align:right}.topbar>div p{margin:0 0 5px;color:#51635a;font-size:12px}.api-status{color:#839087;font-size:13px}.api-status i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#c6a963}.api-status--ok i{background:#2daf83}.api-status--error i{background:#d9675c}.auth-loading__logo{width:58px;height:58px;padding:5px;border-radius:17px;object-fit:contain;background:#fff;box-shadow:0 12px 30px #13726333}.login-brand__logo{flex:0 0 auto;width:54px;height:54px;padding:5px;border-radius:15px;object-fit:contain;background:#fffffff7;box-shadow:0 10px 26px #00000026}.login-brand>div>span{display:block;margin-top:3px;color:#d2e8e1;font-size:12px}.login-school-wordmark{width:min(310px,72%);max-height:66px;margin-top:22px;object-fit:contain;object-position:left center;background:transparent}.login-heading__mobile-brand{display:none}@media(max-width:1100px){.brand strong{font-size:15px}.brand small{font-size:13px}}@media(max-width:720px){.menu-button{display:block}.topbar>div{display:none}.sidebar{display:flex}}@media(max-width:680px){.login-heading__mobile-brand{display:flex;align-items:center;gap:12px;margin-bottom:25px}.login-heading__mobile-brand img{width:48px;height:48px;padding:4px;border-radius:13px;object-fit:contain;background:#fff;box-shadow:0 8px 20px #13726329}.login-heading__mobile-brand strong,.login-heading__mobile-brand small{display:block}.login-heading__mobile-brand strong{color:var(--green-950);font-size:14px}.login-heading__mobile-brand small{margin-top:4px;color:#648078;font-size:12px;letter-spacing:.08em}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.register-entry{display:grid;justify-items:center;gap:8px;margin-top:18px;color:#66776e;font-size:12px}.link-button{border:0;color:var(--green-700);background:transparent;font-size:13px;font-weight:700;cursor:pointer}.link-button:hover{color:var(--green-950);text-decoration:underline}.registration-success{padding:24px;border:1px solid #cce8dd;border-radius:15px;color:#24594d;background:#effaf6;text-align:center}.registration-success>span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 16px;border-radius:50%;color:#fff;background:#2c9a78;font-size:25px;font-weight:800}.registration-success h2{margin:0;color:var(--green-950);font-size:21px}.registration-success p{margin:12px 0 20px;font-size:13px;line-height:1.8}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:22px}.section-heading h1{margin:0;color:var(--ink);font-size:clamp(25px,3vw,34px)}.section-heading p:last-child{margin:9px 0 0;color:var(--muted);font-size:12px}.admin-review-page{min-width:0;padding:34px 0}.admin-review-page>.management-card{margin-bottom:18px}.management-message{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 15px;border:1px solid #cfe7dd;border-radius:11px;color:#24604f;background:#edf8f4;font-size:12px}.management-message--error{border-color:#efd0cb;color:#9a443b;background:#fff3f1}.management-message button{border:0;color:inherit;background:transparent;font-size:18px;cursor:pointer}.review-request-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.review-request{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:16px;border:1px solid #e1e9e5;border-radius:13px;background:#fbfdfc}.review-request>div:first-child strong,.review-request>div:first-child span,.review-request>div:first-child small{display:block}.review-request>div:first-child strong{color:var(--ink);font-size:12px}.review-request>div:first-child span{margin-top:4px;color:#53645b;font-size:12px}.review-request>div:first-child small{margin-top:5px;color:#87938c;font-size:13px}.review-request>input{grid-column:1 / -1;min-width:0;height:38px;padding:0 10px;border:1px solid #dce5e0;border-radius:9px;background:#fff;font-size:12px}.review-request>.review-actions{grid-column:1 / -1}.review-request--approved{border-color:#cfe8de;background:#f5fbf8}.review-request--rejected{border-color:#efd8d3;background:snow}.admin-review-page textarea{width:min(360px,100%);min-height:66px;padding:9px 10px;border:1px solid #dce5e0;border-radius:9px;resize:vertical;font-size:12px}.toggle-label{display:inline-flex;align-items:center;gap:8px;color:#58685f;font-size:12px;cursor:pointer}.toggle-label input{width:17px;height:17px;accent-color:#b65046}.attendance-badge--excused{color:#315f9b;background:#e9f1ff}.location-verification-note{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:13px 16px;border:1px solid #d7e5ef;border-radius:12px;color:#496675;background:#f4f9fc;font-size:12px;line-height:1.7}.location-verification-note strong{flex:0 0 auto;color:#244f62}.personal-evaluation{display:flex;align-items:center;gap:14px;margin:0 0 16px;padding:13px 15px;border:1px solid #e2e9e5;border-radius:12px;background:#fbfdfc}.personal-evaluation p{margin:0;color:#68786f;font-size:12px;line-height:1.6}.evaluation-badge{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:78px;padding:7px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.evaluation-badge--gold{color:#176b58;border-color:#cae6dc;background:#e8f4ef}.evaluation-badge--green{color:#176b58;border-color:#cae6dc;background:#e3f5ee}.evaluation-badge--orange{color:#956217;border-color:#f0d7a7;background:#fff1d7}.evaluation-badge--red{color:#a33f36;border-color:#f0cbc5;background:#fff0ed}.evaluation-badge--neutral{color:#68746d;border-color:#dfe5e1;background:#f1f4f2}.report-period{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;color:#718078;font-size:12px}.report-period strong{color:var(--ink);font-size:12px}.report-toolbar input{min-width:165px;height:38px;padding:0 10px;border:1px solid #dce5e0;border-radius:9px;background:#fff;font-size:12px}.request-list{display:grid;gap:11px}.request-card__head span{display:block;margin-top:5px;color:#829089;font-size:13px}.request-card blockquote{margin:12px 0 6px;padding:10px 12px;border-left:3px solid #a9cabf;color:#53645b;background:#f5f8f6;font-size:12px;line-height:1.7}.section-subheading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 12px}.section-subheading h3{margin:0;color:var(--ink);font-size:14px}.section-subheading span{color:#839088;font-size:13px}.student-evaluation-section{margin-bottom:20px}.attendance-calendar-panel{margin:16px 0 20px;padding:16px;border:1px solid #e3ebe7;border-radius:14px;background:#fbfdfc}.attendance-calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}.attendance-calendar-heading h3{margin:0;color:var(--ink);font-size:14px}.attendance-calendar-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;color:#738078;font-size:13px}.attendance-calendar-legend span{display:inline-flex;align-items:center;gap:4px}.calendar-dot{width:8px;height:8px;border-radius:3px;background:#edf1ef}.calendar-dot--on_time{background:#62bd96}.calendar-dot--late{background:#e3ac45}.calendar-dot--absent{background:#df7469}.calendar-dot--excused{background:#70a2db}.calendar-dot--pending{background:#a5afa9}.attendance-calendar{display:grid;grid-template-columns:repeat(7,minmax(42px,1fr));gap:7px}.calendar-day{position:relative;min-height:62px;padding:9px;border:1px solid transparent;border-radius:10px;color:#627169;background:#f1f4f2}.calendar-day strong,.calendar-day span,.calendar-day small{display:block}.calendar-day strong{color:var(--ink);font-size:12px}.calendar-day span{margin-top:7px;font-size:13px;font-weight:700}.calendar-day small{position:absolute;right:7px;bottom:6px;font-size:13px;opacity:.75}.calendar-day--on_time{border-color:#c7e4d8;color:#176b58;background:#e7f6ef}.calendar-day--late{border-color:#eed5a3;color:#8e5d15;background:#fff3dc}.calendar-day--absent{border-color:#efc9c3;color:#9d4138;background:#fff0ed}.calendar-day--excused{border-color:#cbdcf0;color:#315f9b;background:#edf4ff}.calendar-day--pending{border-color:#dce2de;color:#68746d;background:#f1f4f2}.calendar-day--empty{color:#a3ada7;background:#fafbfa}.display-page{min-height:calc(100vh - 112px);padding:22px;border-radius:22px;color:#eefaf6;background:radial-gradient(circle at 82% 5%,rgba(68,173,139,.24),transparent 27%),linear-gradient(150deg,#062f2c,#0a4b43 62%,#073834);box-shadow:0 24px 55px #052f2b33}.display-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(214,241,232,.14)}.display-brand{display:flex;align-items:center;gap:13px}.display-brand img{width:50px;height:50px;padding:4px;border-radius:14px;object-fit:contain;background:#fff}.display-brand strong,.display-brand span{display:block}.display-brand strong{font-size:16px}.display-brand span{margin-top:4px;color:#9fc8bc;font-size:12px;letter-spacing:.12em}.display-header time{color:#c6dfd8;font-size:13px}.display-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:18px 0}.display-controls label{display:grid;gap:6px;color:#9fc8bc;font-size:13px;font-weight:700}.display-controls select{min-width:220px;height:40px;padding:0 11px;border:1px solid rgba(220,243,236,.2);border-radius:10px;color:#eefaf6;background:#ffffff17;font-size:12px}.display-controls option{color:#17342d;background:#fff}.display-controls>span{margin-left:auto;color:#82b5a7;font-size:13px}.display-error,.display-empty{padding:24px;border:1px dashed rgba(222,243,237,.25);border-radius:14px;color:#c6dfd8;text-align:center}.display-error{border-style:solid;color:#ffd5d0;background:#9e393029}.display-plan{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px;border:1px solid rgba(215,241,232,.13);border-radius:16px;background:#ffffff12}.display-plan p,.display-plan h1{margin:0}.display-plan p{color:#82b5a7;font-size:13px;letter-spacing:.12em}.display-plan h1{margin-top:6px;font-size:clamp(21px,3vw,34px)}.display-plan>div>span{display:block;margin-top:7px;color:#b6d5cc;font-size:12px}.display-progress{flex:0 0 auto;text-align:right}.display-progress strong,.display-progress span{display:block}.display-progress strong{font-size:27px}.display-progress span{color:#95c1b5;font-size:13px}.display-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:14px 0}.display-stats>div{padding:13px;border-radius:12px;background:#ffffff12}.display-stats span,.display-stats strong{display:block}.display-stats span{color:#a8cdc3;font-size:13px}.display-stats strong{margin-top:5px;font-size:22px}.display-stats .green strong{color:#76ddb5}.display-stats .orange strong{color:#f2c76f}.display-stats .blue strong{color:#8dbcec}.display-stats .red strong{color:#f18c82}.display-stats .violet strong{color:#c4a9ee}.display-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.display-student{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid rgba(222,243,237,.1);border-radius:13px;background:#ffffff0f}.display-student__avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#0b4c42;background:#d8f4ea;font-size:13px;font-weight:800}.display-student strong,.display-student small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-student strong{font-size:13px}.display-student small{margin-top:4px;color:#9fc4ba;font-size:13px}.display-student b{padding:5px 7px;border-radius:999px;color:#bcd9d1;background:#ffffff14;font-size:13px}.display-student--on_time b,.display-student--checked_out b{color:#79dcb6}.display-student--late b{color:#f2c76f}.display-student--absent b{color:#f18c82}.display-student--excused b{color:#8dbcec}.display-quote{display:flex;align-items:center;gap:16px;margin-top:16px;padding:14px 17px;border-radius:13px;background:#d7f2e914}.display-quote span{flex:0 0 auto;color:#79d2b4;font-size:13px;font-weight:800;letter-spacing:.12em}.display-quote strong{color:#deeee9;font-size:12px;font-weight:500}@media(max-width:1050px){.display-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.display-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.review-request-grid{grid-template-columns:1fr}}@media(max-width:720px){.section-heading,.attendance-calendar-heading,.display-header,.display-plan,.display-quote{align-items:stretch;flex-direction:column}.location-verification-note,.personal-evaluation{align-items:flex-start;flex-direction:column}.attendance-calendar{grid-template-columns:repeat(4,minmax(48px,1fr))}.attendance-calendar-legend{justify-content:flex-start}.display-page{min-height:auto;padding:15px;border-radius:16px}.display-controls{align-items:stretch;flex-direction:column}.display-controls select{width:100%;min-width:0}.display-controls>span{margin-left:0}.display-roster{grid-template-columns:1fr}.display-progress{text-align:left}}@media(max-width:460px){.attendance-calendar{grid-template-columns:repeat(3,minmax(48px,1fr))}.display-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--surface-soft: #f8fbf9;--line-strong: #d8e3dd;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--shadow-card: 0 10px 30px rgba(31, 70, 56, .06)}body{color:var(--ink);background:radial-gradient(circle at 92% 0,rgba(84,174,143,.08),transparent 26rem),#f4f7f5;font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button{min-height:40px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(36,143,113,.24);outline-offset:2px}.main{padding-inline:clamp(22px,4vw,54px)}.topbar{min-height:84px;height:auto;padding-block:16px}.topbar p{font-size:14px}.api-status{font-size:12px}.hero{padding-block:clamp(30px,5vw,48px) 30px}.hero h1{font-size:clamp(28px,3.2vw,40px);line-height:1.18}.hero>p:last-child,.hero>div>p:last-child{max-width:720px;font-size:15px;line-height:1.75}.eyebrow{margin-bottom:10px;font-size:12px;letter-spacing:.1em}.nav__item{position:relative;min-height:50px;height:auto;line-height:1.3}.nav__item small{margin-left:auto;padding:3px 7px;border:1px solid rgba(219,245,236,.2);border-radius:999px;color:#bfe3d8;font-size:11px;font-weight:600}.sidebar__help,.sidebar__user{border-radius:var(--radius-md)}.stat-card,.schedule-card,.quick-card,.management-card,.attendance-panel,.m4-card,.review-panel,.attendance-calendar-panel,.registration-review-card{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.section-heading h1,.section-heading h2{line-height:1.25}.section-heading p{max-width:760px;line-height:1.7}.management-card__header,.section-heading{gap:20px}.management-card__header h2,.section-heading h2{font-size:18px}.management-form label,.review-form label,.report-toolbar label{gap:8px;font-size:13px}.management-form input,.management-form select,.management-form textarea,.review-form input,.review-form select,.review-form textarea,.report-toolbar input,.report-toolbar select{min-height:44px;border-color:var(--line-strong);border-radius:var(--radius-sm);font-size:14px}.primary-button,.secondary-button,.text-button,.logout-button{font-size:13px}.primary-button,.secondary-button,.logout-button{min-height:42px}.session-table th,.roster-table th{font-size:12px;letter-spacing:.01em}.session-table td,.roster-table td{font-size:13px;line-height:1.55}.session-table td strong,.roster-table td strong{font-size:13px}.session-status,.attendance-status,.evaluation-badge,.table-actions button{font-size:12px}.table-actions button{min-height:34px;padding-inline:10px}.roster-table-wrap,.session-table-wrap{overscroll-behavior-inline:contain;scrollbar-width:thin}.display-page{padding:clamp(20px,3vw,36px);border-radius:22px}.display-brand img{width:50px;height:50px}.display-brand strong{font-size:clamp(16px,2vw,21px)}.display-brand span{margin-top:5px;font-size:12px;letter-spacing:.08em}.display-clock{display:grid;justify-items:end;gap:7px}.display-header time{font-size:14px}.display-readonly{padding:5px 9px;border:1px solid rgba(207,240,229,.2);border-radius:999px;color:#bde7d9;background:#ffffff0f;font-size:12px;font-weight:700}.display-controls{gap:16px;padding-block:22px}.display-controls label{gap:8px;font-size:13px}.display-controls select{min-width:min(310px,38vw);height:44px;font-size:14px}.display-refresh{margin-left:auto;color:#a7cfc4;font-size:12px}.display-plan{padding:clamp(20px,3vw,28px);border-radius:18px}.display-plan p{font-size:12px}.display-plan h1{margin-top:8px;font-size:clamp(24px,3.5vw,38px);line-height:1.2}.display-plan>div>span{font-size:14px}.display-progress strong{font-size:clamp(28px,4vw,42px)}.display-progress span{font-size:12px}.display-stats{gap:12px;margin-block:18px}.display-stats>div{padding:17px;border:1px solid rgba(225,246,239,.08);border-radius:14px}.display-stats span{font-size:13px}.display-stats strong{font-size:clamp(24px,3vw,34px)}.display-student{min-height:72px;padding:14px}.display-student__avatar{width:40px;height:40px;font-size:14px}.display-student strong{font-size:14px}.display-student small{margin-top:3px;font-size:12px}.display-student b{padding:6px 9px;font-size:12px}.display-self{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px;padding:clamp(20px,3vw,28px);border:1px solid rgba(222,244,236,.15);border-radius:18px;background:#ffffff13}.display-self__identity{display:flex;align-items:center;gap:14px}.display-self__identity>span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:#0c5548;background:#d9f4eb;font-size:17px;font-weight:800}.display-self__identity small,.display-self__identity strong{display:block}.display-self__identity small{color:#9fc9bd;font-size:12px}.display-self__identity strong{margin-top:3px;color:#f3fbf8;font-size:18px}.display-self>b{padding:8px 13px;border-radius:999px;color:#d8ece6;background:#ffffff17;font-size:14px}.display-self--on_time>b,.display-self--checked_out>b{color:#78ddb5}.display-self--late>b{color:#f2c76f}.display-self--absent>b{color:#f18c82}.display-self--excused>b{color:#8dbcec}.display-self>p{grid-column:1 / -1;margin:0;color:#a8cec3;font-size:13px}.display-quote{padding:17px 20px}.display-quote span{font-size:12px}.display-quote strong{font-size:14px;line-height:1.6}@media(max-width:900px){.main{padding-inline:22px}.section-heading{align-items:flex-start;flex-direction:column}.management-grid,.management-grid--wide,.management-form--session{grid-template-columns:1fr}.span-2{grid-column:auto}}@media(max-width:720px){.main{padding:0 16px 24px}.topbar{min-height:68px;padding-block:10px}.topbar>div p{font-size:13px}.api-status{font-size:11px}.hero{padding-block:28px 22px}.hero h1{font-size:28px}.hero>p:last-child,.hero>div>p:last-child{font-size:14px}.stats-grid,.quick-grid,.report-summary{grid-template-columns:1fr 1fr}.management-card,.attendance-panel,.m4-card,.review-panel{padding:18px}.form-row{grid-template-columns:1fr}.form-actions{align-items:stretch;flex-direction:column}.form-actions .primary-button,.form-actions .secondary-button{width:100%;justify-content:center}.display-page{padding:18px;border-radius:18px}.display-clock{justify-items:start}.display-controls select{min-width:0}.display-refresh{margin-left:0}.display-self{grid-template-columns:1fr}.display-self>b{justify-self:start}.display-self>p{grid-column:auto}}@media(max-width:460px){.stats-grid,.quick-grid,.report-summary{grid-template-columns:1fr}.display-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.display-brand{align-items:flex-start}.display-brand img{width:42px;height:42px}}.weekday-picker{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:14px;border:1px solid #dfe7e3;border-radius:11px;background:#fbfcfb}.weekday-picker legend{padding:0 6px;color:#46564e;font-size:12px;font-weight:700}.management-form .weekday-picker label{display:inline-flex;grid-template-columns:none;align-items:center;gap:7px;padding:8px 12px;border:1px solid #dce6e1;border-radius:999px;color:#53645b;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.management-form .weekday-picker label.is-selected{color:#0f6b56;border-color:#87c9b7;background:#e8f7f1}.management-form .weekday-picker input{width:15px;height:15px;margin:0;accent-color:#248b70}.schedule-rule-note,.form-help{display:flex;align-items:flex-start;gap:10px;margin:0;padding:11px 13px;border:1px solid #d7ebe3;border-radius:10px;color:#45675b;background:#f1faf6;font-size:12px;line-height:1.6}.schedule-rule-note strong{flex:0 0 auto;color:#176b58}.m4-forms-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.recurring-exemption-card{margin-top:18px}.recurring-exemption-form .weekday-picker{width:100%}.recurring-review-card{margin-top:18px}.attendance-badge--class{color:#5b43a0;background:#eee9ff}.commendation-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.commendation-badge{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:800;line-height:1;white-space:nowrap}.commendation-badge--early_check_in{color:#136b52;border-color:#b9e2d3;background:#e8f8f1}.commendation-badge--late_check_out{color:#17687a;border-color:#b9dfe7;background:#e9f8fb}.attendance-times{grid-template-columns:repeat(5,minmax(0,1fr))}.display-stats{grid-template-columns:repeat(7,minmax(0,1fr))}.display-stats .cyan strong{color:#72d4df}.display-self__status,.display-student__status{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px}.display-self__status>b,.display-student__status>b{padding:7px 11px;border-radius:999px;color:#d8ece6;background:#ffffff17;font-size:13px}.display-self--on_time .display-self__status>b,.display-self--checked_out .display-self__status>b{color:#78ddb5}.display-self--late .display-self__status>b{color:#f2c76f}.display-self--absent .display-self__status>b{color:#f18c82}.display-self--excused .display-self__status>b{color:#8dbcec}.display-self--class .display-self__status>b{color:#c4a9ee}.display-page .commendation-badge{border-color:#ffffff24;background:#ffffff17}.display-page .commendation-badge--early_check_in{color:#76ddb5}.display-page .commendation-badge--late_check_out{color:#72d4df}@media(max-width:1100px){.display-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-times{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.m4-forms-grid{grid-template-columns:1fr}}@media(max-width:720px){.attendance-times{grid-template-columns:repeat(2,minmax(0,1fr))}.display-self__status,.display-student__status{justify-content:flex-start}}.management-card__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.management-card__actions>span{padding:5px 9px;border-radius:999px;color:#6d7b74;background:#f0f4f2;font-size:12px}.inline-guidance{margin:-8px 0 16px;color:#8a5a16;font-size:13px}.form-action-buttons{display:flex;justify-content:flex-end;gap:10px}@media(max-width:720px){.management-card__actions,.form-action-buttons{width:100%}.management-card__actions .primary-button,.form-action-buttons button{flex:1}}.session-table-wrap{max-height:520px;overflow:auto}.session-table{min-width:660px;table-layout:fixed}.session-table thead th{position:sticky;z-index:1;top:0;padding-top:4px;background:var(--surface)}.session-table th,.session-table td{padding-inline:8px}.session-table th:nth-child(1){width:27%}.session-table th:nth-child(2){width:18%}.session-table th:nth-child(3){width:19%}.session-table th:nth-child(4){width:15%}.session-table th:nth-child(5){width:9%}.session-table th:nth-child(6){width:12%}.session-table td{padding-block:10px}.session-table td strong{max-width:100%}.session-date,.session-time{color:var(--ink);font-weight:700;white-space:nowrap}.session-table td .session-time{font-size:14px}.display-auto-plan{display:grid;min-width:240px;gap:4px;padding:8px 12px;border:1px solid rgba(220,243,236,.16);border-radius:10px;background:#ffffff0f}.display-auto-plan span{color:#86b9aa;font-size:11px;font-weight:700;letter-spacing:.08em}.display-auto-plan strong{max-width:310px;overflow:hidden;color:#eefaf6;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.display-auto-plan small{color:#b2d3ca;font-size:12px}.display-plan__heading{display:flex;align-items:center;gap:10px}.display-plan-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:0}.display-plan-status--draft{color:#ffe9a8;background:#d8ac3e2e}.display-plan-status--published{color:#8aebc4;background:#4fbf952e}.display-plan-status--closed{color:#c5d5d0;background:#bfd3cc21}@media(max-width:720px){.session-table-wrap{max-height:none;overflow:visible;margin-inline:0;padding-inline:0}.session-table{display:block;min-width:0}.session-table thead{display:none}.session-table tbody{display:grid;gap:10px}.session-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;padding:13px;border:1px solid #e5ece8;border-radius:12px;background:#fbfcfb}.session-table td{display:block;min-width:0;padding:0;border:0}.session-table td:before{display:block;margin-bottom:4px;color:#8a958f;content:attr(data-label);font-size:11px;font-weight:600}.session-table td:first-child{grid-column:1 / -1;padding-bottom:9px;border-bottom:1px solid #edf1ef}.session-table td:last-child{align-self:end}.session-table td strong{white-space:normal}.display-auto-plan{min-width:0}.display-auto-plan strong{max-width:none}.display-plan__heading{align-items:flex-start;justify-content:space-between}}
