/**
 * PargePilot - Microsoft Fluent UI Design System
 * Outlook Add-in Taskpane Styles
 */

/* ============================================
   CSS Variables - Fluent UI Design Tokens
   ============================================ */
:root {
  /* Brand Colors */
  --ms-color-brand-primary: #0078D4;
  --ms-color-brand-primary-hover: #106EBE;
  --ms-color-brand-primary-pressed: #005A9E;
  --ms-color-brand-tint-10: #2B88D8;
  --ms-color-brand-tint-20: #C7E0F4;
  --ms-color-brand-tint-40: #DEECF9;
  
  /* Neutral Colors */
  --ms-color-neutral-background: #FAF9F8;
  --ms-color-neutral-background-hover: #F3F2F1;
  --ms-color-neutral-surface: #FFFFFF;
  --ms-color-neutral-border: #EDEBE9;
  --ms-color-neutral-border-hover: #8A8886;
  
  /* Text Colors */
  --ms-color-text-primary: #323130;
  --ms-color-text-secondary: #605E5C;
  --ms-color-text-disabled: #A19F9D;
  --ms-color-text-on-accent: #FFFFFF;
  
  /* Semantic Colors */
  --ms-color-success: #107C10;
  --ms-color-success-background: #DFF6DD;
  --ms-color-warning: #797673;
  --ms-color-warning-background: #FFF4CE;
  --ms-color-warning-icon: #FFB900;
  --ms-color-error: #A80000;
  --ms-color-error-background: #FDE7E9;
  --ms-color-info: #0078D4;
  --ms-color-info-background: #F3F2F1;
  
  /* Typography */
  --ms-font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif;
  --ms-font-size-base: 14px;
  --ms-font-size-small: 12px;
  --ms-font-size-caption: 10px;
  --ms-font-size-subtitle: 16px;
  --ms-font-size-title: 20px;
  --ms-font-weight-regular: 400;
  --ms-font-weight-semibold: 600;
  --ms-line-height: 20px;
  
  /* Spacing */
  --ms-spacing-xs: 4px;
  --ms-spacing-s: 8px;
  --ms-spacing-m: 12px;
  --ms-spacing-l: 16px;
  --ms-spacing-xl: 20px;
  --ms-spacing-xxl: 24px;
  
  /* Border Radius */
  --ms-border-radius-small: 2px;
  --ms-border-radius-medium: 4px;
  --ms-border-radius-large: 8px;
  
  /* Shadows */
  --ms-shadow-4: 0 1.6px 3.6px 0 rgba(0,0,0,.132), 0 0.3px 0.9px 0 rgba(0,0,0,.108);
  --ms-shadow-8: 0 3.2px 7.2px 0 rgba(0,0,0,.132), 0 0.6px 1.8px 0 rgba(0,0,0,.108);
  --ms-shadow-16: 0 6.4px 14.4px 0 rgba(0,0,0,.132), 0 1.2px 3.6px 0 rgba(0,0,0,.108);
  --ms-shadow-64: 0 25.6px 57.6px 0 rgba(0,0,0,.22), 0 4.8px 14.4px 0 rgba(0,0,0,.18);
  
  /* Transitions */
  --ms-transition-duration: 0.1s;
  --ms-transition-timing: cubic-bezier(0.1, 0.9, 0.2, 1);
}

/* ============================================
   Reset & Base Styles
   ============================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: var(--ms-font-size-base);
}

body {
  font-family: var(--ms-font-family);
  font-size: var(--ms-font-size-base);
  font-weight: var(--ms-font-weight-regular);
  line-height: var(--ms-line-height);
  color: var(--ms-color-text-primary);
  background-color: var(--ms-color-neutral-background);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ============================================
   App Container
   ============================================ */
.ms-app {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  max-width: 400px;
  margin: 0 auto;
}

/* ============================================
   Header
   ============================================ */
.ms-header {
  display: flex;
  align-items: center;
  padding: var(--ms-spacing-m) var(--ms-spacing-l);
  background-color: var(--ms-color-neutral-surface);
  border-bottom: 1px solid var(--ms-color-neutral-border);
  position: sticky;
  top: 0;
  z-index: 100;
}

