.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-weight:500;border-radius:6px;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:all .15s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;text-decoration:none}.btn:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.btn:focus:not(:focus-visible){outline:none;box-shadow:none}.btn:disabled,.btn.btn-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn.btn-sm{font-size:.72rem;padding:.35rem .65rem;height:28px}.btn.btn-md{font-size:.8rem;padding:.5rem .95rem;height:36px}.btn.btn-primary{background-color:#8b5cf6;border-color:#8b5cf6;color:#fff}.btn.btn-primary:hover:not(:disabled){background-color:#9d75f7;border-color:#9d75f7;box-shadow:0 0 14px #8b5cf659}.btn.btn-primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 0 8px #8b5cf640}.btn.btn-secondary{background-color:#1c1c20;border-color:#242428;color:#f2f2f3}.btn.btn-secondary:hover:not(:disabled){background-color:#222226;border-color:#34343a;box-shadow:0 2px 8px #0000004d}.btn.btn-secondary:active:not(:disabled){transform:translateY(1px)}.btn.btn-ghost{background-color:transparent;border-color:transparent;color:#b0b0b8}.btn.btn-ghost:hover:not(:disabled){background-color:#1c1c20;color:#f2f2f3}.btn.btn-ghost:active:not(:disabled){transform:translateY(1px)}.btn.btn-danger{background-color:#ef44441f;border-color:#ef444447;color:#ef4444}.btn.btn-danger:hover:not(:disabled){background-color:#ef444438;border-color:#ef4444;box-shadow:0 0 12px #ef444440}.btn.btn-danger:active:not(:disabled){transform:translateY(1px)}.btn .btn-spinner{animation:spin 1s linear infinite}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background-color:transparent;border:1px solid transparent;color:#9a9aa2;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-icon:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.btn-icon:focus:not(:focus-visible){outline:none;box-shadow:none}.btn-icon:hover:not(:disabled){background-color:#1c1c20;color:#f2f2f3;border-color:#242428}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:4px;font-size:.72rem;font-weight:500;letter-spacing:.02em;white-space:nowrap;line-height:1}.status-badge .badge-icon{display:inline-flex;align-items:center;flex-shrink:0}.status-badge.badge-neutral{background-color:#1c1c20;border:1px solid #242428;color:#9a9aa2}.status-badge.badge-success{background-color:#22c55e1f;border:1px solid rgba(34,197,94,.28);color:#22c55e}.status-badge.badge-warning{background-color:#f59e0b1f;border:1px solid rgba(245,158,11,.28);color:#f59e0b}.status-badge.badge-danger{background-color:#ef44441f;border:1px solid rgba(239,68,68,.28);color:#ef4444}.status-badge.badge-info{background-color:#60a5fa1f;border:1px solid rgba(96,165,250,.28);color:#60a5fa}.status-badge.badge-accent{background-color:#8b5cf629;border:1px solid rgba(139,92,246,.35);color:#8b5cf6}.form-group{display:flex;flex-direction:column;gap:.25rem;width:100%}.form-group .form-label{font-size:.72rem;font-weight:500;color:#b0b0b8;text-transform:uppercase;letter-spacing:.04em;display:flex;justify-content:space-between;align-items:center}.form-group .form-label .required-star{color:#ef4444;margin-left:.25rem}.form-group .input-wrapper{position:relative;display:flex;align-items:center;width:100%}.form-group .input-wrapper .input-icon-start{position:absolute;left:.75rem;color:#9a9aa2;pointer-events:none;display:inline-flex}.form-group .input-wrapper .input-icon-end{position:absolute;right:.75rem;color:#9a9aa2;display:inline-flex;align-items:center}.form-group .form-input,.form-group .form-select{width:100%;height:36px;padding:0 .75rem;background-color:#151517;border:1px solid #242428;border-radius:6px;color:#f2f2f3;font-family:inherit;font-size:.8rem;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}.form-group .form-input::placeholder,.form-group .form-select::placeholder{color:#65656d}.form-group .form-input:focus-visible,.form-group .form-select:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.form-group .form-input:focus:not(:focus-visible),.form-group .form-select:focus:not(:focus-visible){outline:none;box-shadow:none}.form-group .form-input:hover:not(:disabled),.form-group .form-select:hover:not(:disabled){border-color:#34343a}.form-group .form-input:focus,.form-group .form-select:focus{border-color:#8b5cf6}.form-group .form-input:disabled,.form-group .form-select:disabled{opacity:.5;cursor:not-allowed;background-color:#ffffff05}.form-group .form-input.has-icon-start,.form-group .form-select.has-icon-start{padding-left:2.25rem}.form-group .form-input.has-icon-end,.form-group .form-select.has-icon-end{padding-right:2.25rem}.form-group .form-input.has-error,.form-group .form-select.has-error{border-color:#ef4444}.form-group .form-input.has-error:focus-visible,.form-group .form-select.has-error:focus-visible{outline-color:#ef4444}.form-group .form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a9aa2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.form-group .form-textarea{width:100%;min-height:84px;padding:.65rem .75rem;background-color:#151517;border:1px solid #242428;border-radius:6px;color:#f2f2f3;font-family:inherit;font-size:.8rem;line-height:1.5;resize:vertical;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}.form-group .form-textarea::placeholder{color:#65656d}.form-group .form-textarea:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.form-group .form-textarea:focus:not(:focus-visible){outline:none;box-shadow:none}.form-group .form-textarea:hover:not(:disabled){border-color:#34343a}.form-group .form-textarea:focus{border-color:#8b5cf6}.form-group .form-textarea:disabled{opacity:.5;cursor:not-allowed;background-color:#ffffff05}.form-group .form-textarea.has-error{border-color:#ef4444}.form-group .form-textarea.has-error:focus-visible{outline-color:#ef4444}.form-group .form-error{font-size:.72rem;color:#ef4444;display:flex;align-items:center;gap:.25rem}.form-group .form-helper{font-size:.72rem;color:#9a9aa2}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:#34343a;border-radius:9999px;outline:none;cursor:pointer;transition:background .15s cubic-bezier(.4,0,.2,1)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#8b5cf6;cursor:pointer;box-shadow:0 0 8px #8b5cf666;border:2px solid #151517;transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 0 12px #8b5cf699}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#8b5cf6;cursor:pointer;box-shadow:0 0 8px #8b5cf666;border:2px solid #151517;transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}input[type=range]::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 0 12px #8b5cf699}input[type=range]:focus-visible{outline:2px solid #8b5cf6;outline-offset:4px;box-shadow:0 0 0 3px #8b5cf640}.btn-status-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .65rem;border-radius:4px;font-family:inherit;font-size:.72rem;font-weight:500;cursor:pointer;border:1px solid #242428;background-color:#1c1c20;color:#9a9aa2;transition:all .15s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.btn-status-toggle:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.btn-status-toggle:focus:not(:focus-visible){outline:none;box-shadow:none}.btn-status-toggle:hover:not(:disabled){background-color:#222226;border-color:#34343a;color:#f2f2f3}.btn-status-toggle.is-present{border-color:#22c55e;background-color:#22c55e1f;color:#22c55e;font-weight:600}.btn-status-toggle.is-absent{border-color:#ef4444;background-color:#ef44441f;color:#ef4444;font-weight:600}.btn-status-toggle.is-excused{border-color:#f59e0b;background-color:#f59e0b1f;color:#f59e0b;font-weight:600}.btn-status-toggle:disabled{opacity:.4;cursor:not-allowed}.checkbox-group{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-group input[type=checkbox]{width:16px;height:16px;border-radius:4px;border:1px solid #242428;background-color:#151517;cursor:pointer;accent-color:#8b5cf6}.checkbox-group input[type=checkbox]:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.checkbox-group input[type=checkbox]:focus:not(:focus-visible){outline:none;box-shadow:none}.checkbox-group .checkbox-label{font-size:.8rem;color:#b0b0b8}.card{background-color:#151517;border:1px solid #242428;border-radius:8px;padding:1.25rem;transition:border-color .15s cubic-bezier(.4,0,.2,1)}.card:hover{border-color:#34343a}.metric-card{background-color:#151517;border:1px solid #242428;border-radius:8px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .15s cubic-bezier(.4,0,.2,1)}.metric-card:hover{border-color:#34343a}.metric-card .metric-header{display:flex;justify-content:space-between;align-items:center}.metric-card .metric-header .metric-label{font-size:.72rem;font-weight:500;color:#9a9aa2;text-transform:uppercase;letter-spacing:.05em}.metric-card .metric-header .metric-icon-box{width:28px;height:28px;border-radius:4px;background-color:#1c1c20;border:1px solid #242428;display:flex;align-items:center;justify-content:center;color:#8b5cf6}.metric-card .metric-value{font-size:1.65rem;font-weight:600;color:#f2f2f3;letter-spacing:-.02em;line-height:1.1}.metric-card .metric-meta{font-size:.72rem;color:#9a9aa2;display:flex;align-items:center;gap:.5rem}.data-table-container{background-color:#151517;border:1px solid #242428;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;width:100%}.data-table-container .table-scroll-wrapper{overflow-x:auto;width:100%}.data-table-container .table-scroll-wrapper::-webkit-scrollbar{width:6px;height:6px}.data-table-container .table-scroll-wrapper::-webkit-scrollbar-track{background:transparent}.data-table-container .table-scroll-wrapper::-webkit-scrollbar-thumb{background:#242428;border-radius:4px}.data-table-container .table-scroll-wrapper::-webkit-scrollbar-thumb:hover{background:#34343a}.data-table-container .data-table{width:100%;min-width:600px;border-collapse:collapse;font-size:.8rem;text-align:left}.data-table-container .data-table thead{background-color:#ffffff05;border-bottom:1px solid #242428}.data-table-container .data-table thead th{padding:.75rem 1rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9a9aa2;white-space:nowrap}.data-table-container .data-table tbody tr{border-bottom:1px solid #242428;transition:background-color .15s cubic-bezier(.4,0,.2,1)}.data-table-container .data-table tbody tr:last-child{border-bottom:none}.data-table-container .data-table tbody tr:hover{background-color:#1c1c20}.data-table-container .data-table tbody tr td{padding:.85rem 1rem;color:#f2f2f3;vertical-align:middle}.data-table-container .table-footer{padding:.75rem 1rem;border-top:1px solid #242428;background-color:#ffffff03;display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:#9a9aa2}.state-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.5rem 1.5rem;gap:.75rem;width:100%;border-radius:8px}.state-container .state-icon-box{width:48px;height:48px;border-radius:6px;display:flex;align-items:center;justify-content:center;background-color:#1c1c20;border:1px solid #242428;color:#9a9aa2}.state-container .state-title{font-size:1rem;font-weight:600;color:#f2f2f3}.state-container .state-description{font-size:.8rem;color:#9a9aa2;max-width:420px;line-height:1.65}.state-container.error-state{background-color:#ef44441f;border:1px solid rgba(239,68,68,.28)}.state-container.error-state .state-icon-box{background-color:transparent;border-color:#ef444447;color:#ef4444}.state-container.error-state .state-title{color:#ef4444}.state-container.error-state .state-description{color:#fca5a5}.inline-alert{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border-radius:6px;font-size:.8rem;line-height:1.5;width:100%}.inline-alert .alert-icon{flex-shrink:0;margin-top:1px}.inline-alert .alert-content{flex:1;display:flex;flex-direction:column;gap:.2rem}.inline-alert .alert-content .alert-title{font-weight:600}.inline-alert.alert-info{background-color:#60a5fa1f;border:1px solid rgba(96,165,250,.28);color:#60a5fa}.inline-alert.alert-info .alert-content{color:#bfdbfe}.inline-alert.alert-info .alert-title{color:#60a5fa}.inline-alert.alert-success{background-color:#22c55e1f;border:1px solid rgba(34,197,94,.28);color:#22c55e}.inline-alert.alert-success .alert-content{color:#bbf7d0}.inline-alert.alert-success .alert-title{color:#22c55e}.inline-alert.alert-warning{background-color:#f59e0b1f;border:1px solid rgba(245,158,11,.28);color:#f59e0b}.inline-alert.alert-warning .alert-content{color:#fde68a}.inline-alert.alert-warning .alert-title{color:#f59e0b}.inline-alert.alert-danger{background-color:#ef44441f;border:1px solid rgba(239,68,68,.28);color:#ef4444}.inline-alert.alert-danger .alert-content{color:#fecaca}.inline-alert.alert-danger .alert-title{color:#ef4444}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;background-color:#1c1c20;border:1px solid #242428;color:#8b5cf6;font-size:.72rem;font-weight:600;text-transform:uppercase;-webkit-user-select:none;user-select:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:500;padding:1rem}.modal-backdrop .modal-dialog{background-color:#151517;border:1px solid #34343a;border-radius:12px;width:100%;max-width:520px;box-shadow:0 20px 25px -5px #00000080,0 8px 10px -6px #00000080;display:flex;flex-direction:column;overflow:hidden}@media (max-width: 767px){.modal-backdrop .modal-dialog{max-width:100%;border-radius:8px}}@media (prefers-reduced-motion: no-preference){.modal-backdrop .modal-dialog{animation:modalEnter .18s cubic-bezier(.16,1,.3,1)}}.modal-backdrop .modal-dialog .modal-header{padding:1.15rem 1.25rem;border-bottom:1px solid #242428;display:flex;justify-content:space-between;align-items:center}.modal-backdrop .modal-dialog .modal-header .modal-title{font-size:1rem;font-weight:600;color:#f2f2f3}.modal-backdrop .modal-dialog .modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem;max-height:min(75vh,100dvh - 140px);overflow-y:auto}.modal-backdrop .modal-dialog .modal-body::-webkit-scrollbar{width:6px;height:6px}.modal-backdrop .modal-dialog .modal-body::-webkit-scrollbar-track{background:transparent}.modal-backdrop .modal-dialog .modal-body::-webkit-scrollbar-thumb{background:#242428;border-radius:4px}.modal-backdrop .modal-dialog .modal-body::-webkit-scrollbar-thumb:hover{background:#34343a}@media (max-width: 767px){.modal-backdrop .modal-dialog .modal-body{padding:1rem;gap:.75rem}}.modal-backdrop .modal-dialog .modal-footer{padding:1rem 1.25rem;border-top:1px solid #242428;background-color:#ffffff03;display:flex;justify-content:flex-end;align-items:center;gap:.75rem}@keyframes modalEnter{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.table-scroll-wrapper,.table-responsive{overflow-x:auto;width:100%;max-width:100%;-webkit-overflow-scrolling:touch}.table-scroll-wrapper::-webkit-scrollbar,.table-responsive::-webkit-scrollbar{width:6px;height:6px}.table-scroll-wrapper::-webkit-scrollbar-track,.table-responsive::-webkit-scrollbar-track{background:transparent}.table-scroll-wrapper::-webkit-scrollbar-thumb,.table-responsive::-webkit-scrollbar-thumb{background:#242428;border-radius:4px}.table-scroll-wrapper::-webkit-scrollbar-thumb:hover,.table-responsive::-webkit-scrollbar-thumb:hover{background:#34343a}.grid-responsive-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.grid-responsive-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.grid-responsive-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.app-shell{display:flex;min-height:100vh;width:100%;background-color:#0b0b0d;color:#f2f2f3;position:relative}.app-sidebar{width:260px;min-width:260px;background-color:#151517;border-right:1px solid #242428;display:flex;flex-direction:column;height:100vh;position:sticky;top:0;z-index:300}@media (max-width: 767px){.app-sidebar{width:100%;min-width:100%;height:100%;border-right:none}}.app-sidebar .sidebar-brand{padding:1.25rem;border-bottom:1px solid #242428;display:flex;justify-content:space-between;align-items:center}.app-sidebar .sidebar-brand .brand-titles{display:flex;flex-direction:column;gap:.15rem}.app-sidebar .sidebar-brand .brand-titles .brand-row{display:inline-flex;align-items:center;gap:.4rem}.app-sidebar .sidebar-brand .brand-titles .brand-row .brand-name{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:#f2f2f3}.app-sidebar .sidebar-brand .brand-titles .brand-row .brand-dot{width:7px;height:7px;border-radius:50%;background-color:#8b5cf6}.app-sidebar .sidebar-brand .brand-titles .brand-subtitle{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#9a9aa2}.app-sidebar .sidebar-brand .mobile-close-btn{display:none}@media (max-width: 767px){.app-sidebar .sidebar-brand .mobile-close-btn{display:inline-flex}}.app-sidebar .sidebar-nav{flex:1;overflow-y:auto;padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.app-sidebar .sidebar-nav::-webkit-scrollbar{width:6px;height:6px}.app-sidebar .sidebar-nav::-webkit-scrollbar-track{background:transparent}.app-sidebar .sidebar-nav::-webkit-scrollbar-thumb{background:#242428;border-radius:4px}.app-sidebar .sidebar-nav::-webkit-scrollbar-thumb:hover{background:#34343a}.app-sidebar .sidebar-nav .nav-group-label{font-size:.68rem;font-weight:600;color:#65656d;text-transform:uppercase;letter-spacing:.08em;padding:.4rem .6rem}.app-sidebar .sidebar-nav .nav-list{list-style:none;display:flex;flex-direction:column;gap:2px}.app-sidebar .sidebar-nav .nav-list li{width:100%}.app-sidebar .sidebar-nav .nav-link{display:flex;align-items:center;gap:.65rem;padding:.45rem .65rem;border-radius:6px;font-size:.8rem;color:#b0b0b8;text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1)}.app-sidebar .sidebar-nav .nav-link:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;box-shadow:0 0 0 3px #8b5cf640}.app-sidebar .sidebar-nav .nav-link:focus:not(:focus-visible){outline:none;box-shadow:none}.app-sidebar .sidebar-nav .nav-link .nav-icon{display:inline-flex;color:#9a9aa2;transition:color .15s cubic-bezier(.4,0,.2,1)}.app-sidebar .sidebar-nav .nav-link .nav-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar .sidebar-nav .nav-link .nav-tag{font-size:.64rem;padding:.1rem .35rem;border-radius:4px;background-color:#ffffff0a;border:1px solid #242428;color:#65656d;text-transform:uppercase;letter-spacing:.05em}.app-sidebar .sidebar-nav .nav-link:hover{background-color:#1c1c20;color:#f2f2f3}.app-sidebar .sidebar-nav .nav-link:hover .nav-icon{color:#f2f2f3}.app-sidebar .sidebar-nav .nav-link.active{background-color:#8b5cf629;border:1px solid rgba(139,92,246,.35);color:#f2f2f3;font-weight:600}.app-sidebar .sidebar-nav .nav-link.active .nav-icon{color:#8b5cf6}.app-sidebar .sidebar-footer{padding:1rem;border-top:1px solid #242428;display:flex;flex-direction:column;gap:.5rem;background-color:#0003}.app-sidebar .sidebar-footer .env-box{display:flex;align-items:center;justify-content:space-between}.app-sidebar .sidebar-footer .env-box .env-label{font-size:.72rem;color:#65656d;font-weight:600;letter-spacing:.05em}.app-sidebar .sidebar-footer .academy-tag{font-size:.68rem;color:#65656d;line-height:1.3}@media (max-width: 767px){.desktop-sidebar{display:none}}.mobile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:400;display:flex}.mobile-drawer-backdrop .mobile-drawer-panel{width:280px;max-width:85vw;height:100%;background-color:#151517;box-shadow:4px 0 24px #0009;display:flex;flex-direction:column;animation:drawerSlide .2s ease}@keyframes drawerSlide{0%{transform:translate(-100%)}to{transform:translate(0)}}.app-main-layout{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow-y:auto}.app-main-layout::-webkit-scrollbar{width:6px;height:6px}.app-main-layout::-webkit-scrollbar-track{background:transparent}.app-main-layout::-webkit-scrollbar-thumb{background:#242428;border-radius:4px}.app-main-layout::-webkit-scrollbar-thumb:hover{background:#34343a}.app-topbar{height:56px;min-height:56px;background-color:#151517;border-bottom:1px solid #242428;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200}@media (max-width: 767px){.app-topbar{padding:0 1rem}}.app-topbar .topbar-left{display:flex;align-items:center;gap:.75rem}.app-topbar .topbar-left .mobile-hamburger{display:none}@media (max-width: 767px){.app-topbar .topbar-left .mobile-hamburger{display:inline-flex}}.app-topbar .topbar-left .topbar-context{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;color:#9a9aa2}.app-topbar .topbar-left .topbar-context .context-platform{color:#f2f2f3;font-weight:600}.app-topbar .topbar-left .topbar-context .context-slash{color:#65656d}.app-topbar .topbar-right{display:flex;align-items:center;gap:1rem}.app-topbar .topbar-right .user-profile-widget{display:flex;align-items:center;gap:.65rem}.app-topbar .topbar-right .user-profile-widget .user-text{display:flex;flex-direction:column;line-height:1.2}@media (max-width: 767px){.app-topbar .topbar-right .user-profile-widget .user-text{display:none}}.app-topbar .topbar-right .user-profile-widget .user-text .user-name{font-size:.72rem;font-weight:600;color:#f2f2f3}.app-topbar .topbar-right .user-profile-widget .user-text .user-email{font-size:.68rem;color:#65656d}@media (max-width: 767px){.app-topbar .topbar-right .user-profile-widget .role-badge{display:none}}.app-topbar .topbar-right .logout-btn{color:#9a9aa2}.app-topbar .topbar-right .logout-btn:hover{color:#ef4444;border-color:#ef444447;background-color:#ef44441f}.app-content-area{flex:1;padding:1.5rem}@media (max-width: 767px){.app-content-area{padding:1rem}}.page-container{width:100%;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;border-bottom:1px solid #242428;padding-bottom:1.25rem}.page-header .header-titles{display:flex;flex-direction:column;gap:.35rem}.page-header .header-titles .page-title{font-size:1.35rem;font-weight:600;color:#f2f2f3;letter-spacing:-.02em}.page-header .header-titles .page-subtitle{font-size:.8rem;color:#9a9aa2;line-height:1.5}.page-header .header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.section-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.75rem}.section-header .section-titles{display:flex;flex-direction:column;gap:.15rem}.section-header .section-titles .section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#f2f2f3}.section-header .section-titles .section-description{font-size:.72rem;color:#9a9aa2}.section-header .section-actions{display:flex;align-items:center;gap:.5rem}.login-page{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem;background-color:#0b0b0d}.login-page .login-card{width:100%;max-width:440px;background-color:#151517;border:1px solid #242428;border-radius:12px;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 20px 30px -10px #0009}@media (max-width: 767px){.login-page .login-card{padding:1.5rem 1rem}}.login-page .login-card .login-header{display:flex;flex-direction:column;gap:.35rem}.login-page .login-card .login-header .brand-lockup{display:inline-flex;align-items:center;gap:.4rem}.login-page .login-card .login-header .brand-lockup .brand-title{font-size:1.5rem;font-weight:700;color:#f2f2f3;letter-spacing:-.02em}.login-page .login-card .login-header .brand-lockup .brand-dot{width:8px;height:8px;border-radius:50%;background-color:#8b5cf6}.login-page .login-card .login-header .brand-tag{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8b5cf6}.login-page .login-card .login-header .login-subtitle{font-size:.8rem;color:#9a9aa2;line-height:1.5;margin-top:.5rem}.login-page .login-card .login-form{display:flex;flex-direction:column;gap:1rem}.login-page .login-card .login-footer{border-top:1px solid #242428;padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.login-page .login-card .login-footer .security-notice{display:flex;align-items:flex-start;gap:.4rem;font-size:.72rem;color:#65656d;line-height:1.35}.login-page .login-card .login-footer .meta-links{display:flex;justify-content:flex-end}.login-page .login-card .login-footer .meta-links a{font-size:.72rem;color:#8b5cf6;text-decoration:none}.login-page .login-card .login-footer .meta-links a:hover{text-decoration:underline}:root{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;line-height:1.5;color:#f2f2f3;background-color:#0b0b0d;color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-main: #0b0b0d;--bg-surface: #151517;--surface-base: #151517;--surface-elevated: #1c1c20;--surface-hover: #222226;--border-subtle: #242428;--border-strong: #34343a;--border-focus: #8b5cf6;--text-primary: #f2f2f3;--text-secondary: #b0b0b8;--text-muted: #9a9aa2;--text-dim: #65656d;--accent-primary: #8b5cf6;--accent-primary-hover: #9d75f7;--accent-glow: rgba(139, 92, 246, .16);--accent-border: rgba(139, 92, 246, .35);--state-success: #22c55e;--state-warning: #f59e0b;--state-danger: #ef4444;--state-info: #60a5fa}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background-color:#0b0b0d;color:#f2f2f3;display:flex;flex-direction:column}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.poc-container{width:100%;max-width:980px;margin:0 auto;padding:2.5rem 1.5rem 4rem;display:flex;flex-direction:column;gap:2rem}@media (max-width: 640px){.poc-container{padding:1.5rem 1rem 3rem;gap:1.5rem}}.poc-header{border-bottom:1px solid #242428;padding-bottom:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}.poc-header .brand-group{display:flex;flex-direction:column;gap:.35rem}.poc-header .brand-group .eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#8b5cf6;font-weight:600}.poc-header .brand-group .eyebrow .dot{width:6px;height:6px;border-radius:50%;background-color:#8b5cf6}.poc-header .brand-group h1{font-size:1.6rem;font-weight:600;letter-spacing:-.02em;color:#f2f2f3}@media (max-width: 640px){.poc-header .brand-group h1{font-size:1.35rem}}.poc-header .brand-group .subtitle{color:#9a9aa2;font-size:.9rem}.poc-header .meta-badges{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border-radius:4px;font-size:.75rem;font-weight:500;border:1px solid #242428;background-color:#151517;color:#9a9aa2}.badge.badge-lavender{border-color:#8b5cf659;color:#8b5cf6;background-color:#8b5cf629}.badge.badge-green{border-color:#22c55e47;color:#22c55e;background-color:#22c55e1f}.badge.badge-red{border-color:#ef444447;color:#ef4444;background-color:#ef44441f}.pipeline-flow{background-color:#151517;border:1px solid #242428;border-radius:6px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;overflow-x:auto}.pipeline-flow .node{display:flex;flex-direction:column;gap:.2rem;min-width:140px}.pipeline-flow .node .node-label{font-size:.75rem;color:#65656d;text-transform:uppercase;letter-spacing:.05em}.pipeline-flow .node .node-title{font-size:.85rem;font-weight:600;color:#f2f2f3}.pipeline-flow .node .node-host{font-size:.7rem;color:#8b5cf6}.pipeline-flow .flow-arrow{color:#65656d;font-size:.9rem;padding:0 .5rem;display:flex;align-items:center}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.status-card{background-color:#151517;border:1px solid #242428;border-radius:6px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:border-color .2s ease}.status-card:hover{border-color:#34343a}.status-card .card-top{display:flex;justify-content:space-between;align-items:center}.status-card .card-top .service-info{display:flex;align-items:center;gap:.6rem}.status-card .card-top .service-info .icon-box{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;background-color:#0b0b0d;border:1px solid #242428;color:#9a9aa2}.status-card .card-top .service-info .card-name{font-size:.9rem;font-weight:600;color:#f2f2f3}.status-card .card-body{display:flex;flex-direction:column;gap:.5rem}.status-card .card-body .status-indicator{display:inline-flex;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:600}.status-card .card-body .status-indicator.connected{color:#22c55e}.status-card .card-body .status-indicator.failed{color:#ef4444}.status-card .card-body .status-indicator.loading{color:#f59e0b}.status-card .card-body .card-detail{font-size:.78rem;color:#9a9aa2;word-break:break-all}.action-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background-color:#151517;border:1px solid #242428;border-radius:6px;flex-wrap:wrap;gap:1rem}.action-bar .timestamp-block{display:flex;flex-direction:column;gap:.2rem}.action-bar .timestamp-block .ts-label{font-size:.72rem;color:#65656d;text-transform:uppercase;letter-spacing:.05em}.action-bar .timestamp-block .ts-value{font-size:.82rem;color:#9a9aa2}.action-bar .button-group{display:flex;align-items:center;gap:.75rem}button.primary-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.1rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:4px;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .1s ease}button.primary-btn:hover:not(:disabled){opacity:.9}button.primary-btn:active:not(:disabled){transform:translateY(1px)}button.primary-btn:disabled{opacity:.5;cursor:not-allowed}button.primary-btn .spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.inspector-panel{background-color:#151517;border:1px solid #242428;border-radius:6px;overflow:hidden}.inspector-panel .panel-header{padding:.85rem 1.25rem;border-bottom:1px solid #242428;display:flex;justify-content:space-between;align-items:center;background-color:#ffffff03}.inspector-panel .panel-header .panel-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9a9aa2}.inspector-panel .panel-header .panel-controls{display:flex;gap:.5rem}.inspector-panel .panel-content{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.inspector-panel .panel-content .metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.inspector-panel .panel-content .metric-row .metric-item{display:flex;flex-direction:column;gap:.25rem}.inspector-panel .panel-content .metric-row .metric-item .label{font-size:.72rem;color:#65656d;text-transform:uppercase}.inspector-panel .panel-content .metric-row .metric-item .val{font-size:.82rem;color:#f2f2f3;font-weight:500}.inspector-panel .panel-content .raw-viewer{background-color:#0b0b0d;border:1px solid #242428;border-radius:4px;padding:1rem;font-size:.78rem;line-height:1.6;color:#d1d5db;overflow-x:auto;max-height:320px}.inspector-panel .panel-content .raw-viewer pre{margin:0;font-family:inherit}.inspector-panel .panel-content .error-banner{background-color:#ef44441f;border:1px solid rgba(239,68,68,.28);border-radius:4px;padding:.85rem 1rem;color:#ef4444;font-size:.82rem;display:flex;flex-direction:column;gap:.35rem}.inspector-panel .panel-content .error-banner .err-title{font-weight:600;display:flex;align-items:center;gap:.4rem}.inspector-panel .panel-content .error-banner .err-body{color:#fca5a5;font-size:.78rem}.poc-footer{margin-top:1rem;border-top:1px solid #242428;padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;color:#65656d;font-size:.75rem;flex-wrap:wrap;gap:.75rem}.poc-footer a{color:#8b5cf6;text-decoration:none}.poc-footer a:hover{text-decoration:underline}
