*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body,html{height:100%;height:-webkit-fill-available}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fb;color:#262626;line-height:1.5}#root{min-height:100vh;min-height:-webkit-fill-available}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{color:#262626;font-weight:600;line-height:1.35;margin:0}h1{font-size:28px}h2{font-size:24px}h3{font-size:20px}h4{font-size:18px}h5{font-size:16px}h6{font-size:14px}p{margin:0 0 16px}a{color:#1890ff;text-decoration:none;transition:color .2s ease}a:hover{color:#40a9ff}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.p-4{padding:32px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}.w-full{width:100%}.h-full{height:100%}@supports (padding-top:env(safe-area-inset-top)){body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}@media (max-width:768px){html{font-size:15px}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}h5{font-size:15px}h6{font-size:14px}a,button,input,select,textarea{min-height:44px;min-width:44px}}.ant-btn,button{user-select:none;-webkit-user-select:none}:focus-visible{outline:2px solid #1890ff;outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow-x:hidden;overflow-y:scroll;padding:0}.App{min-height:100vh;min-height:-webkit-fill-available}.ant-layout{background:#f8fafc}.ant-layout-header{box-shadow:0 2px 8px #0000000f;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.ant-card{border-radius:12px;box-shadow:0 1px 2px #0000000a;margin-bottom:12px}.ant-card-head{border-bottom:1px solid #f0f0f0;font-weight:600}@media (max-width:768px){.ant-card{border-radius:8px;margin-bottom:8px}.ant-card-head{font-size:15px}.ant-card-body,.ant-card-head{padding:12px 16px}}.ant-btn{border-radius:8px;font-weight:500;min-height:44px;transition:all .2s ease}.ant-btn-primary{background:#1890ff;border-color:#1890ff}.ant-btn-primary:focus,.ant-btn-primary:hover{background:#40a9ff;border-color:#40a9ff}.ant-btn-primary:active{background:#096dd9;border-color:#096dd9}@media (max-width:768px){.ant-btn{font-size:15px;min-height:48px;padding:0 20px}.ant-btn-sm{font-size:13px;min-height:36px;padding:0 12px}}.ant-input,.ant-input-number,.ant-picker,.ant-select-selector{border-radius:8px;font-size:15px;min-height:44px}.ant-layout-header *{pointer-events:auto!important}@media (max-width:768px){.ant-input,.ant-input-number,.ant-picker,.ant-select-selector{font-size:16px;min-height:48px}}.ant-form-item{margin-bottom:20px}.ant-form-item-label>label{color:#262626;font-weight:500}@media (max-width:768px){.ant-form-item{margin-bottom:16px}}.ant-table{font-size:14px}.ant-table-thead>tr>th{background:#fafafa;font-weight:600}@media (max-width:768px){.ant-table{font-size:13px}.ant-table-tbody>tr>td,.ant-table-thead>tr>th{padding:8px}.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-modal{margin:16px auto;max-width:calc(100vw - 32px)}.ant-modal-body{padding:16px}.ant-modal-footer{padding:12px 16px}}.ant-drawer-header{background:linear-gradient(135deg,#1890ff,#096dd9);border-bottom:none;color:#fff}.ant-drawer-title{color:#fff;font-weight:600}.ant-drawer-close{color:#fff}.loading-overlay{gap:16px;min-height:200px}.empty-state,.loading-overlay{align-items:center;display:flex;flex-direction:column;justify-content:center}.empty-state{color:#8c8c8c;padding:40px 20px;text-align:center}@media (max-width:768px){.empty-state{padding:24px 16px}}.stat-card{background:linear-gradient(135deg,#1890ff,#096dd9);border-radius:12px;box-shadow:0 4px 12px #1890ff26;color:#fff;margin-bottom:16px;padding:20px}.stat-card-title{font-size:14px;margin-bottom:8px;opacity:.9}.stat-card-value{font-size:32px;font-weight:700;margin-bottom:4px}.stat-card-subtitle{font-size:13px;opacity:.85}@media (max-width:768px){.stat-card{border-radius:8px;padding:16px}.stat-card-value{font-size:28px}}.quick-actions{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:20px}.quick-action-card{background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 1px 2px #0000000a;cursor:pointer;padding:20px;text-align:center;transition:all .2s ease}.quick-action-card:hover{box-shadow:0 4px 12px #00000014}.quick-action-icon{color:#1890ff;font-size:32px;margin-bottom:8px}.quick-action-title{color:#262626;font-size:14px;font-weight:500}@media (max-width:768px){.quick-actions{gap:8px;grid-template-columns:repeat(2,1fr)}.quick-action-card{border-radius:8px;padding:16px 12px}.quick-action-icon{font-size:28px}.quick-action-title{font-size:13px}}.notification-badge{display:inline-block;position:relative}.notification-badge .ant-badge{position:absolute;right:-8px;top:-8px}@supports (padding-top:env(safe-area-inset-top)){.App{padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top)}}.pwa-install-prompt{align-items:center;background:#fff;border-radius:12px;bottom:20px;box-shadow:0 4px 16px #00000026;display:flex;gap:12px;left:20px;padding:16px;position:fixed;right:20px;z-index:9999}@media (max-width:768px){.pwa-install-prompt{bottom:16px;left:16px;right:16px}}html{scroll-behavior:smooth}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:768px){::-webkit-scrollbar{height:4px;width:4px}}@media print{.ant-btn,.ant-drawer,.ant-layout-header,.ant-layout-sider,.quick-actions{display:none!important}.ant-layout-content{background:#fff!important;padding:0!important}}.attendance-theory-page{background:linear-gradient(135deg,#f5f7fa,#e8ecf1);min-height:100vh;padding:20px}.attendance-theory-page h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#1890ff,#096dd9);-webkit-background-clip:text;background-clip:text;font-size:26px;font-weight:700;letter-spacing:-.5px;margin-bottom:20px}.attendance-theory-page .ant-card{background:#fff;border:1px solid #0000000f;border-radius:12px;box-shadow:0 2px 8px #0000000a;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.attendance-theory-page .ant-card:hover{box-shadow:0 4px 16px #00000014}.attendance-theory-page .ant-card-head{background:linear-gradient(180deg,#fafafa,#fff);border-bottom:2px solid #f0f0f0;padding:16px 24px}.attendance-theory-page .ant-card-head-title{color:#262626;font-size:16px;font-weight:600;letter-spacing:-.3px}.attendance-theory-page .ant-card-body{padding:24px}.attendance-theory-page .ant-form-item-label>label{color:#262626;font-size:14px;font-weight:500;letter-spacing:-.2px}.attendance-theory-page .ant-btn{border-radius:8px;box-shadow:0 2px 0 rgba(0,0,0,.016);font-size:15px;font-weight:500;height:44px;transition:all .15s cubic-bezier(.4,0,.2,1)}.attendance-theory-page .ant-btn-lg{font-size:16px;height:48px;padding:0 24px}.attendance-theory-page .ant-btn:hover{box-shadow:0 4px 12px #1890ff33}.attendance-theory-page .ant-btn:active{box-shadow:0 2px 4px #1890ff26}.attendance-theory-page .ant-btn-primary{background:linear-gradient(135deg,#1890ff,#096dd9);border:none}.attendance-theory-page .ant-btn-primary:hover{background:linear-gradient(135deg,#40a9ff,#1890ff)}.attendance-theory-page .ant-input,.attendance-theory-page .ant-input-number,.attendance-theory-page .ant-picker,.attendance-theory-page .ant-select-selector{border:1.5px solid #d9d9d9;border-radius:8px;transition:all .2s ease}.attendance-theory-page .ant-input-number:focus,.attendance-theory-page .ant-input:focus,.attendance-theory-page .ant-picker:focus,.attendance-theory-page .ant-select-selector:focus{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff1a}.attendance-theory-page .ant-spin{color:#1890ff}.attendance-theory-page .ant-form-item-has-success .ant-input,.attendance-theory-page .ant-form-item-has-success .ant-select-selector{border-color:#52c41a}.attendance-form-row{margin-bottom:20px}@media (max-width:1024px){.attendance-theory-page{padding:16px}.attendance-theory-page h2{font-size:20px}}@media (max-width:768px){.attendance-theory-page{padding:12px}.attendance-theory-page h2{font-size:18px;margin-bottom:12px}.attendance-buttons-row .ant-col{margin-bottom:8px;width:100%!important}.attendance-buttons-row .ant-btn{width:100%}.attendance-form-row .ant-col{margin-bottom:12px;width:100%!important}.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-card{margin-bottom:16px}.ant-card-body{padding:12px!important}.ant-form-item-label{font-size:13px}.ant-input,.ant-input-number,.ant-picker,.ant-select{font-size:16px;min-height:44px}.ant-btn{font-size:14px;min-height:44px}}@media (max-width:480px){.attendance-theory-page{padding:8px}.attendance-theory-page h2{font-size:16px}.ant-card-body{padding:8px!important}.ant-form-item-label{font-size:12px}.ant-btn{font-size:13px;padding:4px 8px}}@media (max-width:768px){.ant-modal{margin:16px auto!important;max-width:90vw!important}.ant-modal-body img{height:auto!important;max-width:100%}.ant-table{font-size:12px}.ant-table-thead>tr>th{font-size:11px;padding:8px 4px!important}.ant-table-tbody>tr>td{padding:6px 4px!important}.ant-table .ant-input,.ant-table .ant-input-number{font-size:13px;min-height:32px}.ant-table .ant-checkbox-wrapper{align-items:center;display:flex;min-height:32px}}