:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--danger: #dc3545;--danger-rgb: 220, 53, 69}:root{--bg-color: #000000;--glass: rgba(0, 0, 0, .1);--primary: #2d5a4f;--primary-rgb: 45, 90, 79;--text: #ffffff;--text-translucent: rgba(255, 255, 255, .7);--bg-dark: #000000;--bg-dark-rgb: 0, 0, 0;--card-bg: rgba(0, 0, 0, .2);--card-bg-hover: rgba(0, 0, 0, .8);--card-header-bg: transparent;--glass-gradient: linear-gradient( 135deg, rgba(0, 0, 0, .01), rgba(0, 0, 0, .05) );--primary-gradient: linear-gradient( 135deg, rgba(127, 127, 127, .7) 0%, var(--primary) 50%, rgba(35, 70, 62, .9) 100% );--dropdown-bg: #222222;--dropdown-text: #ffffff;--border-color: rgba(255, 255, 255, .1);--border-active: var(--primary);--shadow-color: rgba(255, 255, 255, .15);--focus-ring-color: rgba(var(--primary-rgb), .5);--success-color: #27ae60;--success-rgb: 39, 174, 96;--warning-color: #f39c12;--warning-rgb: 243, 156, 18;--error-color: #e74c3c;--info-color: #3498db;--info-rgb: 52, 152, 219;--text-translucent-rgb: 255, 255, 255;--glass-marker-gradient-1:rgba(255, 255, 255, .2);--glass-marker-gradient-2:rgba(0, 0, 0, .1);--glass-marker-failedlogin-ssh: rgba(255, 100, 100, .3);--glass-marker-failedlogin-mail: rgba(255, 255, 100, .3);--glass-marker-events-reverseproxy: rgba(80, 80, 255, .3);--toggle-dot-enabled: linear-gradient( 135deg,white 0%, rgba(var(--primary-rgb), .4) 70% );--toggle-bg-enabled: linear-gradient(122deg, var(--glass) -50%, rgba(0, 0, 0,1) 0%, rgba(var(--primary-rgb), 1) 100%);--toggle-bg-disabled: linear-gradient(270deg, var(--glass) 100%, var(--text-translucent) 50%);--toggle-dot-disabled: linear-gradient(70deg, rgb(69, 69, 69) 0%, rgb(33, 33, 33) 250%)}.light-mode{--bg-color: #f0f0f0;--glass: rgba(var(--primary-rgb), .2);--text: #000000;--text-translucent: rgba(0, 0, 0, .634);--text-translucent-rgb: 0, 0, 0;--bg-dark: #e0e0e0;--bg-dark-rgb: 224, 224, 224;--card-bg: rgba(255, 255, 255, .3);--card-bg-hover: rgba(255, 255, 255, .8);--card-header-bg: transparent;--glass-gradient: linear-gradient( 135deg, rgba(255, 255, 255, .2), rgba(var(--primary-rgb), .05) );--primary-gradient: linear-gradient( 135deg, rgba(var(--primary-rgb), .1), rgba(var(--primary-rgb), .15) );--dropdown-bg: #ffffff;--dropdown-text: #000000;--border-color: rgba(0, 0, 0, .1);--border-active: var(--primary);--shadow-color: rgba(0, 0, 0, .4);--focus-ring-color: rgba(var(--primary-rgb), .5);--glass-marker-gradient-1:rgba(93, 13, 13, 0);--glass-marker-gradient-2:rgba(0, 0, 0, 0);--glass-marker-failedlogin-ssh: rgba(255, 21, 0, .444);--glass-marker-failedlogin-mail: rgba(255, 255, 100, .5);--glass-marker-events-reverseproxy: rgba(86, 56, 219, .3);--toggle-bg-enabled: linear-gradient(135deg, var(--glass) 0%, var(--primary) 14%, rgb(211, 211, 211) 210%);--toggle-dot-enabled: linear-gradient( 135deg,white 0%, rgba(var(--primary-rgb), .4) 70% );--toggle-bg-disabled: linear-gradient(122deg, var(--glass) -50%, rgba(132, 132,132, .4) 0%, rgba(var(--primary-rgb), 1) 300%);--toggle-dot-disabled: linear-gradient(135, rgba(96, 96, 96, .7) 0%, rgba(0,0,0,1) 50%, rgba(var(--primary-rgb), 1) 30%), rgba(87, 87, 87, .7) 100%}body{display:flex;flex-direction:column;font-family:Inter,sans-serif;background:var(--bg-color);color:var(--text);min-height:100vh;position:relative;overflow-x:hidden;transition:background .3s,color .3s;line-height:1.5}*{scrollbar-width:thin;scrollbar-color:var(--primary) var(--bg-color)}.container{z-index:1;margin-left:2.5rem;margin-right:2.5rem;margin-bottom:6rem;align-self:center}.interfaces-loading{margin-top:10px;padding:10px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text);font-size:14px}button:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3rem;margin-bottom:3rem;line-height:1.1;z-index:20}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:focus{outline:none}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}:root{--toastify-color-light: rgba(255, 255, 255, .9);--toastify-color-dark: rgba(33, 33, 33, .9);--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-text-color-light: #333;--toastify-text-color-dark: #fff}.Toastify__toast{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;box-shadow:0 4px 6px #0000001a;font-family:inherit;background:var(--card-bg);color:var(--text)}.Toastify__toast--dark{color:var(--toastify-text-color-dark)}.Toastify__toast--light{color:var(--toastify-text-color-light)}.Toastify__progress-bar{height:3px}.Toastify__close-button{opacity:.7;transition:opacity .2s}.Toastify__close-button:hover{opacity:1}.Toastify__toast{animation-duration:.3s}.Toastify__toast-icon{margin-right:12px}.Toastify__toast:hover{transform:translateY(-2px);transition:transform .2s ease}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast{margin:0;border-radius:0}}#root{margin:0;padding:0;text-align:left}.card-container{margin:1.5rem 1.5rem 4rem}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.read-the-docs{color:#888}html.no-blur *,body.no-blur *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}html.no-animations *,body.no-animations *{animation:none!important;transition:none!important;will-change:auto!important}#hexagon-container{position:fixed;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0;pointer-events:none}.hexagon{position:absolute;background-color:var(--primary, rgba(45, 90, 79, .5));opacity:.3;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);animation-name:pulse-scale-only;animation-duration:10s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;will-change:transform;transition:background-color .5s ease,opacity .5s ease}body.light-mode #hexagon-container .hexagon{opacity:.4;background-color:var(--primary, rgba(45, 90, 79, .6))}body.dark-mode #hexagon-container .hexagon{opacity:.2;background-color:var(--primary, rgba(30, 60, 50, .4))}@keyframes pulse-scale-only{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.2)}}@media(prefers-reduced-motion:reduce){.hexagon{animation:none}}html.no-background-animation #hexagon-container,.no-background-animation #hexagon-container{display:none!important}html.no-animations .hexagon,body.no-animations .hexagon{animation:none!important}.chart-container{flex-grow:1;position:relative;margin-top:.5rem;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.5rem;display:flex;justify-content:center;align-items:center;min-height:150px}.chart-container canvas{max-width:100%;max-height:100%;display:block}@media(max-width:992px){.metric-details-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.metric-details-grid{grid-template-columns:1fr}.metric-detail{height:350px}}@media(max-width:768px){.metric-section .chart-container{height:150px}}@media(max-width:768px){.split-chart-container{flex-direction:column;height:auto;gap:10px}.chart-half{height:180px}}.color-labels{display:flex;gap:.75rem;flex-wrap:wrap;height:auto;min-height:24px;align-items:center;margin-bottom:.5rem}.color-labels.small{font-size:.8rem}.color-label{display:flex;align-items:center;gap:.25rem;font-size:.8rem}.color-box{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:4px}.metric-details-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border-color)}.metric-detail{position:relative;height:400px;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.5rem;display:flex;flex-direction:column}.metric-detail .metric-section{height:100%;display:flex;flex-direction:column}.metric-detail .chart-container{flex-grow:1;border:none;padding:0;background:none;margin-top:.25rem;min-height:0}.metric-detail .graph-label{font-size:.8rem;color:var(--text-muted);text-align:center;margin-bottom:.25rem;display:block;flex-shrink:0}.btn{border:none;border-radius:.25rem;cursor:pointer;transition:all .3s ease;backdrop-filter:blur(5px);opacity:.6;-webkit-backdrop-filter:blur(5px);border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(255,255,255,.2);padding:.5rem 1rem;font-size:1rem;background:var(--glass);background-image:var(--glass-gradient);color:var(--text);outline:none;transition:all .2s ease;margin-right:1rem}.btn:hover{transform:translateY(-1px);box-shadow:4px 4px 8px var(--shadow-color);opacity:1}.btn:active{transform:translateY(1px);box-shadow:0 4px 8px var(--shadow-color)}.btn:disabled{opacity:.2}.btn:disabled:hover{transform:translateY(1);opacity:.2}.btn:focus{outline:none}.btn:focus:hover{outline:none}.btn .spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}.btn.icon{color:var(--text);display:flex;align-items:right;max-width:32px;max-height:32px;padding:.5rem;border-radius:4px;cursor:pointer;border:none;outline:none;transition:all .2s ease-in-out;position:relative;box-shadow:0 0 0 var(--shadow-color);margin-right:1rem}.btn.icon:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.icon:active{transform:translateY(1px)}.btn.icon.expanded{background-color:var(--card-bg-hover);box-shadow:0 4px 4px var(--shadow-color)}.btn.icon.expanded:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.icon.expanded:active{transform:translateY(1px);box-shadow:0 2px 4px var(--shadow-color)}.btn.icon.expanded svg{transform:rotate(180deg)}.base-card{display:flex;flex-direction:column;position:relative;margin-bottom:1rem;padding:1rem;border-radius:8px;overflow:visible;opacity:1;transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease,background-color .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-translucent);z-index:1}.base-card:hover{color:var(--text);z-index:30;transform:translateY(-2px);box-shadow:0 6px 12px var(--shadow-color);background-color:var(--card-bg-hover);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color)}.card-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;margin:0;margin-bottom:1rem}.card-title{display:flex;align-items:center;gap:.5rem;color:var(--text-color);background-color:transparent;margin:0;padding:0;flex:1}.card-actions{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;flex-shrink:0;flex-wrap:wrap}.card-actions.right{margin-left:auto}.card-content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.card-footer{background:transparent!important;border:none;padding:0;margin:0}.card-footer .card-actions{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;padding:0}html.no-card-hover .base-card,.no-card-hover .base-card{background-color:var(--card-bg-hover)!important;color:var(--text)!important}html.no-card-hover .base-card:hover,.no-card-hover .base-card:hover{z-index:1!important;transform:none!important;box-shadow:none!important;background-color:var(--card-bg-hover)!important;color:var(--text)!important}html.no-animations .base-card:hover,body.no-animations .base-card:hover{transform:none!important;transition:none!important}.system-card{display:flex;flex-direction:column;position:relative;margin-bottom:1rem;padding:1rem;border-radius:8px;overflow:hidden;opacity:1;transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease,background-color .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-translucent);z-index:1}.system-card:hover{color:var(--text);z-index:30;transform:translateY(-2px);box-shadow:0 6px 12px var(--shadow-color);background-color:var(--card-bg-hover);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color)}.system-card .card-header{display:flex;align-items:center;background-color:transparent!important;border:none!important;border-bottom:none!important;margin-bottom:0;padding:0;box-shadow:none!important}.system-card .card-header>.card-title{display:flex;align-items:center;gap:.5rem;color:var(--text-color);background-color:transparent;flex-grow:0;width:auto}.system-card .card-header>.card-actions{display:flex;gap:.5rem;border:none!important;border-top:none!important;border-bottom:none!important;background-color:transparent!important;padding:0;flex-shrink:0;margin:0 0 0 auto;width:auto}.system-card .card-content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.system-card .detail-view{margin-top:1rem;opacity:1;transform:none;transition:opacity .3s ease,transform .3s ease;height:auto;max-height:600px;overflow:hidden}.system-card .metric-grid,.system-card .metric-details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1.5rem}.system-card .cpu-card .chart-container,.system-card .ram-card .chart-container,.system-card .disk-card .chart-container{min-height:250px;flex-grow:1;display:flex;align-items:center;justify-content:center}.system-card .cpu-card .chart-container canvas,.system-card .ram-card .chart-container canvas,.system-card .disk-card .chart-container canvas{max-width:100%;max-height:100%}.system-card.loading{opacity:.7;pointer-events:none}.expandable-card{transition:padding .3s ease-in-out}.expandable-card.collapsed{padding-bottom:.5rem!important}.expandable-card .card-content-wrapper{transition:all .3s ease-in-out;overflow:hidden;max-height:2000px;opacity:1;visibility:visible}.expandable-card .card-content-wrapper.collapsed{max-height:0;opacity:0;visibility:hidden;padding:0;margin:0}.expandable-card .btn.icon{transition:transform .3s ease}.expandable-card .btn.icon.expanded{transform:rotate(180deg)}.expandable-card .card-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;margin:0;margin-bottom:1rem;transition:margin-bottom .3s ease-in-out}.expandable-card.collapsed .card-header{margin-bottom:0}.expandable-card .card-title{margin:0;padding:0;display:flex;align-items:center;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expandable-card .card-actions{padding:0;display:flex;align-items:center;margin:0 0 0 auto;flex-shrink:0;gap:.5rem}.expandable-card .btn.icon{margin:0;padding:.5rem}.attack-map-container{width:100%;height:100%;min-height:400px;background-color:#aad3df;border-radius:var(--card-border-radius);overflow:hidden;position:relative;z-index:1}.agg-marker-wrapper{background:transparent!important;border:none!important}.agg-marker{width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);box-shadow:0 6px 20px #0003}.agg-marker.low{background:#3b82f68c}.agg-marker.medium{background:#eab30899}.agg-marker.high{background:#ef44449e}.agg-count{font-family:Inter,sans-serif;font-weight:800;font-size:.8rem;color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.35);line-height:1}.agg-cluster{width:40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#1e40afa6;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 26px #00000040}.attack-map-container.dark-mode{background-color:#19363f}.attack-map-container.dark-mode:not(.popout-mode) .leaflet-tile-pane{filter:invert(100%) hue-rotate(180deg) brightness(95%) saturate(85%)}.attack-map-container.dark-mode:not(.popout-mode) .leaflet-control-zoom,.attack-map-container.dark-mode:not(.popout-mode) .leaflet-control-attribution{filter:invert(100%) hue-rotate(180deg)}.attack-map-container.dark-mode:not(.popout-mode) .leaflet-marker-pane,.attack-map-container.dark-mode:not(.popout-mode) .leaflet-overlay-pane{filter:none!important}.attack-map-container.dark-mode:not(.popout-mode) .leaflet-popup-pane{filter:none!important}.attack-map-container.dark-mode .leaflet-control-zoom a,.attack-map-container.dark-mode .leaflet-control-attribution a,.attack-map-container.dark-mode .leaflet-control-attribution{color:#ccc!important;text-shadow:none}.attack-map-container.dark-mode .leaflet-control-layers-toggle{background-color:#555!important}.attack-map-container.dark-mode .leaflet-control-zoom,.attack-map-container.dark-mode .leaflet-control-attribution,.attack-map-container.dark-mode .leaflet-control-layers{background:#1e1e1ecc!important;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);box-shadow:0 2px 10px #00000080;color:#eee!important;border-radius:4px}.minimal-marker{pointer-events:auto!important}.glass-marker{pointer-events:auto!important;filter:none!important}.glass-marker-failedlogin-ssh{width:40px!important;height:40px!important;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--glass-marker-gradient-1),var(--glass-marker-failedlogin-ssh) 70%,var(--glass-marker-gradient-2) 100%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:2px 4px 8px var(--shadow-color);position:relative;overflow:hidden}.glass-marker-events-reverseproxy{width:40px!important;height:40px!important;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--glass-marker-gradient-1),var(--glass-marker-events-reverseproxy) 30%,var(--glass-marker-gradient-2) 100%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:2px 4px 8px var(--shadow-color);position:relative;overflow:hidden}.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-color:#28962899!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.2);border-radius:50%}.marker-cluster div{background-color:#ffffffb3!important;color:#111!important;border-radius:50%}.attack-map-container.dark-mode .leaflet-popup-content-wrapper{min-width:300px;background-color:#1e1e1ef2!important;color:var(--text)!important;border:1px solid var(--border-color)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.attack-map-container.dark-mode .leaflet-popup-tip{background-color:#1e1e1ef2!important;border:1px solid var(--border-color)!important;filter:none!important}.attack-map-container.dark-mode .leaflet-popup-content,.attack-map-container.dark-mode .leaflet-popup-close-button{color:var(--text)!important;filter:none!important}.no-data-overlay,.info-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#000000b3;color:#fff;padding:15px 25px;border-radius:8px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:10;text-align:center;font-size:16px;box-shadow:0 4px 15px #0000004d;border:1px solid rgba(255,255,255,.1)}.no-data-overlay p,.info-overlay p{margin:0}.info-overlay{background-color:#3b82f6b3}.error-message{background-color:#dc26261a;color:#dc2626;padding:10px 20px;border-radius:6px;border-left:4px solid #dc2626;margin-bottom:20px;font-size:14px}.attack-map-container .leaflet-popup-content-wrapper{min-width:300px;background-color:#fffffff2!important;color:#000!important;border:1px solid #ccc!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.attack-map-container .leaflet-popup-tip{background-color:#fffffff2!important;border:1px solid #ccc!important}.attack-map-container .leaflet-popup-content,.attack-map-container .leaflet-popup-close-button{color:#000!important}.attack-map-container .leaflet-popup-close-button:hover{color:#666!important}.attack-map-container .popup-action-button{background:#f0f0f0f2;color:#000;border:1px solid #ccc;border-radius:4px;padding:6px 12px;cursor:pointer;font-size:13px;transition:all .2s ease;white-space:nowrap;flex:1;position:relative;overflow:hidden}.attack-map-container .popup-action-button:hover{background:#dcdcdcf2;border-color:#999}.attack-map-container.dark-mode .popup-action-button{background:#282828f2;color:var(--text);border:1px solid var(--border-color)}.attack-map-container.dark-mode .popup-action-button:hover{background:#3c3c3cf2;border-color:var(--border-color-hover)}.attack-map-container .popup-action-button.success{background:#28a745f2;border-color:#28a74580;color:#fff}.attack-map-container .popup-action-button.success:after{content:"✓";position:absolute;right:8px;top:50%;transform:translateY(-50%);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tables-container{display:flex;flex-direction:column;gap:20px}.table-section{width:100%}.table-section h3{margin-bottom:10px;color:var(--text-color)}.table-wrapper{width:100%;overflow-x:auto;border-radius:var(--card-border-radius);background:var(--card-bg);box-shadow:var(--card-shadow)}.data-table{width:100%;border-collapse:collapse;font-size:.9em}.data-table th,.data-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{background-color:var(--card-header-bg);color:var(--text-color);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background-color:var(--hover-color)}.data-table th.asc:after{content:" ↑"}.data-table th.desc:after{content:" ↓"}.data-table tbody tr:hover{background-color:var(--hover-color)}.status-green{color:var(--success-color)}.status-yellow{color:var(--warning-color)}.status-red{color:var(--error-color)}.status-blue{color:var(--info-color)}@media(min-width:1024px){.tables-container{flex-direction:row}.table-section{flex:1}}.btn.primary{background:var(--primary-gradient);background-color:var(--primary);opacity:.6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.primary:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.primary:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.primary:disabled{opacity:.2;cursor:not-allowed}.btn.primary:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.deployment-log-view{padding:0}.deployment-log-view .progress-section{margin-bottom:2rem}.deployment-log-view .progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.deployment-log-view .progress-header h3{margin:0;color:var(--text-color);font-size:1.2rem}.deployment-log-view .progress-percentage{font-size:1.1rem;font-weight:600;color:var(--primary-color)}.deployment-log-view .progress-bar{width:100%;height:20px;background-color:var(--bg-secondary);border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.deployment-log-view .progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),rgba(var(--primary-color-rgb),.8));border-radius:10px;position:relative;overflow:hidden}.deployment-log-view .progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:deployment-shimmer 2s infinite}@keyframes deployment-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.deployment-log-view .logs-section{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.deployment-log-view .logs-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.deployment-log-view .logs-header h4{margin:0;color:var(--text-color);font-size:1.1rem}.deployment-log-view .logs-actions{display:flex;gap:.5rem}.deployment-log-view .cancel-button{font-size:.9rem;padding:.5rem 1rem}.deployment-log-view .logs-container{height:400px;overflow-y:auto;background-color:var(--bg-primary)}.deployment-log-view .logs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--text-secondary)}.deployment-log-view .loading-spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:deployment-spin 1s linear infinite}@keyframes deployment-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.deployment-log-view .logs-list{padding:.5rem}.deployment-log-view .log-entry{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem;margin-bottom:.25rem;border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.4;opacity:0;animation:deployment-fadeInUp .3s ease-out forwards}@keyframes deployment-fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.deployment-log-view .log-icon{flex-shrink:0;font-size:1rem}.deployment-log-view .log-timestamp{flex-shrink:0;color:var(--text-secondary);font-size:.8rem;min-width:80px}.deployment-log-view .log-message{flex:1;word-wrap:break-word;white-space:pre-wrap}.deployment-log-view .log-info{background-color:rgba(var(--info-color-rgb),.1);border-left:3px solid var(--info-color)}.deployment-log-view .log-info .log-message{color:var(--text-color)}.deployment-log-view .log-success{background-color:rgba(var(--success-color-rgb),.1);border-left:3px solid var(--success-color)}.deployment-log-view .log-success .log-message{color:var(--success-color);font-weight:500}.deployment-log-view .log-warning{background-color:rgba(var(--warning-color-rgb),.1);border-left:3px solid var(--warning-color)}.deployment-log-view .log-warning .log-message{color:var(--warning-color);font-weight:500}.deployment-log-view .log-error{background-color:rgba(var(--error-color-rgb),.1);border-left:3px solid var(--error-color)}.deployment-log-view .log-error .log-message{color:var(--error-color);font-weight:600}@media(max-width:768px){.deployment-log-view .progress-header{flex-direction:column;align-items:flex-start;gap:.5rem}.deployment-log-view .logs-header{flex-direction:column;align-items:flex-start;gap:1rem}.deployment-log-view .logs-container{height:300px}.deployment-log-view .log-entry{flex-direction:column;gap:.5rem}.deployment-log-view .log-timestamp{min-width:auto}}@media(prefers-color-scheme:dark){.deployment-log-view .progress-bar{box-shadow:inset 0 2px 4px #ffffff1a}.deployment-log-view .progress-fill:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}}.vuln-card{display:flex;flex-direction:column;gap:.75rem}.vuln-section{border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem;background:var(--card-bg)}.vuln-section-stack{display:flex;flex-direction:column;gap:.5rem}.vuln-section-title{font-weight:600;color:var(--text)}.vuln-target-option{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text)}.vuln-section-actions{display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem}.severity-summary{font-size:.875rem;color:var(--text);display:flex;flex-direction:column;gap:.25rem}.severity-summary-total-label{font-weight:600}.severity-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.vuln-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;font-size:.75rem}.vuln-summary-title{font-weight:600;color:var(--text);margin-bottom:.25rem}.mitigation-suggestions{border-top:1px solid var(--border-color);margin-top:.5rem;padding-top:.5rem;display:flex;flex-direction:column;gap:.25rem;color:var(--warning-color)}.mitigation-title{font-size:.75rem;font-weight:600}.mitigation-list{font-size:.75rem;display:flex;flex-direction:column;gap:.125rem}.mitigation-item{line-height:1.3}.vuln-muted-text{font-size:.75rem;color:var(--text-translucent)}.vuln-muted-text-sm{font-size:.875rem;color:var(--text-translucent)}.vuln-select{width:100%;padding:.25rem .5rem;font-size:.875rem;border:1px solid var(--border-color);border-radius:.375rem;background:var(--dropdown-bg);color:var(--dropdown-text);box-shadow:0 1px 2px #0000000d}.vuln-select:focus{outline:2px solid var(--focus-ring-color);outline-offset:2px}.btn.danger{background:linear-gradient(135deg,#dc2121e6,#b42121e6,#8c2121f2);opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.danger:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.danger:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.danger:disabled{opacity:.2;cursor:not-allowed}.btn.danger:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.confirm-danger-modal{min-width:360px;max-width:520px}.confirm-danger-modal__header{padding:1rem 1.5rem .5rem;border-bottom:1px solid var(--border-color)}.confirm-danger-modal__header h3{margin:0;font-size:1.2rem;color:var(--text)}.confirm-danger-modal__body{padding:1rem 1.5rem 0;color:var(--text-translucent);line-height:1.5}.confirm-danger-modal__confirm{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.confirm-danger-modal__confirm label{font-size:.85rem;color:var(--text)}.confirm-danger-modal__confirm input{border:1px solid var(--border-color);border-radius:.6rem;padding:.5rem .75rem;background:var(--card-bg);color:var(--text)}.confirm-danger-modal__confirm input:focus{outline:2px solid var(--focus-ring-color);outline-offset:2px}.confirm-danger-modal__footer{padding:1rem 1.5rem 1.5rem;display:flex;justify-content:flex-end;gap:.75rem}@media(max-width:600px){.confirm-danger-modal{min-width:auto;width:92vw}.confirm-danger-modal__footer{flex-direction:column}}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:10000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.modal-backdrop.show{opacity:1;visibility:visible}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-card-content{background-color:var(--card-bg);color:var(--text, #ffffff);padding:0rem 0rem 1rem 1.5rem;border-radius:var(--border-radius, 8px);border:1px solid var(--border-color, rgba(255, 255, 255, .1));box-shadow:0 5px 15px #0003;min-width:400px;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;position:relative}.modal-card-content .modal-footer{display:flex;justify-content:flex-end;gap:1rem;margin-top:0rem;padding-top:1rem;border-top:1px solid var(--border-color);flex-shrink:0}.modal-container{background-color:var(--card-bg, #2a2a2a);color:var(--text, #ffffff);padding:1.5rem;border-radius:var(--border-radius, 8px);border:1px solid var(--border-color, rgba(255, 255, 255, .1));box-shadow:0 5px 15px #0003;min-width:400px;max-width:600px;width:90%;max-height:60vh;display:flex;flex-direction:column;transform:none;transition:transform .3s ease,box-shadow .3s ease;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);padding-top:1rem;padding-bottom:1rem;flex-shrink:0;margin-bottom:1rem}.modal-header h3{margin:0;font-size:1.2rem;font-weight:600}.modal-body{flex:1 1 auto;overflow-y:auto;padding-bottom:0!important;margin-bottom:0!important;white-space:pre-wrap;word-wrap:break-word}.modal-footer{display:grid;grid-auto-flow:column;gap:1rem;justify-content:end;position:sticky;bottom:0;background:none;z-index:99999;border-top:1px solid var(--border-color, #eee);padding:1rem 1rem 0rem;box-shadow:0 -2px 8px #0000000a}.interface-row .button-container{display:flex;gap:.5rem;align-items:center}.security-overview-card .alert-spike{display:flex;align-items:flex-start;gap:.75rem;border:1px solid var(--danger);border-radius:.5rem;padding:1rem;background-color:rgba(var(--danger-rgb),.1)}.security-overview-card .alert-spike-icon{color:var(--danger);margin-top:.125rem}.security-overview-card .alert-spike-title{font-weight:600;color:var(--text);font-size:.875rem}.security-overview-card .alert-spike-message{font-size:.875rem;color:var(--text-translucent);margin-top:.25rem}.security-overview-card .stats-grid{display:flex;flex-direction:column;gap:1rem}@media(min-width:768px){.security-overview-card .stats-grid{display:grid;grid-template-columns:repeat(3,1fr)}}.security-overview-card .stat-card{position:relative;overflow:hidden;border-radius:.75rem;padding:1.25rem;border:1px solid var(--border-color);background:var(--glass-gradient);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease}.security-overview-card .stat-card-clickable{cursor:pointer}.security-overview-card .stat-card-clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:var(--border-active)}.security-overview-card .stat-card.stat-card-blue{border-color:var(--info-color)}.security-overview-card .stat-card.stat-card-red{border-color:var(--error-color)}.security-overview-card .stat-card.stat-card-orange{border-color:var(--warning-color)}.security-overview-card .stat-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;position:relative;z-index:10;color:var(--text-translucent);display:flex;align-items:center;gap:.375rem}.security-overview-card .stat-label-hint{font-size:.625rem;font-weight:400;opacity:.7;text-transform:none}.security-overview-card .stat-value{font-size:2.25rem;font-weight:700;margin-top:.5rem;position:relative;z-index:10;color:var(--text)}.security-overview-card .stat-expand-icon{position:absolute;bottom:.5rem;right:.75rem;font-size:.875rem;color:var(--text-translucent);z-index:10}.security-overview-card .timeframe-breakdown{border-radius:.75rem;padding:1.25rem;background-color:var(--card-bg-hover);border:1px solid var(--border-color)}.security-overview-card .breakdown-title{font-weight:600;color:var(--text);margin-bottom:1rem;font-size:.875rem}.security-overview-card .breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.security-overview-card .breakdown-item{padding:.75rem;background:var(--card-bg);border-radius:.5rem;border:1px solid var(--border-color);text-align:center}.security-overview-card .breakdown-label{font-size:.75rem;color:var(--text-translucent);margin-bottom:.375rem}.security-overview-card .breakdown-value{font-size:1.5rem;font-weight:700;color:var(--text)}.security-overview-card .charts-grid{display:flex;flex-direction:column;gap:1rem}@media(min-width:1024px){.security-overview-card .charts-grid{display:grid;grid-template-columns:repeat(3,1fr)}.security-overview-card .chart-line{grid-column:span 2}}.security-overview-card .chart-container{border-radius:.75rem;padding:1.25rem;background-color:var(--card-bg-hover);border:1px solid var(--border-color)}.security-overview-card .chart-title{font-weight:600;color:var(--text);margin-bottom:1rem;font-size:.875rem}.security-overview-card .chart-wrapper{height:200px}.security-overview-card .offenders-container{border-radius:.75rem;padding:1.25rem;background-color:var(--card-bg-hover);border:1px solid var(--border-color)}.security-overview-card .offenders-title{font-weight:600;color:var(--text);margin-bottom:1rem}.security-overview-card .offenders-empty{font-size:.875rem;color:var(--text-translucent);text-align:center;padding:2rem 0}.security-overview-card .offenders-list{display:flex;flex-direction:column;gap:.5rem;max-height:500px;overflow-y:auto;padding-right:.5rem}.security-overview-card .offenders-list::-webkit-scrollbar{width:8px}.security-overview-card .offenders-list::-webkit-scrollbar-track{background:var(--card-bg);border-radius:4px}.security-overview-card .offenders-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.security-overview-card .offenders-list::-webkit-scrollbar-thumb:hover{background:rgba(var(--primary-rgb),.5)}.security-overview-card .offender-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-radius:.5rem;background-color:var(--card-bg);border:1px solid var(--border-color);transition:background-color .2s ease}.security-overview-card .offender-item:hover{background-color:var(--card-bg-hover)}.security-overview-card .offender-info{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.security-overview-card .offender-ip{font-family:monospace;font-size:.875rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:.5rem}.security-overview-card .offender-flag{font-size:1.125rem;line-height:1}.security-overview-card .offender-badges{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.security-overview-card .badge-count{padding:.25rem .5rem;border-radius:9999px;background-color:rgba(var(--primary-rgb),.2);color:var(--text);font-weight:500;border:1px solid rgba(var(--primary-rgb),.4)}.security-overview-card .badge-blocked{padding:.25rem .5rem;border-radius:9999px;background-color:rgba(var(--danger-rgb),.2);color:var(--danger);font-weight:500;display:flex;align-items:center;gap:.25rem;border:1px solid rgba(var(--danger-rgb),.4)}.security-overview-card .badge-blocked-icon{font-size:.75rem}.security-overview-card .offender-actions{display:flex;align-items:center;gap:.5rem}.security-overview-card .btn-block,.security-overview-card .btn-unblock,.security-overview-card .btn-view-map{padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:.5rem;transition:all .2s ease;display:flex;align-items:center;gap:.375rem;border:none;cursor:pointer;white-space:nowrap}.security-overview-card .btn-block,.security-overview-card .btn-unblock{color:#fff}.security-overview-card .btn-block{background-color:var(--error-color)}.security-overview-card .btn-block:hover:not(:disabled){background-color:var(--danger);transform:translateY(-1px);box-shadow:0 4px 8px rgba(var(--danger-rgb),.3)}.security-overview-card .btn-unblock{background-color:var(--success-color)}.security-overview-card .btn-unblock:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 8px #27ae604d}.security-overview-card .btn-block:disabled,.security-overview-card .btn-unblock:disabled{opacity:.5;cursor:not-allowed;transform:none}.security-overview-card .btn-view-map{background-color:rgba(var(--primary-rgb),.2);color:var(--text);border:1px solid rgba(var(--primary-rgb),.4)}.security-overview-card .btn-view-map:hover:not(:disabled):not(.btn-view-map-active){background-color:rgba(var(--primary-rgb),.3);transform:translateY(-1px)}.security-overview-card .btn-view-map.btn-view-map-active{background-color:rgba(var(--primary-rgb),.8)!important;color:#fff!important;border:1px solid rgba(var(--primary-rgb),1)!important;font-weight:600}.security-overview-card .btn-view-map.btn-view-map-active:hover:not(:disabled){background-color:rgba(var(--primary-rgb),.9)!important;transform:translateY(-1px)}.security-overview-card .btn-view-map:disabled{opacity:.5;cursor:not-allowed;transform:none}.space-y-6>*+*{margin-top:1.5rem}.status-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:.75rem;border-radius:.25rem;border-width:1px}.status-badge-high{background-color:#ef444426;color:var(--error-color);border-color:#ef44444d}.status-badge-medium{background-color:#eab30826;color:var(--warning-color);border-color:#eab3084d}.status-badge-low{background-color:#64748b1a;color:var(--text-translucent);border-color:#64748b33}.event-row{grid-template-columns:140px 100px 100px 140px 140px 160px 1fr 280px;display:grid;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;border-bottom:1px solid var(--border-color);transition:background-color .15s}.event-row:hover{background-color:var(--card-bg-hover)}.event-row-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.event-row-text-mono{font-family:monospace}.event-row-time{font-variant-numeric:tabular-nums}.event-row-text-capitalize{text-transform:capitalize}.event-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap;overflow-x:auto}.event-link{color:var(--primary);font-size:.75rem;white-space:nowrap;background:none;border:none;cursor:pointer;padding:0}.event-link:hover{text-decoration:underline}.event-link:disabled{opacity:.5;cursor:not-allowed}.event-link-success{color:var(--success-color)}.event-link-danger{color:var(--error-color)}.events-table-header{grid-template-columns:140px 100px 100px 140px 140px 160px 1fr 280px;display:grid;gap:.5rem;padding:.75rem 1rem;background:var(--card-header-bg);font-size:.875rem;font-weight:600;color:var(--text);border-bottom:1px solid var(--border-color)}.events-filters{border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;background:var(--card-bg);display:flex;flex-direction:column;gap:.75rem}.events-stack{display:flex;flex-direction:column;gap:1rem}.events-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.events-filters-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.events-type-filters{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.875rem;color:var(--text)}.events-type-filter-label{display:flex;align-items:center;gap:.5rem}.events-type-label{text-transform:capitalize}.events-export-actions{display:flex;align-items:center;gap:.75rem}.filter-label{display:block;font-size:.75rem;color:var(--text-translucent);margin-bottom:.25rem}.filter-input,.filter-select{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:.375rem;box-shadow:0 1px 2px #0000000d;background:var(--dropdown-bg);color:var(--dropdown-text)}.filter-input:focus,.filter-select:focus{outline:2px solid var(--focus-ring-color);outline-offset:2px}.events-table-container{border:1px solid var(--border-color);border-radius:.5rem;overflow:hidden;background:var(--card-bg)}.events-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.events-table-grid,.events-table-list{width:100%;min-width:var(--events-table-min-width, 1120px)}.events-table-header,.event-row{min-width:var(--events-table-min-width, 1120px)}.events-table-sticky{position:sticky;left:0;z-index:2;background:var(--card-bg);box-shadow:1px 0 0 var(--border-color)}.events-table-header .events-table-sticky{z-index:3}.event-row:hover .events-table-sticky{background-color:var(--card-bg-hover)}.events-empty-state{padding:3rem 0;text-align:center;color:var(--text-translucent)}.events-info-text{font-size:.875rem;color:var(--text-translucent)}.events-info-text-small{font-size:.75rem;color:var(--text-translucent)}.events-row-count{padding:.75rem 0;text-align:center;font-size:.875rem;color:var(--text-translucent);border-top:1px solid var(--border-color)}.security-posture-card .posture-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.security-posture-card .posture-subtitle{font-size:.875rem;color:var(--text-translucent);margin-bottom:1rem}.security-posture-card .system-info{font-size:.75rem;color:var(--text-translucent);margin-bottom:1rem}.security-posture-card .posture-summary{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.security-posture-card .summary-item{flex:1;min-width:120px;padding:.75rem;border-radius:.5rem;border:1px solid var(--border-color);background:var(--glass-gradient);text-align:center}.security-posture-card .summary-label{font-size:.75rem;color:var(--text-translucent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.security-posture-card .summary-value{font-size:1.5rem;font-weight:700;color:var(--text)}.security-posture-card .summary-item.pass .summary-value{color:var(--success-color)}.security-posture-card .summary-item.warn .summary-value{color:var(--warning-color)}.security-posture-card .summary-item.fail .summary-value{color:var(--error-color)}.security-posture-card .checks-container{display:flex;flex-direction:column;gap:.75rem}.security-posture-card .check-item{border-radius:.5rem;padding:1rem;background-color:var(--card-bg);border:1px solid var(--border-color);transition:all .2s ease}.security-posture-card .check-item:hover{background-color:var(--card-bg-hover);border-color:var(--border-active)}.security-posture-card .check-item.pass{border-left-width:3px;border-left-color:var(--success-color)}.security-posture-card .check-item.warn{border-left-width:3px;border-left-color:var(--warning-color)}.security-posture-card .check-item.fail{border-left-width:3px;border-left-color:var(--error-color)}.security-posture-card .check-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.security-posture-card .check-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.security-posture-card .check-header.clickable:hover{opacity:.8}.security-posture-card .check-expand-icon{font-size:.875rem;color:var(--text-translucent);padding:.25rem;min-width:1.5rem;text-align:center}.security-posture-card .check-info{flex:1;min-width:0}.security-posture-card .check-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.security-posture-card .check-title{font-weight:600;color:var(--text);font-size:.875rem}.security-posture-card .check-status-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:.75rem;border-radius:.25rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.security-posture-card .check-status-badge.pass{background-color:#27ae6033;color:var(--success-color);border:1px solid rgba(39,174,96,.4)}.security-posture-card .check-status-badge.warn{background-color:#f39c1233;color:var(--warning-color);border:1px solid rgba(243,156,18,.4)}.security-posture-card .check-status-badge.fail{background-color:#e74c3c33;color:var(--error-color);border:1px solid rgba(231,76,60,.4)}.security-posture-card .check-details{font-size:.875rem;color:var(--text-translucent);line-height:1.5}.security-posture-card .check-commands{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.security-posture-card .command-item{display:flex;align-items:center;gap:.5rem;background:rgba(var(--bg-dark-rgb),.3);border-radius:.375rem;padding:.5rem;border:1px solid var(--border-color)}.security-posture-card .command-code{flex:1;font-family:monospace;font-size:.75rem;color:var(--text);overflow-x:auto;white-space:nowrap;padding:.25rem}.security-posture-card .command-actions{display:flex;gap:.375rem;flex-shrink:0}.security-posture-card .btn-run,.security-posture-card .btn-copy{padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:.375rem;border:none;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.25rem}.security-posture-card .btn-run{background-color:var(--primary);color:#fff}.security-posture-card .btn-run:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.security-posture-card .btn-run:disabled{opacity:.5;cursor:not-allowed}.security-posture-card .btn-copy{background-color:rgba(var(--primary-rgb),.2);color:var(--text);border:1px solid rgba(var(--primary-rgb),.4)}.security-posture-card .btn-copy:hover{background-color:rgba(var(--primary-rgb),.3)}.security-posture-card .execution-output{margin-top:.5rem;padding:.75rem;background:rgba(var(--bg-dark-rgb),.5);border-radius:.375rem;border:1px solid var(--border-color)}.security-posture-card .execution-output.success{border-color:var(--success-color)}.security-posture-card .execution-output.error{border-color:var(--error-color)}.security-posture-card .output-label{font-size:.75rem;font-weight:600;color:var(--text);margin-bottom:.375rem}.security-posture-card .output-content{font-family:monospace;font-size:.75rem;color:var(--text-translucent);white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.security-posture-card .loading-indicator{display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--text-translucent);font-size:.875rem}.security-posture-card .no-data{font-size:.875rem;color:var(--text-translucent);text-align:center;padding:2rem}.fail2ban-card .card-title-with-icon{display:flex;align-items:center;gap:.5rem}.fail2ban-card .fail2ban-content{padding:.5rem 0}.fail2ban-card .loading-state{text-align:center;padding:2rem;color:var(--text-translucent);font-size:.875rem}.fail2ban-card .not-installed-state{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem 1rem}.fail2ban-card .state-message{text-align:center;color:var(--text-translucent);font-size:.875rem;max-width:32rem}.fail2ban-card .status-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.fail2ban-card .status-badge-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.fail2ban-card .status-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600;border:2px solid}.fail2ban-card .status-badge.status-running{background-color:rgba(var(--success-rgb),.1);color:var(--success-color);border-color:var(--success-color)}.fail2ban-card .status-badge.status-stopped{background-color:rgba(var(--text-translucent-rgb),.1);color:var(--text-translucent);border-color:var(--border-color)}.fail2ban-card .banned-badge{padding:.5rem 1rem;border-radius:9999px;background-color:rgba(var(--danger-rgb),.1);color:var(--danger);border:2px solid var(--danger);font-size:.875rem;font-weight:600}.fail2ban-card .status-actions{display:flex;gap:.5rem}.fail2ban-card .jails-section{margin-top:1.5rem}.fail2ban-card .section-title{font-size:.875rem;font-weight:600;color:var(--text);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.fail2ban-card .jails-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.fail2ban-card .jail-card{display:flex;flex-direction:column;padding:1rem;border-radius:.5rem;background-color:var(--card-bg-hover);border:1px solid var(--border-color);transition:all .2s ease;min-width:0}.fail2ban-card .jail-card:hover{border-color:var(--border-active);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.fail2ban-card .jail-header{display:flex;flex-direction:column;gap:.5rem}.fail2ban-card .jail-name{font-family:monospace;font-size:.875rem;font-weight:600;color:var(--text)}.fail2ban-card .jail-stats{display:flex;align-items:center;gap:.75rem;font-size:.75rem;flex-wrap:wrap}.fail2ban-card .jail-stat{font-weight:600}.fail2ban-card .jail-stat-banned{color:var(--danger)}.fail2ban-card .jail-stat-active{color:var(--success-color)}.fail2ban-card .jail-stat-inactive,.fail2ban-card .jail-stat-total{color:var(--text-translucent)}.fail2ban-card .jail-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.fail2ban-card .jails-footer{margin-top:1rem;display:flex;justify-content:flex-end}.fail2ban-card .jail-banned-section{margin-top:.75rem}.fail2ban-card .jail-banned-title{font-size:.75rem;color:var(--text-translucent);margin-bottom:.25rem}.fail2ban-card .jail-banned-list{display:flex;flex-wrap:wrap;gap:.5rem}.fail2ban-card .fail2ban-banned-ip{padding:.25rem .5rem;font-size:.75rem;border-radius:999px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fail2ban-card .fail2ban-banned-ip:disabled{opacity:.6;cursor:not-allowed}.fail2ban-card .jail-banned-more{font-size:.75rem;color:var(--text-translucent);align-self:center}.fail2ban-card .info-message{margin-top:1.5rem;padding:1rem;background-color:rgba(var(--info-rgb),.1);border:1px solid rgba(var(--info-rgb),.3);border-radius:.5rem;color:var(--text-translucent);font-size:.875rem;text-align:center}.btn.close-modal{background:var(--glass);background-image:var(--glass-gradient);color:var(--text);opacity:.6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease-in-out}.btn.close-modal:hover{background-color:var(--error-color);background:var(--error-color);opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.close-modal:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.close-modal:disabled{opacity:.2;cursor:not-allowed}.btn.close-modal:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.security-mode-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem;border-radius:999px;border:1px solid var(--border-color);background:var(--card-bg);box-shadow:0 4px 10px #00000014}.security-mode-button{border:none;background:transparent;color:var(--text-translucent);padding:.35rem .9rem;font-size:.85rem;font-weight:600;border-radius:999px;cursor:pointer;transition:all .2s ease}.security-mode-button.active{background:var(--primary-gradient);color:var(--text);box-shadow:0 4px 10px #0000001f}.security-mode-button:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}@media(max-width:640px){.security-mode-toggle{width:100%;justify-content:space-between}.security-mode-button{flex:1;text-align:center}}.security-health-hero{position:relative;padding:1.5rem;border-radius:1rem;border:1px solid var(--border-color);background:linear-gradient(135deg,rgba(var(--primary-rgb),.14),rgba(var(--primary-rgb),.04));overflow:hidden}.security-health-hero:after{content:"";position:absolute;top:-30%;right:-10%;width:240px;height:240px;background:radial-gradient(circle,rgba(var(--primary-rgb),.25),transparent 70%);opacity:.6;pointer-events:none}.security-health-hero__content{position:relative;z-index:1}.security-health-hero__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.security-health-hero__eyebrow{display:flex;align-items:center;gap:.5rem;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;color:var(--text-translucent);font-weight:600}.security-health-hero__timeframe{padding:.1rem .4rem;border-radius:999px;background:rgba(var(--primary-rgb),.2);color:var(--text);font-size:.7rem}.security-health-hero__title{margin:.5rem 0 .35rem;font-size:2rem;color:var(--text)}.security-health-hero__subtitle{margin:0;color:var(--text-translucent);max-width:540px;line-height:1.5}.security-health-hero__status-pill{padding:.4rem .9rem;border-radius:999px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid transparent}.security-health-hero__status-pill.normal{background:rgba(var(--success-rgb),.15);color:var(--success-color);border-color:rgba(var(--success-rgb),.4)}.security-health-hero__status-pill.elevated{background:rgba(var(--warning-rgb),.15);color:var(--warning-color);border-color:rgba(var(--warning-rgb),.4)}.security-health-hero__status-pill.critical{background:rgba(var(--danger-rgb),.15);color:var(--danger);border-color:rgba(var(--danger-rgb),.4)}.security-health-hero__stats{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.security-health-hero__stat{padding:.75rem;border-radius:.75rem;background:#0000000f;border:1px solid rgba(var(--primary-rgb),.15)}.security-health-hero__stat-label{font-size:.75rem;color:var(--text-translucent);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.05em}.security-health-hero__stat-value{font-size:1.2rem;font-weight:700;color:var(--text)}.security-health-hero__glossary-toggle{margin-top:1rem;background:none;border:none;color:var(--text);font-weight:600;cursor:pointer;padding:0;position:relative;z-index:1}.security-health-hero__glossary-toggle:hover{color:var(--primary)}.security-health-hero__glossary{margin-top:.75rem;padding:.85rem 1rem;border-radius:.75rem;background:rgba(var(--primary-rgb),.08);border:1px solid rgba(var(--primary-rgb),.2);color:var(--text-translucent);line-height:1.5;position:relative;z-index:1}@media(max-width:768px){.security-health-hero__header{flex-direction:column;align-items:flex-start}.security-health-hero__title{font-size:1.6rem}}.security-action-checklist{display:flex;flex-direction:column;gap:1rem}.security-action-checklist__header h2{margin:0;font-size:1.4rem;color:var(--text)}.security-action-checklist__header p{margin:.35rem 0 0;color:var(--text-translucent)}.security-action-checklist__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.security-action-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:.9rem;padding:1rem;display:flex;flex-direction:column;gap:.75rem;min-height:180px;transition:transform .2s ease,box-shadow .2s ease}.security-action-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.security-action-card__header{display:flex;flex-direction:column;gap:.4rem}.security-action-card__header h3{margin:0;font-size:1.05rem;color:var(--text)}.security-action-card__risk{font-size:.8rem;color:var(--text-translucent)}.security-action-card__description{margin:0;color:var(--text-translucent);line-height:1.5}.security-action-card__footer{margin-top:auto}.security-action-card .action-button{width:100%;justify-content:center}@media(max-width:640px){.security-action-checklist__grid{grid-template-columns:1fr}}.security-activity-digest{display:flex;flex-direction:column;gap:1rem}.security-activity-digest__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.security-activity-digest__header h2{margin:0;font-size:1.4rem;color:var(--text)}.security-activity-digest__meta{font-size:.85rem;color:var(--text-translucent)}.security-activity-digest__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem}.digest-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:.9rem;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.35rem}.digest-card__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-translucent)}.digest-card__value{font-size:1.1rem;font-weight:700;color:var(--text)}.digest-card__value.low{color:var(--success-color)}.digest-card__value.medium{color:var(--warning-color)}.digest-card__value.high{color:var(--danger)}.digest-card__sub{color:var(--text-translucent);font-size:.85rem}.security-activity-digest__trust{display:flex;flex-wrap:wrap;gap:.5rem}.digest-trust-pill{padding:.3rem .6rem;border-radius:999px;border:1px solid rgba(var(--primary-rgb),.2);background:rgba(var(--primary-rgb),.1);color:var(--text);font-size:.75rem;font-weight:600}@media(max-width:640px){.security-activity-digest__header{flex-direction:column;align-items:flex-start}}.security-events-feed{display:flex;flex-direction:column;gap:.9rem}.events-feed-empty{padding:1rem;border-radius:.8rem;border:1px dashed var(--border-color);color:var(--text-translucent);text-align:center}.events-feed-group{border:1px solid var(--border-color);border-radius:.9rem;background:var(--card-bg);overflow:hidden}.events-feed-header{width:100%;border:none;background:transparent;padding:1rem;text-align:left;display:flex;flex-direction:column;gap:.5rem;cursor:pointer}.events-feed-header__main{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.events-feed-header__ip{font-weight:700;color:var(--text);font-size:1rem}.events-feed-header__badge{padding:.2rem .5rem;border-radius:999px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid transparent}.events-feed-header__badge.low{background:rgba(var(--success-rgb),.15);color:var(--success-color);border-color:rgba(var(--success-rgb),.3)}.events-feed-header__badge.medium{background:rgba(var(--warning-rgb),.15);color:var(--warning-color);border-color:rgba(var(--warning-rgb),.3)}.events-feed-header__badge.high{background:rgba(var(--danger-rgb),.15);color:var(--danger);border-color:rgba(var(--danger-rgb),.3)}.events-feed-header__meta{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--text-translucent);font-size:.85rem}.events-feed-header__type{text-transform:capitalize}.events-feed-actions{display:flex;flex-wrap:wrap;gap:.6rem;padding:0 1rem 1rem}.events-feed-actions button{border:1px solid var(--border-color);background:var(--card-bg-hover);color:var(--text);border-radius:.6rem;padding:.4rem .8rem;font-size:.85rem;cursor:pointer}.events-feed-actions button:disabled{opacity:.5;cursor:not-allowed}.events-feed-actions button:hover:not(:disabled){border-color:var(--border-active)}.events-feed-details{border-top:1px solid var(--border-color);padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;background:#0000000a}.events-feed-detail-row{display:flex;flex-direction:column;gap:.2rem}.events-feed-detail-row__time{font-size:.75rem;color:var(--text-translucent)}.events-feed-detail-row__desc{color:var(--text);line-height:1.4;word-break:break-word}@media(max-width:640px){.events-feed-actions{gap:.4rem}.events-feed-actions button{flex:1 1 auto;text-align:center}}.attack-details-modal{max-width:1100px!important;width:min(1100px,94vw)!important;min-width:320px!important;max-height:86vh!important}.attack-details-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;width:100%}.attack-details-title-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.attack-details-ip{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:700;font-size:1.05rem;color:var(--text);overflow:hidden;text-overflow:ellipsis}.attack-details-location{font-size:.85rem;color:var(--text-translucent)}.attack-details-title-meta{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.attack-details-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;border:1px solid var(--border-color);background:var(--card-bg-hover);color:var(--text);font-size:.75rem;font-weight:600}.attack-details-pill.danger{border-color:rgba(var(--danger-rgb),.4);background:rgba(var(--danger-rgb),.14)}.attack-details-footer{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.attack-details-section{display:flex;flex-direction:column;gap:.75rem;padding-right:1rem}.attack-details-metadata{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:.75rem;background:var(--card-bg-hover)}.attack-details-metadata .label{font-size:.75rem;color:var(--text-translucent)}.attack-details-metadata .value{font-size:.9rem;color:var(--text)}.attack-details-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.attack-details-controls .control label{display:block;font-size:.75rem;color:var(--text-translucent);margin-bottom:.25rem}.attack-details-controls .input{width:100%;padding:.6rem .75rem;border-radius:.5rem;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text)}.attack-details-controls .range-slider{grid-column:1 / -1}.attack-details-controls .range-input{padding:0;height:2rem}.attack-details-controls .range-hint{display:flex;justify-content:space-between;gap:.5rem;margin-top:.25rem;font-size:.75rem;color:var(--text-translucent)}.attack-details-type-filters{display:flex;gap:.5rem;flex-wrap:wrap}.attack-details-type-filters .type-chip{display:inline-flex;gap:.4rem;align-items:center;padding:.35rem .55rem;border-radius:999px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text);font-size:.8rem}.attack-details-charts{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.75rem;margin-top:.75rem;padding-right:1rem}.attack-details-charts .chart-card{border:1px solid var(--border-color);border-radius:.75rem;background:var(--card-bg-hover);padding:.75rem;min-height:220px}.attack-details-charts .chart-card.wide{min-height:260px}.attack-details-charts .chart-title{font-size:.85rem;font-weight:700;color:var(--text);margin-bottom:.5rem}.attack-details-charts .chart{height:190px}.attack-details-charts .chart-card.wide .chart{height:220px}.attack-details-table{margin-top:.75rem;padding-right:1rem}.attack-details-table .table-title{font-size:.85rem;font-weight:700;color:var(--text);margin-bottom:.5rem}.attack-details-table .table-scroll{border:1px solid var(--border-color);border-radius:.75rem;background:var(--card-bg-hover);overflow:hidden}.attack-details-table .table-scroll table{margin:0}.attack-details-table .table-scroll .data-table{width:100%}.attack-details-table .table-scroll .data-table td,.attack-details-table .table-scroll .data-table th{font-size:.85rem}.attack-details-table .table-scroll{max-height:360px;overflow:auto}.attack-details-table .table-note{padding:.5rem .75rem;font-size:.75rem;color:var(--text-translucent);border-top:1px solid var(--border-color)}@media(max-width:860px){.attack-details-charts,.attack-details-controls,.attack-details-metadata{grid-template-columns:1fr}}.context-menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000}.custom-marker-menu{position:absolute;z-index:1001;pointer-events:auto;max-width:180px}.custom-marker-menu.fixed-corner{position:absolute;bottom:20px;left:20px;max-width:none;width:auto;border-radius:8px;overflow:hidden;box-shadow:0 4px 15px #0006;background-color:var(--card-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);z-index:1500;pointer-events:auto}.menu-header{background-color:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 12px;border:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;gap:2px}.marker-type{font-weight:700;font-size:.9rem;color:var(--text)}.ip-address{font-family:monospace;font-size:.85rem;color:var(--text)}.menu-content{display:flex;flex-direction:row;gap:6px;padding:8px}.menu-content .btn{padding:8px 12px;font-size:.9rem;border-radius:4px;cursor:pointer;transition:all .2s ease;border:none;white-space:nowrap;background-color:var(--button-bg);color:var(--button-text)}.menu-content .btn:hover{background-color:var(--button-hover-bg)}:root[data-theme=light] .custom-marker-menu.fixed-corner{box-shadow:0 4px 15px #00000026;background-color:#fff;border:1px solid rgba(0,0,0,.1)}:root[data-theme=light] .menu-header{background-color:#fff;border-bottom:1px solid rgba(0,0,0,.1)}:root[data-theme=light] .marker-type{color:#333}:root[data-theme=light] .ip-address{color:#666}:root[data-theme=light] .menu-content{background-color:#fff;border:1px solid rgba(0,0,0,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.security-page{position:relative;min-height:100vh;z-index:1}.security-page h1{position:relative;z-index:2;margin-bottom:1.5rem}.security-page .error-message{margin:15px auto;padding:10px 20px;border-radius:8px;background-color:#dc26261a;color:#dc2626;border:1px solid #dc2626;border-left:5px solid #dc2626;font-size:14px;font-weight:500;max-width:800px;text-align:center;box-shadow:0 4px 6px #0000001a}.security-content{display:flex;flex-direction:column;gap:20px;height:100%}.map-container{width:100%;height:600px;border-radius:var(--card-border-radius);overflow:hidden}.security-page{min-height:100vh}.security-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;margin-bottom:2rem}.security-page-header h1{margin:0 0 .5rem;font-size:2.5rem}.page-subtitle{font-size:.95rem;color:var(--text-translucent);margin:0;max-width:600px}.header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.security-map-section{margin-bottom:2rem;border-radius:.75rem;overflow:hidden;border:1px solid var(--border-color)}.security-map-section .base-card{margin-bottom:0}.map-filter-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:var(--primary-gradient);border-bottom:1px solid var(--border-color)}.map-filter-text{font-size:.875rem;color:var(--text);font-weight:500}.map-filter-text strong{font-family:monospace;font-weight:700;color:var(--text)}.map-filter-clear{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.375rem;background-color:var(--card-bg-hover);color:var(--text);border:1px solid var(--border-color);cursor:pointer;transition:all .2s ease}.map-filter-clear:hover{background-color:var(--card-bg);border-color:var(--border-active);transform:translateY(-1px)}.map-warning{display:flex;align-items:center;gap:1.5rem;padding:3rem;background:var(--card-bg-hover);border-radius:.75rem;min-height:500px;justify-content:center}.map-warning-icon{font-size:3rem;opacity:.6}.map-warning-title{font-size:1.25rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.map-warning-message{font-size:.95rem;color:var(--text-translucent);max-width:500px;line-height:1.6}.security-dashboard{display:flex;flex-direction:column;gap:1.5rem}.security-section{width:100%}.security-grid-2{display:grid;grid-template-columns:1fr;gap:1.5rem}.security-simple-layout{display:flex;flex-direction:column;gap:1.8rem}.security-simple-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.security-collapsible{border-radius:.9rem;border:1px solid var(--border-color);background:var(--card-bg);overflow:hidden}.security-collapsible-toggle{width:100%;border:none;background:transparent;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;color:var(--text);font-weight:600;cursor:pointer}.security-collapsible-toggle:hover{background:var(--card-bg-hover)}.security-collapsible-meta{font-size:.85rem;color:var(--text-translucent)}.security-collapsible-body{padding:1rem 1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}@media(min-width:1024px){.security-grid-2{grid-template-columns:1fr 1fr}}.error-banner{margin-top:1.5rem;padding:1rem 1.5rem;background-color:rgba(var(--danger-rgb),.1);border:1px solid var(--danger);border-radius:.5rem;color:var(--text);font-size:.875rem}@media(max-width:768px){.security-page-header{flex-direction:column;align-items:flex-start}.header-actions{width:100%;justify-content:flex-end}.security-page-header h1{font-size:2rem}.map-warning{flex-direction:column;text-align:center;padding:2rem;min-height:400px}}.security-page *{transition:background-color .2s ease,border-color .2s ease,color .2s ease}label{display:inline-block;font-weight:500}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;box-sizing:border-box;padding:8px 30px 8px 12px;background-color:var(--input-bg, rgba(0, 0, 0, .2));border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:4px;color:var(--text-color, var(--text));font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgba(255, 255, 255, 0.7)'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:1em}.light-mode select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgba(0, 0, 0, 0.65)'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E")}select option{background-color:var(--dropdown-bg);color:var(--dropdown-text)}input[type=text]{width:100%;padding:8px 12px;box-sizing:border-box;background-color:#0003;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--text);font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}input[type=color]{width:80px;height:2.5rem;box-sizing:border-box;vertical-align:middle;border:1px solid rgba(255,255,255,.1);border-radius:4px;background-color:#0003}select:focus,input[type=text]:focus{border-color:rgba(var(--primary-rgb, 0,123,255),.7);outline:none;box-shadow:0 0 0 2px rgba(var(--primary-rgb, 0,123,255),.15)}input[type=text]::placeholder,textarea::placeholder{color:var(--text-translucent);opacity:1}input[type=text]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:var(--text-translucent)}input[type=text]::-moz-placeholder,textarea::-moz-placeholder{color:var(--text-translucent);opacity:1}input[type=text]:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--text-translucent)}input[type=text]::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--text-translucent)}.form-input{margin:0}.input-inline{display:flex;align-items:center;gap:.5rem;width:100%}.form-control{margin:0}.full-width{width:100%;min-width:0;box-sizing:border-box;display:block}.form-row{display:flex;align-items:center;padding:0 .5rem .5rem 0!important;margin:0!important}.form-row,.form-group{display:flex;align-items:center}.form-row label,.form-group label{min-width:120px;text-align:left}.form-row.toggle,.form-group.toggle{align-items:center}.invisible{visibility:hidden}.btn.add{background:var(--glass);opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:all .2s ease;justify-self:right}.btn.add:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.add:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.add:disabled{opacity:.2;cursor:not-allowed}.btn.add:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.wireguard-page{max-width:1200px;margin:0 auto;padding:20px;position:relative;z-index:1}.view-header{margin-bottom:20px}.action-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background-color:--card-bg;padding:15px;border-radius:8px;box-shadow:0 2px 4px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.search-add-bar{display:flex;flex-grow:1;gap:15px;background-color:--card-bg;color:--card-bg}.wireguard-search-add-input,.wireguard-search-input{flex-grow:1;min-width:250px}.form-input{background-color:var(--card-bg);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;border:#555}.client-grid-section{margin-top:20px}.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.client-details{flex-grow:1}.card-actions{display:flex;flex-wrap:wrap;gap:10px;width:100%}.card-actions .btn{font-size:.9rem;width:100%}.qr-code-container{display:flex;justify-content:center;align-items:center;min-height:300px}.qr-canvas{max-width:100%;border:1px solid #eee;padding:10px;background-color:#fff}.loading-state,.error-state,.empty-state{text-align:center;padding:40px 20px;border-radius:8px;background-color:--card-bg;box-shadow:0 2px 4px #0000001a;margin:20px 0}.loading-state{color:var(--text-color, #555)}.error-state{color:var(--danger-color, #dc3545)}.empty-state{color:var(--text-muted, #888)}.search-bar{display:flex;width:100%;align-items:center}.search-bar-input{flex:1 1 100%;min-width:0;width:100%}.search-bar button{flex:0 0 auto}.search-bar-action{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-right:0rem}.search-bar-input:focus{border-color:rgba(var(--primary-rgb, 0,123,255),.7);outline:none;box-shadow:0 0 0 2px rgba(var(--primary-rgb, 0,123,255),.15)}.btn.edit{background:var(--glass);opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:all .2s ease}.btn.edit:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.edit:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.edit:disabled{opacity:.2;cursor:not-allowed}.btn.edit:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.toggle{display:flex;align-items:center;justify-content:center;opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.toggle.success,.btn.toggle.primary{background:linear-gradient(135deg,#0afd50e6,#019d32f2)}.btn.toggle.secondary{background:linear-gradient(135deg,#fd0a0ae6,#9d0101f2)}.btn.toggle:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.toggle:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.toggle:disabled{opacity:.2;cursor:not-allowed}.btn.toggle:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.toggle .toggle-icon{display:flex;align-items:center;justify-content:center;font-size:1em;width:1em;height:1em;transition:transform .3s cubic-bezier(.4,0,.2,1)}.btn.toggle.secondary .toggle-icon{transform:scaleX(-1)}.btn.delete{color:var(--text);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:.5rem;border-radius:4px;background:var(--glass);cursor:pointer;border:none;outline:none;transition:all .2s ease-in-out;position:relative;box-shadow:0 0 0 var(--shadow-color);margin-left:0rem}.btn.delete:hover{transform:translateY(-2px);background-color:var(--error-color);box-shadow:0 4px 8px var(--shadow-color)}.btn.delete:active{transform:translateY(1px);background-color:var(--error-color)}.btn.delete:disabled{opacity:.1;background:var(--glass)}.btn.delete:disabled:hover{transform:translateY(0);background:var(--glass);box-shadow:0 0 0 var(--shadow-color)}.proxy-host-card-wrapper{height:100%;display:flex}.proxy-host-card-wrapper .base-card{display:flex;flex-direction:column;width:100%}.proxy-host-card-wrapper .card-content{display:flex;flex-direction:column;flex:1}.proxy-host-card-wrapper .npm-card-content{flex:1;display:flex;flex-direction:column;margin-bottom:.75rem}.proxy-host-card-wrapper .npm-card-actions{margin-top:auto}.redirection-host-card-wrapper{height:100%;display:flex}.redirection-host-card-wrapper .base-card{display:flex;flex-direction:column;width:100%}.redirection-host-card-wrapper .card-content{display:flex;flex-direction:column;flex:1}.redirection-host-card-wrapper .npm-card-content{flex:1;display:flex;flex-direction:column;margin-bottom:.75rem}.redirection-host-card-wrapper .npm-card-actions{margin-top:auto}.access-list-card-wrapper{height:100%;display:flex}.access-list-card-wrapper .base-card{display:flex;flex-direction:column;width:100%}.access-list-card-wrapper .card-content{display:flex;flex-direction:column;flex:1}.access-list-card-wrapper .npm-card-content{flex:1;display:flex;flex-direction:column;margin-bottom:.75rem}.access-list-card-wrapper .npm-card-actions{margin-top:auto}.form-group.toggle{display:flex;flex-direction:row;align-items:center;margin-bottom:1rem;justify-content:flex-start}.form-group.toggle label{margin-bottom:0;display:flex;align-items:center;cursor:pointer}.form-group.toggle .toggle-switch{position:relative;display:inline-block;width:50px;height:24px}.form-group.toggle .toggle-switch input[type=checkbox]:checked+.slider{opacity:.7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--toggle-bg-enabled)}.form-group.toggle .toggle-switch input[type=checkbox]:checked+.slider:before{transform:translate(25px);background:var(--toggle-dot-enabled);transition:.3s ease}.form-group.toggle .toggle-switch input[type=checkbox]:checked+.slider:hover:before{transform:translate(25px) scale(1.1);transition:.3s ease;box-shadow:0 0 4px 4px var(--primary-gradient)}.form-group.toggle .toggle-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:.4s;border-radius:24px;border-top:1px solid rgba(255,255,255,.1);background:var(--toggle-bg-disabled);border-left:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.6}.form-group.toggle .toggle-switch .slider:before{display:flex;content:"";height:1.4rem;width:1.4rem;background:var(--toggle-dot-disabled);transition:.3s ease;border-radius:50%;box-shadow:0 2px 3px #0000004d;transform:scale(.95)}.form-group.toggle .toggle-label{margin-left:.5rem;-webkit-user-select:none;user-select:none;color:var(--text)}.form-group.toggle .toggle-switch .slider:hover{opacity:1}.form-group.toggle .toggle-switch .slider:hover input[type=checkbox]:disabled+.slider:before{box-shadow:0 0 4px 4px var(--glass)}.tabs{display:flex;margin-bottom:1rem;border-bottom:1px solid var(--border-color)}.tab-link{margin-right:.5rem;padding:.5rem 1rem;border-radius:.25rem .25rem 0 0!important;border-bottom:none!important;position:relative;bottom:-1px;background:transparent;transition:all .2s ease;font-weight:400;cursor:pointer}.tab-link.active{border-bottom:3px solid var(--primary)!important;font-weight:700;background:var(--card-bg)}.tab-link.disabled,.npm-tab.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.tab-content{padding:1rem 0}.tab-content.hidden{display:none}.ProxyHostModal,.proxy-host-modal,.modal{z-index:9999!important}.AccessListModal,.access-list-modal,.modal{z-index:9999!important}.access-list-modal-overlay,.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;z-index:9998!important}.ConfirmationModal,.confirmation-modal,.modal{z-index:9999!important}.confirmation-modal-overlay,.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;z-index:9998!important}.npm-modal{max-width:70%;padding:1rem;margin:0 auto}.npm-page{width:100%;max-width:1200px;margin:0 auto}.npm-view-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.npm-tabs{display:flex;margin-bottom:1.5rem;overflow-x:auto;border-bottom:1px solid var(--border-color)}.npm-tab{padding:.75rem 1.25rem;cursor:pointer;border-bottom:2px solid transparent;font-weight:500;white-space:nowrap;color:var(--text-secondary);transition:all .2s ease}.npm-tab:hover{background-color:rgba(var(--primary-rgb),.05);color:var(--text-primary)}.npm-tab.active{border-bottom:2px solid var(--primary);color:var(--primary)}.npm-search-bar{position:relative;margin-bottom:1.5rem;width:100%}.npm-search-bar input{width:100%;border:1px solid var(--border-color);border-radius:.5rem;background-color:var(--card-bg)}.npm-search-bar i{position:absolute;left:.75rem;color:var(--text-secondary)}.npm-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-bottom:1.5rem}.npm-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem}.npm-stat-card{background:var(--card-bg);border-radius:.5rem;padding:1.25rem;box-shadow:var(--card-shadow);display:flex;flex-direction:column;border-top:3px solid var(--primary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.npm-stat-card.warning{border-top-color:var(--warning)}.npm-stat-card.danger{border-top-color:var(--danger)}.npm-stat-card h3{font-size:1rem;margin:0 0 .5rem;color:var(--text-secondary)}.npm-stat-card span{font-size:2rem;font-weight:600;color:var(--text-primary)}.npm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;align-items:stretch}.npm-grid>*{min-height:100%}.npm-status-indicator{width:10px;height:10px;border-radius:50%;display:inline-block}.npm-status-indicator.active{background-color:var(--success)}.npm-status-indicator.inactive{background-color:var(--text-tertiary)}.status-indicator{width:10px;height:10px;border-radius:50%;margin-left:auto}.status-indicator.active{background-color:var(--success)}.status-indicator.inactive{background-color:var(--text-tertiary)}.expiry-indicator{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.expiry-indicator.valid{background-color:rgba(var(--success-rgb),.1);color:var(--success)}.expiry-indicator.warning{background-color:rgba(var(--warning-rgb),.1);color:var(--warning)}.expiry-indicator.expired{background-color:rgba(var(--danger-rgb),.1);color:var(--danger)}.npm-table-container{width:100%;overflow-x:auto;background:var(--card-bg);border-radius:.5rem;box-shadow:var(--card-shadow)}.npm-table{width:100%;border-collapse:collapse}.npm-table th,.npm-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.npm-table th{font-weight:600;color:var(--text-secondary);background-color:var(--bg-hover)}.npm-table tbody tr:hover{background-color:var(--bg-hover)}.npm-empty-state{padding:4rem 2rem;text-align:center;border-radius:.5rem;background:var(--card-bg);box-shadow:var(--card-shadow)}.npm-empty-state i{font-size:3rem;margin-bottom:1rem;color:var(--text-tertiary)}.npm-empty-state p{font-size:1.125rem;color:var(--text-secondary);margin:.5rem 0}.npm-loading-state{padding:4rem 2rem;text-align:center;border-radius:.5rem;background:var(--card-bg);box-shadow:var(--card-shadow)}.npm-loading-state i{font-size:2rem;margin-bottom:1rem;color:var(--primary);animation:spin 1.5s linear infinite}.npm-page .button-group{display:flex;gap:1rem;align-items:center}.npm-card-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min-content,1fr));gap:.5rem}.searchbar{display:flex;flex-shrink:0;align-items:flex-start;height:100%}.searchbar-no-shrink{display:flex;align-items:flex-start}.certificate-card-wrapper{height:100%;display:flex}.certificate-card-wrapper .base-card{display:flex;flex-direction:column;width:100%}.certificate-card-wrapper .card-content{display:flex;flex-direction:column;flex:1}.npm-card-header{margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.npm-card-header h3{margin:0 0 .25rem;word-break:break-word;flex:1}.npm-card-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.npm-card-content{flex:1;display:flex;flex-direction:column;margin-bottom:.75rem}.npm-card-content p{margin:.25rem 0}.npm-card-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min-content,1fr));gap:.5rem;border-top:1px solid var(--border-color);padding-top:.75rem;margin-top:auto}.CertificateModal,.certificate-modal,.modal{z-index:9999!important}.modal-container{z-index:99999999!important}.modal-card-content{background:var(--card-bg-hover);z-index:99999999!important}.UploadCertificateModal,.upload-certificate-modal,.modal{z-index:9999!important}.upload-certificate-modal-overlay,.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;z-index:9998!important}.btn.warning{background:linear-gradient(135deg,#e67e22cc,#d35400cc,#af4100cc);color:var(--text);opacity:.6;background-color:var(--warning);box-shadow:none;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);margin:.5rem;transition:all .2s ease}.btn.warning:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.warning:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.warning:disabled{opacity:.2;cursor:not-allowed}.btn.warning:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.service-card{display:flex;flex-direction:column;position:relative;margin-bottom:1rem;padding:1rem;border-radius:8px;overflow:hidden;opacity:1;transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease,background-color .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-translucent);z-index:1}.service-card:hover{color:var(--text);z-index:30;transform:translateY(-2px);box-shadow:0 6px 12px var(--shadow-color);background-color:var(--card-bg-hover);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color)}.service-card .card-header{display:flex;align-items:center;background-color:transparent!important;border:none!important;border-bottom:none!important;margin-bottom:0;padding:0;box-shadow:none!important}.service-card .card-header>.card-title{display:flex;align-items:center;gap:.5rem;color:var(--text-color);background-color:transparent;flex-grow:0;width:auto}.service-card .card-header>.card-actions{display:flex;gap:.5rem;border:none!important;border-top:none!important;border-bottom:none!important;background-color:transparent!important;padding:0;flex-shrink:0;margin:0 0 0 auto;width:auto}.service-card .card-content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}@media(max-width:768px){.service-footer{flex-direction:column;align-items:stretch;gap:.75rem;min-height:auto}.service-status{justify-content:center}.service-actions{justify-content:center;gap:.5rem}}.services-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.services-page-header .page-title{margin:0}.services-page-actions{display:flex;align-items:center;gap:1rem}.service-search-input{flex-grow:1;min-width:250px;padding:.6rem 1rem;border:1px solid var(--border-color);border-radius:var(--border-radius, 8px);background-color:var(--input-bg, rgba(255, 255, 255, .1));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text);font-size:.95rem;transition:all .2s ease}.service-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring-color, rgba(var(--primary-rgb, 0, 123, 255), .25))}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.no-services-message,.loading-services-message,.error-services-message{grid-column:1 / -1;text-align:center;padding:2rem;color:var(--text-muted);font-style:italic;background-color:var(--card-bg);border-radius:var(--border-radius);border:1px solid var(--border-color);margin:1.5rem 0}.no-services-message i,.loading-services-message i,.error-services-message i{font-size:1.5rem;margin-bottom:.5rem;display:block}.service-header{margin-bottom:1rem;padding:0}.service-title{flex:1}.service-title h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary, var(--text));word-wrap:break-word;white-space:normal;overflow:visible}.service-controls{display:flex;align-items:center;gap:.5rem}.service-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem;margin-top:auto;min-height:60px;border-top:1px solid var(--border-color)}.additional-status{font-size:.8rem;color:var(--text-muted);margin-left:.5rem}.service-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.service-actions button,.service-actions .btn{min-width:auto;padding:.4rem .8rem!important;height:auto!important;margin:0!important;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.service-actions button .button-icon,.service-actions .btn .button-icon{margin-right:.4rem}@media(max-width:768px){.services-grid{grid-template-columns:1fr}.service-footer{flex-direction:column;align-items:stretch;gap:.75rem;min-height:auto}.service-status{justify-content:center}.service-actions{justify-content:center;gap:.5rem}}.logs-container{flex-grow:1;overflow-y:auto;background-color:var(--input-bg);border-radius:4px;padding:1rem;border:1px solid var(--border-color);min-height:300px}.logs-content{white-space:pre-wrap;word-break:break-all;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.loading-logs{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-style:italic}.loading-logs svg{margin-right:.5rem}.error-message{color:var(--error-color);padding:1rem;text-align:center}.log-controls{display:flex;align-items:center;gap:1rem}.btn.search{background:linear-gradient(var(--glass-gradient));opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.search:hover{opacity:1;background:linear-gradient(var(--success-color));transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.search:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.search:disabled{opacity:.6;color:var(--text);cursor:not-allowed}.btn.search:disabled:hover{transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.search span{opacity:1}.btn.refresh{background:linear-gradient(var(--glass-gradient));opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.refresh:hover{opacity:1;background:linear-gradient(var(--success-color));transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.refresh:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.refresh:disabled{opacity:.2;cursor:not-allowed}.btn.refresh:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.key{background:linear-gradient(135deg,#dbaa19e6,#e28a2cf2);opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.key:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.key:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.key:disabled{opacity:.2;cursor:not-allowed}.btn.key:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.user{background:linear-gradient(135deg,#19db8ae6,#2ce2b7f2);opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.user:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.user:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.user:disabled{opacity:.2;cursor:not-allowed}.btn.user:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.delete-color{color:var(--text);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:.5rem;border-radius:4px;background:var(--error-color);cursor:pointer;border:none;outline:none;transition:all .2s ease-in-out;position:relative;box-shadow:0 0 0 var(--shadow-color);opacity:.6}.btn.delete-color:hover{opacity:1;transform:translateY(-2px);background-color:var(--error-color);box-shadow:0 4px 8px var(--shadow-color)}.btn.delete-color:active{opacity:1;transform:translateY(1px);background-color:var(--error-color)}.btn.mail-quota{color:var(--text);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:.5rem;border-radius:4px;background:#e50cfd;cursor:pointer;border:none;outline:none;transition:all .2s ease-in-out;position:relative;box-shadow:0 0 0 var(--shadow-color);opacity:.6}.btn.mail-quota:hover{opacity:1;transform:translateY(-2px);background-color:#e50cfd;box-shadow:0 4px 8px var(--shadow-color)}.btn.mail-quota:active{opacity:1;transform:translateY(1px);background-color:#e50cfd}.btn.totp{background-color:#4b4b4b;color:var(--text);border:1px solid var(--warning-dark)}.btn.totp:hover{background-color:#4b4b4b;border-color:var(--warning-darker);transform:translateY(-1px)}.btn.totp:active{background-color:var(--warning-darker);transform:translateY(0)}.btn.totp i{color:var(--text-primary)}.btn.totp.enabled{background-color:#007bff;color:#fff;border:1px solid #0056b3}.btn.totp.enabled:hover{background-color:#0056b3;border-color:#004085;transform:translateY(-1px)}.btn.totp.enabled:active{background-color:#004085;transform:translateY(0)}.btn.totp.enabled i{color:#fff}.btn.mail-password{color:var(--text);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:.5rem;border-radius:4px;background:#ff8c00;cursor:pointer;border:none;outline:none;transition:all .2s ease-in-out;position:relative;box-shadow:0 0 0 var(--shadow-color);opacity:.6}.btn.mail-password:hover{opacity:1;transform:translateY(-2px);background-color:#e67e00;box-shadow:0 4px 8px var(--shadow-color)}.btn.mail-password:active{opacity:1;transform:translateY(1px);background-color:#cc7000}.btn.power{background:linear-gradient(var(--glass-gradient));opacity:.6;color:var(--text);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.btn.power:hover{opacity:1;background:linear-gradient(var(--error-color));transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.power:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.power:disabled{opacity:.2;cursor:not-allowed}.btn.power:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.loading-spinner,.error-message{display:flex;justify-content:center;align-items:center;padding:2rem;font-size:1.1rem;color:var(--text-secondary)}.loading-spinner .svg-inline--fa{margin-right:.5rem;animation:fa-spin 1s infinite linear}.error-message{color:var(--danger);flex-direction:column;text-align:center}.error-message .svg-inline--fa{font-size:1.5rem;margin-bottom:.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.section-header h2{margin:0;font-size:1.3rem;color:var(--text)}#role_selection{width:100%;min-height:150px;max-height:300px;overflow-y:auto;border:1px solid var(--border-color);border-radius:4px;padding:.5rem;background-color:var(--input-bg);color:var(--text)}#role_selection option{padding:.5rem;margin-bottom:.25rem;border-radius:3px;cursor:pointer}#role_selection option:checked{background-color:var(--primary);color:#fff}#role_selection option:hover:not(:checked){background-color:var(--hover-bg)}#roleModalUserInfo{margin-bottom:1rem;font-weight:700;color:var(--text-secondary)}.modal-body .form-group{margin-bottom:1rem}.modal-body label{display:block;margin-bottom:.3rem;font-weight:500;font-size:.9rem}.modal-body input[type=email],.modal-body input[type=password]{width:100%;padding:.6rem;border:1px solid var(--border-color);border-radius:4px;background-color:var(--input-bg);color:var(--text);font-size:.95rem}.modal-body input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)}.section-actions{display:flex;align-items:center}.user-card,.session-card{background:var(--card-bg);border-radius:8px;padding:1.25rem;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;position:relative;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--border-color);overflow:visible;transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease,background-color .3s ease;color:var(--text-translucent);min-height:fit-content}.user-card:hover,.session-card:hover{transform:translateY(-3px);box-shadow:0 6px 12px var(--shadow-color);background-color:var(--card-bg-hover);color:var(--text);z-index:30}.user-card-header{display:flex;align-items:center;margin-bottom:.75rem}.user-avatar{background:var(--primary);color:#fff;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:.75rem;flex-shrink:0}.user-avatar .fa-user{font-size:1.1rem}.user-info{flex-grow:1;min-width:0}.user-roles-section{margin:.75rem 0;padding:.5rem;background-color:rgba(var(--primary-rgb, 45, 90, 79),.08);border-radius:4px;border:1px solid rgba(var(--primary-rgb, 45, 90, 79),.15)}.role-label{font-weight:600;color:var(--text-secondary);margin-right:.35rem;font-size:.8rem}.role-value{font-size:.85rem;font-weight:500;color:var(--primary)}.user-card-actions-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;margin-top:auto;padding-top:1rem;padding-bottom:.5rem;border-top:1px solid var(--border-color)}.user-card-actions-row>.user-card-actions{flex:1 1 100%}.user-status,.user-totp-status{font-size:.8rem;padding:.35rem .75rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-weight:500;min-height:2.25rem;white-space:nowrap}.user-status.active{background-color:#4caf5026;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.user-status.inactive{background-color:#9e9e9e26;color:#9e9e9e;border:1px solid rgba(158,158,158,.3)}.user-status .fa-circle-check,.user-status .fa-circle-xmark{margin-right:.3rem;font-size:.7rem}.user-totp-status{font-size:.75rem;border-radius:1rem;border:1px solid;transition:all .3s ease}.user-totp-status.totp-enabled{background-color:#28a7451a;border-color:#28a7454d;color:#28a745}.user-totp-status.totp-disabled{background-color:#6c757d1a;border-color:#6c757d4d;color:#6c757d}.user-totp-status .svg-inline--fa{margin-right:.35rem;font-size:.8rem}.user-card-actions{display:flex;width:100%;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem}.user-card-actions .btn,.session-card-actions .btn{flex:0 0 auto;width:44px;height:44px;border-radius:6px;padding:0;display:inline-flex;align-items:center;justify-content:center}.user-card-actions .btn.icon svg,.user-card-actions .btn.icon .svg-inline--fa{font-size:.8rem;vertical-align:middle}.session-card.current-session{border-left:4px solid var(--primary);background-color:rgba(var(--primary-rgb, 45, 90, 79),.05)}.current-badge{position:absolute;top:.75rem;right:.75rem;background-color:var(--primary);color:#fff;font-size:.7rem;padding:2px 8px;border-radius:12px;font-weight:700;z-index:2}.session-device{display:flex;align-items:center;margin-bottom:1rem}.device-icon{width:36px;height:36px;background-color:var(--bg-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:.85rem;flex-shrink:0;border:1px solid var(--border-color)}.device-icon .svg-inline--fa{font-size:1.2rem;color:var(--primary)}.device-info{display:flex;flex-direction:column;min-width:0}.device-name{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.device-os{color:var(--text-secondary);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-details{margin-bottom:1rem;font-size:.85rem;color:var(--text-secondary)}.session-detail{display:flex;align-items:center;margin-bottom:.4rem}.session-detail .svg-inline--fa{width:16px;text-align:center;margin-right:.6rem;color:var(--icon-color)}.session-detail span{flex-grow:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.session-actions{display:flex;justify-content:flex-end;margin-top:auto}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:1.5rem}@media(max-width:1200px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.card-grid{grid-template-columns:1fr}}.card-section{margin-bottom:1.5rem;padding:0 1rem}.card-section:last-child{margin-bottom:0}.service-status{display:flex;align-items:center}.status-indicator{display:flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:16px;background:var(--bg-subtle);font-size:.9rem;width:auto;height:auto;min-width:120px}.status-icon{font-size:.9rem;display:inline-block;margin-right:.25rem}.status-text{white-space:nowrap}.status-icon.running{color:var(--success)}.status-icon.installed{color:var(--warning)}.status-icon.not-installed{color:var(--danger)}.domain-group{margin-bottom:2rem;position:relative}.domain-group:first-child .domain-separator{margin-top:.5rem}.domain-separator{display:flex;align-items:center;margin:1.5rem 0 1rem;gap:1rem;width:100%;position:relative;z-index:1}.domain-line{flex:1;height:1px!important;background:var(--border-color)!important;min-width:20px;border:none!important;outline:none!important;box-shadow:none!important;position:relative}.domain-line:before,.domain-line:after{display:none!important}.domain-label{font-weight:600;color:var(--text);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;padding:0 1rem;background:var(--card-bg);white-space:nowrap;flex-shrink:0;position:relative;z-index:2}.logfiles-container{margin-bottom:1rem}.logfile-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin-bottom:.5rem;background-color:var(--bg-lighter);border-radius:6px;border:1px solid var(--border-color)}.logfile-path{font-family:var(--font-mono);font-size:.9rem;color:var(--text-color)}.empty-state{padding:2rem;text-align:center;color:var(--text-secondary);background-color:var(--bg-lighter);border-radius:6px;border:1px dashed var(--border-color)}.form-group input[type=text]{width:100%!important;min-width:0!important;box-sizing:border-box;padding:.75rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-color);font-family:var(--font-mono)}.form-select{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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;background-size:1em;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.input-row{display:flex;align-items:center;gap:.75rem}.input-row .form-input{flex:1 1 auto;min-width:0}.w-100{width:100%!important}.form-row{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.form-row label{flex:0 0 auto;margin-bottom:0;font-weight:500;color:var(--text-color)}.form-row .form-input,.form-row .form-select{flex:1 1 auto;min-width:0;width:100%}.color-presets{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.color-preset{width:48px;height:48px;border-radius:12px;border:3px solid transparent;cursor:pointer;transition:all .2s ease;position:relative;box-shadow:0 2px 4px #0000001a}.color-preset:hover{transform:scale(1.1);box-shadow:0 4px 8px #00000026}.color-preset:disabled{opacity:.5;cursor:not-allowed;transform:none}.color-preset.active{border-color:var(--text-color);box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--text-color)}.color-preset.active:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:1.25rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3)}.color-preset-label{font-size:.75rem;color:var(--text-secondary);text-align:center;margin-top:.25rem}.section-divider{margin:1.5rem 0;height:1px;background-color:var(--border-color)}.toggle-option{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.toggle-switch{position:relative;display:inline-block;width:48px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:24px}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary)}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-label{font-size:1rem;color:var(--text-color)}.speed-slider label{font-size:.95rem;color:var(--text-color)}.speed-slider input[type=range]{width:100%}.speed-slider{margin-top:1rem}.speed-slider>div{display:flex;justify-content:space-between;font-size:.8em;color:var(--text-muted)}.form-group input[type=text],.form-group select,.form-group textarea{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-color);font-family:var(--font-mono);margin-bottom:.5rem}.section-description{margin-bottom:1rem;font-size:.9rem;color:var(--text-secondary)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}.form-group input[type=text]{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-color);font-family:var(--font-mono)}.form-group input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)}.form-select{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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;background-size:1em;cursor:pointer}.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)}.loading-indicator{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-secondary);font-size:1.2rem}.ldap-settings-card{background:var(--card-bg, #fff);border-radius:10px;box-shadow:0 2px 12px #00000014;padding:2rem;margin:1.5rem 0;max-width:600px;width:100%;transition:box-shadow .2s}.ldap-settings-card:hover{box-shadow:0 4px 24px #00000021}.ldap-settings-card h2{margin-top:0;font-size:1.5rem;color:var(--primary-color, #2d5a4f)}.ldap-search-results{list-style:none;padding-left:0;margin:.5em 0 0}.ldap-search-results li{padding:2px 0;font-size:.95em}.form-group input[type=text],.form-group select,.form-group textarea{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color, #d1d5db);background-color:var(--input-bg, #f9fafb);color:var(--text-color, #222);font-family:var(--font-mono, monospace);margin-bottom:.5rem;transition:border-color .2s,box-shadow .2s}.form-select{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color)!important;background-color:var(--input-bg)!important;color:var(--text-color)!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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")!important;background-repeat:no-repeat!important;background-position:right .75rem center!important;background-size:1em!important;cursor:pointer;font-family:inherit!important;margin-bottom:.5rem;transition:border-color .2s,box-shadow .2s}.form-select:disabled{opacity:.6!important;cursor:not-allowed!important}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color, #2d5a4f);outline:none;box-shadow:0 0 0 2px #2d5a4f1a}.ldap-settings-card button{background:var(--primary-color, #2d5a4f);color:#fff;border:none;border-radius:4px;padding:.6em 1.2em;font-size:1em;cursor:pointer;transition:background .2s;margin-top:.5em}.ldap-settings-card button:hover{background:#1e3d34}.ldap-settings-card .error{color:#d32f2f;background:#fff0f0;border:1px solid #f8d7da;padding:.5em 1em;border-radius:4px;margin-bottom:1em}.ldap-settings-card .success{color:#388e3c;background:#f0fff0;border:1px solid #c8e6c9;padding:.5em 1em;border-radius:4px;margin-bottom:1em}.oidc-provider-card{max-width:100%}.oidc-provider-card .status-header{margin-bottom:1rem}.oidc-provider-card .status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-weight:500}.oidc-provider-card .status-indicator.running{background:#4caf5026;color:#2e7d32}.oidc-provider-card .status-indicator.stopped{background:#9e9e9e26;color:#757575}.oidc-provider-card .status-indicator .runtime{font-weight:400;opacity:.8;margin-left:.25rem}.oidc-provider-card .ldap-warning{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:#ff98001a;border:1px solid rgba(255,152,0,.3);border-radius:8px;color:var(--text-color)}.oidc-provider-card .ldap-warning .warning-icon{color:#f57c00;font-size:1.5rem;flex-shrink:0}.oidc-provider-card .ldap-warning p{margin:.5rem 0 0;opacity:.9}.oidc-provider-card .url-section{margin:1.5rem 0;padding:1rem;background:var(--card-inner-bg, rgba(0, 0, 0, .03));border-radius:8px}.oidc-provider-card .url-row{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.oidc-provider-card .url-row:last-child{margin-bottom:0}.oidc-provider-card .url-row label{font-weight:500;font-size:.85rem;color:var(--text-muted)}.oidc-provider-card .url-value{display:flex;align-items:center;gap:.5rem}.oidc-provider-card .url-value code{flex:1;padding:.5rem .75rem;background:var(--input-bg);border:1px solid var(--border-color);border-radius:4px;font-family:var(--font-mono);font-size:.85rem;word-break:break-all}.oidc-provider-card .copy-btn{padding:.5rem .75rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:opacity .2s}.oidc-provider-card .copy-btn:hover{opacity:.85}.oidc-provider-card .action-buttons{margin-top:1.5rem;display:flex;gap:.75rem}.oidc-provider-card .action-buttons.mt-4,.oidc-provider-card .clients-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.oidc-provider-card .clients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.oidc-provider-card .clients-header h3{margin:0;font-size:1.1rem}.oidc-provider-card .no-clients{padding:2rem;text-align:center;color:var(--text-muted);background:var(--card-inner-bg, rgba(0, 0, 0, .03));border-radius:8px}.oidc-provider-card .clients-table{width:100%;border-collapse:collapse;font-size:.9rem}.oidc-provider-card .clients-table th,.oidc-provider-card .clients-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.oidc-provider-card .clients-table th{font-weight:600;background:var(--card-inner-bg, rgba(0, 0, 0, .03))}.oidc-provider-card .clients-table code{font-family:var(--font-mono);font-size:.8rem;background:var(--input-bg);padding:.15rem .4rem;border-radius:3px}.oidc-provider-card .copy-btn-small{padding:.25rem .4rem;margin-left:.5rem;background:transparent;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:3px;cursor:pointer;font-size:.75rem;transition:all .2s}.oidc-provider-card .copy-btn-small:hover{background:var(--primary-color);color:#fff}.oidc-provider-card .redirect-uris{list-style:none;padding:0;margin:0;font-size:.8rem}.oidc-provider-card .redirect-uris li{padding:.1rem 0;word-break:break-all}.oidc-provider-card .action-buttons-group{display:flex;gap:.5rem;align-items:center}.oidc-provider-card .regenerate-btn{padding:.4rem .6rem;background:transparent;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:4px;cursor:pointer;transition:all .2s}.oidc-provider-card .regenerate-btn:hover{background:var(--primary-color);color:#fff}.oidc-provider-card .delete-btn{padding:.4rem .6rem;background:transparent;color:#d32f2f;border:1px solid #d32f2f;border-radius:4px;cursor:pointer;transition:all .2s}.oidc-provider-card .delete-btn:hover{background:#d32f2f;color:#fff}.oidc-provider-card .new-client-secret-banner{margin:1rem 0;padding:1rem;background:#4caf501a;border:2px solid #4caf50;border-radius:8px}.oidc-provider-card .new-client-secret-banner .banner-header{display:flex;align-items:center;gap:.5rem;color:#2e7d32;margin-bottom:.5rem}.oidc-provider-card .new-client-secret-banner p{margin:.5rem 0 1rem;color:#d32f2f;font-weight:500}.oidc-provider-card .secret-display{background:var(--input-bg);padding:1rem;border-radius:6px;margin-bottom:1rem}.oidc-provider-card .secret-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.oidc-provider-card .secret-row:last-child{margin-bottom:0}.oidc-provider-card .secret-row label{font-weight:500;min-width:100px}.oidc-provider-card .secret-row code{flex:1;font-family:var(--font-mono);font-size:.85rem;word-break:break-all}.oidc-provider-card .docs-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.oidc-provider-card .docs-section h3{margin:0 0 1rem;font-size:1.1rem}.oidc-provider-card .doc-accordion{border:1px solid var(--border-color);border-radius:6px;margin-bottom:.5rem;overflow:hidden}.oidc-provider-card .doc-header{width:100%;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--card-inner-bg, rgba(0, 0, 0, .03));border:none;cursor:pointer;font-size:.95rem;font-weight:500;color:var(--text-color);text-align:left;transition:background .2s}.oidc-provider-card .doc-header:hover{background:var(--hover-bg, rgba(0, 0, 0, .05))}.oidc-provider-card .doc-content{padding:1rem;background:var(--card-bg)}.oidc-provider-card .doc-content ol{margin:0;padding-left:1.5rem}.oidc-provider-card .doc-content li{margin-bottom:.5rem}.oidc-provider-card .endpoint-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.oidc-provider-card .endpoint{display:flex;gap:.5rem;align-items:baseline}.oidc-provider-card .endpoint label{font-weight:500;min-width:100px}.oidc-provider-card .endpoint code{font-family:var(--font-mono);font-size:.85rem;background:var(--input-bg);padding:.2rem .5rem;border-radius:3px}.oidc-provider-card .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.oidc-provider-card .modal-content{background:var(--card-bg);padding:1.5rem;border-radius:10px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.oidc-provider-card .modal-content h3{margin:0 0 1.5rem}.oidc-provider-card .modal-content .form-group{margin-bottom:1rem}.oidc-provider-card .modal-content .form-group label{display:block;margin-bottom:.5rem;font-weight:500}.oidc-provider-card .modal-content input,.oidc-provider-card .modal-content textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--input-bg);color:var(--text-color);font-family:inherit}.oidc-provider-card .modal-content textarea{resize:vertical;font-family:var(--font-mono)}.oidc-provider-card .modal-content small{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.8rem}.oidc-provider-card .modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}@media(max-width:768px){.oidc-provider-card .clients-table{font-size:.8rem}.oidc-provider-card .clients-table th,.oidc-provider-card .clients-table td{padding:.5rem}.oidc-provider-card .clients-header{flex-direction:column;gap:1rem;align-items:flex-start}.oidc-provider-card .secret-row{flex-direction:column;align-items:flex-start}.oidc-provider-card .secret-row label{min-width:auto}}.mailserver-deployment-card{margin-bottom:2rem}.deployment-start{text-align:center;padding:2rem}.deployment-description{margin-bottom:1.5rem;color:var(--text-secondary);font-size:1.1rem;line-height:1.6}.cert-info{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:2rem;padding:1rem;background-color:rgba(var(--success-color-rgb),.1);border:1px solid var(--success-color);border-radius:8px}.cert-details{width:100%;display:flex;flex-direction:column;gap:.75rem}.cert-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(var(--success-color-rgb),.2)}.cert-detail-row:last-child{border-bottom:none}.cert-label{font-weight:600;color:var(--text-color);min-width:120px;text-align:left}.cert-value{font-family:monospace;background-color:var(--bg-secondary);padding:.25rem .5rem;border-radius:4px;font-size:.9rem;flex:1;text-align:right;word-break:break-all}.cert-warning{margin-bottom:2rem;padding:1rem;background-color:rgba(var(--warning-color-rgb),.1);border:1px solid var(--warning-color);border-radius:8px;color:var(--warning-color);font-weight:500}.deployment-actions{display:flex;justify-content:center;gap:1rem}.deploy-button{font-size:1.1rem;padding:.75rem 2rem;min-width:200px}.deployment-progress-container{padding:1.5rem}.deployment-completed-container{padding:1.5rem;text-align:center}.progress-percentage{font-size:1.1rem;font-weight:600;color:var(--primary-color)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),rgba(var(--primary-color-rgb),.8));border-radius:10px;position:relative;overflow:hidden}.status-starting{color:var(--info-color)}.status-running{color:var(--warning-color)}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.log-info{background-color:rgba(var(--info-color-rgb),.1);border-left:3px solid var(--info-color)}.log-success{background-color:rgba(var(--success-color-rgb),.1);border-left:3px solid var(--success-color)}.log-warning{background-color:rgba(var(--warning-color-rgb),.1);border-left:3px solid var(--warning-color)}.log-error{background-color:rgba(var(--error-color-rgb),.1);border-left:3px solid var(--error-color)}@media(max-width:768px){.deployment-progress-container{padding:1rem}.progress-header{flex-direction:column;align-items:flex-start;gap:.5rem}.status-info{grid-template-columns:1fr}.logs-header{flex-direction:column;align-items:flex-start;gap:1rem}.logs-container{height:300px}.log-entry{flex-direction:column;gap:.5rem}.log-timestamp{min-width:auto}.cert-detail-row{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 0}.cert-label{min-width:auto;text-align:left}.cert-value{text-align:left;word-break:break-word;width:100%}}.mailserver-undeployment-card{margin-bottom:2rem}.undeployment-start{text-align:center;padding:2rem}.undeployment-description{margin-bottom:1.5rem;color:var(--text-secondary);font-size:1.1rem;line-height:1.6}.undeployment-warning{display:flex;align-items:flex-start;gap:1rem;margin-bottom:2rem;padding:1.5rem;background-color:#f443361a;border:2px solid var(--error-color);border-radius:8px;text-align:left}.warning-icon{font-size:2rem;flex-shrink:0}.warning-content h4{margin:0 0 .5rem;color:var(--error-color);font-size:1.1rem}.warning-content p{margin:0;color:var(--text-color);font-size:.95rem;line-height:1.4}.undeployment-actions{display:flex;justify-content:center;gap:1rem}.undeploy-button{font-size:1.1rem;padding:.75rem 2rem;min-width:200px}.undeployment-progress-container{padding:1.5rem}.undeployment-completed-container{padding:1.5rem;text-align:center}.completion-status{margin-bottom:2rem;padding:2rem;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.completion-icon{font-size:4rem;margin-bottom:1rem}.completion-status h3{margin:0 0 1rem;color:var(--text-color);font-size:1.5rem}.completion-time{margin:0;color:var(--text-secondary);font-size:.9rem}.completion-actions{margin-top:2rem;display:flex;justify-content:center}.close-button{font-size:1.1rem;padding:.75rem 2rem;min-width:150px}.progress-section{margin-bottom:2rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.progress-header h3{margin:0;color:var(--text-color);font-size:1.2rem}.progress-percentage{font-size:1.1rem;font-weight:600;color:var(--error-color)}.progress-bar{width:100%;height:20px;background-color:var(--bg-secondary);border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,var(--error-color),rgba(244,67,54,.8));border-radius:10px;position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.status-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;padding:1rem;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.status-item{display:flex;flex-direction:column;gap:.25rem}.status-label{font-size:.9rem;color:var(--text-secondary);font-weight:500}.status-value{font-weight:600;color:var(--text-color)}.status-starting{color:var(--warning-color)}.status-running{color:var(--error-color)}.status-completed{color:var(--success-color)}.status-failed{color:var(--error-color)}.logs-section{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.logs-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.logs-header h4{margin:0;color:var(--text-color);font-size:1.1rem}.logs-actions{display:flex;gap:.5rem}.cancel-button{font-size:.9rem;padding:.5rem 1rem}.logs-container{height:400px;overflow-y:auto;background-color:var(--bg-primary)}.logs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--text-secondary)}.loading-spinner{border:2px solid #f3f3f3;border-top:2px solid var(--error-color);border-radius:50%;width:20px;height:20px;animation:spin 1s linear infinite;margin-right:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.logs-list{padding:.5rem}.log-entry{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem;margin-bottom:.25rem;border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.4;opacity:0;animation:fadeInUp .3s ease-out forwards}.log-entry:nth-child(n){animation-delay:calc(var(--log-index, 0) * .05s)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.log-icon{flex-shrink:0;font-size:1rem}.log-timestamp{flex-shrink:0;color:var(--text-secondary);font-size:.8rem;min-width:80px}.log-message{flex:1;word-wrap:break-word;white-space:pre-wrap}.log-info{background-color:#2196f31a;border-left:3px solid var(--info-color)}.log-info .log-message{color:var(--text-color)}.log-success{background-color:#4caf501a;border-left:3px solid var(--success-color)}.log-success .log-message{color:var(--success-color);font-weight:500}.log-warning{background-color:#ff98001a;border-left:3px solid var(--warning-color)}.log-warning .log-message{color:var(--warning-color);font-weight:500}.log-error{background-color:#f443361a;border-left:3px solid var(--error-color)}.log-error .log-message{color:var(--error-color);font-weight:600}@media(max-width:768px){.undeployment-progress-container{padding:1rem}.progress-header{flex-direction:column;align-items:flex-start;gap:.5rem}.status-info{grid-template-columns:1fr}.logs-header{flex-direction:column;align-items:flex-start;gap:1rem}.logs-container{height:300px}.log-entry{flex-direction:column;gap:.5rem}.log-timestamp{min-width:auto}.undeployment-warning{flex-direction:column;text-align:center}.warning-content{text-align:left}}@media(prefers-color-scheme:dark){.progress-bar{box-shadow:inset 0 2px 4px #ffffff1a}.progress-fill:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}}.confirmation-modal .modal-body p{margin:0;color:var(--text-secondary);line-height:1.5;font-size:1rem}.confirmation-modal .modal-footer .cancel-button{background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.confirmation-modal .modal-footer .cancel-button:hover{background:var(--background-hover)}.confirmation-modal .modal-footer .confirm-button{background:var(--error-color);color:#fff;border:none}.confirmation-modal .modal-footer .confirm-button:hover{background:#d32f2f}.mailserver-settings{margin-bottom:2rem}.mailserver-status.warning{background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:4px;padding:1rem;margin:1rem 0}.mailserver-deploy{text-align:center;padding:2rem}.mailserver-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;padding:1rem}.info-section{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;padding:1rem}.info-section h3{margin:0 0 .5rem;color:var(--text-color);font-size:1rem}.blocked-domains-list{list-style:none;padding:0;margin:.5rem 0 0;max-height:200px;overflow-y:auto}.blocked-domains-list li{padding:.25rem 0;border-bottom:1px solid var(--border-color)}.blocked-domains-list li:last-child{border-bottom:none}.deployment-progress{margin-top:2rem}.progress-bar{width:100%;height:20px;background-color:var(--bg-secondary);border-radius:10px;overflow:hidden;margin-bottom:1rem}.progress-fill{height:100%;background-color:var(--primary-color);transition:width .3s ease}.deployment-logs{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:1rem;max-height:300px;overflow-y:auto;font-family:monospace}.log-entry{margin-bottom:.5rem;display:flex;gap:1rem}.log-entry .timestamp{color:var(--text-secondary);font-size:.9em;white-space:nowrap}.log-entry.error{color:var(--error-color)}.log-entry.success{color:var(--success-color)}.primary-button{background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;padding:.75rem 1.5rem;font-size:1rem;cursor:pointer;transition:background-color .2s}.primary-button:hover{background-color:var(--primary-color-hover)}.primary-button:disabled{background-color:var(--disabled-color);cursor:not-allowed}.form-select{width:100%;padding:.75rem;border-radius:4px;border:1px solid var(--border-color)!important;background-color:var(--input-bg)!important;color:var(--text-color)!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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")!important;background-repeat:no-repeat!important;background-position:right .75rem center!important;background-size:1em!important;cursor:pointer;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-select:focus{outline:none!important;border-color:var(--primary)!important;box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)!important}.form-select:disabled{opacity:.6!important;cursor:not-allowed!important;background-color:var(--input-bg-disabled, var(--input-bg))!important}@media(prefers-color-scheme:dark){.form-select{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' 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")!important}}.nextcloud-card{margin-bottom:20px}.nextcloud-card .card-title-content{display:flex;justify-content:space-between;align-items:center;width:100%}.nextcloud-card .title-left{display:flex;align-items:center;gap:10px}.nextcloud-card .title-right{font-size:.875rem;font-weight:400;color:var(--text-secondary, #6c757d)}.nextcloud-card .status-badge{padding:4px 12px;font-size:.75rem;border-radius:12px;font-weight:500}.nextcloud-card .status-running{background-color:var(--success-bg, #28a745);color:#fff}.nextcloud-card .alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;margin-bottom:16px}.nextcloud-card .alert-error{background-color:var(--danger-bg, rgba(220, 53, 69, .1));border:1px solid var(--danger, #dc3545);color:var(--danger, #dc3545)}.nextcloud-card .alert-success{background-color:var(--success-bg, rgba(40, 167, 69, .1));border:1px solid var(--success, #28a745);color:var(--success, #28a745)}.nextcloud-card .deployment-info{background-color:#0000;border-radius:8px;padding:16px;margin-bottom:16px;color:var(--text, inherit)}.dark .nextcloud-card .deployment-info{background-color:#0000}.nextcloud-card .info-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.nextcloud-card .info-row:last-child{margin-bottom:0}.nextcloud-card .info-label{font-size:.875rem;font-weight:500}.nextcloud-card .info-value{font-size:.875rem}.nextcloud-card .text-success{color:var(--success, #28a745)}.nextcloud-card .containers-list{background:#0000;margin-top:12px}.nextcloud-card .container-items{margin-top:8px}.nextcloud-card .container-item{font-size:.75rem;color:var(--text-secondary, #6c757d);margin-bottom:4px;padding:6px 10px;background-color:transparent;border-radius:4px;border-left:3px solid var(--success, #28a745)}.dark .nextcloud-card .container-item{background-color:transparent}.nextcloud-card .action-buttons{display:flex;flex-wrap:wrap;gap:8px}.nextcloud-card .btn-block{width:100%}.nextcloud-wizard-modal{max-width:800px;max-height:90vh;overflow-y:auto}.wizard-content{padding:20px}.wizard-content .text-center{text-align:center}.wizard-content .nextcloud-icon{color:var(--primary, #007bff);margin-bottom:16px}.wizard-content .mb-4{margin-bottom:16px}.wizard-title{font-size:1.5rem;font-weight:700;margin-bottom:12px}.wizard-description{color:var(--text-secondary, #6c757d);margin-bottom:24px}.dark .wizard-description{color:var(--text-dark-secondary, #9ca3af)}.info-box-success{background-color:#28a7451a;border-color:#28a7454d}.dark .info-box-success{background-color:#28a74526;border-color:#28a74566}.info-box-title{font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}.optional-services-section{margin-top:24px}.optional-services-section .section-title{font-size:1.1rem;font-weight:600;margin-bottom:6px}.optional-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.optional-service-card{border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:12px;background:#ffffff0d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;transition:border .2s ease,transform .2s ease}.optional-service-card.selected{border-color:var(--primary, #007bff);box-shadow:0 0 12px #007bff33}.optional-service-card.disabled{opacity:.6;cursor:not-allowed}.optional-service-header{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:6px}.optional-service-description{font-size:.85rem;margin:0 0 6px;color:var(--text-secondary, #6c757d)}.service-hint{font-size:.75rem;color:var(--warning, #e67e22);margin:0}.passphrase-box{display:inline-block;padding:10px 16px;border-radius:8px;background:#0006;font-family:JetBrains Mono,Fira Code,monospace;font-size:1.1rem;letter-spacing:1px;color:#fff}.info-box-text{margin-bottom:16px;font-size:.875rem}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.feature-list li:last-child{margin-bottom:0}.info-list{list-style:none;padding:0;margin:0;font-size:.875rem}.info-list code{background-color:rgba(var(--primary-rgb, 45, 90, 79),.16);border:1px solid rgba(var(--primary-rgb, 45, 90, 79),.22);padding:2px 6px;border-radius:4px;font-family:monospace;font-size:.875em;color:inherit}.dark .info-list code{background-color:rgba(var(--primary-rgb, 45, 90, 79),.22);border-color:rgba(var(--primary-rgb, 45, 90, 79),.28)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.form-group{display:flex;flex-direction:column}.form-label{font-size:.875rem;font-weight:500;margin-bottom:6px;display:block}.form-hint{font-size:.75rem;color:var(--text-muted, #6c757d);margin-top:4px}.domain-input-wrapper{display:flex;align-items:center;gap:4px}.domain-suffix{font-size:.875rem;color:var(--text-secondary, #6c757d);white-space:nowrap}.services-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:8px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.875rem}.checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.checkbox-label span{-webkit-user-select:none;user-select:none}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input{padding-right:40px}.password-toggle-btn{position:absolute;right:0;top:0;height:100%;padding:0 12px;background:transparent;border:none;cursor:pointer;color:var(--text-secondary, #6c757d);transition:color .2s}.password-toggle-btn:hover:not(:disabled){color:var(--text-primary, #212529)}.password-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.progress-container{margin-bottom:24px}.progress-header{display:flex;justify-content:space-between;font-size:.875rem;margin-bottom:8px}.progress-bar{width:100%;height:8px;background-color:var(--progress-bg, #e9ecef);border-radius:4px;overflow:hidden}.dark .progress-bar{background-color:var(--progress-dark-bg, #3a3a3a)}.progress-fill{height:100%;background-color:var(--primary, #007bff);border-radius:4px;transition:width .3s ease}.logs-container{margin-top:24px}.logs-output{background-color:#000;color:#0f0;padding:16px;border-radius:6px;max-height:300px;overflow-y:auto;font-family:Courier New,monospace;font-size:.875rem}.log-line{white-space:pre-wrap;word-break:break-word;margin-bottom:4px}.wizard-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.wizard-actions.space-between{justify-content:space-between}@media(max-width:768px){.form-grid{grid-template-columns:1fr}.nextcloud-card .action-buttons{flex-direction:column}.nextcloud-card .action-buttons button{width:100%}}.deployment-mode-card{margin-bottom:20px}.deployment-mode-card .card-title-content{display:flex;justify-content:space-between;align-items:center;width:100%}.deployment-mode-card .title-left{display:flex;align-items:center;gap:10px}.current-mode{margin-bottom:24px;text-align:center}.mode-title{font-size:1.125rem;font-weight:600;margin-bottom:12px;color:var(--text-primary, #212529)}.dark .mode-title{color:var(--text-dark-primary, #f8f9fa)}.mode-badge{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border-radius:24px;font-weight:600;font-size:1.125rem}.mode-badge.mode-domain{background-color:var(--primary-light, rgba(13, 110, 253, .1));color:var(--primary, #007bff);border:2px solid var(--primary, #007bff)}.mode-badge.mode-tunnel{background-color:var(--warning-light, rgba(255, 193, 7, .1));color:var(--warning, #ffc107);border:2px solid var(--warning, #ffc107)}.mode-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}.mode-option{border:2px solid var(--border, #dee2e6);border-radius:12px;padding:20px;transition:all .3s ease;background-color:#0000}.mode-option:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.mode-option.active{border-color:var(--primary, #007bff);background-color:var(--primary-light, rgba(13, 110, 253, .05))}.mode-option-header{text-align:center;margin-bottom:16px}.mode-option-header svg{color:var(--primary, #007bff);margin-bottom:12px}.mode-option-header h4{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary, #212529)}.mode-option-body{margin-bottom:16px}.mode-description{margin-bottom:16px;color:var(--text-secondary, #6c757d);line-height:1.5}.mode-features,.mode-requirements,.mode-limitations{margin-bottom:16px}.mode-features h5,.mode-requirements h5,.mode-limitations h5{font-size:.875rem;font-weight:600;margin-bottom:8px;text-transform:uppercase;color:var(--text-primary)}.mode-features ul,.mode-requirements ul,.mode-limitations ul{list-style:none;padding:0;margin:0}.mode-features li,.mode-requirements li,.mode-limitations li{padding:4px 0;font-size:.875rem}.mode-features svg{margin-right:8px}.mode-option-footer{margin-top:16px}.text-success{color:var(--success, #28a745)}.alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;margin-bottom:16px}.alert-error{background-color:var(--danger-bg, rgba(220, 53, 69, .1));border:1px solid var(--danger, #dc3545);color:var(--danger, #dc3545)}.alert-success{background-color:var(--success-bg, rgba(40, 167, 69, .1));border:1px solid var(--success, #28a745);color:var(--success, #28a745)}.info-box{border-radius:8px;padding:16px;margin-top:24px;border:1px solid}.info-box-title{font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}.info-box-text{margin:0;font-size:.875rem;line-height:1.5}@media(max-width:768px){.mode-options{grid-template-columns:1fr}}.tunnel-card{margin-bottom:20px}.tunnel-card .card-body{background-color:transparent!important;background:transparent!important}.tunnel-card .card-title-content{display:flex;justify-content:space-between;align-items:center;width:100%}.tunnel-card .title-left{display:flex;align-items:center;gap:10px}.tunnel-card .section-title{font-size:1.25rem;font-weight:600;margin-bottom:16px;color:var(--text-primary, #212529)}.dark .tunnel-card .section-title{color:var(--text-dark-primary, #f8f9fa)}.tunnel-provider-section{margin-top:24px}.tunnel-status{padding:16px;background-color:var(--bg-secondary, #f8f9fa);border-radius:8px;display:flex;justify-content:space-between;align-items:center}.dark .tunnel-status{background-color:var(--bg-dark-secondary, #2d2d2d)}.tunnel-status .status-indicator{display:flex;align-items:center;gap:10px;font-weight:500}.tunnel-status.running .status-indicator{color:var(--success, #28a745)}.tunnel-setup-form{display:flex;flex-direction:column;gap:16px}.tunnel-card .form-group{display:flex;flex-direction:column;margin-bottom:16px}.tunnel-card .form-label{font-size:.875rem;font-weight:500;margin-bottom:6px;color:var(--text)}.tunnel-card .alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:6px;margin-bottom:16px}.tunnel-card .alert-error{background-color:#dc35451a;border:1px solid var(--danger, #dc3545);color:var(--danger, #dc3545)}.tunnel-card .alert-success{background-color:#28a7451a;border:1px solid var(--success-color, #28a745);color:var(--success-color, #28a745)}.info-box{border-radius:8px;padding:16px;margin-bottom:24px;border:1px solid}.info-box-blue{background-color:#0d6efd1a;border-color:#0d6efd4d}.dark .info-box-blue{background-color:#0d6efd26;border-color:#0d6efd66}.info-box-warning{background-color:#ffc1071a;border-color:#ffc1074d}.dark .info-box-warning{background-color:#ffc10726;border-color:#ffc10766}.info-box-title{font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px;color:var(--text)}.info-box-text{margin-bottom:16px;font-size:.875rem;color:var(--text)}.info-list{list-style:none;padding:0;margin:0;font-size:.875rem;color:var(--text)}.info-list li{margin-bottom:8px}.info-list li:last-child{margin-bottom:0}.info-list.numbered{list-style:decimal;padding-left:24px}.info-box a{color:var(--primary, #007bff);text-decoration:underline}.info-box a:hover{color:var(--primary-dark, #0056b3)}.dark .info-box a{color:var(--primary-light, #4da3ff)}.dark .info-box a:hover{color:var(--primary, #007bff)}@media(max-width:768px){.tunnel-status{flex-direction:column;gap:12px;align-items:stretch}.tunnel-status button{width:100%}}.settings-page-content{padding:1rem;width:100%;max-width:100%;margin:0 auto}.theme-selector{display:flex;gap:1.5rem;margin-bottom:1.5rem}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;padding:1rem;border-radius:8px;border:2px solid var(--border-color);transition:all .2s ease-in-out}.theme-option.active{border-color:var(--primary);background-color:rgba(var(--primary-rgb),.05)}.theme-preview{width:100%;height:100px;border-radius:6px;border:1px solid var(--border-color)}.light-theme{background-color:#fff;background-image:linear-gradient(to bottom,#f7f9fc,#eaeff5);position:relative}.dark-theme{background-color:#1a1c23;background-image:linear-gradient(to bottom,#1a1c23,#2d3748);position:relative}.theme-preview:after{content:"";position:absolute;top:10px;left:10px;right:10px;height:10px;border-radius:5px}.light-theme:after{background-color:#e2e8f0}.dark-theme:after{background-color:#4a5568}.color-selector{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.color-selector input[type=color]{width:50px;height:50px;border:none;border-radius:8px;cursor:pointer;padding:0;background:none}.color-selector input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-selector input[type=color]::-webkit-color-swatch{border:1px solid var(--border-color);border-radius:6px}.color-selector label{font-family:var(--font-mono);font-size:.9rem;color:var(--text-color)}.reset-color-btn{padding:.5rem 1rem;background-color:var(--bg-lighter);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);cursor:pointer;transition:all .2s ease;font-size:.875rem}.reset-color-btn:hover{background-color:var(--hover-color)}.auth-card{max-width:400px;margin:5rem auto;text-align:left;padding:1.5rem}.auth-card h2{margin-bottom:1.5rem;text-align:center;color:var(--text)}.form-group{display:grid;grid-template-columns:1fr 2fr;align-items:center;margin-bottom:1rem}.form-group label{text-align:left;margin-right:.5rem}.form-group input[type=email],.form-group input[type=password],.form-group input[type=text]{background:#0003;border:1px solid var(--border-color);color:var(--text);padding:.75rem;border-radius:.5rem;outline:none;transition:border-color .3s,box-shadow .3s}.form-group input[type=email]:focus,.form-group input[type=password]:focus,.form-group input[type=text]:focus{border-color:var(--primary);box-shadow:0 0 0 2px #4caf5033}.submit-group{text-align:center;margin-top:.5rem;margin-bottom:1.5rem}.form-group.checkbox{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:.5rem}.form-group.checkbox input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--primary)}.oidc-login-section{padding-top:1rem;display:flex;border-top:1px solid var(--border-color);flex-direction:column;align-items:center;gap:1rem}.separator-text{text-align:center;color:var(--text-translucent)}.separator-text:before,.separator-text:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.btn.primary.oidc{display:flex;align-items:center;justify-content:center;padding:.75rem 1rem;border-radius:.5rem;background-color:var(--primary);color:var(--text);width:100%}.error-message{color:var(--error-color);margin-top:1rem;text-align:center;font-size:.9rem}.process-table-scrollable{max-height:350px;overflow-y:auto;margin-top:.5rem}.process-table{width:100%;border-collapse:collapse;background:transparent;font-size:.98rem}.process-table th,.process-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.process-table th{background:none;color:var(--text);font-weight:600;border-bottom:2px solid var(--border-color);position:sticky;top:0;z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.process-table th.sorted{color:var(--primary)}.process-table th .sort-arrow{font-size:.85em;margin-left:.2em}.process-table tr:hover{background:var(--bg-subtle)}.process-loading,.process-error{padding:1rem;text-align:center;color:var(--text-muted)}@media(max-width:600px){.process-table th,.process-table td{padding:.4rem .3rem;font-size:.92rem}.process-table-scrollable{max-height:200px}}.network-card{display:flex;flex-direction:column;position:relative;margin-bottom:1rem;padding:1rem;border-radius:8px;overflow:hidden;opacity:1;transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease,background-color .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-translucent);z-index:1}.network-card:hover{color:var(--text);z-index:30;transform:translateY(-2px);box-shadow:0 6px 12px var(--shadow-color);background-color:var(--card-bg-hover);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color)}.network-card .card-header{display:flex;align-items:center;background-color:transparent!important;border:none!important;border-bottom:none!important;margin-bottom:0;padding:0;box-shadow:none!important}.network-card .card-header>.card-title{display:flex;align-items:center;gap:.5rem;color:var(--text-color);background-color:transparent;flex-grow:0;width:auto}.network-card .card-header>.card-actions{display:flex;gap:.5rem;border:none!important;border-top:none!important;border-bottom:none!important;background-color:transparent!important;padding:0;flex-shrink:0;margin:0 0 0 auto;width:auto}.network-card .card-content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.network-interfaces{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.network-interfaces-header{font-size:.95rem;font-weight:600;margin-bottom:.75rem;color:var(--text-color)}.network-interfaces-table-wrapper{display:flex;flex-direction:column}.network-interfaces-table{width:100%;border-collapse:collapse;font-size:.9rem;table-layout:fixed}.network-interfaces-table th,.network-interfaces-table td{padding:.5rem .75rem;text-align:left}.network-interfaces-table thead th{border-bottom:1px solid var(--border-color);color:var(--text-muted);-webkit-user-select:none;user-select:none;background-color:var(--card-bg);position:sticky;top:0;z-index:1}.network-interfaces-table thead th.sortable{cursor:pointer;transition:color .2s ease,background-color .2s ease}.network-interfaces-table thead th.sortable:hover{color:var(--text-color);background-color:#ffffff0d}.network-interfaces-table thead th.sortable svg{margin-left:.25rem;font-size:.75rem;opacity:.6}.network-interfaces-table thead th.sortable:hover svg{opacity:1}.network-interfaces-table-body-wrapper{max-height:220px;overflow-y:auto;overflow-x:hidden}.network-interfaces-table tbody tr:not(:last-child) td{border-bottom:1px solid rgba(255,255,255,.04)}.network-interfaces-table tbody{display:table-row-group}.network-interfaces-empty{padding:1rem;border:1px dashed var(--border-color);border-radius:.5rem;text-align:center;color:var(--text-muted);font-size:.9rem}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.metric-grid>.metric-section{min-width:0;height:300px;display:flex;flex-direction:column}.metric-details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.metric-section{height:300px}.metric-section .chart-container{height:170px}.metric-detail{height:200px}.detail-view{padding:10px 0;width:100%;margin-top:10px}.system-card .metric-detail{display:flex;flex-direction:column}@media(max-width:1200px){.metric-grid,.metric-details-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.metric-grid,.metric-details-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.card,.detail-view{transition:none}}.public-ip-card .ip-address{font-size:1.2em;font-weight:700;color:var(--accent-color)}.ufw-status-card .status-container{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.card .ufw-status-card .button-group{display:flex;gap:.5rem}.ufw-rules-card .table{background-color:var(--table-bg-color);color:var(--table-text-color);width:100%;margin-top:1rem;border-collapse:collapse}.ufw-rules-card .table th,.ufw-rules-card .table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--table-border-color)}.ufw-rules-card .table th{background-color:var(--table-header-bg-color);font-weight:700}.ufw-rules-card .table tbody tr:hover{background-color:var(--table-row-hover-bg-color)}.network-page h1{color:var(--header-color);margin-bottom:1.5rem}.network-page h2{color:var(--subheader-color);margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.status-badge{padding:.3em .8em;border-radius:12px;font-weight:700;font-size:.9em;text-transform:uppercase;color:#fff}.status-badge.status-active{background-color:var(--success-color, #28a745)}.status-badge.status-inactive{background-color:var(--warning-color, #ffc107);color:#333}.status-badge.status-loading{background-color:var(--info-color, #17a2b8)}.status-badge.status-error{background-color:var(--danger-color, #dc3545)}.action-badge{padding:.2em .6em;border-radius:4px;font-size:.8em;color:#fff;text-transform:uppercase}.action-badge.action-allow{background-color:var(--success-color, #28a745)}.action-badge.action-deny{background-color:var(--danger-color, #dc3545)}.action-badge.action-reject{background-color:var(--warning-color, #ffc107);color:#333}.alert{padding:1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:4px}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.language-button-container{display:grid;grid-template-columns:minmax(100px,1fr);align-items:right}.btn.language-button{background:var(--primary);width:8rem;height:2.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:.6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:none;margin:.5rem}.btn.language-button:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.language-button:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.language-button:disabled{opacity:.2;cursor:not-allowed}.btn.language-button:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.logout{width:8rem;height:2.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:.6;background:linear-gradient(135deg,#dc2121e6,#b42121e6,#8c2121f2);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:none;margin:.5rem;transition:all .2s ease}.btn.logout:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.logout:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.btn.logout:disabled{opacity:.2;cursor:not-allowed}.btn.logout:disabled:hover{opacity:.2;cursor:not-allowed;transform:translateY(0);box-shadow:0 0 0 var(--shadow-color)}.btn.theme-button{position:fixed;bottom:20px;left:20px;z-index:1000;transition:all .2s ease}.btn.theme-button:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.btn.theme-button:active{transform:translateY(1px);box-shadow:0 0 0 var(--shadow-color)}.dropdown-container{width:100%;position:relative}.dropdown-menu{position:fixed;min-width:180px;background:var(--dropdown-bg);border-radius:.25rem;box-shadow:0 8px 16px var(--shadow-color);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color);z-index:10001;opacity:0;transform:translateY(-10px);visibility:hidden;transition:all .3s ease;overflow:hidden}.dropdown-menu.show{opacity:1;transform:translateY(0);visibility:visible}.dropdown-item{padding:.75rem 1rem;color:var(--dropdown-text);cursor:pointer;transition:background-color .2s ease;font-size:.9rem}.dropdown-item:hover{background-color:rgba(var(--primary-rgb),.1)}.dropdown-item.active{background-color:rgba(var(--primary-rgb),.15);font-weight:600}@media(max-width:768px){.dropdown-menu{min-width:160px}.dropdown-item{padding:.6rem .8rem;font-size:.85rem}}@media(prefers-reduced-motion:reduce){.dropdown-menu,.dropdown-item{transition:none}}.nav-tabs{box-sizing:border-box;display:grid;grid-template-columns:2fr 1fr;align-items:center;padding:0rem;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);z-index:2;margin-left:0rem;position:relative;overflow:visible}.nav-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin-left:2rem}.nav-links a{color:var(--text);text-decoration:none;padding:.5rem 0;position:relative;font-weight:500;white-space:nowrap}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--primary);transition:width .3s}.nav-links a:hover:after{width:100%}.nav-links a.active:after{width:100%}.navbar-right-section{display:grid;grid-template-columns:repeat(2,1fr);margin:.5rem;position:relative;overflow:visible}.navbar-right-section>*{flex-shrink:0}.user-email-welcome{margin-right:0rem;color:var(--text-translucent);font-size:.9rem;text-align:right}.user-email{padding:2rem;color:var(--text-translucent);font-size:.9rem}.language-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--card-bg-hover);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 8px #0000001a;z-index:10001;opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);visibility:hidden;transform:translateY(-10px);transition:all .3s}.language-dropdown.show{opacity:1;visibility:visible;transform:translateY(0)}.language-option{display:block;padding:.5rem 1.5rem;color:var(--dropdown-text);text-decoration:none;white-space:nowrap;transition:background .3s}.language-option:hover{background:#ffffff1a}.language-option.active{background:var(--primary);color:#fff}.language-selector-container{margin-right:.5rem;position:relative;overflow:visible}.navbar-button-container{position:relative;overflow:visible;display:flex;align-items:center;gap:.5rem}.light-mode .nav-tabs{background:rgba(var(--bg-dark-rgb, 224, 224, 224),.7);border:1px solid var(--border-color, rgba(0, 0, 0, .1))}.nav-link-icon{color:var(--text-translucent);margin-right:.5em;transition:color .2s;display:inline-flex;align-items:center}.nav-links a:hover .nav-link-icon,.nav-links a.active .nav-link-icon{color:var(--primary)}
