@charset "UTF-8";
/* line 1, static/scss/abstract/_variables.scss */
:root {
  /* ========================================= */
  /* GAMA - Design tokens                     */
  /* ========================================= */
  /* Brand colors */
  --gama-brand-blue-950: #00325a;
  --gama-brand-blue-900: #005091;
  --gama-brand-blue-800: #0b5f9f;
  --gama-brand-blue-700: #1a6fb0;
  --gama-brand-blue-600: #2a86c2;
  --gama-brand-blue-500: #3f9ad4;
  --gama-brand-blue-400: #6ab3e4;
  --gama-brand-blue-300: #93c8ee;
  --gama-brand-blue-200: #c7e2f7;
  --gama-brand-blue-100: #e4f1fb;
  --gama-brand-blue-50:  #f4f9fe;
  --gama-brand-teal-900: #0f766e;
  --gama-brand-teal-800: #166a63;
  --gama-brand-teal-700: #1d837b;
  --gama-brand-teal-600: #22a399;
  --gama-brand-teal-500: #2BD3C6;
  --gama-brand-teal-400: #50BCBD;
  --gama-brand-teal-300: #7bd9d1;
  --gama-brand-teal-200: #ace9e3;
  --gama-brand-teal-100: #d7f7f3;
  --gama-brand-teal-50:  #f0fdfa;
  --gama-brand-orange-900: #9a4d17;
  --gama-brand-orange-800: #b35a1a;
  --gama-brand-orange-700: #c9671d;
  --gama-brand-orange-600: #e1762d;
  --gama-brand-orange-500: #F3954A;
  --gama-brand-orange-400: #f5aa6c;
  --gama-brand-orange-300: #f7bf92;
  --gama-brand-orange-200: #fbd9bc;
  --gama-brand-orange-100: #fdeedc;
  --gama-brand-orange-50:  #fff7f0;
  /* --- Palette Danger / Red --- */
  --color-danger-50: #fef2f2;
  --color-danger-100: #fee2e2;
  --color-danger-200: #fecaca;
  --color-danger-300: #fca5a5;
  --color-danger-400: #f87171;
  --color-danger-500: #ef4444;
  --color-danger-600: #dc2626;
  --color-danger-700: #b91c1c;
  --color-danger-800: #991b1b;
  --color-danger-900: #7f1d1d;
  --color-danger-950: #450a0a;
  /* --- Alias sémantiques (pour conserver la lisibilité de votre code) --- */
  --color-danger: var(--color-danger-500);
  --color-danger-hover: var(--color-danger-600);
  --color-danger-active: var(--color-danger-700);
  --color-danger-soft: var(--color-danger-50);
  --color-danger-border: var(--color-danger-200);
  --color-danger-text: var(--color-danger-800);
  /* Semantic colors */
  --color-primary: var(--gama-brand-blue-900);
  --color-primary-hover: var(--gama-brand-blue-800);
  --color-primary-active: var(--gama-brand-blue-700);
  --color-primary-soft: var(--gama-brand-blue-100);
  --color-primary-soft-2: var(--gama-brand-blue-50);
  --color-accent: var(--gama-brand-teal-500);
  --color-accent-hover: var(--gama-brand-teal-600);
  --color-accent-active: var(--gama-brand-teal-700);
  --color-accent-soft: var(--gama-brand-teal-100);
  --color-accent-soft-2: var(--gama-brand-teal-50);
  --color-accent-text: var(--gama-brand-teal-900);
  --color-warning: var(--gama-brand-orange-500);
  --color-warning-hover: var(--gama-brand-orange-600);
  --color-warning-soft: var(--gama-brand-orange-100);
  --color-warning-soft-2: var(--gama-brand-orange-50);
  /* Fallbacks pour les anciens tokens "highlight" vers "warning" */
  --color-highlight: var(--color-warning);
  --color-highlight-soft: var(--color-warning-soft);
  --color-highlight-soft-2: var(--color-warning-soft-2);
  --color-info: #0ea5e9;
  --color-info-soft: #f0f9ff;
  --color-info-border: #bae6fd;
  --color-success: #10b981;
  --color-success-soft: #ecfdf5;
  --color-success-border: #a7f3d0;
  /* Surfaces */
  --color-bg-page: #f1f5fb;
  --color-bg-app: #f6f9fc;
  --color-bg-surface: #ffffff;
  --color-bg-surface-alt: #f9fafb;
  --color-bg-surface-elevated: #f2f1f1;
  --color-bg-overlay: rgba(16, 24, 40, 0.28);
  /* Text */
  --color-text-primary: #111827;
  --color-text-secondary: #6b7280;
  --color-text-tertiary: #9ca3af;
  --color-text-inverse: #ffffff;
  --color-text-link: var(--color-primary);
  /* Borders */
  --color-border-default: #e5e7eb;
  --color-border-soft: #f3f4f6;
  --color-border-strong: #cbd5e1;
  --color-border-accent: var(--color-accent);
  --color-border-accent-soft: rgba(80, 188, 189, 0.18);
  /* Sidebar / header */
  --color-sidebar-bg: var(--gama-brand-teal-900);
  --color-sidebar-bg-hover: var(--gama-brand-teal-500);
  --color-sidebar-icon: #ffffff;
  --color-header-bg: rgba(246, 249, 252, 0.82);
  /* Badges */
  --color-badge-blue-bg: #e8f3fb;
  --color-badge-blue-border: #b9d9f0;
  --color-badge-blue-text: #215b88;
  --color-badge-teal-bg: #e6fbf8;
  --color-badge-teal-border: #b8eee7;
  --color-badge-teal-text: #0f766e;
  --color-badge-orange-bg: #fff1e5;
  --color-badge-orange-border: #f9c79d;
  --color-badge-orange-text: #9a4d17;
  --color-badge-red-bg: #fee2e2;
  --color-badge-red-border: #fecaca;
  --color-badge-red-text: #b91c1c;
  --color-badge-purple-bg: #ede9fe;
  --color-badge-purple-border: #d8b4fe;
  --color-badge-purple-text: #6b21a8;
  /* Neutrals */
  --color-neutral-950: #0f172a;
  --color-neutral-900: #111827;
  --color-neutral-800: #1f2937;
  --color-neutral-700: #374151;
  --color-neutral-600: #4b5563;
  --color-neutral-500: #6b7280;
  --color-neutral-400: #9ca3af;
  --color-neutral-300: #d1d5db;
  --color-neutral-200: #e5e7eb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-50: #f9fafb;
  --color-white: #ffffff;
  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --shadow-md: 0 4px 6px rgba(15, 23, 42, 0.10);
  --shadow-lg: 0 10px 15px rgba(15, 23, 42, 0.12);
  --shadow-xl: 0 20px 45px rgba(15, 23, 42, 0.16);
  /* Radius */
  --radius-xs: 8px;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --radius-pill: 999px;
  /* Layout */
  --sidebar-width: 5rem;
  --sidebar-margin: 7rem;
  --header-height: 4rem;
  /* Motion */
  --transition-fast: 120ms ease;
  --transition-base: 180ms ease;
  --transition-slow: 240ms ease;
  /* Gradients */
  --gradient-brand: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  --gradient-brand-reverse: linear-gradient(135deg, var(--color-accent), var(--color-primary));
  --gradient-soft: linear-gradient(135deg, var(--color-primary-soft), var(--color-accent-soft));
  --gradient-warm: linear-gradient(135deg, var(--color-warning-soft), var(--color-warning));
  /* Focus */
  --focus-ring: 0 0 0 4px rgba(80, 188, 189, 0.18); }

/* line 190, static/scss/abstract/_variables.scss */
html[data-theme="dark"],
html.dark {
  --gama-brand-blue-700: #005091;
  --gama-brand-blue-600: #0b5f9f;
  --gama-brand-blue-500: #1a6fb0;
  --gama-brand-blue-400: #2a86c2;
  --gama-brand-blue-300: #3f9ad4;
  --gama-brand-blue-200: #6ab3e4;
  --gama-brand-blue-100: #93c8ee;
  --gama-brand-blue-50: #c7e2f7;
  --gama-brand-teal-700: #0f766e;
  --gama-brand-teal-600: #166a63;
  --gama-brand-teal-500: #1d837b;
  --gama-brand-teal-400: #22a399;
  --gama-brand-teal-300: #2BD3C6;
  --gama-brand-teal-200: #50BCBD;
  --gama-brand-teal-100: #7bd9d1;
  --gama-brand-teal-50: #ace9e3;
  --gama-brand-orange-700: #9a4d17;
  --gama-brand-orange-600: #b35a1a;
  --gama-brand-orange-500: #c9671d;
  --gama-brand-orange-400: #e1762d;
  --gama-brand-orange-300: #F3954A;
  --gama-brand-orange-200: #f5aa6c;
  --gama-brand-orange-100: #f7bf92;
  --gama-brand-orange-50: #fbd9bc;
  --color-bg-page: #0b1220;
  --color-bg-app: #111827;
  --color-bg-surface: #1f2937;
  --color-bg-surface-alt: #172033;
  --color-bg-surface-elevated: #243041;
  --color-bg-overlay: rgba(2, 6, 23, 0.66);
  --color-text-primary: #f9fafb;
  --color-text-secondary: #d1d5db;
  --color-text-tertiary: #9ca3af;
  --color-text-inverse: #ffffff;
  --color-border-default: #334155;
  --color-border-soft: #1f2937;
  --color-border-strong: #475569;
  --color-border-accent: rgba(80, 188, 189, 0.22);
  --color-border-accent-soft: rgba(80, 188, 189, 0.16);
  --color-primary: var(--gama-brand-blue-800);
  --color-primary-hover: var(--gama-brand-blue-700);
  --color-primary-active: var(--gama-brand-blue-600);
  --color-primary-soft: rgba(0, 80, 145, 0.18);
  --color-primary-soft-2: rgba(0, 80, 145, 0.10);
  --color-accent: var(--gama-brand-teal-500);
  --color-accent-hover: var(--gama-brand-teal-400);
  --color-accent-active: var(--gama-brand-teal-300);
  --color-accent-soft: rgba(80, 188, 189, 0.14);
  --color-accent-soft-2: rgba(80, 188, 189, 0.08);
  --color-accent-text: #b8fff5;
  --color-warning: var(--gama-brand-orange-500);
  --color-warning-hover: var(--gama-brand-orange-400);
  --color-warning-soft: rgba(243, 149, 74, 0.18);
  --color-warning-soft-2: rgba(243, 149, 74, 0.10);
  /* Fallbacks pour dark theme */
  --color-highlight: var(--color-warning);
  --color-highlight-soft: var(--color-warning-soft);
  --color-highlight-soft-2: var(--color-warning-soft-2);
  --color-info: #38bdf8;
  --color-info-soft: rgba(14, 165, 233, 0.14);
  --color-info-border: rgba(56, 189, 248, 0.26);
  --color-success: #34d399;
  --color-success-soft: rgba(16, 185, 129, 0.14);
  --color-success-border: rgba(52, 211, 153, 0.26);
  --color-danger: #f87171;
  --color-danger-hover: #ef4444;
  --color-danger-soft: rgba(248, 113, 113, 0.14);
  --color-danger-border: rgba(248, 113, 113, 0.24);
  --color-sidebar-bg: #0f3f3a;
  --color-sidebar-bg-hover: #0b2f2b;
  --color-sidebar-icon: #ffffff;
  --color-header-bg: rgba(17, 24, 39, 0.78);
  --color-badge-blue-bg: rgba(37, 99, 235, 0.16);
  --color-badge-blue-border: rgba(96, 165, 250, 0.24);
  --color-badge-blue-text: #bfdbfe;
  --color-badge-teal-bg: rgba(80, 188, 189, 0.16);
  --color-badge-teal-border: rgba(80, 188, 189, 0.28);
  --color-badge-teal-text: #b8fff5;
  --color-badge-orange-bg: rgba(243, 149, 74, 0.16);
  --color-badge-orange-border: rgba(243, 149, 74, 0.26);
  --color-badge-orange-text: #fed7aa;
  --color-badge-red-bg: rgba(248, 113, 113, 0.16);
  --color-badge-red-border: rgba(248, 113, 113, 0.26);
  --color-badge-red-text: #fecaca;
  --color-badge-purple-bg: rgba(168, 85, 247, 0.16);
  --color-badge-purple-border: rgba(192, 132, 252, 0.26);
  --color-badge-purple-text: #e9d5ff;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.28);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.40);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.48);
  --shadow-xl: 0 20px 45px rgba(0, 0, 0, 0.60);
  --focus-ring: 0 0 0 4px rgba(80, 188, 189, 0.20); }

/* line 1, static/scss/base/_reset.scss */
html {
  font-family: 'Inter', sans-serif;
  letter-spacing: -0.01em;
  background-color: var(--color-bg-page);
  color: var(--color-text-primary);
  color-scheme: light;
  transition: background-color var(--transition-base), color var(--transition-base); }
  /* line 9, static/scss/base/_reset.scss */
  html[data-theme="dark"], html.dark {
    color-scheme: dark; }

/* line 14, static/scss/base/_reset.scss */
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column; }

/* line 20, static/scss/base/_reset.scss */
a {
  text-decoration: none; }

/* line 23, static/scss/base/_reset.scss */
nav {
  text-decoration: none; }

/* line 26, static/scss/base/_reset.scss */
.app-content-wrapper {
  margin-left: var(--sidebar-margin);
  min-height: 100vh;
  display: flex;
  flex-direction: column; }

/* line 32, static/scss/base/_reset.scss */
.app-main-content {
  flex: 1; }

/* line 35, static/scss/base/_reset.scss */
.app-main-container {
  margin: 0 auto; }

/* line 38, static/scss/base/_reset.scss */
.hidden {
  display: none !important; }

/* line 41, static/scss/base/_reset.scss */
.main-shell {
  min-width: 1200px; }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes modalPop {
  from {
    opacity: 0;
    transform: scale(0.95); }
  to {
    opacity: 1;
    transform: scale(1); } }

/* line 11, static/scss/base/_animations.scss */
.animate-fadeIn, .equipment-item {
  animation: fadeIn 0.3s ease; }

/* line 15, static/scss/base/_animations.scss */
.animate-modal {
  animation: modalPop 0.2s ease; }

/* line 18, static/scss/base/_animations.scss */
#drawer-overlay {
  transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1); }

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(8px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0; } }

/* line 39, static/scss/base/_animations.scss */
.animate-fade-in-up {
  animation: fadeInUp 0.25s ease-out forwards; }

/* line 42, static/scss/base/_animations.scss */
.animate-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; }

/* line 1, static/scss/components/_buttons.scss */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  background-color: var(--color-accent);
  color: #fff;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 900;
  transition: all var(--transition-base);
  box-shadow: 0 10px 15px -3px rgba(6, 182, 212, 0.2);
  text-decoration: none;
  border: none;
  cursor: pointer; }
  /* line 16, static/scss/components/_buttons.scss */
  .btn-primary:hover {
    background-color: var(--color-accent-hover); }
  /* line 19, static/scss/components/_buttons.scss */
  .btn-primary i {
    margin-right: 0.5rem;
    font-size: 1.125rem; }

/* line 24, static/scss/components/_buttons.scss */
.btn-add {
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  background-color: var(--color-accent);
  color: var(--color-text-inverse);
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: var(--radius-xs);
  transition: all var(--transition-base);
  box-shadow: var(--shadow-sm);
  text-decoration: none; }
  /* line 36, static/scss/components/_buttons.scss */
  .btn-add:hover {
    background-color: var(--color-accent-hover); }
  /* line 39, static/scss/components/_buttons.scss */
  .btn-add i {
    margin-right: 0.25rem; }

/* line 43, static/scss/components/_buttons.scss */
.btn-export {
  display: flex;
  align-items: center;
  padding: 0.5rem 1rem;
  color: var(--color-text-inverse);
  background-color: var(--gama-brand-blue-500);
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: var(--radius-xs);
  transition: all var(--transition-base);
  box-shadow: var(--shadow-sm);
  text-decoration: none; }
  /* line 55, static/scss/components/_buttons.scss */
  .btn-export:hover {
    background-color: var(--gama-brand-blue-300); }
  /* line 58, static/scss/components/_buttons.scss */
  .btn-export i {
    margin-right: 0.25rem; }

/* line 62, static/scss/components/_buttons.scss */
.btn-sign {
  padding: 0.5rem 1.25rem;
  background-color: var(--color-success);
  color: #fff;
  font-weight: 900;
  font-size: 10px;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  box-shadow: 0 10px 15px -3px rgba(34, 197, 94, 0.2);
  border: none;
  cursor: pointer; }
  /* line 73, static/scss/components/_buttons.scss */
  .btn-sign:hover {
    background-color: #16a34a; }

/* line 77, static/scss/components/_buttons.scss */
.action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border-radius: var(--radius-xs);
  transition: all var(--transition-base);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer; }
  /* line 90, static/scss/components/_buttons.scss */
  .action-btn i {
    font-size: 1.125rem;
    line-height: 1; }

/* line 95, static/scss/components/_buttons.scss */
.action-btn-star {
  color: var(--gama-brand-blue-500); }
  /* line 97, static/scss/components/_buttons.scss */
  .action-btn-star:hover {
    color: var(--color-text-inverse);
    background-color: var(--gama-brand-blue-300); }

/* line 102, static/scss/components/_buttons.scss */
.action-btn-show {
  color: var(--gama-brand-blue-500); }
  /* line 104, static/scss/components/_buttons.scss */
  .action-btn-show:hover {
    color: var(--color-text-inverse);
    background-color: var(--gama-brand-blue-300); }

/* line 109, static/scss/components/_buttons.scss */
.action-btn-edit {
  color: var(--gama-brand-orange-500); }
  /* line 111, static/scss/components/_buttons.scss */
  .action-btn-edit:hover {
    color: var(--color-text-inverse);
    background-color: var(--gama-brand-orange-300); }

/* line 116, static/scss/components/_buttons.scss */
.action-btn-delete {
  color: var(--color-danger); }
  /* line 118, static/scss/components/_buttons.scss */
  .action-btn-delete:hover {
    color: var(--color-text-inverse);
    background-color: var(--color-danger-300); }

/* line 123, static/scss/components/_buttons.scss */
.header-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--color-border-default);
  background-color: var(--color-bg-surface);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  font-size: 20px;
  padding: 0;
  color: var(--gama-brand-blue-500);
  border-radius: var(--radius-sm);
  transition: all 0.2s;
  text-decoration: none; }
  /* line 140, static/scss/components/_buttons.scss */
  .header-btn:hover {
    background-color: var(--color-bg-surface-alt);
    color: var(--gama-brand-teal-500);
    border-color: var(--gama-brand-teal-500);
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(43, 211, 198, 0.15); }
  /* line 147, static/scss/components/_buttons.scss */
  .header-btn i {
    font-size: 1.125rem; }

/* line 151, static/scss/components/_buttons.scss */
.toggle-container {
  display: flex;
  align-items: center;
  gap: 0.5rem; }
  /* line 155, static/scss/components/_buttons.scss */
  .toggle-container span {
    color: var(--color-text-tertiary);
    font-size: 0.875rem;
    font-style: italic; }

/* line 161, static/scss/components/_buttons.scss */
.toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-xs, 0.5rem);
  gap: 1rem; }

/* line 171, static/scss/components/_buttons.scss */
.toggle-left {
  display: flex;
  align-items: center;
  gap: 0.875rem; }

/* line 176, static/scss/components/_buttons.scss */
.toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-xs, 0.375rem);
  background-color: var(--color-danger-soft);
  color: var(--color-danger-500);
  font-size: 1.25rem;
  flex-shrink: 0; }

/* line 188, static/scss/components/_buttons.scss */
.toggle-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text-primary); }

/* line 193, static/scss/components/_buttons.scss */
.toggle-sub {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  margin-top: 0.125rem; }

/* line 198, static/scss/components/_buttons.scss */
.toggle-switch {
  position: relative;
  display: inline-block;
  cursor: pointer;
  flex-shrink: 0; }
  /* line 203, static/scss/components/_buttons.scss */
  .toggle-switch input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0; }
    /* line 213, static/scss/components/_buttons.scss */
    .toggle-switch input[type="checkbox"]:checked + .toggle-track {
      background-color: var(--gama-brand-blue-500); }
      /* line 216, static/scss/components/_buttons.scss */
      .toggle-switch input[type="checkbox"]:checked + .toggle-track .toggle-thumb {
        transform: translateX(1.25rem); }
    /* line 220, static/scss/components/_buttons.scss */
    .toggle-switch input[type="checkbox"]:focus-visible + .toggle-track {
      outline: 2px solid var(--gama-brand-blue-500);
      outline-offset: 2px; }
  /* line 225, static/scss/components/_buttons.scss */
  .toggle-switch .toggle-track {
    width: 2.75rem;
    height: 1.5rem;
    background-color: var(--color-border-default);
    border-radius: var(--radius-pill, 9999px);
    padding: 0.125rem;
    transition: background-color var(--transition-base, 0.2s ease); }
  /* line 233, static/scss/components/_buttons.scss */
  .toggle-switch .toggle-thumb {
    width: 1.25rem;
    height: 1.25rem;
    background-color: var(--color-bg-surface);
    border-radius: var(--radius-pill, 9999px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    transition: transform var(--transition-base, 0.2s ease); }

/* line 242, static/scss/components/_buttons.scss */
.input-file-native {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  background: var(--gradient-brand);
  color: var(--color-text-inverse);
  border-radius: var(--radius-xs, 0.375rem);
  cursor: pointer;
  transition: opacity var(--transition-base, 0.2s);
  /* Style de l'icône */ }
  /* line 255, static/scss/components/_buttons.scss */
  .input-file-native input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0; }
  /* line 268, static/scss/components/_buttons.scss */
  .input-file-native i {
    font-size: 1.25rem;
    line-height: 1; }
  /* line 273, static/scss/components/_buttons.scss */
  .input-file-native:hover {
    opacity: 0.9; }
  /* line 277, static/scss/components/_buttons.scss */
  .input-file-native:focus-within {
    outline: 2px solid var(--gama-brand-blue-500);
    outline-offset: 2px; }

/* --- Alignement du groupe de boutons --- */
/* line 283, static/scss/components/_buttons.scss */
.form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1.5rem; }

/* --- Base commune pour les boutons --- */
/* line 292, static/scss/components/_buttons.scss */
.btn-cancel,
.btn-confirm,
.btn-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  /* Dimensions alignées sur vos .form-input (hauteur ~38px / 40px) */
  padding: 9px 18px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  outline: none;
  text-decoration: none;
  border: 1.5px solid transparent;
  transition: background-color 0.15s ease,  border-color 0.15s ease,  box-shadow 0.15s ease,  transform 0.1s ease;
  /* Icône MDI dans le bouton */
  /* Effet d'enfoncement au clic */ }
  /* line 319, static/scss/components/_buttons.scss */
  .btn-cancel i,
  .btn-confirm i,
  .btn-save i {
    font-size: 18px;
    line-height: 1; }
  /* line 325, static/scss/components/_buttons.scss */
  .btn-cancel:active,
  .btn-confirm:active,
  .btn-save:active {
    transform: scale(0.98); }

/* --- Bouton Annuler (Neutre / Outline) --- */
/* line 331, static/scss/components/_buttons.scss */
.btn-cancel {
  background-color: var(--color-neutral-100);
  border-color: var(--color-neutral-500);
  color: var(--color-neutral-500); }
  /* line 336, static/scss/components/_buttons.scss */
  .btn-cancel:hover {
    background-color: var(--color-neutral-500);
    border-color: var(--color-neutral-100);
    color: var(--color-text-inverse); }
  /* line 342, static/scss/components/_buttons.scss */
  .btn-cancel:focus-visible {
    border-color: var(--color-neutral-100);
    box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.15); }

/* line 347, static/scss/components/_buttons.scss */
.btn-confirm {
  background-color: var(--gama-brand-blue-100);
  border-color: var(--gama-brand-blue-500);
  color: var(--gama-brand-blue-500); }
  /* line 352, static/scss/components/_buttons.scss */
  .btn-confirm:hover {
    background-color: var(--gama-brand-blue-500);
    border-color: var(--gama-brand-blue-100);
    color: var(--color-text-inverse); }
  /* line 358, static/scss/components/_buttons.scss */
  .btn-confirm:focus-visible {
    border-color: var(--gama-brand-blue-500);
    box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.15); }

/* --- Bouton Enregistrer (Principal / Accent) --- */
/* line 365, static/scss/components/_buttons.scss */
.btn-save {
  background-color: var(--color-accent, #2bd3c6);
  border-color: var(--color-accent, #2bd3c6);
  color: #ffffff;
  /* Ou var(--color-text-inverse) */
  /* État désactivé lors du chargement */ }
  /* line 370, static/scss/components/_buttons.scss */
  .btn-save:hover {
    filter: brightness(0.93);
    /* Assombrit légèrement au survol */
    box-shadow: 0 4px 12px rgba(43, 211, 198, 0.25); }
  /* line 375, static/scss/components/_buttons.scss */
  .btn-save:focus-visible {
    box-shadow: 0 0 0 3px rgba(43, 211, 198, 0.35); }
  /* line 380, static/scss/components/_buttons.scss */
  .btn-save:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none; }

/* line 387, static/scss/components/_buttons.scss */
.btn-delete {
  height: 2rem;
  background: var(--color-danger-100);
  border: 1px solid var(--color-danger-300);
  border-radius: 0.75rem;
  color: var(--color-danger);
  align-items: center;
  align-content: center;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem; }
  /* line 402, static/scss/components/_buttons.scss */
  .btn-delete:hover {
    color: var(--color-text-inverse);
    background-color: var(--color-danger-300); }
  /* line 406, static/scss/components/_buttons.scss */
  .btn-delete i {
    margin-right: 0.5rem; }

/* line 410, static/scss/components/_buttons.scss */
.btn-edit {
  height: 2rem;
  background: var(--gama-brand-orange-100);
  border: 1px solid var(--gama-brand-orange-300);
  border-radius: 0.75rem;
  color: var(--gama-brand-orange-500);
  align-items: center;
  align-content: center;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem; }
  /* line 425, static/scss/components/_buttons.scss */
  .btn-edit:hover {
    color: var(--color-text-inverse);
    background-color: var(--gama-brand-orange-300); }
  /* line 429, static/scss/components/_buttons.scss */
  .btn-edit i {
    margin-right: 0.5rem; }

/* line 433, static/scss/components/_buttons.scss */
.btn-save-contract {
  background-color: var(--gama-brand-blue-500);
  color: var(--color-text-inverse);
  border-radius: var(--radius-md);
  text-transform: uppercase;
  transition: all var(--transition-base);
  box-shadow: 0 10px 15px -3px rgba(43, 211, 198, 0.2);
  text-decoration: none;
  border: none;
  cursor: pointer;
  align-items: center;
  align-content: center;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem; }
  /* line 453, static/scss/components/_buttons.scss */
  .btn-save-contract i {
    margin-right: 0.5rem; }
  /* line 456, static/scss/components/_buttons.scss */
  .btn-save-contract:hover {
    background-color: var(--gama-brand-blue-100);
    border-color: var(--gama-brand-blue-500);
    color: var(--gama-brand-blue-500); }
  /* line 462, static/scss/components/_buttons.scss */
  .btn-save-contract:focus-visible {
    box-shadow: 0 0 0 3px rgba(43, 211, 198, 0.35); }
  /* line 466, static/scss/components/_buttons.scss */
  .btn-save-contract:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none; }

/* line 473, static/scss/components/_buttons.scss */
.btn-cancel-contract {
  background-color: var(--color-neutral-100);
  border-color: var(--color-neutral-500);
  color: var(--color-neutral-500);
  border-radius: var(--radius-md);
  text-transform: uppercase;
  transition: all var(--transition-base);
  box-shadow: 0 10px 15px -3px rgba(43, 211, 198, 0.2);
  text-decoration: none;
  cursor: pointer;
  align-items: center;
  align-content: center;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem; }
  /* line 493, static/scss/components/_buttons.scss */
  .btn-cancel-contract:hover {
    background-color: var(--color-neutral-500);
    border-color: var(--color-neutral-100);
    color: var(--color-text-inverse); }
  /* line 499, static/scss/components/_buttons.scss */
  .btn-cancel-contract:focus-visible {
    border-color: var(--color-neutral-100);
    box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.15); }

/* line 504, static/scss/components/_buttons.scss */
.btn-integration {
  color: var(--gama-brand-blue-500);
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1.25rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  padding-left: 1rem;
  padding-right: 1rem;
  background-color: var(--gama-brand-blue-100);
  border-radius: 0.75rem;
  justify-content: center;
  align-items: center;
  display: inline-flex;
  gap: 0.5rem; }
  /* line 519, static/scss/components/_buttons.scss */
  .btn-integration:hover {
    background-color: var(--gama-brand-blue-500);
    color: var(--color-text-inverse); }

/* line 524, static/scss/components/_buttons.scss */
.btn-edition {
  font-weight: 500;
  color: var(--color-badge-purple-text);
  background-color: var(--color-badge-purple-bg);
  border-radius: 0.5rem;
  line-height: 1.25rem;
  font-size: 0.875rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  cursor: pointer;
  border: none; }
  /* line 537, static/scss/components/_buttons.scss */
  .btn-edition:hover {
    color: var(--color-badge-purple-bg);
    background-color: var(--color-badge-purple-text); }

/* line 542, static/scss/components/_buttons.scss */
.btn-export-pdf {
  font-weight: 500;
  color: var(--gama-brand-orange-500);
  background-color: var(--gama-brand-orange-100);
  border-radius: 0.5rem;
  line-height: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  cursor: pointer;
  border: none; }
  /* line 554, static/scss/components/_buttons.scss */
  .btn-export-pdf:hover {
    color: var(--gama-brand-orange-100);
    background-color: var(--gama-brand-orange-500); }
  /* line 558, static/scss/components/_buttons.scss */
  .btn-export-pdf i {
    font-size: 1.5rem; }

/* line 563, static/scss/components/_buttons.scss */
.btn-reply {
  padding: 0.625rem 1.25rem;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 14px;
  font-weight: 700;
  border-radius: 0.75rem;
  border: none;
  cursor: pointer;
  transition: all 0.2s; }

/* line 575, static/scss/components/_buttons.scss */
.btn-reply:hover {
  background: #e5e7eb; }

/* line 579, static/scss/components/_buttons.scss */
.btn-reply-close {
  padding: 0.625rem 1.5rem;
  background: #166A63;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  border-radius: 0.75rem;
  border: none;
  cursor: pointer;
  box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  transition: all 0.2s; }

/* line 594, static/scss/components/_buttons.scss */
.btn-reply-close:hover {
  background: #0f4d48; }

/* line 598, static/scss/components/_buttons.scss */
.btn-reply-close i {
  margin-right: 0.5rem; }

/* line 1, static/scss/components/_theme-toggle.scss */
.theme-toggle-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--color-border-default);
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  font-size: 20px;
  padding: 0;
  margin: 0;
  color: var(--gama-brand-blue-500); }
  /* line 2, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn:hover {
    background-color: var(--color-bg-surface-alt);
    border-color: var(--color-accent);
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(43, 211, 198, 0.15);
    color: var(--gama-brand-teal-500); }
    /* line 2, static/scss/components/_theme-toggle.scss */
    .theme-toggle-btn:hover::before {
      opacity: 1; }
  /* line 3, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn:active {
    transform: scale(0.98); }
  /* line 4, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px; }
  /* line 5, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed; }
    /* line 6, static/scss/components/_theme-toggle.scss */
    .theme-toggle-btn:disabled:hover {
      background-color: var(--color-bg-surface);
      border-color: var(--color-border-default);
      transform: scale(1);
      box-shadow: none; }
  /* line 8, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn::before {
    content: attr(aria-label);
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--color-text-primary);
    color: var(--color-bg-surface);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 100; }
  /* line 9, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn .theme-toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
    -webkit-user-select: none;
    user-select: none; }
  /* line 20, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn.light .theme-toggle-icon {
    animation: rotateSun 0.5s ease-out; }
  /* line 21, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn.dark .theme-toggle-icon {
    animation: rotateMoon 0.5s ease-out; }
  /* line 22, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn.with-label {
    width: auto;
    gap: 8px;
    padding: 8px 14px; }
    /* line 23, static/scss/components/_theme-toggle.scss */
    .theme-toggle-btn.with-label .theme-toggle-label {
      font-size: 14px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      display: none; }
  /* line 25, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn.pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
  /* line 26, static/scss/components/_theme-toggle.scss */
  .theme-toggle-btn.transitioning {
    pointer-events: none; }

/* line 29, static/scss/components/_theme-toggle.scss */
html[data-theme="dark"] .theme-toggle-btn, html.dark .theme-toggle-btn {
  border-color: var(--color-border-default);
  background-color: var(--color-bg-surface); }
  /* line 30, static/scss/components/_theme-toggle.scss */
  html[data-theme="dark"] .theme-toggle-btn:hover, html.dark .theme-toggle-btn:hover {
    background-color: var(--color-bg-surface-alt);
    box-shadow: 0 4px 12px rgba(43, 211, 198, 0.25); }

/* line 33, static/scss/components/_theme-toggle.scss */
#theme-toggle-container {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  padding: 0 8px; }

/* line 34, static/scss/components/_theme-toggle.scss */
.theme-toggle-icon span i {
  color: var(--color-primary); }

@keyframes rotateSun {
  from {
    transform: rotate(-180deg);
    opacity: 0; }
  to {
    transform: rotate(0deg);
    opacity: 1; } }

@keyframes rotateMoon {
  from {
    transform: rotate(180deg);
    opacity: 0; }
  to {
    transform: rotate(0deg);
    opacity: 1; } }

@keyframes pulse {
  0%, 100% {
    opacity: 1; }
  50% {
    opacity: 0.7; } }

/* line 1, static/scss/components/_modals.scss */
.modal-overlay {
  position: fixed;
  inset: 0;
  background-color: var(--color-bg-overlay);
  backdrop-filter: blur(4px);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem; }

/* line 12, static/scss/components/_modals.scss */
.modal-box {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  max-width: 28rem;
  width: 100%;
  padding: 2rem;
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-xl); }
  /* line 20, static/scss/components/_modals.scss */
  .modal-box .modal-icon {
    width: 4rem;
    height: 4rem;
    background-color: var(--color-success-soft);
    color: var(--color-success);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem; }
    /* line 30, static/scss/components/_modals.scss */
    .modal-box .modal-icon i {
      font-size: 1.875rem; }
  /* line 34, static/scss/components/_modals.scss */
  .modal-box .modal-title {
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--color-text-primary); }

/* line 40, static/scss/components/_modals.scss */
.modal-actions {
  margin-top: 2rem; }

/* line 43, static/scss/components/_modals.scss */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center; }
  /* line 51, static/scss/components/_modals.scss */
  .modal-backdrop .modal-wrapper {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem; }
    /* line 59, static/scss/components/_modals.scss */
    .modal-backdrop .modal-wrapper .backdrop-overlay {
      position: absolute;
      inset: 0;
      background-color: rgba(15, 23, 42, 0.6);
      backdrop-filter: blur(4px); }
    /* line 66, static/scss/components/_modals.scss */
    .modal-backdrop .modal-wrapper .modal-content {
      position: relative;
      z-index: 10;
      background-color: var(--color-bg-surface);
      border-radius: 1rem;
      min-width: 700px;
      max-width: 28rem;
      box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
      overflow: hidden; }
      /* line 76, static/scss/components/_modals.scss */
      .modal-backdrop .modal-wrapper .modal-content .modal-header {
        padding: 1.25rem 1.5rem;
        display: flex;
        background-color: var(--gama-brand-blue-500);
        border-bottom: 2px solid var(--gama-brand-blue-700); }
        /* line 81, static/scss/components/_modals.scss */
        .modal-backdrop .modal-wrapper .modal-content .modal-header i {
          margin-right: 2rem;
          font-size: 2rem;
          align-content: center;
          color: var(--gama-brand-orange-500); }
        /* line 87, static/scss/components/_modals.scss */
        .modal-backdrop .modal-wrapper .modal-content .modal-header .modal-title {
          font-size: 1.25rem;
          font-weight: 800;
          color: var(--color-text-inverse);
          margin: 0; }
        /* line 93, static/scss/components/_modals.scss */
        .modal-backdrop .modal-wrapper .modal-content .modal-header .modal-subtitle {
          font-size: 1rem;
          font-weight: 600;
          color: var(--gama-brand-orange-300);
          margin: 0; }
      /* line 100, static/scss/components/_modals.scss */
      .modal-backdrop .modal-wrapper .modal-content .modal-form {
        padding: 1.5rem; }
        /* line 103, static/scss/components/_modals.scss */
        .modal-backdrop .modal-wrapper .modal-content .modal-form .form-group {
          display: flex;
          flex-direction: column;
          gap: 0.375rem;
          margin-bottom: 1rem; }
          /* line 109, static/scss/components/_modals.scss */
          .modal-backdrop .modal-wrapper .modal-content .modal-form .form-group .form-label {
            font-size: 0.75rem;
            font-weight: 700;
            color: var(--gama-brand-blue-500);
            text-transform: uppercase;
            letter-spacing: 0.05em; }
          /* line 116, static/scss/components/_modals.scss */
          .modal-backdrop .modal-wrapper .modal-content .modal-form .form-group .form-wrap {
            width: 90%; }
          /* line 119, static/scss/components/_modals.scss */
          .modal-backdrop .modal-wrapper .modal-content .modal-form .form-group .form-wrap-select {
            width: 80%; }
        /* line 124, static/scss/components/_modals.scss */
        .modal-backdrop .modal-wrapper .modal-content .modal-form .form-grid {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 1rem; }
        /* line 130, static/scss/components/_modals.scss */
        .modal-backdrop .modal-wrapper .modal-content .modal-form .btn-submit {
          width: 100%;
          padding: 0.75rem;
          border-radius: 0.5rem;
          background-color: var(--color-neutral-900);
          color: var(--color-text-inverse);
          font-size: 0.875rem;
          font-weight: 700;
          border: none;
          cursor: pointer;
          transition: background-color 0.15s ease; }
          /* line 142, static/scss/components/_modals.scss */
          .modal-backdrop .modal-wrapper .modal-content .modal-form .btn-submit:hover {
            background-color: var(--color-neutral-800); }

