@import 'variables.css';*{box-sizing:border-box;margin:0;padding:0;}body{font-family:var(--font-sans);background-color:var(--bg-body);color:var(--text-main);line-height:1.6;-webkit-font-smoothing:antialiased;}h1, h2, h3, h4, h5, h6{color:var(--text-main);margin-bottom:var(--space-4);font-weight:700;line-height:1.2;}h1{font-size:2.25rem;}h2{font-size:1.875rem;}h3{font-size:1.5rem;}:focus{outline:none;}:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:2px;}.skip-to-content{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--brand-primary);color:white;padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-weight:var(--font-semibold);z-index:9999;transition:top var(--transition-fast);}.skip-to-content:focus{top:var(--space-4);}a{color:var(--brand-primary);text-decoration:none;transition:color var(--transition-fast);border-radius:2px;}a:hover{color:var(--brand-primary-hover);}a:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;text-decoration:none;position:relative;}a.btn{text-decoration:none;}a.btn:hover{text-decoration:none;}.btn-primary{background-color:var(--brand-primary);color:white;border-color:var(--brand-primary);}.btn-primary:hover{background-color:var(--brand-primary-hover);border-color:var(--brand-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md);}.btn-primary:focus-visible{background-color:var(--brand-primary-hover);border-color:var(--brand-primary-hover);box-shadow:0 0 0 3px rgba(79, 70, 229, 0.3);outline:none;}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-sm);}.btn-secondary{background-color:white;border-color:var(--border-color);color:var(--text-main);}.btn-secondary:hover{background-color:var(--bg-surface-alt);border-color:var(--border-color-dark);}.btn-secondary:focus-visible{background-color:var(--bg-surface-alt);border-color:var(--brand-primary);box-shadow:0 0 0 3px rgba(79, 70, 229, 0.2);outline:none;}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-lg);}.btn:disabled{opacity:0.6;cursor:not-allowed;pointer-events:none;}.card{background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:var(--space-6);margin-bottom:var(--space-6);transition:box-shadow var(--transition-fast);}.card[tabindex="0"], .card.interactive{cursor:pointer;}.card[tabindex="0"]:hover, .card.interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-color-dark);}.card[tabindex="0"]:focus-visible, .card.interactive:focus-visible{box-shadow:var(--shadow-md), 0 0 0 3px rgba(79, 70, 229, 0.2);border-color:var(--brand-primary);outline:none;}.form-group{margin-bottom:var(--space-4);}.form-label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);color:var(--text-main);}.form-label.required::after{content:" *";color:var(--color-danger);}input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="tel"], input[type="url"], input[type="search"], input[type="date"], input[type="time"], input[type="datetime-local"], textarea, select{width:100%;padding:var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-sans);background-color:var(--bg-surface);color:var(--text-main);transition:all var(--transition-fast);}input:hover, textarea:hover, select:hover{border-color:var(--border-color-dark);}input:focus, textarea:focus, select:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px rgba(79, 70, 229, 0.2);}input:disabled, textarea:disabled, select:disabled{background-color:var(--bg-surface-alt);color:var(--text-muted);cursor:not-allowed;}input::placeholder, textarea::placeholder{color:var(--text-light);}input[type="checkbox"], input[type="radio"]{width:1.125rem;height:1.125rem;accent-color:var(--brand-primary);cursor:pointer;}input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:2px;}table{width:100%;border-collapse:collapse;margin-bottom:var(--space-6);}th, td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-color);}th{font-weight:var(--font-semibold);color:var(--text-main);background-color:var(--bg-surface-alt);}th.sortable{cursor:pointer;user-select:none;}th.sortable:hover{background-color:var(--border-color);}th.sortable:focus-visible{background-color:var(--border-color);outline:2px solid var(--brand-primary);outline-offset:-2px;}.alert{padding:var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;margin-bottom:var(--space-4);display:flex;align-items:flex-start;gap:var(--space-3);}.alert-icon{flex-shrink:0;width:1.25rem;height:1.25rem;}.alert-content{flex:1;}.alert-title{font-weight:var(--font-semibold);margin-bottom:var(--space-1);}.alert-success{background-color:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark);}.alert-warning{background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark);}.alert-danger{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger-dark);}.alert-info{background-color:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark);}.dropdown{position:relative;display:inline-block;}.dropdown-trigger{display:inline-flex;align-items:center;gap:var(--space-2);}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:var(--space-2);min-width:12rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--transition-fast);}.dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);}.dropdown-item{display:block;width:100%;padding:var(--space-2) var(--space-4);text-align:left;background:none;border:none;color:var(--text-main);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast);}.dropdown-item:hover, .dropdown-item:focus-visible{background-color:var(--bg-surface-alt);color:var(--brand-primary);}.dropdown-item:focus-visible{outline:none;position:relative;}.dropdown-item:focus-visible::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background-color:var(--brand-primary);}.modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4);}.modal-content{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-width:var(--modal-max-width);width:100%;max-height:90vh;overflow:auto;}.modal-content:focus-within{}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border-color);margin-bottom:var(--space-6);}.tab{padding:var(--space-3) var(--space-6);background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);position:relative;}.tab:hover{color:var(--text-main);background-color:var(--bg-surface-alt);}.tab:focus-visible{outline:none;border-radius:var(--radius-sm);background-color:var(--bg-surface-alt);box-shadow:0 0 0 2px var(--brand-primary);}.tab[aria-selected="true"]{color:var(--brand-primary);border-bottom-color:var(--brand-primary);}.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;}.sr-only-focusable:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal;}.focus-ring{box-shadow:0 0 0 3px rgba(79, 70, 229, 0.3);}.no-focus-mouse:focus:not(:focus-visible){outline:none;box-shadow:none;}