:root{--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--color-brand-50: #EEF5FD;--color-brand-100: #D5E7F9;--color-brand-200: #AACFF3;--color-brand-300: #6FAEEA;--color-brand-400: #3D8EDF;--color-brand-500: #146DD3;--color-brand-600: #0F57AA;--color-brand-700: #0A4282;--color-brand-800: #072E5A;--color-brand-900: #041A34;--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CBD5E1;--color-gray-400: #78859B;--color-gray-500: #64748B;--color-gray-600: #475569;--color-gray-700: #334155;--color-gray-800: #1E293B;--color-gray-900: #0F172A;--color-bg: #F8FAFC;--color-bg-elev: #FFFFFF;--color-bg-soft: #F1F5F9;--color-text: #0F172A;--color-text-muted: #374151;--color-border: #E2E8F0;--color-border-strong:#CBD5E1;--color-accent: #146DD3;--color-accent-hover: #0F57AA;--color-accent-light: #EEF5FD;--color-accent-fg: #FFFFFF;--color-success: #16A34A;--color-success-bg: #F0FDF4;--color-success-border: #BBF7D0;--color-warning: #D97706;--color-warning-bg: #FFFBEB;--color-warning-border: #FDE68A;--color-danger: #DC2626;--color-danger-bg: #FEF2F2;--color-danger-border: #FECACA;--color-info: #146DD3;--color-info-bg: #EEF5FD;--color-info-border: #AACFF3;--sidebar-width: 260px;--topbar-height: 64px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-card: 0 1px 3px rgba(15, 23, 42, .04), 0 1px 2px rgba(15, 23, 42, .02);--shadow-soft: 0 4px 12px rgba(15, 23, 42, .06);--shadow-elevated: 0 8px 30px rgba(15, 23, 42, .12);--shadow-shell: 0 0 0 1px rgba(15, 23, 42, .04), 0 2px 20px rgba(15, 23, 42, .06);--shadow-focus: 0 0 0 3px rgba(20, 109, 211, .2);--duration-fast: .1s;--duration-base: .18s;--duration-slow: .32s;--ease-standard: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1)}[data-theme=dark]{--color-body-bg: #080C14;--color-bg: #0F172A;--color-bg-elev: #1E293B;--color-bg-soft: #1a2436;--color-text: #F1F5F9;--color-text-muted: #94A3B8;--color-border: #334155;--color-border-strong:#475569;--color-accent: #3D8EDF;--color-accent-hover: #6FAEEA;--color-accent-light: rgba(61,142,223,.12);--color-accent-fg: #FFFFFF;--color-success: #4ADE80;--color-success-bg: rgba(74,222,128,.1);--color-success-border: rgba(74,222,128,.25);--color-warning: #FBBF24;--color-warning-bg: rgba(251,191,36,.1);--color-warning-border: rgba(251,191,36,.25);--color-danger: #F87171;--color-danger-bg: rgba(248,113,113,.1);--color-danger-border: rgba(248,113,113,.25);--color-info: #3D8EDF;--color-info-bg: rgba(61,142,223,.1);--color-info-border: rgba(61,142,223,.25);--color-gray-400: #94A3B8;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-card: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-soft: 0 4px 12px rgba(0, 0, 0, .4);--shadow-elevated: 0 8px 30px rgba(0, 0, 0, .5);--shadow-shell: 0 0 0 1px rgba(255, 255, 255, .05), 0 2px 20px rgba(0, 0, 0, .4);--shadow-focus: 0 0 0 3px rgba(61, 142, 223, .3)}.ui-button{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);padding:10px 16px;font-size:14px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.ui-button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ui-button:hover{transform:translateY(-1px)}.ui-button:active{transform:translateY(0)}.ui-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ui-button--primary{background:var(--color-accent);color:var(--color-accent-fg)}.ui-button--primary:hover{background:var(--color-accent-hover)}.ui-button--secondary{background:var(--color-bg-elev);border-color:var(--color-border);color:var(--color-text)}.ui-button--secondary:hover{background:var(--color-bg-soft);border-color:var(--color-border-strong)}.ui-button--danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.ui-button--danger:hover{background:var(--color-danger-border)}.ui-input,.ui-select,.ui-textarea{width:100%;border:1px solid var(--color-border);background:var(--color-bg-elev);border-radius:var(--radius-md);padding:10px 14px;font-size:14px;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--color-gray-400)}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.ui-field{display:grid;gap:6px}.ui-field__label{font-size:13px;font-weight:500;color:var(--color-text)}.ui-field__error{color:var(--color-danger);font-size:12px}.ui-card{background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);transition:box-shadow var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.ui-card:hover{box-shadow:var(--shadow-soft);border-color:var(--color-border-strong)}.ui-badge{display:inline-flex;align-items:center;border-radius:var(--radius-full);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border:1px solid transparent;white-space:nowrap}.ui-badge--available,.ui-badge--approved,.ui-badge--active,.ui-badge--revoked{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.ui-badge--reserved,.ui-badge--pending,.ui-badge--pending_approval,.ui-badge--provisioning,.ui-badge--revoking{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.ui-badge--maintenance,.ui-badge--offline,.ui-badge--rejected,.ui-badge--cancelled,.ui-badge--expired,.ui-badge--failed,.ui-badge--suspended{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.ui-table-wrap{width:100%;overflow-x:auto}.ui-table{width:100%;border-collapse:collapse;min-width:860px}.ui-table th,.ui-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--color-border)}.ui-table thead tr{background:var(--color-bg-soft)}.ui-table th{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.ui-table tbody tr:hover{background:var(--color-accent-light)}.ui-table tbody tr:last-child td{border-bottom:none}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;place-items:center;padding:var(--space-4);z-index:50}.ui-modal{width:min(640px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:var(--color-bg-elev);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);padding:var(--space-5)}.ui-toast-wrap{position:fixed;right:16px;top:16px;display:grid;gap:10px;z-index:70}.ui-toast{min-width:280px;max-width:360px;background:var(--color-bg-elev);border-radius:var(--radius-md);border:1px solid var(--color-border);border-left-width:3px;box-shadow:var(--shadow-soft);padding:12px 14px}.ui-toast--error{border-left-color:var(--color-danger)}.ui-toast--success{border-left-color:var(--color-success)}.fc{--fc-border-color: var(--color-border);--fc-button-bg-color: var(--color-bg-elev);--fc-button-border-color: var(--color-border);--fc-button-text-color: var(--color-text);--fc-button-hover-bg-color: var(--color-bg-soft);--fc-button-hover-border-color: var(--color-border-strong);--fc-button-active-bg-color: var(--color-accent);--fc-button-active-border-color:var(--color-accent);--fc-button-active-text-color: #fff;--fc-today-bg-color: var(--color-accent-light);--fc-page-bg-color: var(--color-bg);--fc-neutral-bg-color: var(--color-bg-soft);--fc-neutral-text-color: var(--color-text-muted);--fc-highlight-color: var(--color-accent-light);--fc-now-indicator-color: var(--color-danger);font-family:var(--font-sans);font-size:13px;color:var(--color-text)}.fc .fc-button{border-radius:var(--radius-sm);font-size:12px;font-weight:600;padding:5px 10px;box-shadow:none;text-transform:capitalize}.fc .fc-button:focus{box-shadow:var(--shadow-focus)}.fc .fc-toolbar-title{font-size:16px;font-weight:700;color:var(--color-text)}.fc .fc-col-header-cell{background:var(--color-bg-soft);border-color:var(--color-border);padding:8px 0}.fc .fc-col-header-cell-cushion{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);text-decoration:none}.fc .fc-timegrid-slot{height:2.5em}.fc .fc-timegrid-slot-label-cushion{font-size:11px;color:var(--color-text-muted)}.fc .fc-event{border-radius:var(--radius-sm);cursor:pointer;border-width:1px;transition:opacity var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.fc .fc-event:hover{opacity:.88;box-shadow:var(--shadow-soft)}.fc .fc-daygrid-event{border-radius:var(--radius-xs);font-size:11px;padding:1px 4px}.fc-scroller::-webkit-scrollbar{width:6px}.fc-scroller::-webkit-scrollbar-track{background:transparent}.fc-scroller::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.skeleton{background:var(--color-border);animation:skeleton-pulse 1.6s var(--ease-standard) infinite}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-body-bg, #EAEFF5);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-root{min-height:calc(100vh - 20px);height:calc(100vh - 20px);max-height:calc(100vh - 20px);display:grid;grid-template-columns:260px 1fr;margin:10px;border-radius:var(--radius-xl);background:var(--color-bg-elev);box-shadow:var(--shadow-shell);overflow:hidden}@media(max-width:1024px){.app-root{min-height:100vh;height:100vh;max-height:100vh;grid-template-columns:1fr;margin:0;border-radius:0}}