/* line 1, static/scss/components/_search.scss */
.search-box {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--color-bg-primary);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: 7px 12px;
  transition: border-color 0.15s, box-shadow 0.15s; }

/* line 2, static/scss/components/_search.scss */
.search-box:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(43, 211, 198, 0.1); }

/* line 3, static/scss/components/_search.scss */
.search-box i {
  font-size: 16px;
  color: var(--color-text-secondary);
  flex-shrink: 0;
  transition: color 0.15s; }

/* line 4, static/scss/components/_search.scss */
.search-box:focus-within i {
  color: var(--color-accent); }

/* line 5, static/scss/components/_search.scss */
.search-box input {
  border: none !important;
  outline: none !important;
  font-size: 13px !important;
  color: var(--color-text-primary) !important;
  background: transparent !important;
  width: 180px !important;
  padding: 0.5rem !important;
  box-shadow: none !important; }

/* line 6, static/scss/components/_search.scss */
.search-box input::placeholder {
  color: var(--color-text-secondary); }

/* line 7, static/scss/components/_search.scss */
.search-form {
  display: flex;
  align-items: center;
  height: 46px;
  padding: 0 6px 0 14px;
  border-radius: 16px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-sm); }

/* line 8, static/scss/components/_search.scss */
.search-input {
  width: 220px;
  border: none;
  outline: none;
  background: transparent;
  color: var(--color-text-primary);
  font-size: 14px; }

/* line 9, static/scss/components/_search.scss */
.search-input::placeholder {
  color: var(--color-text-tertiary); }

/* line 10, static/scss/components/_search.scss */
.search-btn {
  font-size: 20px;
  color: var(--gama-brand-blue-500);
  background: none;
  border: none;
  cursor: pointer;
  transition: all var(--transition-base); }
  /* line 10, static/scss/components/_search.scss */
  .search-btn:hover {
    transform: scale(1.1);
    color: var(--gama-brand-teal-500); }

/* line 11, static/scss/components/_search.scss */
.search-wrap {
  position: relative;
  flex: 1 1 auto; }
  /* line 11, static/scss/components/_search.scss */
  .search-wrap .search-input {
    width: 100%;
    padding: 0.5rem 1rem 0.5rem 2.5rem;
    background-color: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    outline: none;
    transition: var(--transition); }
    /* line 11, static/scss/components/_search.scss */
    .search-wrap .search-input:focus {
      border-color: var(--color-accent);
      box-shadow: 0 0 0 2px rgba(43, 211, 198, 0.2); }
  /* line 11, static/scss/components/_search.scss */
  .search-wrap .search-icon {
    position: absolute;
    left: 0.875rem;
    top: 0.625rem;
    color: #9ca3af; }

/* line 1, static/scss/components/_form.scss */
.form-page {
  display: flex;
  flex-direction: column; }

/* line 5, static/scss/components/_form.scss */
.form-body {
  padding: 2rem;
  align-items: center; }

/* line 9, static/scss/components/_form.scss */
.form-backup {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-secondary);
  margin: 20px; }

/* line 15, static/scss/components/_form.scss */
.form-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
  min-width: 50rem; }

/* line 23, static/scss/components/_form.scss */
.form-card-header {
  background: var(--gradient-brand);
  padding: 20px 24px 18px;
  border-bottom: 1px solid var(--color-border-default);
  display: flex;
  align-items: center;
  gap: 14px; }

/* line 31, static/scss/components/_form.scss */
.form-card-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--gama-brand-orange-500);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0; }
  /* line 40, static/scss/components/_form.scss */
  .form-card-icon i {
    font-size: 22px;
    color: var(--color-text-inverse); }

/* line 45, static/scss/components/_form.scss */
.form-card-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text-inverse); }

/* line 50, static/scss/components/_form.scss */
.form-card-sub {
  font-size: 12px;
  color: var(--color-text-tertiary);
  margin-top: 2px; }

/* line 55, static/scss/components/_form.scss */
.form-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px; }

/* line 61, static/scss/components/_form.scss */
.form-section-label {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding-bottom: 12px;
  border-bottom: 0.2rem solid var(--gama-brand-orange-500);
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%; }
  /* line 74, static/scss/components/_form.scss */
  .form-section-label::before {
    content: '';
    display: block;
    width: 0.4rem;
    height: 2rem;
    background: var(--gama-brand-teal-500); }

/* line 82, static/scss/components/_form.scss */
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  width: 100%; }

/* line 88, static/scss/components/_form.scss */
.form-grid.cols-2 {
  grid-template-columns: 1fr 1fr; }

/* line 91, static/scss/components/_form.scss */
.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  width: 100%; }

/* line 97, static/scss/components/_form.scss */
.form-help {
  font-size: 0.75rem;
  color: var(--color-text-tertiary); }

/* line 101, static/scss/components/_form.scss */
.form-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px; }

/* line 110, static/scss/components/_form.scss */
.req {
  color: var(--color-danger);
  margin-left: 2px; }

/* line 114, static/scss/components/_form.scss */
.form-wrap {
  position: relative; }
  /* line 116, static/scss/components/_form.scss */
  .form-wrap select {
    width: 100%;
    padding: 9px 36px 9px 36px;
    border: 1.5px solid var(--color-border);
    border-radius: 10px;
    font-size: 13.5px;
    color: var(--color-text-primary);
    background: var(--color-bg-surface-elevated);
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s; }
    /* line 130, static/scss/components/_form.scss */
    .form-wrap select:focus {
      border-color: var(--color-accent);
      background: var(--color-bg-surface-elevated);
      box-shadow: 0 0 0 3px rgba(43, 211, 198, 0.12); }
    /* line 135, static/scss/components/_form.scss */
    .form-wrap select:focus + .form-chevron {
      transform: rotate(180deg); }

/* line 140, static/scss/components/_form.scss */
.form-icon {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  color: var(--color-accent);
  pointer-events: none;
  transition: color 0.15s;
  z-index: 1; }

/* line 151, static/scss/components/_form.scss */
.form-input {
  width: 80%;
  padding: 9px 13px 9px 36px;
  border: 1.5px solid var(--color-border);
  border-radius: 10px;
  font-size: 13.5px;
  color: var(--color-text-primary);
  background: var(--color-bg-surface-elevated);
  outline: none;
  appearance: none;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s; }

/* line 163, static/scss/components/_form.scss */
.form-input:focus {
  border-color: var(--color-accent);
  background: var(--color-bg-surface-elevated);
  box-shadow: 0 0 0 3px rgba(43, 211, 198, 0.12); }

/* line 168, static/scss/components/_form.scss */
.form-input::placeholder {
  color: var(--color-text-secondary); }

/* line 171, static/scss/components/_form.scss */
.form-input.no-icon {
  padding-left: 13px; }

/* line 174, static/scss/components/_form.scss */
.form-chevron {
  position: absolute;
  right: 12px;
  font-size: 18px;
  color: var(--gama-brand-orange-500);
  pointer-events: none;
  z-index: 1;
  transition: transform 0.15s ease;
  top: 25%; }

/* line 184, static/scss/components/_form.scss */
.form-tenant-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.5rem; }

/* line 189, static/scss/components/_form.scss */
.form-password.visible {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px; }

/* line 194, static/scss/components/_form.scss */
.form-password {
  padding: 0 16px 16px;
  display: none; }

/* line 198, static/scss/components/_form.scss */
.form-divider {
  height: 1px;
  background: var(--color-border); }

/* line 202, static/scss/components/_form.scss */
.form-footer {
  padding: 16px 24px 20px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px; }

/* line 209, static/scss/components/_form.scss */
.form-input-area {
  width: 92%;
  height: 10rem;
  padding: 9px 13px;
  border-radius: 10px;
  font-size: 13.5px;
  color: var(--color-text-primary);
  background: var(--color-bg-surface-elevated);
  border: none;
  outline: none; }
  /* line 219, static/scss/components/_form.scss */
  .form-input-area:focus {
    border-color: var(--gama-brand-teal-500);
    box-shadow: 0 0 0 3px rgba(43, 211, 198, 0.12); }

/* line 224, static/scss/components/_form.scss */
textarea {
  background-color: var(--color-bg-surface-elevated);
  border-color: var(--color-border-default);
  width: 100%;
  resize: none; }
  /* line 230, static/scss/components/_form.scss */
  textarea:hover {
    border-color: var(--gama-brand-teal-500); }
  /* line 233, static/scss/components/_form.scss */
  textarea:focus {
    border-color: var(--gama-brand-teal-500); }

/* line 237, static/scss/components/_form.scss */
.form-error {
  color: var(--color-danger-400);
  background-color: var(--color-danger-100);
  border: 1px solid var(--color-danger-500);
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem; }

/* line 1, static/scss/components/_drawers.scss */
.drawer-nav {
  display: grid;
  gap: 10px;
  padding: 0 18px 18px; }

/* line 6, static/scss/components/_drawers.scss */
.drawer-nav__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border-radius: 14px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-soft);
  color: var(--color-text-primary);
  font-weight: 700; }

/* line 17, static/scss/components/_drawers.scss */
.drawer-nav__link:hover {
  transform: translateY(-1px);
  border-color: var(--color-border-accent-soft);
  box-shadow: var(--shadow-sm); }

/* line 22, static/scss/components/_drawers.scss */
.drawer-nav__icon {
  color: var(--color-primary);
  font-size: 18px; }

/* line 26, static/scss/components/_drawers.scss */
.drawer-overlay {
  position: fixed;
  inset: 0;
  background: var(--color-bg-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
  z-index: 60; }

/* line 35, static/scss/components/_drawers.scss */
.drawer-overlay--open {
  opacity: 1;
  pointer-events: auto; }

/* line 39, static/scss/components/_drawers.scss */
.side-drawer {
  position: fixed;
  top: 0;
  right: -420px;
  width: 390px;
  max-width: calc(100vw - 20px);
  height: 100vh;
  z-index: 70;
  transition: right 220ms ease; }

/* line 49, static/scss/components/_drawers.scss */
.side-drawer--open {
  right: 12px; }

/* line 52, static/scss/components/_drawers.scss */
.drawer-container {
  height: calc(100vh - 24px);
  margin: 12px 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: linear-gradient(180deg, var(--color-bg-surface) 0%, var(--color-bg-surface-alt) 100%);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xl); }

/* line 63, static/scss/components/_drawers.scss */
.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 18px 14px;
  border-bottom: 1px solid var(--color-border-soft); }

/* line 71, static/scss/components/_drawers.scss */
.drawer-title {
  margin: 0;
  font-family: "Oswald", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.4px;
  color: var(--color-primary);
  text-transform: uppercase; }

/* line 80, static/scss/components/_drawers.scss */
.drawer-todo-btn {
  margin: auto 18px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 16px;
  background: var(--gama-brand-teal-100);
  border: 1px solid var(--gama-brand-teal-500);
  color: var(--gama-brand-teal-500);
  font-weight: 800; }

/* line 93, static/scss/components/_drawers.scss */
.drawer-close-btn {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid var(--color-badge-red-border);
  background: var(--color-badge-red-bg);
  color: var(--color-badge-red-text);
  font-size: 1rem; }
  /* line 101, static/scss/components/_drawers.scss */
  .drawer-close-btn:hover {
    background: var(--color-danger-soft);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px); }

/* line 107, static/scss/components/_drawers.scss */
.drawer-body {
  flex: 1;
  overflow: auto;
  padding: 16px 18px; }

/* line 112, static/scss/components/_drawers.scss */
.drawer-body--custom-scroll::-webkit-scrollbar {
  width: 8px; }

/* line 115, static/scss/components/_drawers.scss */
.drawer-body--custom-scroll::-webkit-scrollbar-thumb {
  background: rgba(0, 80, 145, 0.18);
  border-radius: 999px; }

/* line 119, static/scss/components/_drawers.scss */
.drawer-profile-card {
  padding: 1.5rem;
  background: var(--color-bg-surface-alt);
  border-radius: 2rem;
  align-items: center;
  flex-direction: column;
  display: flex;
  margin-bottom: 1.5rem; }

/* line 128, static/scss/components/_drawers.scss */
.drawer-profile-card__avatar-wrap {
  border-width: 1px;
  border-radius: 1.5rem;
  overflow: hidden;
  justify-content: center;
  align-items: center;
  width: 5rem;
  height: 5rem;
  display: flex;
  margin-bottom: 1rem; }

/* line 139, static/scss/components/_drawers.scss */
.drawer-profile-card__avatar {
  object-fit: cover;
  width: 100%;
  height: 100%;
  max-width: 100%;
  display: block; }

/* line 146, static/scss/components/_drawers.scss */
.drawer-profile-card__initials {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  font-size: 2rem;
  color: var(--color-text-inverse);
  font-weight: 800;
  letter-spacing: 0.5px; }

/* line 156, static/scss/components/_drawers.scss */
.drawer-profile-card__name {
  color: var(--color-text-primary);
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.75rem;
  margin: 0; }

/* line 163, static/scss/components/_drawers.scss */
.drawer-profile-card__email {
  color: var(--color-text-tertiary);
  font-weight: 500;
  font-size: 0.75rem;
  line-height: 1rem;
  margin: 0; }

/* line 170, static/scss/components/_drawers.scss */
.drawer-todo-item-wrapper {
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  padding: 1rem;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 1rem;
  justify-content: space-between;
  align-items: center;
  display: flex; }
  /* line 179, static/scss/components/_drawers.scss */
  .drawer-todo-item-wrapper:hover {
    background: var(--color-bg-surface-alt); }

/* line 183, static/scss/components/_drawers.scss */
.drawer-todo-item {
  overflow: hidden;
  gap: 0.75rem;
  align-items: center;
  display: flex; }

/* line 189, static/scss/components/_drawers.scss */
.drawer-todo-circle {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
  flex-shrink: 0; }
  /* line 194, static/scss/components/_drawers.scss */
  .drawer-todo-circle i {
    color: var(--gama-brand-orange-500);
    font-size: 1.5rem;
    line-height: 2rem; }
    /* line 198, static/scss/components/_drawers.scss */
    .drawer-todo-circle i:hover {
      color: var(--gama-brand-teal-200); }
  /* line 203, static/scss/components/_drawers.scss */
  .drawer-todo-circle.complete i {
    color: var(--gama-brand-teal-500);
    font-size: 1.5rem;
    line-height: 2rem; }
    /* line 207, static/scss/components/_drawers.scss */
    .drawer-todo-circle.complete i:hover {
      color: var(--gama-brand-teal-200); }

/* line 213, static/scss/components/_drawers.scss */
.drawer-todo-text-wrapper {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-direction: column;
  display: flex; }

/* line 220, static/scss/components/_drawers.scss */
.drawer-todo-text {
  color: var(--color-text-primary);
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

/* line 229, static/scss/components/_drawers.scss */
.drawer-todo-text-complete {
  color: var(--color-text-tertiary);
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: line-through;
  line-height: 1.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

/* line 239, static/scss/components/_drawers.scss */
.drawer-todo-subtext {
  color: var(--color-text-secondary);
  letter-spacing: -0.05em;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 10px; }

/* line 246, static/scss/components/_drawers.scss */
.drawer-todo-form {
  padding: 16px;
  margin: 16px 18px 14px; }

/* line 250, static/scss/components/_drawers.scss */
.drawer-todo-form__input {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid var(--color-border-default);
  background: var(--color-bg-surface);
  outline: none;
  color: var(--color-text-primary); }

/* line 260, static/scss/components/_drawers.scss */
.drawer-todo-form__input:focus {
  border-color: var(--color-border-accent-soft);
  box-shadow: 0 0 0 4px rgba(80, 188, 189, 0.14); }

/* line 264, static/scss/components/_drawers.scss */
.drawer-todo-form__actions {
  display: flex;
  gap: 10px;
  margin-top: 10px; }

/* line 269, static/scss/components/_drawers.scss */
.drawer-todo-form__date {
  flex: 1;
  height: 42px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid var(--color-border-default);
  background: var(--color-bg-surface);
  color: var(--color-text-primary); }

/* line 278, static/scss/components/_drawers.scss */
.drawer-todo-form__submit {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  color: #fff;
  box-shadow: var(--shadow-sm); }

/* line 287, static/scss/components/_drawers.scss */
.drawer-todo-form__submit:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-md); }

/* line 291, static/scss/components/_drawers.scss */
.drawer-todo-section {
  margin-bottom: 18px; }

/* line 294, static/scss/components/_drawers.scss */
.drawer-todo-section__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  color: var(--color-text-primary);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px; }

/* line 305, static/scss/components/_drawers.scss */
.drawer-todo-section__bullet {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block; }

/* line 311, static/scss/components/_drawers.scss */
.drawer-todo-section__bullet--teal {
  background: var(--color-accent);
  box-shadow: 0 0 0 5px rgba(80, 188, 189, 0.14); }

/* line 315, static/scss/components/_drawers.scss */
.drawer-todo-section__bullet--warning {
  background: var(--color-danger);
  box-shadow: 0 0 0 5px rgba(189, 80, 80, 0.14); }

/* line 319, static/scss/components/_drawers.scss */
.drawer-todo-list-items {
  display: grid;
  gap: 10px; }

/* line 323, static/scss/components/_drawers.scss */
.drawer-empty-state {
  display: grid;
  place-items: center;
  gap: 10px;
  padding: 28px 18px;
  text-align: center; }

/* line 330, static/scss/components/_drawers.scss */
.drawer-empty-state__icon {
  font-size: 28px;
  color: var(--color-text-tertiary); }

/* line 334, static/scss/components/_drawers.scss */
.drawer-empty-state__text {
  margin: 0;
  color: var(--color-text-secondary);
  font-weight: 600; }

/* line 339, static/scss/components/_drawers.scss */
.drawer-alert-card {
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  padding: 1rem;
  background: var(--gama-brand-orange-100);
  border: 1px solid var(--gama-brand-orange-200);
  margin-bottom: 1rem; }

/* line 348, static/scss/components/_drawers.scss */
.drawer-alert-card__content {
  gap: 0.75rem;
  align-items: center;
  display: flex; }

/* line 353, static/scss/components/_drawers.scss */
.drawer-ping-dot {
  width: 0.5rem;
  height: 0.5rem;
  margin-top: 0.25rem;
  border-radius: 9999px;
  background-color: var(--gama-brand-orange-500); }

/* line 360, static/scss/components/_drawers.scss */
.drawer-alert-card__tag {
  letter-spacing: -0.05em;
  color: var(--gama-brand-orange-800);
  text-transform: uppercase;
  font-weight: 900;
  font-size: 0.75rem;
  line-height: 1rem; }

/* line 368, static/scss/components/_drawers.scss */
.drawer-alert-card__text {
  font-weight: 700;
  color: var(--color-text-primary);
  font-size: 0.875rem;
  line-height: 1.25rem;
  margin-top: 0.25rem; }

/* line 375, static/scss/components/_drawers.scss */
.drawer-alert-card__action {
  font-weight: 900;
  color: var(--gama-brand-orange-700);
  font-size: 10px;
  display: inline-block;
  margin-top: 0.75rem; }

/* line 1, static/scss/components/_tables.scss */
.list-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  text-align: left;
  background: var(--color-bg-surface);
  border-radius: 0.5rem;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1); }

/* line 10, static/scss/components/_tables.scss */
.list-table thead {
  background-color: var(--gama-brand-blue-500); }

/* line 13, static/scss/components/_tables.scss */
.list-table thead tr {
  border-bottom: 1px solid var(--color-border-default); }

/* line 16, static/scss/components/_tables.scss */
.list-table th:first-child {
  border-top-left-radius: 0.5rem; }

/* line 19, static/scss/components/_tables.scss */
.list-table th:last-child {
  border-top-right-radius: 0.5rem; }

/* line 22, static/scss/components/_tables.scss */
.list-table th {
  padding: 0.875rem 1.5rem;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-inverse);
  font-weight: 700; }

/* line 30, static/scss/components/_tables.scss */
.list-table td {
  padding: 1rem 1.5rem;
  font-size: 0.875rem;
  color: var(--color-text-primary);
  border-bottom: 1px solid var(--color-border-default); }

/* line 36, static/scss/components/_tables.scss */
.table-actions {
  color: inherit;
  display: flex;
  align-items: center;
  gap: 11px; }

/* line 42, static/scss/components/_tables.scss */
.table-description {
  color: var(--color-text-tertiary);
  font-style: italic;
  font-weight: 500;
  font-size: 11px;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden; }

/* line 52, static/scss/components/_tables.scss */
.table-manufacturer {
  font-weight: 700;
  font-size: 16px;
  color: var(--gama-brand-blue-500); }

/* line 1, static/scss/components/_badges.scss */
.status-badge.enable {
  background-color: var(--gama-brand-teal-200);
  color: var(--gama-brand-teal-700);
  border: 1px solid var(--gama-brand-teal-500); }

/* line 6, static/scss/components/_badges.scss */
.status-badge.disable {
  background-color: var(--color-text-tertiary);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-text-tertiary); }

/* line 12, static/scss/components/_badges.scss */
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700; }

/* line 13, static/scss/components/_badges.scss */
.status-badge.new {
  background-color: #d1fae5;
  color: #065f46; }

/* line 14, static/scss/components/_badges.scss */
.status-badge.default {
  background-color: #f1f5f9;
  color: #475569; }

/* line 15, static/scss/components/_badges.scss */
.status-badge.warning {
  background-color: var(--color-amber-soft);
  color: var(--color-amber-dark); }

/* line 16, static/scss/components/_badges.scss */
.status-badge.danger {
  background-color: var(--color-rose-soft);
  color: var(--color-rose-dark); }

/* line 17, static/scss/components/_badges.scss */
.role-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700; }
  /* line 19, static/scss/components/_badges.scss */
  .role-badge.admin {
    background-color: var(--gama-brand-orange-100);
    color: var(--gama-brand-orange-500);
    border: 1px solid var(--gama-brand-orange-500); }
  /* line 20, static/scss/components/_badges.scss */
  .role-badge.agent {
    background-color: var(--gama-brand-blue-100);
    color: var(--gama-brand-blue-500);
    border: 1px solid var(--gama-brand-blue-500); }
  /* line 21, static/scss/components/_badges.scss */
  .role-badge.user {
    background-color: var(--gama-brand-teal-100);
    color: var(--gama-brand-teal-500);
    border: 1px solid var(--gama-brand-teal-500); }
  /* line 22, static/scss/components/_badges.scss */
  .role-badge.other {
    background-color: var(--color-badge-purple-bg);
    color: var(--color-badge-purple-text);
    border: 1px solid var(--color-badge-purple-text); }

/* line 24, static/scss/components/_badges.scss */
.status-wrap {
  margin-top: 0.5rem; }

/* line 27, static/scss/components/_badges.scss */
.status-dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  flex-shrink: 0; }
  /* line 33, static/scss/components/_badges.scss */
  .status-dot.active {
    background: var(--gama-brand-teal-500);
    box-shadow: 0 0 0 3px var(--gama-brand-teal-100); }
  /* line 35, static/scss/components/_badges.scss */
  .status-dot.inactive {
    background: var(--color-danger-500);
    box-shadow: 0 0 0 3px var(--color-danger-100); }

/* line 38, static/scss/components/_badges.scss */
.status-label {
  margin-left: 0.5rem;
  color: var(--color-text-secondary);
  font-style: italic;
  line-height: 1.25rem; }

/* line 44, static/scss/components/_badges.scss */
.color-indicator-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700; }

/* line 52, static/scss/components/_badges.scss */
.color-swatch-dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  flex-shrink: 0;
  margin-right: 0.5rem; }

@keyframes confirm-delete-fade-in {
  from {
    opacity: 0;
    transform: translateY(8px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

/* line 10, static/scss/components/_delete.scss */
.confirm-delete {
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem; }
  /* line 17, static/scss/components/_delete.scss */
  .confirm-delete__card {
    width: 100%;
    max-width: 26rem;
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
    animation: confirm-delete-fade-in var(--transition-slow); }
  /* line 29, static/scss/components/_delete.scss */
  .confirm-delete__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: var(--color-danger);
    color: var(--color-text-inverse); }
  /* line 38, static/scss/components/_delete.scss */
  .confirm-delete__header-icon {
    font-size: 1.5rem; }
  /* line 42, static/scss/components/_delete.scss */
  .confirm-delete__header-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700; }
  /* line 49, static/scss/components/_delete.scss */
  .confirm-delete__body {
    padding: 2rem;
    text-align: center; }
  /* line 54, static/scss/components/_delete.scss */
  .confirm-delete__icon-circle {
    width: 5rem;
    height: 5rem;
    margin: 0 auto 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-danger-soft);
    color: var(--color-danger);
    box-shadow: inset 0 2px 4px rgba(15, 23, 42, 0.08); }
    /* line 66, static/scss/components/_delete.scss */
    .confirm-delete__icon-circle i {
      font-size: 2.25rem; }
  /* line 71, static/scss/components/_delete.scss */
  .confirm-delete__lead {
    margin: 0 0 0.5rem;
    color: var(--color-text-secondary);
    font-size: 0.9375rem; }
  /* line 77, static/scss/components/_delete.scss */
  .confirm-delete__target {
    margin: 0 0 1rem;
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--color-text-primary); }
  /* line 84, static/scss/components/_delete.scss */
  .confirm-delete__warning {
    text-align: left;
    padding: 1rem;
    background: var(--color-warning-soft);
    border: 1px solid var(--color-warning);
    border-radius: var(--radius-md); }
    /* line 91, static/scss/components/_delete.scss */
    .confirm-delete__warning p {
      margin: 0;
      font-size: 0.6875rem;
      line-height: 1.5;
      font-weight: 500;
      color: var(--color-warning-hover); }
    /* line 99, static/scss/components/_delete.scss */
    .confirm-delete__warning i {
      margin-right: 0.25rem; }
  /* line 105, static/scss/components/_delete.scss */
  .confirm-delete__footer {
    display: flex;
    gap: 0.75rem;
    padding: 1.25rem 1.5rem;
    background: var(--color-bg-surface-alt);
    border-top: 1px solid var(--color-border-soft); }
  /* line 113, static/scss/components/_delete.scss */
  .confirm-delete__cancel {
    flex: 1;
    padding: 0.75rem 1.5rem;
    text-align: center;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: color var(--transition-fast), background var(--transition-fast); }
    /* line 124, static/scss/components/_delete.scss */
    .confirm-delete__cancel:hover {
      color: var(--color-text-primary);
      background: var(--color-border-soft); }
    /* line 129, static/scss/components/_delete.scss */
    .confirm-delete__cancel:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  /* line 135, static/scss/components/_delete.scss */
  .confirm-delete__confirm {
    flex: 1;
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-text-inverse);
    background: var(--color-danger);
    border: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
    cursor: pointer;
    transition: background var(--transition-fast), transform var(--transition-fast); }
    /* line 148, static/scss/components/_delete.scss */
    .confirm-delete__confirm:hover {
      background: var(--color-danger-hover);
      transform: translateY(-1px); }
    /* line 153, static/scss/components/_delete.scss */
    .confirm-delete__confirm:active {
      background: var(--color-danger-active);
      transform: translateY(0); }
    /* line 158, static/scss/components/_delete.scss */
    .confirm-delete__confirm:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }

/* Sidebar */
/* line 2, static/scss/layout/_sidebar.scss */
.app-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--sidebar-width);
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background: linear-gradient(180deg, var(--color-sidebar-bg) 0%, var(--color-sidebar-bg-hover) 100%);
  box-shadow: 8px 0 30px rgba(0, 0, 0, 0.08);
  z-index: 40; }

/* line 18, static/scss/layout/_sidebar.scss */
.sidebar-logo-container {
  width: 4rem;
  height: 4rem;
  display: grid;
  place-items: center;
  margin-bottom: 1rem; }

/* line 26, static/scss/layout/_sidebar.scss */
.sidebar-logo {
  width: 3rem;
  height: 3rem;
  object-fit: contain; }

/* line 32, static/scss/layout/_sidebar.scss */
.sidebar-logo:hover {
  transform: scale(1.1); }

/* line 36, static/scss/layout/_sidebar.scss */
.sidebar-nav-link {
  width: 100%;
  min-height: 54px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 8px;
  border-radius: 16px;
  color: rgba(255, 255, 255, 0.86);
  transition: all var(--transition-base); }

/* line 50, static/scss/layout/_sidebar.scss */
.sidebar-nav-link i {
  font-size: 20px; }

/* line 54, static/scss/layout/_sidebar.scss */
.sidebar-nav-link span {
  font-size: 11px;
  font-weight: 700;
  text-align: center;
  line-height: 1.1; }

/* line 61, static/scss/layout/_sidebar.scss */
.sidebar-nav-link:hover,
.sidebar-nav-link.active {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  transform: translateY(-1px); }

/* line 70, static/scss/layout/_sidebar.scss */
.logout-btn {
  margin: auto 18px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 16px;
  background: var(--color-highlight-soft);
  border: 1px solid rgba(243, 149, 74, 0.18);
  color: var(--color-highlight);
  font-weight: 800; }

/* line 84, static/scss/layout/_sidebar.scss */
.logout-btn:hover {
  background: var(--color-highlight-soft-2);
  transform: translateY(-1px); }

/* line 88, static/scss/layout/_sidebar.scss */
.spacer {
  flex-grow: 0.9; }

/* line 2, static/scss/layout/_header.scss */
.app-header {
  position: sticky;
  top: 0;
  z-index: 30;
  min-height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--color-header-bg);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--color-border-strong);
  padding-left: 1rem;
  padding-right: 1rem; }

/* line 3, static/scss/layout/_header.scss */
.header-nav {
  display: flex;
  align-items: center;
  gap: 1px;
  min-width: 0;
  overflow-x: auto;
  padding-bottom: 2px; }

/* line 4, static/scss/layout/_header.scss */
.header-nav::-webkit-scrollbar {
  height: 6px; }

/* line 5, static/scss/layout/_header.scss */
.header-nav::-webkit-scrollbar-thumb {
  background: rgba(0, 80, 145, 0.18);
  border-radius: 999px; }

/* line 6, static/scss/layout/_header.scss */
.nav-tab,
.nav-tab-group {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 3.5rem;
  padding: 0 14px;
  border-radius: 0 14px 0 14px;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: all var(--transition-base); }

/* line 8, static/scss/layout/_header.scss */
.nav-tab--active,
.nav-tab-group--active {
  background: linear-gradient(135deg, var(--color-primary-soft), var(--color-accent-soft));
  border-bottom: 2px solid var(--color-border-accent);
  box-shadow: var(--shadow-sm); }

/* line 10, static/scss/layout/_header.scss */
.nav-tab--inactive,
.nav-tab-group--inactive {
  background: var(--color-bg-surface-alt);
  color: var(--color-text-secondary); }

/* line 12, static/scss/layout/_header.scss */
.nav-tab--inactive:hover,
.nav-tab-group--inactive:hover {
  transform: translateY(-1px);
  color: var(--color-text-primary);
  box-shadow: var(--shadow-sm); }
  /* line 14, static/scss/layout/_header.scss */
  .nav-tab--inactive:hover a span,
  .nav-tab-group--inactive:hover a span {
    color: var(--gama-brand-teal-500); }

/* line 16, static/scss/layout/_header.scss */
.nav-tab__icon {
  font-size: 18px;
  color: var(--color-primary); }

/* line 17, static/scss/layout/_header.scss */
.nav-tab__label,
.nav-tab-group__title {
  color: var(--gama-brand-blue-500);
  font-size: 14px;
  font-weight: 700; }

/* line 19, static/scss/layout/_header.scss */
.nav-tab-group {
  padding-right: 8px; }

/* line 20, static/scss/layout/_header.scss */
.nav-tab-group__link {
  display: flex;
  align-items: center;
  height: 100%; }

/* line 21, static/scss/layout/_header.scss */
.nav-tab-group__close-btn {
  width: 28px;
  height: 28px;
  margin-left: 8px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--color-text-tertiary);
  cursor: pointer; }

/* line 22, static/scss/layout/_header.scss */
.nav-tab-group__close-btn:hover {
  background: var(--color-danger-border);
  color: var(--color-badge-red-text);
  border-color: var(--color-danger); }

/* line 23, static/scss/layout/_header.scss */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0; }

/* line 24, static/scss/layout/_header.scss */
.badge-dot, .notification-badge-count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--color-highlight);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center; }

/* line 25, static/scss/layout/_header.scss */
.profile-avatar,
.profile-initials {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  color: var(--color-text-inverse);
  font-weight: 800;
  letter-spacing: 0.5px; }

/* line 1, static/scss/layout/_dashboard.scss */
.dashboard-page {
  display: flex;
  flex-direction: column;
  gap: 2rem; }

/* line 2, static/scss/layout/_dashboard.scss */
.dashboard-header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  padding-bottom: 1.5rem; }