.ms-header-brand {
  display: flex;
  align-items: center;
  gap: var(--ms-spacing-s);
}

.ms-brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ms-brand-text {
  font-size: var(--ms-font-size-subtitle);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
}

/* ============================================
   Main Content
   ============================================ */
.ms-main {
  flex: 1;
  padding: var(--ms-spacing-l);
  display: flex;
  flex-direction: column;
  gap: var(--ms-spacing-l);
}

/* ============================================
   Card Component
   ============================================ */
.ms-Card {
  background-color: var(--ms-color-neutral-surface);
  border-radius: var(--ms-border-radius-medium);
  box-shadow: var(--ms-shadow-4);
  overflow: hidden;
}

.ms-Card-header {
  display: flex;
  align-items: center;
  gap: var(--ms-spacing-s);
  padding: var(--ms-spacing-m) var(--ms-spacing-l);
  border-bottom: 1px solid var(--ms-color-neutral-border);
  background-color: var(--ms-color-neutral-background);
}

.ms-Card-header i {
  font-size: 16px;
  color: var(--ms-color-brand-primary);
}

.ms-Card-header h2 {
  font-size: var(--ms-font-size-base);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
}

.ms-Card-content {
  padding: var(--ms-spacing-l);
}

/* ============================================
   MessageBar Component
   ============================================ */
.ms-MessageBar {
  display: flex;
  align-items: flex-start;
  padding: var(--ms-spacing-s) var(--ms-spacing-m);
  border-radius: var(--ms-border-radius-small);
  margin-bottom: var(--ms-spacing-m);
}

.ms-MessageBar--hidden {
  display: none;
}

.ms-MessageBar-content {
  display: flex;
  align-items: flex-start;
  gap: var(--ms-spacing-s);
  flex: 1;
}

.ms-MessageBar-icon {
  flex-shrink: 0;
  font-size: 16px;
}

.ms-MessageBar-text {
  flex: 1;
}

.ms-MessageBar-title {
  display: block;
  font-weight: var(--ms-font-weight-semibold);
  font-size: var(--ms-font-size-small);
  margin-bottom: 2px;
}

.ms-MessageBar-text p {
  font-size: var(--ms-font-size-small);
  margin: 0;
}

.ms-MessageBar-dismiss {
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--ms-spacing-xs);
  opacity: 0.6;
  transition: opacity var(--ms-transition-duration);
}

.ms-MessageBar-dismiss:hover {
  opacity: 1;
}

.ms-MessageBar--warning {
  background-color: var(--ms-color-warning-background);
  border-left: 4px solid var(--ms-color-warning-icon);
}

.ms-MessageBar--warning .ms-MessageBar-icon {
  color: var(--ms-color-warning-icon);
}

.ms-MessageBar--warning .ms-MessageBar-title,
.ms-MessageBar--warning .ms-MessageBar-text p {
  color: var(--ms-color-warning);
}

.ms-MessageBar--success {
  background-color: var(--ms-color-success-background);
  border-left: 4px solid var(--ms-color-success);
}

.ms-MessageBar--success .ms-MessageBar-icon,
.ms-MessageBar--success .ms-MessageBar-text {
  color: var(--ms-color-success);
}

.ms-MessageBar--error {
  background-color: var(--ms-color-error-background);
  border-left: 4px solid var(--ms-color-error);
}

.ms-MessageBar--error .ms-MessageBar-icon,
.ms-MessageBar--error .ms-MessageBar-text {
  color: var(--ms-color-error);
}

.ms-MessageBar--info {
  background-color: var(--ms-color-info-background);
  border-left: 4px solid var(--ms-color-info);
}

/* ============================================
   TextField Component
   ============================================ */
.ms-TextField {
  margin-bottom: var(--ms-spacing-l);
}

.ms-Label {
  display: block;
  font-size: var(--ms-font-size-base);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
  margin-bottom: var(--ms-spacing-xs);
}

.ms-Label--required::after {
  content: ' *';
  color: var(--ms-color-error);
}

.ms-TextField-wrapper {
  display: flex;
  align-items: center;
  position: relative;
}

