/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}*{box-sizing:border-box;margin:0;padding:0}:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary:#4f46e5;--primary-dark:#4338ca;--secondary:#7c3aed;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}body{background-color:var(--gray-50);color:var(--gray-800);margin:0;line-height:1.6}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}button,input,textarea,select{font-family:inherit}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}.login-container{background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:#fff;border-radius:16px;width:100%;max-width:440px;padding:48px;box-shadow:0 20px 60px #0000004d}.login-card h1{color:#4f46e5;text-align:center;margin:0 0 8px;font-size:28px}.login-card h2{color:#1f2937;text-align:center;margin:0 0 32px;font-size:20px;font-weight:400}.form-group{margin-bottom:24px}.form-group label{color:#374151;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input,.form-group select{box-sizing:border-box;border:2px solid #e5e7eb;border-radius:8px;width:100%;padding:12px 16px;font-size:16px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#4f46e5;outline:none}.login-card button,.primary-button{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;width:100%;margin-top:8px;padding:14px;font-size:16px;font-weight:600;transition:background .2s}.login-card button:hover:not(:disabled),.primary-button:hover:not(:disabled){background:#4338ca}.login-card button:disabled,.primary-button:disabled{cursor:not-allowed;background:#9ca3af}.error-message{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:24px;padding:12px 16px;font-size:14px}.login-footer{text-align:center;margin-top:24px}.login-footer p{color:#6b7280;font-size:14px}.dashboard{max-width:1200px;margin:0 auto;padding:32px}.dashboard h1{color:#1f2937;margin-bottom:8px;font-size:32px}.dashboard>p{color:#6b7280;margin-bottom:32px;font-size:16px}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:24px;display:grid}.dashboard-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;transition:box-shadow .2s,transform .2s}.dashboard-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.dashboard-card h3{color:#1f2937;margin:0 0 12px;font-size:20px}.dashboard-card p{color:#6b7280;margin:0;font-size:14px}.admin-dashboard h2,.member-dashboard h2{color:#4f46e5;margin:0 0 16px;font-size:24px}.page-container{max-width:1400px;margin:0 auto;padding:32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.page-header h1{color:#1f2937;margin:0;font-size:32px}.back-button{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .2s}.back-button:hover{background:#e5e7eb}.primary-button{width:auto;margin:0;padding:10px 24px}.secondary-button{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;padding:10px 24px;font-size:16px;font-weight:600;transition:background .2s}.secondary-button:hover{background:#e5e7eb}.print-only{display:none}.calendar-print-title{text-align:center;margin-bottom:24px}.calendar-print-title h1{color:#111827;margin:0;font-size:28px}.calendar-print-title p{color:#6b7280;margin:8px 0 0;font-size:14px}.members-table{background:#fff;border-radius:12px;width:100%;overflow:hidden;box-shadow:0 1px 3px #0000001a}.members-table thead{background:#f9fafb}.members-table th{text-align:left;color:#374151;border-bottom:2px solid #e5e7eb;padding:16px;font-size:14px;font-weight:600}.members-table td{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px}.members-table tbody tr:hover{background:#f9fafb}.role-badge,.status-badge{border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.role-badge.admin{color:#1e40af;background:#dbeafe}.role-badge.member,.status-badge.active{color:#065f46;background:#d1fae5}.status-badge.inactive{color:#991b1b;background:#fee2e2}.btn-sm{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:6px;margin-right:8px;padding:6px 12px;font-size:12px;transition:background .2s}.btn-sm:hover{background:#4338ca}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:500px;max-height:90vh;padding:32px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-header h2{color:#1f2937;margin:0;font-size:24px}.close-button{color:#6b7280;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:32px;transition:color .2s;display:flex}.close-button:hover{color:#1f2937}.calendar-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.calendar-header{justify-content:center;align-items:center;gap:16px;margin-bottom:24px;display:flex}.calendar-header h2{color:#1f2937;text-align:center;min-width:250px;margin:0;font-size:24px}.btn-calendar-nav{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;padding:8px 16px;font-size:24px;transition:background .2s;display:flex}.btn-calendar-nav:hover{background:#4338ca}.btn-today{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:8px;padding:8px 16px;font-weight:500;transition:background .2s}.btn-today:hover{background:#059669}.calendar-loading{text-align:center;color:#6b7280;padding:40px}.calendar-grid{width:100%}.calendar-days-header{background:#e5e7eb;border-radius:8px 8px 0 0;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:1px;display:grid;overflow:hidden}.calendar-day-name{text-align:center;color:#374151;background:#f9fafb;padding:12px;font-size:14px;font-weight:600}.calendar-days{background:#e5e7eb;border-radius:0 0 8px 8px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-day{cursor:pointer;background:#fff;min-height:120px;padding:8px;transition:background .2s;position:relative}.calendar-day:hover{background:#f9fafb}.calendar-day.empty{cursor:default;background:#f3f4f6}.calendar-day.empty:hover{background:#f3f4f6}.calendar-day.today{background:#eef2ff}.calendar-day.today .calendar-day-number{color:#fff;background:#4f46e5;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.calendar-day.past{color:#9ca3af;background:#fafafa}.calendar-day-number{color:#1f2937;margin-bottom:4px;font-size:14px;font-weight:600}.calendar-assignments{flex-direction:column;gap:4px;margin-top:8px;display:flex}.calendar-assignment{cursor:pointer;background:#f3f4f6;border-left:3px solid #6b7280;border-radius:4px;padding:4px 6px;font-size:11px;transition:all .2s}.calendar-assignment:hover{transform:translate(2px);box-shadow:0 2px 4px #0000001a}.calendar-assignment.status-pending{background:#fef3c7;border-left-color:#f59e0b}.calendar-assignment.status-accepted{background:#d1fae5;border-left-color:#10b981}.calendar-assignment.status-rejected{background:#fee2e2;border-left-color:#ef4444}.calendar-assignment.status-confirmed{background:#dbeafe;border-left-color:#3b82f6}.calendar-assignment.status-completed{background:#e0e7ff;border-left-color:#6366f1}.calendar-assignment.status-expired{background:#f3f4f6;border-left-color:#9ca3af}.assignment-task{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.assignment-user{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar-page-content{margin-top:24px}.assignment-modal{max-width:600px}.info-message{color:#1e40af;background:#dbeafe;border:1px solid #3b82f6;border-radius:8px;margin-bottom:16px;padding:12px;font-size:14px}.warning-message{color:#92400e;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;margin-bottom:16px;padding:12px;font-size:14px}.form-group-checkbox{margin-bottom:24px}.form-group-checkbox label{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.form-group-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px;margin-top:2px}.form-group-checkbox span{color:#374151;font-weight:500}.form-group-checkbox small{color:#6b7280;margin-top:4px;margin-left:26px;font-size:13px;display:block}.modal-actions{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;display:flex}.modal-close{color:#6b7280;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:32px;transition:color .2s;display:flex}.modal-close:hover{color:#1f2937}.filter-bar{background:#fff;border-radius:8px;margin-bottom:24px;padding:16px;box-shadow:0 1px 3px #0000001a}.assignments-list{flex-direction:column;gap:16px;display:flex}.assignment-card{background:#fff;border-radius:12px;padding:24px;transition:box-shadow .2s;box-shadow:0 1px 3px #0000001a}.assignment-card:hover{box-shadow:0 4px 6px #0000001a}.assignment-card-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;display:flex}.assignment-card-header h3{color:#1f2937;margin:0 0 8px;font-size:20px}.assignment-date{color:#6b7280;margin:4px 0;font-size:14px}.assignment-countdown{color:#4f46e5;margin:4px 0;font-size:14px;font-weight:600}.assignment-card-body{flex-direction:column;gap:16px;display:flex}.assignment-details{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.detail-item{flex-direction:column;gap:4px;display:flex}.detail-label{color:#6b7280;font-size:13px;font-weight:500}.detail-value{color:#1f2937;font-size:15px}.rejection-reason{color:#991b1b;background:#fee2e2;border:1px solid #ef4444;border-radius:8px;padding:12px;font-size:14px}.assignment-actions{border-top:1px solid #e5e7eb;gap:12px;padding-top:16px;display:flex}.status-pending{color:#92400e;background:#fef3c7}.status-accepted{color:#065f46;background:#d1fae5}.status-rejected{color:#991b1b;background:#fee2e2}.status-confirmed{color:#1e40af;background:#dbeafe}.status-completed{color:#3730a3;background:#e0e7ff}.status-expired{color:#4b5563;background:#f3f4f6}.badge-warning{color:#92400e;background:#fef3c7}.btn-danger{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;padding:12px 24px;font-weight:500;transition:background .2s}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{cursor:not-allowed;background:#d1d5db}.assignment-rejection-icon{color:#991b1b;cursor:help;vertical-align:middle;margin-left:4px;font-size:12px;font-weight:700;display:inline-block}.calendar-assignment.status-rejected{cursor:help;position:relative}.calendar-assignment.status-rejected:hover{box-shadow:0 2px 8px #ef44444d}.calendar-assignment[title]{position:relative}@media (width<=768px){.calendar-day{min-height:80px;padding:4px}.calendar-day-number{font-size:12px}.calendar-assignment{padding:2px 4px;font-size:10px}.calendar-header h2{min-width:180px;font-size:18px}.btn-calendar-nav{width:36px;height:36px;font-size:18px}.assignment-details{grid-template-columns:1fr}}.modal-actions{gap:16px;margin-top:24px;display:flex}.modal-actions button{flex:1}.loading{color:#6b7280;justify-content:center;align-items:center;min-height:100vh;font-size:18px;display:flex}@media (width<=768px){@media print{.login-card body{color:#000!important;background:#fff!important}.login-card .no-print,.login-card .modal-overlay,.login-card .modal-content,.login-card .btn-primary,.login-card .btn-secondary,.login-card .btn-calendar-nav,.login-card .btn-today{display:none!important}.login-card .print-only{display:block!important}.login-card .page-container,.login-card .calendar-print-page,.login-card .calendar-page-content,.login-card .calendar-print-container{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.login-card .calendar-container{border:1px solid #d1d5db;border-radius:0;padding:12px;box-shadow:none!important;background:#fff!important}.login-card .calendar-header{margin-bottom:12px}.login-card .calendar-header h2{font-size:20px;color:#111827!important}.login-card .calendar-days-header,.login-card .calendar-days{background:#d1d5db;border-radius:0;gap:0}.login-card .calendar-day-name{border:1px solid #d1d5db;padding:8px 4px;font-size:12px;color:#111827!important;background:#f3f4f6!important}.login-card .calendar-day{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid;border:1px solid #e5e7eb;min-height:130px;color:#111827!important;background:#fff!important}.login-card .calendar-day.empty{background:#fafafa!important}.login-card .calendar-day.today{outline-offset:-2px;outline:2px solid #4f46e5}.login-card .calendar-day.today .calendar-day-number{border-radius:0;width:auto;height:auto;color:#4f46e5!important;background:0 0!important}.login-card .calendar-day-number{margin-bottom:6px;font-size:13px;font-weight:700}.login-card .calendar-assignments{gap:3px;margin-top:4px}.login-card .calendar-assignment{-moz-column-break-inside:avoid;break-inside:avoid;padding:3px 4px;font-size:10px;box-shadow:none!important;transform:none!important}.login-card .assignment-task,.login-card .assignment-user{white-space:normal;text-overflow:unset;overflow:visible}.login-card .calendar-print-title{margin-bottom:12px;display:block!important}.login-card .calendar-print-title h1{margin-bottom:4px;font-size:24px}.login-card .calendar-print-title p{font-size:12px;color:#4b5563!important}}.login-card{padding:32px 24px}.dashboard{padding:20px}.dashboard h1{font-size:24px}.dashboard-grid{grid-template-columns:1fr}.page-container{padding:20px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.members-table{font-size:14px}.members-table th,.members-table td{padding:12px 8px}}