/* line 4, static/scss/layout/_dashboard.scss */
.dashboard-title {
  font-size: 1.875rem;
  font-weight: 900;
  color: var(--color-text-dark, #111827);
  letter-spacing: -0.025em;
  margin: 0; }

/* line 5, static/scss/layout/_dashboard.scss */
.dashboard-subtitle {
  font-size: 0.875rem;
  color: var(--color-text-light, #9ca3af);
  font-weight: 500;
  margin-top: 0.25rem;
  margin-bottom: 0; }

/* line 6, static/scss/layout/_dashboard.scss */
.dashboard-date-pill {
  background-color: #ffffff;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border, #e5e7eb); }

/* line 7, static/scss/layout/_dashboard.scss */
.dashboard-date-value {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-primary, #166A63); }

/* line 8, static/scss/layout/_dashboard.scss */
.dashboard-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem; }

/* line 10, static/scss/layout/_dashboard.scss */
.stat-card {
  background-color: #ffffff;
  padding: 1.25rem;
  border-radius: 1rem;
  border-bottom: 4px solid;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: var(--transition); }

/* line 11, static/scss/layout/_dashboard.scss */
.stat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md); }

/* line 12, static/scss/layout/_dashboard.scss */
.stat-card.stat-border-teal {
  border-bottom-color: #2dd4bf; }

/* line 13, static/scss/layout/_dashboard.scss */
.stat-card.stat-border-slate {
  border-bottom-color: #334155; }

/* line 14, static/scss/layout/_dashboard.scss */
.stat-card.stat-border-indigo {
  border-bottom-color: #6366f1; }

/* line 15, static/scss/layout/_dashboard.scss */
.stat-card.stat-border-blue {
  border-bottom-color: #3b82f6; }

/* line 16, static/scss/layout/_dashboard.scss */
.stat-card.stat-border-orange {
  border-bottom-color: #f97316; }

/* line 17, static/scss/layout/_dashboard.scss */
.stat-value {
  font-size: 1.5rem;
  font-weight: 900;
  color: #1e293b;
  line-height: 1.2; }

/* line 18, static/scss/layout/_dashboard.scss */
.stat-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center; }

/* line 19, static/scss/layout/_dashboard.scss */
.stat-icon-teal {
  background-color: var(--color-teal-soft);
  color: var(--color-teal-dark); }

/* line 20, static/scss/layout/_dashboard.scss */
.stat-icon-slate {
  background-color: #f1f5f9;
  color: #334155; }

/* line 21, static/scss/layout/_dashboard.scss */
.stat-icon-indigo {
  background-color: #eef2ff;
  color: #4f46e5; }

/* line 22, static/scss/layout/_dashboard.scss */
.stat-icon-blue {
  background-color: var(--color-blue-soft);
  color: var(--color-blue-dark); }

/* line 23, static/scss/layout/_dashboard.scss */
.stat-icon-orange {
  background-color: #fff7ed;
  color: #ea580c; }

/* line 24, static/scss/layout/_dashboard.scss */
.micro-label {
  font-size: 10px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block; }

/* line 25, static/scss/layout/_dashboard.scss */
.dashboard-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }

/* line 27, static/scss/layout/_dashboard.scss */
.dash-card {
  background-color: #ffffff;
  border-radius: 1rem;
  border: 1px solid var(--color-border, #e5e7eb);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  overflow: hidden; }

/* line 28, static/scss/layout/_dashboard.scss */
.dash-card-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  justify-content: space-between;
  align-items: center; }

/* line 29, static/scss/layout/_dashboard.scss */
.dash-card-header-left {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

/* line 30, static/scss/layout/_dashboard.scss */
.dash-card-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center; }

/* line 31, static/scss/layout/_dashboard.scss */
.dash-card-icon i {
  font-size: 1.25rem; }

/* line 32, static/scss/layout/_dashboard.scss */
.dash-card-icon.teal {
  background-color: var(--color-teal-soft);
  color: var(--color-teal-dark); }

/* line 33, static/scss/layout/_dashboard.scss */
.dash-card-icon.rose {
  background-color: var(--color-rose-soft);
  color: var(--color-rose-dark); }

/* line 34, static/scss/layout/_dashboard.scss */
.dash-card-icon.blue {
  background-color: var(--color-blue-soft);
  color: var(--color-blue-dark); }

/* line 35, static/scss/layout/_dashboard.scss */
.dash-card-icon.amber {
  background-color: var(--color-amber-soft);
  color: var(--color-amber-dark); }

/* line 36, static/scss/layout/_dashboard.scss */
.dash-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text-dark, #111827);
  margin: 0; }

/* line 37, static/scss/layout/_dashboard.scss */
.dash-chart {
  padding: 1.5rem;
  position: relative;
  height: 250px; }

/* line 38, static/scss/layout/_dashboard.scss */
.dash-scroll-list {
  padding: 1.25rem;
  overflow-y: auto;
  max-height: 250px;
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

/* line 39, static/scss/layout/_dashboard.scss */
.dash-scroll-list.tall {
  max-height: 285px; }

/* line 40, static/scss/layout/_dashboard.scss */
.dash-alert-card {
  padding: 0.875rem 1rem;
  border-radius: 0.75rem;
  border-left: 4px solid;
  background-color: #f9fafb; }

/* line 41, static/scss/layout/_dashboard.scss */
.dash-alert-card.severity-error {
  border-left-color: var(--color-rose-dark);
  background-color: var(--color-rose-soft); }

/* line 42, static/scss/layout/_dashboard.scss */
.dash-alert-card.severity-warning {
  border-left-color: var(--color-amber-dark);
  background-color: var(--color-amber-soft); }

/* line 43, static/scss/layout/_dashboard.scss */
.dash-alert-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.25rem; }

/* line 44, static/scss/layout/_dashboard.scss */
.dash-alert-host {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--color-text-dark, #111827); }

/* line 45, static/scss/layout/_dashboard.scss */
.dash-alert-time {
  font-size: 10px;
  color: #64748b;
  font-weight: 600; }

/* line 46, static/scss/layout/_dashboard.scss */
.dash-alert-msg {
  font-size: 0.8125rem;
  color: #334155;
  margin: 0;
  line-height: 1.4; }

/* line 47, static/scss/layout/_dashboard.scss */
.dash-empty-text {
  text-align: center;
  color: var(--color-text-light, #9ca3af);
  font-size: 0.875rem;
  padding: 2rem 0;
  margin: 0; }

/* line 48, static/scss/layout/_dashboard.scss */
.dash-contract-item {
  padding: 0.75rem;
  border-radius: 0.5rem;
  background-color: #f9fafb;
  border: 1px solid #f1f5f9; }

/* line 49, static/scss/layout/_dashboard.scss */
.dash-contract-top {
  display: flex;
  justify-content: space-between;
  align-items: center; }

/* line 50, static/scss/layout/_dashboard.scss */
.dash-contract-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-primary, #166A63);
  text-decoration: none; }

/* line 51, static/scss/layout/_dashboard.scss */
.dash-contract-name:hover {
  text-decoration: underline; }

/* line 52, static/scss/layout/_dashboard.scss */
.dash-contract-sub {
  font-size: 0.75rem;
  color: #64748b;
  margin-top: 0.25rem;
  margin-bottom: 0; }

/* line 53, static/scss/layout/_dashboard.scss */
.dash-empty-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.5rem;
  color: var(--color-text-light, #9ca3af); }

/* line 54, static/scss/layout/_dashboard.scss */
.dash-empty-block i {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  color: var(--color-accent, #2BD3C6); }

/* line 55, static/scss/layout/_dashboard.scss */
.dash-empty-block p {
  font-size: 0.875rem;
  font-weight: 600;
  margin: 0; }

/* line 1, static/scss/pages/_contacts.scss */
.avatar-box {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.75rem;
  border: 1px solid transparent;
  transition: border-color 0.2s; }
  /* line 13, static/scss/pages/_contacts.scss */
  .table-row:hover .avatar-box {
    border-color: rgba(43, 211, 198, 0.3); }
  /* line 16, static/scss/pages/_contacts.scss */
  .avatar-box img {
    width: stretch; }
  /* line 17, static/scss/pages/_contacts.scss */
  .avatar-box.avatar-primary {
    background-color: var(--color-sidebar-bg);
    color: #fff; }
  /* line 18, static/scss/pages/_contacts.scss */
  .avatar-box.avatar-default {
    background-color: #f3f4f6;
    color: #6b7280; }

/* line 20, static/scss/pages/_contacts.scss */
.avatar-preview {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.75rem;
  border: 1px solid transparent;
  transition: border-color 0.2s; }
  /* line 32, static/scss/pages/_contacts.scss */
  .avatar-preview img {
    width: stretch; }

/* line 34, static/scss/pages/_contacts.scss */
.contact-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: #111827;
  display: flex;
  align-items: center;
  gap: 0.375rem; }
  /* line 42, static/scss/pages/_contacts.scss */
  .contact-name .star-icon {
    color: var(--color-accent); }

/* line 47, static/scss/pages/_contacts.scss */
.contact-label {
  font-size: 10px;
  color: #9ca3af;
  font-weight: 600; }

/* line 53, static/scss/pages/_contacts.scss */
.email-link {
  font-size: 0.875rem;
  color: #4b5563;
  display: flex;
  align-items: center;
  text-decoration: none; }
  /* line 60, static/scss/pages/_contacts.scss */
  .email-link:hover {
    color: var(--color-sidebar-bg); }
  /* line 64, static/scss/pages/_contacts.scss */
  .email-link .email-icon {
    margin-right: 0.5rem;
    color: var(--color-accent); }

/* line 70, static/scss/pages/_contacts.scss */
.phones-col {
  display: flex;
  flex-direction: column;
  gap: 0.125rem; }
  /* line 75, static/scss/pages/_contacts.scss */
  .phones-col .phone-link {
    color: #6b7280;
    display: flex;
    align-items: center;
    font-size: 0.75rem;
    text-decoration: none; }
    /* line 82, static/scss/pages/_contacts.scss */
    .phones-col .phone-link:hover {
      color: var(--color-sidebar-bg); }
    /* line 86, static/scss/pages/_contacts.scss */
    .phones-col .phone-link .phone-icon {
      margin-right: 0.375rem;
      color: #d1d5db; }
  /* line 92, static/scss/pages/_contacts.scss */
  .phones-col .mobile-link {
    color: #4b5563;
    font-weight: 600;
    display: flex;
    align-items: center;
    font-size: 0.75rem;
    text-decoration: none; }
    /* line 100, static/scss/pages/_contacts.scss */
    .phones-col .mobile-link:hover {
      color: var(--color-accent); }
    /* line 104, static/scss/pages/_contacts.scss */
    .phones-col .mobile-link .mobile-icon {
      margin-right: 0.375rem;
      color: var(--color-accent); }

/* line 1, static/scss/pages/_contracts.scss */
.contract-page {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 8, static/scss/pages/_contracts.scss */
.contract-header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
  gap: 1rem; }
  /* line 17, static/scss/pages/_contracts.scss */
  .contract-header .contract-header-left {
    display: flex;
    align-items: center;
    gap: 1rem; }
  /* line 23, static/scss/pages/_contracts.scss */
  .contract-header .contract-icon-box {
    width: 3.5rem;
    height: 3.5rem;
    background-color: #005091;
    color: #fff;
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.2); }
    /* line 34, static/scss/pages/_contracts.scss */
    .contract-header .contract-icon-box .icon-3xl {
      font-size: 1.875rem; }
  /* line 37, static/scss/pages/_contracts.scss */
  .contract-header .contract-title {
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--color-text-primary);
    letter-spacing: -0.025em; }
  /* line 44, static/scss/pages/_contracts.scss */
  .contract-header .contract-subtitle {
    font-size: 0.875rem;
    color: #6b7280;
    font-weight: 500;
    font-style: italic; }

/* line 52, static/scss/pages/_contracts.scss */
.contracts-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }

/* line 58, static/scss/pages/_contracts.scss */
.contract-card {
  background-color: var(--color-bg-surface);
  border-radius: 1.5rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border-default);
  overflow: hidden;
  /* Card Stats Segment */ }
  /* line 65, static/scss/pages/_contracts.scss */
  .contract-card .card-header {
    padding: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--color-border-default);
    background: var(--gradient-brand); }
    /* line 75, static/scss/pages/_contracts.scss */
    .contract-card .card-header .card-header-left {
      display: flex;
      align-items: center;
      gap: 1rem; }
    /* line 81, static/scss/pages/_contracts.scss */
    .contract-card .card-header .card-icon {
      width: 3rem;
      height: 3rem;
      border-radius: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--gama-brand-teal-500);
      color: var(--color-text-inverse);
      transition: var(--transition);
      box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06); }
      /* line 93, static/scss/pages/_contracts.scss */
      .contract-card .card-header .card-icon .icon-2xl {
        font-size: 1.5rem; }
    /* line 96, static/scss/pages/_contracts.scss */
    .contract-card .card-header .card-title-row {
      display: flex;
      align-items: center;
      gap: 0.75rem; }
    /* line 102, static/scss/pages/_contracts.scss */
    .contract-card .card-header .contract-name {
      font-size: 1.125rem;
      font-weight: 900;
      color: var(--color-text-inverse);
      letter-spacing: -0.025em; }
    /* line 109, static/scss/pages/_contracts.scss */
    .contract-card .card-header .status-badge {
      display: inline-flex;
      align-items: center;
      padding: 0.25rem 0.75rem;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
      background-color: var(--gama-brand-teal-100);
      color: var(--gama-brand-teal-700);
      border: 1px solid var(--gama-brand-teal-700); }
      /* line 120, static/scss/pages/_contracts.scss */
      .contract-card .card-header .status-badge i {
        margin-right: 0.25rem; }
      /* line 121, static/scss/pages/_contracts.scss */
      .contract-card .card-header .status-badge.draft {
        background-color: var(--color-neutral-200);
        color: var(--color-neutral-500);
        border: 1px solid var(--color-neutrale-500); }
      /* line 126, static/scss/pages/_contracts.scss */
      .contract-card .card-header .status-badge.terminated {
        background-color: var(--color-danger-200);
        color: var(--color-danger-700);
        border: 1px solid var(--color-danger-700); }
    /* line 133, static/scss/pages/_contracts.scss */
    .contract-card .card-header .contract-ref {
      font-size: 11px;
      color: var(--color-text-inverse);
      font-weight: 700;
      letter-spacing: 0.05em;
      text-transform: uppercase; }
    /* line 141, static/scss/pages/_contracts.scss */
    .contract-card .card-header .card-actions {
      display: flex;
      align-items: center;
      gap: 0.5rem; }
  /* line 149, static/scss/pages/_contracts.scss */
  .contract-card .card-stats {
    padding: 1.25rem 1.5rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    background-color: var(--color-bg-surface); }
    /* line 157, static/scss/pages/_contracts.scss */
    .contract-card .card-stats .stat-block {
      display: flex;
      flex-direction: column;
      gap: 0.25rem; }
      /* line 162, static/scss/pages/_contracts.scss */
      .contract-card .card-stats .stat-block.stat-block-right {
        padding-left: 1.5rem;
        text-align: right;
        border-left: 2px solid var(--gama-brand-orange-500); }
      /* line 167, static/scss/pages/_contracts.scss */
      .contract-card .card-stats .stat-block.stat-block-middle {
        padding-left: 1.5rem;
        border-left: 2px solid var(--gama-brand-orange-500); }
    /* line 173, static/scss/pages/_contracts.scss */
    .contract-card .card-stats .stat-label {
      font-size: 10px;
      font-weight: 900;
      color: var(--color-text-secondary);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      display: flex;
      align-items: center;
      gap: 0.25rem; }
    /* line 184, static/scss/pages/_contracts.scss */
    .contract-card .card-stats .stat-value-sm {
      font-size: 0.875rem;
      font-weight: 900;
      color: var(--color-text-primary); }
    /* line 190, static/scss/pages/_contracts.scss */
    .contract-card .card-stats .stat-price {
      font-size: 1.5rem;
      font-weight: 900;
      color: var(--gama-brand-blue-500); }
    /* line 196, static/scss/pages/_contracts.scss */
    .contract-card .card-stats .stat-split {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.5rem;
      padding-left: 1.5rem;
      border-left: 2px solid var(--gama-brand-orange-500); }

/* line 205, static/scss/pages/_contracts.scss */
.action-group {
  display: flex;
  align-items: center;
  border-radius: 0.75rem;
  padding: 0.25rem; }

/* line 211, static/scss/pages/_contracts.scss */
.toggle-btn-contract {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--gama-brand-blue-500);
  color: var(--color-text-inverse);
  border-radius: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.2);
  border: none;
  cursor: pointer; }
  /* line 224, static/scss/pages/_contracts.scss */
  .toggle-btn-contract:hover {
    background-color: var(--gama-brand-blue-600); }
  /* line 228, static/scss/pages/_contracts.scss */
  .toggle-btn-contract i {
    font-size: 1.5rem;
    transition: transform 0.2s; }

/* line 234, static/scss/pages/_contracts.scss */
.progress-row {
  display: flex;
  align-items: center;
  gap: 0.75rem; }
  /* line 239, static/scss/pages/_contracts.scss */
  .progress-row .progress-track {
    flex: 1 1 auto;
    height: 0.5rem;
    background-color: var(--color-bg-surface);
    border-radius: 9999px;
    overflow: hidden;
    max-width: 60px; }
  /* line 247, static/scss/pages/_contracts.scss */
  .progress-row .progress-fill-blue {
    height: 100%;
    background-color: var(--gama-brand-blue-500); }
  /* line 248, static/scss/pages/_contracts.scss */
  .progress-row .progress-fill-orange {
    height: 100%;
    background-color: var(--gama-brand-orange-500); }
  /* line 249, static/scss/pages/_contracts.scss */
  .progress-row .progress-fill-empty {
    height: 100%;
    background-color: var(--color-bg-surface);
    width: 0%; }

/* line 251, static/scss/pages/_contracts.scss */
.icon-blue {
  color: var(--gama-brand-blue-500); }

/* line 252, static/scss/pages/_contracts.scss */
.icon-orange {
  color: var(--gama-brand-orange-500); }

/* line 253, static/scss/pages/_contracts.scss */
.icon-btn {
  padding: 0.5rem;
  font-size: 1.5rem;
  line-height: 2rem; }
  /* line 257, static/scss/pages/_contracts.scss */
  .icon-btn i {
    color: var(--color-text-inverse); }

/* Details Panel (Expanded) */
/* line 262, static/scss/pages/_contracts.scss */
.details-panel {
  border-top: 1px solid var(--color-border-default);
  background-color: rgba(248, 250, 252, 0.5);
  padding: 2rem;
  display: flex;
  gap: 2rem; }
  /* line 269, static/scss/pages/_contracts.scss */
  .details-panel .details-main {
    grid-column: span 12;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: 59%; }
  /* line 277, static/scss/pages/_contracts.scss */
  .details-panel .details-side {
    grid-column: span 12;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: 39%; }

/* line 288, static/scss/pages/_contracts.scss */
.panel-box {
  background-color: var(--color-bg-surface);
  border-radius: 1.5rem;
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border-default); }
  /* line 295, static/scss/pages/_contracts.scss */
  .panel-box.panel-box-lg {
    padding: 2rem; }
  /* line 299, static/scss/pages/_contracts.scss */
  .panel-box .panel-box-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem; }
  /* line 306, static/scss/pages/_contracts.scss */
  .panel-box .panel-heading {
    font-size: 0.75rem;
    font-weight: 900;
    color: var(--color-text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 2rem; }
    /* line 317, static/scss/pages/_contracts.scss */
    .panel-box .panel-heading .panel-heading-icon {
      font-size: 1.125rem;
      color: var(--color-text-secondary); }

/* line 327, static/scss/pages/_contracts.scss */
.timeline {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }
  /* line 333, static/scss/pages/_contracts.scss */
  .timeline .timeline-line {
    position: absolute;
    left: 19px;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 2px;
    background-color: var(--color-bg-surface); }
  /* line 342, static/scss/pages/_contracts.scss */
  .timeline .timeline-item {
    position: relative;
    padding-left: 3rem; }
    /* line 346, static/scss/pages/_contracts.scss */
    .timeline .timeline-item:hover .timeline-body {
      border-color: var(--gama-brand-blue-500);
      background-color: var(--color-bg-surface-elevated); }
  /* line 352, static/scss/pages/_contracts.scss */
  .timeline .timeline-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    border: 4px solid #ffffff;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10; }
    /* line 366, static/scss/pages/_contracts.scss */
    .timeline .timeline-dot.dot-pending {
      background-color: var(--gama-brand-orange-100);
      color: var(--gama-brand-orange-500); }
    /* line 370, static/scss/pages/_contracts.scss */
    .timeline .timeline-dot.dot-signed {
      background-color: var(--gama-brand-teal-100);
      color: var(--gama-brand-teal-500); }
    /* line 375, static/scss/pages/_contracts.scss */
    .timeline .timeline-dot .icon-xl {
      font-size: 1.125rem;
      line-height: 1.75rem; }
  /* line 381, static/scss/pages/_contracts.scss */
  .timeline .timeline-body {
    padding: 1.25rem;
    background-color: var(--color-bg-surface);
    border-radius: 1rem;
    border: 1px solid var(--color-border-default);
    transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    justify-content: space-between;
    align-items: center; }
    /* line 391, static/scss/pages/_contracts.scss */
    .timeline .timeline-body .timeline-date {
      font-size: 10px;
      font-weight: 900;
      color: var(--color-text-secondary);
      text-transform: uppercase;
      margin-bottom: 0.25rem; }
    /* line 399, static/scss/pages/_contracts.scss */
    .timeline .timeline-body .timeline-title {
      font-size: 0.875rem;
      font-weight: 900;
      color: var(--color-text-primary);
      margin: 0; }
    /* line 406, static/scss/pages/_contracts.scss */
    .timeline .timeline-body .timeline-desc {
      font-size: 0.75rem;
      color: var(--color-text-secondary);
      margin-top: 0.25rem;
      font-style: italic; }
  /* line 414, static/scss/pages/_contracts.scss */
  .timeline .timeline-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem; }
    /* line 419, static/scss/pages/_contracts.scss */
    .timeline .timeline-actions .badge-temp {
      display: inline-flex;
      align-items: center;
      gap: 0.25rem;
      padding: 0.125rem 0.5rem;
      background-color: var(--gama-brand-orange-100);
      color: var(--gama-brand-orange-500);
      border-radius: 9999px;
      font-size: 16px;
      font-weight: 700;
      text-transform: uppercase;
      transition: background-color 0.15s ease; }
      /* line 432, static/scss/pages/_contracts.scss */
      .timeline .timeline-actions .badge-temp:hover {
        background-color: var(--gama-brand-orange-200); }
      /* line 436, static/scss/pages/_contracts.scss */
      .timeline .timeline-actions .badge-temp .mdi {
        font-size: 16px; }
  /* line 442, static/scss/pages/_contracts.scss */
  .timeline .empty-timeline {
    text-align: center;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem; }
    /* line 447, static/scss/pages/_contracts.scss */
    .timeline .empty-timeline p {
      font-size: 0.75rem;
      color: var(--color-text-secondary);
      font-style: italic;
      font-weight: 500;
      margin: 0; }

/* line 458, static/scss/pages/_contracts.scss */
.action-icon {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--gama-brand-blue-500);
  color: var(--color-text-inverse);
  border-radius: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.2);
  border: none;
  cursor: pointer; }
  /* line 470, static/scss/pages/_contracts.scss */
  .action-icon.sign {
    background-color: var(--gama-brand-teal-500); }
  /* line 473, static/scss/pages/_contracts.scss */
  .action-icon.edit {
    background-color: var(--gama-brand-orange-500); }
  /* line 476, static/scss/pages/_contracts.scss */
  .action-icon.delete {
    background-color: var(--color-danger-500); }
  /* line 479, static/scss/pages/_contracts.scss */
  .action-icon:hover {
    opacity: 0.7;
    transform: translateY(-2px); }

/* Services Table */
/* line 488, static/scss/pages/_contracts.scss */
.services-table {
  width: 100%;
  text-align: left;
  border-collapse: collapse; }
  /* line 493, static/scss/pages/_contracts.scss */
  .services-table thead {
    font-size: 10px;
    font-weight: 900;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--color-border-default); }
    /* line 501, static/scss/pages/_contracts.scss */
    .services-table thead th {
      padding-bottom: 0.75rem; }
  /* line 504, static/scss/pages/_contracts.scss */
  .services-table .th-center {
    text-align: center; }
  /* line 505, static/scss/pages/_contracts.scss */
  .services-table .th-right {
    text-align: right; }
  /* line 507, static/scss/pages/_contracts.scss */
  .services-table .service-row {
    border-bottom: 1px solid var(--color-border-default); }
    /* line 510, static/scss/pages/_contracts.scss */
    .services-table .service-row.service-row-included {
      background-color: rgba(248, 250, 252, 0.5); }
  /* line 515, static/scss/pages/_contracts.scss */
  .services-table .service-cell {
    padding: 1rem 0.5rem; }
  /* line 519, static/scss/pages/_contracts.scss */
  .services-table .service-name-row {
    display: flex;
    align-items: center;
    gap: 0.5rem; }
    /* line 524, static/scss/pages/_contracts.scss */
    .services-table .service-name-row .included-icon {
      color: var(--color-success); }
    /* line 528, static/scss/pages/_contracts.scss */
    .services-table .service-name-row .service-name {
      font-size: 0.75rem;
      font-weight: 700;
      color: var(--color-text-primary); }
      /* line 533, static/scss/pages/_contracts.scss */
      .services-table .service-name-row .service-name.service-name-included {
        color: var(--color-text-secondary); }
  /* line 539, static/scss/pages/_contracts.scss */
  .services-table .category-badge {
    padding: 0.125rem 0.5rem;
    background-color: var(--color-badge-green-bg);
    color: var(--color-success);
    font-size: 9px;
    font-weight: 900;
    border-radius: 0.25rem;
    text-transform: uppercase;
    border: 1px solid var(--color-border-default); }
  /* line 550, static/scss/pages/_contracts.scss */
  .services-table .cell-center {
    text-align: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-text-secondary); }
  /* line 557, static/scss/pages/_contracts.scss */
  .services-table .cell-right {
    text-align: right;
    font-size: 0.75rem;
    font-weight: 900;
    color: var(--color-text-primary); }
    /* line 563, static/scss/pages/_contracts.scss */
    .services-table .cell-right .free-label {
      color: var(--color-success); }
  /* line 568, static/scss/pages/_contracts.scss */
  .services-table .empty-cell {
    padding: 2rem 0;
    text-align: center;
    color: var(--color-text-secondary);
    font-style: italic;
    font-size: 0.75rem; }

/* line 577, static/scss/pages/_contracts.scss */
.contract-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em; }

/* line 588, static/scss/pages/_contracts.scss */
.contract-badge.premium {
  background: var(--color-badge-red-bg);
  color: var(--color-badge-red-text);
  border: 1px solid var(--color-badge-red-border); }

/* line 593, static/scss/pages/_contracts.scss */
.contract-badge.hotline {
  background: var(--color-badge-orange-bg);
  color: var(--color-badge-orange-text);
  border: 1px solid var(--color-badge-orange-border); }

/* line 598, static/scss/pages/_contracts.scss */
.contract-badge.basic {
  background: var(--color-badge-teal-bg);
  color: var(--color-badge-teal-text);
  border: 1px solid var(--color-badge-teal-border); }

/* line 603, static/scss/pages/_contracts.scss */
.contract-badge.server {
  background: var(--color-badge-blue-bg);
  color: var(--color-badge-blue-text);
  border: 1px solid var(--color-badge-blue-border); }

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(4px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

/* line 659, static/scss/pages/_contracts.scss */
.hidden,
.u-hidden {
  display: none !important; }

/* line 664, static/scss/pages/_contracts.scss */
.animate-fadeIn, .equipment-item {
  animation: fadeIn 0.2s ease-out; }

/* line 668, static/scss/pages/_contracts.scss */
.contract-page__body {
  margin: 0 auto;
  padding: 0 2rem;
  margin-top: 2.5rem; }

/* line 675, static/scss/pages/_contracts.scss */
.contract-header-form {
  background: var(--gama-brand-blue-500);
  backdrop-filter: blur(12px);
  border-bottom: 2px solid var(--gama-brand-orange-500);
  padding: 1rem 2rem;
  top: 0;
  z-index: 50;
  box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.05); }

/* line 685, static/scss/pages/_contracts.scss */
.contract-header__inner {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center; }

/* line 692, static/scss/pages/_contracts.scss */
.contract-header__brand {
  display: flex;
  align-items: center;
  gap: 1rem; }

/* line 698, static/scss/pages/_contracts.scss */
.contract-header__brand-icon {
  width: 2.5rem;
  height: 2.5rem;
  background: var(--gama-brand-orange-500);
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-bg-surface);
  box-shadow: 0 10px 15px -3px rgba(0, 80, 145, 0.2), 0 4px 6px -4px rgba(0, 80, 145, 0.2); }
  /* line 709, static/scss/pages/_contracts.scss */
  .contract-header__brand-icon .mdi {
    font-size: 1.25rem; }

/* line 714, static/scss/pages/_contracts.scss */
.contract-header__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text-inverse);
  letter-spacing: -0.01em;
  margin: 0; }

/* line 722, static/scss/pages/_contracts.scss */
.contract-header__subtitle {
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gama-brand-teal-500);
  font-size: 10px;
  margin: 0; }

/* line 728, static/scss/pages/_contracts.scss */
.contract-header__subtitle-client {
  color: var(--gama-brand-orange-500); }

/* line 732, static/scss/pages/_contracts.scss */
.contract-header__actions {
  display: flex;
  align-items: center;
  gap: 1rem; }

/* line 738, static/scss/pages/_contracts.scss */
.contract-header__cancel {
  font-size: 10px;
  font-weight: 900;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: color 0.15s ease; }
  /* line 747, static/scss/pages/_contracts.scss */
  .contract-header__cancel:hover {
    color: var(--color-text-secondary); }

/* line 752, static/scss/pages/_contracts.scss */
.contract-header__save-btn {
  padding: 0.75rem 2rem;
  font-size: 10px;
  font-weight: 900;
  color: var(--color-bg-surface);
  background: var(--gama-brand-blue-500);
  border: none;
  border-radius: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(0, 80, 145, 0.2), 0 4px 6px -4px rgba(0, 80, 145, 0.2);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: background-color 0.15s ease, transform 0.15s ease; }
  /* line 766, static/scss/pages/_contracts.scss */
  .contract-header__save-btn .mdi {
    margin-right: 0.5rem;
    font-size: 1rem; }
  /* line 771, static/scss/pages/_contracts.scss */
  .contract-header__save-btn:hover {
    background: var(--gama-brand-blue-700);
    transform: translateY(-2px); }
  /* line 776, static/scss/pages/_contracts.scss */
  .contract-header__save-btn:active {
    transform: scale(0.95); }

/* line 782, static/scss/pages/_contracts.scss */
.contract-form {
  display: flex;
  flex-direction: column;
  gap: 2rem; }

/* line 788, static/scss/pages/_contracts.scss */
.contract-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem; }

/* line 794, static/scss/pages/_contracts.scss */
.contract-grid__sidebar {
  grid-column: span 12 / span 12; }

/* line 798, static/scss/pages/_contracts.scss */
.contract-grid__main {
  grid-column: span 12 / span 12;
  display: flex;
  flex-direction: column;
  gap: 2rem; }

@media (min-width: 1024px) {
  /* line 806, static/scss/pages/_contracts.scss */
  .contract-grid__sidebar {
    grid-column: span 3 / span 3; }
  /* line 810, static/scss/pages/_contracts.scss */
  .contract-grid__main {
    grid-column: span 9 / span 9; } }

/* line 816, static/scss/pages/_contracts.scss */
.sidebar-card {
  background: var(--color-bg-surface);
  border: 1px solid rgba(226, 232, 240, 0.6);
  box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.05);
  border-radius: 2rem;
  padding: 2rem;
  position: sticky;
  top: 7rem;
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

/* line 827, static/scss/pages/_contracts.scss */
.sidebar-card__section {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 833, static/scss/pages/_contracts.scss */
.sidebar-card__section-title {
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gama-brand-teal-500);
  display: flex;
  align-items: center;
  margin: 0; }

/* line 840, static/scss/pages/_contracts.scss */
.sidebar-card__section-title-icon {
  margin-right: 0.5rem;
  font-size: 1.125rem;
  color: var(--gama-brand-blue-500); }

/* line 846, static/scss/pages/_contracts.scss */
.form-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem; }

/* line 852, static/scss/pages/_contracts.scss */
.form-field__label {
  font-size: 10px;
  font-weight: 700;
  color: var(--gama-brand-blue-500);
  text-transform: uppercase;
  margin-left: 0.25rem; }

/* line 862, static/scss/pages/_contracts.scss */
.form-control {
  width: 100%;
  background: var(--color-bg-surface);
  border: 1px solid rgba(226, 232, 240, 0.6);
  border-radius: 0.75rem;
  padding: 0.625rem 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  transition: border-color 0.15s ease, background-color 0.15s ease;
  outline: none; }
  /* line 647, static/scss/pages/_contracts.scss */
  .form-control:focus {
    border-color: var(--gama-brand-blue-500);
    background: var(--color-bg-surface); }

/* line 866, static/scss/pages/_contracts.scss */
.sidebar-card__equipment {
  padding-top: 1.5rem;
  border-top: 2px solid var(--gama-brand-blue-700); }

/* line 871, static/scss/pages/_contracts.scss */
.sidebar-card__equipment-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem; }

/* line 878, static/scss/pages/_contracts.scss */
.sidebar-card__add-btn {
  background: none;
  border: none;
  color: var(--gama-brand-blue-500);
  cursor: pointer;
  transition: transform 0.15s ease;
  padding: 0; }
  /* line 886, static/scss/pages/_contracts.scss */
  .sidebar-card__add-btn .mdi {
    font-size: 1.25rem; }
  /* line 890, static/scss/pages/_contracts.scss */
  .sidebar-card__add-btn:hover {
    transform: scale(1.1); }

/* line 896, static/scss/pages/_contracts.scss */
.equipment-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

/* line 902, static/scss/pages/_contracts.scss */
.equipment-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  background: var(--color-text-secondary);
  border-radius: 1rem;
  border: 1px solid var(--color-text-secondary); }

/* line 913, static/scss/pages/_contracts.scss */
.equipment-item__icon {
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  background: var(--color-bg-surface);
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gama-brand-blue-500);
  box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.05); }
  /* line 925, static/scss/pages/_contracts.scss */
  .equipment-item__icon .mdi {
    font-size: 1.125rem; }

/* line 930, static/scss/pages/_contracts.scss */
.equipment-item__info {
  flex: 1;
  min-width: 0; }

/* line 935, static/scss/pages/_contracts.scss */
.equipment-item__name {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0; }

/* line 945, static/scss/pages/_contracts.scss */
.equipment-item__model {
  font-size: 9px;
  color: var(--color-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0; }

/* line 954, static/scss/pages/_contracts.scss */
.equipment-item__remove {
  background: none;
  border: none;
  padding: 0.25rem;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: color 0.15s ease; }
  /* line 962, static/scss/pages/_contracts.scss */
  .equipment-item__remove .mdi {
    font-size: 1.125rem; }
  /* line 966, static/scss/pages/_contracts.scss */
  .equipment-item__remove:hover {
    color: var(--color-danger-500); }

/* line 971, static/scss/pages/_contracts.scss */
.equipment-empty {
  font-size: 10px;
  font-style: italic;
  color: var(--color-text-secondary);
  text-align: center;
  padding: 1rem 0;
  border: 2px dashed var(--color-text-secondary);
  border-radius: 1rem;
  margin: 0; }

/* line 983, static/scss/pages/_contracts.scss */
.lines-card {
  background: var(--color-bg-surface);
  border: 1px solid rgba(226, 232, 240, 0.6);
  box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.05);
  border-radius: 2.5rem;
  overflow: hidden;
  display: flex;
  flex-direction: column; }

/* line 991, static/scss/pages/_contracts.scss */
.lines-card__header {
  padding: 1.5rem 2.5rem;
  border-bottom: 2px solid var(--gama-brand-blue-700);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--gama-brand-blue-500); }

/* line 1000, static/scss/pages/_contracts.scss */
.lines-card__header-title {
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gama-brand-teal-500);
  color: var(--color-text-inverse);
  margin: 0; }

/* line 1006, static/scss/pages/_contracts.scss */
.lines-card__search {
  width: 20rem; }

/* line 1010, static/scss/pages/_contracts.scss */
.lines-container {
  min-height: 300px; }
  /* line 1013, static/scss/pages/_contracts.scss */
  .lines-container > .line-row + .line-row {
    border-top: 1px solid var(--gama-brand-blue-700); }

/* line 1018, static/scss/pages/_contracts.scss */
.line-row {
  padding: 1.5rem;
  transition: background-color 0.15s ease; }
  /* line 1022, static/scss/pages/_contracts.scss */
  .line-row:hover {
    background: rgba(248, 250, 252, 0.5); }

/* line 1027, static/scss/pages/_contracts.scss */
.line-row--new {
  border-bottom: 1px solid var(--gama-brand-blue-700);
  animation: fadeIn 0.2s ease-out; }

/* line 1032, static/scss/pages/_contracts.scss */
.line-row__body {
  display: flex;
  gap: 1rem;
  align-items: center; }

/* line 1038, static/scss/pages/_contracts.scss */
.line-row__handle {
  cursor: grab;
  color: var(--color-text-secondary);
  transition: color 0.15s ease; }
  /* line 1043, static/scss/pages/_contracts.scss */
  .line-row__handle:hover {
    color: var(--color-text-secondary); }
  /* line 1047, static/scss/pages/_contracts.scss */
  .line-row__handle .mdi {
    font-size: 1.25rem; }

/* line 1052, static/scss/pages/_contracts.scss */
.line-row__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  flex: 1;
  align-items: start; }

/* line 1060, static/scss/pages/_contracts.scss */
.line-row__grid {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex: 1; }

/* line 1067, static/scss/pages/_contracts.scss */
.line-row__line {
  display: flex;
  gap: 1rem;
  width: 100%; }

/* line 1073, static/scss/pages/_contracts.scss */
.line-row__field--label {
  width: 49%; }
  /* line 1075, static/scss/pages/_contracts.scss */
  .line-row__field--label input {
    width: 80%; }

/* line 1079, static/scss/pages/_contracts.scss */
.line-row__field--cycle {
  width: 25%; }

/* line 1082, static/scss/pages/_contracts.scss */
.line-row__field--price {
  width: 32%; }
  /* line 1084, static/scss/pages/_contracts.scss */
  .line-row__field--price input {
    width: 80%; }

/* line 1088, static/scss/pages/_contracts.scss */
.line-row__field--discount {
  width: 32%; }
  /* line 1090, static/scss/pages/_contracts.scss */
  .line-row__field--discount input {
    width: 80%; }

/* line 1094, static/scss/pages/_contracts.scss */
.line-row__field--qty {
  width: 32%; }
  /* line 1096, static/scss/pages/_contracts.scss */
  .line-row__field--qty input {
    width: 80%; }

/* line 1102, static/scss/pages/_contracts.scss */
.line-row__field-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--gama-brand-blue-500);
  display: block;
  margin-bottom: 0.25rem; }

/* line 1106, static/scss/pages/_contracts.scss */
.line-row__delete {
  padding-top: 1.25rem; }

/* line 1110, static/scss/pages/_contracts.scss */
.line-row__delete-btn {
  background: none;
  border: none;
  padding: 0.5rem;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: color 0.15s ease; }
  /* line 1118, static/scss/pages/_contracts.scss */
  .line-row__delete-btn .mdi {
    font-size: 1.25rem; }
  /* line 1122, static/scss/pages/_contracts.scss */
  .line-row__delete-btn:hover {
    color: var(--color-danger-500); }

/* line 1128, static/scss/pages/_contracts.scss */
.lines-card__summary {
  background: var(--gradient-brand);
  padding: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  border-top: 3px solid var(--gama-brand-blue-700); }

/* line 1136, static/scss/pages/_contracts.scss */
.summary-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: auto; }

/* line 1142, static/scss/pages/_contracts.scss */
.summary-block {
  display: flex;
  flex-direction: column;
  gap: 0.25rem; }

/* line 1148, static/scss/pages/_contracts.scss */
.summary-block__label {
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-text-inverse);
  margin: 0; }

/* line 1157, static/scss/pages/_contracts.scss */
.summary-block__raw {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  color: var(--color-text-secondary);
  text-decoration: line-through;
  font-size: 0.875rem; }

/* line 1166, static/scss/pages/_contracts.scss */
.summary-block__value {
  display: flex;
  align-items: baseline;
  gap: 0.5rem; }
  /* line 1171, static/scss/pages/_contracts.scss */
  .summary-block__value--monthly {
    color: var(--color-bg-surface); }
  /* line 1175, static/scss/pages/_contracts.scss */
  .summary-block__value--one-time {
    color: var(--gama-brand-orange-400); }

/* line 1180, static/scss/pages/_contracts.scss */
.summary-block__value-number {
  font-size: 2.25rem;
  font-weight: 300; }

/* line 1185, static/scss/pages/_contracts.scss */
.summary-block__value-currency {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--gama-brand-blue-500); }
  /* line 1190, static/scss/pages/_contracts.scss */
  .summary-block__value--one-time .summary-block__value-currency {
    color: currentColor;
    opacity: 0.6; }

/* line 1196, static/scss/pages/_contracts.scss */
.summary-block__save {
  font-size: 10px;
  font-weight: 700;
  color: var(--gama-brand-teal-400);
  margin-top: 0.25rem; }

/* line 1203, static/scss/pages/_contracts.scss */
.equipment-modal {
  position: fixed;
  inset: 0;
  z-index: 100; }

/* line 1209, static/scss/pages/_contracts.scss */
.equipment-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(4px); }

/* line 1216, static/scss/pages/_contracts.scss */
.equipment-modal__dialog-wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  max-width: 42rem;
  padding: 0 1rem; }

/* line 1226, static/scss/pages/_contracts.scss */
.equipment-modal__dialog {
  background: var(--color-bg-surface);
  border-radius: 2rem;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  overflow: hidden;
  border: 1px solid var(--color-text-secondary); }