.ms-TextField-field {
  width: 100%;
  padding: var(--ms-spacing-s) var(--ms-spacing-m);
  font-family: var(--ms-font-family);
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-primary);
  background-color: var(--ms-color-neutral-surface);
  border: 1px solid var(--ms-color-neutral-border);
  border-radius: var(--ms-border-radius-small);
  outline: none;
  transition: border-color var(--ms-transition-duration);
}

.ms-TextField-field:hover {
  border-color: var(--ms-color-neutral-border-hover);
}

.ms-TextField-field:focus {
  border-color: var(--ms-color-brand-primary);
  border-width: 2px;
  padding: calc(var(--ms-spacing-s) - 1px) calc(var(--ms-spacing-m) - 1px);
}

.ms-TextField-field::placeholder {
  color: var(--ms-color-text-disabled);
}

.ms-TextField-field--multiline {
  resize: vertical;
  min-height: 80px;
  line-height: 1.5;
}

.ms-TextField-action {
  position: absolute;
  right: var(--ms-spacing-s);
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--ms-spacing-xs);
  color: var(--ms-color-text-secondary);
}

.ms-TextField-action:hover {
  color: var(--ms-color-brand-primary);
}

.ms-TextField-description {
  display: block;
  margin-top: var(--ms-spacing-xs);
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
}

.ms-TextField-description a {
  color: var(--ms-color-brand-primary);
  text-decoration: none;
}

.ms-TextField-description a:hover {
  text-decoration: underline;
}

/* ============================================
   Dropdown Component
   ============================================ */
.ms-Dropdown {
  margin-bottom: var(--ms-spacing-l);
}

.ms-Dropdown-select {
  width: 100%;
  padding: var(--ms-spacing-s) var(--ms-spacing-m);
  padding-right: 32px;
  font-family: var(--ms-font-family);
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-primary);
  background-color: var(--ms-color-neutral-surface);
  border: 1px solid var(--ms-color-neutral-border);
  border-radius: var(--ms-border-radius-small);
  outline: none;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23605E5C' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  transition: border-color var(--ms-transition-duration);
}

.ms-Dropdown-select:hover {
  border-color: var(--ms-color-neutral-border-hover);
}

.ms-Dropdown-select:focus {
  border-color: var(--ms-color-brand-primary);
  border-width: 2px;
  padding: calc(var(--ms-spacing-s) - 1px) calc(var(--ms-spacing-m) - 1px);
  padding-right: 31px;
}

/* ============================================
   Button Component
   ============================================ */
.ms-Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ms-spacing-s);
  padding: var(--ms-spacing-s) var(--ms-spacing-l);
  font-family: var(--ms-font-family);
  font-size: var(--ms-font-size-base);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
  background-color: var(--ms-color-neutral-surface);
  border: 1px solid var(--ms-color-neutral-border);
  border-radius: var(--ms-border-radius-small);
  cursor: pointer;
  transition: all var(--ms-transition-duration) var(--ms-transition-timing);
  min-height: 32px;
}

.ms-Button:hover {
  background-color: var(--ms-color-neutral-background-hover);
  border-color: var(--ms-color-neutral-border-hover);
}

.ms-Button:active {
  background-color: var(--ms-color-neutral-border);
}

.ms-Button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.ms-Button--primary {
  background-color: var(--ms-color-brand-primary);
  border-color: var(--ms-color-brand-primary);
  color: var(--ms-color-text-on-accent);
}

.ms-Button--primary:hover {
  background-color: var(--ms-color-brand-primary-hover);
  border-color: var(--ms-color-brand-primary-hover);
}

.ms-Button--primary:active {
  background-color: var(--ms-color-brand-primary-pressed);
  border-color: var(--ms-color-brand-primary-pressed);
}

.ms-Button--subtle {
  background-color: transparent;
  border-color: transparent;
  color: var(--ms-color-text-secondary);
}

.ms-Button--subtle:hover {
  background-color: var(--ms-color-neutral-background-hover);
  border-color: transparent;
  color: var(--ms-color-text-primary);
}

.ms-Button--danger {
  background-color: var(--ms-color-error);
  border-color: var(--ms-color-error);
  color: var(--ms-color-text-on-accent);
}

.ms-Button--danger:hover {
  background-color: #8B0000;
  border-color: #8B0000;
}

