// 导入iOS主题变量 @import '../ios-theme.scss'; .dashboard-container { max-width: 1200px; margin: 0 auto; padding: 20px; background-color: $ios-background; min-height: 100vh; } .dashboard-header { margin-bottom: 30px; h1 { font-size: 32px; color: $ios-text-primary; font-weight: $ios-font-weight-semibold; font-family: $ios-font-family; } } .dashboard-main { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; .task-section { grid-column: 1 / -1; } } .section-header { margin-bottom: 16px; h2 { font-size: 22px; color: $ios-text-primary; font-weight: $ios-font-weight-medium; display: flex; align-items: center; font-family: $ios-font-family; &::before { content: ''; display: inline-block; width: 3px; height: 20px; background-color: $ios-primary; margin-right: 10px; border-radius: $ios-radius-full; } } } .task-list { display: grid; gap: 16px; } .task-item { background: $ios-card-background; border-radius: $ios-radius-lg; padding: 20px; box-shadow: $ios-shadow-card; transition: all 0.3s ease; border: 1px solid $ios-border; &:hover { box-shadow: $ios-shadow-lg; transform: translateY(-2px); } .task-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; h3 { font-size: 17px; color: $ios-text-primary; margin: 0; font-family: $ios-font-family; } .task-stage { font-size: 13px; padding: 6px 14px; border-radius: $ios-radius-full; background-color: $ios-primary-light; color: $ios-primary; border: 1px solid $ios-primary; } } .task-info { margin-bottom: 16px; .project-name { font-size: 15px; color: $ios-text-secondary; margin: 6px 0; } .deadline { font-size: 15px; color: $ios-text-secondary; margin: 6px 0; &.overdue { color: $ios-danger; } .overdue-badge { background-color: rgba(255, 59, 48, 0.1); color: $ios-danger; padding: 4px 10px; border-radius: $ios-radius-full; font-size: 12px; margin-left: 8px; border: 1px solid $ios-danger; } } } .task-actions { display: flex; gap: 12px; button { padding: 10px 18px; border: none; border-radius: $ios-radius-md; font-size: 15px; cursor: pointer; transition: $ios-animation-normal $ios-animation-easing; font-weight: $ios-font-weight-medium; font-family: $ios-font-family; } .btn-complete { background-color: $ios-success; color: white; &:hover { background-color: darken($ios-success, 5%); transform: translateY(-1px); box-shadow: $ios-shadow-md; } &:active { transform: translateY(0); } } .btn-detail { background-color: $ios-primary; color: white; &:hover { background-color: #003A8C; transform: translateY(-1px); box-shadow: $ios-shadow-md; } &:active { transform: translateY(0); } } } } .warning-section { grid-column: 1 / -1; } .warning-list { display: grid; gap: 16px; } .warning-item { background: rgba(255, 149, 0, 0.1); border: 1px solid $ios-warning; border-radius: $ios-radius-lg; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; .warning-content { .warning-title { font-size: 17px; color: $ios-warning; font-weight: $ios-font-weight-medium; margin: 0 0 6px 0; font-family: $ios-font-family; } .warning-detail { font-size: 15px; color: $ios-warning; margin: 0; } } .warning-actions { .btn-generate-reminder { padding: 10px 18px; border: 1px solid $ios-warning; border-radius: $ios-radius-md; background-color: $ios-card-background; color: $ios-warning; font-size: 15px; cursor: pointer; transition: all 0.3s ease; font-weight: 500; font-family: $ios-font-family; &:hover { background-color: $ios-warning; color: white; transform: translateY(-1px); box-shadow: $ios-shadow-md; } &:active { transform: translateY(0); } } } } .quick-access-section { grid-column: 1 / -1; } .quick-access-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; } .quick-access-item { background: $ios-card-background; border-radius: $ios-radius-lg; padding: 20px 24px; box-shadow: $ios-shadow-card; text-decoration: none; transition: all 0.3s ease; border: 1px solid $ios-border; &:hover { box-shadow: $ios-shadow-md; transform: translateY(-2px); } h3 { font-size: 20px; color: $ios-text-primary; margin: 0 0 12px 0; font-family: $ios-font-family; } p { font-size: 15px; color: $ios-text-secondary; margin: 0; } } .empty-state { text-align: center; padding: 48px 24px; color: $ios-text-tertiary; background-color: $ios-card-background; border-radius: $ios-radius-lg; border: 1px dashed $ios-border; } .reminder-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; z-index: 1000; backdrop-filter: blur(8px); } .modal-content { background: $ios-card-background; border-radius: $ios-radius-xl; padding: 24px; max-width: 400px; width: 90%; text-align: center; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15); border: 1px solid $ios-border; h3 { font-size: 20px; color: $ios-text-primary; margin: 0 0 16px 0; font-family: $ios-font-family; } p { font-size: 15px; color: $ios-text-secondary; margin: 0 0 24px 0; line-height: 1.6; } .btn-close { padding: 12px 24px; border: none; border-radius: $ios-radius-md; background-color: $ios-primary; color: white; font-size: 15px; cursor: pointer; transition: all 0.3s ease; font-weight: $ios-font-weight-medium; font-family: $ios-font-family; &:hover { background-color: darken($ios-primary, 5%); transform: translateY(-1px); box-shadow: $ios-shadow-md; } &:active { transform: translateY(0); } } } @media (max-width: 768px) { .dashboard-main { grid-template-columns: 1fr; } .task-actions { flex-direction: column; button { width: 100%; } } .warning-item { flex-direction: column; gap: 15px; .warning-actions { width: 100%; .btn-generate-reminder { width: 100%; } } } }