.toast-host[data-v-9cf3b9b5]{position:fixed;top:1rem;right:1rem;z-index:2200;display:flex;flex-direction:column;gap:.5rem;width:min(26rem,calc(100vw - 1.5rem))}.toast-item[data-v-9cf3b9b5]{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem .85rem;border-radius:10px;border:1px solid var(--color-border-light);box-shadow:var(--shadow-lg);background:var(--color-bg-card);color:var(--color-text-primary)}.toast-success[data-v-9cf3b9b5]{border-color:color-mix(in srgb,var(--color-success-text) 35%,var(--color-border-light));background:color-mix(in srgb,var(--color-success-bg) 65%,var(--color-bg-card))}.toast-error[data-v-9cf3b9b5]{border-color:color-mix(in srgb,var(--color-danger-text) 35%,var(--color-border-light));background:color-mix(in srgb,var(--color-danger-bg) 65%,var(--color-bg-card))}.toast-info[data-v-9cf3b9b5]{border-color:color-mix(in srgb,var(--color-info-text) 35%,var(--color-border-light));background:color-mix(in srgb,var(--color-info-bg) 65%,var(--color-bg-card))}.toast-warning[data-v-9cf3b9b5]{border-color:color-mix(in srgb,var(--color-warning-text) 35%,var(--color-border-light));background:color-mix(in srgb,var(--color-warning-bg) 65%,var(--color-bg-card))}.toast-message[data-v-9cf3b9b5]{flex:1;min-width:0;line-height:1.35}.toast-close[data-v-9cf3b9b5]{border:none;background:transparent;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:.1rem .25rem;border-radius:6px}.toast-close[data-v-9cf3b9b5]:hover{background:color-mix(in srgb,currentColor 12%,transparent)}.toast-enter-active[data-v-9cf3b9b5],.toast-leave-active[data-v-9cf3b9b5]{transition:all .18s ease}.toast-enter-from[data-v-9cf3b9b5],.toast-leave-to[data-v-9cf3b9b5]{opacity:0;transform:translateY(-6px)}@media(max-width:768px){.toast-host[data-v-9cf3b9b5]{top:.75rem;left:.75rem;right:.75rem;width:auto}}:root{--color-brand-primary: #667eea;--color-brand-primary-hover: #5568d3;--color-brand-bg: #e0e7ff;--color-text-on-brand: #ffffff;--color-bg-body: #f5f5f5;--color-bg-card: #ffffff;--color-bg-nav: #2c3e50;--color-bg-hover: #f9f9f9;--color-bg-secondary: #f5f5f5;--color-bg-modal-overlay: rgba(0, 0, 0, .5);--color-text-primary: #333333;--color-text-secondary: #666666;--color-text-muted: #999999;--color-text-nav: #ffffff;--color-border: #dddddd;--color-border-light: #eeeeee;--color-border-medium: #dddddd;--color-border-dark: #cccccc;--color-success: #10b981;--color-success-bg: #d1fae5;--color-success-text: #065f46;--color-success-border: #a7f3d0;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-warning-border: #fcd34d;--color-danger: #ef4444;--color-danger-bg: #fee2e2;--color-danger-text: #991b1b;--color-danger-border: #fecaca;--color-error: #ef4444;--color-error-bg: #fee2e2;--color-error-text: #991b1b;--color-info: #3b82f6;--color-info-bg: #dbeafe;--color-info-text: #1e40af;--color-btn-edit: #3b82f6;--color-btn-edit-hover: #2563eb;--color-btn-delete: #ef4444;--color-btn-delete-hover: #dc2626;--color-btn-secondary: #e5e7eb;--color-btn-secondary-hover: #d1d5db;--color-btn-secondary-text: #374151;--color-nav-item-hover: rgba(255, 255, 255, .1);--color-nav-border: rgba(255, 255, 255, .2);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 2px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--color-table-header: #f5f5f5;--color-table-row-hover: #f9f9f9;--color-bg-input: #ffffff;--color-bg-disabled: #f5f5f5;--color-input-bg: #ffffff;--color-input-border: #dddddd;--color-input-border-focus: #667eea;--color-input-disabled-bg: #f5f5f5;--color-brand-hover: #5568d3;--color-error-hover: #dc2626;--color-brand-secondary: #6c757d;--color-brand-secondary-hover: #5a6268;--color-gradient-brand: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-login-start: #667eea;--gradient-login-end: #764ba2;--color-header-bg: #1e2a3a;--color-sidebar-bg: #243044;--color-sidebar-text: #a8b6c8;--color-sidebar-hover: rgba(255, 255, 255, .08);--color-sidebar-active: rgba(102, 126, 234, .15);--color-sidebar-active-text: #ffffff;--color-sidebar-section: #6b7a8d;--color-sidebar-border: rgba(255, 255, 255, .06);--sidebar-width: 220px;--header-height: 45px}[data-theme=dark]{--color-brand-bg: #4338ca;--color-text-on-brand: #ffffff;--color-bg-body: #1a202c;--color-bg-card: #2d3748;--color-bg-nav: #1a202c;--color-bg-hover: #374151;--color-bg-secondary: #374151;--color-bg-modal-overlay: rgba(0, 0, 0, .75);--color-text-primary: #f7fafc;--color-text-secondary: #cbd5e0;--color-text-muted: #a0aec0;--color-text-nav: #f7fafc;--color-border: #4a5568;--color-border-light: #4a5568;--color-border-medium: #4a5568;--color-border-dark: #718096;--color-success: #10b981;--color-success-bg: #065f46;--color-success-text: #d1fae5;--color-success-border: #047857;--color-warning: #f59e0b;--color-warning-bg: #92400e;--color-warning-text: #fef3c7;--color-warning-border: #b45309;--color-danger: #ef4444;--color-danger-bg: #991b1b;--color-danger-text: #fee2e2;--color-danger-border: #b91c1c;--color-error: #ef4444;--color-error-bg: #991b1b;--color-error-text: #fee2e2;--color-info: #3b82f6;--color-info-bg: #1e40af;--color-info-text: #dbeafe;--color-btn-edit: #3b82f6;--color-btn-edit-hover: #2563eb;--color-btn-delete: #ef4444;--color-btn-delete-hover: #dc2626;--color-btn-secondary: #4a5568;--color-btn-secondary-hover: #2d3748;--color-btn-secondary-text: #f7fafc;--color-nav-item-hover: rgba(255, 255, 255, .15);--color-nav-border: rgba(255, 255, 255, .2);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .4);--color-table-header: #374151;--color-table-row-hover: #374151;--color-bg-input: #2d3748;--color-bg-disabled: #374151;--color-input-bg: #2d3748;--color-input-border: #4a5568;--color-input-border-focus: #667eea;--color-input-disabled-bg: #374151;--color-brand-hover: #6676d8;--color-error-hover: #b91c1c;--color-brand-secondary: #7b8794;--color-brand-secondary-hover: #6b7684;--color-gradient-brand: linear-gradient(135deg, #5568d3 0%, #6b3fa0 100%);--gradient-login-start: #5568d3;--gradient-login-end: #6b3fa0;--color-header-bg: #141c27;--color-sidebar-bg: #1a2435;--color-sidebar-text: #8899ab;--color-sidebar-hover: rgba(255, 255, 255, .06);--color-sidebar-active: rgba(102, 126, 234, .2);--color-sidebar-active-text: #e2e8f0;--color-sidebar-section: #5a6a7d;--color-sidebar-border: rgba(255, 255, 255, .04)}body,main,aside,header,button,a,input,select,textarea,.panel,.ui-card,.modal-content,.app-modal{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.no-transitions *{transition:none!important}@media(prefers-reduced-motion:reduce){body,main,aside,header,button,a,input,select,textarea,.panel,.ui-card,.modal-content,.app-modal{transition:none!important}}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--text-xs: .75rem;--text-sm: .875rem;--text-md: .95rem;--text-lg: 1.1rem;--text-xl: 1.35rem;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--color-brand-primary) 18%, transparent)}.page-shell{display:flex;flex-direction:column;gap:var(--space-4);width:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:0}.page-title-group{min-width:0}.page-title{margin:0;color:var(--color-text-primary);font-size:var(--text-xl);line-height:1.2}.page-subtitle{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--text-sm)}.page-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.panel{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-light)}.panel-header h2,.panel-header h3{margin:0}.panel-body{padding:var(--space-4) var(--space-5)}.toolbar,.filters,.log-filters{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.toolbar{padding:var(--space-4);background:color-mix(in srgb,var(--color-bg-card) 88%,var(--color-bg-hover));border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.search-input,.filter-select,.ui-input,.ui-select,.ui-textarea,.form-group input,.form-group select,.form-group textarea{width:100%;min-height:38px;padding:.55rem .75rem;border:1px solid var(--color-input-border);border-radius:8px;background:var(--color-input-bg);color:var(--color-text-primary);font-size:var(--text-sm);box-sizing:border-box}.search-input,.filter-select{width:auto}.search-input{flex:1 1 260px;max-width:420px}.search-input:focus,.filter-select:focus,.ui-input:focus,.ui-select:focus,.ui-textarea:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-input-border-focus);box-shadow:var(--focus-ring)}.ui-textarea,.form-group textarea{min-height:96px;resize:vertical}.btn,.btn-primary,.btn-secondary,.btn-edit,.btn-delete,.btn-detail,.btn-view,.btn-page,.link-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:36px;padding:.45rem .85rem;border-radius:8px;border:1px solid transparent;font-size:var(--text-sm);line-height:1;cursor:pointer;text-decoration:none;transition:background-color .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-delete:disabled,.btn-page:disabled{opacity:.6;cursor:not-allowed}.btn-primary,.link-button,.btn-detail{background:var(--color-brand-primary);color:var(--color-text-on-brand)}.btn-primary:hover:not(:disabled),.link-button:hover,.btn-detail:hover{background:var(--color-brand-primary-hover);color:var(--color-text-on-brand);text-decoration:none}.btn-view{background:var(--color-brand-secondary);color:#fff}.btn-view:hover:not(:disabled){background:var(--color-brand-secondary-hover);color:#fff;text-decoration:none}.btn-secondary,.btn-page{background:var(--color-bg-card);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled),.btn-page:hover:not(:disabled){background:var(--color-bg-hover)}.btn-edit{background:var(--color-btn-edit);color:#fff}.btn-edit:hover:not(:disabled){background:var(--color-btn-edit-hover);color:#fff;text-decoration:none}.btn-delete{background:var(--color-btn-delete);color:#fff}.btn-delete:hover:not(:disabled){background:var(--color-btn-delete-hover);color:#fff;text-decoration:none}.badge,.status-badge,.type-badge{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap}.badge-success,.status-badge.active,.status-active{background:var(--color-success-bg);color:var(--color-success-text)}.badge-warning,.status-orphaned,.type-badge.traffic{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-danger,.status-badge.inactive,.status-exceeded,.duration-over{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge-info,.status-completed,.type-badge.ip{background:var(--color-info-bg);color:var(--color-info-text)}.state-block,.loading,.loading-message,.empty,.empty-message{text-align:center;padding:var(--space-8);color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.alert,.error-message,.reload-error,.reload-success{display:block;padding:.75rem .9rem;border-radius:8px;border:1px solid transparent;font-size:var(--text-sm)}.alert-error,.error-message,.reload-error{background:var(--color-error-bg);color:var(--color-error-text);border-color:var(--color-danger-border)}.alert-success,.reload-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.alert-info{background:var(--color-info-bg);color:var(--color-info-text)}.table-shell,.sessions-table,.events-table,.table-container{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:auto}.panel>.table-shell{border:0;border-top:1px solid var(--color-border-light);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:none}.table,.data-table,.table-shell>table,.table-container>table,.events-table>table{width:100%;border-collapse:collapse}.table th,.table td,.data-table th,.data-table td,.table-shell th,.table-shell td,.table-container th,.table-container td,.events-table th,.events-table td{padding:.8rem .9rem;text-align:left;border-bottom:1px solid var(--color-border-light)}.table th,.data-table th,.table-shell th,.table-container th,.events-table th{background:var(--color-table-header);color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.table td,.data-table td,.table-shell td,.table-container td,.events-table td{color:var(--color-text-primary);font-size:var(--text-sm)}.table tbody tr:hover,.data-table tbody tr:hover,.table-container tbody tr:hover,.events-table tbody tr:hover,.clickable-row:hover{background:var(--color-table-row-hover)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap}.page-info{color:var(--color-text-secondary);font-size:var(--text-sm)}.modal-overlay,.app-modal-overlay{position:fixed;inset:0;background:var(--color-bg-modal-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:1000}.modal-content,.app-modal{width:min(760px,100%);max-height:min(90vh,900px);overflow-y:auto;background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5)}.modal-content.modal-small,.app-modal.app-modal--sm{width:min(420px,100%)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:.4rem;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:500}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-5)}.ui-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.ui-card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.ui-card-link{display:block;text-decoration:none;color:inherit;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.ui-card-link:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-md)}.detail-page{width:100%}.detail-layout,.detail-grid,.detail-grid-single{display:grid;grid-template-columns:5fr 7fr;gap:1rem;margin-bottom:1rem}.left-column,.right-column{display:flex;flex-direction:column;gap:1rem}.card{background:var(--color-bg-card);border-radius:8px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);overflow:hidden}.card-header{padding:.6rem .75rem;font-weight:600;font-size:.85rem;background:var(--color-table-header);border-bottom:1px solid var(--color-border-light)}.card-body{padding:.75rem}.detail-table{width:100%;border-collapse:collapse}.detail-table td{padding:.35rem 0;font-size:.85rem;border-bottom:1px solid var(--color-border-light)}.detail-table tr:last-child td{border-bottom:none}.text-end{text-align:right}.detail-link{color:var(--color-brand-primary);text-decoration:none}.detail-link:hover{text-decoration:underline}.btn-back{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .75rem;background:var(--color-bg-card);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;font-size:.8rem;white-space:nowrap;text-decoration:none}.btn-back:hover{background:var(--color-bg-hover);color:var(--color-text-primary);text-decoration:none}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.text-muted,.no-data{color:var(--color-text-secondary)}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;min-height:auto}@media(max-width:900px){.page-header{flex-direction:column;align-items:stretch}.detail-layout,.detail-grid,.detail-grid-single{grid-template-columns:1fr}.page-actions{justify-content:flex-start}}@media(max-width:768px){.form-row{grid-template-columns:1fr}.toolbar,.filters,.log-filters{gap:var(--space-2)}.search-input,.filter-select{flex:1 1 100%;max-width:none;width:100%}.actions{flex-wrap:wrap}table.table-stack-mobile{min-width:0}table.table-stack-mobile thead{display:none}table.table-stack-mobile,table.table-stack-mobile tbody,table.table-stack-mobile tr,table.table-stack-mobile td{display:block;width:100%}table.table-stack-mobile tbody{padding:var(--space-2)}table.table-stack-mobile tr{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);margin-bottom:var(--space-2);overflow:hidden}table.table-stack-mobile td{display:grid;grid-template-columns:minmax(110px,42%) 1fr;gap:var(--space-2);align-items:start;padding:.6rem .75rem;border-bottom:1px solid var(--color-border-light);text-align:left}table.table-stack-mobile td:last-child{border-bottom:0}table.table-stack-mobile td:before{content:attr(data-label);color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:600;line-height:1.3}table.table-stack-mobile td.actions,table.table-stack-mobile td .actions{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.btn,.btn-primary,.btn-secondary,.btn-edit,.btn-delete,.btn-detail,.ui-card-link,.link-button{transition:none}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:Segoe UI Variable,Aptos,Trebuchet MS,Segoe UI,sans-serif;font-size:14px;line-height:1.5;background:var(--color-bg-body);color:var(--color-text-primary)}body.mobile-nav-open{overflow:hidden}h1{font-size:1.25rem;font-weight:600}h2{font-size:1rem;font-weight:600}h3{font-size:.95rem;font-weight:600}a{color:var(--color-brand-primary);text-decoration:none}a:hover{text-decoration:underline}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