.ms-Button--icon {
  padding: var(--ms-spacing-s);
  min-width: 32px;
  min-height: 32px;
  background: transparent;
  border: none;
}

.ms-Button--icon:hover {
  background-color: var(--ms-color-neutral-background-hover);
}

.ms-Button--block {
  width: 100%;
}

.ms-Button--compound {
  flex-direction: column;
  align-items: flex-start;
  padding: var(--ms-spacing-m);
  text-align: left;
  min-height: auto;
}

.ms-Button--compound .ms-Button-label {
  font-weight: var(--ms-font-weight-semibold);
}

.ms-Button--compound .ms-Button-description {
  font-size: var(--ms-font-size-small);
  font-weight: var(--ms-font-weight-regular);
  color: var(--ms-color-text-secondary);
}

.ms-ButtonGroup {
  display: flex;
  gap: var(--ms-spacing-s);
  flex-wrap: wrap;
  margin-top: var(--ms-spacing-m);
}

.ms-CommandBar {
  display: flex;
  gap: var(--ms-spacing-s);
  margin-top: var(--ms-spacing-l);
  padding-top: var(--ms-spacing-l);
  border-top: 1px solid var(--ms-color-neutral-border);
}

/* ============================================
   Pivot (Tabs) Component
   ============================================ */
.ms-Pivot {
  display: flex;
  border-bottom: 1px solid var(--ms-color-neutral-border);
  margin-bottom: var(--ms-spacing-l);
}

.ms-Pivot-link {
  display: flex;
  align-items: center;
  gap: var(--ms-spacing-xs);
  padding: var(--ms-spacing-m) var(--ms-spacing-l);
  font-family: var(--ms-font-family);
  font-size: var(--ms-font-size-base);
  font-weight: var(--ms-font-weight-regular);
  color: var(--ms-color-text-secondary);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all var(--ms-transition-duration);
  margin-bottom: -1px;
}

.ms-Pivot-link:hover {
  color: var(--ms-color-text-primary);
  background-color: var(--ms-color-neutral-background-hover);
}

.ms-Pivot-link.is-selected {
  color: var(--ms-color-brand-primary);
  font-weight: var(--ms-font-weight-semibold);
  border-bottom-color: var(--ms-color-brand-primary);
}

.ms-Pivot-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 var(--ms-spacing-xs);
  font-size: var(--ms-font-size-small);
  font-weight: var(--ms-font-weight-semibold);
  background-color: var(--ms-color-neutral-border);
  border-radius: 10px;
}

.ms-Pivot-link.is-selected .ms-Pivot-count {
  background-color: var(--ms-color-brand-tint-20);
  color: var(--ms-color-brand-primary);
}

.ms-Pivot-content {
  display: none;
}

.ms-Pivot-content.is-active {
  display: block;
}

/* ============================================
   List Component
   ============================================ */
.ms-List {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--ms-spacing-s);
}

/* Scrollable agent list container */
.ms-List--scrollable {
  max-height: 300px;
  overflow-y: auto;
  padding-right: var(--ms-spacing-xs);
}

/* Custom scrollbar styling */
.ms-List--scrollable::-webkit-scrollbar {
  width: 6px;
}

.ms-List--scrollable::-webkit-scrollbar-track {
  background: var(--ms-color-neutral-background);
  border-radius: 3px;
}

.ms-List--scrollable::-webkit-scrollbar-thumb {
  background: var(--ms-color-neutral-border-hover);
  border-radius: 3px;
}

.ms-List--scrollable::-webkit-scrollbar-thumb:hover {
  background: var(--ms-color-text-secondary);
}

.ms-ListItem {
  display: flex;
  align-items: center;
  gap: var(--ms-spacing-m);
  padding: var(--ms-spacing-m);
  background-color: var(--ms-color-neutral-surface);
  border: 1px solid var(--ms-color-neutral-border);
  border-radius: var(--ms-border-radius-medium);
  cursor: pointer;
  transition: all var(--ms-transition-duration);
}

.ms-ListItem:hover {
  background-color: var(--ms-color-neutral-background);
  border-color: var(--ms-color-brand-primary);
  box-shadow: var(--ms-shadow-4);
}

