/* /public/assets/vitrine/pages/port-scanner.css */
.vitrine .scanner-container{ max-width: 900px; margin: 0 auto; }
.vitrine .scanner-card{
            background: var(--color-bg-card);
            border: 1px solid var(--color-border);
            border-radius: var(--radius-xl);
            padding: 32px;
            margin-bottom: 24px;
        }
.vitrine .scanner-form{
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            margin-bottom: 24px;
        }
.vitrine .scanner-form .form-group{ flex: 1; min-width: 200px; }
.vitrine .scanner-form input,.vitrine .scanner-form select{
            width: 100%;
            padding: 14px 16px;
            font-size: 1rem;
        }
.vitrine .port-result{
            display: flex;
            align-items: center;
            gap: 16px;
            padding: 20px;
            border-radius: var(--radius-lg);
            margin-bottom: 16px;
        }
.vitrine .port-result.open{
            background: rgba(34, 197, 94, 0.1);
            border: 1px solid rgba(34, 197, 94, 0.3);
        }
.vitrine .port-result.closed{
            background: rgba(239, 68, 68, 0.1);
            border: 1px solid rgba(239, 68, 68, 0.3);
        }
.vitrine .port-result.pending{
            background: var(--color-bg-alt);
            border: 1px solid var(--color-border);
        }
.vitrine .port-status{
            width: 48px;
            height: 48px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }
.vitrine .port-result.open .port-status{ background: #22c55e; color: #fff; }
.vitrine .port-result.closed .port-status{ background: #ef4444; color: #fff; }
.vitrine .port-result.pending .port-status{ background: var(--color-border); }
.vitrine .port-info h4{ margin-bottom: 4px; }
.vitrine .port-info p{ color: var(--color-text-muted); font-size: 0.9rem; margin: 0; }
.vitrine .port-meta{ margin-left: auto; text-align: right; }
.vitrine .port-meta .time{ font-family: var(--font-mono); font-size: 0.9rem; }
.vitrine .quick-scan{
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 24px;
        }
.vitrine .quick-scan-btn{
            padding: 8px 16px;
            background: var(--color-bg-alt);
            border: 1px solid var(--color-border);
            border-radius: var(--radius-md);
            cursor: pointer;
            font-size: 0.85rem;
            transition: all 0.2s;
        }
.vitrine .quick-scan-btn:hover{
            border-color: var(--color-primary);
            color: var(--color-primary);
        }
.vitrine .ports-reference{
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 12px;
        }
.vitrine .port-ref-item{
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 16px;
            background: var(--color-bg-alt);
            border-radius: var(--radius-md);
            cursor: pointer;
            transition: all 0.2s;
        }
.vitrine .port-ref-item:hover{
            background: var(--color-bg);
            box-shadow: var(--shadow-sm);
        }
.vitrine .port-ref-item .port-num{
            font-family: var(--font-mono);
            font-weight: 600;
            min-width: 50px;
        }
.vitrine .port-ref-item .port-svc{ font-weight: 500; }
.vitrine .port-ref-item .port-desc{
            color: var(--color-text-muted);
            font-size: 0.8rem;
            margin-left: auto;
        }
.vitrine .results-list{ margin-top: 24px; }
.vitrine .spinner{
            width: 24px;
            height: 24px;
            border: 3px solid var(--color-border);
            border-top-color: var(--color-primary);
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
        }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 600px) {.vitrine .scanner-card{ padding: 20px; }
.vitrine .port-result{ flex-wrap: wrap; }
.vitrine .port-meta{ margin-left: 0; margin-top: 12px; width: 100%; text-align: left; }}