/* line 1234, static/scss/pages/_contracts.scss */
.equipment-modal__header {
  padding: 1.5rem 2rem;
  border-bottom: 2px solid var(--gama-brand-teal-700);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--gama-brand-teal-500); }

/* line 1243, static/scss/pages/_contracts.scss */
.equipment-modal__header-title {
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-text-inverse);
  margin: 0; }

/* line 1254, static/scss/pages/_contracts.scss */
.equipment-modal__list {
  max-height: 400px;
  overflow-y: auto;
  padding: 1rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem; }

/* line 1263, static/scss/pages/_contracts.scss */
.equipment-modal__list-loading {
  padding: 2rem;
  text-align: center;
  color: var(--color-text-secondary); }

/* line 1269, static/scss/pages/_contracts.scss */
.equipment-modal__item {
  display: flex;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--gama-brand-orange-500);
  border-radius: 1rem;
  cursor: pointer;
  transition: background-color 0.15s ease; }
  /* line 1278, static/scss/pages/_contracts.scss */
  .equipment-modal__item:hover {
    background: #eff6ff; }

/* line 1283, static/scss/pages/_contracts.scss */
.equipment-modal__item-info {
  flex: 1; }

/* line 1287, static/scss/pages/_contracts.scss */
.equipment-modal__item-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--gama-brand-orange-500);
  margin: 0; }

/* line 1294, static/scss/pages/_contracts.scss */
.equipment-modal__item-model {
  font-size: 10px;
  color: var(--gama-brand-teal-500);
  text-transform: uppercase;
  font-weight: 700;
  margin: 0; }

/* line 1302, static/scss/pages/_contracts.scss */
.equipment-modal__item-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 0.25rem;
  border: 1px solid var(--color-text-secondary); }

/* line 1309, static/scss/pages/_contracts.scss */
.equipment-modal__footer {
  padding: 1.5rem 2rem;
  border-top: 2px solid var(--gama-brand-teal-700);
  background: var(--gama-brand-teal-500);
  display: flex;
  justify-content: flex-end;
  gap: 1rem; }

/* line 1317, static/scss/pages/_contracts.scss */
.equipment-modal__close {
  padding: 0.75rem 2rem;
  background: var(--color-neutral-100);
  color: var(--color-neutral-500);
  border: none;
  border-radius: 0.75rem;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  cursor: pointer;
  transition: background-color 0.15s ease; }
  /* line 1330, static/scss/pages/_contracts.scss */
  .equipment-modal__close:hover {
    background: var(--color-neutral-500);
    color: var(--color-text-inverse); }

/* line 1335, static/scss/pages/_contracts.scss */
.equipment-modal__confirm-btn {
  padding: 0.75rem 2rem;
  background: var(--gama-brand-blue-500);
  color: var(--color-text-inverse);
  border: none;
  border-radius: 0.75rem;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  cursor: pointer;
  transition: background-color 0.15s ease; }
  /* line 1348, static/scss/pages/_contracts.scss */
  .equipment-modal__confirm-btn:hover {
    background: var(--gama-brand-blue-700); }

/* line 1352, static/scss/pages/_contracts.scss */
.contract-tpt {
  color: var(--gama-brand-blue-500); }

/* line 1355, static/scss/pages/_contracts.scss */
.contract-tpt-name {
  color: var(--gama-brand-orange-500);
  font-style: italic; }

/* line 1359, static/scss/pages/_contracts.scss */
.th-service {
  width: 45%; }

/* line 1362, static/scss/pages/_contracts.scss */
.th-price {
  width: 25%; }

/* line 1365, static/scss/pages/_contracts.scss */
.th-cycling {
  width: 15%; }

/* line 1368, static/scss/pages/_contracts.scss */
.th-actions {
  width: 15%; }

/* line 1371, static/scss/pages/_contracts.scss */
.billing-cycle {
  gap: 0.5rem;
  align-items: center;
  display: flex; }
  /* line 1375, static/scss/pages/_contracts.scss */
  .billing-cycle i {
    color: var(--gama-brand-orange-300);
    font-size: 1rem;
    line-height: 1.5rem; }
  /* line 1380, static/scss/pages/_contracts.scss */
  .billing-cycle span {
    color: var(--gama-brand-blue-500);
    font-weight: 600;
    font-size: 0.75rem;
    line-height: 1rem; }

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(4px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

/* line 51, static/scss/pages/_addendums.scss */
.hidden,
.u-hidden {
  display: none !important; }

/* line 56, static/scss/pages/_addendums.scss */
.animate-fadeIn, .equipment-item {
  animation: fadeIn 0.2s ease-out; }

/* line 60, static/scss/pages/_addendums.scss */
.addendum-page__body {
  margin: 0 auto;
  padding: 0 2rem;
  margin-top: 2.5rem; }

/* line 67, static/scss/pages/_addendums.scss */
.addendum-header-form {
  background: var(--gama-brand-orange-500);
  backdrop-filter: blur(12px);
  border-bottom: 2px solid var(--gama-brand-blue-500);
  padding: 1rem 2rem;
  top: 0;
  z-index: 50;
  box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.05); }

/* line 77, static/scss/pages/_addendums.scss */
.addendum-header__inner {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center; }

/* line 84, static/scss/pages/_addendums.scss */
.addendum-header__brand {
  display: flex;
  align-items: center;
  gap: 1rem; }

/* line 89, static/scss/pages/_addendums.scss */
.addendum-title-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text-inverse); }

/* line 94, static/scss/pages/_addendums.scss */
.addendum-header__brand-icon {
  width: 2.5rem;
  height: 2.5rem;
  background: var(--gama-brand-blue-500);
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-bg-surface);
  box-shadow: 0 10px 15px -3px rgba(0, 80, 145, 0.2), 0 4px 6px -4px rgba(0, 80, 145, 0.2); }
  /* line 105, static/scss/pages/_addendums.scss */
  .addendum-header__brand-icon .mdi {
    font-size: 1.25rem; }

/* line 110, static/scss/pages/_addendums.scss */
.addendum-header__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text-inverse);
  letter-spacing: -0.01em;
  margin: 0; }

/* line 118, static/scss/pages/_addendums.scss */
.addendum-header__subtitle {
  color: var(--gama-brand-blue-500);
  font-size: 10px;
  margin: 0; }

/* line 124, static/scss/pages/_addendums.scss */
.addendum-header__actions {
  display: flex;
  align-items: center;
  gap: 1rem; }

/* line 130, static/scss/pages/_addendums.scss */
.addendum-header__cancel {
  font-size: 10px;
  font-weight: 900;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: color 0.15s ease; }
  /* line 139, static/scss/pages/_addendums.scss */
  .addendum-header__cancel:hover {
    color: var(--color-text-secondary); }

/* line 144, static/scss/pages/_addendums.scss */
.addendum-header__save-btn {
  padding: 0.75rem 2rem;
  font-size: 10px;
  font-weight: 900;
  color: var(--color-bg-surface);
  background: var(--gama-brand-blue-500);
  border: none;
  border-radius: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(0, 80, 145, 0.2), 0 4px 6px -4px rgba(0, 80, 145, 0.2);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: background-color 0.15s ease, transform 0.15s ease; }
  /* line 158, static/scss/pages/_addendums.scss */
  .addendum-header__save-btn .mdi {
    margin-right: 0.5rem;
    font-size: 1rem; }
  /* line 163, static/scss/pages/_addendums.scss */
  .addendum-header__save-btn:hover {
    background: var(--gama-brand-blue-700);
    transform: translateY(-2px); }
  /* line 168, static/scss/pages/_addendums.scss */
  .addendum-header__save-btn:active {
    transform: scale(0.95); }

/* line 174, static/scss/pages/_addendums.scss */
.addendum-form {
  display: flex;
  flex-direction: column;
  gap: 2rem; }

/* line 180, static/scss/pages/_addendums.scss */
.addendum-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem; }

/* line 186, static/scss/pages/_addendums.scss */
.addendum-grid__sidebar {
  grid-column: span 12 / span 12; }

/* line 190, static/scss/pages/_addendums.scss */
.addendum-grid__main {
  grid-column: span 12 / span 12;
  display: flex;
  flex-direction: column;
  gap: 2rem; }

@media (min-width: 1024px) {
  /* line 198, static/scss/pages/_addendums.scss */
  .addendum-grid__sidebar {
    grid-column: span 3 / span 3; }
  /* line 202, static/scss/pages/_addendums.scss */
  .addendum-grid__main {
    grid-column: span 9 / span 9; } }

/* line 206, static/scss/pages/_addendums.scss */
.summary-metric-flex-row {
  display: flex;
  align-items: center;
  gap: 2rem; }

/* line 211, static/scss/pages/_addendums.scss */
.summary-metric-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

/* line 216, static/scss/pages/_addendums.scss */
.metric-sub-label {
  font-size: 0.75rem;
  color: var(--gama-brand-orange-500); }

/* line 220, static/scss/pages/_addendums.scss */
.metric-static-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--gama-brand-teal-200); }
  /* line 224, static/scss/pages/_addendums.scss */
  .metric-static-value.delta-positive {
    color: var(--color-success); }
  /* line 227, static/scss/pages/_addendums.scss */
  .metric-static-value.delta-negative {
    color: var(--gama-brand-orange-700); }

/* line 231, static/scss/pages/_addendums.scss */
.summary-flow-arrow {
  font-size: 1.5rem;
  color: var(--gama-brand-orange-500); }

/* line 236, static/scss/pages/_addendums.scss */
.equipment-modal__header-addendum {
  padding: 1.5rem 2rem;
  border-bottom: 2px solid var(--gama-brand-orange-700);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--gama-brand-orange-500); }

/* line 245, static/scss/pages/_addendums.scss */
.equipment-modal__item-addendum {
  display: flex;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--gama-brand-blue-500);
  border-radius: 1rem;
  cursor: pointer;
  transition: background-color 0.15s ease; }
  /* line 254, static/scss/pages/_addendums.scss */
  .equipment-modal__item-addendum:hover {
    background: var(--gama-brand-blue-100); }

/* line 258, static/scss/pages/_addendums.scss */
.equipment-modal__item-name-addendum {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--gama-brand-blue-500);
  margin: 0; }

/* line 265, static/scss/pages/_addendums.scss */
.equipment-modal__item-model-addendum {
  font-size: 10px;
  color: var(--gama-brand-teal-500);
  text-transform: uppercase;
  font-weight: 700;
  margin: 0; }

/* line 272, static/scss/pages/_addendums.scss */
.equipment-modal__footer-addendum {
  padding: 1.5rem 2rem;
  border-top: 2px solid var(--gama-brand-orange-700);
  background: var(--gama-brand-orange-500);
  display: flex;
  justify-content: flex-end;
  gap: 1rem; }

/* Microsoft 365 items (M365) */
/* line 2, static/scss/pages/_devices.scss */
.m365-list {
  padding: 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  overflow-y: auto;
  max-height: 450px; }

/* line 11, static/scss/pages/_devices.scss */
.m365-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-radius: 0.75rem;
  border: 1px solid #f9fafb;
  background-color: rgba(249, 250, 251, 0.2);
  transition: border-color 0.2s; }
  /* line 21, static/scss/pages/_devices.scss */
  .m365-item:hover {
    border-color: #fed7aa; }
  /* line 25, static/scss/pages/_devices.scss */
  .m365-item .avatar-orange {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background-color: #ffedd5;
    color: #ea580c;
    display: flex;
    align-items: center;
    justify-content: center; }
  /* line 31, static/scss/pages/_devices.scss */
  .m365-item .avatar-blue {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background-color: #dbeafe;
    color: #2563eb;
    display: flex;
    align-items: center;
    justify-content: center; }
  /* line 37, static/scss/pages/_devices.scss */
  .m365-item .m365-name {
    font-size: 0.875rem;
    font-weight: 700;
    color: #1f2937; }
  /* line 38, static/scss/pages/_devices.scss */
  .m365-item .m365-subtitle {
    font-size: 10px;
    color: #9ca3af;
    font-weight: 700; }
  /* line 39, static/scss/pages/_devices.scss */
  .m365-item .m365-size {
    font-size: 0.875rem;
    font-weight: 900;
    color: #4b5563; }
  /* line 40, static/scss/pages/_devices.scss */
  .m365-item .unit-tiny {
    font-size: 10px;
    color: #9ca3af; }

/* Devices elements */
/* line 44, static/scss/pages/_devices.scss */
.devices-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem; }
  /* line 50, static/scss/pages/_devices.scss */
  .devices-header .devices-title {
    font-size: 0.75rem;
    font-weight: 900;
    color: var(--color-text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em; }
  /* line 58, static/scss/pages/_devices.scss */
  .devices-header .devices-count-blue {
    font-size: 10px;
    font-weight: 700;
    color: #2563eb;
    background-color: #eff6ff;
    padding: 0.125rem 0.5rem;
    border-radius: 0.375rem; }
  /* line 67, static/scss/pages/_devices.scss */
  .devices-header .devices-count-orange {
    font-size: 10px;
    font-weight: 700;
    color: #ea580c;
    background-color: #fff7ed;
    padding: 0.125rem 0.5rem;
    border-radius: 0.375rem; }

/* line 77, static/scss/pages/_devices.scss */
.devices-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-height: 300px;
  overflow-y: auto;
  padding-right: 0.5rem; }

/* line 86, static/scss/pages/_devices.scss */
.device-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  background-color: var(--color-bg-surface-elevated);
  border-radius: 0.75rem;
  border: 1px solid var(--color-border-default); }
  /* line 95, static/scss/pages/_devices.scss */
  .device-item .device-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    background-color: var(--gama-brand-teal-500);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-inverse); }
    /* line 105, static/scss/pages/_devices.scss */
    .device-item .device-icon i {
      font-size: 1.125rem; }
  /* line 108, static/scss/pages/_devices.scss */
  .device-item .device-info {
    flex: 1 1 auto;
    min-width: 0; }
    /* line 112, static/scss/pages/_devices.scss */
    .device-item .device-info .device-name {
      font-size: 11px;
      font-weight: 900;
      color: var(--gama-brand-blue-500);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis; }
    /* line 121, static/scss/pages/_devices.scss */
    .device-item .device-info .device-model {
      font-size: 9px;
      color: var(--gama-brand-orange-500);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis; }

/* line 130, static/scss/pages/_devices.scss */
.vm-icon {
  color: var(--gama-brand-blue-500);
  font-size: 1.5rem; }

/* line 134, static/scss/pages/_devices.scss */
.empty-devices {
  text-align: center;
  padding: 1rem 0;
  font-size: 10px;
  color: var(--color-text-secondary);
  font-style: italic; }

/* Call to action (CTA Box) */
/* line 143, static/scss/pages/_devices.scss */
.cta-box {
  background-color: #005091;
  border-radius: 1.5rem;
  padding: 1.5rem;
  color: #fff;
  box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.2); }
  /* line 150, static/scss/pages/_devices.scss */
  .cta-box .cta-label {
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-bottom: 0.5rem;
    opacity: 0.6; }
  /* line 159, static/scss/pages/_devices.scss */
  .cta-box .cta-text {
    font-size: 0.75rem;
    font-weight: 500;
    margin-bottom: 1.5rem;
    line-height: 1.6; }
  /* line 166, static/scss/pages/_devices.scss */
  .cta-box .cta-btn {
    display: block;
    width: 100%;
    padding: 0.75rem 0;
    background-color: #fff;
    color: #005091;
    text-align: center;
    border-radius: 0.75rem;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    transition: background-color 0.2s;
    text-decoration: none; }
    /* line 180, static/scss/pages/_devices.scss */
    .cta-box .cta-btn:hover {
      background-color: #eff6ff; }

/* ── Page de Connexion (Login) ───────────────────────── */
/* Wrapper principal centré */
/* line 4, static/scss/pages/_login.scss */
.login-wrapper {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background-color: var(--color-bg-tertiary);
  overflow: hidden; }

/* Arrière-plan décoratif (SVG Gama en filigrane) */
/* line 17, static/scss/pages/_login.scss */
.login-bg-deco {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0.05;
  z-index: 1; }

/* line 27, static/scss/pages/_login.scss */
.login-bg-deco img {
  width: 80vw;
  max-width: 900px;
  height: auto;
  transform: rotate(-5deg); }

/* Conteneur de la carte de connexion */
/* line 35, static/scss/pages/_login.scss */
.login-container {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 440px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: 20px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  padding: 40px 32px 32px;
  animation: modalIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; }

/* En-tête */
/* line 49, static/scss/pages/_login.scss */
.login-header {
  text-align: center;
  margin-bottom: 28px; }

/* line 53, static/scss/pages/_login.scss */
.login-logo {
  display: flex;
  justify-content: center; }

/* line 57, static/scss/pages/_login.scss */
.login-logo img {
  height: 11rem;
  width: auto;
  object-fit: contain; }

/* line 62, static/scss/pages/_login.scss */
.login-header h1 {
  font-size: 20px;
  font-weight: 800;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
  margin: 0; }

/* line 69, static/scss/pages/_login.scss */
.login-header p {
  font-size: 13px;
  color: var(--color-accent);
  margin-top: 6px;
  font-weight: 600; }

/* Formulaire */
/* line 77, static/scss/pages/_login.scss */
.login-form {
  display: flex;
  flex-direction: column;
  gap: 18px; }

/* Groupes de champs et Labels */
/* line 84, static/scss/pages/_login.scss */
.login-field-group {
  display: flex;
  flex-direction: column;
  gap: 6px; }

/* line 89, static/scss/pages/_login.scss */
.login-field-group label {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.08em; }

/* Conteneur d'input avec icône intégrée */
/* line 98, static/scss/pages/_login.scss */
.login-input-wrap {
  position: relative; }

/* line 101, static/scss/pages/_login.scss */
.login-input-wrap i {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: var(--color-accent);
  pointer-events: none;
  transition: color 0.2s ease; }

/* line 111, static/scss/pages/_login.scss */
.login-input-wrap:focus-within i {
  color: var(--color-accent); }

/* Inputs de connexion */
/* line 116, static/scss/pages/_login.scss */
.login-input-wrap input {
  width: 80%;
  padding: 11px 14px 11px 44px !important;
  background-color: var(--color-bg-surface-elevated);
  border: 1px solid var(--color-border-default);
  border-radius: 12px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text-primary);
  outline: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease; }

/* line 128, static/scss/pages/_login.scss */
.login-input-wrap input:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 4px var(--color-accent-light);
  border: 1px solid var(--color-border-accent); }

/* Bouton Soumettre */
/* line 135, static/scss/pages/_login.scss */
.login-submit-wrap {
  margin-top: 2rem; }

/* line 138, static/scss/pages/_login.scss */
.btn-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 12px;
  background: var(--color-accent);
  color: var(--color-text-inverse);
  font-size: 14px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(43, 211, 198, 0.2);
  transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease; }

/* line 154, static/scss/pages/_login.scss */
.btn-login:hover {
  background-color: var(--color-accent-hover);
  box-shadow: 0 6px 16px var(--color-accent); }

/* line 158, static/scss/pages/_login.scss */
.btn-login:active {
  transform: scale(0.98); }

/* line 161, static/scss/pages/_login.scss */
.btn-login i {
  font-size: 18px;
  transition: transform 0.2s ease; }

/* line 165, static/scss/pages/_login.scss */
.btn-login:hover i {
  transform: translateX(2px); }

/* Alertes de retour (Success / Error) */
/* line 170, static/scss/pages/_login.scss */
.login-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 20px;
  border: 1px solid transparent;
  animation: fadeInUp 0.3s ease-out forwards; }

/* line 182, static/scss/pages/_login.scss */
.login-alert i {
  font-size: 18px;
  flex-shrink: 0; }

/* line 186, static/scss/pages/_login.scss */
.login-alert span {
  line-height: 1.4; }

/* line 190, static/scss/pages/_login.scss */
.login-alert.alert-danger {
  background-color: var(--color-badge-bg-danger);
  color: var(--color-danger);
  border-color: var(--color-badge-border-danger); }

/* line 195, static/scss/pages/_login.scss */
.login-alert.alert-success {
  background-color: var(--color-badge-bg-success);
  color: var(--color-success);
  border-color: var(--color-badge-border-success); }

/* Pied de page de la carte */
/* line 202, static/scss/pages/_login.scss */
.login-footer {
  text-align: center;
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border); }

/* line 208, static/scss/pages/_login.scss */
.login-footer p {
  font-size: 11px;
  color: var(--color-text-primary);
  margin: 0;
  font-weight: 500; }

/* line 1, static/scss/pages/_tenant.scss */
.tenant-layout {
  display: flex;
  padding: 0; }

/* line 5, static/scss/pages/_tenant.scss */
.tenant-sidebar {
  width: 250px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--color-border);
  background: var(--color-bg-primary);
  min-height: 100%; }

/* line 14, static/scss/pages/_tenant.scss */
.tenant-sidebar-head {
  padding: 20px 18px 14px;
  border-bottom: 1px solid var(--color-border); }

/* line 18, static/scss/pages/_tenant.scss */
.tenant-sidebar-head-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-accent);
  letter-spacing: -0.01em; }

/* line 24, static/scss/pages/_tenant.scss */
.tenant-sidebar-head-sub {
  font-size: 11px;
  color: var(--color-text-secondary);
  margin-top: 2px; }

/* line 29, static/scss/pages/_tenant.scss */
.tenant-stats {
  display: grid;
  grid-template-columns: repeat(1, 3fr);
  gap: 10px;
  margin: 10px; }

/* line 35, static/scss/pages/_tenant.scss */
.tenant-stat {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 14px;
  color: var(--gama-brand-blue-500);
  padding: 16px 18px;
  position: relative;
  overflow: hidden; }
  /* line 43, static/scss/pages/_tenant.scss */
  .tenant-stat::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    border-radius: 14px 14px 0 0;
    background: var(--gama-brand-blue-500); }
  /* line 53, static/scss/pages/_tenant.scss */
  .tenant-stat.green {
    color: var(--gama-brand-teal-500); }
    /* line 55, static/scss/pages/_tenant.scss */
    .tenant-stat.green::before {
      background: var(--gama-brand-teal-500); }
  /* line 59, static/scss/pages/_tenant.scss */
  .tenant-stat.amber {
    color: var(--gama-brand-orange-500); }
    /* line 61, static/scss/pages/_tenant.scss */
    .tenant-stat.amber::before {
      background: var(--gama-brand-orange-500); }

/* line 66, static/scss/pages/_tenant.scss */
.tenant-stat-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 8px; }

/* line 74, static/scss/pages/_tenant.scss */
.tenant-stat-value {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--gama-brand-blue-500); }
  /* line 80, static/scss/pages/_tenant.scss */
  .tenant-stat-value.green {
    color: var(--gama-brand-teal-500); }
  /* line 83, static/scss/pages/_tenant.scss */
  .tenant-stat-value.amber {
    color: var(--gama-brand-orange-500); }

/* line 87, static/scss/pages/_tenant.scss */
.tenant-stat-sub {
  font-size: 12px;
  color: var(--gama-brand-blue-700);
  margin-top: 5px;
  display: flex;
  align-items: center;
  gap: 4px; }
  /* line 94, static/scss/pages/_tenant.scss */
  .tenant-stat-sub.green {
    color: var(--gama-brand-teal-700); }
  /* line 97, static/scss/pages/_tenant.scss */
  .tenant-stat-sub.amber {
    color: var(--gama-brand-orange-700); }

/* line 101, static/scss/pages/_tenant.scss */
.tenant-nav {
  background: var(--color-bg-primary);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  overflow: hidden;
  margin: 10px; }

/* line 108, static/scss/pages/_tenant.scss */
.tenant-nav-header {
  padding: 10px 14px;
  border-bottom: 1px solid var(--color-border);
  font-size: 10px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.09em; }

/* line 117, static/scss/pages/_tenant.scss */
.tenant-nav-body {
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 1px; }

/* line 123, static/scss/pages/_tenant.scss */
.tenant-nav-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text-secondary);
  transition: background 0.12s, color 0.12s;
  margin-bottom: 0.5rem; }
  /* line 135, static/scss/pages/_tenant.scss */
  .tenant-nav-item:hover {
    background: var(--color-bg-secondary);
    color: var(--color-text-primary); }
  /* line 139, static/scss/pages/_tenant.scss */
  .tenant-nav-item.active {
    background: var(--color-accent-light);
    color: var(--color-accent-text); }
  /* line 143, static/scss/pages/_tenant.scss */
  .tenant-nav-item i {
    font-size: 30px; }

/* line 147, static/scss/pages/_tenant.scss */
.tenant-nav-item-left {
  display: flex;
  align-items: center;
  gap: 7px; }

/* line 152, static/scss/pages/_tenant.scss */
.tenant-nav-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
  flex-shrink: 0; }

/* line 159, static/scss/pages/_tenant.scss */
.tenant-type-badge {
  height: 1.5rem;
  width: 1.5rem;
  object-fit: cover;
  border-radius: 0.5rem; }
  /* line 164, static/scss/pages/_tenant.scss */
  .tenant-type-badge i {
    font-size: 12px; }

/* line 168, static/scss/pages/_tenant.scss */
.tenant-main {
  flex: 1;
  min-width: 0;
  padding: 25px;
  background: var(--color-bg-primary); }

/* line 174, static/scss/pages/_tenant.scss */
.tenant-topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 20px;
  gap: 12px;
  flex-wrap: wrap; }

/* line 182, static/scss/pages/_tenant.scss */
.tenant-actions {
  display: flex;
  gap: 8px; }

/* line 186, static/scss/pages/_tenant.scss */
.tenant-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px; }

/* line 192, static/scss/pages/_tenant.scss */
.tenant-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  display: flex;
  align-items: center;
  gap: 8px; }
  /* line 201, static/scss/pages/_tenant.scss */
  .tenant-section-title::before {
    content: '';
    display: block;
    width: 3px;
    height: 14px;
    background: var(--color-primary);
    border-radius: 2px; }

/* line 210, static/scss/pages/_tenant.scss */
.tenant-section-count {
  font-size: 12px;
  color: var(--color-text-tertiary);
  font-weight: 600; }

/* line 215, static/scss/pages/_tenant.scss */
.tenant-table-identity {
  text-decoration: none;
  color: inherit;
  display: flex;
  align-items: center;
  gap: 11px; }

/* line 222, static/scss/pages/_tenant.scss */
.tenant-table-name {
  font-weight: 700;
  color: var(--color-text-primary); }

/* line 226, static/scss/pages/_tenant.scss */
.tenant-table-id {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  margin-top: 0.125rem; }

/* line 231, static/scss/pages/_tenant.scss */
.tenant-badge {
  width: 50px;
  height: 50px;
  border-radius: 10px;
  background: var(--color-accent);
  border: 1px solid var(--color-border-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text-inverse);
  flex-shrink: 0;
  overflow: hidden; }

/* line 246, static/scss/pages/_tenant.scss */
.tenant-table-type {
  color: inherit;
  display: flex;
  align-items: center;
  gap: 11px; }

/* line 252, static/scss/pages/_tenant.scss */
.tenant-detail-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem; }

/* line 258, static/scss/pages/_tenant.scss */
.tenant-header-card {
  padding: 1.5rem;
  overflow: hidden;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 0.5rem;
  position: relative; }

/* line 266, static/scss/pages/_tenant.scss */
.tenant-header-row {
  gap: 1.5rem;
  justify-content: space-between;
  display: flex;
  position: relative; }

/* line 272, static/scss/pages/_tenant.scss */
.tenant-header-left {
  gap: 1.25rem;
  align-items: center;
  display: flex; }

/* line 277, static/scss/pages/_tenant.scss */
.tenant-title-row {
  gap: 0.75rem;
  align-items: center;
  display: flex; }

/* line 282, static/scss/pages/_tenant.scss */
.tenant-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--gama-brand-teal-500);
  margin: 0;
  letter-spacing: -0.02em; }

/* line 288, static/scss/pages/_tenant.scss */
.tenant-subtitle {
  font-size: 13px;
  color: var(--gama-brand-blue-500);
  margin: 3px 0 0;
  font-style: italic; }

/* line 294, static/scss/pages/_tenant.scss */
.tenant-logo-preview {
  width: 100px;
  height: 100px;
  object-fit: contain;
  border-radius: 0.5rem;
  background: var(--color-bg-primary);
  padding: 0.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  margin-bottom: 1rem; }

/* line 304, static/scss/pages/_tenant.scss */
.tenant-detail-body {
  display: flex;
  gap: 2rem; }

/* line 308, static/scss/pages/_tenant.scss */
.tenant-detail-panel {
  background: var(--gradient-brand);
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem; }

/* line 313, static/scss/pages/_tenant.scss */
.tenant-tab-nav-wrap {
  background: var(--color-bg-secondary);
  border-bottom: 1px solid var(--color-border-default); }

/* line 317, static/scss/pages/_tenant.scss */
.tenant-tab-nav {
  display: flex;
  padding-top: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  max-height: 60px;
  gap: 0.25rem; }
  /* line 324, static/scss/pages/_tenant.scss */
  .tenant-tab-nav a {
    color: var(--color-text-inverse);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1.25rem;
    padding: 1rem;
    white-space: nowrap;
    align-items: center;
    display: flex; }
    /* line 333, static/scss/pages/_tenant.scss */
    .tenant-tab-nav a:hover {
      background: rgba(255, 255, 255, 0.12); }
    /* line 336, static/scss/pages/_tenant.scss */
    .tenant-tab-nav a i {
      margin-right: 0.5rem;
      font-size: 1.125rem;
      line-height: 1.75rem; }

/* line 343, static/scss/pages/_tenant.scss */
.tenant-tab-divider {
  width: 1px;
  height: 1.5rem;
  background: var(--color-border);
  margin: 0 0.5rem;
  align-self: center;
  flex-shrink: 0; }

/* line 351, static/scss/pages/_tenant.scss */
.tenant-tab-divider-last {
  flex-grow: 1; }

/* line 354, static/scss/pages/_tenant.scss */
.tenant-menu-icon {
  font-size: 2rem !important; }

/* line 357, static/scss/pages/_tenant.scss */
.tenant-main-panel {
  flex: 2;
  display: flex;
  flex-direction: column; }

/* line 362, static/scss/pages/_tenant.scss */
.tenant-side-panel {
  width: 20rem;
  flex-shrink: 0; }

/* line 366, static/scss/pages/_tenant.scss */
.tenant-header-actions {
  display: flex;
  gap: 1rem; }

/* line 370, static/scss/pages/_tenant.scss */
.tenant-content-card {
  display: flex;
  flex-direction: row;
  gap: 1rem; }

/* line 375, static/scss/pages/_tenant.scss */
.tenant-tab {
  flex: 1 1 0%;
  min-width: 0px;
  margin-top: 1rem; }

/* line 380, static/scss/pages/_tenant.scss */
.tenant-info-card {
  background: var(--color-bg-surface);
  margin-top: 1rem;
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  border: 1px solid var(--color-border-default);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 391, static/scss/pages/_tenant.scss */
.tenant-info-block-title {
  font-size: 0.7rem;
  font-weight: 900;
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
  display: flex;
  align-items: center; }
  /* line 400, static/scss/pages/_tenant.scss */
  .tenant-info-block-title i {
    margin-right: 0.5rem;
    font-size: 1rem;
    color: var(--color-accent); }

/* line 406, static/scss/pages/_tenant.scss */
.tenant-info-rows {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

/* line 411, static/scss/pages/_tenant.scss */
.tenant-info-pill {
  display: flex;
  flex-direction: column;
  padding: 0.75rem;
  background: var(--color-bg-surface-elevated);
  border-radius: 0.75rem;
  border: 1px solid var(--color-border); }

/* line 419, static/scss/pages/_tenant.scss */
.tenant-info-pill-label {
  font-size: 0.625rem;
  color: var(--color-text-tertiary);
  font-weight: 700;
  text-transform: uppercase; }

/* line 425, static/scss/pages/_tenant.scss */
.tenant-info-pill-value {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text-primary);
  margin-top: 0.1rem; }

/* line 431, static/scss/pages/_tenant.scss */
.tenant-address-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 0.5rem; }

/* line 437, static/scss/pages/_tenant.scss */
.tenant-address-icon {
  padding: 0.5rem;
  background: var(--color-bg-surface-elevated);
  color: var(--color-accent);
  border-radius: 0.5rem; }
  /* line 442, static/scss/pages/_tenant.scss */
  .tenant-address-icon i {
    font-size: 1.1rem; }

/* line 446, static/scss/pages/_tenant.scss */
.tenant-address-text {
  font-size: 0.75rem;
  line-height: 1.6; }
  /* line 449, static/scss/pages/_tenant.scss */
  .tenant-address-text p:first-child {
    font-weight: 700;
    color: var(--color-text-primary); }
  /* line 453, static/scss/pages/_tenant.scss */
  .tenant-address-text p {
    color: var(--color-text-secondary);
    margin: 0; }

/* line 458, static/scss/pages/_tenant.scss */
.tenant-contact-block {
  padding-top: 1rem;
  border-top: 1px solid var(--color-border-default); }

/* line 462, static/scss/pages/_tenant.scss */
.tenant-contact-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem; }

/* line 468, static/scss/pages/_tenant.scss */
.tenant-contact-avatar {
  width: 48px;
  height: 48px;
  border-radius: 1rem;
  background: var(--color-accent);
  color: var(--color-text-inverse);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 900;
  box-shadow: 0 4px 10px var(--color-accent-light);
  flex-shrink: 0; }

/* line 482, static/scss/pages/_tenant.scss */
.tenant-contact-name {
  font-size: 0.875rem;
  font-weight: 900;
  color: var(--color-text-primary);
  line-height: 1; }

/* line 488, static/scss/pages/_tenant.scss */
.tenant-contact-tag {
  font-size: 0.625rem;
  color: var(--color-accent);
  font-weight: 700; }

/* line 493, static/scss/pages/_tenant.scss */
.tenant-contact-links {
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

/* line 498, static/scss/pages/_tenant.scss */
.tenant-contact-email {
  display: flex;
  align-items: center;
  padding: 0.6rem;
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  background: var(--color-bg-secondary);
  border-radius: 0.75rem;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
  /* line 509, static/scss/pages/_tenant.scss */
  .tenant-contact-email i {
    margin-right: 0.75rem;
    font-size: 1rem;
    opacity: 0.7; }
  /* line 514, static/scss/pages/_tenant.scss */
  .tenant-contact-email:hover {
    background: var(--color-accent-light);
    color: var(--color-accent);
    border-color: var(--color-accent); }

/* line 520, static/scss/pages/_tenant.scss */
.tenant-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem; }

/* line 525, static/scss/pages/_tenant.scss */
.tenant-contact-mini {
  display: flex;
  align-items: center;
  padding: 0.6rem;
  font-size: 0.625rem;
  color: var(--color-text-secondary);
  background: var(--color-bg-secondary);
  border: 1px solid transparent;
  border-radius: 0.75rem;
  text-decoration: none;
  transition: background 0.15s ease; }
  /* line 536, static/scss/pages/_tenant.scss */
  .tenant-contact-mini i {
    margin-right: 0.5rem;
    opacity: 0.7; }
  /* line 540, static/scss/pages/_tenant.scss */
  .tenant-contact-mini:hover {
    background: var(--color-accent-light);
    color: var(--color-accent);
    border-color: var(--color-accent); }

/* line 546, static/scss/pages/_tenant.scss */
.tenant-report-group {
  display: inline-flex;
  align-items: center;
  gap: 8px; }

/* line 552, static/scss/pages/_tenant.scss */
.tenant-report-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.1s ease; }

/* line 568, static/scss/pages/_tenant.scss */
.tenant-report-link i {
  font-size: 16px;
  color: var(--muted);
  transition: color 0.15s ease; }

/* line 574, static/scss/pages/_tenant.scss */
.tenant-report-link:hover {
  background: var(--gama-brand-teal-100);
  border-color: var(--gama-brand-teal-500);
  color: var(--gama-brand-teal-500); }

/* line 580, static/scss/pages/_tenant.scss */
.tenant-report-link:hover i {
  color: var(--gama-brand-teal-500); }

/* line 582, static/scss/pages/_tenant.scss */
.tenant-report-link:active {
  transform: translateY(1px); }

/* line 584, static/scss/pages/_tenant.scss */
.tenant-report-link:focus-visible {
  outline: none;
  border-color: var(--gama-brand-teal-500);
  box-shadow: 0 0 0 3px var(--gama-brand-teal-100); }

/* Conteneur principal */
/* line 591, static/scss/pages/_tenant.scss */
.tenant-dropdown {
  position: relative;
  display: inline-block; }

/* Menu principal */
/* line 597, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu,
.tenant-submenu {
  display: none;
  position: absolute;
  background-color: #ffffff;
  min-width: 180px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border-radius: 6px;
  list-style: none;
  padding: 6px 0;
  margin: 0;
  z-index: 1000; }

/* line 611, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu {
  top: 100%;
  right: 0;
  /* Aligné à droite du bouton */ }

/* Affichage du menu principal via JS */
/* line 617, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu.show {
  display: block; }

/* Éléments de liste et liens */
/* line 622, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu li {
  position: relative; }

/* line 626, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 16px;
  color: #333333;
  text-decoration: none;
  font-size: 14px;
  transition: background-color 0.2s ease; }

/* line 637, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu a:hover {
  background-color: #f5f5f5; }

/* Gestion du sous-menu (Rapport) */
/* line 642, static/scss/pages/_tenant.scss */
.tenant-has-submenu:hover > .tenant-submenu {
  display: block; }

/* line 645, static/scss/pages/_tenant.scss */
.tenant-dropdown-menu.show {
  display: block !important; }

