.h5-layout{display:flex;flex-direction:column;min-height:100vh;min-height:-webkit-fill-available;background:transparent}.h5-header{position:fixed;top:0;left:0;right:0;height:calc(56px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));background:#ffffffb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.3);display:flex;justify-content:space-between;align-items:center;z-index:1000;transition:all .3s ease}.h5-header-scrolled{background:#ffffffe6;box-shadow:0 4px 30px #0000000d}.h5-header-left{display:flex;align-items:center}.h5-header-title{color:#1a1a1a;font-size:18px;font-weight:700;letter-spacing:-.5px;background:linear-gradient(135deg,#1a1a1a,#4a4a4a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.h5-header-right{display:flex;align-items:center;gap:16px}.h5-header-icon{color:#4a4a4a;font-size:22px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);padding:8px;margin:-8px;border-radius:50%}.h5-header-icon:active{transform:scale(.9);background:#0000000d}.h5-header-avatar{border:2px solid #fff;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:transform .2s}.h5-header-avatar:active{transform:scale(.95)}.h5-main{flex:1;margin-top:calc(56px + env(safe-area-inset-top));padding:20px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:calc(90px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.h5-dashboard{padding-bottom:20px}.h5-tabbar{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:20px;right:20px;height:64px;background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.5);border-radius:32px;box-shadow:0 8px 32px #0000001a;display:flex;justify-content:space-around;align-items:center;z-index:1000;padding:0 12px}.h5-tabbar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;width:60px;height:100%;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:#9aa0a6;position:relative}.h5-tabbar-item.active{color:#667eea}.h5-tabbar-item.active .h5-tabbar-icon{transform:translateY(-2px);color:#667eea;filter:drop-shadow(0 4px 8px rgba(102,126,234,.3))}.h5-tabbar-icon{font-size:24px;margin-bottom:2px;transition:all .3s}.h5-tabbar-label{font-size:10px;font-weight:600;transform:scale(.9);opacity:0;transition:all .3s;position:absolute;bottom:8px}.h5-tabbar-item.active .h5-tabbar-label{opacity:1;transform:scale(1);bottom:6px}.h5-card{background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.6);border-radius:20px;padding:20px;margin-bottom:16px;box-shadow:0 4px 20px #00000008;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s}.h5-card:active{transform:scale(.98);box-shadow:0 2px 10px #00000005}.h5-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.h5-card-title{font-size:17px;font-weight:700;color:#1a1a1a;letter-spacing:-.3px}.h5-tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:100px;font-size:12px;font-weight:600;letter-spacing:.2px}.h5-tag-pending{background:#ff7a451a;color:#ff7a45;border:1px solid rgba(255,122,69,.2)}.h5-tag-reviewing{background:#36cfc91a;color:#36cfc9;border:1px solid rgba(54,207,201,.2)}.h5-tag-approved{background:#52c41a1a;color:#52c41a;border:1px solid rgba(82,196,26,.2)}.h5-tag-completed{background:#0000000d;color:#8c8c8c;border:1px solid rgba(0,0,0,.05)}.h5-stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.h5-stat-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:16px;color:#fff;text-align:center;box-shadow:0 8px 20px #764ba240}.h5-stat-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 60%);transform:rotate(45deg);pointer-events:none}.h5-stat-card.alt{background:linear-gradient(135deg,#a18cd1,#fbc2eb);box-shadow:0 8px 20px #a18cd140}.h5-stat-card.success{background:linear-gradient(135deg,#84fab0,#8fd3f4);color:#00504b;box-shadow:0 8px 20px #84fab040}.h5-stat-card.warning{background:linear-gradient(120deg,#f6d365,#fda085);color:#5e2d08;box-shadow:0 8px 20px #fda08540}.h5-stat-value{font-size:28px;font-weight:800;line-height:1.2;margin-bottom:4px;position:relative;z-index:1}.h5-stat-label{font-size:13px;font-weight:500;opacity:.9;position:relative;z-index:1}.h5-btn{display:flex;align-items:center;justify-content:center;width:100%;height:52px;border:none;border-radius:26px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.h5-btn:active{transform:scale(.97)}.h5-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 8px 20px #764ba24d}.h5-btn-primary:active{box-shadow:0 4px 10px #764ba233}.h5-task-item{background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.6);border-radius:20px;padding:16px;margin-bottom:12px;box-shadow:0 4px 16px #0000000a;display:flex;align-items:center;gap:16px;transition:all .2s cubic-bezier(.4,0,.2,1)}.h5-task-item:active{transform:scale(.97);background:#fffffff2}.h5-task-icon{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;box-shadow:0 4px 12px #00000014}.h5-task-icon.review{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.h5-task-icon.approve{background:linear-gradient(135deg,#a18cd1,#fbc2eb);color:#fff}.h5-task-icon.monitor{background:linear-gradient(135deg,#84fab0,#8fd3f4);color:#00504b}.h5-task-icon.push{background:linear-gradient(135deg,#13c2c2,#36cfc9);color:#fff}.h5-task-icon.completed{background:linear-gradient(135deg,#52c41a,#73d13d);color:#fff}.h5-task-content{flex:1;min-width:0}.h5-task-title{font-size:16px;font-weight:700;color:#1a1a1a;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.h5-task-meta{font-size:13px;color:#8c8c8c;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.h5-greeting{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:24px;padding:28px 24px;margin-bottom:24px;color:#fff;position:relative;overflow:hidden;box-shadow:0 12px 30px #764ba24d}.h5-greeting:before{content:"";position:absolute;top:-50px;right:-50px;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 60%);border-radius:50%}.h5-greeting:after{content:"";position:absolute;bottom:-30px;left:-30px;width:140px;height:140px;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 60%);border-radius:50%}.h5-greeting-name{font-size:26px;font-weight:800;margin-bottom:8px;position:relative;z-index:1;text-shadow:0 2px 4px rgba(0,0,0,.1)}.h5-greeting-subtitle{font-size:15px;opacity:.9;position:relative;z-index:1}.h5-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#bfbfbf}.h5-empty-icon{font-size:80px;margin-bottom:20px;opacity:.2;filter:grayscale(100%)}.h5-empty-text{font-size:15px;font-weight:500}.h5-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 8px}.h5-section-title{font-size:18px;font-weight:700;color:#1a1a1a;letter-spacing:-.5px}.h5-section-more{font-size:13px;color:#667eea;font-weight:600;padding:8px;margin:-8px;cursor:pointer;transition:opacity .2s}.h5-section-more:active{opacity:.6}.h5-menu-item{background:#ffffff80!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.h5-header-icon,.h5-header-avatar,.h5-section-more{cursor:pointer;-webkit-tap-highlight-color:transparent}@media screen and (max-width: 375px){.h5-stat-value{font-size:24px}.h5-task-icon{width:42px;height:42px;font-size:20px}.h5-greeting-name{font-size:22px}}.h5-profile-card{text-align:center;padding:32px 24px!important;display:flex;flex-direction:column;align-items:center}.h5-profile-avatar{background:linear-gradient(135deg,#667eea,#764ba2);margin-bottom:16px;box-shadow:0 8px 25px #764ba266;border:4px solid rgba(255,255,255,.5);font-size:32px!important}.h5-profile-name{font-size:24px;font-weight:700;color:#1a1a1a;margin-bottom:4px}.h5-profile-phone{color:#8c8c8c;margin-bottom:16px;font-size:14px}.h5-profile-menu-card{padding:0!important;overflow:hidden}.h5-menu-item{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;background:transparent;transition:background-color .2s}.h5-menu-item:active{background-color:#667eea0d}.h5-menu-item:not(:last-child){border-bottom:1px solid rgba(0,0,0,.03)}.h5-menu-icon{color:#667eea;font-size:22px;margin-right:16px;display:flex;align-items:center}.h5-menu-text{font-size:16px;font-weight:500;color:#262626}.h5-menu-arrow{color:#bfbfbf;font-size:14px}.h5-logout-card{padding:0!important;overflow:hidden;margin-top:24px;border:none;background:transparent;box-shadow:none}.h5-logout-btn{background:#fff;color:#ff4d4f;font-size:16px;font-weight:600;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px #0000000d;transition:all .2s}.h5-logout-btn:active{transform:scale(.98);background:#fff1f0}.h5-date-group{margin-bottom:20px}.h5-date-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:12px;background:#667eea14;border-radius:12px}.h5-date-text{font-size:15px;font-weight:700;color:#667eea}.h5-date-weekday{font-size:13px;color:#8c8c8c}.h5-course-card{background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.6);border-radius:16px;padding:16px;margin-bottom:12px;box-shadow:0 4px 16px #0000000a;transition:all .2s cubic-bezier(.4,0,.2,1)}.h5-course-card:active{transform:scale(.98);background:#fffffff2}.h5-course-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.h5-course-title{font-size:16px;font-weight:700;color:#1a1a1a;flex:1;line-height:1.4}.h5-course-stage{display:inline-flex;align-items:center;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.h5-course-info{margin-bottom:12px}.h5-course-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#8c8c8c;margin-bottom:4px}.h5-course-teacher{font-size:13px;color:#595959}.h5-workflow-progress{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 0;margin-bottom:12px;border-top:1px solid rgba(0,0,0,.04);border-bottom:1px solid rgba(0,0,0,.04);position:relative}.h5-workflow-progress:before{content:"";position:absolute;top:18px;left:10%;right:10%;height:2px;background:#e8e8e8}.h5-progress-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;z-index:1}.h5-progress-dot{width:10px;height:10px;border-radius:50%;background:var(--step-color, #e8e8e8);margin-bottom:4px;box-shadow:0 2px 4px #0000001a;transition:all .3s}.h5-progress-step.active .h5-progress-dot{transform:scale(1.1)}.h5-progress-step.current .h5-progress-dot{transform:scale(1.3);box-shadow:0 0 0 3px #667eea33,0 2px 4px #0000001a}.h5-progress-label{font-size:9px;color:#8c8c8c;text-align:center;white-space:nowrap}.h5-progress-step.active .h5-progress-label{color:#1a1a1a;font-weight:600}.h5-progress-step.current .h5-progress-label{color:var(--step-color);font-weight:700}.h5-course-actions{display:flex;justify-content:flex-end;align-items:center}.h5-btn-sm{height:36px;padding:0 16px;font-size:13px;border-radius:18px;width:auto}.h5-btn-outline{background:transparent;border:1px solid #667eea;color:#667eea}.h5-btn-outline:active{background:#667eea1a}.h5-signature-timestamp{position:absolute;bottom:8px;left:8px;right:8px;display:flex;justify-content:space-between;font-size:10px;color:#8c8c8c;pointer-events:none}.h5-signature-stage{background:#667eea1a;color:#667eea;padding:2px 8px;border-radius:4px;font-weight:600}*{margin:0;padding:0;box-sizing:border-box}html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:linear-gradient(135deg,#f0f2f5,#e6e9f0);min-height:100vh;min-height:-webkit-fill-available;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;overflow:auto;height:100%}#root{min-height:100vh;min-height:-webkit-fill-available}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:-webkit-fill-available;padding:20px;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.login-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 10px 40px #00000026;width:100%;max-width:400px;transition:transform .3s ease}.login-title{text-align:center;margin-bottom:30px;color:#333;font-size:22px;font-weight:600}.login-card .ant-input,.login-card .ant-input-affix-wrapper{height:48px;border-radius:10px;font-size:16px}.login-card .ant-input-affix-wrapper .ant-input{height:auto}.login-card .ant-form-item-label>label{font-size:14px;font-weight:500;color:#595959}.main-layout{min-height:100vh}.main-sider{background:linear-gradient(180deg,#001529,#002140)}.main-header{background:#fff;padding:0 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #00000017}.main-content{margin:24px 16px;padding:24px;background:#fff;border-radius:8px;min-height:calc(100vh - 112px)}.course-card{margin-bottom:16px;border-radius:8px;transition:all .3s}.course-card:hover{box-shadow:0 4px 12px #0000001a}.status-tag{margin-left:8px}.signature-canvas{border:2px dashed #d9d9d9;border-radius:8px;background:#fafafa;cursor:crosshair;touch-action:none}.signature-modal .ant-modal-body{padding:20px}.todo-item{padding:16px;background:#f5f5f5;border-radius:8px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}.empty-state{text-align:center;padding:60px 20px;color:#999}.audit-timeline{padding:20px}.mobile-card-list{display:none}.mobile-course-card{margin-bottom:12px;border-radius:8px;overflow:hidden}.mobile-course-card:active{transform:scale(.99)}.mobile-course-card .ant-card-body{padding:16px}@media screen and (max-width: 992px){.main-sider{position:fixed;z-index:999;height:100vh}.main-content{margin-left:0!important}}@media screen and (max-width: 768px){.main-content{margin:12px 8px;padding:16px;min-height:calc(100vh - 80px)}.main-header{padding:0 12px;height:56px}.login-card{padding:24px 16px;max-width:100%;margin:0 16px;box-shadow:0 4px 20px #0000001a}.login-title{font-size:20px;margin-bottom:20px}.ant-table-wrapper{overflow-x:auto}.ant-table{min-width:600px}.mobile-card-list{display:block}.ant-table-wrapper{display:none}.ant-drawer-content-wrapper{max-width:85vw!important}.ant-modal{max-width:calc(100vw - 32px);margin:16px}.ant-modal-body{padding:16px}.ant-form-item{margin-bottom:16px}.ant-btn{height:44px}.ant-list-item-action{margin-left:0;margin-top:12px}.ant-list-item{flex-direction:column;align-items:flex-start}.ant-card-actions{border-top:1px solid #f0f0f0}.ant-card-actions>li{margin:12px 0}}@media screen and (max-width: 375px){.login-card{padding:20px 12px}.main-content{padding:12px}.ant-typography h3{font-size:18px}.ant-typography h5{font-size:14px}}@media (hover: none) and (pointer: coarse){.ant-btn:active{transform:scale(.98)}.ant-card:active{transform:scale(.99)}.ant-menu-item:active{background:#ffffff1a}}@media screen and (max-height: 500px) and (orientation: landscape){.login-container{padding:10px;min-height:auto}.login-card{padding:16px}}@media screen and (max-width: 576px){.ant-table-wrapper{display:none}.mobile-card-list{display:block}.signature-canvas{width:100%!important;height:150px!important}}@media screen and (max-width: 576px){.ant-dropdown-trigger .ant-avatar{margin-right:0}.ant-dropdown-trigger span:last-child{display:none}}@media screen and (max-width: 576px){.ant-card-actions{flex-wrap:wrap}.ant-card-actions>li{width:50%!important;text-align:center;margin:8px 0}}@media screen and (max-width: 576px){.todo-item{flex-direction:column;align-items:flex-start;gap:12px}.todo-item .ant-btn{width:100%}}@media screen and (max-width: 520px){.ant-modal{width:calc(100vw - 24px)!important;max-width:none}.ant-modal-content{border-radius:12px}canvas[width]{width:100%!important}}@media screen and (max-width: 400px){.ant-badge-count{min-width:18px;height:18px;line-height:18px;font-size:12px}}