.ms-ListItem-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--ms-border-radius-medium);
  color: var(--ms-color-text-on-accent);
  flex-shrink: 0;
}

.ms-ListItem-icon i {
  font-size: 16px;
}

.ms-ListItem-content {
  flex: 1;
  min-width: 0;
}

.ms-ListItem-primaryText {
  display: block;
  font-weight: var(--ms-font-weight-semibold);
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ms-ListItem-secondaryText {
  display: block;
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ms-ListItem-actions {
  display: flex;
  gap: var(--ms-spacing-xs);
  opacity: 0;
  transition: opacity var(--ms-transition-duration);
}

.ms-ListItem:hover .ms-ListItem-actions {
  opacity: 1;
}

/* Customized Agent Badge */
.customized-badge {
  display: inline-block;
  font-size: 10px;
  color: #5c2d91;
  background: #f3e8ff;
  padding: 2px 6px;
  border-radius: 10px;
  margin-top: 4px;
}

.ms-ListItem--customized {
  border-left: 3px solid #5c2d91;
}

.ms-ListItem-actions a {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: inherit;
}

/* ============================================
   Empty State
   ============================================ */
.ms-EmptyState {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--ms-spacing-xxl);
  text-align: center;
}

.ms-EmptyState-icon {
  font-size: 48px;
  color: var(--ms-color-neutral-border);
  margin-bottom: var(--ms-spacing-m);
}

.ms-EmptyState-title {
  font-size: var(--ms-font-size-subtitle);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
  margin-bottom: var(--ms-spacing-xs);
}

.ms-EmptyState-description {
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-secondary);
}

/* ============================================
   Panel Component (Side Panel)
   ============================================ */
.ms-Panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  display: flex;
  justify-content: flex-end;
}

.ms-Panel.hidden {
  display: none;
}

.ms-Panel-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.4);
}

.ms-Panel-main {
  position: relative;
  width: 100%;
  max-width: 400px;
  height: 100%;
  background-color: var(--ms-color-neutral-surface);
  box-shadow: var(--ms-shadow-64);
  display: flex;
  flex-direction: column;
  animation: panelSlideIn 0.2s var(--ms-transition-timing);
}

@keyframes panelSlideIn {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

.ms-Panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ms-spacing-l);
  border-bottom: 1px solid var(--ms-color-neutral-border);
  flex-shrink: 0;
}

.ms-Panel-title {
  font-size: var(--ms-font-size-title);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
}

.ms-Panel-content {
  flex: 1;
  overflow-y: auto;
  padding: var(--ms-spacing-l);
}

.ms-Panel-section {
  margin-bottom: var(--ms-spacing-xl);
}

.ms-Panel-sectionTitle {
  font-size: var(--ms-font-size-base);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-brand-primary);
  margin-bottom: var(--ms-spacing-m);
  padding-bottom: var(--ms-spacing-s);
  border-bottom: 1px solid var(--ms-color-neutral-border);
}

.ms-Panel-footer {
  padding: var(--ms-spacing-l);
  border-top: 1px solid var(--ms-color-neutral-border);
  background-color: var(--ms-color-neutral-background);
  flex-shrink: 0;
}

.ms-Panel-footerActions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ms-spacing-s);
}

/* ============================================
   Dialog Component
   ============================================ */
.ms-Dialog {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--ms-spacing-l);
}

.ms-Dialog.hidden {
  display: none;
}

.ms-Dialog-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.4);
}

.ms-Dialog-main {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  background-color: var(--ms-color-neutral-surface);
  border-radius: var(--ms-border-radius-large);
  box-shadow: var(--ms-shadow-64);
  display: flex;
  flex-direction: column;
  animation: dialogFadeIn 0.2s var(--ms-transition-timing);
}

@keyframes dialogFadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.ms-Dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ms-spacing-l);
  border-bottom: 1px solid var(--ms-color-neutral-border);
}

.ms-Dialog-title {
  display: flex;
  align-items: center;
  gap: var(--ms-spacing-s);
  font-size: var(--ms-font-size-subtitle);
  font-weight: var(--ms-font-weight-semibold);
  color: var(--ms-color-text-primary);
}

.ms-Dialog-title i {
  color: var(--ms-color-brand-primary);
}

