@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,sans-serif;color:#213d38;background:#f6f5f1;font-synthesis:none;font-smooth:always;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}::selection{background:#dceae2;color:#173e36}:focus-visible{outline:3px solid #b8884d;outline-offset:2px}a{color:#176855;text-underline-offset:3px}h1,h2,h3,h4,p{margin-top:0}.loading-screen{min-height:100vh;display:grid;place-items:center;color:#58736c}.site-header{height:76px;background:#fff;border-bottom:1px solid #e6e9e2}.header-inner{max-width:1440px;padding:0 48px;margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;line-height:1.2}.brand-mark{width:40px;height:40px;background:#1b5a4d;color:#fff;border-radius:11px;display:grid;place-items:center}.brand strong{display:block;font-size:17px;letter-spacing:.025em}.brand small{display:block;color:#7b8f87;font-size:11px;letter-spacing:.08em;margin-top:3px}.header-actions{display:flex;align-items:center;gap:27px}.header-label{font-size:13px;color:#70817a}.logout-button{border:0;background:none;color:#5e766e;display:flex;align-items:center;gap:7px;font-size:13px;padding:10px}.logout-button:hover{color:#174f42}.main-content{max-width:1440px;margin:auto;padding:46px 48px 90px}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:33px}.page-intro h1{font-size:32px;letter-spacing:-.025em;line-height:1.3;margin:0 0 8px;font-weight:700}.page-intro p{font-size:14px;color:#71857c;margin:0}.primary-button,.secondary-button,.small-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:9px;font-size:13px;font-weight:700;padding:0 17px;white-space:nowrap;transition:background .2s,transform .2s,box-shadow .2s}.primary-button{background:#1a5b4d;border:1px solid #1a5b4d;color:#fff;box-shadow:0 5px 12px #0f46371f}.primary-button:hover:not(:disabled){background:#13483c;transform:translateY(-1px);box-shadow:0 7px 17px #0f46372e}.secondary-button{background:#fff;border:1px solid #d7e1d9;color:#275447}.secondary-button:hover{background:#f1f7f2}.new-course{height:45px;padding:0 19px}.icon-button{width:34px;height:34px;border:0;background:transparent;color:#526e62;border-radius:7px;display:grid;place-items:center}.icon-button:hover{background:#eff4ee;color:#174e40}.text-button{border:0;background:none;color:#1b6b56;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:5px;padding:2px 0}.text-button:hover{text-decoration:underline}.calendar-section{background:#fff;border:1px solid #e4e9e2;border-radius:15px;overflow:hidden;box-shadow:0 8px 28px #263f3209}.calendar-toolbar{min-height:82px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.month-control{display:flex;align-items:center;gap:18px}.month-control h2{font-size:22px;letter-spacing:-.02em;margin:0;font-weight:700;min-width:144px}.month-buttons{display:flex;gap:2px}.today-button{background:#f3f6f1;border:0;color:#316255;font-size:12px;font-weight:700;border-radius:7px;padding:9px 12px}.today-button:hover{background:#e8f0e9}.calendar-hint{margin:0;color:#8a9a90;font-size:12px}.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid #e8ece6;border-bottom:1px solid #e8ece6;background:#f9faf7}.weekday-row>div{padding:12px 14px;color:#779086;font-weight:700;font-size:12px}.weekday-row>div:nth-last-child(-n+2){color:#9c9d83}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(126px,auto)}.day-cell,.empty-day{min-width:0;border:0;border-right:1px solid #edf0ea;border-bottom:1px solid #edf0ea;background:#fff;text-align:left;padding:11px 10px;display:flex;flex-direction:column;gap:10px}.day-cell:nth-child(7n),.empty-day:nth-child(7n){border-right:0}.day-cell:hover{background:#f6faf6}.empty-day{background:#fafbf8}.day-number{font-weight:700;color:#395b50;font-size:13px;display:flex;align-items:center;gap:7px}.is-today .day-number{color:#fff;background:#1b5b4e;border-radius:8px;padding:4px 6px;align-self:flex-start;margin:-4px -6px}.day-number em{font-size:10px;font-style:normal;font-weight:600;opacity:.8}.day-courses{display:flex;flex-direction:column;gap:4px;min-width:0}.course-chip{display:flex;gap:5px;align-items:center;min-width:0;background:#eaf3ec;color:#245b48;border-radius:5px;font-size:11px;line-height:1.5;padding:4px 6px;white-space:nowrap;overflow:hidden}.course-chip strong{font-weight:700;flex-shrink:0}.course-chip span{overflow:hidden;text-overflow:ellipsis}.more-courses{font-size:11px;color:#4b806c;padding-left:6px}.pending-section{margin-top:40px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section-head h2{font-size:21px;letter-spacing:-.02em;margin:0 0 5px}.section-head p{font-size:13px;color:#809188;margin:0}.pending-count{color:#527b68;background:#e5eee5;border-radius:30px;padding:6px 12px;font-size:12px;font-weight:700}.pending-list{background:#fff;border:1px solid #e4e9e2;border-radius:13px;overflow:hidden}.pending-item{width:100%;border:0;border-bottom:1px solid #ebeee9;background:#fff;display:flex;align-items:center;gap:24px;text-align:left;padding:19px 22px;color:#244238}.pending-item:last-child{border-bottom:0}.pending-item:hover{background:#f8faf7}.pending-main{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}.pending-topic{font-weight:700;font-size:15px}.pending-school{font-size:12px;color:#7b8e83;display:flex;align-items:center;gap:5px}.pending-meta{display:flex;gap:18px;align-items:center;color:#63786e;font-size:12px}.pending-status{color:#9b743e;background:#fbf4e9;padding:6px 9px;border-radius:5px;display:flex;align-items:center;gap:5px}.pending-arrow{color:#9aaba1}.empty-pending{background:#fff;border:1px dashed #d8e2d9;border-radius:12px;min-height:112px;padding:25px 27px;display:flex;align-items:center;gap:17px}.empty-icon{width:48px;height:48px;background:#eef4ec;color:#639078;border-radius:11px;display:grid;place-items:center;flex-shrink:0}.empty-pending strong{font-size:14px}.empty-pending p{font-size:12px;color:#829187;margin:5px 0 0}.load-error{padding:12px 16px;border-radius:9px;background:#fff2ee;color:#a53d30;margin-bottom:18px;font-size:13px}.load-error button{background:none;border:0;color:inherit;text-decoration:underline;margin-left:8px}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;background:#132a2285;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .18s ease-out}.modal{width:min(100%,560px);max-height:min(90vh,900px);overflow-y:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px #0b231b38;animation:riseIn .25s cubic-bezier(.2,.8,.2,1)}.modal-wide{width:min(100%,680px)}.modal-head{padding:23px 27px 18px;border-bottom:1px solid #edf0eb;display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:19px;margin:0;letter-spacing:-.02em}.course-form{padding:23px 27px 26px}.field{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.field label,.field-heading{font-size:12px;font-weight:700;color:#435f53}.field label b{color:#ba6949}.field input,.field select,.add-teacher input,.login-card input,.feedback-block textarea{width:100%;border:1px solid #dbe4dc;border-radius:8px;background:#fff;color:#244339;outline:0;padding:11px 12px;font-size:13px;min-height:42px;transition:border-color .2s,box-shadow .2s}.field input:focus,.field select:focus,.add-teacher input:focus,.login-card input:focus,.feedback-block textarea:focus{border-color:#479273;box-shadow:0 0 0 3px #e5f1e7}.field input::placeholder,.add-teacher input::placeholder,.login-card input::placeholder,.feedback-block textarea::placeholder{color:#9aaba0}.field-row{display:flex;gap:14px}.course-form>.field{margin-top:20px}.teacher-add{margin-top:10px}.add-teacher{display:flex;gap:8px;align-items:center;margin-top:10px}.small-button{background:#e9f2e9;border:0;color:#25604e;min-height:42px}.form-divider{height:1px;background:#edf0eb;margin:22px 0}.field-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.check-label{display:flex;align-items:center;gap:6px;font-weight:500;cursor:pointer}.check-label input{accent-color:#1b5a4d;width:15px;height:15px}.time-heading{margin-top:20px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:28px}.danger-button{border:0;background:none;color:#b05242;display:inline-flex;align-items:center;gap:6px;font-size:12px;margin-right:auto}.danger-button:hover{text-decoration:underline}.form-error{font-size:12px;color:#b83f35;background:#fff2ed;padding:9px 11px;border-radius:6px;margin:14px 0 0}.day-modal-body{padding:22px 27px 27px}.day-modal-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#71857a;font-size:13px}.day-course-list{margin-top:18px;border-top:1px solid #e8eee8}.day-course{width:100%;background:#fff;border:0;border-bottom:1px solid #e8eee8;padding:19px 2px;display:flex;gap:20px;align-items:center;text-align:left;color:#2a4c3c}.day-course:hover{background:#f7faf7}.day-course-time{width:90px;flex-shrink:0;color:#1b6a53;font-size:12px;display:flex;flex-direction:column;gap:3px}.day-course-time strong{font-size:16px}.day-course-content{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}.day-course-content strong{font-size:14px}.day-course-content span,.day-course-content small{font-size:12px;color:#778a7e}.day-course-content small{color:#40806b}.day-empty{display:flex;align-items:center;flex-direction:column;padding:52px 0 29px;color:#95aa99}.day-empty p{font-size:13px;margin:15px 0 0}.detail-panel{padding:25px 27px 27px}.detail-top{display:flex;justify-content:space-between;gap:20px;align-items:start}.detail-date{color:#708a79;font-size:12px;font-weight:700;margin-bottom:10px}.detail-top h3{font-size:23px;margin:0;letter-spacing:-.02em}.detail-edit{min-height:36px;font-size:12px}.detail-meta{display:flex;align-items:center;gap:22px;margin:22px 0 26px;color:#596f61;font-size:13px}.detail-meta>span{display:flex;align-items:center;gap:7px}.person-dot{height:16px;width:16px;border-radius:50%;background:#dcebe1;position:relative}.person-dot:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#659478;top:5px;left:5px}.feedback-block{border-top:1px solid #e9eee9;padding-top:23px}.feedback-title{display:flex;align-items:baseline;gap:10px}.feedback-title h4{font-size:15px;margin:0 0 12px}.feedback-title span{font-size:11px;color:#97a599}.feedback-block textarea{resize:vertical;min-height:136px;line-height:1.7}.attachment-link,.upload-control{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:12px;width:max-content;max-width:100%}.upload-control{color:#37735c;cursor:pointer}.upload-control input{position:absolute;width:1px;height:1px;opacity:0}.feedback-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.toast{position:fixed;z-index:200;bottom:28px;left:50%;transform:translate(-50%);background:#1d5b4d;color:#fff;box-shadow:0 9px 24px #113f3033;padding:11px 17px;border-radius:8px;display:flex;gap:8px;align-items:center;font-size:13px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#f6f5f1}.login-decoration{background:#1a5b4d;overflow:hidden;position:relative;display:grid;place-items:center}.login-decoration:before,.login-decoration:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.11);border-radius:50%}.login-decoration:before{width:650px;height:650px;left:-330px;top:-270px}.login-decoration:after{width:780px;height:780px;right:-550px;bottom:-360px}.login-calendar{width:min(64%,430px);aspect-ratio:1.04;background:#f6f5ed;border-radius:13px;padding:28px;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:11px;box-shadow:25px 35px 80px #03231a40;transform:rotate(-7deg)}.login-calendar span{font-size:12px;color:#8ba08f;display:grid;place-items:center;font-weight:700}.login-calendar i{border-radius:5px;background:#e4eae0}.login-calendar i.marked{background:#c2d7b8}.login-card{width:min(100%,415px);margin:auto;padding:36px}.login-card .brand-mark{width:48px;height:48px;margin-bottom:30px}.login-company{font-size:13px;color:#387a5f;letter-spacing:.14em;font-weight:700;margin:0 0 8px}.login-card h1{font-size:34px;margin:0 0 12px;letter-spacing:-.03em}.login-intro{color:#7d8e82;font-size:14px;line-height:1.8;margin-bottom:39px}.login-card form{display:flex;flex-direction:column}.login-card label{font-weight:700;font-size:13px;margin-bottom:10px}.login-card input{height:48px}.login-submit{height:48px;margin-top:17px;width:100%;font-size:14px}.login-foot{font-size:12px;color:#a3ada3;text-align:center;margin:34px 0 0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.header-inner,.main-content{padding-left:24px;padding-right:24px}.days-grid{grid-auto-rows:minmax(105px,auto)}.day-cell,.empty-day{padding:8px 6px}.course-chip{font-size:10px;display:block}.course-chip strong{margin-right:4px}.calendar-hint{display:none}}@media(max-width:650px){.site-header{height:66px}.header-inner,.main-content{padding-left:17px;padding-right:17px}.main-content{padding-top:32px}.header-label{display:none}.page-intro{align-items:start;flex-direction:column;margin-bottom:24px;gap:20px}.page-intro h1{font-size:28px}.new-course{width:100%}.calendar-section{border-radius:11px}.calendar-toolbar{padding:17px;min-height:70px}.month-control{gap:6px;flex-wrap:wrap}.month-control h2{font-size:19px;min-width:125px}.today-button{padding:8px 9px}.calendar-scroll{overflow-x:auto}.calendar-grid{min-width:700px}.weekday-row>div{padding:10px}.days-grid{grid-auto-rows:minmax(102px,auto)}.day-cell{padding:7px}.course-chip{font-size:10px}.pending-section{margin-top:31px}.section-head h2{font-size:19px}.pending-item{padding:16px;gap:10px}.pending-meta{flex-direction:column;align-items:flex-end;gap:7px}.pending-arrow{display:none}.empty-pending{padding:18px}.modal-backdrop{padding:10px;align-items:flex-end}.modal{border-radius:16px 16px 0 0;max-height:94vh;width:100%}.modal-head,.course-form,.day-modal-body,.detail-panel{padding-left:20px;padding-right:20px}.field-row{gap:10px}.detail-top{flex-direction:column}.detail-meta{flex-wrap:wrap}.login-page{display:block}.login-decoration{display:none}.login-card{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:32px}.login-card .brand-mark{margin-bottom:28px}.login-foot{margin-top:50px}}