/* line 648, static/scss/pages/_tenant.scss */
.tenant-submenu {
  top: 0;
  right: 100%;
  /* S'ouvre sur la gauche du menu principal */
  margin-right: 2px; }

/* line 654, static/scss/pages/_tenant.scss */
.tenant-submenu-icon {
  font-size: 16px;
  margin-left: 8px; }

/* line 666, static/scss/pages/_tenant.scss */
.tenant-logo-icon {
  width: 50px;
  height: 50px;
  border-radius: 10px;
  background: none;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text-tertiary);
  flex-shrink: 0;
  overflow: hidden; }

/* line 667, static/scss/pages/_tenant.scss */
.tenant-logo-icon img {
  width: 100%;
  height: 100%;
  object-fit: scale-down; }

/* line 668, static/scss/pages/_tenant.scss */
.tenant-badge.slate {
  background: var(--color-bg-secondary);
  color: var(--color-text-secondary); }

/* line 669, static/scss/pages/_tenant.scss */
.tenant-badge.amber {
  background: var(--color-bg-amber, var(--color-warning-bg));
  color: var(--color-text-amber, #b45309);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 10px; }

/* line 670, static/scss/pages/_tenant.scss */
.tenant-link {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-text-link);
  text-decoration: none;
  white-space: nowrap; }

/* line 671, static/scss/pages/_tenant.scss */
.tenant-link:hover {
  text-decoration: underline; }

/* line 672, static/scss/pages/_tenant.scss */
.tenant-panel-empty {
  padding: 28px;
  text-align: center;
  color: var(--color-text-secondary);
  font-size: 13px;
  font-style: italic; }

/* line 673, static/scss/pages/_tenant.scss */
.tenant-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px; }

/* line 674, static/scss/pages/_tenant.scss */
.tenant-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  display: flex;
  align-items: center;
  gap: 8px; }

/* line 675, static/scss/pages/_tenant.scss */
.tenant-section-title::before {
  content: '';
  display: block;
  width: 3px;
  height: 14px;
  background: var(--color-primary);
  border-radius: 2px; }

/* line 676, static/scss/pages/_tenant.scss */
.tenant-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px; }

/* line 677, static/scss/pages/_tenant.scss */
.tenant-card {
  background: var(--color-bg-primary);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 15px 16px;
  display: block;
  transition: border-color 0.15s, box-shadow 0.15s; }

/* line 678, static/scss/pages/_tenant.scss */
.tenant-card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 3px 16px rgba(43, 211, 198, 0.1); }

/* line 679, static/scss/pages/_tenant.scss */
.tenant-card-top {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 11px; }

/* line 680, static/scss/pages/_tenant.scss */
.tenant-avatar {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--color-bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
  color: var(--color-text-primary);
  flex-shrink: 0;
  transition: background 0.15s; }

/* line 681, static/scss/pages/_tenant.scss */
.tenant-card:hover .tenant-avatar {
  background: var(--color-bg-amber, var(--color-warning-bg)); }

/* line 682, static/scss/pages/_tenant.scss */
.tenant-org-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text-primary);
  transition: color 0.15s;
  text-decoration: none; }

/* line 683, static/scss/pages/_tenant.scss */
.tenant-card:hover .tenant-org-name {
  color: var(--color-text-link); }

/* line 684, static/scss/pages/_tenant.scss */
.tenant-org-id {
  font-size: 11px;
  color: var(--color-text-secondary);
  font-weight: 500;
  margin-top: 1px; }

/* line 686, static/scss/pages/_tenant.scss */
.tenant-card-bottom {
  margin-top: 11px;
  padding-top: 11px;
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px; }

/* line 687, static/scss/pages/_tenant.scss */
.tenant-contracts {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  flex: 1; }

/* line 688, static/scss/pages/_tenant.scss */
.tenant-contract {
  padding: 2px 8px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--color-bg-primary);
  color: var(--color-text-primary); }

/* line 689, static/scss/pages/_tenant.scss */
.tenant-no-contract {
  font-size: 12px;
  color: var(--color-text-secondary);
  font-style: italic; }

/* line 690, static/scss/pages/_tenant.scss */
.tenant-card-actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0; }

/* line 691, static/scss/pages/_tenant.scss */
.tenant-icon-btn {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--color-text-secondary);
  text-decoration: none;
  background: var(--color-bg-primary);
  transition: color 0.12s, border-color 0.12s, background 0.12s; }

/* line 692, static/scss/pages/_tenant.scss */
.tenant-icon-btn:hover {
  color: var(--color-text-link);
  border-color: var(--color-border-hover, #cbd5e1);
  background: var(--color-bg-secondary); }

/* line 693, static/scss/pages/_tenant.scss */
.tenant-icon-btn.danger:hover {
  color: var(--color-text-danger, var(--color-danger));
  border-color: var(--color-border-danger, #fee2e2);
  background: var(--color-bg-danger, var(--color-danger-bg)); }

/* line 694, static/scss/pages/_tenant.scss */
.tenant-empty {
  grid-column: 1 / -1;
  padding: 52px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background: var(--color-bg-primary);
  border: 1px solid var(--color-border);
  border-radius: 14px; }

/* line 695, static/scss/pages/_tenant.scss */
.tenant-empty-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--color-bg-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  color: var(--color-text-secondary); }

/* line 696, static/scss/pages/_tenant.scss */
.tenant-empty p {
  font-size: 13px;
  color: var(--color-text-secondary);
  font-weight: 500; }

/* line 697, static/scss/pages/_tenant.scss */
.tenant-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 16px; }

/* line 698, static/scss/pages/_tenant.scss */
.tenant-page-info {
  font-size: 12px;
  color: var(--color-text-secondary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em; }

/* line 699, static/scss/pages/_tenant.scss */
.tenant-page-nav {
  display: flex;
  gap: 4px; }

/* line 700, static/scss/pages/_tenant.scss */
.tenant-page-btn {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  border: 1px solid var(--color-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text-secondary);
  background: var(--color-bg-primary);
  text-decoration: none;
  transition: border-color 0.15s, color 0.15s; }

/* line 701, static/scss/pages/_tenant.scss */
.tenant-page-btn:hover {
  border-color: var(--color-border-hover, #cbd5e1);
  color: var(--color-text-link); }

/* line 702, static/scss/pages/_tenant.scss */
.tenant-page-btn.active {
  background: var(--color-bg-secondary);
  color: var(--color-text-primary);
  border-color: transparent;
  box-shadow: 0 3px 10px rgba(43, 211, 198, 0.3); }

/* line 703, static/scss/pages/_tenant.scss */
.tenant-page-btn.disabled {
  opacity: 0.3;
  pointer-events: none; }

/* line 1, static/scss/pages/_todos.scss */
.todo-main {
  font-family: 'Inter';
  padding-top: 2rem;
  padding-bottom: 2rem;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto; }

/* line 9, static/scss/pages/_todos.scss */
.todo-header {
  gap: 1rem;
  justify-content: space-between;
  flex-direction: row;
  display: flex;
  margin-bottom: 2rem; }

/* line 16, static/scss/pages/_todos.scss */
.todo-header-title {
  color: var(--gama-brand-teal-500);
  letter-spacing: -0.025em;
  font-weight: 900;
  font-size: 1.875rem;
  line-height: 2.25rem;
  margin: 0; }

/* line 24, static/scss/pages/_todos.scss */
.todo-header-subtitle {
  color: var(--color-text-secondary);
  font-style: italic;
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.25rem;
  margin: 0; }

/* line 32, static/scss/pages/_todos.scss */
.todo-content {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  display: grid; }

/* line 37, static/scss/pages/_todos.scss */
.todo-content-list {
  grid-column: span 2 / span 2; }

/* line 40, static/scss/pages/_todos.scss */
.todo-section-title--waiting {
  color: var(--gama-brand-orange-500);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 900;
  font-size: 1.1rem;
  line-height: 1rem;
  align-items: center;
  display: flex;
  margin-bottom: 1rem;
  margin-left: 1rem; }
  /* line 51, static/scss/pages/_todos.scss */
  .todo-section-title--waiting i {
    margin-right: 1rem; }

/* line 55, static/scss/pages/_todos.scss */
.todo-section-title--finish {
  color: var(--gama-brand-teal-700);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 900;
  font-size: 1.1rem;
  line-height: 1rem;
  align-items: center;
  display: flex;
  margin-bottom: 1rem;
  margin-left: 1rem; }
  /* line 66, static/scss/pages/_todos.scss */
  .todo-section-title--finish i {
    margin-right: 1rem; }

/* line 70, static/scss/pages/_todos.scss */
.todo-section-list {
  gap: 0.75rem;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  display: grid; }

/* line 78, static/scss/pages/_todos.scss */
.todo-card-result {
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  padding: 1rem;
  border-radius: 2rem;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default); }

/* line 85, static/scss/pages/_todos.scss */
.todo-card-result-title {
  letter-spacing: -0.025em;
  color: var(--color-text-primary);
  font-weight: 900;
  margin-bottom: 1rem; }

/* line 91, static/scss/pages/_todos.scss */
.todo-card-text-wrapper {
  justify-content: space-between;
  align-items: center;
  display: flex; }

/* line 96, static/scss/pages/_todos.scss */
.todo-card-text {
  color: var(--color-text-secondary);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.25rem; }

/* line 102, static/scss/pages/_todos.scss */
.todo-card-text-count {
  font-weight: 900;
  color: var(--gama-brand-teal-700);
  font-size: 0.875rem;
  line-height: 1.25rem; }

/* line 108, static/scss/pages/_todos.scss */
.todo-card-bar-wrapper {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
  --tw-bg-opacity: 1;
  background: var(--color-bg-surface);
  border-radius: 9999px;
  overflow: hidden;
  width: 100%;
  height: 0.5rem; }

/* line 119, static/scss/pages/_todos.scss */
.todo-card-bar {
  transition-duration: 500ms;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
  --tw-bg-opacity: 1;
  background: var(--gama-brand-teal-500);
  height: 100%; }

/* line 128, static/scss/pages/_todos.scss */
.todo-card-progress {
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  font-weight: 700;
  font-size: 10px; }

/* line 1, static/scss/pages/_settings.scss */
.settings {
  --settings-sidebar-w: 17.5rem;
  --settings-gutter: 1.5rem;
  min-height: 100%;
  background: var(--color-bg-page);
  color: var(--color-text-primary); }
  /* line 10, static/scss/pages/_settings.scss */
  .settings__mobile-bar {
    display: none;
    align-items: center;
    height: var(--header-height);
    padding-inline: var(--settings-gutter);
    background: var(--color-bg-surface);
    border-bottom: 1px solid var(--color-border-default);
    position: sticky;
    top: 0;
    z-index: 20; }
  /* line 22, static/scss/pages/_settings.scss */
  .settings__mobile-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-sm);
    background: var(--color-bg-surface);
    color: var(--color-text-primary);
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast); }
    /* line 36, static/scss/pages/_settings.scss */
    .settings__mobile-toggle i {
      font-size: 1.25rem;
      color: var(--color-primary); }
    /* line 41, static/scss/pages/_settings.scss */
    .settings__mobile-toggle:hover {
      background: var(--color-bg-surface-alt);
      border-color: var(--color-border-strong); }
    /* line 46, static/scss/pages/_settings.scss */
    .settings__mobile-toggle:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  /* line 53, static/scss/pages/_settings.scss */
  .settings__shell {
    display: grid;
    grid-template-columns: var(--settings-sidebar-w) 1fr;
    align-items: start;
    margin-inline: auto; }
  /* line 61, static/scss/pages/_settings.scss */
  .settings__sidebar {
    position: sticky;
    top: 0;
    align-self: start;
    padding: 1.75rem 1rem 2rem;
    background: var(--color-bg-surface);
    border-right: 1px solid var(--color-border-default);
    scrollbar-width: thin;
    scrollbar-color: var(--color-border-strong) transparent; }
  /* line 76, static/scss/pages/_settings.scss */
  .settings__sidebar-head {
    padding: 0 0.75rem 1.25rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-border-soft); }
  /* line 82, static/scss/pages/_settings.scss */
  .settings__sidebar-title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--color-text-primary); }
  /* line 90, static/scss/pages/_settings.scss */
  .settings__sidebar-subtitle {
    margin: 0.125rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary); }
  /* line 97, static/scss/pages/_settings.scss */
  .settings__nav {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }
  /* line 103, static/scss/pages/_settings.scss */
  .settings__nav-group {
    display: flex;
    flex-direction: column;
    gap: 0.125rem; }
  /* line 109, static/scss/pages/_settings.scss */
  .settings__nav-label {
    margin: 0 0 0.375rem;
    padding: 0 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-tertiary); }
  /* line 119, static/scss/pages/_settings.scss */
  .settings__nav-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast); }
    /* line 131, static/scss/pages/_settings.scss */
    .settings__nav-item:hover {
      background: var(--color-bg-surface-alt);
      color: var(--color-text-primary); }
    /* line 136, static/scss/pages/_settings.scss */
    .settings__nav-item:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
    /* line 141, static/scss/pages/_settings.scss */
    .settings__nav-item.is-active {
      background: var(--color-primary-soft);
      color: var(--color-primary);
      font-weight: 600; }
      /* line 146, static/scss/pages/_settings.scss */
      .settings__nav-item.is-active .settings__nav-icon {
        color: var(--color-primary); }
  /* line 152, static/scss/pages/_settings.scss */
  .settings__nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    flex-shrink: 0;
    border-radius: var(--radius-xs);
    color: var(--color-text-tertiary);
    background: transparent;
    font-size: 1.125rem; }
    /* line 164, static/scss/pages/_settings.scss */
    .settings__nav-icon--immich {
      color: #0369a1; }
    /* line 165, static/scss/pages/_settings.scss */
    .settings__nav-icon--tactical {
      color: #15803d; }
  /* line 169, static/scss/pages/_settings.scss */
  .settings__nav-subgroup {
    margin-top: 0.25rem; }
  /* line 173, static/scss/pages/_settings.scss */
  .settings__nav-sublabel {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin: 0;
    padding: 0.5rem 0.75rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-text-secondary); }
  /* line 184, static/scss/pages/_settings.scss */
  .settings__nav-sublist {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    margin-left: 2.375rem;
    padding-left: 0.75rem;
    border-left: 1px solid var(--color-border-default); }
  /* line 193, static/scss/pages/_settings.scss */
  .settings__nav-subitem {
    padding: 0.4375rem 0.625rem;
    border-radius: var(--radius-xs);
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast); }
    /* line 201, static/scss/pages/_settings.scss */
    .settings__nav-subitem:hover {
      background: var(--color-bg-surface-alt);
      color: var(--color-text-primary); }
    /* line 206, static/scss/pages/_settings.scss */
    .settings__nav-subitem.is-active {
      color: var(--color-primary);
      font-weight: 600;
      background: var(--color-primary-soft-2); }
  /* line 213, static/scss/pages/_settings.scss */
  .settings__main {
    min-width: 0;
    padding: 2rem var(--settings-gutter) 3rem; }
  /* line 218, static/scss/pages/_settings.scss */
  .settings__content {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }

@media (max-width: 960px) {
  /* line 227, static/scss/pages/_settings.scss */
  .settings__mobile-bar {
    display: flex; }
  /* line 231, static/scss/pages/_settings.scss */
  .settings__shell {
    grid-template-columns: 1fr; }
  /* line 235, static/scss/pages/_settings.scss */
  .settings__sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 40;
    width: 20rem;
    height: 100vh;
    box-shadow: var(--shadow-xl);
    transform: translateX(-100%);
    transition: transform var(--transition-slow); }
  /* line 248, static/scss/pages/_settings.scss */
  .settings.is-nav-open .settings__sidebar {
    transform: translateX(0); }
  /* line 252, static/scss/pages/_settings.scss */
  .settings__overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 30;
    background: var(--color-bg-overlay);
    backdrop-filter: blur(1px); }
    /* line 260, static/scss/pages/_settings.scss */
    .settings__overlay[hidden] {
      display: none; }
  /* line 265, static/scss/pages/_settings.scss */
  .settings__main {
    padding: 1.5rem 1rem 2.5rem; } }

/* line 273, static/scss/pages/_settings.scss */
.pg-header .header-title .pg-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--gama-brand-teal-500);
  letter-spacing: -0.01em; }

/* line 279, static/scss/pages/_settings.scss */
.pg-header .header-title .pg-sub {
  font-size: 11px;
  color: var(--color-text-secondary);
  margin-top: 2px; }

/* line 285, static/scss/pages/_settings.scss */
.pg-header .header-actions {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 20px;
  gap: 12px;
  flex-wrap: wrap; }

/* line 294, static/scss/pages/_settings.scss */
.user-box {
  display: flex;
  flex-direction: column; }
  /* line 297, static/scss/pages/_settings.scss */
  .user-box .user-fullname {
    color: var(--gama-brand-blue-500); }
  /* line 300, static/scss/pages/_settings.scss */
  .user-box .user-name {
    color: var(--gama-brand-orange-300); }
  /* line 303, static/scss/pages/_settings.scss */
  .user-box .user-id {
    color: var(--color-text-tertiary);
    font-style: italic; }

/* line 308, static/scss/pages/_settings.scss */
.pg-actions {
  flex-grow: 1;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem; }

/* line 314, static/scss/pages/_settings.scss */
.type-name {
  color: var(--gama-brand-blue-500); }

/* line 315, static/scss/pages/_settings.scss */
.type-icon {
  background-color: var(--color-neutral-100);
  color: var(--color-text-secondary);
  border: 1px solid transparent;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700; }
  /* line 327, static/scss/pages/_settings.scss */
  .type-icon img {
    width: 2.25rem;
    height: 2.25rem; }

/* line 333, static/scss/pages/_settings.scss */
.service-info {
  gap: 1rem;
  align-items: flex-start;
  display: flex; }
  /* line 337, static/scss/pages/_settings.scss */
  .service-info .service-icon-wrapper {
    background-color: var(--gama-brand-orange-100);
    border-radius: 0.5rem;
    justify-content: center;
    align-items: center;
    height: 2.5rem;
    width: 2.5rem;
    display: flex; }
    /* line 345, static/scss/pages/_settings.scss */
    .service-info .service-icon-wrapper i {
      color: var(--gama-brand-orange-500);
      font-size: 1.5rem; }

/* line 351, static/scss/pages/_settings.scss */
.service-name {
  color: var(--color-text-primary);
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.25rem;
  display: block; }

/* line 358, static/scss/pages/_settings.scss */
.service-desc {
  overflow: hidden;
  color: var(--color-text-tertiary);
  font-style: italic;
  font-weight: 500;
  font-size: 11px;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden; }

/* line 369, static/scss/pages/_settings.scss */
.price-stack {
  gap: 0.5rem;
  flex-direction: column;
  display: flex; }
  /* line 373, static/scss/pages/_settings.scss */
  .price-stack .price-main {
    gap: 0.5rem;
    align-items: center;
    display: flex;
    border-bottom: 1px solid var(--gama-brand-orange-500); }
    /* line 378, static/scss/pages/_settings.scss */
    .price-stack .price-main .price-value {
      color: var(--gama-brand-blue-500);
      font-weight: 900;
      font-size: 0.875rem;
      line-height: 1.25rem;
      letter-spacing: -0.025rem; }
    /* line 385, static/scss/pages/_settings.scss */
    .price-stack .price-main .price-label {
      color: var(--gama-brand-orange-300);
      letter-spacing: 0.1rem;
      text-transform: uppercase;
      font-weight: 700;
      font-size: 9px; }
  /* line 393, static/scss/pages/_settings.scss */
  .price-stack .price-badges-grid {
    gap: 0.375rem;
    flex-wrap: wrap;
    display: flex;
    margin-top: 0.25rem; }

/* line 400, static/scss/pages/_settings.scss */
.form-date {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500; }
  /* line 409, static/scss/pages/_settings.scss */
  .form-date::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: currentColor;
    flex-shrink: 0; }
  /* line 417, static/scss/pages/_settings.scss */
  .form-date.ok {
    background-color: var(--gama-brand-teal-200);
    border: 1px solid var(--gama-brand-teal-500);
    color: var(--gama-brand-teal-500); }
  /* line 422, static/scss/pages/_settings.scss */
  .form-date.expired {
    background-color: var(--color-danger-200);
    border: 1px solid var(--color-danger-500);
    color: var(--color-danger-500); }
  /* line 427, static/scss/pages/_settings.scss */
  .form-date.expire-soon {
    background-color: var(--gama-brand-orange-200);
    border: 1px solid var(--gama-brand-orange-500);
    color: var(--gama-brand-orange-500); }

/* line 1, static/scss/pages/tenants/_dashboard.scss */
.dashboard {
  display: flex;
  flex-direction: column;
  gap: 2rem; }
  /* line 6, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stats-grid {
    display: flex;
    gap: 1rem; }
    /* line 9, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stats-grid a {
      width: 10rem; }
  /* line 15, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-link-card,
  .dashboard .stat-highlight-card {
    padding: 1.25rem;
    border-radius: 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    text-decoration: none;
    transition: all 0.2s ease-in-out; }
  /* line 27, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-link-card {
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border-default); }
    /* line 31, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stat-link-card:hover {
      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); }
  /* line 36, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-card-teal:hover {
    border-color: var(--gama-brand-teal-700); }
  /* line 37, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-card-orange:hover {
    border-color: var(--gama-brand-orange-500); }
  /* line 38, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-card-dark {
    border-color: var(--color-border-default);
    outline: 2px solid var(--color-border-default); }
    /* line 41, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stat-card-dark:hover {
      border-color: var(--color-border-default); }
  /* line 44, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-highlight-card {
    background-color: var(--gama-brand-teal-500);
    color: var(--color-bg-surface); }
  /* line 49, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em; }
    /* line 56, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stat-label.stat-label-active-dark {
      color: var(--color-border-default); }
  /* line 61, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-highlight-label {
    font-size: 0.75rem;
    font-weight: 700;
    opacity: 0.8;
    text-transform: uppercase;
    letter-spacing: 0.05em; }
  /* line 69, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 0.5rem; }
  /* line 76, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-num-teal {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--gama-brand-teal-700); }
  /* line 77, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-num-orange {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--gama-brand-orange-500); }
  /* line 78, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-num-dark {
    font-size: 1.875rem;
    font-weight: 700;
    color: #374151; }
  /* line 79, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-highlight-value {
    font-size: 1.875rem;
    font-weight: 700; }
  /* line 82, static/scss/pages/tenants/_dashboard.scss */
  .dashboard .stat-icon-box {
    padding: 0.5rem;
    border-radius: 0.5rem; }
    /* line 86, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stat-icon-box.stat-icon-teal {
      background-color: var(--gama-brand-teal-300);
      color: var(--gama-brand-teal-500); }
    /* line 87, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stat-icon-box.stat-icon-orange {
      background-color: var(--gama-brand-orange-300);
      color: var(--gama-brand-orange-400); }
    /* line 88, static/scss/pages/tenants/_dashboard.scss */
    .dashboard .stat-icon-box.stat-icon-gray {
      background-color: var(--color-bg-surface);
      color: var(--color-border-default); }

/* line 91, static/scss/pages/tenants/_dashboard.scss */
.content-grid {
  display: flex;
  flex-direction: row;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 2rem; }
  /* line 98, static/scss/pages/tenants/_dashboard.scss */
  .content-grid .column {
    display: flex;
    flex-direction: column;
    gap: 1rem; }
  /* line 104, static/scss/pages/tenants/_dashboard.scss */
  .content-grid .column-header {
    display: flex;
    align-items: center;
    justify-content: space-between; }
    /* line 109, static/scss/pages/tenants/_dashboard.scss */
    .content-grid .column-header .column-title {
      font-size: 1.125rem;
      font-weight: 700;
      color: #1f2937;
      display: flex;
      align-items: center;
      margin: 0; }
      /* line 117, static/scss/pages/tenants/_dashboard.scss */
      .content-grid .column-header .column-title i {
        margin-right: 0.5rem;
        color: var(--gama-brand-teal-500); }
    /* line 123, static/scss/pages/tenants/_dashboard.scss */
    .content-grid .column-header .link-see-all {
      font-size: 0.875rem;
      color: var(--gama-brand-teal-700);
      text-decoration: none; }
      /* line 127, static/scss/pages/tenants/_dashboard.scss */
      .content-grid .column-header .link-see-all:hover {
        text-decoration: underline; }