.ms-Dialog-content {
  flex: 1;
  overflow-y: auto;
  padding: var(--ms-spacing-l);
}

.ms-Dialog-description {
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-secondary);
  margin-bottom: var(--ms-spacing-l);
}

.ms-Dialog-examples {
  margin-top: var(--ms-spacing-l);
}

.ms-Dialog-examples .ms-Label {
  margin-bottom: var(--ms-spacing-s);
}

.ms-Dialog-exampleButtons {
  display: flex;
  flex-direction: column;
  gap: var(--ms-spacing-s);
}

.ms-Dialog-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--ms-spacing-s);
  padding: var(--ms-spacing-l);
  border-top: 1px solid var(--ms-color-neutral-border);
  background-color: var(--ms-color-neutral-background);
}

/* ============================================
   Tag Picker Component
   ============================================ */
.ms-TagPicker {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ms-spacing-xs);
  padding: var(--ms-spacing-s);
  min-height: 40px;
  background-color: var(--ms-color-neutral-background);
  border: 1px solid var(--ms-color-neutral-border);
  border-radius: var(--ms-border-radius-small);
  margin-bottom: var(--ms-spacing-s);
}

.ms-Tag {
  display: inline-flex;
  align-items: center;
  gap: var(--ms-spacing-xs);
  padding: var(--ms-spacing-xs) var(--ms-spacing-s);
  font-size: var(--ms-font-size-small);
  background-color: var(--ms-color-error-background);
  color: var(--ms-color-error);
  border: none;
  border-radius: 12px;
  cursor: default;
}

.ms-Tag-remove {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-size: 14px;
  line-height: 1;
  opacity: 0.7;
}

.ms-Tag-remove:hover {
  opacity: 1;
}

.ms-TagPicker-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ms-spacing-xs);
  margin-top: var(--ms-spacing-s);
}

.ms-TagPicker-suggestions .ms-Tag {
  background-color: var(--ms-color-neutral-background);
  color: var(--ms-color-text-secondary);
  border: 1px solid var(--ms-color-neutral-border);
  cursor: pointer;
  transition: all var(--ms-transition-duration);
}

.ms-TagPicker-suggestions .ms-Tag:hover {
  border-color: var(--ms-color-brand-primary);
  color: var(--ms-color-brand-primary);
}

/* ============================================
   Checkbox Component
   ============================================ */
.ms-Checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--ms-spacing-s);
}

.ms-Checkbox-input {
  width: 20px;
  height: 20px;
  margin: 0;
  cursor: pointer;
  accent-color: var(--ms-color-brand-primary);
}

.ms-Checkbox-label {
  cursor: pointer;
}

.ms-Checkbox-text {
  display: block;
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-primary);
}

.ms-Checkbox-description {
  display: block;
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
}

/* ============================================
   Spinner Component
   ============================================ */
.ms-Spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

.ms-Spinner--small {
  width: 16px;
  height: 16px;
}

.ms-Spinner.hidden {
  display: none;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* ============================================
   Grid System
   ============================================ */
.ms-Grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ms-spacing-m);
}

.ms-Grid-col {
  flex: 1;
  min-width: 0;
}

.ms-Grid-col.ms-sm6 {
  flex: 0 0 calc(50% - var(--ms-spacing-s));
}

/* ============================================
   Footer
   ============================================ */
.ms-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ms-spacing-s);
  padding: var(--ms-spacing-m) var(--ms-spacing-l);
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  border-top: 1px solid var(--ms-color-neutral-border);
  background-color: var(--ms-color-neutral-surface);
}

.ms-footer a {
  color: var(--ms-color-brand-primary);
  text-decoration: none;
}

.ms-footer a:hover {
  text-decoration: underline;
}

.ms-footer-separator {
  color: var(--ms-color-neutral-border);
}

/* ============================================
   Utility Classes
   ============================================ */
.hidden {
  display: none !important;
}

/* ============================================
   Card Variants
   ============================================ */
.ms-Card--highlight {
  border-left: 4px solid var(--ms-color-brand-primary);
}

.ms-Card--highlight .ms-Card-header {
  background-color: var(--ms-color-brand-tint-40);
}

