html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}.forgot-password-panel{width:100%}.forgot-password-header{margin-bottom:20px}.forgot-password-title{margin:0 0 8px;font-size:20px;font-weight:600;color:#1f2937}.forgot-password-hint{margin:0;font-size:13px;line-height:1.5;color:#6b7280}.forgot-code-row{display:flex;gap:10px;align-items:flex-start}.forgot-code-row .ant-form-item{flex:1;margin-bottom:0}.forgot-code-btn{min-width:108px;flex-shrink:0}.forgot-submit-btn{background:#8ecf9c!important;border-color:#8ecf9c!important}.forgot-submit-btn:hover:not(:disabled){background:#6bbf7b!important;border-color:#6bbf7b!important}.forgot-back-btn{color:#6b7280!important;padding:0}.forgot-back-btn:hover{color:#4b9b50!important}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f8f9fa;padding:76px 20px 80px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}.login-card{background:#fff;border-radius:12px;border:1px solid #E5E7EB;width:100%;max-width:400px;padding:32px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.logo-section{text-align:center;margin-bottom:28px}.logo{width:48px;background:#f0f9f0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}.brand-name{font-size:22px;font-weight:600;color:#1a1a1a;margin:0 0 4px}.portal-subtitle{font-size:13px;color:#6b7280;font-weight:400;margin:0}.login-card .ant-form-item{margin-bottom:20px}.login-card .ant-form-item-label>label{height:auto!important;font-size:12px!important;font-weight:500!important;color:#374151!important}.form-label{font-size:12px;font-weight:500;color:#374151}.login-card .ant-input-affix-wrapper{padding:10px 12px 10px 40px!important;border:1px solid #E5E7EB!important;border-radius:8px!important;font-size:16px!important;line-height:1.8!important;transition:all .2s!important;background:#fff!important;caret-color:#1a1a1a!important}.login-card .ant-input-affix-wrapper .ant-input,.login-card .ant-input-affix-wrapper>input.ant-input,.login-card .ant-input-affix-wrapper input{border:none!important;box-shadow:none!important;padding:0!important;background:transparent!important;outline:none!important;font-size:16px!important;line-height:1.8!important;caret-color:#1a1a1a!important;color:#1a1a1a!important;min-height:24px!important}.login-card input[type=text],.login-card input[type=email],.login-card input[type=password]{caret-color:#1a1a1a!important;font-size:16px!important;line-height:1.8!important}.login-card .ant-input-password .ant-input,.login-card .ant-input-password input,.login-card .ant-input-password .ant-input-password-input{border:none!important;box-shadow:none!important;background:transparent!important;outline:none!important;font-size:16px!important;line-height:1.8!important;caret-color:#1a1a1a!important;color:#1a1a1a!important;min-height:24px!important}.login-card .ant-input-outlined:focus,.login-card .ant-input-outlined:focus-within,.login-card .ant-input-affix-wrapper .ant-input:focus{border:none!important;box-shadow:none!important;outline:none!important}.login-card .ant-input:-webkit-autofill,.login-card .ant-input:-webkit-autofill:hover,.login-card .ant-input:-webkit-autofill:focus,.login-card .ant-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important;box-shadow:0 0 0 30px #fff inset!important;-webkit-text-fill-color:#1a1a1a!important}.login-card .ant-input:not(.ant-input-affix-wrapper .ant-input){padding:10px 12px 10px 40px!important;border:1px solid #E5E7EB!important;border-radius:8px!important;font-size:16px!important;line-height:1.8!important;transition:all .2s!important;background:#fff!important;caret-color:#1a1a1a!important;color:#1a1a1a!important;min-height:24px!important}.login-card .ant-input-affix-wrapper:focus,.login-card .ant-input-affix-wrapper-focused,.login-card .ant-input:focus:not(.ant-input-affix-wrapper .ant-input){border-color:#86c98a!important;box-shadow:0 0 0 2px #86c98a26!important}.login-card .ant-input-affix-wrapper:hover,.login-card .ant-input:hover:not(.ant-input-affix-wrapper .ant-input){border-color:#d1d5db!important}.login-card .ant-input-affix-wrapper:focus .ant-input,.login-card .ant-input-affix-wrapper:focus input,.login-card .ant-input:focus{caret-color:#1a1a1a!important;font-size:16px!important;line-height:1.8!important}.login-card .form-input-error,.login-card .ant-input-affix-wrapper.ant-input-affix-wrapper-status-error,.login-card .ant-input-status-error{border-color:#ef4444!important}.input-icon{color:#9ca3af;font-size:16px}.ant-form-item-explain-error{color:#ef4444!important;font-size:12px!important;margin-top:4px!important}.form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.ant-checkbox-wrapper{font-size:13px;color:#6b7280}.ant-checkbox-checked .ant-checkbox-inner{background-color:#86c98a;border-color:#86c98a}.forgot-password{font-size:13px;color:#6b7280;text-decoration:none;transition:color .2s}.forgot-password:hover{color:#4b9b50}.login-button{width:100%;padding:12px 16px;background:#8ecf9c!important;border:none!important;border-radius:8px!important;font-size:14px!important;font-weight:500!important;height:auto!important;color:#fff!important;transition:all .2s!important}.login-button:hover:not(:disabled){background:#6bbf7b!important}.login-button:disabled{opacity:.5;cursor:not-allowed}.divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:#9ca3af;font-size:12px}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid #E5E7EB}.divider span{padding:0 12px}.demo-account{background:#f9fafb;border-radius:8px;padding:14px;text-align:center}.demo-account-title{font-size:12px;color:#6b7280;margin-bottom:6px;font-weight:500}.demo-credentials{font-size:12px;color:#374151;font-family:SF Mono,Monaco,monospace;margin-bottom:10px}.demo-credentials span{display:block}.use-demo-button{padding:8px 16px;background:#fff!important;border:1px solid #E5E7EB!important;color:#374151!important;border-radius:6px!important;font-size:12px!important;font-weight:500!important;transition:all .2s!important}.use-demo-button:hover{border-color:#86c98a!important;color:#4b9b50!important}.signup-section{text-align:center;margin-top:20px;font-size:13px;color:#6b7280}.signup-link{color:#4b9b50;text-decoration:none;font-weight:500}.signup-link:hover{text-decoration:underline}@media (max-width: 480px){.login-card{padding:24px}}.mobile-login-container{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#e8f5e9,#f1f8e9);padding:0}.mobile-login-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:32px 24px;max-width:100%}.mobile-logo-section{text-align:center;margin-bottom:48px}.mobile-brand-name{font-size:32px;font-weight:700;color:#2e7d32;margin:0 0 8px;letter-spacing:-.5px}.mobile-subtitle{font-size:16px;color:#666;margin:0}.mobile-login-form{width:100%}.mobile-login-form .ant-form-item{margin-bottom:20px}.mobile-input{height:56px!important;border-radius:12px!important;font-size:16px!important;border:1px solid #E0E0E0!important;background:#fff!important;caret-color:#1a1a1a!important}.mobile-input:focus,.mobile-input.ant-input-affix-wrapper-focused{border-color:#4caf50!important;box-shadow:0 0 0 3px #4caf501a!important}.mobile-input .ant-input{font-size:16px!important;height:auto!important;caret-color:#1a1a1a!important;color:#1a1a1a!important;border:none!important;box-shadow:none!important}.mobile-input .ant-input-prefix{margin-right:12px;color:#9e9e9e;font-size:18px}.mobile-login-button{height:56px!important;border-radius:12px!important;font-size:18px!important;font-weight:600!important;background:#4caf50!important;border:none!important;box-shadow:0 4px 12px #4caf504d!important}.mobile-login-button:hover:not(:disabled),.mobile-login-button:focus:not(:disabled){background:#43a047!important}.mobile-login-button:disabled{background:#c8e6c9!important;box-shadow:none!important}.mobile-footer{text-align:center;margin-top:24px}.mobile-link{color:#4caf50;font-size:15px;text-decoration:none}.mobile-link:hover{text-decoration:underline}.mobile-login-form .ant-form-item-explain-error{font-size:13px;margin-top:6px}.tablet-login-container{min-height:100vh;display:flex;background:#f5f5f5;padding-top:56px}.tablet-login-left{flex:1;background:linear-gradient(135deg,#2e7d32,#4caf50,#81c784);display:flex;align-items:center;justify-content:center;padding:48px}.tablet-decoration{text-align:center;color:#fff}.tablet-welcome-title{font-size:36px;font-weight:700;margin:0 0 16px;text-shadow:0 2px 4px rgba(0,0,0,.1)}.tablet-welcome-text{font-size:18px;opacity:.9;line-height:1.6;margin:0}.tablet-login-right{flex:1;display:flex;align-items:center;justify-content:center;padding:48px;background:#f5f5f5}.tablet-login-card{width:100%;max-width:420px;background:#fff;padding:40px;border-radius:16px;box-shadow:0 4px 20px #00000014}.tablet-logo-section{text-align:center;margin-bottom:40px}.tablet-brand-name{font-size:28px;font-weight:700;color:#1a1a1a;margin:0 0 8px}.tablet-subtitle{font-size:16px;color:#666;margin:0}.tablet-login-form .ant-form-item{margin-bottom:24px}.tablet-login-form .ant-form-item-label>label{font-size:14px;font-weight:500;color:#333}.tablet-input{height:52px!important;border-radius:10px!important;font-size:16px!important;border:1px solid #E0E0E0!important;caret-color:#1a1a1a!important}.tablet-input:focus,.tablet-input.ant-input-affix-wrapper-focused{border-color:#4caf50!important;box-shadow:0 0 0 3px #4caf501a!important}.tablet-input .ant-input{font-size:16px!important;caret-color:#1a1a1a!important;color:#1a1a1a!important}.tablet-input .ant-input-prefix{margin-right:12px;color:#9e9e9e;font-size:16px}.tablet-form-options{display:flex;justify-content:flex-end;margin-bottom:24px}.tablet-forgot-link{color:#4caf50;font-size:14px;text-decoration:none}.tablet-forgot-link:hover{text-decoration:underline}.tablet-login-button{height:52px!important;border-radius:10px!important;font-size:17px!important;font-weight:600!important;background:#4caf50!important;border:none!important;box-shadow:0 4px 12px #4caf5040!important}.tablet-login-button:hover:not(:disabled),.tablet-login-button:focus:not(:disabled){background:#43a047!important;box-shadow:0 6px 16px #4caf5059!important}.tablet-login-button:disabled{background:#c8e6c9!important;box-shadow:none!important}.tablet-footer{text-align:center;margin-top:32px}.tablet-footer-text{color:#999;font-size:14px}@media (orientation: portrait){.tablet-login-container{flex-direction:column}.tablet-login-left{flex:0 0 auto;padding:60px 32px;min-height:200px}.tablet-welcome-title{font-size:32px}.tablet-welcome-text{font-size:16px}.tablet-login-right{flex:1;padding:32px;background:#f5f5f5}.tablet-login-card{max-width:100%;padding:32px 24px}}.dashboard{padding:24px}.dashboard h1{font-size:24px;font-weight:600;margin-bottom:8px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px}.cute-stat-card{background:linear-gradient(135deg,var(--bg-white) 0%,var(--primary-green-light) 100%);border:2px solid var(--primary-green-light);transition:var(--transition-bounce)}.cute-stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:var(--primary-green)}.stat-title{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary);font-weight:500}.pending-card .ant-list-item,.cute-list-item{border-bottom:2px dashed var(--primary-green-light);padding:16px;margin:8px 0;border-radius:var(--radius-input);transition:var(--transition-smooth)}.cute-list-item:hover{background:var(--primary-green-light);transform:translate(4px)}.pending-card .ant-list-item:last-child,.cute-list-item:last-child{border-bottom:none}.mobile-dashboard{padding:16px 16px 80px;background:#f5f5f5;min-height:100vh}.mobile-dashboard-header{margin-bottom:20px}.mobile-dashboard-header h1{font-size:24px;font-weight:600;color:#333;margin:0}.mobile-dashboard-header p{font-size:14px;color:#666;margin:4px 0 0}.mobile-stats{display:flex;gap:12px;margin-bottom:24px}.mobile-stat-card{flex:1;background:#fff;border-radius:12px;padding:16px 12px;text-align:center;box-shadow:0 2px 8px #0000000f}.mobile-stat-card .stat-icon{font-size:24px;color:#4caf50;margin-bottom:8px}.mobile-stat-card.warning .stat-icon{color:#ffb74d}.mobile-stat-card.danger .stat-icon{color:#ef5350}.mobile-stat-card .stat-value{font-size:28px;font-weight:700;color:#333;line-height:1}.mobile-stat-card .stat-label{font-size:12px;color:#999;margin-top:4px}.mobile-section{margin-bottom:24px}.mobile-section-title{font-size:16px;font-weight:600;color:#333;margin:0 0 12px;display:flex;align-items:center;gap:8px}.mobile-class-card{background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:transform .2s}.mobile-class-card .class-time{font-size:14px;font-weight:600;color:#4caf50;min-width:70px}.mobile-class-card .class-info{flex:1;min-width:0}.mobile-class-card .student-name{font-size:15px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-class-card .material-name{font-size:13px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.mobile-section .ant-empty{background:#fff;border-radius:12px;padding:32px 16px}.tablet-dashboard{padding:24px;background:#f5f5f5;min-height:100vh}.tablet-dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.tablet-dashboard-header h1{font-size:28px;font-weight:600;color:#333;margin:0}.tablet-dashboard-header p{font-size:15px;color:#666;margin:4px 0 0}.tablet-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}.tablet-stat-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:center;gap:20px;box-shadow:0 2px 12px #0000000f}.tablet-stat-card.clickable{cursor:pointer;transition:transform .2s}.tablet-stat-card.clickable:active{transform:scale(.98)}.stat-icon-wrapper{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;position:relative}.stat-icon-wrapper.green{background:#e8f5e9;color:#4caf50}.stat-icon-wrapper.orange{background:#fff3e0;color:#ff9800}.stat-icon-wrapper.red{background:#ffebee;color:#ef5350}.stat-badge{position:absolute;top:-4px;right:-4px}.stat-info{flex:1}.stat-value{font-size:32px;font-weight:700;color:#333;line-height:1}.stat-label{font-size:14px;color:#999;margin-top:4px}.tablet-content-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.tablet-section{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.section-header h2{font-size:18px;font-weight:600;color:#333;margin:0;display:flex;align-items:center;gap:8px}.view-all-btn{padding:6px 12px;background:transparent;border:none;color:#4caf50;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:4px}.tablet-card-container{display:flex;flex-direction:column;gap:12px}.tablet-class-card{display:flex;align-items:center;gap:16px;padding:16px;background:#fafafa;border-radius:12px;cursor:pointer;transition:background .2s}.tablet-class-card:hover{background:#f0f0f0}.class-time-badge{min-width:80px;padding:8px 12px;background:#e8f5e9;color:#4caf50;border-radius:8px;font-size:14px;font-weight:600;text-align:center}.class-time-badge.orange{background:#fff3e0;color:#ff9800}.class-details{flex:1;min-width:0}.class-details .student-name{font-size:16px;font-weight:600;color:#333;margin-bottom:4px}.class-details .material-name{font-size:14px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tablet-card-container .ant-empty{padding:32px 16px}.teacher-schedule-page{padding:16px 24px;background:#f5f7fa;min-height:100vh}.schedule-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.schedule-page-header .cute-title{margin:0}.schedule-filters{background:#fff;padding:12px 16px;border-radius:8px;margin-bottom:12px;box-shadow:0 1px 2px #0000000d}.filter-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.filter-item{display:flex;align-items:center;gap:8px}.filter-label{color:#666;font-size:14px;white-space:nowrap}.schedule-toolbar{background:#fff;padding:12px 16px;border-radius:8px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 1px 2px #0000000d;flex-wrap:wrap}.toolbar-left{display:flex;align-items:center;gap:12px}.toolbar-center{display:flex;align-items:center;gap:16px}.toolbar-right{display:flex;align-items:center;gap:8px}.view-switcher{display:flex;border:1px solid #d9d9d9;border-radius:6px;overflow:hidden}.view-switcher .ant-btn{border:none;border-radius:0;padding:4px 16px}.view-switcher .ant-btn:not(:last-child){border-right:1px solid #d9d9d9}.view-switcher .ant-btn-primary{background:#4caf50;border-color:#4caf50}.date-range-text{font-size:16px;font-weight:500;color:#333;min-width:180px;text-align:center}.schedule-stats{background:#fff;padding:10px 16px;border-radius:8px;margin-bottom:12px;font-size:14px;color:#666;box-shadow:0 1px 2px #0000000d}.schedule-content{background:#fff;border-radius:8px;padding:16px;min-height:500px;box-shadow:0 1px 2px #0000000d}.schedule-loading{display:flex;align-items:center;justify-content:center;height:400px;color:#999;font-size:16px}.teacher-schedule-page .schedule-week-view{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;min-height:500px}.teacher-schedule-page .schedule-day-column{background:#fafafa;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.teacher-schedule-page .schedule-day-column.today{background:#f0f9f0}.teacher-schedule-page .schedule-day-column.weekend .day-header{background:#fff5f5}.teacher-schedule-page .day-header{flex:0 0 auto;padding:10px 8px;text-align:center;background:#e8f5e9;border-bottom:1px solid #c8e6c9}.teacher-schedule-page .day-header.today{background:#4caf50}.teacher-schedule-page .day-header .day-name{font-size:14px;line-height:1.3;font-weight:600;color:#111}.teacher-schedule-page .day-header .day-count{font-size:12px;color:#333;margin-top:2px;font-weight:500;line-height:1.3}.teacher-schedule-page .day-header.today .day-name{color:#1a5c1a}.teacher-schedule-page .day-header.today .day-count{color:#2d7a2d}.teacher-schedule-page .schedule-day-column.weekend .day-header:not(.today) .day-name,.teacher-schedule-page .schedule-day-column.weekend .day-header:not(.today) .day-count{color:#333}.teacher-schedule-page .day-classes{flex:1;padding:8px;overflow:visible}.teacher-schedule-page .no-class{text-align:center;color:#999;padding:20px 0;font-size:13px}.teacher-schedule-page .schedule-class-card{background:#fff;border-radius:6px;padding:10px;margin-bottom:8px;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #00000014}.teacher-schedule-page .schedule-class-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.teacher-schedule-page .schedule-class-card .class-time{font-size:12px;line-height:1.3;font-weight:600;margin-bottom:4px}.teacher-schedule-page .schedule-class-card .class-student{font-size:13px;font-weight:500;color:#333;margin-bottom:4px}.teacher-schedule-page .schedule-class-card .class-course{font-size:12px;color:#666;margin-bottom:2px;display:flex;align-items:center}.teacher-schedule-page .schedule-class-card .class-tag{margin-top:6px}.schedule-day-view{max-width:600px;margin:0 auto}.teacher-schedule-page .schedule-day-column.single{min-height:400px}.schedule-month-view{border:1px solid #e8e8e8;border-radius:8px;overflow:hidden}.month-header{display:grid;grid-template-columns:repeat(7,1fr);background:#fafafa;border-bottom:1px solid #e8e8e8}.month-header-cell{padding:12px;text-align:center;font-weight:500;color:#666;font-size:14px}.month-body{background:#fff}.month-week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #e8e8e8}.month-week:last-child{border-bottom:none}.month-day{min-height:120px;padding:8px;border-right:1px solid #e8e8e8;background:#fff}.month-day:last-child{border-right:none}.month-day.other-month{background:#fafafa}.month-day.today{background:#f0f9f0}.month-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.month-day-number{font-size:14px;color:#333}.month-day-number.today{background:#4caf50;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.month-day-count{font-size:11px;color:#999}.month-day-classes{display:flex;flex-direction:column;gap:4px}.month-class-item{font-size:11px;padding:3px 6px;border-radius:3px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-class-item:hover{opacity:.8}.month-more{font-size:11px;color:#4caf50;cursor:pointer;padding:2px 0}.month-more:hover{text-decoration:underline}@media (max-width: 1400px){.teacher-schedule-page .schedule-week-view{grid-template-columns:repeat(7,minmax(120px,1fr));overflow-x:auto}}@media (max-width: 1200px){.schedule-toolbar{flex-direction:column;align-items:flex-start}.toolbar-center{width:100%;justify-content:center}}@media (max-width: 768px){.teacher-schedule-page{padding:12px}.schedule-page-header{flex-direction:column;align-items:flex-start;gap:12px}.teacher-schedule-page .schedule-week-view{grid-template-columns:1fr}.teacher-schedule-page .schedule-day-column{margin-bottom:12px}}.mobile-schedule{padding:16px 16px 80px;background:#f5f5f5;min-height:100vh}.mobile-schedule-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.mobile-schedule-header h1{font-size:24px;font-weight:600;color:#333;margin:0}.view-toggle{margin-bottom:16px}.date-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;padding:12px 16px;margin-bottom:16px}.nav-btn:active{background:#e0e0e0}.current-date{font-size:16px;font-weight:600;color:#333}.week-selector{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}.week-day{flex:1;min-width:44px;background:#fff;border-radius:12px;padding:10px 8px;text-align:center;cursor:pointer;position:relative}.day-name{font-size:11px;color:#999;text-transform:uppercase}.day-num{font-size:18px;font-weight:600;color:#333;margin-top:2px}.day-dot{width:6px;height:6px;background:#4caf50;border-radius:50%;margin:4px auto 0}.week-day.selected .day-dot{background:#fff}.today-btn{width:100%;padding:10px;background:#fff;border:1px solid #4CAF50;color:#4caf50;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:16px;cursor:pointer}.today-btn:active{background:#e8f5e9}.classes-section{margin-top:8px}.mobile-class-list{display:flex;flex-direction:column;gap:12px}.mobile-class-card{background:#fff;border-radius:12px;padding:16px;display:flex;gap:16px;box-shadow:0 2px 8px #0000000f;cursor:pointer}.mobile-class-card:active{transform:scale(.98)}.class-time-block .time{font-size:20px;font-weight:700;color:#333;line-height:1}.class-time-block .period{font-size:12px;color:#4caf50;font-weight:500;margin-top:2px}.class-content{flex:1;min-width:0}.class-content .student-name{font-size:16px;font-weight:600;color:#333;margin-bottom:4px}.class-content .material-name{font-size:13px;color:#666;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#999}.classes-section .ant-empty{background:#fff;border-radius:12px;padding:40px 16px}.available-time-section{margin-top:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.add-time-btn-small{width:32px;height:32px;border:none;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}.add-time-btn-small:active{background:#43a047}.available-time-list{display:flex;flex-direction:column;gap:8px}.available-time-card{background:#fff;border-radius:12px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000000f}.time-info{display:flex;align-items:center;gap:8px;font-size:14px;color:#333;font-weight:500}.time-info .duration{font-size:12px;color:#999;font-weight:400}.delete-btn-small{width:28px;height:28px;border:none;background:#fff1f0;color:#ff4d4f;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px}.delete-btn-small:active{background:#ffccc7}.empty-available-time{background:#fff;border-radius:12px;padding:32px 16px;text-align:center}.add-first-time-btn{margin-top:16px;padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.add-first-time-btn:active{background:#43a047}.add-time-modal-content{padding:16px 0}.add-time-modal-content p{margin-bottom:16px;color:#666;font-size:14px}.tablet-schedule{padding:24px;background:#f5f5f5;min-height:100vh}.tablet-schedule-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.tablet-schedule-header h1{font-size:28px;font-weight:600;color:#333;margin:0;display:flex;align-items:center;gap:10px}.tablet-schedule-header p{font-size:15px;color:#666;margin:4px 0 0}.week-navigation{display:flex;align-items:center;gap:16px;margin-bottom:20px;background:#fff;padding:16px 20px;border-radius:12px}.week-title{flex:1;text-align:center;font-size:18px;font-weight:600;color:#333}.week-grid-container{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #0000000f;margin-bottom:24px}.week-grid{min-width:100%}.grid-header{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:2px solid #f0f0f0;position:sticky;top:0;background:#fff;z-index:10}.time-column-header{padding:12px;background:#fafafa}.tablet-schedule .day-header{padding:12px 8px;text-align:center;border-left:1px solid #f0f0f0}.tablet-schedule .day-header.today{background:#e8f5e9}.tablet-schedule .day-name{font-size:16px;color:#333;text-transform:uppercase;font-weight:600}.tablet-schedule .day-date{font-size:24px;font-weight:700;color:#333;margin:4px 0}.tablet-schedule .day-header.today .day-date{color:#4caf50}.tablet-schedule .class-count{font-size:11px;color:#4caf50;background:#e8f5e9;padding:2px 8px;border-radius:10px;display:inline-block}.grid-body{max-height:400px;overflow-y:auto}.time-row{display:grid;grid-template-columns:60px repeat(7,1fr);min-height:60px;border-bottom:1px solid #f5f5f5}.time-label{padding:8px;font-size:12px;color:#999;text-align:right;background:#fafafa;border-right:1px solid #f0f0f0}.time-cell{border-left:1px solid #f5f5f5;padding:4px;min-height:60px;position:relative}.time-cell.today{background:#fafffe}.class-block{padding:6px 8px;border-radius:6px;margin-bottom:4px;cursor:pointer;font-size:12px;transition:transform .2s}.class-block:hover{transform:scale(1.02)}.class-block.green{background:#e8f5e9;border-left:3px solid #4CAF50}.class-block.orange{background:#fff3e0;border-left:3px solid #FF9800}.class-block.blue{background:#e3f2fd;border-left:3px solid #2196F3}.class-block .class-time{font-weight:600;color:#333}.class-block .class-student{color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-detail-section{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f}.day-detail-section h2{font-size:18px;font-weight:600;color:#333;margin:0 0 16px}.day-classes-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.day-class-card{display:flex;align-items:center;gap:16px;padding:16px;background:#fafafa;border-radius:12px;cursor:pointer;transition:background .2s}.day-class-card:hover{background:#f0f0f0}.class-time-block{min-width:50px;text-align:center;padding-right:16px;border-right:2px solid #4CAF50}.class-time-block .time{font-size:20px;font-weight:700;color:#333}.class-time-block .period{font-size:12px;color:#4caf50;font-weight:500}.day-class-card .class-info{flex:1;min-width:0}.day-class-card .student-name{font-size:15px;font-weight:600;color:#333;margin-bottom:4px}.day-class-card .material-name{font-size:13px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-classes-list .ant-empty{grid-column:1 / -1;padding:32px}.reservations-page{padding:24px;max-width:1600px;margin:0 auto;background:var(--bg-light-gray)}.reservations-header-new{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px;padding:24px;background:var(--bg-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.reservations-header-new h1{margin:0;font-size:28px;font-weight:600;color:var(--text-primary)}.applied-filters-bar{padding:12px 16px;background:#fafafa;border-radius:8px;border:1px solid #e8e8e8}.primary-filters{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.quick-date-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.advanced-filters{margin-top:8px}.reservations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.reservations-header h1{margin:0;font-size:24px;font-weight:600;display:flex;align-items:center}.stats-panel{background:#fafafa;padding:16px 24px;border-radius:8px;border:1px solid #e8e8e8}.stat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.stat-dot.pending-dot{background-color:#ff4d4f;animation:pulse 2s infinite}.stat-dot.confirmed-dot{background-color:#52c41a}.stat-dot.completed-dot{background-color:#8c8c8c}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes statusPulse{0%,to{box-shadow:0 0 #fa8c1666}50%{box-shadow:0 0 0 4px #fa8c1600}}.batch-actions-card{background:linear-gradient(135deg,#e6f7ff,#bae7ff);border:2px solid #91d5ff}.filters-card{background:#fafafa}.reservation-item{padding:20px!important;border-bottom:1px solid #f0f0f0;transition:all .3s ease;background:#fff;margin-bottom:16px;border-radius:8px}.reservation-item:last-child{border-bottom:none}.reservation-item.reservation-highlighted{background:linear-gradient(135deg,#fff7e6,#fffbe6);border:2px solid #faad14;box-shadow:0 4px 12px #faad144d;animation:highlightPulse 2s ease-in-out}.reservation-item.reservation-selected{background:#e6f7ff;border-color:#91d5ff}@keyframes highlightPulse{0%,to{box-shadow:0 4px 12px #faad144d}50%{box-shadow:0 6px 20px #faad1480}}.reservation-content-new{display:flex;align-items:flex-start;width:100%;gap:24px}.reservation-left{display:flex;align-items:flex-start;min-width:280px;flex-shrink:0}.student-info-new{flex:1}.student-name-row{display:flex;align-items:center;margin-bottom:8px}.student-name-new{font-size:16px;font-weight:600;color:#262626}.student-quick-info{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.same-student-hint{margin-top:8px}.reservation-middle{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0}.course-time-row{display:flex;align-items:center;font-size:15px;font-weight:500;color:#262626}.course-time-formatted{color:#262626}.course-details-row{display:flex;align-items:center}.detail-item{display:flex;align-items:center;font-size:14px}.detail-label-small{color:#8c8c8c;margin:0 4px 0 8px;font-weight:500}.detail-value-small{color:#262626;font-weight:500}.remark-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#595959;font-style:italic}.remark-label{color:#8c8c8c;font-weight:500;font-style:normal}.remark-text-new{flex:1;color:#595959}.reservation-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px;min-width:180px;flex-shrink:0}.status-badge-new{display:inline-flex;align-items:center;padding:6px 12px;border-radius:16px;font-size:13px;font-weight:600;border:1px solid;white-space:nowrap}.time-badge{color:#fff;padding:6px 12px;border-radius:16px;font-size:12px;font-weight:600;white-space:nowrap;text-align:center}.reservation-actions-new{display:flex;flex-direction:column;gap:8px;width:100%}.reservation-expanded{margin-top:0;border-top:1px solid #f0f0f0;background-color:#fafafa;margin-left:-16px;margin-right:-16px;padding:16px}.expanded-content-wrapper{padding:0}.expanded-section{background:#fff;padding:20px;border-radius:8px;border:1px solid #e8e8e8;height:100%}.expanded-section-title{margin:0 0 16px;font-size:16px;font-weight:600;color:#262626;display:flex;align-items:center}.expanded-info-item{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.expanded-info-item:last-child{border-bottom:none}.expanded-info-label{font-weight:500;color:#595959;min-width:100px;font-size:14px}.expanded-info-value{color:#262626;font-size:14px;flex:1}.expanded-placeholder{text-align:center;padding:20px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px}@media (max-width: 768px){.reservation-expanded{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.expanded-section{padding:16px;margin-bottom:12px}.expanded-info-label{min-width:80px;font-size:13px}.expanded-info-value{font-size:13px}}.reservation-content{display:flex;align-items:center;width:100%;gap:16px}.reservation-student{display:flex;align-items:center;gap:12px;min-width:200px}.student-info{display:flex;flex-direction:column}.student-name{font-size:16px;font-weight:600;color:#262626;display:flex;align-items:center}.reservation-details{flex:1;display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;align-items:center;gap:8px;font-size:14px}.detail-label{color:#8c8c8c;min-width:80px;font-weight:500}.detail-value{color:#262626;flex:1}.remark-text{color:#595959;font-style:italic}.time-until{margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;font-size:12px;color:#8c8c8c}.time-until strong{color:#1890ff;font-weight:600}.reservation-actions{display:flex;flex-direction:column;gap:8px;min-width:120px}@media (max-width: 1400px){.reservation-content-new{flex-wrap:wrap}.reservation-left{width:100%;min-width:auto}.reservation-middle{width:100%}.reservation-right{width:100%;min-width:auto;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:8px}}@media (max-width: 1200px){.reservation-content{flex-wrap:wrap}.reservation-student{width:100%;min-width:auto}.reservation-details{width:100%}.reservation-actions{width:100%;flex-direction:row}}@media (max-width: 768px){.reservations-page{padding:16px}.reservations-header{flex-direction:column;align-items:flex-start}.stats-panel{width:100%}.reservation-content-new{flex-direction:column}.reservation-left,.reservation-middle{width:100%}.reservation-right{width:100%;flex-direction:column;align-items:stretch}.reservation-content{flex-direction:column;align-items:flex-start}.reservation-student,.reservation-details{width:100%}.reservation-actions{width:100%;flex-direction:row}}.mobile-reservations-v2{min-height:100vh;background:#fff;padding-bottom:80px}.reservations-header{padding:16px 16px 12px;background:#fff}.reservations-header h1{font-size:24px;font-weight:600;color:#1a1a1a;margin:0}.reservations-tabs{display:flex;padding:0 16px 16px;gap:8px;background:#fff;border-bottom:1px solid #f0f0f0}.tab-btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;background:#f5f5f5;color:#666}.tab-btn.active{background:#4caf50;color:#fff;box-shadow:0 2px 8px #4caf504d}.tab-btn:not(.active):active{background:#e8e8e8}.reservations-content{padding:16px}.reservations-list{display:flex;flex-direction:column;gap:12px}.reservation-card{background:#fff;border-radius:12px;padding:16px;border:1px solid #f0f0f0;box-shadow:0 1px 3px #0000000a}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #f5f5f5}.time-info{display:flex;align-items:center;gap:6px;font-size:14px;color:#4caf50;font-weight:500}.card-body{margin-bottom:12px}.info-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;color:#666}.info-row:last-child{margin-bottom:0}.info-row .student-name{font-weight:600;color:#1a1a1a}.remark{font-size:13px;color:#999;background:#fafafa;padding:8px 10px;border-radius:6px;margin-top:8px}.card-actions{display:flex;gap:10px;padding-top:12px;border-top:1px solid #f5f5f5}.action-btn{flex:1;padding:10px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.action-btn.accept{background:#4caf50;color:#fff}.action-btn.accept:active{background:#43a047}.action-btn.reject{background:#fff;color:#ff4d4f;border:1px solid #ff4d4f}.action-btn.reject:active{background:#fff1f0}.empty-state-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-icon{font-size:48px;color:#d9d9d9;margin-bottom:16px}.empty-text{font-size:15px;color:#999;margin:0 0 20px}.empty-action-btn{padding:10px 20px;background:transparent;border:1px solid #4CAF50;color:#4caf50;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.empty-action-btn:active{background:#e8f5e9}.tablet-reservations{padding:24px;background:#f5f5f5;min-height:100vh}.tablet-reservations-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.tablet-reservations-header h1{font-size:28px;font-weight:600;color:#333;margin:0;display:flex;align-items:center;gap:10px}.tablet-reservations-header p{font-size:15px;color:#666;margin:4px 0 0}.timezone-badge{font-size:13px;color:#4caf50;background:#e8f5e9;padding:8px 14px;border-radius:20px;display:flex;align-items:center;gap:6px;font-weight:500}.filter-section{margin-bottom:24px}.reservations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.reservation-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000f}.reservation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.time-info{display:flex;align-items:center;gap:8px;font-size:15px;color:#4caf50;font-weight:600}.reservation-body{margin-bottom:16px}.info-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:15px;color:#666}.info-row .student-name{font-weight:600;color:#333;font-size:17px}.remark{font-size:14px;color:#999;background:#f9f9f9;padding:12px;border-radius:8px;margin-top:12px;display:flex;align-items:flex-start;gap:8px}.reservation-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid #f0f0f0;justify-content:center}.reservation-actions .ant-btn{flex:0 0 auto;min-width:120px;height:44px}.empty-state{grid-column:1 / -1;background:#fff;border-radius:16px;padding:48px}.available-time-page{padding:16px 24px;background:#f5f7fa;min-height:100vh}.available-time-page .schedule-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.available-time-page .cute-title{margin:0}.available-time-page .cute-subtitle{margin:4px 0 0;color:#666;font-size:14px}.timezone-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#f0f9f0;border-radius:16px;font-size:13px;color:#4a7c2c;font-weight:500;border:1px solid #D4EDDA}.available-time-page .schedule-filters{background:#fff;padding:12px 16px;border-radius:8px;margin-bottom:12px;box-shadow:0 1px 2px #0000000d}.available-time-page .filter-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.legend-inline{display:flex;align-items:center;gap:20px}.legend-item-inline{display:flex;align-items:center;gap:6px;font-size:13px;color:#666}.legend-dot{width:16px;height:16px;border-radius:4px;border:1px solid #d9d9d9}.legend-dot.peak-hour{background:transparent;border-color:transparent;position:relative;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1}.legend-dot.peak-hour:after{content:"🔥";position:static;font-size:14px;line-height:1}.available-time-page .schedule-toolbar{background:#fff;padding:12px 16px;border-radius:8px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 1px 2px #0000000d;flex-wrap:wrap;position:relative}.available-time-page .toolbar-left{display:flex;align-items:center;gap:12px;flex:1}.available-time-page .toolbar-center{display:flex;align-items:center;justify-content:center;gap:16px;position:absolute;left:50%;transform:translate(-50%)}.available-time-page .toolbar-right{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}.available-time-page .date-navigator{display:flex;align-items:center;gap:8px}.available-time-page .date-range-text{font-size:16px;font-weight:500;color:#333;min-width:200px;text-align:center;white-space:nowrap}.available-time-page .schedule-content{background:#fff;border-radius:8px;padding:16px;min-height:500px;box-shadow:0 1px 2px #0000000d}.available-time-page .schedule-loading{display:flex;align-items:center;justify-content:center;height:400px;color:#999;font-size:16px}.schedule-week-view-container{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 2px #0000000d;overflow:visible}.week-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;background:#f5f5f5;border-radius:8px}.nav-btn{background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:6px 16px;color:#666;font-size:14px;transition:all .2s}.nav-btn:hover:not(:disabled){background:#f0f0f0;border-color:#40a9ff;color:#40a9ff}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.date-display{display:flex;align-items:center;gap:12px}.date-main{font-size:16px;font-weight:500;color:#333;white-space:nowrap}.today-btn{background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:4px 12px;font-size:13px;color:#666}.today-btn:hover{background:#f0f0f0;border-color:#40a9ff;color:#40a9ff}.available-time-page .schedule-week-view{display:flex;background:#fff;border-radius:8px;overflow-x:auto;overflow-y:visible;box-shadow:0 1px 2px #0000000d}.week-time-column{width:60px;border-right:1px solid #e8e8e8;background:#fafafa;flex-shrink:0;display:flex;flex-direction:column}.available-time-page .schedule-day-column{flex:1;border-right:1px solid #e8e8e8;background:#fff;display:flex;flex-direction:column;overflow:visible}.available-time-page .schedule-day-column.today{background:#f0f7ff}.available-time-page .schedule-day-column.weekend .day-header{background:#fff5f5}.available-time-page .day-header{height:80px;padding:12px 8px;text-align:center;background:#fafafa;border-bottom:1px solid #e8e8e8;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;flex-shrink:0}.available-time-page .day-header.today{background:#1890ff;color:#fff}.available-time-page .day-header .day-name{font-size:13px;font-weight:600;margin-bottom:4px;color:#333}.available-time-page .day-header.today .day-name{color:#fff}.available-time-page .day-classes{position:relative;width:100%;padding:0;box-sizing:border-box;overflow:visible}.available-time-slot{transition:all .15s ease;-webkit-user-select:none;user-select:none;border:1px solid #e8e8e8!important;border-left:1px solid #d9d9d9!important}.available-time-slot.inactive{background:#fff!important;border:1px solid #d9d9d9!important;border-left:1px solid #bfbfbf!important;box-shadow:inset 0 0 0 1px #00000014,0 0 0 1px #00000008,0 1px 2px #0000000d!important;min-height:30px!important;min-width:100%!important;z-index:2!important}.available-time-slot.inactive:hover:not(.past):not(.fixed){background:#f6ffed!important;border-left:3px solid #b7eb8f!important;border-color:#b7eb8f!important;border-top-color:#b7eb8f!important;border-bottom-color:#b7eb8f!important;border-right-color:#b7eb8f!important;z-index:20!important;box-shadow:0 1px 3px #52c41a33!important}.available-time-slot.active{background:#e8f5e9!important;border:1px solid #e8e8e8!important;border-left:4px solid #52c41a!important}.available-time-slot.fixed{background:#fff7e6!important;border-left:4px solid #ffa940!important;cursor:not-allowed!important}.available-time-slot.dragging{background:#f6ffed!important;border-left:3px solid #b7eb8f!important}.available-time-slot:hover:not(.past):not(.fixed) .slot-hint{opacity:1!important}.available-time-slot.active:hover:not(.past):not(.fixed){transform:scale(1.02);z-index:20!important}.available-time-slot.inactive:hover:not(.past):not(.fixed){transform:scale(1.01);z-index:15!important}.available-time-slot.active:hover:not(.past):not(.fixed){border-left:4px solid #389e0d!important;box-shadow:0 2px 4px #52c41a4d}.available-time-slot.inactive:hover:not(.past):not(.fixed){border-left:2px solid #95de64!important;box-shadow:0 1px 2px #52c41a33}.slot-time-label{font-size:11px;font-weight:500;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;text-align:center}@media (max-width: 1200px){.available-time-page .schedule-toolbar{flex-direction:column;align-items:flex-start}.available-time-page .toolbar-center{position:static;transform:none;width:100%;justify-content:center;order:2}.available-time-page .toolbar-left{order:1;width:100%}.available-time-page .toolbar-right{order:3;width:100%;justify-content:flex-end}}@media (max-width: 768px){.available-time-page{padding:12px}.available-time-page .schedule-page-header{flex-direction:column;align-items:flex-start;gap:12px}.available-time-page .filter-row{flex-direction:column;align-items:flex-start}.legend-inline{flex-wrap:wrap}.grid-header,.time-row{grid-template-columns:70px repeat(7,1fr)}.time-label{font-size:10px;padding:0 4px;min-height:24px;line-height:24px}.time-cell,.time-row{min-height:24px}.booked-label{font-size:8px;padding:1px 3px}}.unsaved-warning-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:linear-gradient(135deg,#fff7e6,#ffe7ba);border:1px solid #ffc53d;border-radius:8px;margin-bottom:12px;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.unsaved-warning-bar .warning-content{display:flex;align-items:center;gap:10px;color:#d46b08;font-weight:500;font-size:14px}.unsaved-warning-bar .warning-content .anticon{font-size:18px}.unsaved-warning-bar .warning-actions{display:flex;align-items:center;gap:8px}.floating-save-container{position:fixed;bottom:32px;right:32px;z-index:1000;animation:floatIn .3s ease-out,bounce 1s ease-in-out .3s}@keyframes floatIn{0%{opacity:0;transform:translateY(40px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.floating-save-btn{height:56px!important;padding:0 32px!important;font-size:16px!important;font-weight:600!important;border-radius:28px!important;background:linear-gradient(135deg,#52c41a,#389e0d)!important;border:none!important;box-shadow:0 6px 24px #4caf5080,0 0 0 4px #4caf5033!important;animation:pulse 1.5s infinite!important}@keyframes pulse{0%{box-shadow:0 6px 24px #4caf5080,0 0 0 4px #4caf5033}50%{box-shadow:0 8px 32px #4caf50b3,0 0 0 8px #4caf5026}to{box-shadow:0 6px 24px #4caf5080,0 0 0 4px #4caf5033}}.floating-save-btn:hover{transform:scale(1.08)!important;box-shadow:0 8px 32px #4caf5099,0 0 0 6px #4caf5040!important}.floating-save-btn .anticon{font-size:18px!important;margin-right:8px!important}@media (max-width: 768px){.floating-save-container{bottom:16px;right:16px;left:16px}.floating-save-btn{width:100%;border-radius:12px}.unsaved-warning-bar{flex-direction:column;gap:10px;text-align:center}.unsaved-warning-bar .warning-actions{width:100%;justify-content:center}}.mobile-available-time{padding:16px 16px 80px;background:#f5f5f5;min-height:100vh}.mobile-available-time-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.mobile-available-time-header h1{font-size:24px;font-weight:600;color:#333;margin:0}.timezone-badge{font-size:12px;color:#4caf50;background:#e8f5e9;padding:4px 10px;border-radius:12px;display:flex;align-items:center;gap:4px}.week-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;padding:12px 16px;margin-bottom:12px}.nav-btn{width:36px;height:36px;border:none;background:#f0f0f0;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666}.week-label{font-size:15px;font-weight:600;color:#333}.week-selector{display:flex;gap:8px;margin-bottom:16px}.week-day{flex:1;background:#fff;border-radius:12px;padding:10px 4px;text-align:center;cursor:pointer;position:relative}.week-day.today{background:#e8f5e9}.week-day.selected{background:#4caf50}.week-day.selected .day-name,.week-day.selected .day-num{color:#fff}.day-name{font-size:10px;color:#999;text-transform:uppercase}.day-num{font-size:16px;font-weight:600;color:#333;margin-top:2px}.slot-count{font-size:10px;color:#fff;background:#4caf50;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:4px auto 0}.week-day.selected .slot-count{background:#fff;color:#4caf50}.add-time-btn{width:100%;padding:14px;background:#4caf50;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px}.add-time-btn:active{background:#43a047}.time-slots-section{margin-top:8px}.section-title{font-size:16px;font-weight:600;color:#333;margin:0 0 12px;display:flex;align-items:center;gap:8px}.section-title .count{font-size:14px;color:#999;font-weight:400}.time-slots-list{display:flex;flex-direction:column;gap:10px}.time-slot-card{background:#fff;border-radius:12px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000000f}.slot-time{display:flex;align-items:center;gap:10px;font-size:15px;color:#333;font-weight:500}.slot-time .duration{font-size:12px;color:#999;font-weight:400}.delete-btn{width:36px;height:36px;border:none;background:#fff1f0;color:#ff4d4f;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.delete-btn:active{background:#ffccc7}.add-modal-content{padding:16px 0}.add-modal-content p{margin-bottom:12px;color:#666}.time-slots-section .ant-empty{background:#fff;border-radius:12px;padding:40px 16px}.time-slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:300px;overflow-y:auto;padding:8px;background:#fafafa;border-radius:8px;border:1px solid #f0f0f0}.time-slot-btn{padding:12px 8px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;cursor:pointer;font-size:13px;font-weight:500;color:#333;transition:all .2s;text-align:center}.time-slot-btn:hover{border-color:#4caf50;background:#f6ffed;color:#4caf50}.time-slot-btn.selected{background:#4caf50;border-color:#4caf50;color:#fff;font-weight:600}.time-slot-btn:active{transform:scale(.98)}.tablet-available-time{padding:20px;background:#f5f7fa;min-height:calc(100vh - 64px)}.tablet-available-time-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.tablet-available-time-header h1{font-size:22px;font-weight:600;color:#262626;margin:0;display:flex;align-items:center;gap:10px}.tablet-available-time-header h1 .anticon{color:#4caf50}.tablet-available-time-header .subtitle{color:#8c8c8c;margin:4px 0 0;font-size:13px}.header-right{display:flex;align-items:center;gap:12px}.timezone-badge{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#e8f5e9;border-radius:20px;font-size:12px;color:#2e7d32;font-weight:500}.tablet-legend-bar{background:#fff;padding:10px 16px;border-radius:8px;margin-bottom:10px;box-shadow:0 1px 2px #0000000d;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.legend-inline{display:flex;align-items:center;gap:16px}.legend-item-inline{display:flex;align-items:center;gap:5px;font-size:12px;color:#666}.legend-dot{width:14px;height:14px;border-radius:3px;border:1px solid #d9d9d9}.legend-dot.available{background:linear-gradient(135deg,#f6ffed,#b7eb8f);border-color:#95de64}.legend-dot.unavailable{background:#fff;border-color:#e8e8e8}.legend-dot.booked{background:#fff7e6;border-color:#ffa940}.legend-dot.peak-hour{background:transparent;border-color:transparent;display:flex;align-items:center;justify-content:center}.legend-dot.peak-hour:after{content:"🔥";font-size:12px}.tablet-toolbar{background:#fff;padding:10px 16px;border-radius:8px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 1px 2px #0000000d}.date-navigator{display:flex;align-items:center;gap:8px}.date-range-text{font-size:15px;font-weight:500;color:#333;min-width:180px;text-align:center;white-space:nowrap}.unsaved-badge{font-size:12px;color:#ff4d4f;font-weight:500;padding:4px 8px;background:#fff1f0;border-radius:4px}.tablet-week-grid-container{background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 2px #0000000d;overflow:auto}.tablet-week-grid{min-width:700px}.tablet-day-column{overflow:visible}.available-time-slot{transition:all .15s ease;-webkit-user-select:none;user-select:none}.available-time-slot.inactive{box-shadow:inset 0 0 0 1px #0000000f}.available-time-slot.inactive:hover:not(.past):not(.fixed){background:#f6ffed!important;border-left:3px solid #b7eb8f!important;z-index:20!important;box-shadow:0 1px 3px #52c41a33!important}.available-time-slot.active:hover:not(.past):not(.fixed){background:#b7eb8f!important;border-left:4px solid #389e0d!important;z-index:20!important;box-shadow:0 2px 4px #52c41a33!important}.available-time-slot.past{opacity:.4;cursor:not-allowed!important}.unsaved-warning-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:linear-gradient(135deg,#fff7e6,#ffe7ba);border:1px solid #ffc53d;border-radius:8px;margin-bottom:12px}.warning-content{display:flex;align-items:center;gap:10px;color:#d46b08;font-weight:500;font-size:14px}.warning-actions{display:flex;align-items:center;gap:8px}.floating-save-container{position:fixed;bottom:24px;right:24px;z-index:1000}.floating-save-btn{height:52px!important;padding:0 28px!important;font-size:15px!important;font-weight:600!important;border-radius:26px!important;background:linear-gradient(135deg,#52c41a,#389e0d)!important;border:none!important;box-shadow:0 6px 24px #4caf5080!important}.floating-save-btn:hover{transform:scale(1.05)!important}.profile-page{padding:24px 32px;max-width:1200px;margin:0 auto;background:#fafafa;min-height:100vh}.profile-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #eee}.profile-page-title-row{display:flex;align-items:center;gap:10px}.profile-page-icon{font-size:28px}.profile-page-header h1{margin:0;font-size:26px;font-weight:700;color:#1a1a1a}.profile-page-subtitle{margin:4px 0 0;font-size:14px;color:#888}.profile-page-header-right{display:flex;align-items:center;gap:16px}.preview-public-btn{background:none;border:1px solid #ddd;border-radius:8px;padding:8px 16px;font-size:13px;color:#555;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.preview-public-btn:hover{border-color:#4caf50;color:#4caf50}.completion-badge{display:flex;align-items:center;font-size:13px;color:#666;gap:4px}.header-mini-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #E8F5E9}.header-mini-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:#e8f5e9;display:flex;align-items:center;justify-content:center;color:#4caf50;font-size:16px}.profile-hero-card{background:#fff;border-radius:16px;padding:28px 32px;margin-bottom:24px;box-shadow:0 1px 4px #0000000f;border:1px solid #f0f0f0}.hero-top-row{display:flex;justify-content:space-between;align-items:center}.hero-details-section{display:flex;gap:32px;margin-top:20px;padding-top:20px;border-top:1px solid #f0f0f0}.hero-basic-info{flex:1;min-width:260px}.hero-section-label{font-size:15px;font-weight:600;color:#1a1a1a;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}.hero-media-col{flex:1;min-width:260px;display:flex;flex-direction:column;gap:16px}.profile-content-cards{display:flex;flex-direction:column;gap:20px}.hero-left{display:flex;align-items:center;gap:24px;flex:1;min-width:0}.hero-avatar-wrapper{flex-shrink:0}.hero-avatar{width:96px;height:96px;border-radius:16px;object-fit:cover;border:3px solid #E8F5E9}.hero-avatar-placeholder{width:96px;height:96px;border-radius:16px;background:linear-gradient(135deg,#4caf50,#81c784);display:flex;align-items:center;justify-content:center}.hero-info{min-width:0}.hero-name{font-size:22px;font-weight:700;color:#1a1a1a;margin:0 0 4px}.hero-tagline{font-size:14px;color:#666;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}.hero-tags{display:flex;flex-wrap:wrap;gap:6px}.hero-tag{display:inline-block;padding:3px 12px;background:#f5f5f5;border:1px solid #e8e8e8;border-radius:14px;font-size:12px;color:#555}.hero-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.hero-action-btn{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #eee;border-radius:10px;padding:10px 20px;font-size:14px;color:#333;cursor:pointer;transition:all .2s;min-width:220px;text-align:left}.hero-action-btn:hover{background:#f9fdf9;border-color:#4caf50}.hero-action-btn:disabled{opacity:.5;cursor:not-allowed}.hero-action-arrow{margin-left:auto;color:#ccc;font-size:18px}.profile-card{background:#fff;border-radius:16px;padding:24px 28px;margin-bottom:20px;box-shadow:0 1px 4px #0000000f;border:1px solid #f0f0f0}.profile-card .ant-input,.profile-card .ant-input-affix-wrapper,.profile-card .ant-select-selector,.profile-card .ant-input-textarea textarea{border:none!important;box-shadow:none!important;background:#f8f8f8!important;border-radius:8px!important}.profile-card-title{font-size:16px;font-weight:600;color:#1a1a1a;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.profile-page .ant-input,.profile-page .ant-input-affix-wrapper{border-radius:10px;border:1.5px solid #e8e8e8;padding:10px 14px;transition:border-color .2s}.profile-page .ant-input:focus,.profile-page .ant-input-focused,.profile-page .ant-input-affix-wrapper-focused{border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a}.profile-page .ant-input[disabled]{background:#fafafa;color:#999}.email-hint{font-size:12px;color:#999}.media-section{margin-bottom:20px}.media-section:last-child{margin-bottom:0}.media-label{font-size:14px;font-weight:500;color:#333;margin-bottom:10px}.media-row{margin-bottom:6px}.media-photo-preview{display:flex;align-items:flex-end;gap:16px}.media-photo-img{width:140px;height:100px;object-fit:cover;border-radius:10px;border:2px solid #E8F5E9}.media-photo-actions{display:flex;flex-direction:column;gap:8px}.media-hint{font-size:12px;color:#aaa;margin-top:6px}.media-video-preview{display:flex;flex-direction:column;gap:10px}.media-video-player{max-width:100%;max-height:200px;border-radius:10px}.media-video-actions{display:flex;gap:8px;flex-wrap:wrap}.intro-help{display:flex;justify-content:space-between;align-items:flex-start;font-size:12px;color:#999;gap:12px}.intro-count{white-space:nowrap;color:#bbb}.education-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:12px;background:#fafafa;border-radius:10px}.education-fields{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.education-dash{color:#ccc;font-size:16px}.add-education-btn{border-style:dashed;border-color:#d9d9d9;color:#666}.specialty-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px;flex-wrap:wrap}.upload-progress-bar{margin:16px 0;padding:16px;background:#fff;border-radius:12px;border:1px solid #e8e8e8}.unsaved-indicator{padding:8px 16px;background:#fff7e6;border:1px solid #ffe58f;border-radius:8px;font-size:13px;color:#ad6800;margin:12px 0;text-align:center}.profile-action-bar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:24px;padding:20px 0;border-top:1px solid #eee}.cancel-btn{min-width:100px;border-radius:10px;border:1.5px solid #ddd;color:#555}.save-btn{min-width:180px;border-radius:10px;background:linear-gradient(135deg,#4caf50,#388e3c)!important;border:none!important;font-weight:600;color:#fff!important}.save-btn:hover{background:linear-gradient(135deg,#43a047,#2e7d32)!important}.save-btn:disabled{opacity:.5}.account-settings-section{margin-top:24px;padding-top:24px;border-top:1px solid #eee}.preview-modal-content{padding:16px 0}.preview-avatar-section{display:flex;align-items:center;gap:16px;margin-bottom:16px}.preview-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover}.preview-avatar-placeholder{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#4caf50,#81c784);display:flex;align-items:center;justify-content:center}.preview-tags{margin-bottom:16px}.preview-section h4{font-size:15px;font-weight:600;margin-bottom:8px;color:#333}.preview-section p{color:#666;line-height:1.7;white-space:pre-wrap}@media (max-width: 900px){.hero-details-section{flex-direction:column;gap:20px}.profile-hero-card{padding:20px}.hero-top-row{flex-direction:column;align-items:flex-start;gap:20px}.hero-actions{width:100%}.hero-action-btn{min-width:unset;width:100%}.profile-page{padding:16px}.profile-page-header{flex-direction:column;gap:12px;align-items:flex-start}.profile-page-header-right{flex-wrap:wrap}}@media (max-width: 600px){.profile-page{padding:12px}.profile-hero-card{padding:16px}.hero-media-col{flex-direction:column}.hero-avatar,.hero-avatar-placeholder{width:72px;height:72px}.hero-name{font-size:18px}.profile-card{padding:20px}.profile-action-bar{flex-direction:row}.save-btn,.cancel-btn{flex:1}}.mp-page{max-width:430px;margin:0 auto;padding:16px 16px 120px;background:#f8f8f8;min-height:100vh}.mp-loading{display:flex;justify-content:center;align-items:center;min-height:300px;color:#999}.mp-header{margin-bottom:16px}.mp-header-top{display:flex;justify-content:space-between;align-items:flex-start}.mp-header h1{font-size:22px;font-weight:700;color:#1a1a1a;margin:0 0 4px}.mp-header p{font-size:13px;color:#888;margin:0}.mp-header-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #E8F5E9;flex-shrink:0}.mp-header-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:#e8f5e9;display:flex;align-items:center;justify-content:center;color:#4caf50;font-size:16px;flex-shrink:0}.mp-completion{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:#888}.mp-completion .ant-progress{flex:1}.mp-alert{margin-bottom:12px;border-radius:12px}.mp-avatar-card{display:flex;gap:16px;background:#fff;border-radius:16px;padding:20px;margin-bottom:12px;box-shadow:0 1px 4px #0000000d}.mp-avatar-img{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid #E8F5E9;flex-shrink:0}.mp-avatar-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#4caf50,#81c784);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;flex-shrink:0}.mp-avatar-info{flex:1;min-width:0}.mp-avatar-name{font-size:18px;font-weight:600;color:#1a1a1a;margin-bottom:2px}.mp-avatar-tagline{font-size:12px;color:#888;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.mp-tag{display:inline-block;padding:2px 8px;background:#f5f5f5;border:1px solid #e8e8e8;border-radius:10px;font-size:11px;color:#555}.mp-avatar-actions{display:flex;flex-direction:column;gap:4px}.mp-action-link{background:none;border:none;padding:0;font-size:13px;color:#4caf50;cursor:pointer;display:flex;align-items:center;gap:6px;text-align:left}.mp-action-link:disabled{opacity:.5;cursor:not-allowed}.mp-section{background:#fff;border-radius:16px;padding:20px;margin-bottom:12px;box-shadow:0 1px 4px #0000000d}.mp-section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}.mp-hint{font-size:12px;color:#999}.mp-media-item{margin-bottom:20px}.mp-media-item:last-child{margin-bottom:0}.mp-media-label{font-size:13px;font-weight:500;color:#333;margin-bottom:8px}.mp-photo-preview{display:flex;align-items:flex-end;gap:12px;margin-bottom:4px}.mp-photo-img{width:100px;height:72px;object-fit:cover;border-radius:10px;border:2px solid #E8F5E9}.mp-video-preview{display:flex;flex-direction:column;gap:8px}.mp-video{width:100%;max-height:180px;border-radius:10px}.mp-video-actions{display:flex;gap:8px}.mp-media-hint{font-size:11px;color:#bbb;margin-top:4px}.mp-intro-help{display:flex;justify-content:space-between;font-size:12px;color:#999;gap:8px}.mp-intro-count{white-space:nowrap;color:#bbb}.mp-edu-row{margin-bottom:12px;padding:10px;background:#fafafa;border-radius:10px}.mp-edu-years{display:flex;align-items:center;gap:4px;margin-top:6px}.mp-edu-dash{color:#ccc;font-size:14px}.mp-specialty-row{margin-bottom:12px;padding:10px;background:#fafafa;border-radius:10px}.mp-specialty-desc-row{display:flex;align-items:flex-start;gap:6px}.mp-upload-progress{margin:12px 0;padding:14px;background:#fff;border-radius:12px;border:1px solid #e8e8e8}.mp-unsaved{padding:8px 16px;background:#fff7e6;border:1px solid #ffe58f;border-radius:8px;font-size:13px;color:#ad6800;text-align:center;margin:12px 0}.mp-action-bar{display:flex;gap:12px;margin-top:16px;padding:12px 0}.mp-cancel-btn{flex:0 0 auto;border-radius:12px;border:1.5px solid #ddd;color:#555}.mp-save-btn{flex:1;border-radius:12px!important;background:linear-gradient(135deg,#4caf50,#388e3c)!important;border:none!important;font-weight:600;color:#fff!important}.mp-save-btn:disabled{opacity:.5}.mp-account-section{margin-top:20px;padding-top:16px;border-top:1px solid #eee}.mp-account-form{margin-top:12px;background:#fff;border-radius:12px;padding:16px}.mp-logout-btn{display:block;width:100%;padding:14px;margin-top:20px;background:none;border:1.5px solid #ff4d4f;border-radius:14px;color:#ff4d4f;font-size:15px;font-weight:500;cursor:pointer;text-align:center}.mp-logout-btn:active{background:#fff2f0}.mp-preview-content{padding:8px 0}.mp-preview-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.mp-preview-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}.mp-preview-avatar-ph{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#4caf50,#81c784);display:flex;align-items:center;justify-content:center}.mp-section .ant-form-item{margin-bottom:16px}.mp-section .ant-form-item:last-child{margin-bottom:0}.mp-section .ant-input,.mp-section .ant-input-affix-wrapper{border-radius:10px}.notifications-page{padding:24px;max-width:1200px;margin:0 auto;background:var(--bg-light-gray)}.notifications-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding:24px;background:var(--bg-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.notifications-header h1{margin:0;font-size:24px;display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:16px}.unread-count{font-size:14px;color:#ff4d4f;font-weight:500}.notifications-card{box-shadow:0 2px 8px #0000001a}.notifications-list{padding:0}.notification-group{margin-bottom:32px}.notification-group:last-child{margin-bottom:0}.notification-group-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #f0f0f0}.notification-group-header h3{margin:0;font-size:16px;font-weight:600;color:#262626}.group-count{font-size:12px;color:#8c8c8c;background:#f5f5f5;padding:2px 8px;border-radius:12px}.notification-item{display:flex;gap:16px;padding:16px;border-radius:var(--radius-input);margin-bottom:8px;transition:var(--transition-bounce);cursor:pointer;background:var(--bg-white);border:2px solid var(--primary-green-light);box-shadow:var(--shadow-card)}.notification-item:hover{background:var(--primary-green-light);border-color:var(--primary-green);box-shadow:var(--shadow-hover);transform:translate(4px)}.notification-item.notification-unread{background:var(--primary-green-light);border-left:4px solid var(--primary-green);border-right:2px solid var(--primary-green-light)}.notification-icon{font-size:24px;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--primary-green-light);border-radius:50%;border:2px solid var(--primary-green)}.notification-unread .notification-icon{background:#e6f7ff}.notification-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:12px}.notification-title-row{display:flex;align-items:center;gap:8px;flex:1}.notification-title{font-size:16px;font-weight:600;color:#262626;line-height:1.5}.notification-type-tag{flex-shrink:0;margin:0;font-size:11px;padding:2px 8px;border-radius:4px}.notification-summary{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px;font-size:14px;color:#595959;line-height:1.5}.notification-student,.notification-time-info{display:inline-flex;align-items:center;gap:4px}.notification-student{color:#1890ff;font-weight:500}.notification-time-info{color:#8c8c8c;font-size:13px}.notification-detail-content{width:100%;font-size:13px;color:#595959;line-height:1.6;background:#fafafa;padding:8px 12px;border-radius:8px;border-left:3px solid #ff9800;margin-top:4px}.notification-clickable{cursor:pointer}.notification-clickable:hover{background:#f0f0f0!important}.notification-action{color:#1890ff;font-size:12px;display:inline-flex;align-items:center;gap:4px;margin-left:auto}.notification-footer{display:flex;align-items:center;gap:12px;font-size:12px;color:#8c8c8c;margin-top:4px}.notification-time{color:#8c8c8c}.notification-relative-time{color:#faad14;font-weight:500}.mark-read-btn{margin-left:auto;padding:0;height:auto;font-size:12px}.notifications-list .ant-list-item{padding:0;border:none}.notifications-list .ant-list-item:not(:last-child){margin-bottom:8px}@media (max-width: 768px){.notifications-page{padding:16px}.notification-item{padding:12px;gap:12px}.notification-icon{width:32px;height:32px;font-size:20px}.notification-title{font-size:14px}.notification-main-info{font-size:13px;gap:12px}.notification-header{flex-direction:column;align-items:flex-start}}.mobile-notifications{padding:16px 16px 80px;background:#f5f5f5;min-height:100vh}.mobile-notifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.mobile-notifications-header h1{font-size:24px;font-weight:600;color:#333;margin:0;display:flex;align-items:center;gap:8px}.mark-all-btn{padding:8px 12px;background:#fff;border:1px solid #4CAF50;color:#4caf50;border-radius:8px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:4px}.mark-all-btn:active{background:#e8f5e9}.unread-badge{background:#fff3e0;color:#e65100;padding:10px 16px;border-radius:8px;font-size:14px;margin-bottom:16px;text-align:center}.notifications-list{display:flex;flex-direction:column;gap:12px}.notification-card{background:#fff;border-radius:12px;padding:16px;display:flex;gap:12px;box-shadow:0 2px 8px #0000000f;position:relative;cursor:pointer}.notification-card.unread{background:#fafffe;border-left:3px solid #4CAF50}.notification-indicator{width:4px;border-radius:2px;flex-shrink:0}.notification-title{font-size:15px;font-weight:600;color:#333;margin-bottom:4px}.notification-message{font-size:14px;color:#666;line-height:1.4;margin-bottom:8px}.notification-time{font-size:12px;color:#999}.unread-dot{width:8px;height:8px;background:#4caf50;border-radius:50%;position:absolute;top:16px;right:16px}.notifications-list .ant-empty{background:#fff;border-radius:12px;padding:40px 16px}.tablet-notifications-v2{padding:24px;background:#f8f9fa;min-height:100vh;max-width:800px;margin:0 auto}.notifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e8e8e8}.notifications-header h1{font-size:26px;font-weight:600;color:#1a1a1a;margin:0;display:flex;align-items:center;gap:10px}.unread-badge{background:#ff4d4f;color:#fff;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:500}.mark-all-btn{height:40px;border-radius:8px;font-weight:500}.notifications-list-v2{display:flex;flex-direction:column;gap:12px}.notification-item{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;background:#fff;border-radius:12px;border-left:4px solid #e8e8e8;cursor:pointer;transition:all .2s ease;position:relative}.notification-item:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.notification-item.unread{background:#fafffe}.notification-item.read{opacity:.75}.notification-item.read:hover{opacity:1}.notification-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.notification-type{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.notification-time{font-size:13px;color:#999}.notification-title{font-size:16px;color:#666;margin-bottom:4px;line-height:1.4}.notification-title.unread{font-weight:600;color:#1a1a1a}.notification-message{font-size:14px;color:#888;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.unread-dot{width:10px;height:10px;background:#4caf50;border-radius:50%;flex-shrink:0;margin-top:6px}.empty-state{background:#fff;border-radius:12px;padding:60px 20px;text-align:center}@media (max-width: 900px){.tablet-notifications-v2{padding:16px}.notification-item{padding:14px 16px}.notification-icon{width:40px;height:40px;font-size:18px}.notification-title{font-size:15px}}.student-profile-page{padding:20px}.student-profile-page .ant-descriptions-item-label{font-weight:600;width:200px}.mobile-student-profile{min-height:100vh;background:#f8f9fa;padding-bottom:80px}.profile-header{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-bottom:1px solid #f0f0f0}.profile-header h1{flex:1;font-size:18px;font-weight:600;color:#1a1a1a;margin:0}.student-card{background:#fff;padding:24px;text-align:center;margin-bottom:12px}.student-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#4caf50,#66bb6a);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:32px;color:#fff;overflow:hidden}.student-name{font-size:22px;font-weight:600;color:#1a1a1a;margin:0 0 4px}.student-age{font-size:14px;color:#999}.completed-count-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000000a}.completed-icon{font-size:28px;color:#52c41a}.completed-number{font-size:28px;font-weight:700;color:#1a1a1a;line-height:1.2}.completed-label{font-size:13px;color:#999}.info-section{padding:0 16px;margin-bottom:16px}.section-title{font-size:14px;font-weight:600;color:#666;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.info-card{background:#fff;border-radius:12px;padding:4px 16px;box-shadow:0 1px 3px #0000000a}.info-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #f5f5f5}.info-row:last-child{border-bottom:none}.info-icon{font-size:18px;color:#4caf50;width:24px}.info-content{flex:1;display:flex;flex-direction:column}.info-content .label{font-size:12px;color:#999}.info-content .value{font-size:15px;color:#1a1a1a}.tags-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.no-info{padding:16px 0;text-align:center;color:#999;font-size:14px}.classes-list{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.class-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #f5f5f5;cursor:pointer}.class-item:last-child{border-bottom:none}.class-item:active{background:#fafafa}.class-time{display:flex;align-items:center;gap:6px;font-size:13px;color:#4caf50;min-width:110px}.class-material{flex:1;font-size:14px;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-header .section-title{margin:0}.full-history-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.history-item{padding:12px;background:#fafafa;border-radius:8px;border:1px solid #f0f0f0;cursor:pointer;transition:all .2s}.history-item:active{background:#f0f0f0}.history-date{display:flex;align-items:center;gap:6px;font-size:13px;color:#4caf50;margin-bottom:6px}.history-date .anticon{font-size:14px}.history-date .time{color:#999;font-size:12px}.history-material{display:flex;align-items:center;gap:6px;font-size:13px;color:#1a1a1a;margin-bottom:6px}.history-material .anticon{color:#999;font-size:12px}.history-teacher{display:flex;align-items:center;gap:6px;font-size:12px;color:#999}.history-teacher .label{font-weight:500}.tablet-student-profile{padding:24px;background:#f5f5f5;min-height:100vh}.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.profile-header h1{font-size:24px;font-weight:600;color:#262626;margin:0}.profile-content{display:grid;grid-template-columns:320px 1fr;gap:24px}.avatar-card{background:#fff;border-radius:16px;padding:32px 24px;box-shadow:0 2px 8px #0000000f;text-align:center}.student-avatar{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;overflow:hidden}.student-avatar img{width:100%;height:100%;object-fit:cover}.student-avatar .anticon{font-size:48px;color:#4caf50}.student-name{font-size:22px;font-weight:600;color:#262626;margin:0 0 4px}.student-age{font-size:14px;color:#8c8c8c}.completed-count-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;gap:16px}.completed-icon{font-size:32px;color:#52c41a}.completed-info{display:flex;flex-direction:column}.completed-number{font-size:28px;font-weight:700;color:#262626;line-height:1.2}.completed-label{font-size:13px;color:#8c8c8c}.stats-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000f;display:flex;justify-content:space-around}.stat-item{text-align:center}.stat-value{display:block;font-size:28px;font-weight:700;color:#262626;line-height:1.2}.stat-label{font-size:12px;color:#8c8c8c}.info-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000f}.card-title{font-size:14px;font-weight:600;color:#262626;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.info-list{display:flex;flex-direction:column;gap:16px}.info-row{display:flex;align-items:flex-start;gap:12px}.info-icon{font-size:16px;color:#4caf50;margin-top:2px}.info-content{flex:1;display:flex;flex-direction:column;gap:2px}.info-content .label{font-size:12px;color:#8c8c8c}.info-content .value{font-size:14px;color:#262626}.tags-section{display:flex;flex-direction:column;gap:8px}.tags-section .label{font-size:12px;color:#8c8c8c}.tags-row{display:flex;flex-wrap:wrap;gap:6px}.tags-row .ant-tag{margin:0;border-radius:12px}.classes-panel{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.panel-header h2{font-size:18px;font-weight:600;color:#262626;margin:0;display:flex;align-items:center;gap:8px}.panel-header h2 .anticon{color:#4caf50}.panel-header .count{font-size:13px;color:#8c8c8c;background:#f5f5f5;padding:4px 12px;border-radius:12px}.classes-list{display:flex;flex-direction:column;gap:12px}.class-card{padding:16px;background:#fafafa;border-radius:12px;border:1px solid #f0f0f0;cursor:pointer;transition:all .2s}.class-card:hover{border-color:#4caf50;box-shadow:0 2px 8px #4caf501a}.class-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.class-time{display:flex;align-items:center;gap:8px;font-size:14px;color:#262626;font-weight:500}.class-time .anticon{color:#4caf50}.class-time .time-only{color:#8c8c8c;font-weight:400}.class-material{display:flex;align-items:center;gap:8px;font-size:13px;color:#595959}.class-material .anticon{color:#8c8c8c}.full-history-list{display:flex;flex-direction:column;gap:12px;max-height:500px;overflow-y:auto}.history-item{padding:16px;background:#fafafa;border-radius:12px;border:1px solid #f0f0f0;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.history-item:hover{border-color:#4caf50;box-shadow:0 2px 8px #4caf501a}.history-date{display:flex;align-items:center;gap:8px;font-size:14px;color:#262626;font-weight:500;min-width:150px}.history-date .anticon{color:#4caf50}.history-date .time{color:#8c8c8c;font-weight:400;font-size:12px}.history-material{display:flex;align-items:center;gap:8px;font-size:13px;color:#595959;flex:1;margin:0 16px}.history-material .anticon{color:#8c8c8c}.history-teacher{display:flex;align-items:center;gap:8px;font-size:13px;color:#595959;min-width:120px}.history-teacher .label{color:#8c8c8c;font-weight:500}.reviews-page{padding:24px;background:var(--bg-light-gray);min-height:100vh}.reviews-page h1{margin-bottom:8px;font-size:24px;font-weight:600;color:var(--text-primary)}.mobile-reviews{min-height:100vh;background:#f8f9fa;padding-bottom:80px}.loading{display:flex;align-items:center;justify-content:center;height:200px;color:#999}.reviews-header{padding:16px;background:#fff}.reviews-header h1{font-size:24px;font-weight:600;color:#1a1a1a;margin:0;display:flex;align-items:center;gap:8px}.stats-card{background:#fff;margin:16px;padding:24px;border-radius:12px;text-align:center;box-shadow:0 1px 3px #0000000a}.stat-main{display:flex;flex-direction:column;align-items:center;gap:8px}.avg-rating{font-size:48px;font-weight:700;line-height:1}.avg-stars{font-size:20px}.stat-sub{margin-top:8px;font-size:14px;color:#999}.reviews-list{padding:0 16px}.review-card{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 3px #0000000a}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.reviewer-info{display:flex;align-items:center;gap:10px}.reviewer-avatar{width:36px;height:36px;background:#e8f5e9;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#4caf50;font-size:16px}.reviewer-name{font-size:15px;font-weight:500;color:#1a1a1a}.review-rating{font-size:14px}.review-comment{font-size:14px;color:#666;line-height:1.6;margin:0 0 12px;padding:12px;background:#fafafa;border-radius:8px}.review-meta{display:flex;flex-wrap:wrap;gap:16px}.meta-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#999}.empty-state{background:#fff;border-radius:12px;padding:40px 16px}.tablet-reviews{padding:24px;background:#f5f5f5;min-height:100vh}.tablet-reviews-header{margin-bottom:24px}.tablet-reviews-header h1{font-size:24px;font-weight:600;color:#262626;margin:0;display:flex;align-items:center;gap:10px}.tablet-reviews-header h1 .anticon{color:#faad14}.tablet-reviews-header .subtitle{color:#8c8c8c;margin:4px 0 0;font-size:14px}.tablet-reviews-content{display:grid;grid-template-columns:280px 1fr;gap:24px}.stats-panel{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f;height:fit-content;position:sticky;top:24px}.rating-overview{text-align:center;padding-bottom:24px;border-bottom:1px solid #f0f0f0;margin-bottom:24px}.avg-rating{font-size:56px;font-weight:700;line-height:1;margin-bottom:8px}.avg-stars{margin-bottom:8px}.avg-stars .ant-rate-star{font-size:20px}.total-reviews{font-size:14px;color:#8c8c8c}.rating-distribution{display:flex;flex-direction:column;gap:12px}.dist-row{display:flex;align-items:center;gap:12px}.dist-label{width:36px;font-size:13px;color:#595959;display:flex;align-items:center;gap:4px}.dist-bar{flex:1;height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.dist-fill{height:100%;background:linear-gradient(90deg,#faad14,#ffc53d);border-radius:4px;transition:width .3s ease}.dist-count{width:24px;font-size:13px;color:#8c8c8c;text-align:right}.reviews-panel{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f}.reviews-list{display:flex;flex-direction:column;gap:16px}.review-card{padding:20px;background:#fafafa;border-radius:12px;border:1px solid #f0f0f0;transition:all .2s}.review-card:hover{border-color:#e0e0e0;box-shadow:0 2px 8px #0000000a}.review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.reviewer-info{display:flex;align-items:center;gap:12px}.reviewer-avatar{width:44px;height:44px;border-radius:50%;background:#e8f5e9;display:flex;align-items:center;justify-content:center;color:#4caf50;font-size:20px}.reviewer-details{display:flex;flex-direction:column}.reviewer-name{font-size:15px;font-weight:600;color:#262626}.review-date{font-size:12px;color:#8c8c8c}.review-rating .ant-rate-star{font-size:14px}.review-comment{font-size:14px;color:#595959;line-height:1.6;margin:0 0 16px}.review-meta{display:flex;gap:8px;flex-wrap:wrap}.review-meta .ant-tag{margin:0;border-radius:12px;font-size:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-hint{color:#8c8c8c;font-size:14px;margin-top:12px}.loading-state{display:flex;align-items:center;justify-content:center;min-height:400px;color:#8c8c8c}.class-detail-page{padding:24px;max-width:1200px;margin:0 auto;background:var(--bg-light-gray)}.class-detail-page .ant-card{box-shadow:var(--shadow-card);border-radius:var(--radius-card)}.class-detail-page .ant-descriptions-item-label{font-weight:500;width:150px}.class-detail-page .ant-timeline-item-content{margin-left:24px}.mobile-class-detail{min-height:100vh;background:#f8f9fa;padding-bottom:80px}.loading,.empty-state{display:flex;align-items:center;justify-content:center;height:200px;color:#999}.detail-header{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-bottom:1px solid #f0f0f0}.back-btn{width:36px;height:36px;border:none;background:#f5f5f5;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:#666}.detail-header h1{flex:1;font-size:18px;font-weight:600;color:#1a1a1a;margin:0}.info-card{background:#fff;margin:16px;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000a}.time-section{display:flex;align-items:center;gap:14px}.time-icon{font-size:24px;color:#4caf50}.time-info{flex:1}.time-info .date{font-size:14px;color:#666}.time-info .time{font-size:22px;font-weight:600;color:#1a1a1a}.duration{padding:6px 12px;background:#e8f5e9;color:#4caf50;border-radius:16px;font-size:13px;font-weight:500}.divider{height:1px;background:#f0f0f0;margin:16px 0}.detail-row{display:flex;align-items:center;gap:12px;padding:12px 0}.row-icon{font-size:18px;color:#4caf50;width:24px}.row-content{flex:1;display:flex;flex-direction:column}.row-content .label{font-size:12px;color:#999}.row-content .value{font-size:15px;color:#1a1a1a}.link-btn{padding:6px 12px;background:transparent;border:1px solid #4CAF50;color:#4caf50;border-radius:6px;font-size:13px;cursor:pointer}.remark-section{margin-top:12px;padding:12px;background:#fafafa;border-radius:8px}.remark-label{font-size:12px;color:#999;display:block;margin-bottom:4px}.remark-text{font-size:14px;color:#666;margin:0;line-height:1.5}.alert{display:flex;align-items:center;gap:10px;margin:0 16px 12px;padding:12px 16px;border-radius:8px;font-size:14px}.alert.warning{background:#fff7e6;color:#d46b08}.alert.success{background:#f6ffed;color:#389e0d}.actions-section{padding:16px;display:flex;flex-direction:column;gap:12px}.action-btn{width:100%;padding:14px;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;gap:8px}.action-btn svg{vertical-align:middle;flex-shrink:0}.action-btn.primary{background:#4caf50;color:#fff}.action-btn.primary.disabled{background:#c8e6c9;cursor:not-allowed}.action-btn.secondary{background:#fff;color:#4caf50;border:1px solid #4CAF50}.tablet-class-detail{padding:24px;background:#f5f5f5;min-height:100vh}.detail-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.detail-header h1{font-size:24px;font-weight:600;color:#262626;margin:0;flex:1}.timezone-badge{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#e8f5e9;border-radius:20px;font-size:13px;color:#2e7d32;font-weight:500}.detail-content{display:grid;grid-template-columns:1fr 360px;gap:24px}.info-panel{display:flex;flex-direction:column;gap:16px}.time-card{background:linear-gradient(135deg,#4caf50,#66bb6a);border-radius:16px;padding:24px;color:#fff;display:flex;justify-content:space-between;align-items:center}.time-main{display:flex;align-items:center;gap:16px}.time-icon{font-size:32px;opacity:.9}.time-info .date{font-size:16px;opacity:.9;margin-bottom:4px}.time-info .time{font-size:28px;font-weight:700}.duration-badge{background:#fff3;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500}.details-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f}.card-title{font-size:16px;font-weight:600;color:#262626;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.detail-row{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid #f5f5f5}.detail-row:last-child{border-bottom:none}.row-icon{font-size:18px;color:#4caf50;margin-top:2px}.row-content{flex:1;display:flex;flex-direction:column;gap:4px}.row-content .label{font-size:12px;color:#8c8c8c}.row-content .value{font-size:15px;color:#262626}.remark-section{margin-top:16px;padding:16px;background:#fafafa;border-radius:12px}.remark-label{font-size:12px;color:#8c8c8c;display:block;margin-bottom:8px}.remark-text{font-size:14px;color:#595959;margin:0;line-height:1.6}.actions-panel{display:flex;flex-direction:column;gap:16px}.actions-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f}.action-btn{margin-bottom:12px}.action-btn:last-child{margin-bottom:0}.action-btn.link{color:#4caf50}.status-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000000f}.status-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f5f5f5}.status-row:last-child{border-bottom:none}.status-label{font-size:14px;color:#595959}.empty-state,.loading-state{display:flex;align-items:center;justify-content:center;min-height:400px;color:#8c8c8c}@media (max-width: 900px){.detail-content{grid-template-columns:1fr}.actions-panel{order:-1}}.onboarding-page{max-width:800px;margin:0 auto;padding:24px 16px}.onboarding-progress-card{border-radius:12px}.onboarding-progress-card .ant-steps-item-finish .ant-steps-item-icon{background:#52c41a;border-color:#52c41a}.onboarding-progress-card .ant-steps-item-finish .ant-steps-item-icon .ant-steps-icon{color:#fff}.onboarding-tasks{display:flex;flex-direction:column;gap:16px}.onboarding-task-card{border-radius:12px;transition:box-shadow .2s}.onboarding-task-card:hover{box-shadow:0 2px 12px #00000014}.onboarding-task-card .ant-card-head-title{padding:12px 0}@media (max-width: 576px){.onboarding-page{padding:16px 12px}.onboarding-progress-card .ant-steps{flex-direction:column;gap:8px}}.teaching-standards-drawer .ant-drawer-content-wrapper{max-width:720px;margin:0 auto}.handbook-scroll{flex:1;overflow-y:auto;height:100%;background:#fff}.handbook-scroll-inner{max-width:680px;margin:0 auto;padding:24px 20px 32px}.teacher-handbook-content .handbook-section{margin-bottom:28px}.teacher-handbook-content ul{padding-left:20px;margin-bottom:12px}.teacher-handbook-content li{margin-bottom:6px}.handbook-compare{display:flex;flex-direction:column;gap:8px;margin:12px 0 16px}.handbook-compare-bad,.handbook-compare-good{padding:10px 14px;border-radius:8px;font-size:14px}.handbook-compare-bad{background:#fff2f0;border:1px solid #ffccc7}.handbook-compare-good{background:#f6ffed;border:1px solid #b7eb8f}.handbook-confirmation{margin-top:32px;padding:20px;background:#fafafa;border-radius:12px;border:1px solid #f0f0f0}.handbook-confirmation-locked{opacity:.92}.handbook-countdown{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;background:#e6f4ff;border:1px solid #91caff;border-radius:8px;color:#0958d9}.handbook-countdown .anticon{font-size:18px}.handbook-confirmation-done{text-align:center;background:#f6ffed;border-color:#b7eb8f}.app-layout{min-height:100vh;background:var(--bg-light-gray)}.app-layout .ant-layout-sider{background:var(--bg-white)!important;box-shadow:var(--shadow-card);border-right:2px solid var(--primary-green-light)}.sidebar-logo{height:64px;display:flex;align-items:center;justify-content:center;background:var(--bg-white);border-bottom:1px solid #E5E7EB;padding:12px;box-sizing:border-box}.sidebar-logo .logo-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%}.sidebar-logo .logo-text{font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:.3px;text-align:center;line-height:1.2}.app-layout .ant-layout-sider-collapsed .sidebar-logo{height:64px;padding:12px}.app-layout .ant-layout-sider-collapsed .sidebar-logo .logo-text{font-size:12px}.app-layout .ant-menu{background:transparent!important;border:none;padding:16px 8px;margin-top:0}.app-layout .ant-menu-item{border-radius:var(--radius-input)!important;margin:4px 0!important;height:48px!important;line-height:48px!important;transition:var(--transition-bounce)!important}.app-layout .ant-menu-item:hover{background:var(--primary-green-light)!important;transform:translate(4px)}.app-layout .ant-menu-item-selected{background:linear-gradient(135deg,var(--primary-green-light) 0%,rgba(76,175,80,.1) 100%)!important;color:var(--primary-green-dark)!important;font-weight:600}.app-layout .ant-menu-item-selected:after{display:none!important}.logo{display:flex;align-items:center;justify-content:center;background:#fff;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:all .3s ease;padding:16px;box-sizing:border-box;margin:0;position:relative}.logo:hover{background:#fafafa}.logo:active{background:#f5f5f5}.logo-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%}.logo-image{width:40px;height:40px;border-radius:8px;object-fit:cover;display:block;margin:0 auto;box-shadow:0 2px 8px #0000001a}.logo-icon-placeholder{width:40px;height:40px;border-radius:8px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:24px;color:#8c8c8c;margin:0 auto}.logo-text{font-size:16px;font-weight:600;color:#262626;letter-spacing:.3px;text-align:center;line-height:1.2;margin-top:8px}.logo-image-collapsed{width:36px;height:36px;border-radius:8px;object-fit:cover;display:block;margin:0 auto;box-shadow:0 2px 8px #0000001a}.logo-icon-placeholder-collapsed{width:36px;height:36px;border-radius:8px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:20px;color:#8c8c8c;margin:0 auto}@media (max-width: 768px){.logo{padding:12px}.logo-image{width:36px;height:36px}.logo-icon-placeholder{width:36px;height:36px;font-size:20px}.logo-text{font-size:14px}.logo-image-collapsed{width:32px;height:32px}.logo-icon-placeholder-collapsed{width:32px;height:32px;font-size:18px}}.app-header{background:var(--bg-white);padding:0 24px;height:64px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid #E5E7EB}.header-right{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s}.user-info:hover{background:#f3f4f6}.user-info:hover .username{color:#374151}.username{font-size:14px;color:#333}.app-content{margin:24px;padding:0;background:transparent;border-radius:0;min-height:calc(100vh - 112px)}.mobile-tab-bar{position:fixed;bottom:0;left:0;right:0;height:80px;background:#fff;display:flex;justify-content:space-around;align-items:center;border-top:1px solid #e5e5e5;box-shadow:0 -2px 8px #0000000f;z-index:1000;padding-bottom:env(safe-area-inset-bottom)}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 0;cursor:pointer;transition:all .2s}.tab-icon{font-size:24px;color:#999;margin-bottom:4px}.tab-label{font-size:11px;color:#999}.tab-item.active .tab-icon{color:#4caf50}.tab-item.active .tab-label{color:#4caf50;font-weight:500}.mobile-layout{min-height:100vh;background:#f5f5f5}.mobile-content{padding-bottom:70px}.tablet-layout{min-height:100vh;background:#f5f5f5}.tablet-header{position:fixed;top:0;left:0;right:0;height:60px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 20px;box-shadow:0 2px 8px #00000014;z-index:100}.header-left{display:flex;align-items:center;gap:16px}.menu-toggle{width:40px;height:40px;border:none;background:#f5f5f5;border-radius:8px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.logo{font-size:22px;font-weight:700;color:#4caf50}.header-right .user-info{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background .2s}.header-right .user-info:hover{background:#f5f5f5}.header-right .username{font-size:14px;color:#333;font-weight:500}.tablet-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;pointer-events:none}.tablet-sidebar.open{pointer-events:auto}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;opacity:0;transition:opacity .3s}.tablet-sidebar.open .sidebar-overlay{opacity:1}.sidebar-nav{position:fixed;top:0;left:0;bottom:0;width:280px;background:#fff;transform:translate(-100%);transition:transform .3s;overflow-y:auto}.tablet-sidebar.open .sidebar-nav{transform:translate(0)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #f0f0f0}.sidebar-header h2{margin:0;font-size:20px;color:#333}.sidebar-header button{width:36px;height:36px;border:none;background:#f5f5f5;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}.nav-item{display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer;transition:background .2s;border-left:3px solid transparent}.nav-item:hover{background:#f9f9f9}.nav-item.active{background:#e8f5e9;border-left-color:#4caf50}.nav-icon{font-size:20px;color:#666}.nav-item.active .nav-icon{color:#4caf50}.nav-label{font-size:15px;color:#333;flex:1}.nav-item.active .nav-label{color:#4caf50;font-weight:500}.tablet-content{padding-top:60px;min-height:100vh}.mobile-contracts{min-height:100vh;background:#fff;padding-bottom:80px}.contracts-header{padding:16px 16px 12px;background:#fff}.contracts-header h1{font-size:24px;font-weight:600;color:#1a1a1a;margin:0}.pending-banner{margin-top:10px;padding:10px 14px;background:#fff7e6;border:1px solid #ffd591;border-radius:8px;color:#d46b08;font-size:14px}.contracts-content{padding:16px}.loading-container{display:flex;justify-content:center;padding:60px 0}.mobile-contracts .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.mobile-contracts .empty-icon{font-size:48px;color:#d9d9d9;margin-bottom:16px}.mobile-contracts .empty-text{font-size:15px;color:#999;margin:0}.contracts-list{display:flex;flex-direction:column;gap:12px}.contract-card{background:#fff;border-radius:12px;padding:16px;border:1px solid #f0f0f0;box-shadow:0 1px 3px #0000000a;cursor:pointer;transition:all .2s}.contract-card:active{background:#fafafa}.contract-card.pending{border-left:4px solid #fa8c16}.contract-card.superseded{opacity:.6}.card-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.contract-icon{width:40px;height:40px;border-radius:10px;background:#f0f5ff;display:flex;align-items:center;justify-content:center;font-size:18px;color:#1890ff;flex-shrink:0}.contract-info{flex:1;min-width:0}.contract-title{font-weight:600;font-size:15px;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-date{font-size:13px;color:#888;margin-top:2px}.card-bottom{display:flex;align-items:center}.mobile-contract-drawer .ant-drawer-header{padding:12px 16px;border-bottom:1px solid #f0f0f0}.mobile-contract-drawer .ant-drawer-title{font-size:16px;font-weight:600}.mobile-contract-drawer .ant-drawer-body{padding:0}.drawer-content{display:flex;flex-direction:column;height:100%}.contract-status-row{padding:12px 16px;border-bottom:1px solid #f5f5f5}.contract-body-scroll{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}.contract-html-content{font-size:14px;line-height:1.6;color:#333;word-wrap:break-word;overflow-wrap:break-word}.contract-html-content table{width:100%!important;max-width:100%;overflow-x:auto;display:block}.contract-html-content img{max-width:100%;height:auto}.acceptance-section{border-top:2px solid #1a1a1a;padding-top:20px;margin-top:16px}.acceptance-title{font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:20px}.acceptance-grid{display:grid;grid-template-columns:1fr;gap:16px}.acceptance-field{margin-bottom:4px}.acceptance-field .field-value{border-bottom:1px solid #555;min-height:32px;display:flex;align-items:flex-end;padding-bottom:4px;font-size:13px;margin-bottom:4px}.acceptance-field .field-label{font-size:11px;color:#555}.signature-img{height:28px;max-width:180px}.signature-section{padding:16px;border-top:1px solid #f0f0f0;background:#fafafa}.mobile-signature-pad .signature-label{margin-bottom:8px;color:#666;font-size:13px}.mobile-signature-pad .signature-canvas-container{border:2px solid #d9d9d9;border-radius:8px;background:#fff;overflow:hidden;width:100%}.mobile-signature-pad .signature-canvas{display:block;width:100%;height:160px;cursor:crosshair;touch-action:none}.mobile-signature-pad .signature-actions{display:flex;gap:8px;margin-top:12px}.sig-btn{flex:1;padding:10px 12px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;transition:all .2s}.sig-btn-clear{background:#f5f5f5;color:#666}.sig-btn-clear:active{background:#e8e8e8}.sig-btn-cancel{background:#fff;color:#666;border:1px solid #d9d9d9}.sig-btn-cancel:active{background:#fafafa}.sig-btn-confirm{background:#4caf50;color:#fff}.sig-btn-confirm:active{background:#43a047}.contract-actions{display:flex;flex-direction:column;gap:10px;padding:16px;border-top:1px solid #f0f0f0;background:#fff}.contract-btn{width:100%;min-height:44px;padding:12px 16px;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.btn-sign{background:#4caf50;color:#fff;order:-1}.btn-sign:active{background:#43a047}.btn-decline{background:#fff;color:#ff4d4f;border:1px solid #ff4d4f}.btn-decline:active{background:#fff1f0}.tablet-contracts{min-height:100vh;background:#fff;padding:0 24px 40px}.tablet-contracts-header{padding:20px 0 16px}.tablet-contracts-header h1{font-size:26px;font-weight:600;color:#1a1a1a;margin:0}.tablet-contracts .pending-banner{margin-top:12px;padding:12px 16px;background:#fff7e6;border:1px solid #ffd591;border-radius:8px;color:#d46b08;font-size:14px}.tablet-contracts-content{padding:8px 0}.tablet-contracts .loading-container{display:flex;justify-content:center;padding:60px 0}.tablet-contracts .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.tablet-contracts .empty-icon{font-size:52px;color:#d9d9d9;margin-bottom:16px}.tablet-contracts .empty-text{font-size:15px;color:#999;margin:0}.tablet-contracts-list{display:flex;flex-direction:column;gap:12px}.tablet-contract-card{border-radius:10px;border:1px solid #f0f0f0;transition:all .2s}.tablet-contract-card:hover{box-shadow:0 2px 8px #0000000f}.tablet-contract-card.pending{border-left:4px solid #fa8c16}.tablet-contract-card.superseded{opacity:.6}.tablet-contract-card .card-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.tablet-contract-card .card-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.tablet-contract-card .contract-icon{width:42px;height:42px;border-radius:10px;background:#f0f5ff;display:flex;align-items:center;justify-content:center;font-size:18px;color:#1890ff;flex-shrink:0}.tablet-contract-card .contract-info{flex:1;min-width:0}.tablet-contract-card .contract-title{font-weight:600;font-size:15px;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tablet-contract-card .contract-date{font-size:13px;color:#888;margin-top:2px}.tablet-contract-card .card-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.tablet-contract-modal .ant-modal-content{border-radius:12px}.tablet-contract-modal .ant-modal-header{padding:16px 24px;border-bottom:1px solid #f0f0f0}.tablet-contract-modal .ant-modal-title{font-size:17px;font-weight:600}.tablet-contract-modal .ant-modal-body{padding:0}.tablet-contract-modal .modal-status-row{padding:12px 24px;border-bottom:1px solid #f5f5f5}.tablet-contract-modal .modal-contract-body{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px 24px;max-height:500px;overflow-y:auto;margin:16px 24px;-webkit-overflow-scrolling:touch}.tablet-contract-modal .contract-html-content{font-size:14px;line-height:1.6;color:#333;word-wrap:break-word;overflow-wrap:break-word}.tablet-contract-modal .contract-html-content table{width:100%!important;max-width:100%}.tablet-contract-modal .contract-html-content img{max-width:100%;height:auto}.tablet-contract-modal .acceptance-section{border-top:2px solid #1a1a1a;padding-top:20px;margin-top:16px}.tablet-contract-modal .acceptance-title{font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:20px}.tablet-contract-modal .acceptance-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}.tablet-contract-modal .acceptance-field .field-value{border-bottom:1px solid #555;min-height:32px;display:flex;align-items:flex-end;padding-bottom:4px;font-size:13px;margin-bottom:4px}.tablet-contract-modal .acceptance-field .field-label{font-size:11px;color:#555}.tablet-contract-modal .signature-img{height:28px;max-width:180px}.tablet-contract-modal .modal-signature-section{padding:16px 24px;border-top:1px solid #f0f0f0;background:#fafafa}.tablet-signature-pad .signature-label{margin-bottom:8px;color:#666;font-size:13px}.tablet-signature-pad .signature-canvas-container{border:2px solid #d9d9d9;border-radius:8px;background:#fff;overflow:hidden;width:100%}.tablet-signature-pad .signature-canvas{display:block;width:100%;height:160px;cursor:crosshair;touch-action:none}.tablet-signature-pad .signature-actions{display:flex;gap:8px;margin-top:12px}.tablet-contract-modal .modal-actions{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;border-top:1px solid #f0f0f0}.tablet-contract-modal .modal-actions .ant-btn{min-height:40px;padding:8px 20px;font-size:14px}:root{--primary-green: #4CAF50;--primary-green-light: #E8F5E9;--primary-green-dark: #2E7D32;--primary-green-hover: #45a049;--bg-cream: #FAFAFA;--bg-light-gray: #F5F5F5;--bg-white: #FFFFFF;--text-primary: #333333;--text-secondary: #666666;--text-light: #999999;--radius-card: 16px;--radius-button: 24px;--radius-input: 12px;--radius-small: 8px;--shadow-card: 0 4px 12px rgba(0, 0, 0, .05);--shadow-hover: 0 6px 16px rgba(0, 0, 0, .08);--shadow-button: 0 2px 8px rgba(76, 175, 80, .2);--transition-smooth: all .3s cubic-bezier(.4, 0, .2, 1);--transition-bounce: all .3s cubic-bezier(.68, -.55, .265, 1.55)}body{background-color:var(--bg-light-gray);font-family:Poppins,Source Han Rounded CN,Source Han Sans CN,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}.cute-card{background:var(--bg-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px;transition:var(--transition-smooth);border:none}.cute-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.cute-button{border-radius:var(--radius-button);padding:10px 24px;font-weight:500;transition:var(--transition-bounce);border:none;box-shadow:var(--shadow-button);line-height:1.2;display:inline-flex;align-items:center;justify-content:center}.cute-button .anticon{vertical-align:middle}.cute-button:hover{transform:scale(1.03);box-shadow:0 4px 12px #4caf504d}.cute-button-primary{background:linear-gradient(135deg,#2e7d32,#1b5e20)!important;color:#fff!important;border:2px solid #2E7D32!important;font-weight:600!important}.cute-button-primary:hover,.cute-button-primary:focus{background:linear-gradient(135deg,#388e3c,#2e7d32)!important;color:#fff!important;border-color:#388e3c!important}.cute-button-primary:active{background:linear-gradient(135deg,#1b5e20,#0d4a10)!important;color:#fff!important}.cute-button-secondary{background:var(--primary-green-light);color:var(--primary-green-dark)}.cute-input{border-radius:var(--radius-input);border:2px solid var(--primary-green-light);padding:10px 16px;transition:var(--transition-smooth)}.cute-input:focus{border-color:var(--primary-green);box-shadow:0 0 0 3px #4caf501a;outline:none}.cute-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-button);font-size:12px;font-weight:500;background:var(--primary-green-light);color:var(--primary-green-dark)}.cute-badge-success{background:var(--primary-green-light);color:var(--primary-green-dark)}.cute-hint{font-size:12px;color:var(--text-light);line-height:1.6;margin-top:4px}.cute-title{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:8px;display:flex;align-items:center;gap:8px}.cute-subtitle{font-size:14px;color:var(--text-secondary);line-height:1.6;margin-bottom:24px}.cute-section-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:16px;display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:2px solid var(--primary-green-light)}.cute-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--primary-green-light);color:var(--primary-green-dark);font-size:16px}.ant-card{border-radius:var(--radius-card)!important;box-shadow:var(--shadow-card)!important;border:none!important;transition:var(--transition-smooth)!important}.ant-card:hover{box-shadow:var(--shadow-hover)!important}.ant-btn-primary{background:linear-gradient(135deg,var(--primary-green) 0%,var(--primary-green-dark) 100%)!important;border:none!important;border-radius:var(--radius-button)!important;box-shadow:var(--shadow-button)!important;transition:var(--transition-bounce)!important;color:#fff!important}.ant-btn-primary:hover:not(:disabled){transform:scale(1.03)!important;box-shadow:0 4px 12px #4caf504d!important;color:#fff!important}.ant-btn-primary:disabled{color:#fff!important;opacity:.6}.ant-btn-default{border-radius:var(--radius-button)!important;transition:var(--transition-bounce)!important}.ant-btn-default:hover:not(:disabled){transform:scale(1.03)!important}.ant-input,.ant-input-affix-wrapper{border-radius:var(--radius-input)!important;border:2px solid var(--primary-green-light)!important;transition:var(--transition-smooth)!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper-focused{border-color:var(--primary-green)!important;box-shadow:0 0 0 3px #4caf501a!important}.ant-tag{border-radius:var(--radius-input)!important}.ant-menu-item{border-radius:var(--radius-input)!important;transition:var(--transition-smooth)!important}.ant-menu-item:hover{background:var(--primary-green-light)!important}.ant-menu-item-selected{background:var(--primary-green-light)!important;color:var(--primary-green-dark)!important;font-weight:600!important}
