/* SecuBox Service Exposure - KISS theme */ :root { --exp-bg-primary: #0d1117; --exp-bg-secondary: #161b22; --exp-bg-tertiary: #1a1a2e; --exp-border: #30363d; --exp-text-primary: #e6edf3; --exp-text-secondary: #8892b0; --exp-text-muted: #6e7681; --exp-accent: #64ffda; --exp-tor: #9b59b6; --exp-ssl: #27ae60; --exp-danger: #ef4444; } .exposure-dashboard { padding: 0; max-width: 1200px; margin: 0 auto; } /* Header */ .exp-page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--exp-border); } /* Table */ .exp-table { width: 100%; border-collapse: collapse; background: var(--exp-bg-secondary); border: 1px solid var(--exp-border); border-radius: 8px; overflow: hidden; } .exp-table th, .exp-table td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--exp-border); } .exp-table th { color: var(--exp-text-muted); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; background: rgba(255, 255, 255, 0.02); } .exp-table td { color: var(--exp-text-primary); font-size: 13px; } .exp-table tr:hover td { background: rgba(100, 255, 218, 0.03); } .exp-row-internal td { opacity: 0.45; } /* Helpers */ .exp-mono { font-family: 'SF Mono', Monaco, monospace; } .exp-text-muted { color: var(--exp-text-muted); } .exp-small { font-size: 12px; } /* Badges */ .exp-badge { display: inline-block; padding: 3px 8px; border-radius: 12px; font-size: 11px; font-weight: 600; margin-right: 4px; } .exp-badge-tor { background: rgba(155, 89, 182, 0.2); color: var(--exp-tor); } .exp-badge-ssl { background: rgba(39, 174, 96, 0.2); color: var(--exp-ssl); } .exp-badge-mesh { background: rgba(59, 130, 246, 0.2); color: #3b82f6; } /* Buttons */ .exp-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 6px; font-size: 13px; cursor: pointer; border: 1px solid transparent; transition: all 0.15s; text-decoration: none; } .exp-btn-secondary { background: transparent; color: var(--exp-text-secondary); border-color: var(--exp-border); } .exp-btn-secondary:hover { background: rgba(255, 255, 255, 0.05); border-color: var(--exp-text-secondary); } /* Toggle switches */ .toggle-switch { position: relative; display: inline-block; width: 44px; 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: #333; transition: 0.2s; border-radius: 24px; } .toggle-slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: #666; transition: 0.2s; border-radius: 50%; } input:checked + .toggle-slider:before { transform: translateX(20px); } input:checked + .tor-slider { background-color: rgba(155, 89, 182, 0.3); border: 1px solid #9b59b6; } input:checked + .tor-slider:before { background-color: #9b59b6; } input:checked + .ssl-slider { background-color: rgba(39, 174, 96, 0.3); border: 1px solid #27ae60; } input:checked + .ssl-slider:before { background-color: #27ae60; } input:checked + .mesh-slider { background-color: rgba(59, 130, 246, 0.3); border: 1px solid #3b82f6; } input:checked + .mesh-slider:before { background-color: #3b82f6; } /* Action button */ .exp-btn-action { background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); color: white; border-color: transparent; } .exp-btn-action:hover { background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%); box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); }