.ms-Card--highlight .ms-Card-header i {
  color: var(--ms-color-brand-primary);
}

.ms-Card--wizard {
  border: 2px dashed var(--ms-color-neutral-border);
  background: linear-gradient(135deg, var(--ms-color-neutral-surface) 0%, var(--ms-color-brand-tint-40) 100%);
}

.ms-Card--wizard .ms-Card-header {
  background: transparent;
  border-bottom: 1px dashed var(--ms-color-neutral-border);
}

.ms-Card--wizard .ms-Card-header i {
  color: #742774;
}

.ms-Card-description {
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  margin-bottom: var(--ms-spacing-l);
  line-height: 1.5;
}

/* Collapsible Card */
.ms-Card--collapsible .ms-Card-header--clickable {
  cursor: pointer;
  user-select: none;
}

.ms-Card--collapsible .ms-Card-header--clickable:hover {
  background-color: var(--ms-color-neutral-background-hover);
}

.ms-Card-chevron {
  margin-left: auto;
  transition: transform var(--ms-transition-duration);
}

.ms-Card--collapsible.is-collapsed .ms-Card-chevron {
  transform: rotate(-90deg);
}

.ms-Card--collapsible.is-collapsed .ms-Card-content {
  display: none;
}

/* Link Card */
.ms-Card--link {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
}

.ms-Card--link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.ms-Card--link .ms-Card-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ms-Card--link .ms-Card-chevron {
  margin-left: auto;
  color: var(--ms-color-text-secondary);
}

.ms-Card--link .ms-Card-desc {
  font-size: 13px;
  color: var(--ms-color-text-secondary);
  margin: 0;
}

.ms-Card--link .ms-Card-content {
  padding-top: 0;
}

/* ============================================
   Wizard Tab
   ============================================ */
.ms-WizardTab {
  padding: var(--ms-spacing-s) 0;
}

.ms-WizardTab-description {
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  margin-bottom: var(--ms-spacing-l);
  line-height: 1.5;
  padding: var(--ms-spacing-m);
  background-color: var(--ms-color-brand-tint-40);
  border-radius: var(--ms-border-radius-medium);
  border-left: 3px solid var(--ms-color-brand-primary);
}

.ms-Pivot-icon {
  font-size: 12px;
  margin-left: var(--ms-spacing-xs);
  color: #742774;
}

/* ============================================
   Wizard Examples
   ============================================ */
.ms-WizardExamples {
  margin-bottom: var(--ms-spacing-l);
}

.ms-WizardExamples .ms-Label--small {
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  margin-bottom: var(--ms-spacing-s);
  display: block;
}

.ms-WizardExamples-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ms-spacing-s);
}

.ms-Tag--clickable {
  cursor: pointer;
  background-color: var(--ms-color-neutral-surface);
  border: 1px solid var(--ms-color-neutral-border);
  color: var(--ms-color-text-secondary);
  padding: var(--ms-spacing-s) var(--ms-spacing-m);
  border-radius: var(--ms-border-radius-medium);
  font-size: var(--ms-font-size-small);
  transition: all var(--ms-transition-duration);
}

.ms-Tag--clickable:hover {
  border-color: var(--ms-color-brand-primary);
  color: var(--ms-color-brand-primary);
  background-color: var(--ms-color-brand-tint-40);
  transform: translateY(-1px);
  box-shadow: var(--ms-shadow-4);
}

.ms-Tag--clickable:active {
  transform: translateY(0);
  background-color: var(--ms-color-brand-tint-20);
}

/* ============================================
   About Dialog
   ============================================ */
.about-logo {
  text-align: center;
  margin-bottom: var(--ms-spacing-m);
}

.about-version {
  text-align: center;
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  margin-bottom: var(--ms-spacing-xs);
}

.about-description {
  text-align: center;
  font-size: var(--ms-font-size-base);
  color: var(--ms-color-text-primary);
  margin-bottom: var(--ms-spacing-l);
  font-weight: 500;
}

.about-features {
  background: var(--ms-color-neutral-surface);
  border-radius: var(--ms-border-radius-medium);
  padding: var(--ms-spacing-m);
  margin-bottom: var(--ms-spacing-l);
}

.about-features p {
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-text-secondary);
  margin: var(--ms-spacing-s) 0;
  line-height: 1.5;
}