/* line 131, static/scss/pages/tenants/_dashboard.scss */
.tickets-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }
  /* line 136, static/scss/pages/tenants/_dashboard.scss */
  .tickets-list .ticket-card {
    display: block;
    background-color: var(--color-bg-surface);
    padding: 1rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(var(--color-border-default), 0.1);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    text-decoration: none;
    transition: all 0.2s ease-in-out; }
    /* line 146, static/scss/pages/tenants/_dashboard.scss */
    .tickets-list .ticket-card:hover {
      border-color: var(--gama-brand-teal-500);
      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); }
      /* line 150, static/scss/pages/tenants/_dashboard.scss */
      .tickets-list .ticket-card:hover .ticket-title {
        color: var(--gama-brand-teal-700); }
    /* line 153, static/scss/pages/tenants/_dashboard.scss */
    .tickets-list .ticket-card .ticket-top {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      margin-bottom: 0.5rem; }
      /* line 159, static/scss/pages/tenants/_dashboard.scss */
      .tickets-list .ticket-card .ticket-top .ticket-id {
        font-size: 10px;
        font-weight: 700;
        padding: 0.125rem 0.5rem;
        background-color: var(--color-bg-surface);
        color: var(--color-border-default);
        border-radius: 0.25rem;
        text-transform: uppercase;
        letter-spacing: -0.05em; }
      /* line 170, static/scss/pages/tenants/_dashboard.scss */
      .tickets-list .ticket-card .ticket-top .ticket-meta {
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
        /* line 175, static/scss/pages/tenants/_dashboard.scss */
        .tickets-list .ticket-card .ticket-top .ticket-meta .ticket-contact {
          font-size: 10px;
          color: var(--gama-brand-teal-700);
          font-weight: 700; }
        /* line 181, static/scss/pages/tenants/_dashboard.scss */
        .tickets-list .ticket-card .ticket-top .ticket-meta .ticket-date {
          font-size: 9px;
          color: var(--color-border-default);
          font-style: italic; }
    /* line 189, static/scss/pages/tenants/_dashboard.scss */
    .tickets-list .ticket-card .ticket-title {
      font-weight: 700;
      color: #1f2937;
      margin: 0;
      font-size: 1rem;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      transition: color 0.2s ease; }
    /* line 200, static/scss/pages/tenants/_dashboard.scss */
    .tickets-list .ticket-card .ticket-desc {
      font-size: 0.75rem;
      color: #4b5563;
      margin-top: 0.25rem;
      margin-bottom: 0;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden; }
    /* line 211, static/scss/pages/tenants/_dashboard.scss */
    .tickets-list .ticket-card .ticket-badges {
      margin-top: 0.75rem;
      display: flex;
      align-items: center; }
      /* line 216, static/scss/pages/tenants/_dashboard.scss */
      .tickets-list .ticket-card .ticket-badges .ticket-state-badge {
        padding: 0.125rem 0.5rem;
        border-radius: 9999px;
        font-size: 10px;
        font-weight: 700;
        border: 1px solid transparent; }
        /* line 223, static/scss/pages/tenants/_dashboard.scss */
        .tickets-list .ticket-card .ticket-badges .ticket-state-badge.state-teal {
          background-color: var(--gama-brand-teal-300);
          color: var(--gama-brand-teal-700);
          border-color: #ccfbf1; }
        /* line 228, static/scss/pages/tenants/_dashboard.scss */
        .tickets-list .ticket-card .ticket-badges .ticket-state-badge.state-orange {
          background-color: var(--gama-brand-orange-300);
          color: var(--gama-brand-orange-500);
          border-color: #ffedd5; }
        /* line 233, static/scss/pages/tenants/_dashboard.scss */
        .tickets-list .ticket-card .ticket-badges .ticket-state-badge.state-red {
          background-color: #fef2f2;
          color: #ef4444;
          border-color: #fee2e2; }
  /* line 242, static/scss/pages/tenants/_dashboard.scss */
  .tickets-list .empty-box {
    padding: 2rem;
    text-align: center;
    background-color: var(--color-bg-surface);
    border-radius: 0.75rem;
    border: 1px dashed var(--color-border-default);
    color: var(--color-border-default);
    font-size: 0.875rem; }

/* line 256, static/scss/pages/tenants/_dashboard.scss */
.activity-panel {
  background-color: var(--color-bg-surface);
  border-radius: 0.75rem;
  border: 1px solid var(--color-border-default);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  overflow: hidden; }
  /* line 263, static/scss/pages/tenants/_dashboard.scss */
  .activity-panel .activity-list {
    display: flex;
    flex-direction: column; }
    /* line 267, static/scss/pages/tenants/_dashboard.scss */
    .activity-panel .activity-list .activity-item {
      padding: 1rem;
      display: flex;
      gap: 1rem;
      border-bottom: 1px solid #f9fafb;
      transition: background-color 0.2s ease; }
      /* line 274, static/scss/pages/tenants/_dashboard.scss */
      .activity-panel .activity-list .activity-item:last-child {
        border-bottom: none; }
      /* line 275, static/scss/pages/tenants/_dashboard.scss */
      .activity-panel .activity-list .activity-item:hover {
        background-color: var(--color-bg-surface); }
      /* line 277, static/scss/pages/tenants/_dashboard.scss */
      .activity-panel .activity-list .activity-item .activity-avatar-wrap {
        flex-shrink: 0; }
        /* line 280, static/scss/pages/tenants/_dashboard.scss */
        .activity-panel .activity-list .activity-item .activity-avatar-wrap .activity-avatar {
          width: 2.5rem;
          height: 2.5rem;
          border-radius: 9999px;
          background: linear-gradient(to bottom right, var(--gama-brand-teal-500), var(--gama-brand-teal-700));
          border: 2px solid var(--color-bg-surface);
          box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
          display: flex;
          align-items: center;
          justify-content: center;
          color: var(--color-bg-surface);
          font-size: 0.75rem;
          font-weight: 700;
          overflow: hidden; }
          /* line 295, static/scss/pages/tenants/_dashboard.scss */
          .activity-panel .activity-list .activity-item .activity-avatar-wrap .activity-avatar img {
            width: 100%;
            height: 100%;
            object-fit: cover; }
      /* line 303, static/scss/pages/tenants/_dashboard.scss */
      .activity-panel .activity-list .activity-item .activity-body {
        flex: 1;
        min-width: 0; }
        /* line 307, static/scss/pages/tenants/_dashboard.scss */
        .activity-panel .activity-list .activity-item .activity-body .activity-top {
          display: flex;
          justify-content: space-between;
          align-items: flex-start; }
          /* line 312, static/scss/pages/tenants/_dashboard.scss */
          .activity-panel .activity-list .activity-item .activity-body .activity-top .activity-action {
            font-size: 0.875rem;
            font-weight: 700;
            color: var(--gama-brand-teal-700);
            margin: 0; }
            /* line 318, static/scss/pages/tenants/_dashboard.scss */
            .activity-panel .activity-list .activity-item .activity-body .activity-top .activity-action .activity-target {
              font-weight: 500;
              color: #6b7280; }
          /* line 324, static/scss/pages/tenants/_dashboard.scss */
          .activity-panel .activity-list .activity-item .activity-body .activity-top .activity-time {
            font-size: 10px;
            color: var(--color-border-default);
            font-weight: 500; }
        /* line 331, static/scss/pages/tenants/_dashboard.scss */
        .activity-panel .activity-list .activity-item .activity-body .activity-detail {
          font-size: 0.75rem;
          color: #4b5563;
          margin-top: 0.25rem;
          margin-bottom: 0; }
          /* line 337, static/scss/pages/tenants/_dashboard.scss */
          .activity-panel .activity-list .activity-item .activity-body .activity-detail strong {
            font-weight: 600; }
        /* line 340, static/scss/pages/tenants/_dashboard.scss */
        .activity-panel .activity-list .activity-item .activity-body .activity-user {
          font-size: 10px;
          color: var(--color-border-default);
          margin-top: 0.25rem;
          margin-bottom: 0;
          font-style: italic; }
    /* line 350, static/scss/pages/tenants/_dashboard.scss */
    .activity-panel .activity-list .empty-activity {
      padding: 2rem;
      text-align: center;
      color: var(--color-border-default);
      font-size: 0.875rem; }

/* line 1, static/scss/pages/tenants/_tickets.scss */
.ticket-show {
  display: flex;
  flex-direction: column; }
  /* line 4, static/scss/pages/tenants/_tickets.scss */
  .ticket-show .ticket-title {
    color: var(--gama-brand-blue-500);
    font-weight: 600;
    font-size: 1.125rem; }
  /* line 9, static/scss/pages/tenants/_tickets.scss */
  .ticket-show .ticket-number {
    font-style: italic;
    color: var(--gama-brand-orange-300); }

/* line 14, static/scss/pages/tenants/_tickets.scss */
.ticket-user {
  display: flex;
  flex-direction: column; }
  /* line 17, static/scss/pages/tenants/_tickets.scss */
  .ticket-user .ticket-contact {
    color: var(--color-text-primary); }
  /* line 20, static/scss/pages/tenants/_tickets.scss */
  .ticket-user .ticket-agent {
    color: var(--color-text-secondary); }

/* line 24, static/scss/pages/tenants/_tickets.scss */
.ticket-state {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700; }

/* line 32, static/scss/pages/tenants/_tickets.scss */
.ticket-time {
  display: flex;
  flex-direction: column; }

/* line 36, static/scss/pages/tenants/_tickets.scss */
.ticket-date {
  font-weight: 600; }

/* line 39, static/scss/pages/tenants/_tickets.scss */
.ticket-time-by {
  color: var(--color-text-secondary); }

/* line 42, static/scss/pages/tenants/_tickets.scss */
.ticket-search {
  width: 300px; }

/* ===== Base ===== */
/* line 46, static/scss/pages/tenants/_tickets.scss */
.ticket-page {
  padding: 1.5rem;
  background-color: #fcfcfc;
  min-height: 100vh;
  font-family: 'Inter', sans-serif; }

/* line 53, static/scss/pages/tenants/_tickets.scss */
.ticket-container {
  max-width: 72rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* ===== Header ===== */
/* line 62, static/scss/pages/tenants/_tickets.scss */
.ticket-header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: space-between;
  background: #fff;
  padding: 1.5rem;
  border-radius: 1rem;
  border: 1px solid #f3f4f6;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); }

@media (min-width: 768px) {
  /* line 75, static/scss/pages/tenants/_tickets.scss */
  .ticket-header {
    flex-direction: row;
    align-items: center; } }

/* line 81, static/scss/pages/tenants/_tickets.scss */
.ticket-header-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem; }

/* line 87, static/scss/pages/tenants/_tickets.scss */
.ticket-title-row {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

/* line 93, static/scss/pages/tenants/_tickets.scss */
.ticket-id-badge {
  font-size: 11px;
  font-weight: 900;
  color: #166A63;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  background: rgba(22, 106, 99, 0.05);
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem; }

/* line 104, static/scss/pages/tenants/_tickets.scss */
.ticket-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #111827;
  letter-spacing: -0.02em; }

/* line 111, static/scss/pages/tenants/_tickets.scss */
.ticket-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 1rem;
  font-size: 12px;
  color: #6b7280;
  font-weight: 500; }

/* line 121, static/scss/pages/tenants/_tickets.scss */
.ticket-meta i {
  margin-right: 0.25rem; }

/* line 125, static/scss/pages/tenants/_tickets.scss */
.ticket-header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

/* line 131, static/scss/pages/tenants/_tickets.scss */
.ticket-state-badge {
  padding: 0.375rem 1rem;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 900;
  color: #fff;
  text-transform: uppercase;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); }

/* line 141, static/scss/pages/tenants/_tickets.scss */
.ticket-close-btn {
  padding: 0.5rem;
  color: #9ca3af;
  transition: color 0.2s; }

/* line 147, static/scss/pages/tenants/_tickets.scss */
.ticket-close-btn:hover {
  color: #4b5563; }

/* line 151, static/scss/pages/tenants/_tickets.scss */
.ticket-close-btn i {
  font-size: 1.25rem; }

/* ===== Grid layout ===== */
/* line 156, static/scss/pages/tenants/_tickets.scss */
.ticket-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }

@media (min-width: 1024px) {
  /* line 163, static/scss/pages/tenants/_tickets.scss */
  .ticket-grid {
    grid-template-columns: 2fr 1fr; } }

/* line 168, static/scss/pages/tenants/_tickets.scss */
.ticket-main {
  display: flex;
  flex-direction: column;
  gap: 2rem; }

/* ===== Timeline ===== */
/* line 175, static/scss/pages/tenants/_tickets.scss */
.ticket-timeline {
  position: relative;
  border-left: 2px solid #f3f4f6;
  margin-left: 1rem;
  padding-left: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

@media (min-width: 768px) {
  /* line 186, static/scss/pages/tenants/_tickets.scss */
  .ticket-timeline {
    margin-left: 1.5rem;
    padding-left: 2.5rem; } }

/* line 192, static/scss/pages/tenants/_tickets.scss */
.timeline-item {
  position: relative; }

/* line 196, static/scss/pages/tenants/_tickets.scss */
.timeline-dot {
  position: absolute;
  left: -33px;
  top: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 9999px;
  background: #fff;
  border: 2px solid;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); }

@media (min-width: 768px) {
  /* line 212, static/scss/pages/tenants/_tickets.scss */
  .timeline-dot {
    left: -49px; } }

/* line 217, static/scss/pages/tenants/_tickets.scss */
.timeline-dot i {
  font-size: 14px; }

/* line 221, static/scss/pages/tenants/_tickets.scss */
.timeline-dot-agent {
  border-color: #3b82f6; }

/* line 225, static/scss/pages/tenants/_tickets.scss */
.timeline-dot-agent i {
  color: #3b82f6; }

/* line 229, static/scss/pages/tenants/_tickets.scss */
.timeline-dot-customer {
  border-color: #166A63; }

/* line 233, static/scss/pages/tenants/_tickets.scss */
.timeline-dot-customer i {
  color: #166A63; }

/* line 237, static/scss/pages/tenants/_tickets.scss */
.timeline-empty {
  text-align: center;
  padding: 2.5rem 0; }

/* line 242, static/scss/pages/tenants/_tickets.scss */
.timeline-empty p {
  color: #9ca3af;
  font-style: italic;
  font-size: 14px;
  font-weight: 500; }

/* ===== Article card ===== */
/* line 250, static/scss/pages/tenants/_tickets.scss */
.article-card {
  background: #fff;
  border-radius: 1rem;
  border: 1px solid #f3f4f6;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  overflow: hidden; }

/* line 258, static/scss/pages/tenants/_tickets.scss */
.article-card-internal {
  background-color: rgba(255, 251, 235, 0.5);
  border-color: #fde68a; }

/* line 263, static/scss/pages/tenants/_tickets.scss */
.article-header {
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid #f9fafb;
  display: flex;
  justify-content: space-between;
  align-items: center; }

/* line 271, static/scss/pages/tenants/_tickets.scss */
.article-author {
  display: flex;
  align-items: center;
  gap: 0.5rem; }

/* line 277, static/scss/pages/tenants/_tickets.scss */
.article-author-name {
  font-size: 12px;
  font-weight: 700;
  color: #1f2937; }

/* line 283, static/scss/pages/tenants/_tickets.scss */
.article-sender-label {
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #9ca3af; }

/* line 291, static/scss/pages/tenants/_tickets.scss */
.article-internal-badge {
  background: #fef3c7;
  color: #b45309;
  font-size: 9px;
  font-weight: 900;
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  text-transform: uppercase; }

/* line 301, static/scss/pages/tenants/_tickets.scss */
.article-date {
  font-size: 10px;
  font-weight: 500;
  color: #9ca3af;
  font-style: italic; }

/* line 308, static/scss/pages/tenants/_tickets.scss */
.article-body {
  padding: 1.25rem;
  font-size: 14px;
  color: #374151;
  line-height: 1.6;
  font-weight: 400; }

/* line 316, static/scss/pages/tenants/_tickets.scss */
.article-attachments {
  padding: 0.75rem 1.25rem;
  background: rgba(249, 250, 251, 0.5);
  border-top: 1px solid #f9fafb;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem; }

/* line 325, static/scss/pages/tenants/_tickets.scss */
.attachment-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 11px;
  font-weight: 700;
  color: #4b5563;
  transition: color 0.2s; }

/* line 339, static/scss/pages/tenants/_tickets.scss */
.attachment-link:hover {
  color: #166A63; }

/* line 343, static/scss/pages/tenants/_tickets.scss */
.attachment-link i {
  color: #9ca3af; }

/* line 347, static/scss/pages/tenants/_tickets.scss */
.attachment-size {
  font-size: 9px;
  color: #d1d5db;
  font-weight: 400; }

/* ===== Reply card ===== */
/* line 354, static/scss/pages/tenants/_tickets.scss */
.reply-card {
  background: #fff;
  border-radius: 1rem;
  border: 1px solid #f3f4f6;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  padding: 1.5rem;
  margin-left: 1rem;
  padding-left: 1.5rem;
  position: relative; }

@media (min-width: 768px) {
  /* line 366, static/scss/pages/tenants/_tickets.scss */
  .reply-card {
    margin-left: 1.5rem;
    padding-left: 2.5rem; } }

/* line 372, static/scss/pages/tenants/_tickets.scss */
.reply-icon {
  position: absolute;
  left: -16px;
  top: 2rem;
  width: 2rem;
  height: 2rem;
  border-radius: 9999px;
  background: #166A63;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }

@media (min-width: 768px) {
  /* line 388, static/scss/pages/tenants/_tickets.scss */
  .reply-icon {
    left: -20px; } }

/* line 393, static/scss/pages/tenants/_tickets.scss */
.reply-icon i {
  font-size: 14px; }

/* line 397, static/scss/pages/tenants/_tickets.scss */
.reply-title {
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #9ca3af;
  margin-bottom: 1rem; }

/* line 406, static/scss/pages/tenants/_tickets.scss */
.reply-form {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

/* line 412, static/scss/pages/tenants/_tickets.scss */
.reply-textarea {
  width: 100%;
  padding: 1rem;
  border: 1px solid #f3f4f6;
  background: rgba(249, 250, 251, 0.3);
  border-radius: 0.75rem;
  font-size: 14px;
  min-height: 120px;
  outline: none;
  transition: all 0.2s; }

/* line 424, static/scss/pages/tenants/_tickets.scss */
.reply-textarea:focus {
  border-color: #166A63;
  box-shadow: 0 0 0 2px rgba(22, 106, 99, 0.05); }

/* line 429, static/scss/pages/tenants/_tickets.scss */
.reply-form-footer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: space-between; }

@media (min-width: 768px) {
  /* line 437, static/scss/pages/tenants/_tickets.scss */
  .reply-form-footer {
    flex-direction: row;
    align-items: center; } }

/* line 443, static/scss/pages/tenants/_tickets.scss */
.reply-file-input {
  font-size: 12px;
  color: #9ca3af;
  font-weight: 500;
  cursor: pointer; }

/* line 450, static/scss/pages/tenants/_tickets.scss */
.reply-file-input::file-selector-button {
  margin-right: 1rem;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  border: 0;
  font-size: 12px;
  font-weight: 700;
  background: rgba(22, 106, 99, 0.05);
  color: #166A63;
  cursor: pointer; }

/* line 462, static/scss/pages/tenants/_tickets.scss */
.reply-buttons {
  display: flex;
  align-items: center;
  gap: 0.5rem; }

/* ===== Sidebar ===== */
/* line 469, static/scss/pages/tenants/_tickets.scss */
.ticket-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 475, static/scss/pages/tenants/_tickets.scss */
.sidebar-card {
  background: #fff;
  border-radius: 1rem;
  border: 1px solid #f3f4f6;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  overflow: hidden; }

/* line 483, static/scss/pages/tenants/_tickets.scss */
.sidebar-card-header {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #f9fafb;
  background: rgba(249, 250, 251, 0.3);
  display: flex;
  justify-content: space-between;
  align-items: center; }

/* line 492, static/scss/pages/tenants/_tickets.scss */
.sidebar-card-title {
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #9ca3af; }

/* line 500, static/scss/pages/tenants/_tickets.scss */
.sidebar-card-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 507, static/scss/pages/tenants/_tickets.scss */
.sidebar-card-footer {
  padding: 1rem 1.25rem;
  background: rgba(249, 250, 251, 0.5);
  border-top: 1px solid #f9fafb; }

/* line 513, static/scss/pages/tenants/_tickets.scss */
.sidebar-footer-link {
  display: block;
  text-align: center;
  padding: 0.5rem 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 11px;
  font-weight: 700;
  color: #6b7280;
  transition: all 0.2s; }

/* line 525, static/scss/pages/tenants/_tickets.scss */
.sidebar-footer-link:hover {
  background: #fff;
  color: #166A63; }

/* ===== Details list ===== */
/* line 531, static/scss/pages/tenants/_tickets.scss */
.detail-list {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

/* line 537, static/scss/pages/tenants/_tickets.scss */
.detail-row {
  display: flex;
  align-items: center;
  justify-content: space-between; }

/* line 543, static/scss/pages/tenants/_tickets.scss */
.detail-label {
  display: flex;
  align-items: center;
  gap: 0.5rem; }

/* line 549, static/scss/pages/tenants/_tickets.scss */
.detail-label i {
  color: #9ca3af; }

/* line 553, static/scss/pages/tenants/_tickets.scss */
.detail-label span {
  font-size: 10px;
  font-weight: 900;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: 0.05em; }

/* line 561, static/scss/pages/tenants/_tickets.scss */
.detail-value {
  font-size: 14px;
  font-weight: 700;
  color: #374151; }

/* line 567, static/scss/pages/tenants/_tickets.scss */
.detail-value-sm {
  font-size: 12px;
  font-weight: 700;
  color: #4b5563; }

/* line 573, static/scss/pages/tenants/_tickets.scss */
.detail-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, #f3f4f6, transparent); }

/* line 578, static/scss/pages/tenants/_tickets.scss */
.priority-badge {
  padding: 0.125rem 0.625rem;
  border-radius: 9999px;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  border: 1px solid; }

/* line 587, static/scss/pages/tenants/_tickets.scss */
.priority-high {
  background: #fef2f2;
  color: #dc2626;
  border-color: #fee2e2; }

/* line 593, static/scss/pages/tenants/_tickets.scss */
.priority-low {
  background: #f9fafb;
  color: #6b7280;
  border-color: #f3f4f6; }

/* line 599, static/scss/pages/tenants/_tickets.scss */
.priority-medium {
  background: #eff6ff;
  color: #2563eb;
  border-color: #dbeafe; }

/* ===== Contact block ===== */
/* line 606, static/scss/pages/tenants/_tickets.scss */
.contact-block {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

/* line 612, static/scss/pages/tenants/_tickets.scss */
.contact-block-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.25rem; }

/* line 619, static/scss/pages/tenants/_tickets.scss */
.contact-block-header i {
  color: #166A63; }

/* line 623, static/scss/pages/tenants/_tickets.scss */
.contact-block-header span {
  font-size: 10px;
  font-weight: 900;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: 0.05em; }

/* line 631, static/scss/pages/tenants/_tickets.scss */
.contact-card {
  background: rgba(249, 250, 251, 0.5);
  border-radius: 0.75rem;
  padding: 0.75rem;
  border: 1px solid #f3f4f6;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

/* line 641, static/scss/pages/tenants/_tickets.scss */
.contact-card-top {
  display: flex;
  align-items: center;
  gap: 0.5rem; }

/* line 647, static/scss/pages/tenants/_tickets.scss */
.contact-avatar {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 9999px;
  background: #fff;
  border: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: #166A63;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); }

/* line 662, static/scss/pages/tenants/_tickets.scss */
.contact-name {
  font-size: 14px;
  font-weight: 800;
  color: #111827; }

/* line 668, static/scss/pages/tenants/_tickets.scss */
.contact-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 12px;
  font-weight: 500;
  color: #6b7280;
  transition: color 0.2s; }

/* line 678, static/scss/pages/tenants/_tickets.scss */
.contact-link:hover {
  color: #166A63; }

/* line 682, static/scss/pages/tenants/_tickets.scss */
.contact-link i {
  color: #9ca3af; }

/* line 686, static/scss/pages/tenants/_tickets.scss */
.contact-link:hover i {
  color: #166A63; }

/* line 690, static/scss/pages/tenants/_tickets.scss */
.contact-links-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem; }

/* ===== Status buttons ===== */
/* line 697, static/scss/pages/tenants/_tickets.scss */
.status-grid {
  padding: 1rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem; }

/* line 704, static/scss/pages/tenants/_tickets.scss */
.status-btn {
  width: 100%;
  padding: 0.5rem 0;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  border-radius: 0.5rem;
  border: 1px solid rgba(22, 106, 99, 0.1);
  color: #166A63;
  background: rgba(22, 106, 99, 0.05);
  cursor: pointer;
  transition: all 0.2s; }

/* line 718, static/scss/pages/tenants/_tickets.scss */
.status-btn:hover {
  background: #166A63;
  color: #fff; }

/* line 723, static/scss/pages/tenants/_tickets.scss */
.status-btn-active {
  background: #f3f4f6;
  color: #9ca3af;
  border-color: #e5e7eb;
  cursor: default; }

/* line 730, static/scss/pages/tenants/_tickets.scss */
.status-btn-active:hover {
  background: #f3f4f6;
  color: #9ca3af; }

/* ===== Linked equipment ===== */
/* line 736, static/scss/pages/tenants/_tickets.scss */
.linked-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem;
  background: #f9fafb;
  border-radius: 0.75rem;
  border: 1px solid #f3f4f6; }

/* line 746, static/scss/pages/tenants/_tickets.scss */
.linked-item-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.5rem;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  border: 1px solid #f3f4f6;
  color: #166A63; }

/* line 759, static/scss/pages/tenants/_tickets.scss */
.linked-item-icon i {
  font-size: 1.25rem; }

/* line 763, static/scss/pages/tenants/_tickets.scss */
.linked-item-info {
  flex: 1;
  min-width: 0; }

/* line 768, static/scss/pages/tenants/_tickets.scss */
.linked-item-name {
  font-size: 14px;
  font-weight: 900;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* line 777, static/scss/pages/tenants/_tickets.scss */
.linked-item-type {
  font-size: 10px;
  font-weight: 700;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: -0.02em; }

/* line 785, static/scss/pages/tenants/_tickets.scss */
.linked-item-action {
  padding: 0.375rem;
  color: #d1d5db; }

/* line 790, static/scss/pages/tenants/_tickets.scss */
.linked-item-action:hover {
  color: #166A63; }

/* line 794, static/scss/pages/tenants/_tickets.scss */
.linked-item-action i {
  font-size: 1.25rem; }

/* line 798, static/scss/pages/tenants/_tickets.scss */
.unlink-form {
  margin-top: 0.75rem;
  text-align: center; }

/* line 803, static/scss/pages/tenants/_tickets.scss */
.unlink-btn {
  font-size: 10px;
  font-weight: 900;
  color: #f87171;
  text-transform: uppercase;
  background: none;
  border: none;
  cursor: pointer;
  transition: color 0.2s; }

/* line 814, static/scss/pages/tenants/_tickets.scss */
.unlink-btn:hover {
  color: #dc2626; }

/* line 818, static/scss/pages/tenants/_tickets.scss */
.no-item-text {
  font-size: 11px;
  color: #9ca3af;
  font-weight: 500;
  font-style: italic;
  margin-bottom: 0.5rem; }

/* line 826, static/scss/pages/tenants/_tickets.scss */
.link-item-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

/* line 832, static/scss/pages/tenants/_tickets.scss */
.link-item-select {
  width: 100%;
  padding: 0.625rem;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 0.75rem;
  font-size: 12px;
  font-weight: 700;
  color: #374151;
  outline: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); }

/* line 845, static/scss/pages/tenants/_tickets.scss */
.link-item-select:focus {
  box-shadow: 0 0 0 2px rgba(22, 106, 99, 0.1); }

/* line 849, static/scss/pages/tenants/_tickets.scss */
.link-item-btn {
  width: 100%;
  padding: 0.5rem 0;
  background: #166A63;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  border-radius: 0.5rem;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.2s; }

/* line 864, static/scss/pages/tenants/_tickets.scss */
.link-item-btn:hover {
  background: #0f4d48; }

/* ===== Danger zone ===== */
/* line 869, static/scss/pages/tenants/_tickets.scss */
.danger-zone {
  background: #fef2f2;
  border-radius: 1rem;
  border: 1px solid #fee2e2;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  margin-top: 1.5rem; }

/* line 878, static/scss/pages/tenants/_tickets.scss */
.danger-zone-header {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #fee2e2;
  background: rgba(254, 226, 226, 0.2); }

/* line 884, static/scss/pages/tenants/_tickets.scss */
.danger-zone-title {
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #dc2626; }

/* line 892, static/scss/pages/tenants/_tickets.scss */
.danger-zone-body {
  padding: 1.25rem; }

/* line 1, static/scss/pages/tenants/_contacts.scss */
.tab-contact {
  display: flex;
  flex-direction: column;
  gap: 2rem; }

/* line 7, static/scss/pages/tenants/_contacts.scss */
.contacts-section {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 13, static/scss/pages/tenants/_contacts.scss */
.contacts-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-left: 4px solid var(--color-accent);
  padding-left: 1rem; }
  /* line 20, static/scss/pages/tenants/_contacts.scss */
  .contacts-header .title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0; }
  /* line 27, static/scss/pages/tenants/_contacts.scss */
  .contacts-header .subtitle {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-tertiary);
    margin: 0; }

/* line 34, static/scss/pages/tenants/_contacts.scss */
.contact-box {
  display: flex;
  flex-direction: row;
  gap: 1rem; }

/* line 39, static/scss/pages/tenants/_contacts.scss */
.row-disabled {
  opacity: 0.5; }

/* line 42, static/scss/pages/tenants/_contacts.scss */
.avatar-box {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700; }
  /* line 52, static/scss/pages/tenants/_contacts.scss */
  .avatar-box.avatar-primary {
    background-color: var(--color-accent-soft);
    color: var(--color-accent-text);
    border: 1px solid var(--color-border-accent-soft); }
  /* line 58, static/scss/pages/tenants/_contacts.scss */
  .avatar-box.avatar-default {
    background-color: var(--color-neutral-100);
    color: var(--color-text-secondary);
    border: 1px solid transparent; }

/* line 65, static/scss/pages/tenants/_contacts.scss */
.contact-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  gap: 0.375rem; }
  /* line 73, static/scss/pages/tenants/_contacts.scss */
  .contact-name .star-icon {
    color: var(--color-warning);
    font-size: 1rem; }

/* line 79, static/scss/pages/tenants/_contacts.scss */
.contact-label {
  font-size: 0.625rem;
  font-weight: 600;
  color: var(--color-text-tertiary); }

/* line 85, static/scss/pages/tenants/_contacts.scss */
.email-link {
  color: var(--color-text-secondary);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: color var(--transition-fast); }
  /* line 93, static/scss/pages/tenants/_contacts.scss */
  .email-link .email-icon {
    color: var(--color-accent); }
  /* line 97, static/scss/pages/tenants/_contacts.scss */
  .email-link:hover {
    color: var(--color-accent-text); }

/* line 102, static/scss/pages/tenants/_contacts.scss */
.phones-col {
  display: flex;
  flex-direction: column;
  gap: 0.125rem; }
  /* line 107, static/scss/pages/tenants/_contacts.scss */
  .phones-col .phone-link, .phones-col .mobile-link {
    font-size: 0.75rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    transition: color var(--transition-fast); }
  /* line 116, static/scss/pages/tenants/_contacts.scss */
  .phones-col .phone-link {
    color: var(--color-text-secondary); }
    /* line 118, static/scss/pages/tenants/_contacts.scss */
    .phones-col .phone-link .phone-icon {
      color: var(--color-text-tertiary); }
    /* line 119, static/scss/pages/tenants/_contacts.scss */
    .phones-col .phone-link:hover {
      color: var(--color-accent-text); }
  /* line 122, static/scss/pages/tenants/_contacts.scss */
  .phones-col .mobile-link {
    color: var(--color-text-primary);
    font-weight: 600; }
    /* line 125, static/scss/pages/tenants/_contacts.scss */
    .phones-col .mobile-link .mobile-icon {
      color: var(--color-accent); }
    /* line 126, static/scss/pages/tenants/_contacts.scss */
    .phones-col .mobile-link:hover {
      color: var(--color-accent); }

/* line 131, static/scss/pages/tenants/_contacts.scss */
.empty-row {
  padding: 2rem;
  text-align: center;
  color: var(--color-text-tertiary);
  font-size: 0.875rem; }

/* line 138, static/scss/pages/tenants/_contacts.scss */
.sites-section {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

/* line 144, static/scss/pages/tenants/_contacts.scss */
.sites-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-left: 4px solid var(--color-accent);
  padding-left: 1rem; }
  /* line 151, static/scss/pages/tenants/_contacts.scss */
  .sites-header .sites-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0; }
  /* line 158, static/scss/pages/tenants/_contacts.scss */
  .sites-header .sites-subtitle {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-tertiary);
    margin: 0; }

/* line 166, static/scss/pages/tenants/_contacts.scss */
.sites-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem; }

/* line 172, static/scss/pages/tenants/_contacts.scss */
.site-card {
  position: relative;
  background-color: var(--color-bg-surface);
  padding: 1.25rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-default);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-base);
  /* Badge "Principal" */ }
  /* line 181, static/scss/pages/tenants/_contacts.scss */
  .site-card:hover {
    border-color: var(--color-accent);
    box-shadow: var(--shadow-md); }
    /* line 184, static/scss/pages/tenants/_contacts.scss */
    .site-card:hover .site-icon {
      background-color: var(--gama-brand-orange-100);
      color: var(--gama-brand-orange-500); }
  /* line 191, static/scss/pages/tenants/_contacts.scss */
  .site-card-primary {
    border-color: var(--color-border-accent); }
    /* line 194, static/scss/pages/tenants/_contacts.scss */
    .site-card-primary .site-badge {
      position: absolute;
      top: 1rem;
      right: 1rem;
      background-color: var(--color-badge-teal-bg);
      border: 1px solid var(--color-badge-teal-border);
      color: var(--color-badge-teal-text);
      font-size: 0.625rem;
      font-weight: 700;
      text-transform: uppercase;
      padding: 0.125rem 0.5rem;
      border-radius: var(--radius-pill); }

/* line 210, static/scss/pages/tenants/_contacts.scss */
.site-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem; }
  /* line 216, static/scss/pages/tenants/_contacts.scss */
  .site-header .site-icon {
    padding: 0.5rem;
    border-radius: var(--radius-xs);
    transition: all var(--transition-fast);
    background-color: var(--gama-brand-orange-500);
    color: var(--color-text-inverse); }
    /* line 223, static/scss/pages/tenants/_contacts.scss */
    .site-header .site-icon .icon-xl {
      font-size: 1.25rem;
      line-height: 1; }
  /* line 229, static/scss/pages/tenants/_contacts.scss */
  .site-header .site-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0; }

/* line 237, static/scss/pages/tenants/_contacts.scss */
.site-address-wrap {
  margin-bottom: 1rem; }
  /* line 240, static/scss/pages/tenants/_contacts.scss */
  .site-address-wrap .site-address {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    margin: 0; }
    /* line 248, static/scss/pages/tenants/_contacts.scss */
    .site-address-wrap .site-address .address-icon {
      color: var(--color-accent);
      margin-right: 0.5rem;
      font-size: 1rem;
      line-height: 1.2; }

/* line 257, static/scss/pages/tenants/_contacts.scss */
.site-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border-soft); }
  /* line 264, static/scss/pages/tenants/_contacts.scss */
  .site-actions .site-action-btn {
    padding: 0.375rem;
    color: var(--color-text-tertiary);
    border-radius: var(--radius-xs);
    text-decoration: none;
    transition: all var(--transition-fast); }
    /* line 271, static/scss/pages/tenants/_contacts.scss */
    .site-actions .site-action-btn i {
      font-size: 1.125rem; }
    /* line 273, static/scss/pages/tenants/_contacts.scss */
    .site-actions .site-action-btn-star:hover {
      color: var(--color-warning);
      background-color: var(--color-warning-soft); }
    /* line 278, static/scss/pages/tenants/_contacts.scss */
    .site-actions .site-action-btn-edit:hover {
      color: var(--color-accent-text);
      background-color: var(--color-accent-soft); }
    /* line 283, static/scss/pages/tenants/_contacts.scss */
    .site-actions .site-action-btn-delete:hover {
      color: var(--color-danger);
      background-color: var(--color-danger-soft); }

/* line 290, static/scss/pages/tenants/_contacts.scss */
.empty-sites {
  grid-column: 1 / -1;
  padding: 3rem 1.5rem;
  text-align: center;
  background-color: var(--color-bg-surface);
  border: 1px dashed var(--color-border-default);
  border-radius: var(--radius-md);
  color: var(--color-text-tertiary);
  font-size: 0.875rem; }

/* line 1, static/scss/pages/tenants/_devices.scss */
.table-device-name {
  display: flex;
  flex-direction: column; }
  /* line 4, static/scss/pages/tenants/_devices.scss */
  .table-device-name a {
    color: var(--gama-brand-teal-500);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem; }
  /* line 10, static/scss/pages/tenants/_devices.scss */
  .table-device-name span {
    color: var(--color-text-secondary);
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 400;
    font-style: italic; }

/* line 18, static/scss/pages/tenants/_devices.scss */
.device-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em; }

/* line 29, static/scss/pages/tenants/_devices.scss */
.device-badge.actif {
  background: var(--gama-brand-teal-100);
  color: var(--gama-brand-teal-500);
  border: 1px solid var(--gama-brand-teal-500); }

/* line 34, static/scss/pages/tenants/_devices.scss */
.device-badge.hs {
  background: var(--color-danger-100);
  color: var(--color-danger-500);
  border: 1px solid var(--color-danger-500); }

/* line 39, static/scss/pages/tenants/_devices.scss */
.device-badge.other {
  background: var(--color-neutral-100);
  color: var(--color-neutral-500);
  border: 1px solid var(--color-neutral-500); }

/* line 44, static/scss/pages/tenants/_devices.scss */
.table-vm-name {
  padding-left: 1.5rem; }
  /* line 46, static/scss/pages/tenants/_devices.scss */
  .table-vm-name a {
    color: var(--gama-brand-blue-500);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem; }

/* line 54, static/scss/pages/tenants/_devices.scss */
.group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-left: 4px solid var(--color-accent);
  padding-left: 1rem;
  margin-bottom: 1rem;
  margin-top: 1rem; }
  /* line 62, static/scss/pages/tenants/_devices.scss */
  .group-header .group-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gama-brand-blue-500);
    margin: 0; }
  /* line 69, static/scss/pages/tenants/_devices.scss */
  .group-header .group-count {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-tertiary);
    margin: 0; }

/* line 76, static/scss/pages/tenants/_devices.scss */
.toolbar {
  color: var(--ink);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(20, 24, 31, 0.04);
  overflow: hidden; }

/* line 84, static/scss/pages/tenants/_devices.scss */
.toolbar-form {
  display: flex;
  flex-direction: column; }

/* line 88, static/scss/pages/tenants/_devices.scss */
.toolbar-deck {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  flex-wrap: wrap; }

/* line 95, static/scss/pages/tenants/_devices.scss */
.toolbar-deck--filters {
  align-items: flex-start; }

/* line 98, static/scss/pages/tenants/_devices.scss */
.search-field {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1 1 260px;
  min-width: 200px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 10px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease; }

/* line 110, static/scss/pages/tenants/_devices.scss */
.search-field:focus-within {
  border-color: var(--gama-brand-teal-500);
  box-shadow: 0 0 0 3px var(--gama-brand-teal-100); }

/* line 115, static/scss/pages/tenants/_devices.scss */
.search-field__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--color-text-tertiary);
  padding: 0 4px 0 12px;
  font-size: 18px;
  cursor: pointer;
  line-height: 1; }
  /* line 126, static/scss/pages/tenants/_devices.scss */
  .search-field__submit:hover {
    color: var(--gama-brand-teal-700); }

/* line 128, static/scss/pages/tenants/_devices.scss */
.search-field__input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  padding: 10px 8px;
  font-size: 14px;
  color: var(--color-text-primary);
  min-width: 0; }
  /* line 137, static/scss/pages/tenants/_devices.scss */
  .search-field__input::placeholder {
    color: var(--color-text-tertiary); }

/* line 139, static/scss/pages/tenants/_devices.scss */
.search-field__clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-right: 8px;
  border-radius: 50%;
  color: var(--color-text-tertiary);
  text-decoration: none;
  font-size: 13px;
  flex-shrink: 0;
  transition: background-color 0.15s ease, color 0.15s ease; }

/* line 153, static/scss/pages/tenants/_devices.scss */
.search-field__clear:hover {
  background: var(--color-bg-surface);
  color: var(--color-text-primary); }

/* line 157, static/scss/pages/tenants/_devices.scss */
.sort-field {
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer; }

/* line 163, static/scss/pages/tenants/_devices.scss */
.sort-field__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  white-space: nowrap; }

/* line 171, static/scss/pages/tenants/_devices.scss */
.sort-field__control {
  position: relative;
  display: flex;
  align-items: center; }

/* line 176, static/scss/pages/tenants/_devices.scss */
.sort-field__select {
  appearance: none;
  -webkit-appearance: none;
  background: var(--color-bg-surface);
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 9px 32px 9px 12px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--color-text-primary);
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease; }
  /* line 188, static/scss/pages/tenants/_devices.scss */
  .sort-field__select:hover {
    border-color: var(--color-border-default); }
  /* line 191, static/scss/pages/tenants/_devices.scss */
  .sort-field__select:focus-visible {
    outline: none;
    border-color: var(--gama-brand-teal-500);
    box-shadow: 0 0 0 3px var(--gama-brand-teal-100); }

/* line 197, static/scss/pages/tenants/_devices.scss */
.sort-field__icon {
  position: absolute;
  right: 9px;
  font-size: 15px;
  color: var(--color-text-tertiary);
  pointer-events: none; }

/* line 204, static/scss/pages/tenants/_devices.scss */
.toolbar-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 1rem;
  margin-bottom: 1rem; }

/* line 211, static/scss/pages/tenants/_devices.scss */
.action-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 15px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.1s ease; }
  /* line 223, static/scss/pages/tenants/_devices.scss */
  .action-btn i {
    font-size: 16px; }
  /* line 224, static/scss/pages/tenants/_devices.scss */
  .action-btn:active {
    transform: translateY(1px); }

/* line 227, static/scss/pages/tenants/_devices.scss */
.action-btn--primary {
  background: var(--ink);
  color: #FFFFFF; }
  /* line 230, static/scss/pages/tenants/_devices.scss */
  .action-btn--primary:hover {
    background: #262D38; }

/* line 232, static/scss/pages/tenants/_devices.scss */
.action-btn--ghost {
  background: transparent;
  color: var(--ink-soft);
  border-color: var(--line); }
  /* line 236, static/scss/pages/tenants/_devices.scss */
  .action-btn--ghost:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft); }

/* line 242, static/scss/pages/tenants/_devices.scss */
.filter-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-wrap: wrap; }

/* line 248, static/scss/pages/tenants/_devices.scss */
.filter-group__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  white-space: nowrap; }
  /* line 258, static/scss/pages/tenants/_devices.scss */
  .filter-group__label i {
    font-size: 14px; }

/* line 260, static/scss/pages/tenants/_devices.scss */
.filter-group__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--accent);
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700; }

/* line 273, static/scss/pages/tenants/_devices.scss */
.chip-row {
  display: flex;
  flex-wrap: balance;
  gap: 7px; }

/* line 274, static/scss/pages/tenants/_devices.scss */
.chip {
  cursor: pointer; }

/* line 275, static/scss/pages/tenants/_devices.scss */
.chip__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0; }

/* line 281, static/scss/pages/tenants/_devices.scss */
.chip__body {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--color-text-tertiary);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, padding 0.15s ease; }

/* line 295, static/scss/pages/tenants/_devices.scss */
.chip:hover .chip__body {
  border-color: var(--gama-brand-teal-500);
  color: var(--color-text-primary); }

/* line 296, static/scss/pages/tenants/_devices.scss */
.chip__input:checked + .chip__body {
  background: var(--gama-brand-teal-100);
  border-color: var(--gama-brand-teal-500);
  color: var(--gama-brand-teal-500);
  padding-left: 10px; }

/* line 302, static/scss/pages/tenants/_devices.scss */
.chip__input:checked + .chip__body::before {
  content: '\2713';
  font-size: 10px;
  font-weight: 700; }

/* line 307, static/scss/pages/tenants/_devices.scss */
.chip__input:focus-visible + .chip__body {
  outline: none;
  box-shadow: 0 0 0 3px var(--gama-brand-teal-100); }

/* line 311, static/scss/pages/tenants/_devices.scss */
.chip__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0; }

/* line 317, static/scss/pages/tenants/_devices.scss */
.toolbar-reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  padding: 6px 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--danger-ink);
  text-decoration: none;
  border-radius: 6px;
  white-space: nowrap; }

/* line 330, static/scss/pages/tenants/_devices.scss */
.toolbar-reset i {
  font-size: 14px; }

/* line 331, static/scss/pages/tenants/_devices.scss */
.toolbar-reset:hover {
  background: var(--color-danger-200); }

/* line 332, static/scss/pages/tenants/_devices.scss */
.device-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 1rem; }

/* line 338, static/scss/pages/tenants/_devices.scss */
.device-stat-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: 14px;
  color: var(--gama-brand-blue-500);
  padding: 16px 18px;
  position: relative;
  overflow: hidden; }
  /* line 346, static/scss/pages/tenants/_devices.scss */
  .device-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    border-radius: 14px 14px 0 0;
    background: var(--gama-brand-blue-500); }
  /* line 356, static/scss/pages/tenants/_devices.scss */
  .device-stat-card.servers {
    color: var(--gama-brand-teal-500); }
    /* line 358, static/scss/pages/tenants/_devices.scss */
    .device-stat-card.servers::before {
      background: var(--gama-brand-teal-500); }
    /* line 361, static/scss/pages/tenants/_devices.scss */
    .device-stat-card.servers:hover {
      border-color: var(--gama-brand-teal-500); }
  /* line 365, static/scss/pages/tenants/_devices.scss */
  .device-stat-card.routers {
    color: var(--gama-brand-orange-500); }
    /* line 367, static/scss/pages/tenants/_devices.scss */
    .device-stat-card.routers::before {
      background: var(--gama-brand-orange-500); }
    /* line 370, static/scss/pages/tenants/_devices.scss */
    .device-stat-card.routers:hover {
      border-color: var(--gama-brand-orange-500); }
  /* line 374, static/scss/pages/tenants/_devices.scss */
  .device-stat-card.printers {
    color: var(--color-danger-500); }
    /* line 376, static/scss/pages/tenants/_devices.scss */
    .device-stat-card.printers::before {
      background: var(--color-danger-500); }
    /* line 379, static/scss/pages/tenants/_devices.scss */
    .device-stat-card.printers:hover {
      border-color: var(--color-danger-500); }
  /* line 383, static/scss/pages/tenants/_devices.scss */
  .device-stat-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(20, 24, 31, 0.06);
    border-color: var(--gama-brand-blue-500); }

/* line 389, static/scss/pages/tenants/_devices.scss */
.stat-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  flex-shrink: 0;
  font-size: 21px; }
  /* line 398, static/scss/pages/tenants/_devices.scss */
  .stat-card__icon i {
    line-height: 1; }

/* line 402, static/scss/pages/tenants/_devices.scss */
.stat-card__body {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0; }

/* line 403, static/scss/pages/tenants/_devices.scss */
.stat-value {
  margin: 0;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-text-primary);
  font-variant-numeric: tabular-nums; }

/* line 411, static/scss/pages/tenants/_devices.scss */
.stat-label {
  margin: 0;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-tertiary); }

/* line 1, static/scss/pages/tenants/_microsoft.scss */
.tab-microsoft {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  width: 100%;
  grid-template-columns: 5fr 3fr; }

/* line 8, static/scss/pages/tenants/_microsoft.scss */
.microsoft-content {
  display: flex;
  flex-direction: column;
  gap: 24px; }

/* line 13, static/scss/pages/tenants/_microsoft.scss */
.microsoft-side {
  display: flex;
  flex-direction: column;
  gap: 24px; }

/* line 18, static/scss/pages/tenants/_microsoft.scss */
.card {
  background-color: var(--color-bg-surface);
  border-radius: 1rem;
  border: 1px solid var(--color-neutral-200);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05);
  overflow: hidden; }
  /* line 25, static/scss/pages/tenants/_microsoft.scss */
  .card .card-header {
    padding: 1.25rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--color-neutral-100); }
    /* line 32, static/scss/pages/tenants/_microsoft.scss */
    .card .card-header .header-title {
      font-size: 1.125rem;
      font-weight: 800;
      color: var(--gama-brand-teal-500);
      margin: 0; }
    /* line 39, static/scss/pages/tenants/_microsoft.scss */
    .card .card-header .header-subtitle {
      font-size: 0.75rem;
      color: var(--color-neutral-500);
      font-weight: 500;
      margin: 0.25rem 0 0 0;
      display: flex;
      align-items: center;
      gap: 0.5rem; }
      /* line 48, static/scss/pages/tenants/_microsoft.scss */
      .card .card-header .header-subtitle .ping-dot {
        position: relative;
        display: inline-flex;
        width: 0.5rem;
        height: 0.5rem;
        border-radius: 9999px;
        background-color: var(--gama-brand-teal-700); }
        /* line 56, static/scss/pages/tenants/_microsoft.scss */
        .card .card-header .header-subtitle .ping-dot.animate-ping::after {
          content: '';
          position: absolute;
          inset: 0;
          border-radius: 9999px;
          background-color: var(--gama-brand-teal-500);
          animation: ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite; }
    /* line 66, static/scss/pages/tenants/_microsoft.scss */
    .card .card-header .header-action {
      display: flex;
      gap: 8px; }
    /* line 70, static/scss/pages/tenants/_microsoft.scss */
    .card .card-header .btn-export {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.25rem;
      height: 2.25rem;
      border-radius: 0.5rem;
      background-color: var(--gama-brand-orange-500);
      color: var(--color-text-inverse);
      transition: all 0.2s ease; }
      /* line 80, static/scss/pages/tenants/_microsoft.scss */
      .card .card-header .btn-export i {
        font-size: 20px; }
      /* line 83, static/scss/pages/tenants/_microsoft.scss */
      .card .card-header .btn-export:hover {
        background-color: var(--gama-brand-orange-200);
        color: var(--gama-brand-orange-500); }

