.responsive-navbar{width:100%;position:sticky;top:0;z-index:1000;background:#fff;box-shadow:0 2px 8px #0000001a}.desktop-nav{display:block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:0 24px;height:64px}.nav-content{max-width:1200px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between}.nav-title{font-size:20px;font-weight:600;color:#fff}.nav-menu{display:flex;gap:24px}.nav-item{color:#ffffffe6;text-decoration:none;font-size:15px;transition:color .3s ease;padding:8px 16px;border-radius:6px}.nav-item:hover{color:#fff;background:#ffffff1a}.nav-right{display:flex;align-items:center}.mobile-nav{display:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 16px;height:56px;align-items:center;justify-content:space-between}.mobile-nav .nav-title{font-size:18px;font-weight:600}.hamburger-btn{background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center}.hamburger-icon{display:flex;flex-direction:column;gap:4px;width:24px}.hamburger-icon span{display:block;width:100%;height:2px;background:#fff;transition:all .3s ease}.hamburger-icon.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger-icon.open span:nth-child(2){opacity:0}.hamburger-icon.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.mobile-menu{display:none;background:#fff;box-shadow:0 4px 12px #00000026;padding:8px 0}.mobile-menu-item{padding:16px 24px;font-size:16px;color:#333;cursor:pointer;transition:background .2s ease;border-bottom:1px solid #f0f0f0}.mobile-menu-item:last-child{border-bottom:none}.mobile-menu-item:hover{background:#f5f5f5}@media (max-width: 767px){.desktop-nav{display:none}.mobile-nav{display:flex}.mobile-menu{display:block}.nav-content{padding:0}.nav-title{font-size:16px}}@media (min-width: 768px) and (max-width: 1023px){.desktop-nav{display:block}.mobile-nav{display:none}.nav-menu{gap:16px}.nav-item{font-size:14px;padding:6px 12px}}@media (min-width: 1024px){.desktop-nav{display:block}.mobile-nav{display:none}.nav-content{max-width:1200px}}.task-card{background:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #00000014;border-left:4px solid #1890ff;transition:all .3s ease;cursor:pointer}.task-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.task-card.done{border-left-color:#52c41a;opacity:.8}.task-card.in_progress{border-left-color:#1890ff}.task-card.todo{border-left-color:#faad14}.task-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.task-card-title{font-size:18px;font-weight:600;color:#333;margin:0;flex:1}.priority-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;margin-left:8px}.priority-badge.high{background:#fff1f0;color:#f5222d}.priority-badge.medium{background:#e6f7ff;color:#1890ff}.priority-badge.low{background:#f6ffed;color:#52c41a}.task-card-content{margin-bottom:16px}.task-card-description{font-size:14px;color:#666;margin:0 0 12px;line-height:1.6}.task-progress{display:flex;align-items:center;gap:12px;margin-bottom:12px}.task-progress-bar{flex:1;height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.task-progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.task-progress-text{font-size:13px;color:#666;min-width:40px;text-align:right}.task-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #f0f0f0}.task-meta{display:flex;gap:16px;font-size:13px;color:#999}.task-due-date,.task-assignee{display:flex;align-items:center;gap:4px}.task-status-badge{color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.task-card-actions{display:flex;gap:8px;padding-top:12px}.action-btn{flex:1;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.action-btn.complete{background:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.action-btn.complete:hover{background:#52c41a;color:#fff}.action-btn.confirm{background:#e6f7ff;color:#1890ff;border:1px solid #91d5ff;display:flex;align-items:center;justify-content:center;gap:4px}.action-btn.confirm:hover{background:#1890ff;color:#fff}.action-btn.view{background:#e6f7ff;color:#1890ff;border:1px solid #91d5ff}.action-btn.view:hover{background:#1890ff;color:#fff}@media (max-width: 767px){.task-card{padding:16px;margin-bottom:12px}.task-card-title{font-size:16px}.task-card-description{font-size:13px}.task-card-header{flex-direction:column;gap:8px}.priority-badge{align-self:flex-start}.task-card-footer{flex-direction:column;gap:12px;align-items:flex-start}.task-meta{flex-direction:column;gap:8px}.task-card-actions{flex-direction:row}.action-btn{padding:12px 16px;font-size:15px;min-height:44px}}@media (min-width: 768px) and (max-width: 1023px){.task-card{padding:18px}.task-card-title{font-size:17px}.task-meta{gap:12px}}@media (min-width: 1024px){.task-card{padding:20px;max-width:100%}.task-card:hover{transform:translateY(-2px)}}.responsive-table-container{width:100%}.desktop-table-wrapper{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.responsive-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014}.responsive-table th{background:#fafafa;padding:16px;text-align:left;font-weight:600;color:#666;border-bottom:2px solid #f0f0f0;white-space:nowrap}.responsive-table td{padding:16px;border-bottom:1px solid #f0f0f0;color:#333}.responsive-table tr.clickable-row{cursor:pointer}.responsive-table tr.clickable-row:hover{background:#e6f7ff}.mobile-table-wrapper{display:none}.mobile-table-card{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 2px 8px #00000014}.mobile-table-row{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 0;border-bottom:1px solid #f0f0f0}.mobile-table-row:last-child{border-bottom:none}.mobile-table-label{font-weight:600;color:#666;margin-right:16px;min-width:80px}.mobile-table-value{color:#333;flex:1;text-align:right}@media (max-width: 767px){.desktop-table-wrapper{display:none}.mobile-table-wrapper{display:block}.mobile-table-card{padding:14px}.mobile-table-row{flex-direction:column;gap:6px}.mobile-table-label{min-width:auto;margin-right:0;font-size:13px;color:#999}.mobile-table-value{text-align:left;font-size:15px;font-weight:500}}@media (min-width: 768px) and (max-width: 1023px){.responsive-table th,.responsive-table td{padding:12px;font-size:14px}.mobile-table-card{padding:14px}}@media (min-width: 1024px){.responsive-table th,.responsive-table td{padding:16px}}.empty-state{text-align:center;padding:60px 20px;color:#999}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-text{font-size:16px}.table-loading{text-align:center;padding:40px 20px}.table-loading-spinner{display:inline-block;width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.dashboard-stats,.dashboard-stats-loading{padding:24px 0}.stat-card{border-radius:12px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);height:100%}.stat-card:hover{transform:translateY(-8px);box-shadow:0 12px 32px #00000026}.stat-card .ant-card-body{padding:24px;display:flex;flex-direction:column;justify-content:center;align-items:center}.stat-icon{font-size:24px;margin-right:8px}.ant-statistic-content-value{font-weight:700;font-size:32px;line-height:1.2;animation:countUp .5s ease-out}@keyframes countUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ant-statistic-title{font-size:14px;color:#8c8c8c;margin-bottom:12px;text-align:center}.stat-card-total{background:linear-gradient(135deg,#e6f7ff,#bae7ff);border:1px solid #91d5ff}.stat-card-total:hover{background:linear-gradient(135deg,#bae7ff,#91d5ff)}.stat-card-active{background:linear-gradient(135deg,#e6fffb,#b5f5ec);border:1px solid #87e8de}.stat-card-active:hover{background:linear-gradient(135deg,#b5f5ec,#87e8de)}.stat-card-completed{background:linear-gradient(135deg,#f6ffed,#d9f7be);border:1px solid #b7eb8f}.stat-card-completed:hover{background:linear-gradient(135deg,#d9f7be,#b7eb8f)}.stat-card-pending{background:linear-gradient(135deg,#fffbe6,#ffe58f);border:1px solid #ffe58f}.stat-card-pending:hover{background:linear-gradient(135deg,#ffe58f,#ffd666)}@media (max-width: 768px){.dashboard-stats{padding:16px 0}.stat-card .ant-card-body{padding:20px}.ant-statistic-content-value{font-size:28px}.ant-statistic-title{font-size:13px}}@media (max-width: 576px){.stat-card .ant-card-body{padding:16px}.ant-statistic-content-value{font-size:24px}.ant-statistic-title{font-size:12px}.stat-icon{font-size:20px}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.stat-card:hover .ant-statistic-content-value{animation:pulse .3s ease-in-out}.dashboard-stats-loading .ant-skeleton{padding:0 8px}.gantt-chart{padding:24px 0}.gantt-chart-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.gantt-legend{margin-bottom:24px;padding:12px;background:#fafafa;border-radius:4px}.gantt-timeline-header{display:flex;justify-content:space-between;margin-bottom:16px;padding:8px 0;border-bottom:2px solid #f0f0f0;overflow:hidden}.timeline-label{flex:1;text-align:center;position:relative}.timeline-label:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:8px;width:1px;background:#e8e8e8}.timeline-label:last-child:after{display:none}.gantt-body{padding:8px 0}.gantt-row{display:grid;grid-template-columns:200px 1fr 100px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #f0f0f0;transition:background-color .2s;cursor:pointer}.gantt-row:hover{background-color:#fafafa}.gantt-row:last-child{border-bottom:none}.gantt-plan-name{font-weight:500;color:#262626;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}.gantt-bar-container{position:relative;height:32px;background:#f5f5f5;border-radius:4px;overflow:visible}.gantt-bar{position:absolute;height:24px;top:4px;border-radius:4px;background:linear-gradient(90deg,#e6f7ff,#bae7ff);border:1px solid #91d5ff;transition:all .3s ease;min-width:40px;overflow:visible}.gantt-bar:hover{transform:scaleY(1.1);box-shadow:0 4px 12px #1890ff4d}.gantt-bar-fill{height:100%;border-radius:4px 0 0 4px;transition:width .5s ease;position:relative}.gantt-bar-label{position:absolute;right:-35px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:600;color:#595959;white-space:nowrap}.gantt-plan-status{text-align:right}.gantt-zoom-control{margin-top:24px;padding-top:16px;border-top:1px solid #f0f0f0;display:flex;justify-content:center;align-items:center;gap:12px}.gantt-zoom-control .ant-slider{margin:0 12px}@media (max-width: 768px){.gantt-row{grid-template-columns:1fr;gap:8px}.gantt-plan-name{text-align:center}.gantt-bar-container{height:40px}.gantt-plan-status{text-align:center}.gantt-timeline-header{overflow-x:auto}.timeline-label{min-width:40px}}@media (max-width: 576px){.gantt-chart{padding:16px 0}.gantt-bar-label{font-size:11px;right:-30px}.gantt-legend{padding:8px}.gantt-legend .ant-space{flex-wrap:wrap;justify-content:center}}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.8}}.gantt-bar-fill{animation:progressPulse 2s ease-in-out infinite}.gantt-row:hover .gantt-bar{background:linear-gradient(90deg,#bae7ff,#91d5ff)}.gantt-row:has(.ant-tag-green) .gantt-bar{background:linear-gradient(90deg,#f6ffed,#d9f7be);border-color:#b7eb8f}.gantt-row:has(.ant-tag-green) .gantt-bar-fill{background-color:#52c41a}.gantt-row:has(.ant-tag-default) .gantt-bar{background:linear-gradient(90deg,#f5f5f5,#d9d9d9);border-color:#bfbfbf}.gantt-row:has(.ant-tag-default) .gantt-bar-fill{background-color:#8c8c8c}.create-plan-modal .ant-modal-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px 12px 0 0}.create-plan-modal .ant-modal-title{color:#fff;font-weight:600;font-size:18px}.create-plan-modal .ant-modal-close,.create-plan-modal .ant-modal-close:hover{color:#fff}.create-plan-modal .ant-modal-body{padding:24px}.create-plan-modal .ant-form-item-label>label{font-weight:500;color:#333}.create-plan-modal .ant-input,.create-plan-modal .ant-input-textarea,.create-plan-modal .ant-picker,.create-plan-modal .ant-select-selector{border-radius:6px;border-color:#d9d9d9;transition:all .3s ease}.create-plan-modal .ant-input:focus,.create-plan-modal .ant-input-textarea:focus,.create-plan-modal .ant-picker-focused,.create-plan-modal .ant-select-focused .ant-select-selector{border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.create-plan-modal .ant-input-status-error,.create-plan-modal .ant-picker-status-error,.create-plan-modal .ant-select-status-error .ant-select-selector{border-color:#ff4d4f}.create-plan-modal .ant-form-item-explain-error{color:#ff4d4f;font-size:12px}.create-plan-modal .ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;font-weight:600;height:40px;transition:all .3s ease}.create-plan-modal .ant-btn-primary:hover{background:linear-gradient(135deg,#5568d3,#63408a);transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.create-plan-modal .ant-btn-primary:active{background:linear-gradient(135deg,#4455bc,#503573);transform:translateY(0)}.create-plan-modal .ant-btn-primary:disabled{background:#d9d9d9;cursor:not-allowed}.create-plan-modal .ant-switch{background:#d9d9d9}.create-plan-modal .ant-switch-checked{background:linear-gradient(135deg,#667eea,#764ba2)}@media (max-width: 768px){.create-plan-modal .ant-modal{top:20px;margin:0 12px;max-width:calc(100vw - 24px)}.create-plan-modal .ant-modal-body{padding:16px}.create-plan-modal .ant-form-item{margin-bottom:16px}.create-plan-modal .ant-input,.create-plan-modal .ant-picker,.create-plan-modal .ant-select,.create-plan-modal .ant-btn{font-size:16px}}.create-plan-modal .ant-modal-mask{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease}.create-plan-modal .ant-modal{animation:modalSlideIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.create-plan-modal .ant-form-item:last-child{margin-bottom:0}.create-plan-modal .ant-btn-loading{pointer-events:none}.dashboard{padding:24px;max-width:1400px;margin:0 auto}.quick-actions{margin-bottom:24px;display:flex;gap:16px;flex-wrap:wrap}.quick-actions .ant-btn{height:48px;font-size:16px}.stats-row{margin-bottom:24px}.stats-card{text-align:center;transition:transform .3s,box-shadow .3s}.stats-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.stats-card .ant-statistic-title{font-size:14px;color:#000000a6}.stats-card .ant-statistic-content{font-size:24px;font-weight:600}.section-card{margin-bottom:24px}.section-card .ant-card-head{font-size:18px;font-weight:600}.app-container,.app-with-navbar{min-height:100vh;background-color:#f0f2f5}.main-content{padding-top:0}.page-placeholder{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:18px;color:#00000073}.nav-user{display:flex;align-items:center;gap:8px}.user-name{color:#ffffffd9;font-size:14px}.logout-btn{background:transparent;border:1px solid rgba(255,255,255,.5);color:#ffffffd9;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px}.logout-btn:hover{background:#ffffff1a}.dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:400px}.chart-card{margin-bottom:16px}.chart-card .ant-card-body{padding:16px}.ant-tabs{margin-bottom:24px}.ant-tabs .ant-tabs-tab{font-size:16px}@media (max-width: 768px){.dashboard{padding:16px}.quick-actions{flex-direction:column}.quick-actions .ant-btn{width:100%}.stats-row .ant-col,.chart-card{margin-bottom:12px}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{width:100%;max-width:400px;box-shadow:0 4px 20px #00000026;border-radius:8px}.login-card .ant-card-head{font-size:24px;font-weight:600;color:#1890ff}.login-card .ant-form-item{margin-bottom:24px}.login-card .ant-input-affix-wrapper{padding:12px}.login-card .ant-btn{height:48px;font-size:16px;font-weight:500}@media (max-width: 480px){.login-card{margin:20px}}.user-profile-container{max-width:900px;margin:0 auto;padding:24px}.profile-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.avatar-section{text-align:center;padding:24px 0}.profile-avatar{margin-bottom:16px;border:3px solid #f0f0f0}.upload-avatar-btn{margin-top:8px}.profile-form{padding:16px 0}.readonly-field{background-color:#f5f5f5;color:#999}.form-actions{margin-top:24px;text-align:center}.password-section{text-align:center;padding-top:16px}@media (max-width: 768px){.user-profile-container{padding:12px}.profile-card{border-radius:4px}.avatar-section{padding:16px 0}.profile-avatar{width:100px!important;height:100px!important}}.change-password-container{max-width:500px;margin:40px auto;padding:24px}.password-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.password-card .ant-card-head{background-color:#f9f9f9;border-bottom:1px solid #e8e8e8}.password-form{padding:24px 0}.password-form .ant-form-item-label>label{font-weight:500}.form-actions{margin-top:32px;text-align:center}.form-actions .ant-btn{margin:0 8px;min-width:120px}@media (max-width: 768px){.change-password-container{padding:12px;margin:20px auto}.form-actions .ant-btn{display:block;width:100%;margin:8px 0}}:root{--primary-color: #667eea;--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--success-color: #52c41a;--warning-color: #faad14;--error-color: #f5222d;--info-color: #1890ff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .16);--breakpoint-mobile: 767px;--breakpoint-tablet: 1023px;--breakpoint-desktop: 1024px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#f5f7fa;color:#333;line-height:1.6}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.grid{display:grid;gap:var(--spacing-lg)}.grid-1{grid-template-columns:1fr}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 767px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:0 var(--spacing-md)}html{font-size:14px}}@media (min-width: 768px) and (max-width: 1023px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}.responsive-table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.responsive-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.responsive-table th,.responsive-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid #f0f0f0}.responsive-table th{background:#fafafa;font-weight:600;color:#666;white-space:nowrap}.responsive-table tr:hover{background:#f5f5f5}@media (max-width: 767px){.responsive-table thead{display:none}.responsive-table tbody{display:block}.responsive-table tr{display:block;margin-bottom:var(--spacing-md);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.responsive-table td{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid #f0f0f0}.responsive-table td:last-child{border-bottom:none}.responsive-table td:before{content:attr(data-label);font-weight:600;color:#666;margin-right:var(--spacing-md)}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:44px;min-width:44px}.btn-primary{background:var(--primary-gradient);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0}.btn-block{width:100%}@media (max-width: 767px){.btn-mobile-block{width:100%}.btn-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}}.card{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:all .3s ease}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid #f0f0f0}.card-title{font-size:18px;font-weight:600;color:#333}.card-body{color:#666;line-height:1.8}@media (max-width: 767px){.card{padding:var(--spacing-md)}.card-title{font-size:16px}}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:#333}.form-input,.form-textarea,.form-select{width:100%;padding:12px 16px;border:1px solid #d9d9d9;border-radius:var(--radius-md);font-size:15px;transition:all .2s ease;min-height:44px}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #667eea33}@media (max-width: 767px){.form-input,.form-textarea,.form-select{font-size:16px;padding:14px 16px}.form-label{font-size:14px}}.img-responsive{max-width:100%;height:auto;display:block}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.hidden-mobile{display:block}.visible-mobile{display:none}@media (max-width: 767px){.hidden-mobile{display:none}.visible-mobile{display:block}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea,select{-webkit-user-select:auto;user-select:auto}meta[name=viewport]{content:"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}p{font-size:15px;line-height:1.6}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}h4{font-size:16px}.container{padding-left:16px;padding-right:16px}ul,ol{padding-left:20px}li{margin-bottom:8px}a{color:#667eea;text-decoration:none;padding:8px 0}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],textarea{font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none}button,.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;touch-action:manipulation}table{font-size:14px}img{max-width:100%;height:auto;display:block}video{max-width:100%;height:auto}nav{position:sticky;top:0;z-index:1000}.card{margin-bottom:12px;border-radius:12px}.loading{display:flex;align-items:center;justify-content:center;padding:40px 20px}.loading-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pull-to-refresh{text-align:center;padding:20px;color:#999}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -2px 8px #0000001a;display:flex;justify-content:space-around;padding:8px 0;padding-bottom:calc(8px + env(safe-area-inset-bottom));z-index:1000}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;color:#999;font-size:12px;min-width:44px;min-height:44px;justify-content:center}.bottom-nav-item.active{color:#667eea}.bottom-nav-item-icon{font-size:20px}.fab{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));right:20px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;box-shadow:0 4px 12px #667eea66;display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;z-index:999;touch-action:manipulation}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:flex-end;z-index:2000}.modal-content{background:#fff;border-radius:16px 16px 0 0;padding:24px 20px;max-height:80vh;overflow-y:auto;width:100%;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000c;color:#fff;padding:16px 24px;border-radius:8px;font-size:14px;z-index:3000;max-width:80%;text-align:center}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scrollable{-webkit-overflow-scrolling:touch}.no-scroll{overflow:hidden;position:fixed;width:100%}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}
