:root{--color-primary: #1e3a8a;--color-primary-rgb: 30, 58, 138;--color-secondary: #1a2744;--color-bg: #f5f6fa;--color-border: #e2e5ee;--color-text: #1a2744;--color-text-muted: #6b7280;--color-success: #16a34a;--color-warning: #d97706;--color-error: #dc2626;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .06)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}.form-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.form-group label,.form-group .form-group-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-group input,.form-group select,.form-group textarea{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.375rem;font-size:.875rem;font-family:inherit;background:#fff;color:var(--color-text);transition:border-color .15s;outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.form-group textarea{resize:vertical}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;font-weight:500}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:.375rem;border:1px solid transparent;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn.btn-primary:hover:not(:disabled){filter:brightness(.9)}.btn.btn-secondary{background:#fff;color:var(--color-text);border-color:var(--color-border)}.btn.btn-secondary:hover:not(:disabled){background:var(--color-bg)}.btn.btn-danger{background:var(--color-error);color:#fff;border-color:var(--color-error)}.btn.btn-danger:hover:not(:disabled){filter:brightness(.9)}.btn.btn-sm{padding:.25rem .625rem;font-size:.8rem}.btn-icon{background:none;border:none;cursor:pointer;padding:.25rem .4rem;border-radius:.25rem;color:var(--color-text-muted);font-size:1rem;line-height:1;flex-shrink:0;transition:background .15s,color .15s}.btn-icon:hover{background:var(--color-bg);color:var(--color-text)}.alert{padding:.75rem 1rem;border-radius:.375rem;margin-bottom:1rem;font-size:.875rem}.alert.alert-error{background:#dc26261a;color:var(--color-error);border:1px solid rgba(220,38,38,.2)}.alert.alert-success{background:#16a34a1a;color:var(--color-success);border:1px solid rgba(22,163,74,.2)}.alert.alert-warning{background:#d977061a;color:var(--color-warning);border:1px solid rgba(217,119,6,.2)}.holiday-badge{background:rgba(var(--color-primary-rgb),.1);color:var(--color-primary);padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.vacation-badge{background:#d977061a;color:var(--color-warning);padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.birthday-badge{background:#ec48991a;color:#be185d;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dialog{background:#fff;border-radius:.75rem;width:100%;max-width:min(600px,100vw - 2rem);max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}@media(min-width:768px){.dialog{width:50vw;max-width:50vw}}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.dialog-header h2{margin:0;font-size:1.125rem;color:var(--color-secondary)}.dialog-body{padding:1.5rem}.dialog-footer{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid var(--color-border)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
