// Form styles .form-group { margin-bottom: 1.25rem; label { display: block; margin-bottom: 0.5rem; font-weight: 500; color: var(--bs-body-color); } .form-control { width: 100%; padding: 0.75rem; border: 1px solid var(--bs-card-border); border-radius: 0.375rem; background-color: var(--bs-body-bg); color: var(--bs-body-color); font-size: 0.875rem; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; &:focus { outline: none; border-color: var(--bs-primary); box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25); } } textarea.form-control { resize: vertical; min-height: 100px; } select.form-control { cursor: pointer; } input[type="date"].form-control, .date-picker { cursor: pointer; position: relative; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'/%3e%3c/svg%3e"); background-position: right 0.75rem center; background-repeat: no-repeat; background-size: 1.25rem 1.25rem; padding-right: 2.5rem; &::-webkit-calendar-picker-indicator { opacity: 0; position: absolute; right: 0; width: 2.5rem; height: 100%; cursor: pointer; } &:hover { border-color: var(--bs-primary); } } } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; @media (max-width: 576px) { grid-template-columns: 1fr; } } .stat-display { display: flex; align-items: center; padding: 0.75rem; background-color: var(--bs-feature-bg); border-radius: 0.375rem; color: var(--bs-navbar-color); font-weight: 500; } .checklist-display { display: flex; align-items: center; gap: 1rem; padding: 0.75rem; background-color: var(--bs-feature-bg); border-radius: 0.375rem; .progress-bar-large { flex: 1; height: 8px; background-color: var(--bs-card-border); border-radius: 4px; overflow: hidden; .progress-fill { height: 100%; background-color: #198754; transition: width 0.3s ease; } } .progress-text-large { font-size: 0.875rem; color: var(--bs-navbar-color); font-weight: 500; white-space: nowrap; } } // Button styles .btn { padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; transition: all 0.2s ease; cursor: pointer; border: 1px solid transparent; font-size: 0.875rem; &.btn-primary { background-color: var(--bs-primary); color: white; &:hover { background-color: var(--bs-primary); filter: brightness(0.9); transform: translateY(-1px); } } &.btn-secondary { background-color: var(--bs-secondary); color: white; &:hover { background-color: var(--bs-secondary); filter: brightness(0.9); transform: translateY(-1px); } } &.btn-sm { padding: 0.375rem 0.75rem; font-size: 0.8rem; } &:disabled { opacity: 0.6; cursor: not-allowed; transform: none !important; } } // Date selector specific styles .date-selector { .form-control { position: relative; &::-webkit-calendar-picker-indicator { background: transparent; bottom: 0; color: transparent; cursor: pointer; height: auto; left: 0; position: absolute; right: 0; top: 0; width: auto; } &::-webkit-inner-spin-button { display: none; } &::-webkit-clear-button { display: none; } } } // Focus styles for accessibility .btn:focus, .form-control:focus { box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25); } // Responsive form adjustments @media (max-width: 576px) { .form-group { margin-bottom: 1rem; } .form-control { padding: 0.625rem; font-size: 0.875rem; } .btn { padding: 0.625rem 1rem; font-size: 0.875rem; } }