.about-footer {
  text-align: center;
  padding-top: var(--ms-spacing-m);
  border-top: 1px solid var(--ms-color-neutral-border);
}

.about-footer p {
  font-size: 11px;
  color: var(--ms-color-text-disabled);
  margin-bottom: var(--ms-spacing-xs);
}

.about-footer a {
  font-size: var(--ms-font-size-small);
  color: var(--ms-color-brand-primary);
  text-decoration: none;
}

.about-footer a:hover {
  text-decoration: underline;
}

/* ============================================
   Custom Agent Avatar (Initials)
   ============================================ */
.ms-ListItem-icon--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 600;
  color: white;
  text-transform: uppercase;
}

/* Avatar color palette for custom agents */
.ms-ListItem-icon--color-1 { background: #0078D4; }
.ms-ListItem-icon--color-2 { background: #107C10; }
.ms-ListItem-icon--color-3 { background: #5C2D91; }
.ms-ListItem-icon--color-4 { background: #D83B01; }
.ms-ListItem-icon--color-5 { background: #008272; }
.ms-ListItem-icon--color-6 { background: #B4009E; }
.ms-ListItem-icon--color-7 { background: #E81123; }
.ms-ListItem-icon--color-8 { background: #FFB900; color: #333; }

/* ============================================
   Action Cards (Navigation)
   ============================================ */
.ms-ActionCards {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--ms-color-neutral-border);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.ms-ActionCard {
  display: flex;
  flex-direction: column;
  padding: 16px;
  border-radius: 12px;
  text-decoration: none;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
}

.ms-ActionCard::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  transition: opacity 0.2s;
}

.ms-ActionCard:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.ms-ActionCard:hover::before {
  opacity: 0.05;
}

.ms-ActionCard--blue {
  background: linear-gradient(135deg, #E8F4FD 0%, #D0E8F9 100%);
  border: 1px solid #B8D9F0;
}

.ms-ActionCard--blue::before {
  background: #0078D4;
}

.ms-ActionCard--purple {
  background: linear-gradient(135deg, #F3E8FD 0%, #E8D0F9 100%);
  border: 1px solid #D4B8F0;
}

.ms-ActionCard--purple::before {
  background: #5C2D91;
}

.ms-ActionCard-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}

.ms-ActionCard-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: white;
}

.ms-ActionCard--blue .ms-ActionCard-icon {
  background: linear-gradient(135deg, #0078D4 0%, #106EBE 100%);
  box-shadow: 0 4px 12px rgba(0, 120, 212, 0.3);
}

.ms-ActionCard--purple .ms-ActionCard-icon {
  background: linear-gradient(135deg, #8764B8 0%, #5C2D91 100%);
  box-shadow: 0 4px 12px rgba(92, 45, 145, 0.3);
}

.ms-ActionCard-badge {
  background: #0078D4;
  color: white;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 10px;
  min-width: 20px;
  text-align: center;
}

.ms-ActionCard--purple .ms-ActionCard-badge {
  background: #5C2D91;
}

.ms-ActionCard-badge--new {
  background: linear-gradient(135deg, #FFB900 0%, #FF8C00 100%);
  padding: 3px 6px;
}

.ms-ActionCard-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ms-ActionCard-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ms-color-text-primary);
}

.ms-ActionCard--blue .ms-ActionCard-title {
  color: #0078D4;
}

.ms-ActionCard--purple .ms-ActionCard-title {
  color: #5C2D91;
}

.ms-ActionCard-desc {
  font-size: 11px;
  color: var(--ms-color-text-secondary);
  line-height: 1.3;
}

/* ============================================
   Responsive Adjustments
   ============================================ */
@media (max-width: 360px) {
  .ms-Grid-col.ms-sm6 {
    flex: 0 0 100%;
  }
  
  .ms-ButtonGroup {
    flex-direction: column;
  }
  
  .ms-ButtonGroup .ms-Button {
    width: 100%;
  }
  
  .ms-WizardExamples-buttons {
    flex-direction: column;
  }
  
  .ms-WizardExamples-buttons .ms-Tag--clickable {
    width: 100%;
    text-align: center;
  }
}
