*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary:#4f46e5;--primary-hover:#4338ca;--accent:#4a90e2;--gradient-primary:linear-gradient(135deg,#667eea,#764ba2);--success:#10b981;--success-dark:#2e7d32;--warning:#f59e0b;--danger:#ef4444;--danger-dark:#d32f2f;--info:#2196f3;--bg:#f9fafb;--bg-secondary:#f8f9fa;--card-bg:#fff;--sidebar-bg:#1f2937;--sidebar-text:#d1d5db;--sidebar-active:#4f46e5;--text:#111827;--text-dark:#2c3e50;--text-body:#333;--text-secondary:#6b7280;--text-muted:#999;--text-placeholder:#aaa;--border:#e5e7eb;--border-light:#f0f0f0;--border-input:#ddd;--font-xs:0.75rem;--font-sm:0.85rem;--font-base:0.95rem;--font-md:1rem;--font-lg:1.15rem;--font-xl:1.25rem;--font-2xl:1.5rem;--green:#2d7a4f;--green-dark:#2e7d32;--red:#e03131;--red-dark:#c92a2a;--radius-sm:4px;--radius:6px;--radius-md:8px;--radius-lg:12px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.5}a{color:var(--primary);text-decoration:none}button{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-danger{background-color:var(--danger);color:#fff}.btn-secondary{background-color:#e5e7eb;color:var(--text)}.btn-search{padding:.6rem 1.2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-weight:600;font-size:.9rem}.btn-filter{padding:.6rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem}.btn-filter-active{border:2px solid #4a90e2;background:#4a90e2;color:#fff}.btn-filter-inactive{border:2px solid #ddd;background:#fff;color:#666}.btn-caller{width:24px;height:24px;padding:0;font-size:10px;font-weight:600;border-radius:2px;display:flex;align-items:center;justify-content:center}.btn-caller-active{border:1px solid #4a90e2;background:#4a90e2;color:#fff}.btn-caller-inactive{border:1px solid #ddd;background:#fff;color:#333}.btn-modal{flex:1 1;padding:.75rem;font-size:1rem;border-radius:6px}.btn-modal-cancel{border:1px solid #ddd;background:#fff;color:#666}.btn-modal-confirm{border:none;color:#fff}.btn-nav{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;color:#fff;text-decoration:none;display:inline-block}.btn-inline{padding:.4rem .7rem;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600;white-space:nowrap}.btn-inline-success{background-color:#10b981}.btn-inline-primary{background-color:#667eea}.btn-inline-info{background-color:#4a90e2}.btn-inline-purple{background-color:#9333ea}.btn-table-delete{padding:.4rem .8rem;background:var(--danger);color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer}input,select,textarea{border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:14px;width:100%;outline:none;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary)}table{width:100%;border-collapse:collapse}td,th{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}th{background-color:#f3f4f6;font-weight:600;font-size:13px;color:var(--text-secondary)}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:24px}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#dbeafe;color:#1e40af}.content-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.08);overflow-x:auto}.page-title{font-size:20px;font-weight:600;margin-bottom:24px}.table-empty{text-align:center;padding:40px;color:var(--text-secondary)}.page-toolbar{justify-content:space-between;margin-bottom:24px}.page-toolbar,.pagination{display:flex;align-items:center}.pagination{justify-content:center;gap:8px;padding:1rem}.pagination-info{padding:8px 16px;font-size:14px}.action-bar{margin-bottom:1.5rem}.table-header{padding:1rem 1.5rem;border-bottom:1px solid #ecf0f1}.table-info{color:#5a6c7d;font-size:.9rem}.table-info strong{color:#2c3e50}.btn-table-action{padding:.4rem .8rem;background:#f8f9fa;border:1px solid #ddd;border-radius:6px;font-size:.85rem;color:#333;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s}.btn-table-action:hover{background:#e9ecef}.search-section{padding:1.5rem}.search-bar{display:flex;gap:0;align-items:flex-end;flex-wrap:wrap}.search-bar-label{display:block;margin-bottom:.25rem;font-size:.85rem;color:#5a6c7d;font-weight:600}.search-bar-select{width:120px;padding:.6rem;border:1px solid #ddd;border-radius:4px 0 0 4px;font-size:.9rem}.search-bar-input{padding:.6rem;border:1px solid #ddd;border-radius:0 4px 4px 0;font-size:.9rem;width:100%}.search-bar-input.no-select{border-radius:4px}.search-bar-buttons{display:flex;gap:.5rem}.search-bar-reset{padding:.6rem 1.2rem}.action-buttons{display:flex;gap:.75rem}.detail-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.action-group{display:flex;gap:.75rem}.btn-back{padding:.75rem 1.5rem;background-color:#ecf0f1;color:#5a6c7d;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .3s;display:inline-block}.btn-back:hover{background-color:#d5dbdb}.detail-header,.form-header{padding:1.5rem;border-bottom:1px solid #ecf0f1}.detail-header h2,.form-header h2{font-size:1.2rem;font-weight:600;color:#2c3e50;margin:0}.detail-body,.form-body{padding:1.5rem}.detail-row,.form-row{display:grid;grid-template-columns:200px 1fr;padding:1rem 0;border-bottom:1px solid #f0f0f0;align-items:center}.detail-row:last-child,.form-row:last-child{border-bottom:none}.detail-label,.form-label{font-weight:600;color:#5a6c7d;font-size:.95rem}.detail-value{color:#2c3e50;font-size:.95rem}.form-input{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:border-color .3s}.form-input:focus{outline:none;border-color:#667eea}.form-input:disabled{background-color:#f8f9fa;color:#95a5a6;cursor:not-allowed}.form-hint{font-size:.8rem;color:#95a5a6;margin-top:.25rem;grid-column:2}.required{color:#e74c3c;font-weight:700}.form-actions{display:flex;gap:1rem;margin-top:2rem}.btn-primary-large,.btn-secondary-large{padding:1rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;text-decoration:none;display:inline-block;text-align:center;flex:1 1}.btn-primary-large{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(102,126,234,.4)}.btn-secondary-large{background-color:#fff;color:#667eea;border:2px solid #667eea}.btn-secondary-large:hover{background-color:#f8f9fa}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500}.status-active{background:#e8f5e9;color:#2e7d32}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:10000;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);overflow:hidden;display:flex;flex-direction:column;font-family:inherit;font-size:.95rem;color:#333;width:90vw;max-height:90vh}.modal-content.size-sm{max-width:420px}.modal-content.size-md{max-width:560px}.modal-content.size-lg{max-width:760px}.modal-content.size-xl{max-width:960px}.modal-content.size-full{max-width:1200px}.modal-header{padding:.9rem 1.25rem;display:flex;justify-content:space-between;align-items:center;background:#4a90e2;color:#fff}.modal-header h3{margin:0;font-size:1rem;font-weight:700;color:inherit}.modal-body{padding:1rem 1.25rem;overflow-y:auto;flex:1 1;font-size:.9rem}.modal-footer{padding:.75rem 1.25rem;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end;gap:.5rem;background:#fafafa}.flex-center{justify-content:center}.flex-between,.flex-center{display:flex;align-items:center}.flex-between{justify-content:space-between}.text-center{text-align:center}.text-secondary{color:var(--text-secondary)}