/* line 90, static/scss/pages/tenants/_microsoft.scss */
.license-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background-color: var(--slate-50);
  border-top: 1px solid var(--color-neutral-100); }
  /* line 97, static/scss/pages/tenants/_microsoft.scss */
  .license-list .license-item {
    border-bottom: 1px solid var(--color-neutral-100); }
    /* line 100, static/scss/pages/tenants/_microsoft.scss */
    .license-list .license-item:last-child {
      border-bottom: none; }
  /* line 105, static/scss/pages/tenants/_microsoft.scss */
  .license-list .license-card {
    background-color: var(--color-bg-surface); }
    /* line 108, static/scss/pages/tenants/_microsoft.scss */
    .license-list .license-card .license-btn {
      width: 100%;
      padding: 1.25rem 1.5rem;
      background: transparent;
      border: none;
      text-align: left;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      gap: 1rem;
      transition: background-color 0.15s ease; }
      /* line 120, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn:hover {
        background-color: var(--color-bg-surface-elevated); }
      /* line 124, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .license-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%; }
      /* line 131, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .license-header-group {
        display: flex;
        align-items: center;
        gap: 0.75rem; }
      /* line 137, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .icon-license {
        width: 2.5rem;
        height: 2.5rem;
        border-radius: 0.5rem;
        background-color: var(--gama-brand-orange-200);
        color: var(--gama-brand-orange-500);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.25rem; }
      /* line 149, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .license-title {
        display: block;
        font-size: 0.875rem;
        font-weight: 700;
        color: var(--color-text-primary); }
      /* line 156, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .license-badge-sub {
        display: inline-block;
        font-size: 10px;
        font-weight: 700;
        color: var(--gama-brand-teal-600);
        text-transform: uppercase;
        letter-spacing: 0.05em; }
      /* line 165, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .numbers-display {
        text-align: right; }
        /* line 167, static/scss/pages/tenants/_microsoft.scss */
        .license-list .license-card .license-btn .numbers-display .numbers-count {
          display: flex;
          align-items: baseline;
          gap: 4px;
          justify-content: flex-end; }
        /* line 173, static/scss/pages/tenants/_microsoft.scss */
        .license-list .license-card .license-btn .numbers-display .consumed-text {
          font-size: 1rem;
          font-weight: 800;
          color: var(--gama-brand-blue-500); }
        /* line 179, static/scss/pages/tenants/_microsoft.scss */
        .license-list .license-card .license-btn .numbers-display .total-text {
          font-size: 0.75rem;
          color: var(--gama-brand-blue-300);
          font-weight: 600; }
        /* line 185, static/scss/pages/tenants/_microsoft.scss */
        .license-list .license-card .license-btn .numbers-display .badge-percent {
          display: inline-block;
          font-size: 10px;
          font-weight: 700;
          padding: 0.125rem 0.5rem;
          border-radius: 9999px;
          margin-top: 0.25rem; }
          /* line 193, static/scss/pages/tenants/_microsoft.scss */
          .license-list .license-card .license-btn .numbers-display .badge-percent.badge-percent-teal {
            background-color: var(--gama-brand-teal-100);
            color: var(--gama-brand-teal-700); }
          /* line 198, static/scss/pages/tenants/_microsoft.scss */
          .license-list .license-card .license-btn .numbers-display .badge-percent.badge-percent-rose {
            background-color: var(--color-danger-100);
            color: var(--color-danger-700); }
      /* line 205, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .chevron-icon {
        font-size: 1.25rem;
        color: var(--color-neutral-400);
        transition: transform 0.2s ease; }
        /* line 210, static/scss/pages/tenants/_microsoft.scss */
        .license-list .license-card .license-btn .chevron-icon.rotate-180 {
          transform: rotate(180deg); }
      /* line 215, static/scss/pages/tenants/_microsoft.scss */
      .license-list .license-card .license-btn .progress-bar-container {
        width: 100%;
        height: 0.375rem;
        background-color: var(--color-neutral-100);
        border-radius: 9999px;
        overflow: hidden; }
        /* line 222, static/scss/pages/tenants/_microsoft.scss */
        .license-list .license-card .license-btn .progress-bar-container .progress-fill {
          height: 100%;
          border-radius: 9999px;
          transition: width 0.3s ease; }
          /* line 227, static/scss/pages/tenants/_microsoft.scss */
          .license-list .license-card .license-btn .progress-bar-container .progress-fill.bg-progress-teal {
            background-color: var(--color-danger-500); }
          /* line 228, static/scss/pages/tenants/_microsoft.scss */
          .license-list .license-card .license-btn .progress-bar-container .progress-fill.bg-progress-amber {
            background-color: var(--gama-brand-orange-500); }
          /* line 229, static/scss/pages/tenants/_microsoft.scss */
          .license-list .license-card .license-btn .progress-bar-container .progress-fill.bg-progress-rose {
            background-color: var(--gama-brand-teal-500); }
  /* line 236, static/scss/pages/tenants/_microsoft.scss */
  .license-list .users-drawer {
    background-color: var(--color-neutral-50);
    border-top: 1px solid var(--color-neutral-100);
    padding: 1rem 1.5rem; }
    /* line 241, static/scss/pages/tenants/_microsoft.scss */
    .license-list .users-drawer .users-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
      gap: 0.75rem; }
      /* line 246, static/scss/pages/tenants/_microsoft.scss */
      .license-list .users-drawer .users-grid .user-card {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        background-color: var(--color-bg-surface);
        padding: 0.5rem 0.75rem;
        border-radius: 0.5rem;
        border: 1px solid var(--color-neutral-200); }
        /* line 255, static/scss/pages/tenants/_microsoft.scss */
        .license-list .users-drawer .users-grid .user-card .user-avatar-placeholder {
          width: 1.75rem;
          height: 1.75rem;
          border-radius: 9999px;
          background-color: var(--color-neutral-100);
          color: var(--color-neutral-600);
          font-size: 0.75rem;
          font-weight: 700;
          display: flex;
          align-items: center;
          justify-content: center; }
        /* line 268, static/scss/pages/tenants/_microsoft.scss */
        .license-list .users-drawer .users-grid .user-card .user-name {
          font-size: 0.75rem;
          font-weight: 600;
          color: var(--color-neutral-700);
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis; }

/* line 281, static/scss/pages/tenants/_microsoft.scss */
.card-dark {
  background-color: var(--gama-brand-blue-500);
  border-radius: 1rem;
  padding: 1.5rem;
  color: var(--color-text-inverse); }
  /* line 287, static/scss/pages/tenants/_microsoft.scss */
  .card-dark .card-header-dark {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem; }
    /* line 292, static/scss/pages/tenants/_microsoft.scss */
    .card-dark .card-header-dark .card-event-title {
      color: var(--color-text-inverse);
      font-size: 12px;
      font-weight: 900;
      text-transform: uppercase;
      letter-spacing: 0.2em;
      margin: 0; }
    /* line 300, static/scss/pages/tenants/_microsoft.scss */
    .card-dark .card-header-dark .btn-event-add {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 2rem;
      height: 2rem;
      border-radius: 0.5rem;
      background-color: var(--gama-brand-orange-500);
      color: var(--color-text-inverse);
      border: none;
      cursor: pointer;
      transition: background-color 0.2s ease; }
      /* line 312, static/scss/pages/tenants/_microsoft.scss */
      .card-dark .card-header-dark .btn-event-add i {
        font-size: 20px; }
      /* line 315, static/scss/pages/tenants/_microsoft.scss */
      .card-dark .card-header-dark .btn-event-add:hover {
        background-color: var(--gama-brand-orange-100);
        color: var(--gama-brand-orange-500); }
  /* line 322, static/scss/pages/tenants/_microsoft.scss */
  .card-dark .activity-container {
    max-height: 480px;
    overflow-y: auto; }
    /* line 327, static/scss/pages/tenants/_microsoft.scss */
    .card-dark .activity-container.custom-scrollbar::-webkit-scrollbar {
      width: 4px; }
    /* line 330, static/scss/pages/tenants/_microsoft.scss */
    .card-dark .activity-container.custom-scrollbar::-webkit-scrollbar-track {
      background: transparent; }
    /* line 333, static/scss/pages/tenants/_microsoft.scss */
    .card-dark .activity-container.custom-scrollbar::-webkit-scrollbar-thumb {
      background: var(--color-neutral-700);
      border-radius: 4px; }
    /* line 339, static/scss/pages/tenants/_microsoft.scss */
    .card-dark .activity-container .activity-timeline {
      display: flex;
      flex-direction: column;
      gap: 1.25rem; }
      /* line 344, static/scss/pages/tenants/_microsoft.scss */
      .card-dark .activity-container .activity-timeline .activity-item {
        display: flex;
        gap: 0.75rem;
        position: relative; }
        /* line 349, static/scss/pages/tenants/_microsoft.scss */
        .card-dark .activity-container .activity-timeline .activity-item .activity-avatar {
          width: 2rem;
          height: 2rem;
          border-radius: 9999px;
          background-color: var(--gama-brand-teal-500);
          border: 1px solid var(--gama-brand-teal-700);
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 0.75rem;
          font-weight: 700;
          color: var(--color-text-inverse);
          flex-shrink: 0; }
          /* line 363, static/scss/pages/tenants/_microsoft.scss */
          .card-dark .activity-container .activity-timeline .activity-item .activity-avatar img {
            width: 100%;
            height: 100%;
            border-radius: 9999px;
            object-fit: cover; }
        /* line 371, static/scss/pages/tenants/_microsoft.scss */
        .card-dark .activity-container .activity-timeline .activity-item .activity-content {
          flex: 1; }
          /* line 374, static/scss/pages/tenants/_microsoft.scss */
          .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-meta {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 0.25rem; }
            /* line 380, static/scss/pages/tenants/_microsoft.scss */
            .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-meta .badge-action {
              font-size: 9px;
              font-weight: 800;
              text-transform: uppercase;
              padding: 0.125rem 0.375rem;
              border-radius: 0.25rem; }
              /* line 387, static/scss/pages/tenants/_microsoft.scss */
              .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-meta .badge-action.badge-action-add {
                background-color: var(--gama-brand-teal-100);
                color: var(--gama-brand-teal-500); }
              /* line 392, static/scss/pages/tenants/_microsoft.scss */
              .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-meta .badge-action.badge-action-delete {
                background-color: var(--color-danger-100);
                color: var(--color-danger-500); }
            /* line 398, static/scss/pages/tenants/_microsoft.scss */
            .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-meta .activity-time {
              font-size: 11px;
              color: var(--color-text-inverse); }
          /* line 404, static/scss/pages/tenants/_microsoft.scss */
          .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-title {
            font-size: 0.8125rem;
            font-weight: 700;
            color: var(--color-text-inverse);
            margin: 0; }
          /* line 411, static/scss/pages/tenants/_microsoft.scss */
          .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-desc {
            font-size: 0.75rem;
            color: var(--color-neutral-200);
            margin: 0.125rem 0 0 0; }
            /* line 416, static/scss/pages/tenants/_microsoft.scss */
            .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-desc span {
              color: var(--gama-brand-teal-500);
              font-weight: 600; }
          /* line 422, static/scss/pages/tenants/_microsoft.scss */
          .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-user-row {
            display: flex;
            align-items: center;
            gap: 0.375rem;
            margin-top: 0.375rem; }
            /* line 428, static/scss/pages/tenants/_microsoft.scss */
            .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-user-row .icon-user-edit {
              color: var(--gama-brand-orange-500);
              font-size: 0.875rem; }
            /* line 433, static/scss/pages/tenants/_microsoft.scss */
            .card-dark .activity-container .activity-timeline .activity-item .activity-content .activity-user-row .activity-username {
              font-size: 11px;
              color: var(--gama-brand-orange-300); }
      /* line 441, static/scss/pages/tenants/_microsoft.scss */
      .card-dark .activity-container .activity-timeline .empty-event {
        text-align: center;
        padding: 3rem 0; }
        /* line 444, static/scss/pages/tenants/_microsoft.scss */
        .card-dark .activity-container .activity-timeline .empty-event i {
          color: var(--gama-brand-orange-500);
          font-size: 48px; }
        /* line 448, static/scss/pages/tenants/_microsoft.scss */
        .card-dark .activity-container .activity-timeline .empty-event span {
          font-size: 12px;
          color: var(--color-text-primary);
          font-weight: 900;
          text-transform: uppercase;
          margin-top: 16px;
          letter-spacing: 0.1em; }

/* Navigation Sous-Onglets */
/* line 461, static/scss/pages/tenants/_microsoft.scss */
.m365-subtabs-nav {
  display: flex;
  gap: 12px;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 8px;
  margin-bottom: 20px; }

/* line 469, static/scss/pages/tenants/_microsoft.scss */
.subtab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 8px;
  border: none;
  background: transparent;
  color: #6b7280;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease; }

/* line 483, static/scss/pages/tenants/_microsoft.scss */
.subtab-btn:hover {
  background-color: #f3f4f6;
  color: #111827; }

/* line 488, static/scss/pages/tenants/_microsoft.scss */
.subtab-btn.active {
  background-color: #e0f2fe;
  color: #0284c7;
  font-weight: 600; }

/* line 494, static/scss/pages/tenants/_microsoft.scss */
.badge-count {
  background: #e5e7eb;
  color: #374151;
  font-size: 0.75rem;
  padding: 2px 8px;
  border-radius: 12px; }

/* line 502, static/scss/pages/tenants/_microsoft.scss */
.subtab-btn.active .badge-count {
  background: #0284c7;
  color: #ffffff; }

/* Grille de ressources pour Mailboxes et SharePoint */
/* line 508, static/scss/pages/tenants/_microsoft.scss */
.resources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px; }

/* line 514, static/scss/pages/tenants/_microsoft.scss */
.resource-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background-color: #ffffff;
  transition: shadow 0.2s ease, border-color 0.2s ease; }

/* line 525, static/scss/pages/tenants/_microsoft.scss */
.resource-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); }

/* line 530, static/scss/pages/tenants/_microsoft.scss */
.resource-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  font-size: 1.25rem; }

/* line 540, static/scss/pages/tenants/_microsoft.scss */
.icon-mailbox {
  background-color: #eff6ff;
  color: #2563eb; }

/* line 545, static/scss/pages/tenants/_microsoft.scss */
.icon-sharepoint {
  background-color: #ecfdf5;
  color: #059669; }

/* line 550, static/scss/pages/tenants/_microsoft.scss */
.resource-details {
  flex: 1;
  min-width: 0; }

/* line 555, static/scss/pages/tenants/_microsoft.scss */
.resource-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: #1f2937;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* line 565, static/scss/pages/tenants/_microsoft.scss */
.resource-sub {
  font-size: 0.8rem;
  color: #6b7280;
  margin: 2px 0 0 0; }

/* line 571, static/scss/pages/tenants/_microsoft.scss */
.resource-url-truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* line 577, static/scss/pages/tenants/_microsoft.scss */
.resource-action {
  color: #9ca3af;
  font-size: 1.2rem;
  padding: 6px;
  border-radius: 6px;
  transition: color 0.2s, background-color 0.2s; }

/* line 585, static/scss/pages/tenants/_microsoft.scss */
.resource-action:hover {
  color: #2563eb;
  background-color: #f1f5f9; }

/* Empty State */
/* line 591, static/scss/pages/tenants/_microsoft.scss */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  color: #9ca3af; }

/* line 597, static/scss/pages/tenants/_microsoft.scss */
.empty-state i {
  font-size: 2.5rem;
  margin-bottom: 8px; }

/* Conteneur principal */
/* line 602, static/scss/pages/tenants/_microsoft.scss */
.permissions-container {
  display: flex;
  flex-direction: row;
  gap: 24px;
  margin-top: 12px; }

/* Carte de groupe */
/* line 610, static/scss/pages/tenants/_microsoft.scss */
.permissions-group {
  background-color: var(--color-bg-surface-elevated);
  border: 1px solid var(--color-border-default);
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); }

/* Header de groupe */
/* line 619, static/scss/pages/tenants/_microsoft.scss */
.group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--color-border-default); }

/* line 628, static/scss/pages/tenants/_microsoft.scss */
.group-title-wrapper {
  display: flex;
  align-items: center;
  gap: 12px; }

/* line 634, static/scss/pages/tenants/_microsoft.scss */
.header-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  font-size: 1.3rem;
  flex-shrink: 0; }
  /* line 644, static/scss/pages/tenants/_microsoft.scss */
  .header-icon.icon-delegated {
    background-color: var(--gama-brand-orange-100);
    color: var(--gama-brand-orange-500); }
  /* line 649, static/scss/pages/tenants/_microsoft.scss */
  .header-icon.icon-application {
    background-color: var(--gama-brand-teal-100);
    color: var(--gama-brand-teal-500); }

/* line 655, static/scss/pages/tenants/_microsoft.scss */
.group-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-text-primary);
  margin: 0; }

/* line 662, static/scss/pages/tenants/_microsoft.scss */
.group-subtitle {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  margin: 2px 0 0 0; }

/* Badges de quantité */
/* line 669, static/scss/pages/tenants/_microsoft.scss */
.perm-badge {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 20px; }
  /* line 675, static/scss/pages/tenants/_microsoft.scss */
  .perm-badge.badge-blue {
    background-color: var(--gama-brand-orange-100);
    color: var(--gama-brand-orange-500); }
  /* line 680, static/scss/pages/tenants/_microsoft.scss */
  .perm-badge.badge-purple {
    background-color: var(--gama-brand-teal-100);
    color: var(--gama-brand-teal-500); }

/* Liste et items */
/* line 687, static/scss/pages/tenants/_microsoft.scss */
.permissions-list {
  display: flex;
  flex-direction: column;
  gap: 10px; }

/* line 693, static/scss/pages/tenants/_microsoft.scss */
.permission-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  background-color: var(--color-bg-surface-alt);
  border: 1px solid var(--color-border-default);
  transition: all 0.2s ease; }
  /* line 703, static/scss/pages/tenants/_microsoft.scss */
  .permission-item:hover {
    background-color: var(--color-bg-surface);
    border-color: var(--gama-brand-blue-500);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04); }

/* line 710, static/scss/pages/tenants/_microsoft.scss */
.item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  font-size: 1.1rem;
  flex-shrink: 0; }
  /* line 720, static/scss/pages/tenants/_microsoft.scss */
  .item-icon.icon-blue {
    background-color: var(--gama-brand-orange-100);
    color: var(--gama-brand-orange-500); }
  /* line 725, static/scss/pages/tenants/_microsoft.scss */
  .item-icon.icon-purple {
    background-color: var(--gama-brand-teal-100);
    color: var(--gama-brand-teal-500); }

/* line 731, static/scss/pages/tenants/_microsoft.scss */
.item-content {
  display: flex;
  flex-direction: column;
  gap: 2px; }

/* Badges de code */
/* line 738, static/scss/pages/tenants/_microsoft.scss */
.perm-code {
  font-family: ui-monospace, monospace;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  width: fit-content; }
  /* line 746, static/scss/pages/tenants/_microsoft.scss */
  .perm-code.code-blue {
    background-color: var(--gama-brand-orange-100);
    color: var(--gama-brand-orange-500); }
  /* line 751, static/scss/pages/tenants/_microsoft.scss */
  .perm-code.code-purple {
    background-color: var(--gama-brand-teal-100);
    color: var(--gama-brand-teal-500); }

/* line 757, static/scss/pages/tenants/_microsoft.scss */
.perm-desc {
  font-size: 0.825rem;
  color: var(--color-text-secondary);
  margin: 0; }

/* line 1, static/scss/pages/tenants/_acronis.scss */
.tab-acronis {
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

/* line 6, static/scss/pages/tenants/_acronis.scss */
.acronis-header {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  border-bottom: 2px solid var(--gama-brand-orange-500);
  justify-content: space-between; }
  /* line 13, static/scss/pages/tenants/_acronis.scss */
  .acronis-header .acronis-section-title .acronis-title {
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--gama-brand-teal-500);
    letter-spacing: -0.025em; }
  /* line 19, static/scss/pages/tenants/_acronis.scss */
  .acronis-header .acronis-section-title .acronis-subtitle {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    font-weight: 500; }
  /* line 26, static/scss/pages/tenants/_acronis.scss */
  .acronis-header .acronis-section-data .acronis-data-label {
    font-size: 10px;
    font-weight: 900;
    color: var(--gama-brand-blue-500);
    text-transform: uppercase;
    letter-spacing: 0.2em; }
  /* line 33, static/scss/pages/tenants/_acronis.scss */
  .acronis-header .acronis-section-data .acronis-data-value {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--gama-brand-orange-500); }

/* line 40, static/scss/pages/tenants/_acronis.scss */
.acronis-content {
  display: flex;
  flex-direction: row; }

/* line 44, static/scss/pages/tenants/_acronis.scss */
.acronis-sidebar {
  background-color: var(--color-bg-surface);
  border-radius: 0.5rem;
  width: 20%;
  margin-right: 1rem;
  padding: 1rem; }
  /* line 50, static/scss/pages/tenants/_acronis.scss */
  .acronis-sidebar .acronis-sidebar-header {
    border-bottom: 2px solid var(--gama-brand-orange-500);
    margin-bottom: 1rem; }
    /* line 53, static/scss/pages/tenants/_acronis.scss */
    .acronis-sidebar .acronis-sidebar-header .acronis-sidebar-title {
      font: 600;
      color: var(--gama-brand-blue-500); }
    /* line 57, static/scss/pages/tenants/_acronis.scss */
    .acronis-sidebar .acronis-sidebar-header .acronis-sidebar-subtitle {
      color: var(--color-text-secondary);
      font-size: 0.9rem;
      font-style: italic; }
  /* line 63, static/scss/pages/tenants/_acronis.scss */
  .acronis-sidebar .acronis-sidebar-quotat {
    display: flex;
    flex-direction: column;
    gap: 1rem; }

/* line 69, static/scss/pages/tenants/_acronis.scss */
.acronis-actions {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: row;
  gap: 0.5rem; }

/* line 75, static/scss/pages/tenants/_acronis.scss */
.acronis-card-stat {
  background-color: var(--color-bg-surface-elevated);
  padding: 1rem;
  border-radius: 0.5rem;
  box-shadow: var(--shadow-sm);
  border-bottom: 4px solid transparent;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }
  /* line 85, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat.teal {
    border-bottom-color: var(--gama-brand-teal-400); }
  /* line 86, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat.red {
    border-bottom-color: var(--color-danger-600); }
  /* line 87, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat.indigo {
    border-bottom-color: var(--gama-brand-blue-900); }
  /* line 88, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat.blue {
    border-bottom-color: var(--gama-brand-blue-400); }
  /* line 89, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat.orange {
    border-bottom-color: var(--gama-brand-orange-600); }
  /* line 91, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-title a {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em; }
  /* line 97, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-title.teal a {
    color: var(--gama-brand-teal-600); }
  /* line 98, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-title.red a {
    color: var(--color-danger-500); }
  /* line 99, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-title.indigo a {
    color: var(--gama-brand-blue-900); }
  /* line 100, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-title.blue a {
    color: var(--gama-brand-blue-500); }
  /* line 101, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-title.orange a {
    color: var(--gama-brand-orange-600); }
  /* line 103, static/scss/pages/tenants/_acronis.scss */
  .acronis-card-stat .acronis-card-data {
    display: flex;
    flex-direction: row; }
    /* line 106, static/scss/pages/tenants/_acronis.scss */
    .acronis-card-stat .acronis-card-data .acronis-card-icon {
      width: 2.5rem;
      height: 2.5rem;
      border-radius: 0.5rem;
      display: flex;
      align-items: center;
      justify-content: center; }
      /* line 113, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-icon.teal {
        background-color: var(--gama-brand-teal-100); }
        /* line 113, static/scss/pages/tenants/_acronis.scss */
        .acronis-card-stat .acronis-card-data .acronis-card-icon.teal i {
          color: var(--gama-brand-teal-600); }
      /* line 114, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-icon.red {
        background-color: var(--color-danger-100); }
        /* line 114, static/scss/pages/tenants/_acronis.scss */
        .acronis-card-stat .acronis-card-data .acronis-card-icon.red i {
          color: var(--color-danger-500); }
      /* line 115, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-icon.indigo {
        background-color: var(--gama-brand-blue-300); }
        /* line 115, static/scss/pages/tenants/_acronis.scss */
        .acronis-card-stat .acronis-card-data .acronis-card-icon.indigo i {
          color: var(--gama-brand-blue-900); }
      /* line 116, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-icon.blue {
        background-color: var(--gama-brand-blue-50); }
        /* line 116, static/scss/pages/tenants/_acronis.scss */
        .acronis-card-stat .acronis-card-data .acronis-card-icon.blue i {
          color: var(--gama-brand-blue-500); }
      /* line 117, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-icon.orange {
        background-color: var(--gama-brand-orange-100); }
        /* line 117, static/scss/pages/tenants/_acronis.scss */
        .acronis-card-stat .acronis-card-data .acronis-card-icon.orange i {
          color: var(--gama-brand-orange-600); }
      /* line 118, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-icon i {
        font-size: 1.25rem; }
    /* line 123, static/scss/pages/tenants/_acronis.scss */
    .acronis-card-stat .acronis-card-data .acronis-card-value {
      margin-left: 2rem;
      align-content: center;
      font-size: 1.5rem;
      font-weight: 900; }
      /* line 128, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-value.teal {
        color: var(--gama-brand-teal-600); }
      /* line 129, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-value.red {
        color: var(--color-danger-500); }
      /* line 130, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-value.indigo {
        color: var(--gama-brand-blue-900); }
      /* line 131, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-value.blue {
        color: var(--gama-brand-blue-500); }
      /* line 132, static/scss/pages/tenants/_acronis.scss */
      .acronis-card-stat .acronis-card-data .acronis-card-value.orange {
        color: var(--gama-brand-orange-600); }

/* line 136, static/scss/pages/tenants/_acronis.scss */
.acronis-data {
  display: flex;
  flex-direction: column;
  width: 80%;
  gap: 0.5rem; }

/* line 142, static/scss/pages/tenants/_acronis.scss */
.acronis-vault {
  box-shadow: var(--shadow-md);
  padding: 1.5rem;
  background-color: var(--color-bg-surface);
  border-color: var(--color-border-default);
  border-width: 1px;
  border-radius: 1rem;
  overflow: hidden;
  position: relative; }
  /* line 152, static/scss/pages/tenants/_acronis.scss */
  .acronis-vault .acronis-vault-header {
    justify-content: space-between;
    align-items: flex-start;
    display: flex;
    margin-bottom: 1.5rem; }
    /* line 157, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault .acronis-vault-header .header-icon {
      width: 2.5rem;
      height: 2.5rem;
      border-radius: 0.5rem;
      display: flex;
      align-items: center;
      justify-content: center; }
    /* line 168, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault .acronis-vault-header a {
      font-size: 1rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.1em; }
    /* line 174, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault .acronis-vault-header.cloud {
      border-bottom: 2px solid var(--gama-brand-orange-500); }
      /* line 174, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.cloud .header-icon {
        background-color: var(--gama-brand-orange-100); }
        /* line 174, static/scss/pages/tenants/_acronis.scss */
        .acronis-vault .acronis-vault-header.cloud .header-icon i {
          color: var(--gama-brand-orange-500); }
      /* line 174, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.cloud a {
        color: var(--gama-brand-orange-500); }
    /* line 175, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault .acronis-vault-header.local {
      border-bottom: 2px solid var(--gama-brand-blue-500); }
      /* line 175, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.local .header-icon {
        background-color: var(--gama-brand-blue-100); }
        /* line 175, static/scss/pages/tenants/_acronis.scss */
        .acronis-vault .acronis-vault-header.local .header-icon i {
          color: var(--gama-brand-blue-500); }
      /* line 175, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.local a {
        color: var(--gama-brand-blue-500); }
    /* line 176, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault .acronis-vault-header.app {
      border-bottom: 2px solid var(--gama-brand-teal-500); }
      /* line 176, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.app .header-icon {
        background-color: var(--gama-brand-teal-100); }
        /* line 176, static/scss/pages/tenants/_acronis.scss */
        .acronis-vault .acronis-vault-header.app .header-icon i {
          color: var(--gama-brand-teal-500); }
      /* line 176, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.app a {
        color: var(--gama-brand-teal-500); }
    /* line 177, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault .acronis-vault-header.share {
      border-bottom: 2px solid var(--color-danger-500); }
      /* line 177, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.share .header-icon {
        background-color: var(--color-danger-100); }
        /* line 177, static/scss/pages/tenants/_acronis.scss */
        .acronis-vault .acronis-vault-header.share .header-icon i {
          color: var(--color-danger-500); }
      /* line 177, static/scss/pages/tenants/_acronis.scss */
      .acronis-vault .acronis-vault-header.share a {
        color: var(--color-danger-500); }
  /* line 179, static/scss/pages/tenants/_acronis.scss */
  .acronis-vault i.back-icon {
    position: absolute;
    pointer-events: none;
    font-size: 8rem;
    line-height: 1;
    right: -1.5rem;
    bottom: -1.5rem; }
    /* line 186, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault i.back-icon.cloud {
      color: rgba(243, 149, 74, 0.3); }
    /* line 187, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault i.back-icon.local {
      color: rgba(63, 154, 212, 0.3); }
    /* line 188, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault i.back-icon.app {
      color: rgba(43, 211, 198, 0.3); }
    /* line 189, static/scss/pages/tenants/_acronis.scss */
    .acronis-vault i.back-icon.share {
      color: rgba(211, 43, 43, 0.3); }

/* line 192, static/scss/pages/tenants/_acronis.scss */
.big-number {
  display: block;
  font-size: 1.875rem;
  font-weight: 900;
  color: var(--color-text-primary);
  letter-spacing: -0.025em; }

/* line 200, static/scss/pages/tenants/_acronis.scss */
.unit-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text-secondary);
  margin-left: 0.25rem; }

/* line 207, static/scss/pages/tenants/_acronis.scss */
.micro-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.1em; }

/* line 215, static/scss/pages/tenants/_acronis.scss */
.acronis-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem; }

/* line 221, static/scss/pages/tenants/_acronis.scss */
.acronis-table th {
  text-align: left;
  color: var(--gama-brand-teal-500);
  font-weight: 600;
  border-bottom: 2px solid var(--gama-brand-teal-200);
  padding: 8px 12px; }

/* line 229, static/scss/pages/tenants/_acronis.scss */
.acronis-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--gama-brand-teal-200); }

/* line 234, static/scss/pages/tenants/_acronis.scss */
.acronis-table tr:last-child td {
  border-bottom: none; }

/* line 236, static/scss/pages/tenants/_acronis.scss */
.text-center {
  text-align: center; }

/* line 238, static/scss/pages/tenants/_acronis.scss */
.status-ok {
  color: var(--gama-brand-teal-600);
  font-weight: 600; }

/* line 239, static/scss/pages/tenants/_acronis.scss */
.status-ko {
  color: var(--color-danger-500);
  font-weight: 600; }

/* line 256, static/scss/pages/tenants/_acronis.scss */
.vaults-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem; }

/* line 263, static/scss/pages/tenants/_acronis.scss */
.vault-card {
  position: relative;
  background-color: var(--color-bg-surface);
  border-radius: 0.5rem;
  border: 1px solid var(--color-border-default);
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: var(--tansition); }
  /* line 273, static/scss/pages/tenants/_acronis.scss */
  .vault-card:hover {
    box-shadow: var(--shadow-xl);
    transform: translateY(-0.25rem); }
  /* line 279, static/scss/pages/tenants/_acronis.scss */
  .vault-card:hover .vault-card-bg-icon {
    color: rgba(var(--color-text-tertiary), 0.5); }

/* line 284, static/scss/pages/tenants/_acronis.scss */
.vault-card-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 0.375rem;
  height: 100%; }
  /* line 291, static/scss/pages/tenants/_acronis.scss */
  .vault-card-bar.bar-teal {
    background-color: var(--gama-brand-teal-500); }
  /* line 292, static/scss/pages/tenants/_acronis.scss */
  .vault-card-bar.bar-amber {
    background-color: var(--gama-brand-orange-500); }
  /* line 293, static/scss/pages/tenants/_acronis.scss */
  .vault-card-bar.bar-blue {
    background-color: var(--gama-brand-blue-500); }
  /* line 294, static/scss/pages/tenants/_acronis.scss */
  .vault-card-bar.bar-slate {
    background-color: var(--color-neutral-400); }

/* line 297, static/scss/pages/tenants/_acronis.scss */
.vault-card-body {
  display: flex;
  flex-direction: column;
  height: 100%; }

/* line 303, static/scss/pages/tenants/_acronis.scss */
.vault-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.5rem; }

/* line 310, static/scss/pages/tenants/_acronis.scss */
.icon-box {
  padding: 0.75rem;
  border-radius: var(--radius-sm); }
  /* line 314, static/scss/pages/tenants/_acronis.scss */
  .icon-box.icon-teal {
    background-color: var(--gama-brand-teal-100);
    color: var(--gama-brand-teal-600); }
  /* line 315, static/scss/pages/tenants/_acronis.scss */
  .icon-box.icon-amber {
    background-color: var(--gama-brand-orange-100);
    color: var(--gama-brand-orange-600); }
  /* line 316, static/scss/pages/tenants/_acronis.scss */
  .icon-box.icon-blue {
    background-color: var(--gama-brand-blue-100);
    color: var(--gama-brand-blue-600); }
  /* line 317, static/scss/pages/tenants/_acronis.scss */
  .icon-box.icon-gray {
    background-color: var(--color-neutral-100);
    color: var(--color-neutral-600); }

/* line 320, static/scss/pages/tenants/_acronis.scss */
.icon-lg {
  font-size: 1.5rem; }

/* line 321, static/scss/pages/tenants/_acronis.scss */
.icon-md {
  font-size: 1.25rem; }

/* line 325, static/scss/pages/tenants/_acronis.scss */
.vault-card-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text-primary);
  text-transform: uppercase;
  letter-spacing: -0.025em;
  line-height: 1.25; }

/* line 334, static/scss/pages/tenants/_acronis.scss */
.status-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem; }

/* line 341, static/scss/pages/tenants/_acronis.scss */
.dot-green {
  display: flex;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--gama-brand-teal-500); }

/* line 349, static/scss/pages/tenants/_acronis.scss */
.status-text {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  font-weight: 600; }

/* line 355, static/scss/pages/tenants/_acronis.scss */
.vault-card-bg-icon {
  position: absolute;
  right: -1.5rem;
  bottom: -1.5rem;
  font-size: 6rem;
  color: var(--color-text-tertiary);
  transition: color 0.3s ease;
  pointer-events: none; }

/* line 371, static/scss/pages/tenants/_acronis.scss */
.tables-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem; }

/* line 378, static/scss/pages/tenants/_acronis.scss */
.panel {
  background-color: var(--color-bg-surface);
  border-radius: 0.75rem;
  border: 1px solid var(--color-border-default);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  display: flex;
  flex-direction: column; }

/* line 388, static/scss/pages/tenants/_acronis.scss */
.panel-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--color-border-default);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: rgba(var(--color-bg-surface-elevated), 0.3); }

/* line 397, static/scss/pages/tenants/_acronis.scss */
.panel-header-left {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

/* line 403, static/scss/pages/tenants/_acronis.scss */
.panel-icon-teal {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background-color: var(--gama-brand-teal-500);
  color: var(--color-text-inverse);
  display: flex;
  align-items: center;
  justify-content: center; }

/* line 414, static/scss/pages/tenants/_acronis.scss */
.panel-icon-orange {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background-color: var(--gama-brand-orange-100);
  color: var(--color-text-inverse);
  display: flex;
  align-items: center;
  justify-content: center; }

/* line 425, static/scss/pages/tenants/_acronis.scss */
.panel-title-teal {
  font-weight: 700;
  color: var(--gama-brand-teal-500); }

/* line 430, static/scss/pages/tenants/_acronis.scss */
.panel-title-dark {
  font-weight: 700;
  color: var(--color-text-primary); }

/* line 435, static/scss/pages/tenants/_acronis.scss */
.dots-row {
  display: flex;
  gap: 0.5rem; }

/* line 440, static/scss/pages/tenants/_acronis.scss */
.dot-blue {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--gama-brand-blue-400); }

/* line 447, static/scss/pages/tenants/_acronis.scss */
.dot-orange {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--gama-brand-orange-400); }

/* line 457, static/scss/pages/tenants/_acronis.scss */
.table-scroll {
  padding: 0;
  overflow-y: auto;
  max-height: 450px; }

/* line 463, static/scss/pages/tenants/_acronis.scss */
.data-table {
  min-width: 100%;
  border-collapse: collapse; }
  /* line 469, static/scss/pages/tenants/_acronis.scss */
  .data-table tbody tr + tr {
    border-top: 1px solid var(--color-border-default); }

/* line 475, static/scss/pages/tenants/_acronis.scss */
.table-row {
  transition: background-color 0.2s ease; }
  /* line 478, static/scss/pages/tenants/_acronis.scss */
  .table-row:hover {
    background-color: var(--color-bg-surface-elevated); }
    /* line 481, static/scss/pages/tenants/_acronis.scss */
    .table-row:hover .row-icon {
      color: var(--gama-brand-teal-500); }

/* line 487, static/scss/pages/tenants/_acronis.scss */
.table-cell {
  padding: 1rem 1.5rem; }

/* line 491, static/scss/pages/tenants/_acronis.scss */
.cell-flex {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

/* line 497, static/scss/pages/tenants/_acronis.scss */
.row-icon {
  color: var(--color-text-secondary);
  transition: color 0.2s ease; }

/* line 502, static/scss/pages/tenants/_acronis.scss */
.item-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text-primary); }

/* line 508, static/scss/pages/tenants/_acronis.scss */
.type-badge {
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  letter-spacing: -0.025em;
  border: 1px solid var(--color-border-default);
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  box-shadow: var(--shadow-sm); }

/* line 520, static/scss/pages/tenants/_acronis.scss */
.size-text {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-text-primary); }

/* line 529, static/scss/pages/tenants/_acronis.scss */
.m365-list {
  padding: 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  overflow-y: auto;
  max-height: 450px; }

/* line 538, static/scss/pages/tenants/_acronis.scss */
.m365-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border-default);
  background-color: rgba(var(--color-border-default), 0.2);
  transition: var(--transition-base); }
  /* line 548, static/scss/pages/tenants/_acronis.scss */
  .m365-item:hover {
    border-color: var(--gama-brand-orange-400); }

/* line 553, static/scss/pages/tenants/_acronis.scss */
.avatar-orange {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background-color: var(--gama-brand-orange-100);
  color: var(--gama-brand-orange-600);
  display: flex;
  align-items: center;
  justify-content: center; }

/* line 564, static/scss/pages/tenants/_acronis.scss */
.avatar-blue {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background-color: var(--gama-brand-blue-100);
  color: var(--gama-brand-blue-600);
  display: flex;
  align-items: center;
  justify-content: center; }

/* line 575, static/scss/pages/tenants/_acronis.scss */
.m365-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text-primary); }

/* line 581, static/scss/pages/tenants/_acronis.scss */
.m365-subtitle {
  font-size: 10px;
  color: var(--color-text-secondary);
  font-weight: 700; }

/* line 587, static/scss/pages/tenants/_acronis.scss */
.m365-size {
  font-size: 0.875rem;
  font-weight: 900;
  color: var(--color-text-secondary); }

/* line 593, static/scss/pages/tenants/_acronis.scss */
.unit-tiny {
  font-size: 10px;
  color: var(--color-text-secondary); }

/* line 1, static/scss/pages/tenants/_settings.scss */
.tab-settings {
  display: flex;
  flex-direction: column; }

/* line 5, static/scss/pages/tenants/_settings.scss */
.tenant-settings-header {
  margin-bottom: 1.5rem; }
  /* line 7, static/scss/pages/tenants/_settings.scss */
  .tenant-settings-header .settings-title {
    font-weight: 900;
    font-size: 1.5rem;
    line-height: 2rem;
    letter-spacing: -0.025rem;
    margin: 0;
    color: var(--gama-brand-teal-500); }
  /* line 15, static/scss/pages/tenants/_settings.scss */
  .tenant-settings-header .settings-subtitle {
    color: var(--color-text-secondary);
    font-size: 0.875rem;
    line-height: 1.25rem;
    margin: 0; }

/* line 22, static/scss/pages/tenants/_settings.scss */
.tenant-settings-content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem; }
  /* line 26, static/scss/pages/tenants/_settings.scss */
  .tenant-settings-content .integration-card {
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-md);
    background-color: var(--color-bg-surface);
    border: 1px solid var(--color-border-default);
    border-radius: 1rem;
    overflow: hidden;
    padding: 2rem; }
    /* line 35, static/scss/pages/tenants/_settings.scss */
    .tenant-settings-content .integration-card .integration-header {
      display: flex;
      justify-content: space-between; }
      /* line 38, static/scss/pages/tenants/_settings.scss */
      .tenant-settings-content .integration-card .integration-header .integration-icon {
        background-color: var(--gama-brand-orange-100);
        border-radius: 1rem;
        align-content: center;
        justify-content: center;
        width: 3.5rem;
        height: 3.5rem;
        display: grid; }
        /* line 46, static/scss/pages/tenants/_settings.scss */
        .tenant-settings-content .integration-card .integration-header .integration-icon i {
          color: var(--gama-brand-orange-500);
          font-size: 2.5rem;
          line-height: 2.25rem; }
      /* line 52, static/scss/pages/tenants/_settings.scss */
      .tenant-settings-content .integration-card .integration-header .status-badge {
        height: 20px; }
    /* line 56, static/scss/pages/tenants/_settings.scss */
    .tenant-settings-content .integration-card .integration-title {
      color: var(--gama-brand-blue-500);
      border-bottom: 2px solid var(--gama-brand-orange-500);
      font-size: 2rem; }
    /* line 61, static/scss/pages/tenants/_settings.scss */
    .tenant-settings-content .integration-card .integration-description {
      color: var(--color-text-secondary);
      line-height: 1.625rem;
      font-size: 0.75rem;
      margin-bottom: 1.5rem; }

/* line 1, static/scss/pages/tenants/_gallery.scss */
.tab-gallery {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  width: 100%;
  color: var(--color-text-primary);
  animation: dossier-in .5s ease both; }

@keyframes dossier-in {
  from {
    opacity: 0;
    transform: translateY(6px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  /* line 14, static/scss/pages/tenants/_gallery.scss */
  .dossier, .dossier * {
    animation: none !important;
    transition: none !important; } }

/* line 16, static/scss/pages/tenants/_gallery.scss */
.dossier-alert {
  background: var(--color-bg-surface);
  border-radius: var(--color-border-default);
  border: 1px solid var(--color-danger-100);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(34, 38, 43, 0.04); }
  /* line 22, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert .dossier-alert__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.5rem;
    background: var(--color-danger-100);
    border-bottom: 1px solid rgba(166, 61, 52, 0.18); }
  /* line 31, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert .dossier-alert__left {
    display: flex;
    align-items: center;
    gap: 1rem; }
  /* line 36, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert .dossier-alert__icon {
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-danger-500);
    color: var(--color-text-inverse);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    box-shadow: 0 4px 10px rgba(166, 61, 52, 0.28); }
  /* line 49, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert .dossier-alert__title {
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .01em;
    color: var(--color-danger-500);
    margin: 0; }
  /* line 56, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert .dossier-alert__subtitle {
    font-size: .75rem;
    color: var(--color-danger-300);
    margin: .15rem 0 0; }
  /* line 61, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert .dossier-alert__grid {
    padding: 1.5rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    background: repeating-linear-gradient(90deg, transparent, transparent 23px, rgba(219, 214, 201, 0.4) 23px, rgba(219, 214, 201, 0.4) 24px); }

/* line 69, static/scss/pages/tenants/_gallery.scss */
.dossier-stamp {
  font-family: var(--font-mono);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--alert);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  padding: .3rem .7rem;
  border-radius: 999px; }

@media (min-width: 640px) {
  /* line 81, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert__grid {
    grid-template-columns: repeat(4, 1fr); } }

@media (min-width: 1024px) {
  /* line 82, static/scss/pages/tenants/_gallery.scss */
  .dossier-alert__grid {
    grid-template-columns: repeat(6, 1fr); } }

/* ---------- Site dossier cards ---------- */
/* line 85, static/scss/pages/tenants/_gallery.scss */
.gallery-site-list {
  display: flex;
  flex-direction: column;
  gap: 2rem; }
  /* line 90, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card {
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border-default);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(34, 38, 43, 0.04); }
  /* line 98, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.4rem 1.5rem;
    border-bottom: 1px solid var(--color-border-default);
    position: relative; }
  /* line 109, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card__header::before {
    /* Ledger-style reference tab */
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--moss); }
  /* line 120, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card__id {
    display: flex;
    align-items: center;
    gap: 1rem; }
  /* line 126, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 8px;
    background: var(--gama-brand-orange-500-soft);
    color: var(--gama-brand-orange-500);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    flex-shrink: 0; }
  /* line 139, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.2; }
  /* line 148, static/scss/pages/tenants/_gallery.scss */
  .gallery-site-list .gallery-site-card__meta {
    font-family: var(--font-mono);
    font-size: .7rem;
    letter-spacing: .04em;
    color: var(--color-text-primary);
    margin: .3rem 0 0;
    display: flex;
    align-items: center;
    gap: .35rem; }

/* ---------- Upload control ---------- */
/* line 160, static/scss/pages/tenants/_gallery.scss */
.upload-control {
  display: flex;
  align-items: center;
  gap: .6rem;
  background: var(--color-bg-surface-elevated);
  border: 1px dashed var(--color-text-primary);
  border-radius: 8px;
  padding: .4rem .4rem .4rem 1rem;
  transition: border-color .15s ease, background .15s ease; }

/* line 171, static/scss/pages/tenants/_gallery.scss */
.upload-control:hover {
  border-color: var(--gama-brand-orange-500);
  background: var(--gama-brand-orange-500-soft); }

/* line 176, static/scss/pages/tenants/_gallery.scss */
.upload-control__label {
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--gama-brand-orange-500);
  white-space: nowrap; }

/* line 187, static/scss/pages/tenants/_gallery.scss */
.upload-control input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0); }

/* line 194, static/scss/pages/tenants/_gallery.scss */
.upload-control__divider {
  width: 1px;
  height: 1.1rem;
  background: var(--color-border-default); }

/* line 200, static/scss/pages/tenants/_gallery.scss */
.upload-control__icon {
  color: var(--color-text-primary);
  font-size: 1.1rem;
  padding: 0 .3rem; }

/* ---------- Contact-sheet photo grid ---------- */
/* line 207, static/scss/pages/tenants/_gallery.scss */
.contact-sheet {
  padding: 1.5rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem; }

@media (min-width: 640px) {
  /* line 214, static/scss/pages/tenants/_gallery.scss */
  .contact-sheet {
    grid-template-columns: repeat(3, 1fr); } }

@media (min-width: 768px) {
  /* line 215, static/scss/pages/tenants/_gallery.scss */
  .contact-sheet {
    grid-template-columns: repeat(4, 1fr); } }

@media (min-width: 1024px) {
  /* line 216, static/scss/pages/tenants/_gallery.scss */
  .contact-sheet {
    grid-template-columns: repeat(5, 1fr); } }

@media (min-width: 1280px) {
  /* line 217, static/scss/pages/tenants/_gallery.scss */
  .contact-sheet {
    grid-template-columns: repeat(6, 1fr); } }

/* line 219, static/scss/pages/tenants/_gallery.scss */
.frame {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--color-border-default);
  background: var(--color-bg-surface-elevated);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }

/* line 229, static/scss/pages/tenants/_gallery.scss */
.frame:hover {
  transform: translateY(-3px);
  border-color: var(--gama-brand-orange-500);
  box-shadow: 0 10px 22px rgba(34, 38, 43, 0.14); }

/* line 235, static/scss/pages/tenants/_gallery.scss */
.frame__index {
  position: absolute;
  top: .4rem;
  left: .4rem;
  z-index: 2;
  font-family: var(--font-mono);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: #fff;
  background: rgba(34, 38, 43, 0.55);
  backdrop-filter: blur(2px);
  padding: .12rem .4rem;
  border-radius: 4px;
  pointer-events: none; }

/* line 252, static/scss/pages/tenants/_gallery.scss */
.frame__link {
  display: block;
  width: 100%;
  height: 100%; }

/* line 258, static/scss/pages/tenants/_gallery.scss */
.frame__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease; }

/* line 266, static/scss/pages/tenants/_gallery.scss */
.frame:hover .frame__img {
  transform: scale(1.08); }

/* line 270, static/scss/pages/tenants/_gallery.scss */
.frame__caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: .6rem;
  background: linear-gradient(to top, rgba(34, 38, 43, 0.78), transparent);
  opacity: 0;
  transition: opacity .25s ease; }

/* line 279, static/scss/pages/tenants/_gallery.scss */
.frame:hover .frame__caption {
  opacity: 1; }

/* line 281, static/scss/pages/tenants/_gallery.scss */
.frame__caption-text {
  color: #fff;
  font-size: .68rem;
  font-weight: 500;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

/* line 291, static/scss/pages/tenants/_gallery.scss */
.frame__actions {
  position: absolute;
  top: .4rem;
  right: .4rem;
  z-index: 2;
  display: flex;
  gap: .3rem;
  opacity: 0;
  transition: opacity .2s ease; }

/* line 302, static/scss/pages/tenants/_gallery.scss */
.frame:hover .frame__actions {
  opacity: 1; }

/* line 304, static/scss/pages/tenants/_gallery.scss */
.frame__btn {
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 6px;
  background: rgba(248, 247, 243, 0.92);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gama-brand-orange-500);
  font-size: .7rem;
  border: none;
  cursor: pointer;
  transition: background .15s ease, color .15s ease; }

/* line 320, static/scss/pages/tenants/_gallery.scss */
.frame__btn:hover {
  background: var(--gama-brand-orange-500);
  color: #fff; }

/* line 325, static/scss/pages/tenants/_gallery.scss */
.frame__btn--danger {
  color: var(--alert); }

/* line 329, static/scss/pages/tenants/_gallery.scss */
.frame__btn--danger:hover {
  background: var(--alert);
  color: #fff; }

/* ---------- Empty state ---------- */
/* line 335, static/scss/pages/tenants/_gallery.scss */
.empty-frame {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1rem;
  border: 2px dashed var(--color-border-default);
  border-radius: 0.5rem;
  color: var(--color-text-primary); }

/* line 347, static/scss/pages/tenants/_gallery.scss */
.empty-frame i {
  font-size: 2.6rem;
  color: var(--color-border-default); }

/* line 352, static/scss/pages/tenants/_gallery.scss */
.empty-frame p {
  margin: .6rem 0 0;
  font-size: .85rem; }

/* ---------- Edit modal ---------- */
/* line 358, static/scss/pages/tenants/_gallery.scss */
.dossier-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem; }

/* line 368, static/scss/pages/tenants/_gallery.scss */
.dossier-modal.is-hidden {
  display: none; }

/* line 370, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(34, 38, 43, 0.55);
  backdrop-filter: blur(2px); }

/* line 377, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__panel {
  position: relative;
  background: var(--color-bg-surface);
  border-radius: 0.5rem;
  box-shadow: 0 20px 50px rgba(34, 38, 43, 0.35);
  width: 100%;
  max-width: 22rem;
  overflow: hidden;
  border-top: 3px solid var(--gama-brand-orange-500); }

/* line 388, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__body {
  padding: 1.6rem; }

/* line 392, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__title {
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-text-primary);
  margin: 0 0 1rem; }

/* line 399, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__textarea {
  width: 100%;
  border: 1px solid var(--color-border-default);
  border-radius: 8px;
  padding: .7rem;
  font-size: .85rem;
  color: var(--color-text-primary);
  resize: vertical;
  background: var(--color-bg-surface-elevated); }

/* line 410, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__textarea:focus {
  outline: 2px solid var(--gama-brand-orange-500);
  outline-offset: 1px;
  border-color: var(--gama-brand-orange-500); }

/* line 416, static/scss/pages/tenants/_gallery.scss */
.dossier-modal__actions {
  margin-top: 1.4rem;
  display: flex;
  gap: .7rem; }
  /* line 421, static/scss/pages/tenants/_gallery.scss */
  .dossier-modal__actions .btn {
    flex: 1;
    padding: .6rem 1rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: .8rem;
    border: none;
    cursor: pointer;
    transition: background .15s ease, color .15s ease; }
  /* line 432, static/scss/pages/tenants/_gallery.scss */
  .dossier-modal__actions .btn:focus-visible {
    outline: 2px solid var(--gama-brand-orange-500);
    outline-offset: 2px; }
  /* line 437, static/scss/pages/tenants/_gallery.scss */
  .dossier-modal__actions .btn--primary {
    background: var(--color-text-primary);
    color: var(--color-text-inverse); }
  /* line 442, static/scss/pages/tenants/_gallery.scss */
  .dossier-modal__actions .btn--primary:hover {
    background: var(--gama-brand-orange-500); }
  /* line 444, static/scss/pages/tenants/_gallery.scss */
  .dossier-modal__actions .btn--ghost {
    background: var(--color-bg-surface-elevated);
    color: var(--color-text-primary); }
  /* line 449, static/scss/pages/tenants/_gallery.scss */
  .dossier-modal__actions .btn--ghost:hover {
    background: var(--color-border-default); }

/* line 1, static/scss/pages/tenants/_topology.scss */
.tab-topology {
  display: flex;
  flex-direction: column;
  background-color: var(--color-bg-surface);
  border-radius: 0.5rem; }

/* line 7, static/scss/pages/tenants/_topology.scss */
.topology-toolbar {
  padding-left: 2rem;
  padding-right: 2rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  justify-content: space-between;
  align-items: center;
  display: flex;
  height: 5rem; }
  /* line 16, static/scss/pages/tenants/_topology.scss */
  .topology-toolbar .toolbar-left {
    width: 70%;
    gap: 1.5rem;
    align-items: center;
    display: flex; }
    /* line 21, static/scss/pages/tenants/_topology.scss */
    .topology-toolbar .toolbar-left .topology-title {
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--gama-brand-teal-500);
      font-size: 1.25rem; }
  /* line 29, static/scss/pages/tenants/_topology.scss */
  .topology-toolbar .toolbar-right {
    gap: 1rem;
    display: flex; }

/* line 34, static/scss/pages/tenants/_topology.scss */
.canvas-viewport {
  overflow: hidden;
  flex-grow: 1;
  position: relative; }
  /* line 38, static/scss/pages/tenants/_topology.scss */
  .canvas-viewport .network-canvas {
    cursor: grab;
    width: 100%;
    height: 100%; }
    /* line 43, static/scss/pages/tenants/_topology.scss */
    .canvas-viewport .network-canvas .vis-network canvas {
      min-height: 700px;
      height: 100%; }

/* =========================================================
     Device detail — scoped styles built on GAMA design tokens
     ========================================================= */
/* line 4, static/scss/pages/devices/_detail.scss */
.dv-page {
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--color-text-primary);
  padding: 2rem 1.5rem;
  max-width: 1400px;
  margin: 0 auto; }

/* ---------- Header ---------- */
/* line 13, static/scss/pages/devices/_detail.scss */
.dv-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2.5rem; }

/* line 21, static/scss/pages/devices/_detail.scss */
.dv-header__identity {
  display: flex;
  align-items: center;
  gap: 1.25rem; }

/* line 22, static/scss/pages/devices/_detail.scss */
.dv-header__icon {
  width: 4.5rem;
  height: 4.5rem;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem; }

/* line 34, static/scss/pages/devices/_detail.scss */
.dv-header__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain; }

/* line 35, static/scss/pages/devices/_detail.scss */
.dv-header__title-row {
  display: flex;
  align-items: center;
  gap: 0.75rem; }

/* line 36, static/scss/pages/devices/_detail.scss */
.dv-header__title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0;
  color: var(--color-text-primary); }

/* line 43, static/scss/pages/devices/_detail.scss */
.dv-badge-state {
  padding: 0.35rem 0.9rem;
  background: var(--color-accent);
  color: var(--color-text-inverse);
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-sm); }

/* line 54, static/scss/pages/devices/_detail.scss */
.dv-header__meta {
  font-size: 0.8rem;
  color: var(--color-text-tertiary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 0.35rem; }

/* line 62, static/scss/pages/devices/_detail.scss */
.dv-header__meta .dv-meta-manufacturer {
  color: var(--color-accent-text); }

/* line 63, static/scss/pages/devices/_detail.scss */
.dv-header__meta .dv-sep {
  margin: 0 0.5rem;
  opacity: 0.3; }

/* ---------- Header actions ---------- */
/* line 66, static/scss/pages/devices/_detail.scss */
.dv-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  padding: 0.4rem; }

/* line 76, static/scss/pages/devices/_detail.scss */
.dv-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.1rem;
  border-radius: var(--radius-lg);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: var(--transition-base); }

/* line 91, static/scss/pages/devices/_detail.scss */
.dv-btn-soft {
  background: var(--color-primary-soft);
  color: var(--color-primary); }

/* line 95, static/scss/pages/devices/_detail.scss */
.dv-btn-soft:hover {
  background: var(--color-primary-soft-2); }

/* line 96, static/scss/pages/devices/_detail.scss */
.dv-btn-primary {
  background: var(--color-accent);
  color: var(--color-text-inverse); }

/* line 100, static/scss/pages/devices/_detail.scss */
.dv-btn-primary:hover {
  background: var(--color-accent-hover);
  box-shadow: var(--shadow-md); }

/* line 104, static/scss/pages/devices/_detail.scss */
.dv-divider-v {
  width: 1px;
  height: 1.75rem;
  background: var(--color-border-soft);
  margin: 0 0.25rem; }

/* line 105, static/scss/pages/devices/_detail.scss */
.dv-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius-md);
  color: var(--color-text-tertiary);
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 1.25rem;
  transition: var(--transition-fast);
  text-decoration: none; }

/* line 120, static/scss/pages/devices/_detail.scss */
.dv-icon-btn:hover {
  color: var(--color-accent);
  background: var(--color-accent-soft-2); }

/* line 121, static/scss/pages/devices/_detail.scss */
.dv-icon-btn.dv-icon-danger:hover {
  color: var(--color-danger);
  background: var(--color-danger-soft); }

/* ---------- Layout grid ---------- */
/* line 124, static/scss/pages/devices/_detail.scss */
.dv-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 2rem;
  align-items: start; }

@media (max-width: 960px) {
  /* line 131, static/scss/pages/devices/_detail.scss */
  .dv-grid {
    grid-template-columns: 1fr; } }

/* line 133, static/scss/pages/devices/_detail.scss */
.dv-col {
  display: flex;
  flex-direction: column;
  gap: 2rem; }

/* ---------- Card base ---------- */
/* line 136, static/scss/pages/devices/_detail.scss */
.dv-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  padding: 2rem; }

/* line 143, static/scss/pages/devices/_detail.scss */
.dv-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.75rem; }

/* line 149, static/scss/pages/devices/_detail.scss */
.dv-card__title {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-text-tertiary);
  display: flex;
  align-items: center;
  margin: 0; }

/* line 159, static/scss/pages/devices/_detail.scss */
.dv-card__title i {
  margin-right: 0.5rem;
  color: var(--color-accent); }

/* line 160, static/scss/pages/devices/_detail.scss */
.dv-card__title.dv-title-danger {
  color: var(--color-danger); }

/* line 161, static/scss/pages/devices/_detail.scss */
.dv-card__title.dv-title-danger i {
  color: var(--color-danger); }

/* ---------- Monitoring card (dark) ---------- */
/* line 164, static/scss/pages/devices/_detail.scss */
.dv-monitor {
  background: linear-gradient(160deg, var(--color-neutral-900), #10151f 70%);
  color: var(--color-text-inverse);
  border-radius: var(--radius-xl);
  padding: 2rem;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-xl); }

/* line 173, static/scss/pages/devices/_detail.scss */
.dv-monitor::before {
  content: '';
  position: absolute;
  top: -3rem;
  right: -3rem;
  width: 12rem;
  height: 12rem;
  background: var(--color-accent);
  opacity: 0.18;
  border-radius: 50%;
  filter: blur(50px); }

/* line 183, static/scss/pages/devices/_detail.scss */
.dv-monitor__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 1;
  margin-bottom: 2rem; }

/* line 191, static/scss/pages/devices/_detail.scss */
.dv-monitor__eyebrow {
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--color-accent);
  margin: 0 0 0.35rem; }

/* line 199, static/scss/pages/devices/_detail.scss */
.dv-monitor__title {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem; }

/* line 207, static/scss/pages/devices/_detail.scss */
.dv-pill-online {
  font-size: 0.6rem;
  padding: 0.2rem 0.6rem;
  background: rgba(52, 211, 153, 0.16);
  color: #6ee7b7;
  border: 1px solid rgba(52, 211, 153, 0.3);
  border-radius: var(--radius-pill);
  font-weight: 700; }

/* line 216, static/scss/pages/devices/_detail.scss */
.dv-monitor__sync-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin: 0 0 0.15rem;
  text-align: right; }

/* line 224, static/scss/pages/devices/_detail.scss */
.dv-monitor__sync-value {
  font-family: ui-monospace, monospace;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.85); }

/* line 229, static/scss/pages/devices/_detail.scss */
.dv-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.9rem;
  position: relative;
  z-index: 1; }

/* line 236, static/scss/pages/devices/_detail.scss */
.dv-metric {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-lg);
  padding: 0.9rem; }

/* line 242, static/scss/pages/devices/_detail.scss */
.dv-metric__label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 0.5rem; }

/* line 253, static/scss/pages/devices/_detail.scss */
.dv-metric__label i.dv-ic-cpu {
  color: var(--color-accent); }

/* line 254, static/scss/pages/devices/_detail.scss */
.dv-metric__label i.dv-ic-ram {
  color: var(--gama-brand-blue-400); }

/* line 255, static/scss/pages/devices/_detail.scss */
.dv-metric__label i.dv-ic-disk {
  color: var(--color-warning); }

/* line 256, static/scss/pages/devices/_detail.scss */
.dv-metric__label i.dv-ic-net {
  color: #c4b5fd; }

/* line 257, static/scss/pages/devices/_detail.scss */
.dv-metric__value {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  min-height: 2rem; }

/* line 263, static/scss/pages/devices/_detail.scss */
.dv-metric__value.dv-value-lg {
  font-size: 1.25rem;
  font-weight: 800; }

/* line 264, static/scss/pages/devices/_detail.scss */
.dv-metric__value.dv-value-mono {
  font-family: ui-monospace, monospace;
  font-size: 0.68rem;
  word-break: break-all; }

/* line 265, static/scss/pages/devices/_detail.scss */
.dv-metric__empty {
  font-size: 0.62rem;
  color: rgba(255, 255, 255, 0.35);
  font-style: italic; }

/* line 266, static/scss/pages/devices/_detail.scss */
.dv-progress {
  margin-top: 0.6rem;
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-pill);
  overflow: hidden; }

/* line 274, static/scss/pages/devices/_detail.scss */
.dv-progress__fill {
  height: 100%;
  border-radius: var(--radius-pill); }

/* line 275, static/scss/pages/devices/_detail.scss */
.dv-progress__fill.dv-fill-cpu {
  background: var(--color-accent); }

/* line 276, static/scss/pages/devices/_detail.scss */
.dv-progress__fill.dv-fill-ram {
  background: var(--gama-brand-blue-400); }

/* line 277, static/scss/pages/devices/_detail.scss */
.dv-progress__fill.dv-fill-disk {
  background: var(--color-warning); }

/* line 278, static/scss/pages/devices/_detail.scss */
.dv-monitor__footer {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  justify-content: flex-end;
  position: relative;
  z-index: 1; }

/* line 287, static/scss/pages/devices/_detail.scss */
.dv-monitor__link {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem; }

/* line 296, static/scss/pages/devices/_detail.scss */
.dv-monitor__link:hover {
  color: var(--color-text-inverse); }

/* ---------- Alerts card ---------- */
/* line 299, static/scss/pages/devices/_detail.scss */
.dv-alert-count {
  padding: 0.3rem 0.75rem;
  background: var(--color-danger-soft);
  color: var(--color-danger-text);
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  border-radius: var(--radius-sm); }

/* line 308, static/scss/pages/devices/_detail.scss */
.dv-alert-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem; }

/* line 309, static/scss/pages/devices/_detail.scss */
.dv-alert-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background: var(--color-danger-soft);
  border: 1px solid var(--color-danger-border);
  border-radius: var(--radius-lg);
  transition: var(--transition-base); }

/* line 319, static/scss/pages/devices/_detail.scss */
.dv-alert-item:hover {
  box-shadow: var(--shadow-sm); }

/* line 320, static/scss/pages/devices/_detail.scss */
.dv-alert-item__left {
  display: flex;
  align-items: center;
  gap: 1.1rem; }

/* line 321, static/scss/pages/devices/_detail.scss */
.dv-alert-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem; }

/* line 329, static/scss/pages/devices/_detail.scss */
.dv-alert-icon.dv-severity-critical {
  color: var(--color-danger); }

/* line 330, static/scss/pages/devices/_detail.scss */
.dv-alert-icon.dv-severity-warning {
  color: var(--color-warning); }

/* line 331, static/scss/pages/devices/_detail.scss */
.dv-alert-message {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-text-primary);
  margin: 0; }

/* line 332, static/scss/pages/devices/_detail.scss */
.dv-alert-meta {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.25rem; }

/* line 333, static/scss/pages/devices/_detail.scss */
.dv-alert-meta span {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-danger-text);
  opacity: 0.75; }

/* line 337, static/scss/pages/devices/_detail.scss */
.dv-empty {
  text-align: center;
  padding: 1.75rem 0; }

/* line 341, static/scss/pages/devices/_detail.scss */
.dv-empty__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--color-success-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0.75rem;
  color: var(--color-success);
  font-size: 1.25rem; }

/* line 349, static/scss/pages/devices/_detail.scss */
.dv-empty__text {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-tertiary); }

/* ---------- Tickets card ---------- */
/* line 355, static/scss/pages/devices/_detail.scss */
.dv-btn-new {
  padding: 0.55rem 1rem;
  background: var(--color-neutral-900);
  color: var(--color-text-inverse);
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: var(--transition-base); }

/* line 366, static/scss/pages/devices/_detail.scss */
.dv-btn-new:hover {
  background: var(--color-accent); }

/* line 367, static/scss/pages/devices/_detail.scss */
.dv-ticket-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

/* line 368, static/scss/pages/devices/_detail.scss */
.dv-ticket-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem;
  background: var(--color-bg-surface-alt);
  border: 1px solid transparent;
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: inherit;
  transition: var(--transition-base); }

/* line 380, static/scss/pages/devices/_detail.scss */
.dv-ticket-item:hover {
  background: var(--color-bg-surface);
  border-color: var(--color-border-default);
  box-shadow: var(--shadow-sm); }

/* line 385, static/scss/pages/devices/_detail.scss */
.dv-ticket-item__left {
  display: flex;
  align-items: center;
  gap: 1.1rem; }

/* line 386, static/scss/pages/devices/_detail.scss */
.dv-ticket-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem; }

/* line 394, static/scss/pages/devices/_detail.scss */
.dv-ticket-icon.dv-status-open {
  color: var(--color-danger); }

/* line 395, static/scss/pages/devices/_detail.scss */
.dv-ticket-icon.dv-status-closed {
  color: var(--color-success); }

/* line 396, static/scss/pages/devices/_detail.scss */
.dv-ticket-title {
  font-size: 0.85rem;
  font-weight: 700;
  margin: 0;
  color: var(--color-text-primary); }

/* line 397, static/scss/pages/devices/_detail.scss */
.dv-ticket-date {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  margin-top: 0.2rem; }

/* line 398, static/scss/pages/devices/_detail.scss */
.dv-ticket-arrow {
  color: var(--color-text-tertiary);
  transition: var(--transition-base); }

/* line 399, static/scss/pages/devices/_detail.scss */
.dv-ticket-item:hover .dv-ticket-arrow {
  color: var(--color-accent);
  transform: translateX(2px); }

/* line 400, static/scss/pages/devices/_detail.scss */
.dv-empty-inline {
  text-align: center;
  padding: 1.75rem 0;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-tertiary);
  font-style: italic; }

/* ---------- Sidebar: owner card ---------- */
/* line 412, static/scss/pages/devices/_detail.scss */
.dv-owner {
  background: linear-gradient(150deg, var(--color-primary), var(--color-accent-active) 130%);
  color: var(--color-text-inverse);
  border-radius: var(--radius-xl);
  padding: 2rem;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-xl); }

/* line 421, static/scss/pages/devices/_detail.scss */
.dv-owner::after {
  content: '\f0895';
  font-family: 'Material Design Icons';
  position: absolute;
  bottom: -1rem;
  right: -1rem;
  font-size: 8rem;
  opacity: 0.08; }

/* line 429, static/scss/pages/devices/_detail.scss */
.dv-owner__eyebrow {
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  opacity: 0.65;
  margin: 0 0 1.4rem; }

/* line 433, static/scss/pages/devices/_detail.scss */
.dv-owner__row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.75rem;
  position: relative;
  z-index: 1; }

/* line 434, static/scss/pages/devices/_detail.scss */
.dv-owner__icon {
  width: 3.25rem;
  height: 3.25rem;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem; }

/* line 442, static/scss/pages/devices/_detail.scss */
.dv-owner__name {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--color-text-inverse);
  text-decoration: none;
  display: block;
  line-height: 1.25; }

/* line 450, static/scss/pages/devices/_detail.scss */
.dv-owner__name:hover {
  text-decoration: underline; }

/* line 451, static/scss/pages/devices/_detail.scss */
.dv-owner__site {
  font-size: 0.75rem;
  opacity: 0.7;
  font-weight: 600;
  margin-top: 0.2rem; }

/* line 452, static/scss/pages/devices/_detail.scss */
.dv-owner__panel {
  background: rgba(0, 0, 0, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--radius-lg);
  padding: 1.1rem;
  position: relative;
  z-index: 1; }

/* line 460, static/scss/pages/devices/_detail.scss */
.dv-owner__panel-label {
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  opacity: 0.55;
  margin: 0 0 0.5rem; }

/* line 464, static/scss/pages/devices/_detail.scss */
.dv-owner__user {
  display: flex;
  align-items: center;
  gap: 0.65rem; }

/* line 465, static/scss/pages/devices/_detail.scss */
.dv-owner__user-icon {
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem; }

/* line 471, static/scss/pages/devices/_detail.scss */
.dv-owner__user-name {
  font-size: 0.85rem;
  font-weight: 700; }

/* ---------- Spec card ---------- */
/* line 474, static/scss/pages/devices/_detail.scss */
.dv-spec-list {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

/* line 475, static/scss/pages/devices/_detail.scss */
.dv-spec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--color-border-soft); }

/* line 480, static/scss/pages/devices/_detail.scss */
.dv-spec-row:last-child {
  border-bottom: none;
  padding-bottom: 0; }

/* line 481, static/scss/pages/devices/_detail.scss */
.dv-spec-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-tertiary); }

/* line 482, static/scss/pages/devices/_detail.scss */
.dv-spec-value {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--color-text-primary); }

/* line 483, static/scss/pages/devices/_detail.scss */
.dv-spec-value.dv-value-success {
  color: var(--color-success); }

/* line 484, static/scss/pages/devices/_detail.scss */
.dv-spec-value.dv-value-danger {
  color: var(--color-danger); }

/* ---------- VM card ---------- */
/* line 487, static/scss/pages/devices/_detail.scss */
.dv-vm-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem; }

/* line 488, static/scss/pages/devices/_detail.scss */
.dv-vm-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1rem;
  background: var(--color-bg-surface-alt);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text-primary);
  transition: var(--transition-base); }

/* line 497, static/scss/pages/devices/_detail.scss */
.dv-vm-item:hover {
  background: var(--color-primary-soft);
  color: var(--color-primary); }

/* line 501, static/scss/pages/devices/_detail.scss */
.dv-vm-item span {
  font-size: 0.82rem;
  font-weight: 700; }

/* line 502, static/scss/pages/devices/_detail.scss */
.dv-vm-item i {
  opacity: 0;
  transition: var(--transition-fast); }

/* line 503, static/scss/pages/devices/_detail.scss */
.dv-vm-item:hover i {
  opacity: 1; }

/* ---------- Utility ---------- */
@keyframes dv-pulse-anim {
  0%, 100% {
    opacity: 1; }
  50% {
    opacity: 0.4; } }

/* line 507, static/scss/pages/devices/_detail.scss */
.dv-pulse {
  animation: dv-pulse-anim 1.6s ease-in-out infinite; }

/* line 2, static/scss/pages/settings/_tactical.scss */
.detail-status-badge {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-size: .8rem;
  font-weight: 600;
  border: 1px solid var(--color-border-default);
  background: var(--color-bg-surface-alt);
  color: var(--color-text-secondary); }

/* line 12, static/scss/pages/settings/_tactical.scss */
.detail-status-badge .detail-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-text-tertiary); }

/* line 16, static/scss/pages/settings/_tactical.scss */
.detail-status-badge.is-on {
  background: var(--color-success-soft);
  border-color: var(--color-success-border);
  color: var(--color-success); }

/* line 21, static/scss/pages/settings/_tactical.scss */
.detail-status-badge.is-on .detail-status-dot {
  background: var(--color-success); }

/* line 22, static/scss/pages/settings/_tactical.scss */
.detail-status-badge.is-off {
  background: var(--color-danger-soft);
  border-color: var(--color-danger-border);
  color: var(--color-danger); }

/* line 27, static/scss/pages/settings/_tactical.scss */
.detail-status-badge.is-off .detail-status-dot {
  background: var(--color-danger); }

/* line 29, static/scss/pages/settings/_tactical.scss */
.detail-group {
  display: flex;
  flex-direction: column;
  gap: 6px; }

/* line 30, static/scss/pages/settings/_tactical.scss */
.detail-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: .03em; }

/* line 36, static/scss/pages/settings/_tactical.scss */
.detail-label i {
  font-size: 1rem;
  color: var(--color-primary); }

/* line 37, static/scss/pages/settings/_tactical.scss */
.detail-value {
  font-size: .95rem;
  color: var(--color-text-primary);
  background: var(--color-bg-surface-alt);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  min-height: 42px;
  display: flex;
  align-items: center; }

/* line 46, static/scss/pages/settings/_tactical.scss */
.detail-value.detail-muted {
  color: var(--color-text-secondary); }

/* line 47, static/scss/pages/settings/_tactical.scss */
.detail-empty {
  color: var(--color-text-tertiary);
  font-style: italic; }

/* line 49, static/scss/pages/settings/_tactical.scss */
.detail-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text-link);
  text-decoration: none;
  font-weight: 500; }

/* line 54, static/scss/pages/settings/_tactical.scss */
.detail-link:hover {
  text-decoration: underline; }

/* line 55, static/scss/pages/settings/_tactical.scss */
.detail-link i {
  font-size: 1rem; }

/* line 57, static/scss/pages/settings/_tactical.scss */
.detail-secret {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%; }

/* line 58, static/scss/pages/settings/_tactical.scss */
.detail-secret-text {
  font-family: monospace;
  letter-spacing: 1px; }

/* line 59, static/scss/pages/settings/_tactical.scss */
.detail-secret-toggle {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-secondary);
  display: flex;
  align-items: center;
  padding: 4px;
  border-radius: var(--radius-xs);
  transition: var(--transition-fast); }

/* line 66, static/scss/pages/settings/_tactical.scss */
.detail-secret-toggle:hover {
  color: var(--color-primary);
  background: var(--color-primary-soft); }

/* line 71, static/scss/pages/settings/_tactical.scss */
.toggle-icon.is-on {
  background: var(--color-success-soft);
  color: var(--color-success); }
